diff --git a/actions/backups b/actions/backups index a8d13118c..e83fa8b85 100755 --- a/actions/backups +++ b/actions/backups @@ -8,6 +8,8 @@ Wrapper to handle backups using borg-backups. import argparse import json import os +import pathlib +import re import subprocess import sys import tarfile @@ -16,6 +18,7 @@ from plinth.modules.backups import MANIFESTS_FOLDER from plinth.utils import Version TIMEOUT = 30 +BACKUPS_DATA_PATH = pathlib.Path('/var/lib/plinth/backups-data/') def parse_arguments(): @@ -78,6 +81,16 @@ def parse_arguments(): restore_exported_archive.add_argument('--path', help='Tarball file path', required=True) + dump_settings = subparsers.add_parser('dump-settings', + help='Dump JSON settings to a file') + dump_settings.add_argument('--app-id', + help='ID of the app to dump settings for') + + load_settings = subparsers.add_parser( + 'load-settings', help='Load JSON settings from a file') + load_settings.add_argument('--app-id', + help='ID of the app to load settings for') + subparsers.required = True return parser.parse_args() @@ -267,6 +280,32 @@ def subcommand_restore_exported_archive(arguments): break +def _assert_app_id(app_id): + """Check that app ID is correct.""" + if not re.fullmatch(r'[a-z0-9_]+', app_id): + raise Exception('Invalid App ID') + + +def subcommand_dump_settings(arguments): + """Dump an app's settings to a JSON file.""" + app_id = arguments.app_id + _assert_app_id(app_id) + BACKUPS_DATA_PATH.mkdir(exist_ok=True) + settings_path = BACKUPS_DATA_PATH / f'{app_id}-settings.json' + settings_path.write_text(arguments.stdin) + + +def subcommand_load_settings(arguments): + """Load an app's settings from a JSON file.""" + app_id = arguments.app_id + _assert_app_id(app_id) + settings_path = BACKUPS_DATA_PATH / f'{app_id}-settings.json' + try: + print(settings_path.read_text()) + except FileNotFoundError: + print('{}') + + def _read_encryption_passphrase(arguments): """Read encryption passphrase from stdin.""" if arguments.stdin: diff --git a/actions/dynamicdns b/actions/dynamicdns index 9e19b38a7..0e111b45b 100755 --- a/actions/dynamicdns +++ b/actions/dynamicdns @@ -1,471 +1,156 @@ -#!/bin/bash +#!/usr/bin/python3 # SPDX-License-Identifier: AGPL-3.0-or-later +""" +Configuration helper for Dynamic DNS. +""" -############################################################################ -# # -# This script is a wrapper around ez-ipupdate and/or wget # -# to update a Dynamic DNS account. The script is used as an # -# interface between plinth and ez-ipupdate # -# the script will store configuration, return configuration # -# to plinth UI and do a dynamic DNS update. The script will # -# also determe if we are behind a NAT device, if we can use # -# ez-ipupdate tool or if we need to do some wget magic # -# # -# Todo: IPv6 # -# Todo: GET WAN IP from Router via UPnP if supported # -# Todo: licence string? # -# author: Daniel Steglich # -# # -############################################################################ +import argparse +import json +import pathlib +import urllib -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +_conf_dir = pathlib.Path('/etc/ez-ipupdate/') +_active_config = _conf_dir / 'ez-ipupdate.conf' +_inactive_config = _conf_dir / 'ez-ipupdate.inactive' +_helper_config = _conf_dir / 'ez-ipupdate-plinth.cfg' +_cron_job = pathlib.Path('/etc/cron.d/ez-ipupdate') -# static values -WGET=$(which wget) -WGETOPTIONS="-o /dev/null -t 3 -T 3" -EMPTYSTRING="none" -NOIP="0.0.0.0" -# how often do we poll for IP changes if we are behind a NAT? -UPDATEMINUTES=5 -# if we do not have a URL to look up public IP, how often should we do -# a "blind" update -UPDATEMINUTESUNKNOWN=3600 -TOOLNAME=ez-ipupdate -UPDATE_TOOL=$(which ${TOOLNAME}) -DISABLED_STRING='disabled' -ENABLED_STRING='enabled' -# Dirs and filenames -CFGDIR="/etc/${TOOLNAME}/" -CFG="${CFGDIR}${TOOLNAME}.conf" -CFG_disabled="${CFGDIR}${TOOLNAME}.inactive" -IPFILE="${CFGDIR}${TOOLNAME}.currentIP" -STATUSFILE="${CFGDIR}${TOOLNAME}.status" -LASTUPDATE="${CFGDIR}/last-update" -HELPERCFG="${CFGDIR}${TOOLNAME}-plinth.cfg" -CRONJOB="/etc/cron.d/${TOOLNAME}" -PIDFILE="/var/run/ez-ipupdate.pid" +def parse_arguments(): + """ Return parsed command line arguments as dictionary. """ + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest='subcommand', help='Sub command') -# this function will parse commandline options -doGetOpt() -{ - basicauth=0 - ignoreCertError=0 - useIPv6=0 + subparsers.add_parser('export-config', + help='Print configuration in JSON format') + subparsers.add_parser('clean', help='Remove all old configuration files') - while getopts ":s:d:u:P:I:U:c:b:6:p" opt; do - case ${opt} in - s) - if [ "${OPTARG}" != "${EMPTYSTRING}" ];then - server=${OPTARG} - else - server="" - fi - ;; - d) - host=${OPTARG} - ;; - u) - user=${OPTARG} - ;; - P) - pass=${OPTARG} - ;; - p) - if read -t 0; then - IFS= read -r pass - fi - ;; - I) - if [ "${OPTARG}" != "${EMPTYSTRING}" ];then - ipurl=${OPTARG} - else - ipurl="" - fi - ;; - U) - if [ "${OPTARG}" != "${EMPTYSTRING}" ];then - updateurl=${OPTARG} - else - updateurl="" - fi - ;; - b) - basicauth=${OPTARG} - ;; - c) - ignoreCertError=${OPTARG} - ;; - 6) - useIPv6=${OPTARG} - ;; - \?) - echo "Invalid option: -${OPTARG}" >&2 - exit 1 - ;; - esac - done -} + subparsers.add_parser('update', help='For backwards compatibility') + subparser = subparsers.add_parser('success', + help='For backwards compatibility') + subparser.add_argument('wan_ip_address') -# this function will write a persistent config file to disk -doWriteCFG() -{ - mkdir ${CFGDIR} 2> /dev/null - # always write to the inactive config - needs to be enabled via "start" command later - local out_file=${CFG_disabled} + subparsers.required = True + return parser.parse_args() - # reset the last update time - echo 0 > ${LASTUPDATE} - # reset the last updated IP - echo "0.0.0.0" > ${IPFILE} +def _read_configuration(path, separator='='): + """Read ez-ipupdate configuration.""" + config = {} + for line in path.read_text().splitlines(): + if line.startswith('#'): + continue - # reset last update (if there is one) - rm ${STATUSFILE} 2> /dev/null + parts = line.partition(separator) + if parts[1]: + config[parts[0].strip()] = parts[2].strip() + else: + config[parts[0].strip()] = True - # find the interface (always the default gateway interface) - default_interface=$(ip route |grep default |awk '{print $5}') + return config - # store the given options in ez-ipupdate compatible config file - { - echo "host=${host}" - echo "server=${server}" - echo "user=${user}:${pass}" - echo "service-type=gnudip" - echo "retrys=3" - echo "wildcard" - } > ${out_file} - - # store UPDATE URL params - { - echo "POSTURL ${updateurl}" - echo "POSTAUTH ${basicauth}" - echo "POSTSSLIGNORE ${ignoreCertError}" - echo "POSTUSEIPV6 ${useIPv6}" - } > ${HELPERCFG} - - # check if we are behind a NAT Router - echo "IPURL ${ipurl}" >> ${HELPERCFG} - if [ -z ${ipurl} ];then - echo "NAT unknown" >> ${HELPERCFG} - else - doGetWANIP - ISGLOBAL=$(ip addr ls "${default_interface}" | grep "${wanip}") - if [ -z "${ISGLOBAL}" ];then - # we are behind NAT - echo "NAT yes" >> ${HELPERCFG} - else - # we are directly connected - echo "NAT no" >> ${HELPERCFG} - # if this file is added ez-ipupdate will take ip form this interface - { - echo "interface=${default_interface}" - # if this line is added to config file, ez-ipupdate will be launched on startup via init.d - echo "daemon" - echo "execute=${0} success" - } >> ${out_file} - fi - fi -} -# this function will read the config file from disk -# special treatment for empty strings is done here: -# plinth will give empty strings like: '' -# but we don't want this single quotes to be used -doReadCFG() -{ - host="" - server="" - user="" - pass="" - ipurl="" +def subcommand_export_config(_): + """Print the old ez-ipupdate configuration in JSON format.""" + input_config = {} + if _active_config.exists(): + input_config = _read_configuration(_active_config) + elif _inactive_config.exists(): + input_config = _read_configuration(_inactive_config) - if [ ! -z "${cfgfile}" ];then - host=$(grep ^host= "${cfgfile}" 2> /dev/null | cut -d = -f 2-) - server=$(grep ^server= "${cfgfile}" 2> /dev/null | cut -d = -f 2- | grep -v ^\'\') - user=$(grep ^user= "${cfgfile}" 2> /dev/null | cut -d = -f 2- | cut -d : -f 1 ) - pass=$(grep ^user= "${cfgfile}" 2> /dev/null | cut -d = -f 2- | cut -d : -f 2-) - fi + helper = {} + if _helper_config.exists(): + helper.update(_read_configuration(_helper_config, separator=' ')) - if [ ! -z ${HELPERCFG} ];then - ipurl=$(grep ^IPURL "${HELPERCFG}" 2> /dev/null |awk '{print $2}' |grep -v ^\'\') - updateurl=$(grep POSTURL "${HELPERCFG}" 2> /dev/null |awk '{print $2}' |grep -v ^\'\') - basicauth=$(grep POSTAUTH "${HELPERCFG}" 2> /dev/null |awk '{print $2}' |grep -v ^\'\') - ignoreCertError=$(grep POSTSSLIGNORE "${HELPERCFG}" 2> /dev/null |awk '{print $2}' |grep -v ^\'\') - useIPv6=$(grep POSTUSEIPV6 "${HELPERCFG}" 2> /dev/null |awk '{print $2}' |grep -v ^\'\') - fi -} + def _clean(value): + value_map = {'enabled': True, 'disabled': False, '': None} + return value_map.get(value, value) -# replace vars from url: i.e.: -# https://example.com/update.php?domain=&User=&Pass= -# also this function will remove the surounding single quotes from the URL string -# as plinth will add them -doReplaceVars() -{ - local url=$(echo "${updateurl}" | sed "s//${wanip}/g") - url=$(echo "${url}" | sed "s//${host}/g") - url=$(echo "${url}" | sed "s//${user}/g") - url=$(echo "${url}" | sed "s//${pass}/g") - url=$(echo "${url}" | sed "s/'//g") - updateurl=${url} - logger "expanded update URL as ${url}" -} + domain = { + 'service_type': 'gnudip', + 'domain': input_config.get('host'), + 'server': input_config.get('server'), + 'username': input_config.get('user', '').split(':')[0] or None, + 'password': input_config.get('user', '').split(':')[-1] or None, + 'ip_lookup_url': helper.get('IPURL'), + 'update_url': _clean(helper.get('POSTURL')) or None, + 'use_http_basic_auth': _clean(helper.get('POSTAUTH')), + 'disable_ssl_cert_check': _clean(helper.get('POSTSSLIGNORE')), + 'use_ipv6': _clean(helper.get('POSTUSEIPV6')), + } -# doReadCFG() needs to be run before this -# this function will return all configured parameters in a way that -# plinth will understand (plinth know the order of -# parameters this function will return) -doStatus() -{ - PROC=$(pgrep ${TOOLNAME}) - if [ -f "${CRONJOB}" ];then - echo "${ENABLED_STRING}" - elif [ ! -z "${PROC}" ];then - echo "${ENABLED_STRING}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${server}" ];then - echo "${server}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${host}" ];then - echo "${host}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${user}" ];then - echo "${user}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${pass}" ];then - echo "${pass}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${ipurl}" ];then - echo "${ipurl}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${updateurl}" ];then - echo "${updateurl}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${ignoreCertError}" ];then - echo "${ignoreCertError}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${basicauth}" ];then - echo "${basicauth}" - else - echo "${DISABLED_STRING}" - fi - if [ ! -z "${useIPv6}" ];then - echo "${useIPv6}" - else - echo "${DISABLED_STRING}" - fi -} + if isinstance(domain['update_url'], bool): + # 'POSTURL ' is a line found in the configuration file + domain['update_url'] = None -# ask a public WEB Server for the WAN IP we are comming from -# and store this ip within $wanip -doGetWANIP() -{ - if [ ! -z "${ipurl}" ];then - local wgetoptions="${WGETOPTIONS}" - if [ "${useIPv6}" = "enabled" ];then - wgetoptions="${wgetoptions} -6" - else - wgetoptions="${wgetoptions} -4" - fi - local cmd="${WGET} ${wgetoptions} -O - ${ipurl}" - if [ "${useIPv6}" = "enabled" ];then - wanip=$($cmd | tr A-F a-f | sed s/[^0-9a-f:]//g) - else - wanip=$($cmd | sed s/[^0-9.]//g) - fi - [ -z "${wanip}" ] && wanip=${NOIP} - else - # no WAN IP found because of missing check URL - wanip=${NOIP} - fi -} + if not domain['server']: + domain['service_type'] = 'other' + update_url = domain['update_url'] + try: + server = urllib.parse.urlparse(update_url).netloc + service_types = { + 'dynupdate.noip.com': 'noip.com', + 'dynupdate.no-ip.com': 'noip.com', + 'freedns.afraid.org': 'freedns.afraid.org' + } + domain['service_type'] = service_types.get(server, 'other') + except ValueError: + pass -# actualy do the update (using wget or ez-ipupdate or even both) -# this function is called via cronjob -doUpdate() -{ - if [ "${useIPv6}" = "enabled" ];then - local dnsentry="$(host -t AAAA "${host}" | sed 's/.*address\s*//')" - else - local dnsentry="$(host -t A "${host}" | sed 's/.*address\s*//')" - fi - if [ "${dnsentry}" = "${wanip}" ];then - return - fi - if [ ! -z "${server}" ];then - start-stop-daemon -S -x "${UPDATE_TOOL}" -m -p "${PIDFILE}" -- -c "${cfgfile}" - fi - if [ ! -z "${updateurl}" ];then - doReplaceVars - if [ "${basicauth}" = "enabled" ];then - WGETOPTIONS="${WGETOPTIONS} --user ${user} --password ${pass} " - fi - if [ "${ignoreCertError}" = "enabled" ];then - WGETOPTIONS="${WGETOPTIONS} --no-check-certificate " - fi - if [ "${useIPv6}" = "enabled" ];then - WGETOPTIONS="${WGETOPTIONS} -6" - else - WGETOPTIONS="${WGETOPTIONS} -4" - fi - local cmd="${WGET} -O /dev/null ${WGETOPTIONS} ${updateurl}" - $cmd - # ToDo: check the returning text from WEB Server. User need to give expected string. - if [ ${?} -eq 0 ];then - ${0} success ${wanip} - else - ${0} failed - fi - fi -} + # Old logic for 'enabling' the app is as follows: If behind NAT, add + # cronjob. If not behind NAT and type is update URL, add cronjob. If not + # behind NAT and type is GnuDIP, move inactive configuration to active + # configuration and start the ez-ipupdate daemon. + enabled = False + if _cron_job.exists() or (domain['service_type'] == 'gnudip' + and _active_config.exists()): + enabled = True -umask u=rw,g=,o= -cmd=${1} -shift -# decide which config to use -cfgfile="/tmp/none" -[ -f ${CFG_disabled} ] && cfgfile=${CFG_disabled} -[ -f ${CFG} ] && cfgfile=${CFG} + output_config = {'enabled': enabled, 'domains': {domain['domain']: domain}} + print(json.dumps(output_config)) -# check what action is requested -case ${cmd} in - configure) - doGetOpt "${@}" - doWriteCFG - ;; - start) - doGetWANIP - if [ "$(grep ^NAT ${HELPERCFG} | awk '{print $2}')" = "no" ];then - #if we are not behind a NAT device and we use gnudip, start the daemon tool - gnudipServer=$(grep ^server= ${cfgfile} 2> /dev/null | cut -d = -f 2- |grep -v ^\'\') - if [ ! -f ${CFG} -a ! -z "${gnudipServer}" ];then - mv ${CFG_disabled} ${CFG} - /etc/init.d/${TOOLNAME} start - fi - # if we are not behind a NAT device and we use update-URL, add a cronjob - # (daemon tool does not support update-URL feature) - if [ ! -z "$(grep ^POSTURL $HELPERCFG | awk '{print $2}')" ];then - echo "*/${UPDATEMINUTES} * * * * root ${0} update" > ${CRONJOB} - $0 update - fi - else - # if we are behind a NAT device, add a cronjob (daemon tool cannot monitor WAN IP changes) - echo "*/${UPDATEMINUTES} * * * * root ${0} update" > $CRONJOB - $0 update - fi - ;; - get-nat) - NAT=$(grep ^NAT $HELPERCFG 2> /dev/null | awk '{print $2}') - [ -z "${NAT}" ] && NAT="unknown" - echo ${NAT} - ;; - update) - doReadCFG - dnsentry=$(nslookup "${host}"|tail -n2|grep A|sed s/[^0-9.]//g) - doGetWANIP - echo ${wanip} > ${IPFILE} - grep -v execute ${cfgfile} > ${cfgfile}.tmp - mv ${cfgfile}.tmp ${cfgfile} - echo "execute=${0} success ${wanip}" >> ${cfgfile} - # if we know our WAN IP, only update if IP changes - if [ "${dnsentry}" != "${wanip}" -a "${wanip}" != ${NOIP} ];then - doUpdate - else - # If nothing has changed, nothing needs to be done but we - # need to write the success status (if no success was - # recorded yet because maybe DNS record was up to date - # when script is executed for the first time) - ${0} success ${wanip} - fi - # if we don't know our WAN IP do a blind update once a hour - if [ "${wanip}" = ${NOIP} ];then - currenttime=$(date +%s) - LAST=0 - [ -f ${LASTUPDATE} ] && LAST=$(cat ${LASTUPDATE}) - diff=$((currenttime - LAST)) - if [ ${diff} -gt ${UPDATEMINUTESUNKNOWN} ];then - doUpdate - fi - fi - ;; - stop) - rm ${CRONJOB} 2> /dev/null - /etc/init.d/${TOOLNAME} stop - kill "$(cat ${PIDFILE})" 2> /dev/null - mv ${CFG} ${CFG_disabled} - ;; - success) - date=$(date) - echo "DNS record is up to date (${date})" > ${STATUSFILE} - date +%s > ${LASTUPDATE} - # if called from cronjob, the current IP is given as parameter - if [ $# -eq 1 ];then - echo "${1}" > ${IPFILE} - else - # if called from ez-ipupdate daemon, no WAN IP is given as parameter - doGetWANIP - echo ${wanip} > ${IPFILE} - fi - ;; - failed) - date=$(date) - echo "last update failed (${date})" > ${STATUSFILE} - ;; - get-last-success) - if [ -f ${STATUSFILE} ];then - cat ${STATUSFILE} - else - echo "no successful update recorded since last config change" - fi - ;; - status) - doReadCFG - doStatus - ;; - get-timer) - echo ${UPDATEMINUTES} - ;; - clean) - rm ${CFGDIR}/* - rm ${CRONJOB} - ;; - *) - echo "usage: status|configure |start|stop|update|get-nat|clean|success [updated IP]|failed|get-last-success" - echo "" - echo "options are:" - echo "-s Gnudip Server address" - echo "-d Domain to be updated" - echo "-u Account username" - echo "-P Account password" - echo "-p Read Account Password from stdin" - echo "-I A URL which returns the IP of the client who is requesting" - echo "-U The update URL (a HTTP GET on this URL will be done)" - echo "-c <1|0> disable SSL check on Update URL" - echo "-b <1|0> use HTTP basic auth on Update URL" - echo "-6 use IPv6 type address" - echo "" - echo "update do a one time update" - echo "clean delete configuration" - echo "success store update success and optional the updated IP" - echo "failed store update failure" - echo "get-nat return the detected nat type" - echo "get-last-success return date of last successful update" - ;; -esac -exit 0 + +def subcommand_clean(_): + """Remove all old configuration files.""" + last_update = _conf_dir / 'last-update' + status = _conf_dir / 'ez-ipupdate.status' + current_ip = _conf_dir / 'ez-ipupdate.currentIP' + + cleanup_files = [ + _active_config, _inactive_config, last_update, _helper_config, status, + current_ip + ] + for cleanup_file in cleanup_files: + try: + cleanup_file.rename(cleanup_file.with_suffix('.bak')) + except FileNotFoundError: + pass + + _cron_job.unlink(missing_ok=True) + + +def subcommand_update(_): + """Empty subcommand kept only for backwards compatibility. + + Drop after stable release. + """ + + +def subcommand_success(_): + """Empty subcommand kept only for backwards compatibility. + + Drop after stable release. + """ + + +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/debian/changelog b/debian/changelog index fb9177b01..3969a4de9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,64 @@ +freedombox (22.5) unstable; urgency=medium + + [ ikmaak ] + * Translated using Weblate (German) + * Translated using Weblate (Dutch) + + [ Burak Yavuz ] + * Translated using Weblate (Turkish) + + [ Eric ] + * Translated using Weblate (Chinese (Simplified)) + + [ Joseph Nuthalapati ] + * tests: functional: Add plugin for HTML reports + + [ Besnik Bleta ] + * Translated using Weblate (Albanian) + * Translated using Weblate (Albanian) + * Translated using Weblate (Albanian) + + [ Jaime Marquínez Ferrándiz ] + * Translated using Weblate (Spanish) + + [ Michael Breidenbach ] + * Translated using Weblate (Swedish) + + [ Nikita Epifanov ] + * Translated using Weblate (Russian) + + [ Jiří Podhorecký ] + * Translated using Weblate (Czech) + + [ Andrij Mizyk ] + * Translated using Weblate (Ukrainian) + + [ Benedek Nagy ] + * Translated using Weblate (Hungarian) + * Translated using Weblate (Hungarian) + * tt-rss: Restrict access to `feed-reader` group in "/tt-rss-app" + + [ James Valleroy ] + * dynamicdns: Replace ez-ipupdate + * locale: Update translation strings + * doc: Fetch latest manual + + [ Sunil Mohan Adapa ] + * dynamicdns: Drop about page and merge into description + * dynamicdns: Drop tabs and use single page + * dynamicdns: Drop NAT detection as it is no longer used + * app: Add component to store enabled state of an app in kvstore + * backups: Implement backup/restore of key/value settings + * dynamicdns: Rewrite configuration handling and update using URL + * users: Fix typo in description + * minetest: Reduce the number of configuration update messages + + [ 109247019824 ] + * Translated using Weblate (Bulgarian) + * Translated using Weblate (Bulgarian) + + -- James Valleroy Mon, 14 Feb 2022 20:41:06 -0500 + freedombox (22.4~bpo11+1) bullseye-backports; urgency=medium * Rebuild for bullseye-backports. diff --git a/doc/manual/en/GitWeb.raw.wiki b/doc/manual/en/GitWeb.raw.wiki index a3d07ed3f..ccc91e138 100644 --- a/doc/manual/en/GitWeb.raw.wiki +++ b/doc/manual/en/GitWeb.raw.wiki @@ -1,7 +1,7 @@ #language en ##TAG:TRANSLATION-HEADER-START -~- [[de/FreedomBox/Manual/GitWeb|Deutsch]] - [[FreedomBox/Manual/GitWeb|English]] - [[es/FreedomBox/Manual/GitWeb|Español]] - [[DebianWiki/EditorGuide#translation|(+)]] -~ +~- [[de/FreedomBox/Manual/GitWeb|Deutsch]] - [[FreedomBox/Manual/GitWeb|English]] - [[es/FreedomBox/Manual/GitWeb|Español]] - [[hu/FreedomBox/Manual/GitWeb|Magyar]] - [[DebianWiki/EditorGuide#translation|(+)]] -~ ##TAG:TRANSLATION-HEADER-END <> @@ -13,6 +13,8 @@ '''Available since''': version 19.19 +=== What is Git === + 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 [[https://git-scm.com/docs/gittutorial|Git tutorial]]. diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index c333e573b..e2c07ab5f 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -8,6 +8,26 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 22.5 (2022-02-14) == + +=== Highlights === + + * dynamicdns: Replace ez-ipupdate + * Drop NAT detection as it is no longer used + * Drop about page and merge into description + * Drop tabs and use single page + * Rewrite configuration handling and update using URL + +=== Other Changes === + + * app: Add component to store enabled state of an app in kvstore + * backups: Implement backup/restore of key/value settings + * locale: Update translations for Albanian, Bulgarian, Chinese (Simplified), Czech, Dutch, German, Hungarian, Russian, Spanish, Swedish, Turkish, Ukrainian + * minetest: Reduce the number of configuration update messages + * tests: functional: Add plugin for HTML reports + * tt-rss: Restrict access to `feed-reader` group in "/tt-rss-app" + * users: Fix typo in description + == FreedomBox 22.4 (2022-01-31) == === Highlights === diff --git a/doc/manual/en/ejabberd.raw.wiki b/doc/manual/en/ejabberd.raw.wiki index 2662cbe2c..bdd530a89 100644 --- a/doc/manual/en/ejabberd.raw.wiki +++ b/doc/manual/en/ejabberd.raw.wiki @@ -15,6 +15,10 @@ '''Available since''': version 0.3 +=== What is ejabberd? === + +Ejabberd is a chat server which uses the Extensible Messaging and Presence Protocol (XMPP). + === What is XMPP? === XMPP is a federated server-client protocol for Instant Messaging. This means that users who have accounts on one server, can talk to users that are on another server. diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index c333e573b..e2c07ab5f 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -8,6 +8,26 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 22.5 (2022-02-14) == + +=== Highlights === + + * dynamicdns: Replace ez-ipupdate + * Drop NAT detection as it is no longer used + * Drop about page and merge into description + * Drop tabs and use single page + * Rewrite configuration handling and update using URL + +=== Other Changes === + + * app: Add component to store enabled state of an app in kvstore + * backups: Implement backup/restore of key/value settings + * locale: Update translations for Albanian, Bulgarian, Chinese (Simplified), Czech, Dutch, German, Hungarian, Russian, Spanish, Swedish, Turkish, Ukrainian + * minetest: Reduce the number of configuration update messages + * tests: functional: Add plugin for HTML reports + * tt-rss: Restrict access to `feed-reader` group in "/tt-rss-app" + * users: Fix typo in description + == FreedomBox 22.4 (2022-01-31) == === Highlights === diff --git a/doc/manual/es/ejabberd.raw.wiki b/doc/manual/es/ejabberd.raw.wiki index 287633db3..a5c242104 100644 --- a/doc/manual/es/ejabberd.raw.wiki +++ b/doc/manual/es/ejabberd.raw.wiki @@ -12,6 +12,10 @@ '''Disponble desde''': versión 0.3 +=== ¿Qué es ejabberd? === + +Ejabberd es un servidor de conversaciones (''chat'') que usa el protocolo ''Extensible Messaging and Presence Protocol'' (XMPP). + === ¿Qué es XMPP? === ''XMPP'' es un protocolo cliente-servidor federado para Mensajería Instantánea. Esto significa que los usuarios que tengan cuenta en un servidor XMPP pueden conversar con los usuarios que estén en el mismo u otros servidores XMPP. diff --git a/plinth/__init__.py b/plinth/__init__.py index fc2011a64..0901aaa17 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '22.4' +__version__ = '22.5' diff --git a/plinth/app.py b/plinth/app.py index a1c8e4247..df90dc2aa 100644 --- a/plinth/app.py +++ b/plinth/app.py @@ -463,6 +463,33 @@ class Info(FollowerComponent): clients_module.validate(clients) +class EnableState(LeaderComponent): + """A component to hold the enable state of an app using a simple flag.""" + + @property + def key(self): + """Return the storage key.""" + if not self.app_id: + raise KeyError('Component must be added to an app before use.') + + return f'{self.app_id}_enable' + + def is_enabled(self): + """Return whether the app/component is enabled.""" + from plinth import kvstore + return kvstore.get_default(self.key, False) + + def enable(self): + """Store that the app/component is enabled.""" + from plinth import kvstore + kvstore.set(self.key, True) + + def disable(self): + """Store that the app/component is disabled.""" + from plinth import kvstore + kvstore.set(self.key, False) + + def apps_init(): """Create apps by constructing them with components.""" from . import module_loader # noqa # Avoid circular import diff --git a/plinth/locale/ar_SA/LC_MESSAGES/django.po b/plinth/locale/ar_SA/LC_MESSAGES/django.po index e65885428..08c4026cb 100644 --- a/plinth/locale/ar_SA/LC_MESSAGES/django.po +++ b/plinth/locale/ar_SA/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n" "Last-Translator: aiman an \n" "Language-Team: Arabic (Saudi Arabia) ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1511,142 +1521,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1660,12 +1592,45 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2196,6 +2161,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2543,6 +2513,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2668,10 +2645,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3038,22 +3011,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6218,7 +6175,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index ecd91fe8a..b4135fe32 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-22 21:55+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-14 05:55+0000\n" "Last-Translator: 109247019824 \n" "Language-Team: Bulgarian \n" @@ -82,7 +82,7 @@ msgstr "Език" #: plinth/forms.py:65 msgid "Language to use for presenting this web interface" -msgstr "Език, на който да се показва този интерфейс" +msgstr "Език, на който да се показва интерфейса" #: plinth/forms.py:72 msgid "Use the language preference set in the browser" @@ -135,12 +135,12 @@ msgid "" "disabled to improve security especially when connecting to a hostile local " "network." msgstr "" -"Откриването на услуги позволява на други устройства в мрежата да откриват " -"вашия {box_name} и услугите, които се предоставят от него. Също така " -"позволява на {box_name} да открива други устройства и услуги, работещи в " -"локалната мрежа. Откриването на услуги не е от съществено значение и работи " -"само във вътрешни мрежи. То може да бъде спряно, за да се подобри " -"сигурността, особено когато се свързвате към враждебна локална мрежа." +"Откриването на услуги позволява на другите устройства в мрежата да откриват " +"сървъра {box_name} и услугите, които той предоставя. Също така позволява на " +"{box_name} да открива други устройства и услуги, работещи в местната мрежа. " +"Откриването на услуги не е от съществено значение и работи само във вътрешни " +"мрежи. То може да бъде спряно и така да бъде подобрена сигурността, особено " +"когато се свързвате към враждебна местна мрежа." #: plinth/modules/avahi/__init__.py:51 msgid "Service Discovery" @@ -152,7 +152,7 @@ msgstr "Домейн в местната мрежа" #: plinth/modules/backups/__init__.py:27 msgid "Backups allows creating and managing backup archives." -msgstr "Създаване и управление на архиви с резервни копия." +msgstr "Създаване и управление на архивни копия." #: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202 #: plinth/modules/backups/__init__.py:247 @@ -281,7 +281,7 @@ msgstr "Наименование" #: plinth/modules/backups/forms.py:101 msgid "(Optional) Set a name for this backup archive" -msgstr "(по избор) Задайте име на архива с резервното копие" +msgstr "(по избор) Задайте име на архивното копие" #: plinth/modules/backups/forms.py:121 msgid "Select the apps you want to restore" @@ -384,14 +384,14 @@ msgstr "" #: plinth/modules/backups/forms.py:247 msgid "SSH server password" -msgstr "Парола за сървъра през SSH" +msgstr "Парола за сървъра на SSH" #: plinth/modules/backups/forms.py:248 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -"Парола за сървъра през SSH.
Удостоверяване на SSH с ключове все още не е " +"Парола за сървъра на SSH.
Удостоверяване на SSH с ключове все още не е " "възможно." #: plinth/modules/backups/forms.py:267 @@ -429,7 +429,7 @@ msgstr "Достъпът през SSH е отказан" #: plinth/modules/backups/repository.py:64 msgid "Repository path is neither empty nor is an existing backups repository." msgstr "" -"Папката на хранилището не е празна, а и не е съществуващо хранилище за " +"Папката на хранилището не е празна, но не е и съществуващо хранилище за " "резервни копия." #: plinth/modules/backups/repository.py:143 @@ -452,7 +452,7 @@ msgstr "Създаване на резервно копие" #: plinth/modules/backups/templates/backups.html:24 msgid "Upload and restore a backup archive" -msgstr "Качване и възстановяване на архив с резервно копие" +msgstr "Качване и възстановяване на архивно копие" #: plinth/modules/backups/templates/backups.html:28 msgid "Upload and Restore" @@ -500,16 +500,16 @@ msgstr "Създаване на хранилище" #: plinth/modules/backups/templates/backups_delete.html:12 msgid "Delete this archive permanently?" -msgstr "" +msgstr "Да бъде ли архива безвъзвратно премахнат?" #: plinth/modules/backups/templates/backups_delete.html:18 msgid "Time" -msgstr "" +msgstr "Време" #: plinth/modules/backups/templates/backups_delete.html:34 #, python-format msgid "Delete Archive %(name)s" -msgstr "" +msgstr "Премахване на архива %(name)s" #: plinth/modules/backups/templates/backups_form.html:20 #: plinth/modules/backups/templates/backups_schedule.html:19 @@ -548,30 +548,30 @@ msgstr "" #: plinth/modules/backups/templates/backups_repository.html:83 msgid "Download" -msgstr "" +msgstr "Изтегляне" #: plinth/modules/backups/templates/backups_repository.html:87 #: plinth/modules/backups/templates/backups_restore.html:27 #: plinth/modules/backups/views.py:206 msgid "Restore" -msgstr "" +msgstr "Възстановяване" #: plinth/modules/backups/templates/backups_repository.html:109 msgid "No archives currently exist." -msgstr "" +msgstr "В момента липсват архиви." #: plinth/modules/backups/templates/backups_repository_remove.html:13 msgid "Are you sure that you want to remove this repository?" -msgstr "Сигурни ли сте, че желаете да премахнете хранилището?" +msgstr "Сигурни ли сте, че желаете хранилището да бъде премахнато?" #: plinth/modules/backups/templates/backups_repository_remove.html:19 msgid "" "The remote repository will not be deleted. This just removes the repository " "from the listing on the backup page, you can add it again later on." msgstr "" -"Отдалеченото хранилище не е премахнато. Това действие го премахва само от " -"списъка на страницата за резервни копия, така че по-късно можете да го " -"добавите отново." +"Отдалеченото хранилище няма да бъде премахнато. Това действие го премахва " +"само от списъка на страницата за резервни копия, така че по-късно да можете " +"да го добавите отново." #: plinth/modules/backups/templates/backups_repository_remove.html:31 msgid "Remove Location" @@ -579,7 +579,7 @@ msgstr "Премахване на хранилище" #: plinth/modules/backups/templates/backups_restore.html:15 msgid "Restore data from" -msgstr "" +msgstr "Възстановяване на данни от" #: plinth/modules/backups/templates/backups_upload.html:17 #, python-format @@ -592,12 +592,16 @@ msgid "" " backup file.\n" " " msgstr "" +"\n" +" Качете резервно копие от %(box_name)s, за да го възстановите. Ще " +"можете да изберете приложенията, които да бъдат възстановени.\n" +" " #: plinth/modules/backups/templates/backups_upload.html:27 #: plinth/modules/help/templates/statuslog.html:23 #: plinth/modules/networks/templates/connection_show.html:23 msgid "Caution:" -msgstr "" +msgstr "Внимание:" #: plinth/modules/backups/templates/backups_upload.html:28 #, python-format @@ -605,10 +609,13 @@ msgid "" "You have %(max_filesize)s available to restore a backup. Exceeding this " "limit can leave your %(box_name)s unusable." msgstr "" +"За възстановяване на резервно копие имате на разположение %(max_filesize)s. " +"Превишаването на това ограничение може да доведе до неизползваемост на " +"%(box_name)s." #: plinth/modules/backups/templates/backups_upload.html:41 msgid "Upload file" -msgstr "" +msgstr "Качване на файл" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:18 #, python-format @@ -626,7 +633,7 @@ msgstr "" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:40 msgid "How to verify?" -msgstr "" +msgstr "Как да проверя?" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:45 msgid "" @@ -637,7 +644,7 @@ msgstr "" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:60 msgid "Verify Host" -msgstr "" +msgstr "Проверяване на хоста" #: plinth/modules/backups/views.py:55 msgid "Backup schedule updated." @@ -649,31 +656,31 @@ msgstr "Резервни копия по график" #: plinth/modules/backups/views.py:106 msgid "Archive created." -msgstr "" +msgstr "Архивът е създаден." #: plinth/modules/backups/views.py:134 msgid "Delete Archive" -msgstr "" +msgstr "Премахване на архив" #: plinth/modules/backups/views.py:146 msgid "Archive deleted." -msgstr "" +msgstr "Архивът е премахнат." #: plinth/modules/backups/views.py:159 msgid "Upload and restore a backup" -msgstr "" +msgstr "Качване и възстановяване от резервно копие" #: plinth/modules/backups/views.py:194 msgid "Restored files from backup." -msgstr "" +msgstr "Файловете от резервното копие са възстановени." #: plinth/modules/backups/views.py:222 msgid "No backup file found." -msgstr "" +msgstr "Не е намерено резервно копие." #: plinth/modules/backups/views.py:230 msgid "Restore from uploaded file" -msgstr "" +msgstr "Възстановяване от качения файл" #: plinth/modules/backups/views.py:289 msgid "No additional disks available to add a repository." @@ -837,7 +844,7 @@ msgid "No passwords currently configured." msgstr "" #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "" @@ -977,9 +984,10 @@ msgid "Refresh IP address and domains" msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1147,7 +1155,7 @@ msgstr "" msgid "General Configuration" msgstr "" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1155,13 +1163,13 @@ msgid "Configure" msgstr "" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "" @@ -1471,6 +1479,7 @@ msgid "Test" msgstr "" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "" @@ -1478,7 +1487,7 @@ msgstr "" msgid "Diagnostic Test" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1486,7 +1495,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1497,54 +1506,62 @@ msgid "" "IP address." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1553,142 +1570,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1702,12 +1641,47 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Връзката е отказана" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2236,6 +2210,11 @@ msgstr "Подаване на обратна връзка" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2585,6 +2564,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2710,10 +2696,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3078,22 +3060,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6260,7 +6226,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7247,7 +7213,7 @@ msgstr "" #: plinth/templates/setup.html:50 msgid "Check again" -msgstr "" +msgstr "Повторна проверка" #: plinth/templates/setup.html:55 msgid "" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index 962150852..b756eb6cd 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-06-16 07:33+0000\n" "Last-Translator: Oymate \n" "Language-Team: Bengali ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1511,142 +1521,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "নাম" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "সম্পর্কে" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1660,12 +1592,45 @@ msgstr "সম্পর্কে" msgid "Status" msgstr "অবস্থা" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "ডোমেন" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2206,6 +2171,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "সম্পর্কে" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2553,6 +2523,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2678,10 +2655,6 @@ msgstr "অনুমতিপত্র" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "ডোমেন" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3046,22 +3019,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6228,7 +6185,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index f21759755..30e0be228 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-15 16:56+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-07 23:55+0000\n" "Last-Translator: Jiří Podhorecký \n" "Language-Team: Czech \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.10.1\n" +"X-Generator: Weblate 4.11-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -858,7 +858,7 @@ msgid "No passwords currently configured." msgstr "V současné době nejsou nakonfigurována žádná hesla." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Heslo" @@ -1004,9 +1004,10 @@ msgid "Refresh IP address and domains" msgstr "Obnovení IP adresy a domén" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1202,7 +1203,7 @@ msgstr "" msgid "General Configuration" msgstr "Obecná nastavení" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1210,13 +1211,13 @@ msgid "Configure" msgstr "Nastavit" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Doménový název" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Neplatný doménový název" @@ -1563,6 +1564,7 @@ msgid "Test" msgstr "Vyzkoušet" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Výsledek" @@ -1570,7 +1572,7 @@ msgstr "Výsledek" msgid "Diagnostic Test" msgstr "Diagnostické testy" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1581,7 +1583,7 @@ msgstr "" "každých 24 hodin), může být pro ostatní obtížné vás na internetu najít. To " "ostatním znemožní najít služby, které jsou poskytovány tímto {box_name}." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1598,15 +1600,35 @@ msgstr "" "váš název DNS k nové IP adrese, a pokud se někdo z Internetu zeptá na váš " "název DNS, dostane odpověď s vaší aktuální IP adresou." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Pokud hledáte bezplatný dynamický účet DNS, můžete najít bezplatnou službu " +"GnuDIP na adrese ddns.freedombox.org nebo můžete najít bezplatné služby založené na " +"aktualizaci URL na adrese freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient dynamické DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Název dynamické domény" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1617,7 +1639,7 @@ msgstr "" "podrobnosti naleznete v šablonách aktualizačních URL adres některých " "poskytovatelů, poskytovaných pro ukázku." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1627,7 +1649,7 @@ msgstr "" "Pokud nepodporuje GnuDIP nebo není na seznamu, můžete použít URL adresu, " "poskytnutou vaším poskytovatelem." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1635,20 +1657,20 @@ msgstr "" "Nezadávejte sem URL adresu (jako třeba „https://example.com/“) ale pouze " "doménu, mířící na GnuDIP server (jako například „example.com“)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Veřejný doménový název který chcete používat pro dosažitelnost svého " "{box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Tuto předvolbu použijte pokud váš poskytovatel používá samy sebou podepsané " "certifikáty." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1656,11 +1678,11 @@ msgstr "" "Pokud je vybrána tato předvolba, pro základní HTTP ověření bude použito vaše " "uživatelské jméno a heslo ." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Pokud chcete zachovat stávající heslo, tuto kolonku nevyplňujte." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1673,161 +1695,68 @@ msgstr "" "skutečné IP adresy. Adresa URL by měla jednoduše vrátit IP adresu, ze které " "klient přichází (příklad: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Uživatelské jméno které bylo použito pro vytvoření účtu." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "další aktualizace URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Zapnout dynamické DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Typ služby" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Adresa GnuDIP serveru" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Neplatný název serveru" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL adresa aktualizace" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Přijímat veškeré SSL certifikáty" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Použít základní HTTP ověřování" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Uživatelské jméno" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Zobrazit heslo" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL adresa na které hledat veřejnou IP adresu" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Použijte IPv6 místo IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Zadejte URL adresu aktualizace nebo GNUDIP serveru" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "požadovaná tajemství" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Zadejte GnuDIP uživatelské jméno" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Zadejte doménový název GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Zadejte heslo" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Pokud hledáte bezplatný dynamický účet DNS, můžete najít bezplatnou službu " -"GnuDIP na adrese ddns.freedombox.org nebo můžete najít bezplatné služby založené na " -"aktualizaci URL na adrese freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Pokud je váš %(box_name)s připojený za NAT směrovačem, nezapomeňte v něm " -"nastavit předávání standardních portů, jako třeba TCP port 80 (HTTP) a TCP " -"port 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Váš webový prohlížeč má vypnutý JavaScript. Dynamický režim formuláře je " -"vypnutý a některé pomocné funkce nemusí fungovat (ale hlavní funkčnost by " -"měla být zachována)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Aktualizovat nastavení" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Typ NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Doposud se nepodařilo zjistit typ NAT překladu. Dokud nezadáte „URL adresu " -"kontroly IP“, typ NAT překladu nebude možné zjistit." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Přímé připojení do Internetu." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Za NAT. To znamená, že služba dynamického DNS bude změny veřejné IP adresy " -"zjišťovat dotazováním na „URL adresu pro zjišťování veřejné IP " -"adresy“ (zadání „URL adresy pro zjišťování veřejné IP adresy“ je pro to " -"potřebné, v opačném případě změny IP adresy nebudou zjištěny). V případě " -"změn WAN IP adresy, může trvat až %(timer)s minut než bude DNS záznam " -"zaktualizován." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Minulá aktualizace" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "O projektu" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1841,13 +1770,60 @@ msgstr "O projektu" msgid "Status" msgstr "Stav" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Nastavit dynamický DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Doména" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Stav dynamického DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Minulá aktualizace" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP adresa" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Přístup" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "selhalo" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Nejsou k dispozici žádné knihovny." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Název připojení" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Smazat připojení" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Automatická aktualizace" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2435,6 +2411,11 @@ msgstr "Odeslat zpětnou vazbu" msgid "Contribute" msgstr "Zapojit se" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "O projektu" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2869,6 +2850,13 @@ msgstr "Přejít na stránku %(site)s" msgid "Delete site %(site)s" msgstr "Smazat stránku %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Aktualizovat nastavení" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3013,10 +3001,6 @@ msgstr "Certifikáty" msgid "Cannot test: No domains are configured." msgstr "Nelze testovat: Nejsou nakonfigurovány žádné domény." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Doména" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Stav certifikátu" @@ -3176,7 +3160,7 @@ msgstr "Prvek" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3451,22 +3435,6 @@ msgstr "Adresa" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Nastavení nejvyššího umožněného počtu hráčů aktualizováno" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Nastavení tvořivého režimu aktualizována" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Nastavení PVP aktualizováno" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Nastavení poškozování aktualizováno" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5439,7 +5407,7 @@ msgstr "E-mailový klient" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Používat pouze místní poštovní server" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5447,6 +5415,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Pokud je povoleno, textové pole pro zadávání serveru je z přihlašovací " +"stránky odstraněno a uživatelé mohou číst a odesílat e-maily pouze z tohoto " +"{box_name}." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5841,10 +5812,8 @@ msgid "Bookmarks" msgstr "Záložky" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6088,14 +6057,12 @@ msgid "Software Installation Snapshots" msgstr "Zachycené stavy instalace software" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Zapnout nebo vypnout pořizování zachycených stavů před a po instalaci " -"software" +"Povolení nebo zakázání zachycených stavů před a po každé instalaci a " +"aktualizaci softwaru." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6331,10 +6298,8 @@ msgid "Login" msgstr "Přihlášení" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Heslo úspěšně změněno." +msgstr "Odhlášení proběhlo úspěšně." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7118,8 +7083,13 @@ msgid "Frequent feature updates activated." msgstr "Aktivovány časté aktualizace funkcí." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7173,11 +7143,10 @@ msgid "Authorization Password" msgstr "Autorizační heslo" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Zadejte své aktuální heslo a autorizujte změny účtu." +msgstr "Zadejte heslo uživatele \"{user}\" pro autorizaci změn účtu." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8272,6 +8241,85 @@ msgstr "%(percentage)s%% dokončeno" msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Zapnout dynamické DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Zadejte URL adresu aktualizace nebo GNUDIP serveru" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Zadejte GnuDIP uživatelské jméno" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Zadejte doménový název GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Zadejte heslo" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Pokud je váš %(box_name)s připojený za NAT směrovačem, nezapomeňte v něm " +#~ "nastavit předávání standardních portů, jako třeba TCP port 80 (HTTP) a " +#~ "TCP port 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Váš webový prohlížeč má vypnutý JavaScript. Dynamický režim formuláře je " +#~ "vypnutý a některé pomocné funkce nemusí fungovat (ale hlavní funkčnost by " +#~ "měla být zachována)." + +#~ msgid "NAT type" +#~ msgstr "Typ NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Doposud se nepodařilo zjistit typ NAT překladu. Dokud nezadáte „URL " +#~ "adresu kontroly IP“, typ NAT překladu nebude možné zjistit." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Přímé připojení do Internetu." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Za NAT. To znamená, že služba dynamického DNS bude změny veřejné IP " +#~ "adresy zjišťovat dotazováním na „URL adresu pro zjišťování veřejné IP " +#~ "adresy“ (zadání „URL adresy pro zjišťování veřejné IP adresy“ je pro to " +#~ "potřebné, v opačném případě změny IP adresy nebudou zjištěny). V případě " +#~ "změn WAN IP adresy, může trvat až %(timer)s minut než bude DNS záznam " +#~ "zaktualizován." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Nastavit dynamický DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Stav dynamického DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Nastavení nejvyššího umožněného počtu hráčů aktualizováno" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Nastavení tvořivého režimu aktualizována" + +#~ msgid "PVP configuration updated" +#~ msgstr "Nastavení PVP aktualizováno" + +#~ msgid "Damage configuration updated" +#~ msgstr "Nastavení poškozování aktualizováno" + #~ msgid "RoundCube availability" #~ msgstr "Dostupnost RoundCube" @@ -9240,9 +9288,6 @@ msgstr "gudžarátština" #~ msgid "Vulnerabilities Reported" #~ msgstr "Nahlášené zranitelnosti" -#~ msgid "Auto-update" -#~ msgstr "Automatická aktualizace" - #~ msgid "Add Remote Location" #~ msgstr "Přidat umístění na protějšku" diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po index e1220f4ac..b9422197d 100644 --- a/plinth/locale/da/LC_MESSAGES/django.po +++ b/plinth/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Danish gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Leder du efter en gratis dynamisk DNS-konto kan du få en gratis GnuDIP-" +"tjeneste på gnudip." +"datasystems24.net eller du kan få en gratis URL-baseret tjeneste på freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamisk DNS Klient" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamisk domænenavn" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1630,7 +1651,7 @@ msgstr "" "bruges i URL'en. For flere detaljer se skabelonerne for opdaterings-URL'er i " "eksemplernes tjenester." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1640,7 +1661,7 @@ msgstr "" "udbyderen ikke understøtter GnuDIP-protokollen eller ikke er prædefineret, " "kan en opdaterings-URL fra din udbyder angives direkte." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1648,16 +1669,16 @@ msgstr "" "Her skal ikke angives en URL (såsom \"https://example.com/\"), men blot " "værtsnavnet for GnuDIP-serveren (såsom \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "Det offentlige domænenavn du vil bruge til at nå din {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "Aktiver dette hvis din udbyder bruger selvunderskrevne certifikater." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1665,11 +1686,11 @@ msgstr "" "Hvis denne option er aktiveret vil dit brugernavn og kodeord blive anvendt " "til basal (\"basic\") HTTP-autentifikation." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Lad dette felt stå tomt hvis du vil beholde dit nuværende kodeord." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1688,165 +1709,66 @@ msgstr "" "hvorfra klientens forespørgsel kommer (eksempelvis: http://myip." "datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Brugernavnet der blev brugt ved kontooprettelse." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "anden opdaterings-URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Aktiver Dynamisk DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Servicetype" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP Serveradresse" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Ugyldigt servernavn" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Opdaterings-URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Accepter alle SSL-certifikater" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Brug basal (\"basic\") HTTP-autentifikation" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Brugernavn" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Vis kodeord" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL til at slå den offentlige IP-addresse op" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Angiv venligst opdaterings-URL eller GnuDIP serveradresse" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Angiv venligst et brugernavn til GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Angiv venligst et domæne til GnuDIP-server" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Angiv venligst et kodeord" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Leder du efter en gratis dynamisk DNS-konto kan du få en gratis GnuDIP-" -"tjeneste på gnudip." -"datasystems24.net eller du kan få en gratis URL-baseret tjeneste på freedns.afraid.org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Hvis din %(box_name)s er tilsluttet bag en NAT-router, så glem ikke at " -"viderestille standardporte såsom TCP-port 80 (HTTP) og TCP-port 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Din browser har ikke aktiveret JavaScript. Dynamiske indtastningsfelter og " -"hjælpefunktionalitet virker formentlig ikke (men grundfunktionaliteten burde " -"fungere)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Opdater indstillinger" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT-type" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT-typen er endnu ikke detekteret. Hvis du ikke har indtastet en \"URL for " -"IP-kontrol\" kan den ikke detekteres." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Direkte forbindelse til internettet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Bag NAT. Dette betyder at Dynamisk DNS-tjenesten ved brug af \"URL for IP-" -"kontrol\" vil tjekke din IP-adresse for ændringer (URL'en er nødvendig af " -"denne grund, ellers kan ændringer i IP ikke detekteres). Hvis din offentlige " -"(WAN) IP-adresse ændres, kan det tage op til %(timer)s minutter inden din " -"registrering i DNS opdateres." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Seneste opdatering" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Om" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1860,13 +1782,60 @@ msgstr "Om" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Konfigurer Dynamisk DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domæne" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Dynamisk DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Seneste opdatering" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-adresse" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Adgang" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "mislykkedes" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Ingen samlinger tilgængelige." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Forbindelsesnavn" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Slet forbindelse" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "Seneste opdatering" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2496,6 +2465,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Om" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, fuzzy, python-format @@ -2917,6 +2891,13 @@ msgstr "Gå til sitet %(site)s" msgid "Delete site %(site)s" msgstr "Slet sitet %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Opdater indstillinger" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3077,10 +3058,6 @@ msgstr "Certifikat Status" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domæne" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Certifikat Status" @@ -3504,30 +3481,6 @@ msgstr "Adresse" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -#, fuzzy -#| msgid "Configuration updated" -msgid "Maximum players configuration updated" -msgstr "Konfiguration opdateret" - -#: plinth/modules/minetest/views.py:55 -#, fuzzy -#| msgid "Configuration updated" -msgid "Creative mode configuration updated" -msgstr "Konfiguration opdateret" - -#: plinth/modules/minetest/views.py:61 -#, fuzzy -#| msgid "Configuration updated" -msgid "PVP configuration updated" -msgstr "Konfiguration opdateret" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -#| msgid "Configuration updated" -msgid "Damage configuration updated" -msgstr "Konfiguration opdateret" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7206,7 +7159,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8369,6 +8322,92 @@ msgstr "%(percentage)s%% færdig" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Aktiver Dynamisk DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Angiv venligst opdaterings-URL eller GnuDIP serveradresse" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Angiv venligst et brugernavn til GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Angiv venligst et domæne til GnuDIP-server" + +#~ msgid "Please provide a password" +#~ msgstr "Angiv venligst et kodeord" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Hvis din %(box_name)s er tilsluttet bag en NAT-router, så glem ikke at " +#~ "viderestille standardporte såsom TCP-port 80 (HTTP) og TCP-port 443 " +#~ "(HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Din browser har ikke aktiveret JavaScript. Dynamiske indtastningsfelter " +#~ "og hjælpefunktionalitet virker formentlig ikke (men grundfunktionaliteten " +#~ "burde fungere)." + +#~ msgid "NAT type" +#~ msgstr "NAT-type" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT-typen er endnu ikke detekteret. Hvis du ikke har indtastet en \"URL " +#~ "for IP-kontrol\" kan den ikke detekteres." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Direkte forbindelse til internettet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Bag NAT. Dette betyder at Dynamisk DNS-tjenesten ved brug af \"URL for IP-" +#~ "kontrol\" vil tjekke din IP-adresse for ændringer (URL'en er nødvendig af " +#~ "denne grund, ellers kan ændringer i IP ikke detekteres). Hvis din " +#~ "offentlige (WAN) IP-adresse ændres, kan det tage op til %(timer)s " +#~ "minutter inden din registrering i DNS opdateres." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Konfigurer Dynamisk DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Dynamisk DNS Status" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Maximum players configuration updated" +#~ msgstr "Konfiguration opdateret" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Creative mode configuration updated" +#~ msgstr "Konfiguration opdateret" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "PVP configuration updated" +#~ msgstr "Konfiguration opdateret" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Damage configuration updated" +#~ msgstr "Konfiguration opdateret" + #, fuzzy #~| msgid "Available Domains" #~ msgid "RoundCube availability" @@ -9158,11 +9197,6 @@ msgstr "" #~ "Konfiguration af PageKite er færdig. Servicerne for HTTP og HTTPS er " #~ "blevet aktiveret." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "Seneste opdatering" - #, fuzzy #~| msgid "Create User" #~ msgid "Add Remote Location" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index c3d706260..52ebefc8d 100644 --- a/plinth/locale/de/LC_MESSAGES/django.po +++ b/plinth/locale/de/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-19 09:56+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-02 08:55+0000\n" "Last-Translator: ikmaak \n" "Language-Team: German \n" @@ -882,7 +882,7 @@ msgid "No passwords currently configured." msgstr "Derzeit sind keine Passwörter konfiguriert." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Passwort" @@ -1030,9 +1030,10 @@ msgid "Refresh IP address and domains" msgstr "IP-Adresse und Domänen aktualisieren" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1233,7 +1234,7 @@ msgstr "" msgid "General Configuration" msgstr "Allgemeine Konfiguration" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1241,13 +1242,13 @@ msgid "Configure" msgstr "Konfigurieren" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Domain-Name" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Ungültiger Domain-Name" @@ -1599,6 +1600,7 @@ msgid "Test" msgstr "Testen" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Ergebnis" @@ -1606,7 +1608,7 @@ msgstr "Ergebnis" msgid "Diagnostic Test" msgstr "Diagnose" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1618,7 +1620,7 @@ msgstr "" "zu finden. Dadurch werden andere daran gehindert, jene Dienste zu finden, " "die von Ihrer {box_name} angeboten werden." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1636,15 +1638,35 @@ msgstr "" "neuen IP zuweisen, und wenn jemand aus dem Internet nach Ihrem DNS-Namen " "fragt, erhält er eine Antwort mit Ihrer aktuellen IP-Adresse." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Ein kostenloser Anbieter für Dynamisches DNS mittels GnuDIP ist " +"beispielsweise ddns.freedombox.org. Auch andere Anbieter wie freedns.afraid.org können " +"mittels Update-URL genutzt werden." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamischer DNS-Client" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamischer Domain-Name" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1654,7 +1676,7 @@ msgstr "" "können in der URL verwendet werden. Details finden Sie in den Update-URL-" "Vorlagen der Beispielanbieter." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1664,7 +1686,7 @@ msgstr "" "Anbieter GnuDIP nicht unterstützt oder der Anbieter nicht aufgeführt ist, " "kann die Aktualisierungs-URL Ihres Anbieters verwendet werden." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1672,20 +1694,20 @@ msgstr "" "Bitte hier keine URL (wie „https://example.com/“) eingeben, sondern nur den " "Hostnamen des GnuDIP-Servers (wie „example.com“)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Der öffentliche Domainname, den Sie verwenden möchten, um Ihre FredomBox " "{box_name} zu erreichen." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Verwenden Sie diese Option, wenn Ihr Anbieter eigensignierte Zertifikate " "verwendet." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1693,12 +1715,12 @@ msgstr "" "Ist diese Option ausgewählt, werden der Benutzername und das Passwort des " "Dynamic-DNS-Kontos auch zur HTTP-Authentifizierung verwendet." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" "Dieses Feld leerlassen, wenn Sie das Passwort unverändert lassen möchten." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1711,160 +1733,68 @@ msgstr "" "URL verwendet, um die wahre IP-Adresse zu bestimmen. Die URL sollte nur die " "IP-Adresse des Clients liefern (Beispiel: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Benutzername, der beim Erstellen des Kontos gewählt wurde." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "andere Update-URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Dynamisches DNS einschalten" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Typ des Dienstes" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP-Server-Adresse" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Ungültiger Servername" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL aktualisieren" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Alle SSL-Zertifikate akzeptieren" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "HTTP-Basisauthentifizierung verwenden" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Benutzername" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Passwort anzeigen" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "Auf die öffentliche IP-Adresse verweisende URL" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Verwenden Sie IPv6 statt IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Bitte eine Update-URL oder eine GnuDIP-Serveradresse angeben" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "Secrets erforderlich" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Bitte einen GnuDIP-Benutzernamen angeben" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Bitte einen GnuDIP-Domainnamen angeben" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Bitte ein Passwort angeben" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Ein kostenloser Anbieter für Dynamisches DNS mittels GnuDIP ist " -"beispielsweise ddns.freedombox.org. Auch andere Anbieter wie freedns.afraid.org können " -"mittels Update-URL genutzt werden." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Wenn Ihre %(box_name)s hinter einem NAT-Router angeschlossen ist, muss " -"zusätzlich im Router das Portforwarding für Standardports, einschließlich " -"TCP-Port 80 (HTTP) und TCP-Port 443 (HTTPS), eingerichtet werden." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Javasript ist deaktiviert. Der dynamische Formularmodus ist damit nicht " -"möglich und einige Hilfsfunktionen werden möglicherweise nicht funktionieren " -"(aber die Hauptfunktionalität sollte gegeben sein)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Übernehmen der Änderungen" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT-Typ" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Der NAT-Typ konnte noch nicht erkannt werden. Wenn keine „IP-Check-URL“ " -"angegeben wurde, kann der NAT-Typ nicht erkannt werden." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Direkte Verbindung zum Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Hinter einem NAT. Dies bedeutet, dass der Dynamische DNS-Dienst für " -"Änderungen die „URL zur Abfrage der öffentlichen IP-Adresse“ aufrufen wird " -"(diese URL ist erforderlich, um Änderungen der IP-Adresse zu erkennen). Im " -"Falle einer Änderung Ihrer WAN-IP-Adresse kann es möglicherweise bis zu " -"%(timer)s Minuten dauern bis der DNS-Eintrag aktualisiert ist." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Letztes Update" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Info" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1878,13 +1808,60 @@ msgstr "Info" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Dynamisches DNS konfigurieren" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domain" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Status Dynamisches DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Letztes Update" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-Adresse" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Zugriff" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "gescheitert" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Keine Bibliotheken verfügbar." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Verbindungsname" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Verbindung löschen" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Automatisches Update" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2484,6 +2461,11 @@ msgstr "Feedback geben" msgid "Contribute" msgstr "Mitwirken" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Info" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2928,6 +2910,13 @@ msgstr "Gehe zu Seite %(site)s" msgid "Delete site %(site)s" msgstr "Seite %(site)s löschen" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Übernehmen der Änderungen" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3074,10 +3063,6 @@ msgstr "Zertifikate" msgid "Cannot test: No domains are configured." msgstr "Kann nicht testen: Es sind keine Domains konfiguriert." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domain" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Zertifikatstatus" @@ -3239,7 +3224,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3520,22 +3505,6 @@ msgstr "Adresse" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Einstellung für Maximale Spielerzahl aktualisiert" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Kreativ-Modus-Konfiguration aktualisiert" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Spieler-gegen-Spieler-Konfiguration aktualisiert" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Schaden-Konfiguration aktualisiert" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5541,7 +5510,7 @@ msgstr "E-Mail-Client" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Nur den lokalen Mailserver verwenden" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5549,6 +5518,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Wenn diese Option aktiviert ist, wird das Textfeld für die Servereingabe von " +"der Anmeldeseite entfernt und Benutzer können nur E-Mails von diesem " +"{box_name} lesen und senden." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5947,10 +5919,8 @@ msgid "Bookmarks" msgstr "Lesezeichen" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6199,13 +6169,12 @@ msgid "Software Installation Snapshots" msgstr "Softwareinstallation-Schnappschüsse" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Schnappschüsse vor und nach Softwareinstallationen ein- oder auschalten" +"Schnappschüsse vor und nach jeder Softwareinstallationen und -Aktualisierung " +"ein- oder auschalten." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6444,10 +6413,8 @@ msgid "Login" msgstr "Anmelden" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Passwort erfolgreich geändert." +msgstr "Erfolgreich abgemeldet." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7256,8 +7223,13 @@ msgid "Frequent feature updates activated." msgstr "Häufige Funktions-Updates aktiviert." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7311,12 +7283,12 @@ msgid "Authorization Password" msgstr "Autorisierungs-Passwort" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." msgstr "" -"Geben Sie Ihr aktuelles Kennwort ein, um Kontoänderungen zu autorisieren." +"Geben Sie das Passwort für den Benutzer „{user}“ ein, um Kontoänderungen zu " +"autorisieren." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8438,6 +8410,85 @@ msgstr "%(percentage)s %% abgeschlossen" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Dynamisches DNS einschalten" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Bitte eine Update-URL oder eine GnuDIP-Serveradresse angeben" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Bitte einen GnuDIP-Benutzernamen angeben" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Bitte einen GnuDIP-Domainnamen angeben" + +#~ msgid "Please provide a password" +#~ msgstr "Bitte ein Passwort angeben" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Wenn Ihre %(box_name)s hinter einem NAT-Router angeschlossen ist, muss " +#~ "zusätzlich im Router das Portforwarding für Standardports, einschließlich " +#~ "TCP-Port 80 (HTTP) und TCP-Port 443 (HTTPS), eingerichtet werden." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Javasript ist deaktiviert. Der dynamische Formularmodus ist damit nicht " +#~ "möglich und einige Hilfsfunktionen werden möglicherweise nicht " +#~ "funktionieren (aber die Hauptfunktionalität sollte gegeben sein)." + +#~ msgid "NAT type" +#~ msgstr "NAT-Typ" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Der NAT-Typ konnte noch nicht erkannt werden. Wenn keine „IP-Check-URL“ " +#~ "angegeben wurde, kann der NAT-Typ nicht erkannt werden." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Direkte Verbindung zum Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Hinter einem NAT. Dies bedeutet, dass der Dynamische DNS-Dienst für " +#~ "Änderungen die „URL zur Abfrage der öffentlichen IP-Adresse“ aufrufen " +#~ "wird (diese URL ist erforderlich, um Änderungen der IP-Adresse zu " +#~ "erkennen). Im Falle einer Änderung Ihrer WAN-IP-Adresse kann es " +#~ "möglicherweise bis zu %(timer)s Minuten dauern bis der DNS-Eintrag " +#~ "aktualisiert ist." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Dynamisches DNS konfigurieren" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Status Dynamisches DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Einstellung für Maximale Spielerzahl aktualisiert" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Kreativ-Modus-Konfiguration aktualisiert" + +#~ msgid "PVP configuration updated" +#~ msgstr "Spieler-gegen-Spieler-Konfiguration aktualisiert" + +#~ msgid "Damage configuration updated" +#~ msgstr "Schaden-Konfiguration aktualisiert" + #~ msgid "RoundCube availability" #~ msgstr "Verfügbarkeit von RoundCube" @@ -9418,9 +9469,6 @@ msgstr "Gujarati" #~ msgid "Vulnerabilities Reported" #~ msgstr "Gemeldete Sicherheitslücken" -#~ msgid "Auto-update" -#~ msgstr "Automatisches Update" - #, fuzzy #~| msgid "Add Remote Repository" #~ msgid "Add Remote Location" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index c0397b3c3..422858d38 100644 --- a/plinth/locale/django.pot +++ b/plinth/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -792,7 +792,7 @@ msgid "No passwords currently configured." msgstr "" #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "" @@ -932,9 +932,10 @@ msgid "Refresh IP address and domains" msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1102,7 +1103,7 @@ msgstr "" msgid "General Configuration" msgstr "" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1110,13 +1111,13 @@ msgid "Configure" msgstr "" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "" @@ -1426,6 +1427,7 @@ msgid "Test" msgstr "" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "" @@ -1433,7 +1435,7 @@ msgstr "" msgid "Diagnostic Test" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1441,7 +1443,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1452,54 +1454,62 @@ msgid "" "IP address." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1508,142 +1518,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1657,12 +1589,45 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2191,6 +2156,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2538,6 +2508,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2663,10 +2640,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3031,22 +3004,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6211,7 +6168,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index f12f5dcd4..0fe94f6f6 100644 --- a/plinth/locale/el/LC_MESSAGES/django.po +++ b/plinth/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-04-14 04:27+0000\n" "Last-Translator: Michalis \n" "Language-Team: Greek gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Εάν ψάχνετε για ένα δωρεάν λογαριασμό δυναμικού DNS, μπορείτε να βρείτε μια " +"δωρεάν GnuDIP υπηρεσια στο gnudip.datasystems24.net ή μια δωρεάν υπηρεσία URL " +"ανανέωσης στο freedns." +"afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Πελάτης δυναμικού DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Δυναμικό όνομα διαδικτύου" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1682,7 +1704,7 @@ msgstr "" "διαδικτύου > μπορούν να χρησιμοποιηθούν μέσα στη διεύθυνση URL. Για " "λεπτομέρειες, ανατρέξτε στα παραδείγματα URL των παρόχων." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1693,7 +1715,7 @@ msgstr "" "υπηρεσία παροχής σας δεν παρατίθεται, μπορείτε να χρησιμοποιήσετε τη " "διεύθυνση URL που δίνει ο παροχέας σας για την ανανέωση." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1701,19 +1723,19 @@ msgstr "" "Παρακαλώ μην εισάγετε μια διεύθυνση URL εδώ (όπως \"https://example.com/\"), " "αλλά μόνο το όνομα του διακομιστή GnuDIP (όπως \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Το δημόσιο όνομα διαδικτύου που θέλετε να χρησιμοποιήσετε για το {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Χρησιμοποιήστε αυτήν την επιλογή εάν ο παροχέας σας χρησιμοποιεί SSL " "πιστοποιητικά που δεν είναι εγγεκριμένο από αρχή πιστοποιητικών." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1721,13 +1743,13 @@ msgstr "" "Εάν αυτή η επιλογή είναι ενεργοποιημένη, το όνομα χρήστη και ο κωδικός " "πρόσβασής σας θα χρησιμοποιηθούν για τον βασικό έλεγχο ταυτότητας HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" "Αφήστε αυτό το πεδίο κενό αν θέλετε να διατηρήσετε τον τρέχοντα κωδικό " "πρόσβασής σας." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1746,169 +1768,67 @@ msgstr "" "διεύθυνση URL θα πρέπει απλά να επιστρέψει την IP από την οποία προέρχεται ο " "πελάτης (παράδειγμα: http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" "Το όνομα χρήστη που χρησιμοποιήθηκε κατά τη δημιουργία του λογαριασμού." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "Διεύθυνση URL ενημέρωσης" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Ενεργοποιήστε το Δυναμικό DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Τύπος υπηρεσίας" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Διεύθυνση διακομιστή GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Μη έγκυρο όνομα διακομιστή" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Διεύθυνση URL ενημέρωσης" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Αποδοχή όλων των πιστοποιητικών SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Χρήση βασικού ελέγχου ταυτότητας HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Όνομα χρήστη" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Εμφάνιση κωδικού" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "Διεύθυνση URL για να αναζητήσετε δημόσια IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Δώστε μια διεύθυνση URL ανανέωσης ή ένα διακομιστή GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Παρακαλώ δώστε ένα όνομα χρήστη GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Δώστε ένα όνομα διαδικτύου για το GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Δώστε έναν κωδικό πρόσβασης" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Εάν ψάχνετε για ένα δωρεάν λογαριασμό δυναμικού DNS, μπορείτε να βρείτε μια " -"δωρεάν GnuDIP υπηρεσια στο gnudip.datasystems24.net ή μια δωρεάν υπηρεσία URL " -"ανανέωσης στο freedns." -"afraid.org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Εάν τo %(box_name)s είναι συνδεδεμένο πίσω από ένα δρομολογητή NAT, μην " -"ξεχάσετε να προσθέσετε προώθηση θυρών για τυπικές θύρες, συμπεριλαμβανομένης " -"της θύρας TCP 80 (HTTP) και της θύρας TCP 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Έχετε απενεργοποιήσει την JavaScript. Η λειτουργία δυναμικής φόρμας είναι " -"απενεργοποιημένη και ορισμένες βοηθητικές λειτουργίες ενδέχεται να μην " -"λειτουργούν (βασικές λειτουρίες θα είναι εντάξει παραυτά)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Ενημέρωση ρυθμίσεων" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Τύπος NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Ο τύπος NAT δεν εντοπίστηκε ακόμα. Εάν δεν παρέχετε μια \"διεύθυνση URL " -"ελέγχου IP\", δεν θα ανιχνεύσουμε έναν τύπο NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Άμεση σύνδεση στο Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Πίσω από δίκτυο ΝΑΤ. Αυτό σημαίνει ότι το δυναμικό DNS θα αναζητήσει την " -"δημόσια διεύθυνση ΙΡ στην υπηρεσία του URL ανανέωσης (η υπηρεσία του URL " -"ανανέωσης χρειάζεται σε αυτή την περίπτωση). Στην περίπτωση που η δημόσια IP " -"σας αλλάξει μπορεί να χρεαστουν %(timer)s λεπτά για να ανανεωθεί το DNS." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Τελευταία ενημέρωση" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Σχετικά με" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1922,13 +1842,60 @@ msgstr "Σχετικά με" msgid "Status" msgstr "Κατάσταση" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Ρύθμιση παραμέτρων δυναμικού DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Όνομα διαδικτύου" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Κατάσταση δυναμικού DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Τελευταία ενημέρωση" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Διεύθυνση IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Πρόσβαση" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "Setup failed." +msgid "Failed" +msgstr "Η εγκατάσταση απέτυχε." + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No repositories available." +msgid "No status available." +msgstr "Δεν υπάρχουν διαθέσιμα αποθετήρια." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Όνομα σύνδεσης" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Διαγραφή σύνδεσης" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Enable auto-update" +msgid "Already up-to-date" +msgstr "Ενεργοποίηση αυτόματων ενημερώσεων" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2540,6 +2507,11 @@ msgstr "Υποβάλετε σχόλια" msgid "Contribute" msgstr "Συνεισφέρετε" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Σχετικά με" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -3006,6 +2978,13 @@ msgstr "Μεταβείτε στην τοποθεσία %(site)s" msgid "Delete site %(site)s" msgstr "Διαγραφή ιστότοπου %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Ενημέρωση ρυθμίσεων" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3156,10 +3135,6 @@ msgstr "Πιστοποιητικά" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Όνομα διαδικτύου" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Κατάσταση πιστοποιητικού" @@ -3604,22 +3579,6 @@ msgstr "Διεύθυνση" msgid "Port" msgstr "Θύρα" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Η ρύθμιση μέγιστου αριθμού παικτών πραγματοποιήθηκε" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Η ρυθμιση δημιουργικής λειτουργίας πραγματοποιήθηκε" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Η ρύθμιση PVP ενημερώθηκε" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Η ρύθμιση ζημιών ενημερώθηκε" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7368,8 +7327,13 @@ msgid "Frequent feature updates activated." msgstr "" #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8574,6 +8538,84 @@ msgstr "ολοκληρώθηκε το %(percentage)s%%" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Ενεργοποιήστε το Δυναμικό DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Δώστε μια διεύθυνση URL ανανέωσης ή ένα διακομιστή GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Παρακαλώ δώστε ένα όνομα χρήστη GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Δώστε ένα όνομα διαδικτύου για το GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Δώστε έναν κωδικό πρόσβασης" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Εάν τo %(box_name)s είναι συνδεδεμένο πίσω από ένα δρομολογητή NAT, μην " +#~ "ξεχάσετε να προσθέσετε προώθηση θυρών για τυπικές θύρες, " +#~ "συμπεριλαμβανομένης της θύρας TCP 80 (HTTP) και της θύρας TCP 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Έχετε απενεργοποιήσει την JavaScript. Η λειτουργία δυναμικής φόρμας είναι " +#~ "απενεργοποιημένη και ορισμένες βοηθητικές λειτουργίες ενδέχεται να μην " +#~ "λειτουργούν (βασικές λειτουρίες θα είναι εντάξει παραυτά)." + +#~ msgid "NAT type" +#~ msgstr "Τύπος NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Ο τύπος NAT δεν εντοπίστηκε ακόμα. Εάν δεν παρέχετε μια \"διεύθυνση URL " +#~ "ελέγχου IP\", δεν θα ανιχνεύσουμε έναν τύπο NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Άμεση σύνδεση στο Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Πίσω από δίκτυο ΝΑΤ. Αυτό σημαίνει ότι το δυναμικό DNS θα αναζητήσει την " +#~ "δημόσια διεύθυνση ΙΡ στην υπηρεσία του URL ανανέωσης (η υπηρεσία του URL " +#~ "ανανέωσης χρειάζεται σε αυτή την περίπτωση). Στην περίπτωση που η δημόσια " +#~ "IP σας αλλάξει μπορεί να χρεαστουν %(timer)s λεπτά για να ανανεωθεί το " +#~ "DNS." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Ρύθμιση παραμέτρων δυναμικού DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Κατάσταση δυναμικού DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Η ρύθμιση μέγιστου αριθμού παικτών πραγματοποιήθηκε" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Η ρυθμιση δημιουργικής λειτουργίας πραγματοποιήθηκε" + +#~ msgid "PVP configuration updated" +#~ msgstr "Η ρύθμιση PVP ενημερώθηκε" + +#~ msgid "Damage configuration updated" +#~ msgstr "Η ρύθμιση ζημιών ενημερώθηκε" + #, fuzzy #~| msgid "Unavailable Shares" #~ msgid "RoundCube availability" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index 8489032f6..717067a86 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -7,9 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2021-12-31 18:51+0000\n" -"Last-Translator: Fioddor Superconcentrado \n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-07 23:55+0000\n" +"Last-Translator: Jaime Marquínez Ferrándiz \n" "Language-Team: Spanish \n" "Language: es\n" @@ -17,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.10.1\n" +"X-Generator: Weblate 4.11-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -880,10 +881,10 @@ msgid "No passwords currently configured." msgstr "Actualmente no hay contraseñas configuradas." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" -msgstr "Clave de acceso" +msgstr "Contraseña" #: plinth/modules/bepasty/views.py:22 msgid "admin" @@ -1028,9 +1029,10 @@ msgid "Refresh IP address and domains" msgstr "Actualizar direcciones IP y dominios" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1225,7 +1227,7 @@ msgstr "" msgid "General Configuration" msgstr "Configuración general" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1233,13 +1235,13 @@ msgid "Configure" msgstr "Configurar" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Nombre de dominio" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Nombre de dominio no válido" @@ -1591,6 +1593,7 @@ msgid "Test" msgstr "Test" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Resultado" @@ -1598,7 +1601,7 @@ msgstr "Resultado" msgid "Diagnostic Test" msgstr "Test de diagnóstico" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1609,7 +1612,7 @@ msgstr "" "24h) será muy difícil para los demás encontrarle en Internet. Este servicio " "permitirá a otros encontrar los servicios que ofrece {box_name}." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1626,15 +1629,35 @@ msgstr "" "asigna su nombre DNS a esta nueva IP de forma que cualquiera que pida su " "nombre DNS obtendrá la dirección IP actualizada." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Si necesita una cuenta libre de DNS dinámico, puede encontrar un servicio " +"GnuDIP gratuito en gnudip.datasystems24.net o un servicio basado en URL de " +"actualización en freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Cliente de DNS dinámico" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Nombre de dominio dinámico" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1644,7 +1667,7 @@ msgstr "" "pueden usar en la URL. Para más información consulte las plantillas para " "actualizar URL de los ejemplos incluidos." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1654,7 +1677,7 @@ msgstr "" "el protocolo GnuDIP o no aparece en el listado deberá usar la URL de " "actualización de su proveedor." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1662,17 +1685,17 @@ msgstr "" "Por favor no introduzca una URL (\"https://ejemplo.com/\"), solo el nombre " "de su servidor GnuDIP (\"ejemplo.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Nombre de dominio público que quiere usar para identificar su {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "Elija esta opción si su proveedor usa certificados autofirmados." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1680,11 +1703,11 @@ msgstr "" "Si selecciona esta opción su nombre de usuaria/o y clave se emplearán en la " "autenticación básica de HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Deje vacío este campo si quiere conservar su clave actual." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1702,169 +1725,68 @@ msgstr "" "número IP real. La URL debería devolver simplemente el número IP del cliente " "(p.e. http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "El nombre de usuaria/o que empleó al crear la cuenta." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "Otra URL de actualización" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Activar DNS dinámico" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Tipo de servicio" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Dirección del servidor GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Nombre de servidor no válido" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL de actualización" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Aceptar todos los certificados SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Usar autenticación básica de HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Nombre de usuaria/o" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Mostrar clave de acceso" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL para consultar la IP pública" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Use IPv6 en vez de IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "" -"Por favor indique una URL de actualización o la dirección de un servidor " -"GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Por favor indique un nombre de usuaria/o GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Por favor indique un nombre de dominio GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Por favor indique una clave de acceso" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 +#: plinth/modules/dynamicdns/forms.py:123 #, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Si necesita una cuenta libre de DNS dinámico, puede encontrar un servicio " -"GnuDIP gratuito en gnudip.datasystems24.net o un servicio basado en URL de " -"actualización en freedns.afraid.org." +#| msgid "secrets required" +msgid "This field is required." +msgstr "se requieren secretos" -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Si su %(box_name)s está conectada a través de un router NAT, no olvide " -"configurar el redireccionamiento para los puertos estándar, incluyendo el " -"puerto 80 TCP (HTTP) y el puerto 443 TCP (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Ha desactivado Javascript. El modo de formulario dinámico está desactivado y " -"algunas funciones de ayuda podrían no funcionar (pero la funcionalidad " -"principal sí debería responder)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Actualizar configuración" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Tipo NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Tipo de NAT no detectado aún. Si no ha facilitado una \"URL para " -"comprobación de IP\" no se detectará el tipo de NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Acceso directo a Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Detrás del NAT. El servicio de DNS dinámico consultará los cambios a través " -"de la \"URL para consulta de IP pública\" (se necesita el valor de la \"URL " -"para consulta de IP pública\", de otro modo no se detectarán los cambios de " -"IP). En caso de que cambie la IP WAN, se necesitarán %(timer)s minutos para " -"actualizar su DNS." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Última actualización" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Acerca de" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1878,13 +1800,60 @@ msgstr "Acerca de" msgid "Status" msgstr "Estado" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Configurar DNS dinámico" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Dominio" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Estado del DNS dinámico" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Última actualización" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Dirección IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Acceso" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "Falló" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "No hay bibliotecas disponibles." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Nombre de conexión" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Eliminar conexión" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Actualización automática" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2498,6 +2467,11 @@ msgstr "Enviar Comentarios" msgid "Contribute" msgstr "Contribuír" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Acerca de" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2943,6 +2917,13 @@ msgstr "Ir al sitio %(site)s" msgid "Delete site %(site)s" msgstr "Eliminar sitio %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Actualizar configuración" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3088,10 +3069,6 @@ msgstr "Certificados" msgid "Cannot test: No domains are configured." msgstr "No puedo probar: No hay dominios configurados." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Dominio" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Estado del certificado" @@ -3530,22 +3507,6 @@ msgstr "Dirección" msgid "Port" msgstr "Puerto" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Configuración de número máximo de jugadoras/es actualizada" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Configuración del modo creativo actualizada" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Configuración PVP actualizada" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Configuración de daño actualizada" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7221,8 +7182,13 @@ msgid "Frequent feature updates activated." msgstr "Las actualizaciones funcionales frecuentes están activadas." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8386,6 +8352,86 @@ msgstr "%(percentage)s%% completado" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Activar DNS dinámico" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "Por favor indique una URL de actualización o la dirección de un servidor " +#~ "GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Por favor indique un nombre de usuaria/o GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Por favor indique un nombre de dominio GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Por favor indique una clave de acceso" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Si su %(box_name)s está conectada a través de un router NAT, no olvide " +#~ "configurar el redireccionamiento para los puertos estándar, incluyendo el " +#~ "puerto 80 TCP (HTTP) y el puerto 443 TCP (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Ha desactivado Javascript. El modo de formulario dinámico está " +#~ "desactivado y algunas funciones de ayuda podrían no funcionar (pero la " +#~ "funcionalidad principal sí debería responder)." + +#~ msgid "NAT type" +#~ msgstr "Tipo NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Tipo de NAT no detectado aún. Si no ha facilitado una \"URL para " +#~ "comprobación de IP\" no se detectará el tipo de NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Acceso directo a Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Detrás del NAT. El servicio de DNS dinámico consultará los cambios a " +#~ "través de la \"URL para consulta de IP pública\" (se necesita el valor de " +#~ "la \"URL para consulta de IP pública\", de otro modo no se detectarán los " +#~ "cambios de IP). En caso de que cambie la IP WAN, se necesitarán %(timer)s " +#~ "minutos para actualizar su DNS." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Configurar DNS dinámico" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Estado del DNS dinámico" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Configuración de número máximo de jugadoras/es actualizada" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Configuración del modo creativo actualizada" + +#~ msgid "PVP configuration updated" +#~ msgstr "Configuración PVP actualizada" + +#~ msgid "Damage configuration updated" +#~ msgstr "Configuración de daño actualizada" + #, fuzzy #~| msgid "unavailable" #~ msgid "RoundCube availability" @@ -9351,9 +9397,6 @@ msgstr "Gujarati" #~ msgid "Vulnerabilities Reported" #~ msgstr "Vulnerabilidades informadas" -#~ msgid "Auto-update" -#~ msgstr "Actualización automática" - #, fuzzy #~| msgid "Add Remote Repository" #~ msgid "Add Remote Location" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index 5fd894e3b..365dea7b8 100644 --- a/plinth/locale/fa/LC_MESSAGES/django.po +++ b/plinth/locale/fa/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-09-07 11:34+0000\n" "Last-Translator: Seyed mohammad ali Hosseinifard \n" "Language-Team: Persian gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"اگر به دنبال یک حساب رایگان DNS متغیر هستید، می‌توانید سرویس رایگان GnuDIP " +"را در gnudip." +"datasystems24.net یا سرویس رایگان به‌روزرسانی نشانی را در freedns.afraid.org به کار ببرید." + +#: plinth/modules/dynamicdns/__init__.py:64 #, fuzzy msgid "Dynamic DNS Client" msgstr "برنامهٔ DNS متغیر (Dynamic DNS Client)" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "نام دامنه" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 #, fuzzy msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " @@ -1640,7 +1661,7 @@ msgstr "" "نشانی URL به کار بروند. برای جزئیات بیشتر الگوهای نشانی‌های به‌روزرسانی را از " "خدمات‌دهنده‌های نمونه ببینید." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1650,7 +1671,7 @@ msgstr "" "خدمات‌دهندهٔ شما از GnuDIP پشتیبانی نمی‌کند یا در فهرست نیست، می‌توانید نشانی " "به‌روزرسانی (update URL) خدمات‌دهنده‌تان را به‌کار ببرید." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1658,18 +1679,18 @@ msgstr "" "لطفاً یک نشانی URL (مانند \"https://example.com/\") را این‌جا ننویسید، بلکه " "تنها نام میزبان سرور GnuDIP را بنویسید (مانند \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "نام دامنهٔ عمومی که با آن می‌خواهید به {box_name} خود وصل شوید." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "اگر خدمات‌دهندهٔ شما گواهی‌نامه‌های خودامضاشده را به‌کار می‌برد این گزینه را " "انتخاب کنید." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 #, fuzzy msgid "" "If this option is selected, your username and password will be used for HTTP " @@ -1678,11 +1699,11 @@ msgstr "" "اگر این گزینه انتخاب شود، نام کاربری و رمز شما برای تأیید هویت سادهٔ تحت وب " "(HTTP basic authentication) به کار خواهد رفت." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "اگر نمی‌خواهید رمزتان را عوض کنید، این‌جا را خالی بگذارید." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1699,168 +1720,66 @@ msgstr "" "روتر NAT وصل باشد) این نشانی برای تعیین IP واقعی به‌کار می‌رود. این نشانی باید " "صرفاً IP را برگرداند (مثال: http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "نام کاربری که هنگام ساختن حساب به‌کار برده شد." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "نشانی به‌روزرسانی" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "فعال‌سازی DNS متغیر" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "نوع سرویس" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "نشانی سرور GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "نام کاربری معتبر نیست" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "نشانی به‌روزرسانی" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "همهٔ گواهی‌نامه‌های SSL را بپذیر" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "به‌کاربردن تأیید هویت سادهٔ تحت وب" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "نام کاربری" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "رمز را نشان بده" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "نشانی برای دیدن آی‌پی عمومی" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"لطفاً یک نشانی به‌روزرسانی (update URL) یا نشانی سرور GnuDIP را وارد کنید" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "لطفاً یک نام کاربری GnuDIP وارد کنید" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "لطفاً یک نام دامنهٔ GnuDIP وارد کنید" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "لطفاً یک رمز وارد کنید" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"اگر به دنبال یک حساب رایگان DNS متغیر هستید، می‌توانید سرویس رایگان GnuDIP " -"را در gnudip." -"datasystems24.net یا سرویس رایگان به‌روزرسانی نشانی را در freedns.afraid.org به کار ببرید." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"اگر %(box_name)s شما از راه یک روتر NAT به اینترنت وصل شده، فراموش نکنید که " -"پورت‌های استاندارد را در تنظیمات روتر خود به درستی روی %(box_name)s تنظیم " -"کنید، از جمله پورت 80 TCP (برای HTTP) و پورت 443 TCP (برای HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -#, fuzzy -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"جاوااسکریپت شما خاموش است. فرم‌های پویا غیرفعال می‌شوند و برخی از تابع‌های کمکی " -"کار نخواهند کرد (البته عملکرد اصلی برنامه همچنان کار می‌کند)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "به‌روزرسانی وضعیت" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "نوع NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"نوع NAT هنوز شناخته نیست. اگر یک نشانی URL برای فهمیدن IP وارد نکنید، " -"نمی‌توانیم نوع NAT را بشناسیم." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "اتصال مستقیم به اینترنت." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, fuzzy, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"اتصال از راه NAT. این یعنی سرویس DNS متغیر نشانی واردشده را برای دیدن " -"تغییرات IP رصد می‌کند (چنین نشانی‌ای برای فهمیدن تغییرات IP لازم است، وگرنه " -"تغییرات IP کشف نمی‌شوند). اگر WAN IP تغییر کند، ممکن است %(timer)s دقیقه طول " -"بکشد تا دادهٔ DNS شما به‌روز شود." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "آخرین به‌روزرسانی" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "درباره" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1875,13 +1794,58 @@ msgstr "درباره" msgid "Status" msgstr "وضعیت" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "پیکربندی DNS متغیر" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "دامنه" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "وضعیت DNS متغیر" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "آخرین به‌روزرسانی" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "نشانی آی‌پی" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access Point" +msgid "Success" +msgstr "نقطهٔ دسترسی" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No wikis or blogs available." +msgid "No status available." +msgstr "ویکی یا وبلاگی موجود نیست." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "نام اتصال" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "پاک‌کردن اتصال" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "آخرین به‌روزرسانی" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2472,6 +2436,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "درباره" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, fuzzy, python-format @@ -2878,6 +2847,13 @@ msgstr "به سایت %(site)s بروید" msgid "Delete site %(site)s" msgstr "سایت %(site)s را پاک کنید" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "به‌روزرسانی وضعیت" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3036,10 +3012,6 @@ msgstr "وضعیت گواهی دیجیتال" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "دامنه" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "وضعیت گواهی دیجیتال" @@ -3439,30 +3411,6 @@ msgstr "نشانی" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -#, fuzzy -#| msgid "Configuration updated" -msgid "Maximum players configuration updated" -msgstr "پیکربندی به‌روز شد" - -#: plinth/modules/minetest/views.py:55 -#, fuzzy -#| msgid "Configuration updated" -msgid "Creative mode configuration updated" -msgstr "پیکربندی به‌روز شد" - -#: plinth/modules/minetest/views.py:61 -#, fuzzy -#| msgid "Configuration updated" -msgid "PVP configuration updated" -msgstr "پیکربندی به‌روز شد" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -#| msgid "Configuration updated" -msgid "Damage configuration updated" -msgstr "پیکربندی به‌روز شد" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6871,7 +6819,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7974,6 +7922,92 @@ msgstr "" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "فعال‌سازی DNS متغیر" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "لطفاً یک نشانی به‌روزرسانی (update URL) یا نشانی سرور GnuDIP را وارد کنید" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "لطفاً یک نام کاربری GnuDIP وارد کنید" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "لطفاً یک نام دامنهٔ GnuDIP وارد کنید" + +#~ msgid "Please provide a password" +#~ msgstr "لطفاً یک رمز وارد کنید" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "اگر %(box_name)s شما از راه یک روتر NAT به اینترنت وصل شده، فراموش نکنید " +#~ "که پورت‌های استاندارد را در تنظیمات روتر خود به درستی روی %(box_name)s " +#~ "تنظیم کنید، از جمله پورت 80 TCP (برای HTTP) و پورت 443 TCP (برای HTTPS)." + +#, fuzzy +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "جاوااسکریپت شما خاموش است. فرم‌های پویا غیرفعال می‌شوند و برخی از تابع‌های " +#~ "کمکی کار نخواهند کرد (البته عملکرد اصلی برنامه همچنان کار می‌کند)." + +#~ msgid "NAT type" +#~ msgstr "نوع NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "نوع NAT هنوز شناخته نیست. اگر یک نشانی URL برای فهمیدن IP وارد نکنید، " +#~ "نمی‌توانیم نوع NAT را بشناسیم." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "اتصال مستقیم به اینترنت." + +#, fuzzy, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "اتصال از راه NAT. این یعنی سرویس DNS متغیر نشانی واردشده را برای دیدن " +#~ "تغییرات IP رصد می‌کند (چنین نشانی‌ای برای فهمیدن تغییرات IP لازم است، وگرنه " +#~ "تغییرات IP کشف نمی‌شوند). اگر WAN IP تغییر کند، ممکن است %(timer)s دقیقه " +#~ "طول بکشد تا دادهٔ DNS شما به‌روز شود." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "پیکربندی DNS متغیر" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "وضعیت DNS متغیر" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Maximum players configuration updated" +#~ msgstr "پیکربندی به‌روز شد" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Creative mode configuration updated" +#~ msgstr "پیکربندی به‌روز شد" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "PVP configuration updated" +#~ msgstr "پیکربندی به‌روز شد" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Damage configuration updated" +#~ msgstr "پیکربندی به‌روز شد" + #, fuzzy #~| msgid "Available Domains" #~ msgid "RoundCube availability" @@ -8415,11 +8449,6 @@ msgstr "" #~ "Pagekite setup finished. The HTTP and HTTPS services are activated now." #~ msgstr "راه‌اندازی Pagekite پایان یافت. سرویس‌های HTTP و HTTPS فعال هستند." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "آخرین به‌روزرسانی" - #, fuzzy #~| msgid "{box_name} Manual" #~ msgid "Download Manual" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index c718228fa..ea05ad996 100644 --- a/plinth/locale/fake/LC_MESSAGES/django.po +++ b/plinth/locale/fake/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers gnudip.datasystems24.net or you may find free update " +#| "URL based services on freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"IF YOU ARE LOOKING FOR A FREE DYNAMIC DNS ACCOUNT, YOU MAY FIND A FREE " +"GNUDIP SERVICE AT GNUDIP.DATASYSTEMS24.NET OR YOU MAY FIND FREE UPDATE URL " +"BASED SERVICES ON " +"FREEDNS.AFRAID.ORG." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "DYNAMIC DNS CLIENT" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "DOMAIN NAME" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1708,7 +1730,7 @@ msgstr "" "USED WITHIN THE URL. FOR DETAILS SEE THE UPDATE URL TEMPLATES OF THE EXAMPLE " "PROVIDERS." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 #, fuzzy #| msgid "" #| "Please choose an update protocol according to your provider. If your " @@ -1723,7 +1745,7 @@ msgstr "" "PROVIDER DOES NOT SUPPORT THE GNUDIP PROTOCOL OR YOUR PROVIDER IS NOT LISTED " "YOU MAY USE THE UPDATE URL OF YOUR PROVIDER." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1731,17 +1753,17 @@ msgstr "" "PLEASE DO NOT ENTER A URL HERE (LIKE \"HTTPS://EXAMPLE.COM/\") BUT ONLY THE " "HOSTNAME OF THE GNUDIP SERVER (LIKE \"EXAMPLE.COM\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, fuzzy, python-brace-format #| msgid "The public domain name you want use to reach your {box_name}." msgid "The public domain name you want to use to reach your {box_name}." msgstr "THE PUBLIC DOMAIN NAME YOU WANT USE TO REACH YOUR {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "USE THIS OPTION IF YOUR PROVIDER USES SELF SIGNED CERTIFICATES." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1749,7 +1771,7 @@ msgstr "" "IF THIS OPTION IS SELECTED, YOUR USERNAME AND PASSWORD WILL BE USED FOR HTTP " "BASIC AUTHENTICATION." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 #, fuzzy #| msgid "" #| "Leave this field empty if you want to keep your previous configured " @@ -1758,7 +1780,7 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" "LEAVE THIS FIELD EMPTY IF YOU WANT TO KEEP YOUR PREVIOUS CONFIGURED PASSWORD." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1776,189 +1798,70 @@ msgstr "" "INTERNET IP. THE URL SHOULD SIMPLY RETURN THE IP WHERE THE CLIENT COMES FROM " "(EXAMPLE: HTTP://MYIP.DATASYSTEMS24.DE)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "UPDATE URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "ENABLE DYNAMIC DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 #, fuzzy #| msgid "Service type" msgid "Service Type" msgstr "SERVICE TYPE" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 #, fuzzy #| msgid "GnudIP Server Address" msgid "GnuDIP Server Address" msgstr "GNUDIP SERVER ADDRESS" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "INVALID SERVER NAME" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "UPDATE URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "ACCEPT ALL SSL CERTIFICATES" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "USE HTTP BASIC AUTHENTICATION" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "USERNAME" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "SHOW PASSWORD" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -#, fuzzy -#| msgid "Please provide update URL or a GnuDIP Server" -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "PLEASE PROVIDE UPDATE URL OR A GNUDIP SERVER" - -#: plinth/modules/dynamicdns/forms.py:146 -#, fuzzy -#| msgid "Please provide GnuDIP username" -msgid "Please provide a GnuDIP username" -msgstr "PLEASE PROVIDE GNUDIP USERNAME" - -#: plinth/modules/dynamicdns/forms.py:150 -#, fuzzy -#| msgid "Please provide GnuDIP domain" -msgid "Please provide a GnuDIP domain name" -msgstr "PLEASE PROVIDE GNUDIP DOMAIN" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "PLEASE PROVIDE A PASSWORD" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services on freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"IF YOU ARE LOOKING FOR A FREE DYNAMIC DNS ACCOUNT, YOU MAY FIND A FREE " -"GNUDIP SERVICE AT GNUDIP.DATASYSTEMS24.NET OR YOU MAY FIND FREE UPDATE URL " -"BASED SERVICES ON " -"FREEDNS.AFRAID.ORG." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, fuzzy, python-format -#| msgid "" -#| "If your %(box_name)s is connected behind some NAT router, don't forget to " -#| "add port forwarding (i.e. forward some standard ports like 80 and 443)." -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"IF YOUR %(box_name)s IS CONNECTED BEHIND SOME NAT ROUTER, DON'T FORGET TO " -"ADD PORT FORWARDING (I.E. FORWARD SOME STANDARD PORTS LIKE 80 AND 443) TO " -"YOUR %(box_name)s DEVICE." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"YOU HAVE DISABLED JAVASCRIPT. DYNAMIC FORM MODE IS DISABLED AND SOME HELPER " -"FUNCTIONS MAY NOT WORK (BUT THE MAIN FUNCTIONALITY SHOULD WORK)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "UPDATE SETUP" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT TYPE" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -#, fuzzy -#| msgid "" -#| "NAT type not detected yet, if you do not provide a \"IP check URL\" we " -#| "will not detect a NAT type." -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT TYPE NOT DETECTED YET, IF YOU DO NOT PROVIDE A \"IP CHECK URL\" WE WILL " -"NOT DETECT A NAT TYPE." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "DIRECT CONNECTION TO THE INTERNET." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, fuzzy, python-format -#| msgid "" -#| "Behind NAT. This means that Dynamic DNS service will poll the \"IP check " -#| "URL\" for changes (the \"IP check URL\" entry is needed for this - " -#| "otherwise IP changes will not be detected). In case the WAN IP changes, " -#| "it may take up to %(timer)s minutes until your DNS entry is updated." -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"BEHIND NAT. THIS MEANS THAT DYNAMIC DNS SERVICE WILL POLL THE \"IP CHECK URL" -"\" FOR CHANGES (THE \"IP CHECK URL\" ENTRY IS NEEDED FOR THIS - OTHERWISE IP " -"CHANGES WILL NOT BE DETECTED). IN CASE THE WAN IP CHANGES, IT MAY TAKE UP " -"TO %(timer)s MINUTES UNTIL YOUR DNS ENTRY IS UPDATED." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "LAST UPDATE" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "ABOUT" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1972,15 +1875,60 @@ msgstr "ABOUT" msgid "Status" msgstr "STATUS" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "CONFIGURE DYNAMIC DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "DOMAIN" -#: plinth/modules/dynamicdns/views.py:86 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "LAST UPDATE" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 #, fuzzy -#| msgid "Dynamic DNS" -msgid "Dynamic DNS Status" -msgstr "DYNAMIC DNS" +#| msgid "IP address" +msgid "IP Address" +msgstr "IP ADDRESS" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Publish Key" +msgid "Success" +msgstr "PUBLISH KEY" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "Setup failed." +msgid "Failed" +msgstr "SETUP FAILED." + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No status available." +msgstr "TOR RELAY PORT AVAILABLE" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "CONNECTION NAME" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "DELETE CONNECTION" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "LAST UPDATE" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2601,6 +2549,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "ABOUT" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, fuzzy, python-format @@ -3011,6 +2964,13 @@ msgstr "GO TO SITE %(site)s" msgid "Delete site %(site)s" msgstr "DELETE SITE %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "UPDATE SETUP" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3170,10 +3130,6 @@ msgstr "CERTIFICATE STATUS" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "DOMAIN" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "CERTIFICATE STATUS" @@ -3592,30 +3548,6 @@ msgstr "ADDRESS" msgid "Port" msgstr "PORT" -#: plinth/modules/minetest/views.py:48 -#, fuzzy -#| msgid "Configuration updated" -msgid "Maximum players configuration updated" -msgstr "CONFIGURATION UPDATED" - -#: plinth/modules/minetest/views.py:55 -#, fuzzy -#| msgid "Configuration updated" -msgid "Creative mode configuration updated" -msgstr "CONFIGURATION UPDATED" - -#: plinth/modules/minetest/views.py:61 -#, fuzzy -#| msgid "Configuration updated" -msgid "PVP configuration updated" -msgstr "CONFIGURATION UPDATED" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -#| msgid "Configuration updated" -msgid "Damage configuration updated" -msgstr "CONFIGURATION UPDATED" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7311,7 +7243,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8485,6 +8417,111 @@ msgstr "%(percentage)s%% COMPLETE" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "ENABLE DYNAMIC DNS" + +#, fuzzy +#~| msgid "Please provide update URL or a GnuDIP Server" +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "PLEASE PROVIDE UPDATE URL OR A GNUDIP SERVER" + +#, fuzzy +#~| msgid "Please provide GnuDIP username" +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "PLEASE PROVIDE GNUDIP USERNAME" + +#, fuzzy +#~| msgid "Please provide GnuDIP domain" +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "PLEASE PROVIDE GNUDIP DOMAIN" + +#~ msgid "Please provide a password" +#~ msgstr "PLEASE PROVIDE A PASSWORD" + +#, fuzzy, python-format +#~| msgid "" +#~| "If your %(box_name)s is connected behind some NAT router, don't forget " +#~| "to add port forwarding (i.e. forward some standard ports like 80 and " +#~| "443)." +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "IF YOUR %(box_name)s IS CONNECTED BEHIND SOME NAT ROUTER, DON'T FORGET TO " +#~ "ADD PORT FORWARDING (I.E. FORWARD SOME STANDARD PORTS LIKE 80 AND 443) TO " +#~ "YOUR %(box_name)s DEVICE." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "YOU HAVE DISABLED JAVASCRIPT. DYNAMIC FORM MODE IS DISABLED AND SOME " +#~ "HELPER FUNCTIONS MAY NOT WORK (BUT THE MAIN FUNCTIONALITY SHOULD WORK)." + +#~ msgid "NAT type" +#~ msgstr "NAT TYPE" + +#, fuzzy +#~| msgid "" +#~| "NAT type not detected yet, if you do not provide a \"IP check URL\" we " +#~| "will not detect a NAT type." +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT TYPE NOT DETECTED YET, IF YOU DO NOT PROVIDE A \"IP CHECK URL\" WE " +#~ "WILL NOT DETECT A NAT TYPE." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "DIRECT CONNECTION TO THE INTERNET." + +#, fuzzy, python-format +#~| msgid "" +#~| "Behind NAT. This means that Dynamic DNS service will poll the \"IP check " +#~| "URL\" for changes (the \"IP check URL\" entry is needed for this - " +#~| "otherwise IP changes will not be detected). In case the WAN IP changes, " +#~| "it may take up to %(timer)s minutes until your DNS entry is updated." +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "BEHIND NAT. THIS MEANS THAT DYNAMIC DNS SERVICE WILL POLL THE \"IP CHECK " +#~ "URL\" FOR CHANGES (THE \"IP CHECK URL\" ENTRY IS NEEDED FOR THIS - " +#~ "OTHERWISE IP CHANGES WILL NOT BE DETECTED). IN CASE THE WAN IP CHANGES, " +#~ "IT MAY TAKE UP TO %(timer)s MINUTES UNTIL YOUR DNS ENTRY IS UPDATED." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "CONFIGURE DYNAMIC DNS" + +#, fuzzy +#~| msgid "Dynamic DNS" +#~ msgid "Dynamic DNS Status" +#~ msgstr "DYNAMIC DNS" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Maximum players configuration updated" +#~ msgstr "CONFIGURATION UPDATED" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Creative mode configuration updated" +#~ msgstr "CONFIGURATION UPDATED" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "PVP configuration updated" +#~ msgstr "CONFIGURATION UPDATED" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Damage configuration updated" +#~ msgstr "CONFIGURATION UPDATED" + #, fuzzy #~| msgid "Enable Subdomains" #~ msgid "RoundCube availability" @@ -9134,11 +9171,6 @@ msgstr "" #~ msgid "This code is not valid" #~ msgstr "THIS CONNECTION IS NOT ACTIVE." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "LAST UPDATE" - #, fuzzy #~| msgid "Create User" #~ msgid "Add Remote Location" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 2dbc22e2d..4ee38b288 100644 --- a/plinth/locale/fr/LC_MESSAGES/django.po +++ b/plinth/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2022-01-22 21:55+0000\n" "Last-Translator: Coucouf \n" "Language-Team: French ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Si vous cherchez un compte DNS dynamique gratuit, vous pourrez sans doute " +"trouver un service compatible GnuDIP sur ddns.freedombox.org ou un service à base d’URL " +"d’actualisation sur freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Client DNS dynamique" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Nom de domaine dynamique" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1661,7 +1683,7 @@ msgstr "" "être utilisées dans l’URL. Pour plus de détails, consultez les modèles d’URL " "d’actualisation pour les fournisseurs donnés en exemple." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1672,7 +1694,7 @@ msgstr "" "pas dans la liste, vous pouvez utiliser l’URL d’actualitation qu’il vous " "aura communiquée." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1680,20 +1702,20 @@ msgstr "" "Veuillez ne pas saisir une URL (comme « https://example.com/ »), mais " "seulement le nom de machine du serveur GnuDIP (comme « example.com »)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Le nom de domaine public que vous désirez utiliser pour joindre votre " "{box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Activez cette option si votre fournisseur utilise des certificats auto-" "signés." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1701,11 +1723,11 @@ msgstr "" "Si ce choix est sélectionné, votre nom d’utilisateur et votre mot de passe " "seront utilisés pour une authentification HTTP de base." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Laissez ce champ vide pour conserver le mot de passe précédent." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1720,166 +1742,69 @@ msgstr "" "lorsqu’elle est connectée à un routeur à translation d’adresse réseau « NAT " "»)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" "Le nom d’utilisateur choisi lors de la création du compte DNS dynamique." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "autre URL d’actualisation" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Activer le DNS dynamique" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Type de service" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Adresse du serveur GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Nom de serveur invalide" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL d’actualisation" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Accepter tous les certificats SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Utiliser l’authentification HTTP basique" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Nom d’utilisateur" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Afficher le mot de passe" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL pour rechercher l’IP publique" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Utiliser IPv6 au lieu d'IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "" -"Veuillez saisir une URL d’actualisation ou une adresse de serveur GnuDIP" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "secrets exigés" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Veuillez saisir un nom d’utilisateur GnuDIP (« Username/Hostname »)" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Veuillez saisir un nom de domaine GnuDIP (« Domain Name »)" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Veuillez saisir un mot de passe" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Si vous cherchez un compte DNS dynamique gratuit, vous pourrez sans doute " -"trouver un service compatible GnuDIP sur ddns.freedombox.org ou un service à base d’URL " -"d’actualisation sur freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Si votre %(box_name)s est connectée derrière un routeur à translation " -"d’adresse réseau (NAT), n’oubliez pas d’ajouter une redirection pour les " -"ports 80 (serveur http) et 443 (serveur sécurisé https) vers l’IP de votre " -"%(box_name)s. La redirection se configure sur l’interface web de votre " -"routeur." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Vous avez désactivé Javascript. Le mode formulaire dynamique est désactivé, " -"quelques fonctions d’aide pourraient ne pas marcher (mais la fonctionnalité " -"principale devrait fonctionner)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Appliquer les changements" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Type de NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Le type de translation d’adresse réseau (NAT) n’a pas encore été déterminé. " -"Si vous ne fournissez pas d’« URL pour rechercher l’IP publique », nous ne " -"pourrons pas détecter le type de NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Connexion directe à Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Derrière un NAT. Cela signifie que votre fournisseur d’URL pour DNS " -"dynamique sondera « l’URL pour rechercher l’IP publique » afin de détecter " -"d’éventuels changements (c’est pour cela que « l’URL pour rechercher l’IP " -"publique » est nécessaire, sinon les changements d’adresse IP ne seront pas " -"détectés). La mise à jour de votre entrée DNS peut prendre jusqu’à %(timer)s " -"minutes en cas de modification de l’IP publique." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Dernière mise à jour" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "À propos" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1893,13 +1818,60 @@ msgstr "À propos" msgid "Status" msgstr "État" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Configurer le DNS Dynamique" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domaine" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Etat du DNS Dynamique" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Dernière mise à jour" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Adresse IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Accès" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "échoué" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Vous n’avez actuellement aucune collection." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Nom Connexion" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Supprimer la connexion" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Enable auto-update" +msgid "Already up-to-date" +msgstr "Activer les mises à jour automatiques" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2494,6 +2466,11 @@ msgstr "Partager vos impressions" msgid "Contribute" msgstr "Participer" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "À propos" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2951,6 +2928,13 @@ msgstr "Aller au site %(site)s" msgid "Delete site %(site)s" msgstr "Supprimer le site %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Appliquer les changements" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3097,10 +3081,6 @@ msgstr "Certificats" msgid "Cannot test: No domains are configured." msgstr "Test impossible : aucun domaine n’est configuré." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domaine" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "État du certificat" @@ -3546,22 +3526,6 @@ msgstr "Adresse" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Configuration du nombre maximum de joueurs mise à jour" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Configuration du mode créatif mise à jour" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Configuration PVP mise à jour" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Configuration des blessures mise à jour" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7310,8 +7274,13 @@ msgid "Frequent feature updates activated." msgstr "Mise à jour régulière des fonctionnalités activée." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8492,6 +8461,90 @@ msgstr "%(percentage)s%% effectué" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Activer le DNS dynamique" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "Veuillez saisir une URL d’actualisation ou une adresse de serveur GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Veuillez saisir un nom d’utilisateur GnuDIP (« Username/Hostname »)" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Veuillez saisir un nom de domaine GnuDIP (« Domain Name »)" + +#~ msgid "Please provide a password" +#~ msgstr "Veuillez saisir un mot de passe" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Si votre %(box_name)s est connectée derrière un routeur à translation " +#~ "d’adresse réseau (NAT), n’oubliez pas d’ajouter une redirection pour les " +#~ "ports 80 (serveur http) et 443 (serveur sécurisé https) vers l’IP de " +#~ "votre %(box_name)s. La redirection se configure sur l’interface web de " +#~ "votre routeur." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Vous avez désactivé Javascript. Le mode formulaire dynamique est " +#~ "désactivé, quelques fonctions d’aide pourraient ne pas marcher (mais la " +#~ "fonctionnalité principale devrait fonctionner)." + +#~ msgid "NAT type" +#~ msgstr "Type de NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Le type de translation d’adresse réseau (NAT) n’a pas encore été " +#~ "déterminé. Si vous ne fournissez pas d’« URL pour rechercher l’IP " +#~ "publique », nous ne pourrons pas détecter le type de NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Connexion directe à Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Derrière un NAT. Cela signifie que votre fournisseur d’URL pour DNS " +#~ "dynamique sondera « l’URL pour rechercher l’IP publique » afin de " +#~ "détecter d’éventuels changements (c’est pour cela que « l’URL pour " +#~ "rechercher l’IP publique » est nécessaire, sinon les changements " +#~ "d’adresse IP ne seront pas détectés). La mise à jour de votre entrée DNS " +#~ "peut prendre jusqu’à %(timer)s minutes en cas de modification de l’IP " +#~ "publique." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Configurer le DNS Dynamique" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Etat du DNS Dynamique" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Configuration du nombre maximum de joueurs mise à jour" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Configuration du mode créatif mise à jour" + +#~ msgid "PVP configuration updated" +#~ msgstr "Configuration PVP mise à jour" + +#~ msgid "Damage configuration updated" +#~ msgstr "Configuration des blessures mise à jour" + #~ msgid "RoundCube availability" #~ msgstr "Disponibilité de RoundCube" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index 1687f1588..3a6c12122 100644 --- a/plinth/locale/gl/LC_MESSAGES/django.po +++ b/plinth/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Galician ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1514,142 +1524,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Acerca de" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1663,12 +1595,45 @@ msgstr "Acerca de" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2201,6 +2166,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Acerca de" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2548,6 +2518,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2673,10 +2650,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3043,22 +3016,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6239,7 +6196,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index 3d4317fc7..10457ee18 100644 --- a/plinth/locale/gu/LC_MESSAGES/django.po +++ b/plinth/locale/gu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Gujarati gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"જો તમે મફત ગતિશીલ DNS એકાઉન્ટ શોધી રહ્યા છો, તમને અહીં મફત GnuDIP સેવા મળી શકે છે gnudip.datasystems24." +"net અથવા તમે મફત અપડેટ URL આધારિત સેવાઓને અહીંથી શોધી શકો છો freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "ડાયનેમિક DNS ક્લાયન્ટ" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "ક્ષેત્રનું નામ" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1579,7 +1600,7 @@ msgstr "" "ચલો <વપરાશકર્તા>,Pass>, <lp>, <ડોમેન> URL ની અંદર ઉપયોગ " "કરી શકાય છે. વિગતો માટે ઉદાહરણ પ્રદાતાઓના અપડેટ URL નમૂનાઓ જુઓ." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1589,7 +1610,7 @@ msgstr "" "પ્રોટોકોલને આધારભૂત નથી અથવા તમારા પ્રદાતા સૂચિબદ્ધ નથી તો તમે તમારા પ્રદાતાના અપડેટ " "URL નો ઉપયોગ કરી શકો છો." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1597,16 +1618,16 @@ msgstr "" "અહીં આવુ URL દાખલ કરશો નહીં (જેમ કે \"https://example.com/\") પરંતુ ફક્ત GnuDIP " "સર્વરનું હોસ્ટનામ (જેમ કે \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "તમારા સુધી પહોંચવા માટે ઉપયોગમાં લેવાતું પબ્લિક ડોમેન નામ {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "આ વિકલ્પનો ઉપયોગ કરો જો તમારા પ્રદાતા સ્વ સહી કરેલ પ્રમાણપત્રોનો ઉપયોગ કરે છે." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1614,11 +1635,11 @@ msgstr "" "જો આ વિકલ્પ પસંદ કરેલ હોય, તો તમારું વપરાશકર્તા નામ અને પાસવર્ડ HTTP મૂળભૂત પ્રમાણીકરણ " "માટે ઉપયોગમાં લેવાશે." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "જો તમે તમારા વર્તમાન પાસવર્ડને રાખવા માંગતા હો તો આ ક્ષેત્ર ખાલી રાખો." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1635,166 +1656,66 @@ msgstr "" "સાથે જોડાયેલું છે) તો આ URL વાસ્તવિક IP એડ્રેસને નક્કી કરવા માટે વપરાય છે. URL IP ને જ્યાં " "ક્લાઈન્ટમાંથી આવે છે ત્યાં જ પાછો મોકલવો જોઈએ (દા.ત http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "વપરાશકર્તાનામ જેનો ઉપયોગ એકાઉન્ટ બનાવવામાં આવ્યો હતો ત્યારે થયો હતો." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "URL અપડેટ કરો" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "ડાયનેમિક DNS સક્ષમ કરો" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "સેવા પ્રકાર" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP સર્વર સરનામું" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "અમાન્ય સર્વર નામ" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL અપડેટ કરો" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "બધા SSL પ્રમાણપત્રો સ્વીકારો" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "HTTP મૂળભૂત પ્રમાણીકરણનો ઉપયોગ કરો" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "વપરાશકર્તા નામ" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "પાસવર્ડ બતાવો" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "જાહેર IP જોવા URL" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "કૃપા કરીને અપડેટ URL અથવા GnuDIP સર્વર સરનામું પ્રદાન કરો" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "કૃપા કરીને GnuDIP વપરાશકર્તાનામ આપો" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "કૃપા કરીને GnuDIP ડોમેન નામ પ્રદાન કરો" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "કૃપા કરીને પાસવર્ડ આપો" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"જો તમે મફત ગતિશીલ DNS એકાઉન્ટ શોધી રહ્યા છો, તમને અહીં મફત GnuDIP સેવા મળી શકે છે gnudip.datasystems24." -"net અથવા તમે મફત અપડેટ URL આધારિત સેવાઓને અહીંથી શોધી શકો છો freedns.afraid.org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"જો તમારી %(box_name)s NRT રાઉટરની પાછળ જોડાયેલ છે, પ્રમાણભૂત પોર્ટ્સ માટે પોર્ટ " -"ફોરવર્ડિંગ ઉમેરવાનું ભૂલશો નહીં, TCP પોર્ટ 80 (HTTP) અને TCP પોર્ટ 443 (HTTPS) નો " -"સમાવેશ થાય છે." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"તમે Javascript ને અક્ષમ કર્યું છે. ગતિશીલ સ્વરૂપ મોડ અક્ષમ છે અને કેટલાક સહાયક કાર્યો કાર્ય " -"કરી શકશે નહીં (પરંતુ મુખ્ય કાર્યક્ષમતાએ કામ કરવું જોઈએ)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "સેટઅપ અપડેટ કરો" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT પ્રકાર" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT પ્રકાર હજુ સુધી મળી નથી. જો તમે \"IP તપાસ URL\" આપશો નહીં, તો અમે NAT પ્રકારને " -"શોધી શકશો નહીં." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "ઇન્ટરનેટ સાથે સીધો જોડાણ." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"NAT પાછળ. આનો અર્થ એ છે કે ડાયનેમિક DNS સેવા ફેરફારો માટે \"જાહેર IP જોવા URL\" " -"મતદાન કરશે (\"જાહેર IP જોવા માટેની URL\" આ માટે આવશ્યક છે, નહીં તો IP ફેરફારો શોધી " -"શકાશે નહીં) જો WAN IP બદલાય, તે તમારા DNS નોંધણીને અપડેટ થાય ત્યાં સુધી %(timer)s " -"મિનિટ સુધી લાગી શકે છે." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "છેલ્લો સુધારો" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "વિશે" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1808,13 +1729,52 @@ msgstr "વિશે" msgid "Status" msgstr "સ્થિતિ" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "ડાયનેમિક DNS રૂપરેખાંકિત કરો" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "ડાયનેમિક DNS સ્થિતિ" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "છેલ્લો સુધારો" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "GnuDIP Server Address" +msgid "IP Address" +msgstr "GnuDIP સર્વર સરનામું" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Conversations" +msgid "Connection timed out" +msgstr "વાતચીત" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "છેલ્લો સુધારો" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2412,6 +2372,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "વિશે" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2763,6 +2728,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "સેટઅપ અપડેટ કરો" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2888,10 +2860,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3272,22 +3240,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6517,7 +6469,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7588,6 +7540,70 @@ msgstr "" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "ડાયનેમિક DNS સક્ષમ કરો" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "કૃપા કરીને અપડેટ URL અથવા GnuDIP સર્વર સરનામું પ્રદાન કરો" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "કૃપા કરીને GnuDIP વપરાશકર્તાનામ આપો" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "કૃપા કરીને GnuDIP ડોમેન નામ પ્રદાન કરો" + +#~ msgid "Please provide a password" +#~ msgstr "કૃપા કરીને પાસવર્ડ આપો" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "જો તમારી %(box_name)s NRT રાઉટરની પાછળ જોડાયેલ છે, પ્રમાણભૂત પોર્ટ્સ માટે પોર્ટ " +#~ "ફોરવર્ડિંગ ઉમેરવાનું ભૂલશો નહીં, TCP પોર્ટ 80 (HTTP) અને TCP પોર્ટ 443 (HTTPS) નો " +#~ "સમાવેશ થાય છે." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "તમે Javascript ને અક્ષમ કર્યું છે. ગતિશીલ સ્વરૂપ મોડ અક્ષમ છે અને કેટલાક સહાયક કાર્યો " +#~ "કાર્ય કરી શકશે નહીં (પરંતુ મુખ્ય કાર્યક્ષમતાએ કામ કરવું જોઈએ)." + +#~ msgid "NAT type" +#~ msgstr "NAT પ્રકાર" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT પ્રકાર હજુ સુધી મળી નથી. જો તમે \"IP તપાસ URL\" આપશો નહીં, તો અમે NAT " +#~ "પ્રકારને શોધી શકશો નહીં." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "ઇન્ટરનેટ સાથે સીધો જોડાણ." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "NAT પાછળ. આનો અર્થ એ છે કે ડાયનેમિક DNS સેવા ફેરફારો માટે \"જાહેર IP જોવા URL\" " +#~ "મતદાન કરશે (\"જાહેર IP જોવા માટેની URL\" આ માટે આવશ્યક છે, નહીં તો IP ફેરફારો " +#~ "શોધી શકાશે નહીં) જો WAN IP બદલાય, તે તમારા DNS નોંધણીને અપડેટ થાય ત્યાં સુધી " +#~ "%(timer)s મિનિટ સુધી લાગી શકે છે." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "ડાયનેમિક DNS રૂપરેખાંકિત કરો" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "ડાયનેમિક DNS સ્થિતિ" + #, fuzzy #~| msgid "Invalid server name" #~ msgid "Enter a valid domain" @@ -7772,11 +7788,6 @@ msgstr "" #~ msgid "Module: %(module_name)s" #~ msgstr "વિભાગ: %(module_name)s" -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "છેલ્લો સુધારો" - #~ msgid "Download Manual" #~ msgstr "માર્ગદર્શિકા ડાઉનલોડ" diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index 1fef45a43..4657b2c36 100644 --- a/plinth/locale/hi/LC_MESSAGES/django.po +++ b/plinth/locale/hi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Hindi gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"अबर आप एक मुक्त डायनेमिक डिएनएस अकाउंट के ढूंढ़ रहे है, शायद आपको एक मुक्त जीएनयूडीआईपी " +"सर्विस यहाँ मिलें gnudip.datasystems24.net या मुक्त अपडेट यूआरएल के जैसे सर्विस " +"यहाँ मिलें freedns.afraid." +"org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "डायनेमिक डिएनएस ग्राहक" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "डोमेन नाम" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1673,7 +1695,7 @@ msgstr "" "यह चर < यूसर>, < पॉस>, < आईपि>, <डोमेन> यूआरएल के अंदर " "उपयोग किया जा सकते है. विवरण पर, उदाहरण प्रदाताअों से अपडेट यूआरएल टेम्पलेट देखें." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1683,7 +1705,7 @@ msgstr "" "नहीं समर्थन करता है या अाप आपना प्रदाता यहाँ नहीं देखतें हैं, आपना प्रदाता का अपडेट यूआरएल " "उपयोग कर सकते हैं." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1691,17 +1713,17 @@ msgstr "" "यहाँ एक यूआरएल दर्ज ने करे, (\"https://example.com/\" के तकह) लेकिन सिर्फ गिएनयुडिपॅ " "सर्वर का होस्टनाम (\"example.com\" कि तरह)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "सार्वजनिक डोमेन नाम कि आपको आपना {box_name} पहुंचने के लिये उपयोग करना चहते हैं." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "अगर आपका प्रदाता स्व-हस्ताक्षर सिटिफ़िकट उपयोग कर सकता हा, यह विकल्प उपयोग करें." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1709,11 +1731,11 @@ msgstr "" "अगर यह विकल्प चुना होगा, आपका युसरनाम और पासवर्ड एचटीटीपी बेसिकॅ प्रमाणीकरण के लिये " "उपयोग कर सकता है." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "अगर आपको आपना वर्तमान पासवर्ड रखना चाहिये, यह खाली छोडिये." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1730,166 +1752,66 @@ msgstr "" "कनेक्टईडॅ है) यह यूआरएल असली आईपी एड्रसॅ चुनने के लिये उपयोग करता है. यह यूआरएल ग्राहक आने " "से जगह को वापस जाना चाहिये ( उदाहरण:http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "जाब अकाउंट बनाया गया था, वो यूसरनाम." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "यूआरएल अपडेट करें" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "डायनेमिक डिएनएस सक्षम करें" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "सेवा टाइप" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "गिएनयुडिपॅ सर्वर एड्रसॅ" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "सर्वर नाम अमान्य है" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "यूआरएल अपडेट करें" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "सब एसएसएल सिटिफ़िकट स्वीकर करें" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "एचटिटिपि बेसिकॅ प्रमाणीकरण उपयोग करें" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "युसरनाम" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "शो पासवर्ड" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "सार्वजनिक आईपी देखने के लियो यूआरएल" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "अपडेट यूआरएल या एक जीएनयूडीआईपी सर्वर एड्रसॅ प्रदान करें" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "जीएनयूडीआईपी युसरनाम दें" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "एक जीएनयूडीआईपी डोमेन नाम प्रदान करें" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "एक पासवर्ड दें" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"अबर आप एक मुक्त डायनेमिक डिएनएस अकाउंट के ढूंढ़ रहे है, शायद आपको एक मुक्त जीएनयूडीआईपी " -"सर्विस यहाँ मिलें gnudip.datasystems24.net या मुक्त अपडेट यूआरएल के जैसे सर्विस " -"यहाँ मिलें freedns.afraid." -"org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"अगर आपका %(box_name)s एक एसएटी रूटर के पीछे कनेक्टेड है, टिसिपि पोर्ट ८० (एचटिटिपि) " -"और टिसिपि पोर्ट ४४३ (एचटिटिपिएस) के लिये पोर्ट अग्रेषण जोड़ना ने भूलिये." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"आपका जावास्क्रिप्ट अक्षम है. डायनेमिक फ़ोर्म मोड अक्षम किया गया है और कुछ सहायक फ़ंक्शन " -"नहीं चल सकता है (लेकिन मुख्य फ़ंक्शनालिटप को चलना चाहिए)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "सेटअप अपडेट" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "एनएटी टआईपॅ" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"एनएटी टआईपॅ अभी तक नहीं पहचया गया है. अगर आप एक \"आईपही चेक यूआरएल\" नहीं प्रदान " -"करते हैं, हम एक एनएटी टआईपॅ नहीं पहचेगें." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "इंटरनेट से सीधा कनेक्शन." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"बिहैन्द एनएटी. इसका मतलब है कि डायनेमिक डीएनएस सेवा \"सार्वजनिक आईपी देखने के लिये " -"यूआरएल\" को पेल करेगा बदलाव को लिये (\"सार्वजनिक आईपी देखने के लिये यूआरएल\" इसके ज़रुरत " -"है या आईपी बदलाव नहीं पता लगता). अगर वान आईपी बदल जाया गया, आपना डीएनएस " -"प्रविष्टि अपडेट होने में %(timer)s मिनट हो सकता." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "अंतिम अपडेट" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "के बारे में" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1903,13 +1825,60 @@ msgstr "के बारे में" msgid "Status" msgstr "स्थिति" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "डायनामिक DNS कॉन्फ़िगर करें" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "डोमेन" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "डायनामिक DNS स्थिति" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "अंतिम अपडेट" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "आइपी एेड्रैस" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access Point" +msgid "Success" +msgstr "अभिगम केंद्र" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "Setup failed." +msgid "Failed" +msgstr "सेटअप विफल." + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No status available." +msgstr "टोर रीले पोर्ट उपलब्ध है" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "कनेक्शन का नाम" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "कनेक्शन हटाएँ" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "अंतिम अपडेट" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2532,6 +2501,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "के बारे में" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2941,6 +2915,13 @@ msgstr "साइट पर जाएं %(site)s" msgid "Delete site %(site)s" msgstr "साइट हटाएं %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "सेटअप अपडेट" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3083,10 +3064,6 @@ msgstr "प्रमाण पत्र" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "डोमेन" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "प्रमाणपत्र स्थिति" @@ -3505,22 +3482,6 @@ msgstr "ऍड्रेस" msgid "Port" msgstr "पोर्ट" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "अधिकतम खिलाड़ी कॉन्फ़िगरेशन अपडेट किया गया" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "क्रिएटिव मोड कॉन्फ़िगरेशन अपडेट किया गया" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "पिवीपि कॉन्फ़िगरेशन अपडेट किया गया" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "क्षति कॉन्फ़िगरेशन अपडेट किया गया" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7178,7 +7139,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8347,6 +8308,81 @@ msgstr "%(percentage)s%% पूर्ण" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "डायनेमिक डिएनएस सक्षम करें" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "अपडेट यूआरएल या एक जीएनयूडीआईपी सर्वर एड्रसॅ प्रदान करें" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "जीएनयूडीआईपी युसरनाम दें" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "एक जीएनयूडीआईपी डोमेन नाम प्रदान करें" + +#~ msgid "Please provide a password" +#~ msgstr "एक पासवर्ड दें" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "अगर आपका %(box_name)s एक एसएटी रूटर के पीछे कनेक्टेड है, टिसिपि पोर्ट ८० " +#~ "(एचटिटिपि) और टिसिपि पोर्ट ४४३ (एचटिटिपिएस) के लिये पोर्ट अग्रेषण जोड़ना ने भूलिये." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "आपका जावास्क्रिप्ट अक्षम है. डायनेमिक फ़ोर्म मोड अक्षम किया गया है और कुछ सहायक फ़ंक्शन " +#~ "नहीं चल सकता है (लेकिन मुख्य फ़ंक्शनालिटप को चलना चाहिए)." + +#~ msgid "NAT type" +#~ msgstr "एनएटी टआईपॅ" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "एनएटी टआईपॅ अभी तक नहीं पहचया गया है. अगर आप एक \"आईपही चेक यूआरएल\" नहीं प्रदान " +#~ "करते हैं, हम एक एनएटी टआईपॅ नहीं पहचेगें." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "इंटरनेट से सीधा कनेक्शन." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "बिहैन्द एनएटी. इसका मतलब है कि डायनेमिक डीएनएस सेवा \"सार्वजनिक आईपी देखने के लिये " +#~ "यूआरएल\" को पेल करेगा बदलाव को लिये (\"सार्वजनिक आईपी देखने के लिये यूआरएल\" इसके " +#~ "ज़रुरत है या आईपी बदलाव नहीं पता लगता). अगर वान आईपी बदल जाया गया, आपना " +#~ "डीएनएस प्रविष्टि अपडेट होने में %(timer)s मिनट हो सकता." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "डायनामिक DNS कॉन्फ़िगर करें" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "डायनामिक DNS स्थिति" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "अधिकतम खिलाड़ी कॉन्फ़िगरेशन अपडेट किया गया" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "क्रिएटिव मोड कॉन्फ़िगरेशन अपडेट किया गया" + +#~ msgid "PVP configuration updated" +#~ msgstr "पिवीपि कॉन्फ़िगरेशन अपडेट किया गया" + +#~ msgid "Damage configuration updated" +#~ msgstr "क्षति कॉन्फ़िगरेशन अपडेट किया गया" + #, fuzzy #~| msgid "Available Domains" #~ msgid "RoundCube availability" @@ -9227,11 +9263,6 @@ msgstr "" #~ "Pagekite setup finished. The HTTP and HTTPS services are activated now." #~ msgstr "पेजकइट सेटअप समाप्त हो गया. HTTP और HTTPS सर्विसस अभी सक्रिय हैं ." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "अंतिम अपडेट" - #, fuzzy #~| msgid "Create User" #~ msgid "Add Remote Location" diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po index 2c3a19b98..d55abc7fc 100644 --- a/plinth/locale/hu/LC_MESSAGES/django.po +++ b/plinth/locale/hu/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-29 13:55+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-09 20:04+0000\n" "Last-Translator: Benedek Nagy \n" "Language-Team: Hungarian \n" @@ -159,9 +159,7 @@ msgstr "Lehetővé teszi a biztonsági mentés létrehozását és kezelését." #: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202 #: plinth/modules/backups/__init__.py:247 msgid "Backups" -msgstr "" -"Biztonsági\n" -"mentések" +msgstr "Biztonsági mentések" #: plinth/modules/backups/__init__.py:199 msgid "" @@ -872,7 +870,7 @@ msgid "No passwords currently configured." msgstr "Jelenleg nincs beállítva jelszó." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Jelszó" @@ -1020,9 +1018,10 @@ msgid "Refresh IP address and domains" msgstr "IP-címek és tartományok frissítése" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1220,7 +1219,7 @@ msgstr "" msgid "General Configuration" msgstr "Általános beállítások" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1228,13 +1227,13 @@ msgid "Configure" msgstr "Beállítások" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Domainnév" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Érvénytelen domainnév" @@ -1583,6 +1582,7 @@ msgid "Test" msgstr "Teszt" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Eredmény" @@ -1590,7 +1590,7 @@ msgstr "Eredmény" msgid "Diagnostic Test" msgstr "Ellenőrző teszt" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1602,7 +1602,7 @@ msgstr "" "Ez megakadályozza, hogy mások megtalálják a {box_name} által biztosított " "szolgáltatásokat." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1620,15 +1620,35 @@ msgstr "" "DNS-neved az új IP-címedhez, és ha valaki az Interneten lekérdezi a DNS-" "neved, válaszként az aktuális IP-címedet fogja megkapni." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Ha ingyenes dinamikus DNS fiókot keresel, használhatod az ingyenes GnuDIP " +"szolgáltatást a ddns.freedombox.org címen vagy az ingyenes frissítési URL alapú " +"szolgáltatást a " +"freedns.afraid.org címen." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dinamikus DNS ügyfél" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dinamikus domainnév" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1638,7 +1658,7 @@ msgstr "" "használhatók az URL-ben. Részletekért tekintsd meg a példa szolgáltatók " "frissítési URL-sablonjait." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1648,7 +1668,7 @@ msgstr "" "protokollt. Ha nem támogatja a GnuDIP-et, vagy nem található a listán, akkor " "használhatod a szolgáltató frissítési URL-jét." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1656,19 +1676,19 @@ msgstr "" "Kérlek, ide ne írj be URL-t (mint pl. „https://pelda.com/”), csak a GnuDIP-" "szerver állomásnevét (mint pl. „pelda.com”)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "A nyilvános domainnév, amellyel el szeretnéd érni a {box_name} eszközödet." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Használd ezt az opciót, ha a szolgáltatód saját aláírású (self signed) " "tanúsítványokat használ." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1676,12 +1696,12 @@ msgstr "" "Ha ez az opció ki van választva, a te felhasználóneved és jelszavad lesz " "használva HTTP alap hitelesítéshez." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" "Hagyd ezt a mezőt üresen, ha szeretnéd megtartani a jelenlegi jelszavad." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1695,161 +1715,68 @@ msgstr "" "egyszerűen visszaadja a kliens IP-címét (pl.: https://ddns.freedombox.org/" "ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "A felhasználónév, amely a fiók létrehozása során lett megadva." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "egyéb frissítési URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Dynamic DNS engedélyezése" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Szolgáltatás típusa" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP-szerver címe" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Érvénytelen szervernév" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Frissítési URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Minden SSL-tanúsítvány elfogadása" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "HTTP alap hitelesítés használata" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Felhasználónév" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Jelszó mutatása" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL a nyilvános IP-cím felderítéséhez" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "IPv6 használata IPv4 helyett" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Kérlek, adj meg egy frissítési URL-t vagy egy GnuDIP-szerver címet" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "titkosítás szükséges" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Kérlek, add meg a GnuDIP-felhasználónevet" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Kérlek, add meg a GnuDIP-domainnevet" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Kérlek, add meg a jelszót" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Ha ingyenes dinamikus DNS fiókot keresel, használhatod az ingyenes GnuDIP " -"szolgáltatást a ddns.freedombox.org címen vagy az ingyenes frissítési URL alapú " -"szolgáltatást a " -"freedns.afraid.org címen." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Ha a %(box_name)s eszközöd NAT-routeren keresztül kapcsolódik az " -"internethez, akkor ne felejtsd el a port továbbításokhoz hozzáadni a " -"szabványos portokat, beleértve a TCP 80-as portot (HTTP-hez) és a TCP 443-as " -"portot (HTTPS-hez)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Letiltottad a Javascriptet. A dinamikus űrlap mód le van tiltva és néhány " -"segéd funkció nem fog működni (de a fő funkcióknak működniük kell)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Beállítások frissítése" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT típusa" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"A NAT típusa még nem lett megállapítva. Ha nem adsz meg egy „IP ellenőrzési " -"URL”-t, nem lehet megállapítani a NAT típusát." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Közvetlen kapcsolat az internetre." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"NAT mögött. Ez azt jelenti hogy a Dynamic DNS szolgáltatás rendszeresen " -"megtekinti az „URL a nyilvános IP-cím megállapításához” címet a változások " -"érzékeléséhez (az „URL a nyilvános IP-cím megállapításához” bejegyzés " -"szükséges ehhez, máskülönben az IP-cím megváltozása nem lesz érzékelve). Az " -"IP-címváltozások esetében eltarthat egészen %(timer)s percig amíg a DNS-" -"bejegyzésed frissítve lesz." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Legutolsó frissítés" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Névjegy" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1863,13 +1790,60 @@ msgstr "Névjegy" msgid "Status" msgstr "Állapot" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Dynamic DNS beállítása" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domain" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Dynamic DNS állapot" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Legutolsó frissítés" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-cím" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Hozzáférés" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "sikertelen" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Nincs elérhető könyvtár." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Kapcsolat neve" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Kapcsolat törlése" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Automatikus frissítés" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2464,6 +2438,11 @@ msgstr "Visszajelzés küldése" msgid "Contribute" msgstr "Hozzájárulás" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Névjegy" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2906,6 +2885,13 @@ msgstr "Ugrás ide: %(site)s" msgid "Delete site %(site)s" msgstr "%(site)s webhely törlése" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Beállítások frissítése" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3053,10 +3039,6 @@ msgstr "Tanúsítványok" msgid "Cannot test: No domains are configured." msgstr "Sikertelen tesztelés: Nincsenek konfigurált domainek." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domain" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Tanúsítvány állapot" @@ -3216,7 +3198,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3493,22 +3475,6 @@ msgstr "Cím" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Maximális játékosszám beállítás frissítve" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Kreatív mód beállítás frissítve" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "PVP beállítás frissítve" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Sérülés beállítás frissítve" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5498,7 +5464,7 @@ msgstr "E-mail kliens" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Kizárólag a helyi levelezőszerver használata" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5506,6 +5472,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Ha engedélyezve van, a szerverhez tartozó beviteli szövegdoboz eltávolítódik " +"a bejelentkezési oldalról, és a felhasználók csak erről a {box_name}ról " +"olvashatnak és küldhetnek leveleket." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5906,10 +5875,8 @@ msgid "Bookmarks" msgstr "Könyvjelzők" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6156,14 +6123,12 @@ msgid "Software Installation Snapshots" msgstr "Szoftvertelepítési pillanatképek" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Pillanatképek készítésének engedélyezése vagy letiltása szoftver telepítése " -"előtt és után" +"Pillanatképek készítésének engedélyezése vagy letiltása minden egyes " +"szoftver és frissítés telepítése előtt és után." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6400,10 +6365,8 @@ msgid "Login" msgstr "Bejelentkezés" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "A jelszó módosítása sikeres." +msgstr "Sikeres kijelentkezés." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7205,8 +7168,13 @@ msgid "Frequent feature updates activated." msgstr "Gyakori funkciófrissítések aktiválva." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7259,11 +7227,11 @@ msgid "Authorization Password" msgstr "Hitelesítési jelszó" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "A fiókmódosítások engedélyezéséhez add meg az aktuális jelszavadat." +msgstr "" +"A fiókmódosítások engedélyezéséhez add meg \"{user}\" felhasználó jelszavát." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8369,6 +8337,85 @@ msgstr "befejezettségi szint: %(percentage)s%%" msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Dynamic DNS engedélyezése" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Kérlek, adj meg egy frissítési URL-t vagy egy GnuDIP-szerver címet" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Kérlek, add meg a GnuDIP-felhasználónevet" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Kérlek, add meg a GnuDIP-domainnevet" + +#~ msgid "Please provide a password" +#~ msgstr "Kérlek, add meg a jelszót" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Ha a %(box_name)s eszközöd NAT-routeren keresztül kapcsolódik az " +#~ "internethez, akkor ne felejtsd el a port továbbításokhoz hozzáadni a " +#~ "szabványos portokat, beleértve a TCP 80-as portot (HTTP-hez) és a TCP 443-" +#~ "as portot (HTTPS-hez)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Letiltottad a Javascriptet. A dinamikus űrlap mód le van tiltva és néhány " +#~ "segéd funkció nem fog működni (de a fő funkcióknak működniük kell)." + +#~ msgid "NAT type" +#~ msgstr "NAT típusa" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "A NAT típusa még nem lett megállapítva. Ha nem adsz meg egy „IP " +#~ "ellenőrzési URL”-t, nem lehet megállapítani a NAT típusát." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Közvetlen kapcsolat az internetre." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "NAT mögött. Ez azt jelenti hogy a Dynamic DNS szolgáltatás rendszeresen " +#~ "megtekinti az „URL a nyilvános IP-cím megállapításához” címet a " +#~ "változások érzékeléséhez (az „URL a nyilvános IP-cím megállapításához” " +#~ "bejegyzés szükséges ehhez, máskülönben az IP-cím megváltozása nem lesz " +#~ "érzékelve). Az IP-címváltozások esetében eltarthat egészen %(timer)s " +#~ "percig amíg a DNS-bejegyzésed frissítve lesz." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Dynamic DNS beállítása" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Dynamic DNS állapot" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Maximális játékosszám beállítás frissítve" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Kreatív mód beállítás frissítve" + +#~ msgid "PVP configuration updated" +#~ msgstr "PVP beállítás frissítve" + +#~ msgid "Damage configuration updated" +#~ msgstr "Sérülés beállítás frissítve" + #~ msgid "RoundCube availability" #~ msgstr "A RoundCube rendelkezésre állása" @@ -9349,9 +9396,6 @@ msgstr "Gudzsaráti" #~ msgid "Vulnerabilities Reported" #~ msgstr "Bejelentett biztonsági rések" -#~ msgid "Auto-update" -#~ msgstr "Automatikus frissítés" - #~ msgid "Add Remote Location" #~ msgstr "Távoli hely hozzáadása" diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index ebe6b4851..dc469b94c 100644 --- a/plinth/locale/id/LC_MESSAGES/django.po +++ b/plinth/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (FreedomBox)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-06-24 00:42+0000\n" "Last-Translator: Reza Almanda \n" "Language-Team: Indonesian gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Jika Anda mencari akun DNS dinamis gratis, Anda dapat menemukan layanan " +"GnuDIP gratis di gnudip.datasystems24.net atau Anda dapat menemukan layanan berbasis " +"URL pembaruan gratis di freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klien DNS Dinamis" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Nama Domain Dinamis" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1623,7 +1645,7 @@ msgstr "" "& gt ;, & lt; domain & gt; dapat digunakan dalam url. Untuk " "detail lihat Templat URL pembaruan dari penyedia URL." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1633,7 +1655,7 @@ msgstr "" "Anda tidak mendukung protokol Gnudip atau penyedia Anda tidak tercantum, " "Anda dapat menggunakan URL pembaruan penyedia Anda." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1641,19 +1663,19 @@ msgstr "" "Tolong jangan masukkan URL di sini (seperti \"https://example.com/\") tetapi " "hanya nama host dari server GnuDIP (seperti \"contoh.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Nama domain publik yang ingin Anda gunakan untuk mencapai {box_name} Anda." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Gunakan opsi ini jika penyedia Anda menggunakan sertifikat yang " "ditandatangani sendiri." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1661,12 +1683,12 @@ msgstr "" "Jika opsi ini dipilih, nama pengguna dan kata sandi Anda akan digunakan " "untuk otentikasi Basic HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" "Biarkan bidang ini kosong jika Anda ingin menyimpan kata sandi Anda saat ini." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1684,167 +1706,66 @@ msgstr "" "asli. URL harus mengembalikan IP di mana klien berasal (Contoh: http://myip." "datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Nama pengguna yang digunakan ketika akun diciptakan." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnudiP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "URL pembaruan lainnya" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Aktifkan Dynamic DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Tipe Layanan" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Alamat Server Gnudip" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Nama server tidak valid" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Perbaharui URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Terima semua sertifikat SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Gunakan autentikasi dasar HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Nama Pengguna" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Tampilkan kata sandi" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL untuk mencari IP publik" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Gunakan IPv6 bukan IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Harap berikan URL pembaruan atau alamat server GnudDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Harap berikan nama pengguna GnudiP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Harap berikan nama domain Gnudul" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Harap berikan kata sandi" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Jika Anda mencari akun DNS dinamis gratis, Anda dapat menemukan layanan " -"GnuDIP gratis di gnudip.datasystems24.net atau Anda dapat menemukan layanan berbasis " -"URL pembaruan gratis di freedns.afraid.org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Jika %(box_name)s terhubung di belakang router NAT, jangan lupa untuk " -"menambahkan port forwarding untuk port standar, termasuk port TCP 80 (http) " -"dan tcp port 443 (https)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Anda telah menonaktifkan javascript. Mode formulir dinamis dinonaktifkan dan " -"beberapa fungsi pembantu mungkin tidak berfungsi (tetapi fungsionalitas " -"utama harus bekerja)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Perbarui Pengaturan" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "tipe NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Tipe NAT belum terdeteksi. Jika Anda tidak menyediakan \"URL Pemeriksaan IP" -"\", kami tidak akan mendeteksi tipe NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Koneksi langsung ke Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Di belakang NAT. Ini berarti bahwa layanan DNS dinamis akan melakukan " -"polling \"URL untuk mencari ip publik\" untuk perubahan (\"URL untuk mencari " -"ip \"\"\" Diperlukan untuk ini, jika tidak perubahan IP tidak akan " -"terdeteksi. ). Dalam hal perubahan IP WAN, mungkin memakan waktu hingga " -"%(timer)s menit hingga entri DNS Anda diperbarui." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Pembaharuan Terakhir" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Tentang" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1858,13 +1779,60 @@ msgstr "Tentang" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Konfigurasikan DNS Dinamis" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domain" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Status Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Pembaharuan Terakhir" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Alamat IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Mengakses" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "gagal" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Tidak ada perpustakaan yang tersedia." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Nama Koneksi" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Hapus koneksi" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Automatic" +msgid "Already up-to-date" +msgstr "Automatic" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2461,6 +2429,11 @@ msgstr "Berikan umpan balik" msgid "Contribute" msgstr "Kontribusi" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Tentang" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2903,6 +2876,13 @@ msgstr "Pergi ke situs %(site)s" msgid "Delete site %(site)s" msgstr "Hapus situs %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Perbarui Pengaturan" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3048,10 +3028,6 @@ msgstr "Sertifikat" msgid "Cannot test: No domains are configured." msgstr "Tidak dapat menguji: Tidak ada domain yang dikonfigurasi." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domain" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Status Sertifikat" @@ -3436,22 +3412,6 @@ msgstr "Address" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6671,7 +6631,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7736,6 +7696,72 @@ msgstr "%(percentage)s %% selesai" msgid "Gujarati" msgstr "Bahasa Gujarat" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Aktifkan Dynamic DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Harap berikan URL pembaruan atau alamat server GnudDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Harap berikan nama pengguna GnudiP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Harap berikan nama domain Gnudul" + +#~ msgid "Please provide a password" +#~ msgstr "Harap berikan kata sandi" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Jika %(box_name)s terhubung di belakang router NAT, jangan lupa untuk " +#~ "menambahkan port forwarding untuk port standar, termasuk port TCP 80 " +#~ "(http) dan tcp port 443 (https)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Anda telah menonaktifkan javascript. Mode formulir dinamis dinonaktifkan " +#~ "dan beberapa fungsi pembantu mungkin tidak berfungsi (tetapi " +#~ "fungsionalitas utama harus bekerja)." + +#~ msgid "NAT type" +#~ msgstr "tipe NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Tipe NAT belum terdeteksi. Jika Anda tidak menyediakan \"URL Pemeriksaan " +#~ "IP\", kami tidak akan mendeteksi tipe NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Koneksi langsung ke Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Di belakang NAT. Ini berarti bahwa layanan DNS dinamis akan melakukan " +#~ "polling \"URL untuk mencari ip publik\" untuk perubahan (\"URL untuk " +#~ "mencari ip \"\"\" Diperlukan untuk ini, jika tidak perubahan IP tidak " +#~ "akan terdeteksi. ). Dalam hal perubahan IP WAN, mungkin memakan waktu " +#~ "hingga %(timer)s menit hingga entri DNS Anda diperbarui." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Konfigurasikan DNS Dinamis" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Status Dynamic DNS" + #, fuzzy #~| msgid "unavailable" #~ msgid "RoundCube availability" @@ -8119,11 +8145,6 @@ msgstr "Bahasa Gujarat" #~ msgid "Domain registration failed: {response}." #~ msgstr "Pendaftaran domain gagal: {response}." -#, fuzzy -#~| msgid "Automatic" -#~ msgid "Auto-update" -#~ msgstr "Automatic" - #, fuzzy #~| msgid "{box_name} Manual" #~ msgid "Download Manual" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index b7b59e3f0..3fea9a826 100644 --- a/plinth/locale/it/LC_MESSAGES/django.po +++ b/plinth/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2022-01-06 22:41+0000\n" "Last-Translator: Dietmar \n" "Language-Team: Italian ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Se stai cercando un profilo DNS dinamico gratuito, puoi trovare un servizio " +"GnuDIP gratuito su ddns.freedombox.org oppure puoi trovare un servizio gratuito basato " +"su URL d'aggiornamento su freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Client DNS Dinamico" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Nome Dominio Dinamico" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1603,7 +1625,7 @@ msgstr "" "essere usati all'interno dell'URL. Per maggiori dettagli vedi i modelli di " "URL del provider d'esempio." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1613,7 +1635,7 @@ msgstr "" "tuo provider non supporta il protocollo GnuDIP o il tuo provider non è " "presente nella lista puoi usare l'URL di aggiornamento del tuo provider." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1621,17 +1643,17 @@ msgstr "" "Prego, non inserire un URL qui (come \"https://esempio.com/\") ma solo " "l'hostname del server GnuDIP (come \"esempio.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "il nome di dominio pubblico che vuoi usare per raggiungere il tuo {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "Usa quest'opzione se il tuo provider usa dei certificati auto-firmati." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1639,11 +1661,11 @@ msgstr "" "Se quest'opzione è selezionata, il tuo nome utente e la tua password saranno " "usati per l'autenticazione basilare HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Lascia vuoto questo campo se vuoi mantenere la password corrente." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1656,168 +1678,68 @@ msgstr "" "determinare l'indirizzo IP reale. L'URL dovrebbe semplicemente restituire " "l'IP da cui proviene il client (esempio: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Il nome utente usato quando è stato creato il profilo." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "URL aggiornamento alternativo" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Abilita DNS Dinamico" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Tipo Servizio" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Indirizzo Server GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Nome Server Invalido" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Aggiorna URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Accetta tutti i certificati SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 #, fuzzy msgid "Use HTTP basic authentication" msgstr "Usa l'autenticazione HTTP base" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Nome utente" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Mostra password" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 #, fuzzy msgid "URL to look up public IP" msgstr "URL di cui cercare l'IP pubblico" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -#, fuzzy -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Per favore inserisci un URL d'aggiornamento o un indirizzo di un server " -"GnuDIP" -#: plinth/modules/dynamicdns/forms.py:146 -#, fuzzy -msgid "Please provide a GnuDIP username" -msgstr "Per favore inserisci un nome utente GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -#, fuzzy -msgid "Please provide a GnuDIP domain name" -msgstr "Per favore inserisci un nome di dominio GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -#, fuzzy -msgid "Please provide a password" -msgstr "Inserisci una password per favore" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Se stai cercando un profilo DNS dinamico gratuito, puoi trovare un servizio " -"GnuDIP gratuito su ddns.freedombox.org oppure puoi trovare un servizio gratuito basato " -"su URL d'aggiornamento su freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Se il tuo %(box_name)s è connesso tramite un router NAT, non dimenticarti di " -"impostare l'inoltro delle porte standard, inclusa la porta TCP 80 (HTTP) e " -"la porta TCP 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Hai disabilitato JavaScript. La modalità Dynamic forma e altre funzionalità " -"d'aiuto potrebbero non essere disponibili (le funzionalità principali " -"dovrebbero essere disponibili)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Aggiorna impostazioni" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Tipo NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Il tipo di NAT non è stato rilevato. Se non indichi un \"IP Check URL\", non " -"sarà possibile rilevare il tipo di NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Connessione diretta a Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"A valle del NAT. Significa che il servizio di DNS Dinamico interrogherà " -"l'URL di ricerca IP per eventuali cambiamenti (per questo è richiesto l'URL " -"di ricerca IP, altrimenti non i cambiamenti non saranno rilevati). Nel caso " -"cambi l'IP WAN, potrebbero essere richiesti fino a %(timer)s minuti prima " -"che il DNS sia aggiornato." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Ultimo aggiornamento" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Su" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1831,13 +1753,61 @@ msgstr "Su" msgid "Status" msgstr "Stato" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Configura Server DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +#, fuzzy +msgid "Domain" +msgstr "Dominio" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Stato DNS Dinamico" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Ultimo aggiornamento" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Indirizso IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Accesso" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "fallito" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Non ci sono librerie disponibile." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Nome Connessione" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Cancella connessione" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Enable auto-update" +msgid "Already up-to-date" +msgstr "Abilita l'aggiornamento automatico" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2422,6 +2392,11 @@ msgstr "Invia feedback" msgid "Contribute" msgstr "Contribuire" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Su" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2874,6 +2849,13 @@ msgstr "Vai nel sito %(site)s" msgid "Delete site %(site)s" msgstr "Cancella sito %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Aggiorna impostazioni" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, fuzzy, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3019,11 +3001,6 @@ msgstr "Certificati" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -#, fuzzy -msgid "Domain" -msgstr "Dominio" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Stato Certificato" @@ -3455,23 +3432,6 @@ msgstr "Indirizzo" msgid "Port" msgstr "Porta" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Configurazione \"numero massimo giocatori\" aggiornata" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Configurazione \"Modalità creativa\" aggiornata" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Configurazione PVP aggiornata" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -msgid "Damage configuration updated" -msgstr "Configurazione \"danni\" abilitata" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6771,7 +6731,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7804,6 +7764,91 @@ msgstr "%(percentage)s%% completata" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Abilita DNS Dinamico" + +#, fuzzy +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "Per favore inserisci un URL d'aggiornamento o un indirizzo di un server " +#~ "GnuDIP" + +#, fuzzy +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Per favore inserisci un nome utente GnuDIP" + +#, fuzzy +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Per favore inserisci un nome di dominio GnuDIP" + +#, fuzzy +#~ msgid "Please provide a password" +#~ msgstr "Inserisci una password per favore" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Se il tuo %(box_name)s è connesso tramite un router NAT, non dimenticarti " +#~ "di impostare l'inoltro delle porte standard, inclusa la porta TCP 80 " +#~ "(HTTP) e la porta TCP 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Hai disabilitato JavaScript. La modalità Dynamic forma e altre " +#~ "funzionalità d'aiuto potrebbero non essere disponibili (le funzionalità " +#~ "principali dovrebbero essere disponibili)." + +#~ msgid "NAT type" +#~ msgstr "Tipo NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Il tipo di NAT non è stato rilevato. Se non indichi un \"IP Check URL\", " +#~ "non sarà possibile rilevare il tipo di NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Connessione diretta a Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "A valle del NAT. Significa che il servizio di DNS Dinamico interrogherà " +#~ "l'URL di ricerca IP per eventuali cambiamenti (per questo è richiesto " +#~ "l'URL di ricerca IP, altrimenti non i cambiamenti non saranno rilevati). " +#~ "Nel caso cambi l'IP WAN, potrebbero essere richiesti fino a %(timer)s " +#~ "minuti prima che il DNS sia aggiornato." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Configura Server DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Stato DNS Dinamico" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Configurazione \"numero massimo giocatori\" aggiornata" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Configurazione \"Modalità creativa\" aggiornata" + +#~ msgid "PVP configuration updated" +#~ msgstr "Configurazione PVP aggiornata" + +#, fuzzy +#~ msgid "Damage configuration updated" +#~ msgstr "Configurazione \"danni\" abilitata" + #~ msgid "Enter a valid domain" #~ msgstr "Inserisci un dominio valido" diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index 34ea9c7d8..0f7b20fa1 100644 --- a/plinth/locale/ja/LC_MESSAGES/django.po +++ b/plinth/locale/ja/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-05-20 12:32+0000\n" "Last-Translator: Jacque Fresco \n" "Language-Team: Japanese ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1510,142 +1520,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1659,12 +1591,45 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2193,6 +2158,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2540,6 +2510,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2665,10 +2642,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3033,22 +3006,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6213,7 +6170,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index f4f5aa190..0ccdc0cd4 100644 --- a/plinth/locale/kn/LC_MESSAGES/django.po +++ b/plinth/locale/kn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n" "Last-Translator: Yogesh \n" "Language-Team: Kannada ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1510,142 +1520,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "ಬಗ್ಗೆ" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1659,12 +1591,45 @@ msgstr "ಬಗ್ಗೆ" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2193,6 +2158,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "ಬಗ್ಗೆ" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2540,6 +2510,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2665,10 +2642,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3033,22 +3006,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6215,7 +6172,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index 299a330ae..d1de6e1be 100644 --- a/plinth/locale/lt/LC_MESSAGES/django.po +++ b/plinth/locale/lt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-02-22 10:50+0000\n" "Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1511,142 +1521,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Apie" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1660,12 +1592,45 @@ msgstr "Apie" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2194,6 +2159,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Apie" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2541,6 +2511,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2666,10 +2643,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3034,22 +3007,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6214,7 +6171,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index 830e573e9..1ff59b8b9 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-12-27 05:53+0000\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Hvis du ser etter en gratis dynamisk DNS-konto, kan du finne en gratis " +"GnuDIP-tjeneste på gnudip.datasystems24.net , eller du kan finne gratis URL-" +"baserte oppdateringstjenester her freedns.afraid.org ." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamisk DNS-klient" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamisk domenenavn" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1645,7 +1667,7 @@ msgstr "" "i nettadressen. For detaljer, se de oppdaterte nettadressemalene fra " "eksempel leverandørene." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1655,7 +1677,7 @@ msgstr "" "leverandøren ikke støtter GnuDIP-protokollen, eller din leverandør ikke er " "oppført, kan du bruke leverandørens URL for oppdatering." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1663,19 +1685,19 @@ msgstr "" "Ikke bruk en nettadresse her (som f.eks. \"https://example.com/\"), men kun " "vertsnavnet til GnuDIP-tjeneren (som \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Det offentlige domenenavnet du ønsker å bruke for å få tilgang til ditt " "{box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Bruk dette alternativet hvis leverandøren bruker selvsignerte sertifikater." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1683,11 +1705,11 @@ msgstr "" "Hvis dette alternativet velges, vil ditt brukernavn og passord brukes for " "enkel godkjenning i HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "La dette feltet stå tomt hvis du vil beholde ditt nåværende passord." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1705,168 +1727,66 @@ msgstr "" "den virkelige Internett-IP-en. Nettadressen skal bare returnere IP-en som " "tjeneren kommer fra (eksempelvis: http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Brukernavnet som ble benyttet da kontoen ble opprettet." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "Oppdater URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Aktiver dynamisk DNS (Dynamic DNS)" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Type tjeneste" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP-tjeneradresse" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Ugyldig tjenernavn" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Oppdater URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Godta alle SSL-sertifikater" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Bruk HTTP-basisgodkjenning" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Brukernavn" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Vis passord" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL for å slå opp offentlig IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Bruk IPv6 istedenfor IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Vennligst oppgi en oppdatert nettadresse eller en GnuDIP-tjeneradresse" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Vennligst oppgi et GnuDIP-brukernavn" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Vennligst oppgi et GnuDIP-domenenavn" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Vennligst oppgi et passord" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Hvis du ser etter en gratis dynamisk DNS-konto, kan du finne en gratis " -"GnuDIP-tjeneste på gnudip.datasystems24.net , eller du kan finne gratis URL-" -"baserte oppdateringstjenester her freedns.afraid.org ." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Hvis din %(box_name)s er tilkoblet bak en NAT-ruter, ikke glem å legge til " -"port for videresending til standard porter, inkludert TCP-port 80 (HTTP) og " -"TCP-port 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Du har skrudd av JavaScript. Dynamisk formmodus er avskrudd, og noen " -"helpefunksjoner vil ikke virke (men hovedfunksjonaliteten skal virke)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Oppdater oppsett" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT-type" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT-type ble ikke oppdaget ennå. Hvis du ikke gir en «IP Check URL», vil vi " -"ikke oppdage en NAT-type." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Direkte forbindelse til Internettet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Bak NAT. Dette betyr at Dynamic DNS-tjenesten vil kontakte «URL for å slå " -"opp offentlig IP» for å oppdage endringer («URL for å slå opp offentlig IP»-" -"oppføringen er nødvendig - ellers vil ikke IP-endringene bli oppdaget). I " -"tilfelle WAN IP-adressen endrer seg, kan det ta opp til %(timer)s minutter " -"før DNS-adgangen er oppdatert." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Siste oppdatering" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Om" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1880,13 +1800,60 @@ msgstr "Om" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Konfigurer dynamisk DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domene" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Dynamisk DNS-status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Siste oppdatering" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-adresse" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access Point" +msgid "Success" +msgstr "Aksesspunkt" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "feilet" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Intet bibliotek tilgjengelig." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Oppkoblingsnavn" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Slett tilkobling" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Auto-oppdatering" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2502,6 +2469,11 @@ msgstr "Send inn tilbakemeldinger" msgid "Contribute" msgstr "Bidra" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Om" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2951,6 +2923,13 @@ msgstr "Gå til siden %(site)s" msgid "Delete site %(site)s" msgstr "Slett nettstedet %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Oppdater oppsett" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3094,10 +3073,6 @@ msgstr "Sertifikater" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domene" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Sertifikatsstatus" @@ -3524,22 +3499,6 @@ msgstr "Adresse" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Oppsett av maks spillere oppdatert" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Oppsett av kreativ modus oppdatert" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "PVP-oppsett oppdatert" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Skadeoppsett oppdatert" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7241,7 +7200,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 #, fuzzy msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8403,6 +8362,84 @@ msgstr "%(percentage)s%% fullført" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Aktiver dynamisk DNS (Dynamic DNS)" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "Vennligst oppgi en oppdatert nettadresse eller en GnuDIP-tjeneradresse" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Vennligst oppgi et GnuDIP-brukernavn" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Vennligst oppgi et GnuDIP-domenenavn" + +#~ msgid "Please provide a password" +#~ msgstr "Vennligst oppgi et passord" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Hvis din %(box_name)s er tilkoblet bak en NAT-ruter, ikke glem å legge " +#~ "til port for videresending til standard porter, inkludert TCP-port 80 " +#~ "(HTTP) og TCP-port 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Du har skrudd av JavaScript. Dynamisk formmodus er avskrudd, og noen " +#~ "helpefunksjoner vil ikke virke (men hovedfunksjonaliteten skal virke)." + +#~ msgid "NAT type" +#~ msgstr "NAT-type" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT-type ble ikke oppdaget ennå. Hvis du ikke gir en «IP Check URL», vil " +#~ "vi ikke oppdage en NAT-type." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Direkte forbindelse til Internettet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Bak NAT. Dette betyr at Dynamic DNS-tjenesten vil kontakte «URL for å slå " +#~ "opp offentlig IP» for å oppdage endringer («URL for å slå opp offentlig " +#~ "IP»-oppføringen er nødvendig - ellers vil ikke IP-endringene bli " +#~ "oppdaget). I tilfelle WAN IP-adressen endrer seg, kan det ta opp til " +#~ "%(timer)s minutter før DNS-adgangen er oppdatert." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Konfigurer dynamisk DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Dynamisk DNS-status" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Oppsett av maks spillere oppdatert" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Oppsett av kreativ modus oppdatert" + +#~ msgid "PVP configuration updated" +#~ msgstr "PVP-oppsett oppdatert" + +#~ msgid "Damage configuration updated" +#~ msgstr "Skadeoppsett oppdatert" + #, fuzzy #~| msgid "Available Domains" #~ msgid "RoundCube availability" @@ -9371,9 +9408,6 @@ msgstr "Gujarati" #~ msgid "Vulnerabilities Reported" #~ msgstr "Rapporterte sårbarheter" -#~ msgid "Auto-update" -#~ msgstr "Auto-oppdatering" - #, fuzzy #~| msgid "Add Remote Repository" #~ msgid "Add Remote Location" diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po index 7dc3d27c7..01a5408a9 100644 --- a/plinth/locale/nl/LC_MESSAGES/django.po +++ b/plinth/locale/nl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-19 09:56+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-02 08:55+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Dutch \n" @@ -872,7 +872,7 @@ msgid "No passwords currently configured." msgstr "Er zijn momenteel geen wachwoorden ingesteld." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Wachtwoord" @@ -1019,9 +1019,10 @@ msgid "Refresh IP address and domains" msgstr "IP adressen en domeinen verversen" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1217,7 +1218,7 @@ msgstr "" msgid "General Configuration" msgstr "Algemene Instellingen" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1225,13 +1226,13 @@ msgid "Configure" msgstr "Configureer" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Domeinnaam" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Foutieve domeinnaam" @@ -1581,6 +1582,7 @@ msgid "Test" msgstr "Test" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Resultaat" @@ -1588,7 +1590,7 @@ msgstr "Resultaat" msgid "Diagnostic Test" msgstr "Diagnostische test" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1600,7 +1602,7 @@ msgstr "" "internet. Daardoor is het gebruik van de diensten van {box_name} vaak " "onmogelijk van buiten het lokale netwerk." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1618,15 +1620,35 @@ msgstr "" "naamswijziging doorvoeren, en als iemand op het internet om deze DNS naam " "vraagt wordt dit beantwoord met het juiste IP adres." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Wie op zoek is naar een gratis dynamic DNS account, kan misschien een gratis " +"GnuDIP service vinden bij ddns.freedombox.org of gratis free update URL gebaseerde " +"diensten van " +"freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamic DNS Cliënt" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamische domeinnaam" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1636,7 +1658,7 @@ msgstr "" "worden gebruikt in de URL. Zie voor details de update URL voorbeelden van de " "voorbeeld providers." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1646,7 +1668,7 @@ msgstr "" "GnuDIP protocol gebruikt of de provider staat niet in de lijst, gebruik dan " "de update URL van de provider." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1654,19 +1676,19 @@ msgstr "" "Voer hier geen complete URL in (zoals \"https://example.com/\") maar alleen " "de hostnaam van de GnuDIP server (zoals \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "De openbare domeinnaam die gebruikt wordt om {box_name} aan te spreken." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Gebruik deze functie indien de provider gebruik maakt van self-signed " "certificaten." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1674,11 +1696,11 @@ msgstr "" "Als deze optie is geselecteerd wordt de gebruikersnaam en wachtwoord " "gebruikt voor HTTP basic authentificatie." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Laat dit veld leeg om het huidige wachtwoord te behouden." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1691,159 +1713,68 @@ msgstr "" "Internet IP adres te bepalen. Het antwoord op het aanroepen van deze URL zou " "het IP adres moeten zijn (Voorbeeld: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "De gebruikersnaam die werd gebruikt toen de account werd gemaakt." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "Andere update-URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Dynamic DNS Inschakelen" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Dienst Type" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP Serveradres" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Foute servernaam" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL bijwerken" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Accepteer alle SSL certificaten" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Gebruik HTTP-basisverificatie" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Gebruikersnaam" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Toon wachtwoord" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL voor controle van het IP-adres" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Gebruik IPv6 in plaats van IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Voer een update URL of GnuDIP Serveradres in" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "geheim vereist" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Voer een GnuDIP gebruikersnaam in" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Voer een GnuDIP domeinnaam in" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Voer een wachtwoord in" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Wie op zoek is naar een gratis dynamic DNS account, kan misschien een gratis " -"GnuDIP service vinden bij ddns.freedombox.org of gratis free update URL gebaseerde " -"diensten van " -"freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Als deze %(box_name)s is verbonden door middel van NAT-routing, vergeet dan " -"niet om port-forwarding te gebruiken om standaardpoorten met inbegrip van " -"TCP-poort 80 (HTTP) en TCP-poort 443 (HTTPS) naar %(box_name)s te leiden." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Javascript schijnt uitgeschakeld te zijn, Dynamische formulieren en sommige " -"helpfuncties werken niet, maar de basisfunctionaliteit zou moeten werken." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Instelling bijwerken" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT type" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT type nog niet gedetecteerd. Als er geen \"IP check URL\" wordt ingesteld " -"is het niet mogelijk om het type te herkennen." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Directe verbinding met Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Achter NAT, dit betekent dat de Dynamic DNS dienst regelmatig de \"URL voor " -"controle van het IP-adres\" controleert op wijzigingen (hiervoor is de \"URL " -"voor controle van het IP-adres\" nodig, anders kunnen veranderingen niet " -"worden ontdekt). Het kan tot %(timer)s minuten duren tot de DNS wordt " -"bijgewerkt." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Laatste bijwerking" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Over ons" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1857,13 +1788,60 @@ msgstr "Over ons" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Instellen Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domein" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Dynamische DNS-Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Laatste bijwerking" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP adres" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Toegang" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "mislukt" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Geen bibliotheken beschikbaar." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Verbindingsnaam" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Verwijder verbinding" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "Laatste bijwerking" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2457,6 +2435,11 @@ msgstr "Feedback indienen" msgid "Contribute" msgstr "Bijdragen" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Over ons" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2901,6 +2884,13 @@ msgstr "Ga naar site %(site)s" msgid "Delete site %(site)s" msgstr "Verwijder site %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Instelling bijwerken" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3048,10 +3038,6 @@ msgstr "Certificaten" msgid "Cannot test: No domains are configured." msgstr "Kan niet testen: Er zijn geen domeinen ingesteld." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domein" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Certificaatstatus" @@ -3211,7 +3197,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3491,22 +3477,6 @@ msgstr "Adres" msgid "Port" msgstr "Poort" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Instelling maximum aantal spelers bijgewerkt" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Instelling Creatieve modus bijgewerkt" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Instelling PVP bijgewerkt" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Instelling schade bijgewerkt" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5492,7 +5462,7 @@ msgstr "Email Cliënt" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Gebruik alleen de lokale mailserver" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5500,6 +5470,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Indien ingeschakeld, wordt het tekstvak voor serverinvoer verwijderd van de " +"inlogpagina en kunnen gebruikers alleen e-mails lezen en verzenden vanaf " +"deze {box_name}." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5896,10 +5869,8 @@ msgid "Bookmarks" msgstr "Bladwijzers" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6140,13 +6111,12 @@ msgid "Software Installation Snapshots" msgstr "Software-installatie Snapshots" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Snapshots voor en na de installatie van de software in- of uitschakelen" +"Snapshots voor en na de installatie en update van de software in- of " +"uitschakelen." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6382,10 +6352,8 @@ msgid "Login" msgstr "Aanmelding" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Wachtwoord succesvol gewijzigd." +msgstr "Succesvol uitgelogd." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7186,8 +7154,13 @@ msgid "Frequent feature updates activated." msgstr "Tussentijdse Software Updates zijn ingeschakeld." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7239,11 +7212,12 @@ msgid "Authorization Password" msgstr "Authorisatie-wachtwoord" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Voer je huidige wachtwoord in om accountwijzigingen toe te staan." +msgstr "" +"Voer het wachtwoord voor gebruiker \"{user}\" in om accountwijzigingen toe " +"te staan." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8348,6 +8322,85 @@ msgstr "%(percentage)s%% voltooid" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Dynamic DNS Inschakelen" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Voer een update URL of GnuDIP Serveradres in" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Voer een GnuDIP gebruikersnaam in" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Voer een GnuDIP domeinnaam in" + +#~ msgid "Please provide a password" +#~ msgstr "Voer een wachtwoord in" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Als deze %(box_name)s is verbonden door middel van NAT-routing, vergeet " +#~ "dan niet om port-forwarding te gebruiken om standaardpoorten met inbegrip " +#~ "van TCP-poort 80 (HTTP) en TCP-poort 443 (HTTPS) naar %(box_name)s te " +#~ "leiden." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Javascript schijnt uitgeschakeld te zijn, Dynamische formulieren en " +#~ "sommige helpfuncties werken niet, maar de basisfunctionaliteit zou moeten " +#~ "werken." + +#~ msgid "NAT type" +#~ msgstr "NAT type" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT type nog niet gedetecteerd. Als er geen \"IP check URL\" wordt " +#~ "ingesteld is het niet mogelijk om het type te herkennen." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Directe verbinding met Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Achter NAT, dit betekent dat de Dynamic DNS dienst regelmatig de \"URL " +#~ "voor controle van het IP-adres\" controleert op wijzigingen (hiervoor is " +#~ "de \"URL voor controle van het IP-adres\" nodig, anders kunnen " +#~ "veranderingen niet worden ontdekt). Het kan tot %(timer)s minuten duren " +#~ "tot de DNS wordt bijgewerkt." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Instellen Dynamic DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Dynamische DNS-Status" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Instelling maximum aantal spelers bijgewerkt" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Instelling Creatieve modus bijgewerkt" + +#~ msgid "PVP configuration updated" +#~ msgstr "Instelling PVP bijgewerkt" + +#~ msgid "Damage configuration updated" +#~ msgstr "Instelling schade bijgewerkt" + #~ msgid "RoundCube availability" #~ msgstr "RoundCube-beschikbaarheid" @@ -9296,11 +9349,6 @@ msgstr "Gujarati" #~ msgstr "" #~ "Pagekite setup voltooid. De HTTP- en HTTPS-services zijn nu geactiveerd." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "Laatste bijwerking" - #, fuzzy #~| msgid "Create User" #~ msgid "Add Remote Location" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index fea24030d..f5b4277d1 100644 --- a/plinth/locale/pl/LC_MESSAGES/django.po +++ b/plinth/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-03-03 16:50+0000\n" "Last-Translator: Karol Werner \n" "Language-Team: Polish gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Jeśli szukasz darmowego konta Dynamic DNS, to pod adresem gnudip.datasystems24.net " +"możesz znaleźć darmowy serwer GnuDIP albo darmową usługę uaktualniania URL " +"pod adresem freedns." +"afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient Dynamic DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamiczna nazwa domeny" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1617,7 +1639,7 @@ msgstr "" "mogą być używanie w adresie URL. Po szczegóły zobacz uaktualnianie URL dla " "przykładowego prowicera." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1627,7 +1649,7 @@ msgstr "" "twój prowider nie wspiera protokołu GnuDIP albo nie jest na liście wtedy " "możesz użyć URL uaktualnienia twojego prowidera." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1635,17 +1657,17 @@ msgstr "" "Proszę nie wpisuj adresu URL tutaj (np. \"https://example.com/\") tylko " "nazwę hosta serwera GnuDIP (np. \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "Domena pod którą chcesz używać aby zobaczyć twój {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Zaznacz jeśli twój prowider używa certyfikatów podpisanych przez siebie." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1653,11 +1675,11 @@ msgstr "" "Jeśli ta opcja jest zaznaczona to twoja nazwa użytkownika i hasło będą " "używane do podstawowej autentyfikacji HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Zostaw puste jeśli chcesz używać aktualnego hasła." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1675,168 +1697,66 @@ msgstr "" "określenia twojego prawdziwego adresu IP. URL powinien zwrócić IP z którego " "klient pochodzi. (przykład: http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Użytkownik który był używany podczas zakladania konta." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "Uaktualnij URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Zezwól na Dynamic DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Typ usługi" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Adres serwera GnuGIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Niewłaściwa nazwa użytkownika" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Uaktualnij URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Akceptuj wszystkie certyfikaty SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Użyj podstawowej autentyfikacji HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Nazwa użytkownika" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Pokaż hasło" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "Adres URL do wyszukiwania publicznego IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Proszę wskaż adres do uaktualniania URL lub serwera GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Nazwa użytkowniika GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Domena GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Hasło" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"Jeśli szukasz darmowego konta Dynamic DNS, to pod adresem gnudip.datasystems24.net " -"możesz znaleźć darmowy serwer GnuDIP albo darmową usługę uaktualniania URL " -"pod adresem freedns." -"afraid.org." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Jeśli twój %(box_name)s jest za NATem, nie zapomnij dodać przekazywanie " -"portów: TCP port 80 (HTTP) and TCP port 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Masz wyłączony Javascript. Dynamiczny formularz jest wyłączony a niektóre " -"funkcje pomocnicze mogą nie działać (ale podstawowa funkcjonalnośc powinna " -"być dostępna)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Aktualizuj ustawienia" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Typ NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Typ NAT nie został zidentyfikowaniy. Jeśli nie wpiszesz \"Adresu URL " -"sprawdzania IP\", nie będzie możliwa detekcja typu NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Bezpośrednie połłączenie z internetem." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Za NAT. Oznacza to że usługa dynamicznego DNS będzie okresowo sprawdzać " -"\"Adres URL sprawdzania IP\" w poszukiwaniu zmian (\"Adres URL sprawdzania IP" -"\" jest wymagany, w przeciwnym razie, zmiany nie będą wykrywane). W razie " -"zmiany adresu IP WAN, może minąć do %(timer)s minut zanim wpis DNS zostanie " -"zaktualizowany." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Ostatnie uaktualnienie" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "O FreedomBox" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1850,13 +1770,56 @@ msgstr "O FreedomBox" msgid "Status" msgstr "Stan" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Konfiguruj Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domena" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Status Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Ostatnie uaktualnienie" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP addresses" +msgid "IP Address" +msgstr "Adresy IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Dostęp" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "nie udało się" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Odmowa dostępu" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "Ostatnie uaktualnienie" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2465,6 +2428,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "O FreedomBox" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2839,6 +2807,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Aktualizuj ustawienia" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2968,10 +2943,6 @@ msgstr "Certyfikaty" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domena" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Status certyfikatu" @@ -3364,22 +3335,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Zaktualizowano maksymalną ilość graczy" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Zaktualizowano ustawienia trybu kreatywnego" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Zaktualizowano ustawienia PVP" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Zaktualizowano ustawienia zniszczeń" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6671,7 +6626,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7811,6 +7766,83 @@ msgstr "" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Zezwól na Dynamic DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Proszę wskaż adres do uaktualniania URL lub serwera GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Nazwa użytkowniika GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Domena GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Hasło" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Jeśli twój %(box_name)s jest za NATem, nie zapomnij dodać przekazywanie " +#~ "portów: TCP port 80 (HTTP) and TCP port 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Masz wyłączony Javascript. Dynamiczny formularz jest wyłączony a niektóre " +#~ "funkcje pomocnicze mogą nie działać (ale podstawowa funkcjonalnośc " +#~ "powinna być dostępna)." + +#~ msgid "NAT type" +#~ msgstr "Typ NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Typ NAT nie został zidentyfikowaniy. Jeśli nie wpiszesz \"Adresu URL " +#~ "sprawdzania IP\", nie będzie możliwa detekcja typu NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Bezpośrednie połłączenie z internetem." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Za NAT. Oznacza to że usługa dynamicznego DNS będzie okresowo sprawdzać " +#~ "\"Adres URL sprawdzania IP\" w poszukiwaniu zmian (\"Adres URL " +#~ "sprawdzania IP\" jest wymagany, w przeciwnym razie, zmiany nie będą " +#~ "wykrywane). W razie zmiany adresu IP WAN, może minąć do %(timer)s minut " +#~ "zanim wpis DNS zostanie zaktualizowany." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Konfiguruj Dynamic DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Status Dynamic DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Zaktualizowano maksymalną ilość graczy" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Zaktualizowano ustawienia trybu kreatywnego" + +#~ msgid "PVP configuration updated" +#~ msgstr "Zaktualizowano ustawienia PVP" + +#~ msgid "Damage configuration updated" +#~ msgstr "Zaktualizowano ustawienia zniszczeń" + #, fuzzy #~| msgid "Invalid server name" #~ msgid "Enter a valid domain" @@ -8173,11 +8205,6 @@ msgstr "Gujarati" #~ msgstr "" #~ "Ustawiania Pagekite zostało zakończone. Usługi HTTP i HTTPS są aktywne." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "Ostatnie uaktualnienie" - #~ msgid "Add Remote Location" #~ msgstr "Dodaj zdalną lokalizację" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index ff0d4cf0d..22959612c 100644 --- a/plinth/locale/pt/LC_MESSAGES/django.po +++ b/plinth/locale/pt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-05-08 22:33+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "Nome de Domínio" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1603,144 +1613,66 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 #, fuzzy #| msgid "Service Discovery" msgid "Service Type" msgstr "Descoberta do Serviço" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1754,14 +1686,57 @@ msgstr "" msgid "Status" msgstr "Estado" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +#, fuzzy +#| msgid "Domain Name" +msgid "Domain" +msgstr "Nome de Domínio" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP addresses" +msgid "IP Address" +msgstr "Endereços de IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Aceder" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" msgstr "" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Conexão recusada" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Applications" +msgid "Already up-to-date" +msgstr "Aplicações" + #: plinth/modules/ejabberd/__init__.py:31 msgid "" "XMPP is an open and standardized communication protocol. Here you can run " @@ -2335,6 +2310,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2702,6 +2682,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2828,12 +2815,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -#, fuzzy -#| msgid "Domain Name" -msgid "Domain" -msgstr "Nome de Domínio" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3223,30 +3204,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -#, fuzzy -#| msgid "Configuration updated" -msgid "Maximum players configuration updated" -msgstr "Configuração atualizada" - -#: plinth/modules/minetest/views.py:55 -#, fuzzy -#| msgid "Configuration updated" -msgid "Creative mode configuration updated" -msgstr "Configuração atualizada" - -#: plinth/modules/minetest/views.py:61 -#, fuzzy -#| msgid "Configuration updated" -msgid "PVP configuration updated" -msgstr "Configuração atualizada" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -#| msgid "Configuration updated" -msgid "Damage configuration updated" -msgstr "Configuração atualizada" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6511,7 +6468,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7587,6 +7544,26 @@ msgstr "%(percentage)s%% concluída" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Maximum players configuration updated" +#~ msgstr "Configuração atualizada" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Creative mode configuration updated" +#~ msgstr "Configuração atualizada" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "PVP configuration updated" +#~ msgstr "Configuração atualizada" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Damage configuration updated" +#~ msgstr "Configuração atualizada" + #, fuzzy #~| msgid "Invalid domain name" #~ msgid "Enter a valid domain" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index cd245db8f..e0d7e914e 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-29 13:55+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-07 23:55+0000\n" "Last-Translator: Nikita Epifanov \n" "Language-Team: Russian \n" @@ -870,7 +870,7 @@ msgid "No passwords currently configured." msgstr "В настоящее время пароли не настроены." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Пароль" @@ -1016,9 +1016,10 @@ msgid "Refresh IP address and domains" msgstr "Обновите IP-адреса и домены" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1215,7 +1216,7 @@ msgstr "" msgid "General Configuration" msgstr "Общие настройки" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1223,13 +1224,13 @@ msgid "Configure" msgstr "Настроить" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Доменное имя" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Недопустимое имя домена" @@ -1579,6 +1580,7 @@ msgid "Test" msgstr "Тест" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Результат" @@ -1586,7 +1588,7 @@ msgstr "Результат" msgid "Diagnostic Test" msgstr "Диагностический тест" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1597,7 +1599,7 @@ msgstr "" "в 24 часа) это может стать препятствиям, чтобы найти вас в Интернете. Это " "так-же может сделать недоступными предоставляемые {box_name} услуги." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1614,15 +1616,35 @@ msgstr "" "сервер будет назначать DNS-имя на новый IP-адрес, и если кто-то из Интернета " "запрашивает DNS-имя, они будут получать ответ ваш текущий IP-адрес." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Если вы ищете бесплатный сервер динамического DNS, вы можете найти " +"бесплатный сервис GnuDIP на ddns.freedombox.org или вы можете найти беслатную службу " +"обновления URL-адреса на freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Клиент динамического DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Динамическое доменное имя" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1632,7 +1654,7 @@ msgstr "" "использоваться в URL-адресе. Для получения дополнительной информации " "смотрите примеры обновления URL." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1642,7 +1664,7 @@ msgstr "" "ваш провайдер не поддерживает протокол GnudIP или поставщик не указан, вы " "можете использовать URL-адрес обновления вашего провайдера." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1650,18 +1672,18 @@ msgstr "" "Пожалуйста, не вводите URL здесь (как «https://example.com/»), только имя " "хоста сервера GnuDIP (как \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "Общее доменное имя для подключения к вашему {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Используйте этот параметр, если ваш провайдер использует самостоятельно " "подписанные сертификаты." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1669,11 +1691,11 @@ msgstr "" "Если выбран этот параметр, будет использоваться имя пользователя и пароль " "для обычной проверки подлинности HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Оставьте это поле пустым, если вы хотите сохранить ваш текущий пароль." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1686,160 +1708,68 @@ msgstr "" "для определения настоящего IP адреса. URL-адрес должен просто вернуть IP " "(пример: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Имя пользователя, которое использовалось при создании учетной записи." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "другой URL-адрес обновления" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Включение динамического DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Тип службы" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Адрес сервера GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Недопустимое имя сервера" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Обновление URL-адреса" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Принимать все SSL-сертификаты" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Использовать базовую аутентификацию HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Имя пользователя" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Показать пароль" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL-адрес для поиска публичного IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Использовать IPv6 вместо IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Просьба предоставьте URL-адрес или адрес сервера GnuDIP" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "требуются секреты" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Просьба представить имя пользователя GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Просьба предоставить имя домена GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Введите пароль" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Если вы ищете бесплатный сервер динамического DNS, вы можете найти " -"бесплатный сервис GnuDIP на ddns.freedombox.org или вы можете найти беслатную службу " -"обновления URL-адреса на freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Если ваш %(box_name)s) подключен за NAT-маршрутизатором, не забудьте " -"добавить перенаправление портов, включая TCP-порт 80 (HTTP) и TCP-порт 443 " -"(HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Вы отключили Javascript. Динамические элементы отключены и некоторые " -"вспомогательные функции могут не работать (но основные функции должны " -"работать)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Обновить настройки" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Тип NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Тип NAT не обнаружен, если вы не предоставляете «IP проверка URL» мы не " -"можем определить тип NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Прямое подключение к Интернету." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Behind NAT. Это означает, что служба динамического DNS будет опрашивать " -"«Публичный IP URL-адреса» для изменения (для этого необходима запись " -"«Публичный IP URL-адреса» - в противном случае не будет обнаружено изменение " -"IP). В случае, если WAN IP меняется, это может занять до %(timer)s минут до " -"тех пор, пока ваша DNS-запись обновляется." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Последнее обновление" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "О проекте" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1853,13 +1783,60 @@ msgstr "О проекте" msgid "Status" msgstr "Статус" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Настройка динамического DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Домен" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Состояние динамического DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Последнее обновление" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-адрес" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Доступ" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "сбой" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Нет доступных библиотек." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Имя подключения" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Удаление подключения" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Auto-update" +msgid "Already up-to-date" +msgstr "Автообновление" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2449,6 +2426,11 @@ msgstr "Отправить отзыв" msgid "Contribute" msgstr "Помощь проекту" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "О проекте" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2886,6 +2868,13 @@ msgstr "Перейти к %(site)s" msgid "Delete site %(site)s" msgstr "Удаление узла %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Обновить настройки" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3029,10 +3018,6 @@ msgstr "Сертификаты" msgid "Cannot test: No domains are configured." msgstr "Невозможно провести тестирование: Не настроены домены." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Домен" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Статус сертификата" @@ -3192,7 +3177,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3472,22 +3457,6 @@ msgstr "Адрес" msgid "Port" msgstr "Порт" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Максимум игроков обновлен" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Конфигурация творческого режима обновлена" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Конфигурация PVP обновлена" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Конфигурация урона обновлена" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -4717,8 +4686,6 @@ msgid "selected IP method is not supported" msgstr "выбранный метод IP не поддерживается" #: plinth/modules/networks/views.py:101 -#, fuzzy -#| msgid "Generic" msgid "generic" msgstr "универсальный" @@ -5468,7 +5435,7 @@ msgstr "Почтовый клиент" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Использовать только локальный почтовый сервер" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5476,6 +5443,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Если эта функция включена, текстовое поле для ввода данных с сервера " +"удаляется со страницы входа, и пользователи могут читать и отправлять письма " +"только из {box_name}." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5873,10 +5843,8 @@ msgid "Bookmarks" msgstr "Закладки" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shаarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6115,13 +6083,12 @@ msgid "Software Installation Snapshots" msgstr "Снапшоты при установке ПО" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Включить или отключить снапшоты до и после установки программного обеспечения" +"Включить или отключить снапшоты до и после каждой установки и обновления " +"программ." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6354,10 +6321,8 @@ msgid "Login" msgstr "Логин" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Пароль успешно изменён." +msgstr "Выход выполнен успешно." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7150,8 +7115,13 @@ msgid "Frequent feature updates activated." msgstr "Активированы частые обновления функций." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7205,11 +7175,12 @@ msgid "Authorization Password" msgstr "Пароль авторизации" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Введите свой текущий пароль, чтобы разрешить изменение учетной записи." +msgstr "" +"Введите пароль пользователя \"{user}\" для авторизации изменений учетной " +"записи." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8312,6 +8283,84 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Включение динамического DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Просьба предоставьте URL-адрес или адрес сервера GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Просьба представить имя пользователя GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Просьба предоставить имя домена GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Введите пароль" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Если ваш %(box_name)s) подключен за NAT-маршрутизатором, не забудьте " +#~ "добавить перенаправление портов, включая TCP-порт 80 (HTTP) и TCP-порт " +#~ "443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Вы отключили Javascript. Динамические элементы отключены и некоторые " +#~ "вспомогательные функции могут не работать (но основные функции должны " +#~ "работать)." + +#~ msgid "NAT type" +#~ msgstr "Тип NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Тип NAT не обнаружен, если вы не предоставляете «IP проверка URL» мы не " +#~ "можем определить тип NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Прямое подключение к Интернету." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Behind NAT. Это означает, что служба динамического DNS будет опрашивать " +#~ "«Публичный IP URL-адреса» для изменения (для этого необходима запись " +#~ "«Публичный IP URL-адреса» - в противном случае не будет обнаружено " +#~ "изменение IP). В случае, если WAN IP меняется, это может занять до " +#~ "%(timer)s минут до тех пор, пока ваша DNS-запись обновляется." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Настройка динамического DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Состояние динамического DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Максимум игроков обновлен" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Конфигурация творческого режима обновлена" + +#~ msgid "PVP configuration updated" +#~ msgstr "Конфигурация PVP обновлена" + +#~ msgid "Damage configuration updated" +#~ msgstr "Конфигурация урона обновлена" + #~ msgid "RoundCube availability" #~ msgstr "Доступность RoundCube" @@ -9229,9 +9278,6 @@ msgstr "Гуджарати" #~ "Pagekite setup finished. The HTTP and HTTPS services are activated now." #~ msgstr "Установка Pagekite завершена. Службы HTTP И HTTPS запущены." -#~ msgid "Auto-update" -#~ msgstr "Автообновление" - #, fuzzy #~| msgid "Add Remote Repository" #~ msgid "Add Remote Location" diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po index cbcb7462d..be7aad581 100644 --- a/plinth/locale/si/LC_MESSAGES/django.po +++ b/plinth/locale/si/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: HelaBasa \n" "Language-Team: Sinhala ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1510,142 +1520,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "පිළිබඳව" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1659,12 +1591,45 @@ msgstr "පිළිබඳව" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2193,6 +2158,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "පිළිබඳව" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2540,6 +2510,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2665,10 +2642,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3033,22 +3006,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6213,7 +6170,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index a0747528d..e802b24d2 100644 --- a/plinth/locale/sl/LC_MESSAGES/django.po +++ b/plinth/locale/sl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Slovenian ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "Ime domene" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1662,142 +1672,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1811,12 +1743,47 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Povezava je zavrnjena" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2382,6 +2349,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2729,6 +2701,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2855,10 +2834,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3225,22 +3200,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6451,7 +6410,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/sq/LC_MESSAGES/django.po b/plinth/locale/sq/LC_MESSAGES/django.po index 4289a17fa..2acb1b577 100644 --- a/plinth/locale/sq/LC_MESSAGES/django.po +++ b/plinth/locale/sq/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2021-06-07 12:34+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-06 23:23+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.11-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -480,11 +480,7 @@ msgid "Existing Backups" msgstr "Kopjeruajtje Ekzistuese" #: plinth/modules/backups/templates/backups_add_remote_repository.html:19 -#, fuzzy, python-format -#| msgid "" -#| "The credentials for this repository are stored on your %(box_name)s.
To restore a backup on a new %(box_name)s you need the ssh credentials " -#| "and, if chosen, the encryption passphrase." +#, python-format msgid "" "The credentials for this repository are stored on your %(box_name)s.
" "To restore a backup on a new %(box_name)s you need the SSH credentials and, " @@ -492,7 +488,7 @@ msgid "" msgstr "" "Kredencialet për këtë depo janë depozituar te %(box_name)s juaj.
Për të " "rikthyer në punë kopjeruajtje te një %(box_name)s i ri ju duhen kredencialet " -"ssh dhe, nëse qe zgjedhur, frazëkalimi për fshehtëzimin." +"SSH dhe, nëse qe zgjedhur, frazëkalimi për fshehtëzimin." #: plinth/modules/backups/templates/backups_add_remote_repository.html:28 msgid "Create Location" @@ -646,19 +642,14 @@ msgid "How to verify?" msgstr "Si të verifikohet?" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:45 -#, fuzzy -#| msgid "" -#| "Run the following command on the SSH host machine. The output should " -#| "match one of the provided options. You can also use dsa, ecdsa, ed25519 " -#| "etc. instead of rsa, by choosing the corresponding file." msgid "" "Run the following command on the SSH host machine. The output should match " "one of the provided options. You can also use DSA, ECDSA, Ed25519 etc. " "instead of RSA, by choosing the corresponding file." msgstr "" "Xhironi urdhrin vijues në makinën e strehës SSH. Përfundimi duhet të " -"përputhet me një nga mundësitë e dhëna. Mundeni edhe të përdorni dsa, ecdsa, " -"ed25519 etj, në vend se rsa, duke zgjedhur kartelën përkatëse." +"përputhet me një nga mundësitë e dhëna. Mundeni edhe të përdorni DSA, ECDSA, " +"Ed25519 etj, në vend se RSA, duke zgjedhur kartelën përkatëse." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:60 msgid "Verify Host" @@ -875,7 +866,7 @@ msgid "No passwords currently configured." msgstr "S’ka fjalëkalime aktualisht të formësuar." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Fjalëkalim" @@ -994,7 +985,7 @@ msgstr "Aktivizo Zgjerime Sigurie Sistemi Emrash Shërbyesish" #: plinth/modules/bind/templates/bind.html:11 msgid "Serving Domains" -msgstr "" +msgstr "Shërbim Përkatësish" #: plinth/modules/bind/templates/bind.html:17 #: plinth/modules/ikiwiki/forms.py:12 @@ -1011,7 +1002,7 @@ msgstr "Emra Përkatësish" #: plinth/modules/bind/templates/bind.html:19 msgid "Serving" -msgstr "" +msgstr "Shërbim" #: plinth/modules/bind/templates/bind.html:20 msgid "IP addresses" @@ -1023,9 +1014,10 @@ msgid "Refresh IP address and domains" msgstr "Rifresko adresë IP dhe përkatësi" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1040,9 +1032,9 @@ msgid "" "store your e-books on your {box_name}, read them online or from any of your " "devices." msgstr "" -"Shërbyesi calibre furnizon hyrje që nga interneti te koleksioni juaj i e-" -"librave. E-librat mund t’i depozitoni në {box_name} tuaj, t’i lexoni që nga " -"interneti ose nga cilado pajisje juaj." +"Shërbyesi <em>calibre</em> furnizon hyrje që nga interneti te " +"koleksioni juaj i e-librave. E-librat mund t’i depozitoni në {box_name} " +"tuaj, t’i lexoni që nga interneti ose nga cilado pajisje juaj." #: plinth/modules/calibre/__init__.py:29 msgid "" @@ -1225,7 +1217,7 @@ msgstr "" msgid "General Configuration" msgstr "Formësim i Përgjithshëm" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1233,13 +1225,13 @@ msgid "Configure" msgstr "Formësoni" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Emër Përkatësie" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Emër i pavlefshëm përkatësie" @@ -1383,6 +1375,9 @@ msgid "" "\"{ms_url}\">Matrix Synapse or ejabberd need to " "be configured with the details provided here." msgstr "" +"S’është menduar të përdoret drejtpërsëdrejti nga përdoruesit. Shërbyes të " +"tillë si Matrix Synapse, ose ejabberd duhen formësuar me hollësitë e dhëna këtu." #: plinth/modules/coturn/__init__.py:57 msgid "Coturn" @@ -1394,7 +1389,7 @@ msgstr "Ndihmës VoIP" #: plinth/modules/coturn/forms.py:22 msgid "Invalid list of STUN/TURN Server URIs" -msgstr "" +msgstr "Listë e pavlefshme URI-sh Shërbyesi STUN/TURN" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" @@ -1509,7 +1504,7 @@ msgstr "gabim" #: plinth/modules/diagnostics/__init__.py:100 msgid "warning" -msgstr "" +msgstr "kujdes" #. Translators: This is the unit of computer storage Mebibyte similar to #. Megabyte. @@ -1587,6 +1582,7 @@ msgid "Test" msgstr "Provë" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Përfundim" @@ -1594,7 +1590,7 @@ msgstr "Përfundim" msgid "Diagnostic Test" msgstr "Test Diagnostikimesh" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1606,7 +1602,7 @@ msgstr "" "Internet. Kjo do t’u pengojë të tjerëve të gjejnë shërbime të cilat ofrohen " "nga ky {box_name}." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1624,15 +1620,35 @@ msgstr "" "emrin tuaj DNS me IP-në e re, dhe nëse dikush në Internet kërkon për emrin " "tuaj DNS, do të marrë një përgjigje me adresën tuaj aktuale IP." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Nëse po kërkoni për një llogari falas DNS-je dinamike, mund të gjeni një " +"shërbim GnuDIP të lirë, te ddns.freedombox.org</a>, ose mund të gjeni shërbime të " +"lira me bazë përditësim URL-je, te <a href=\" target=\"_blank\"> freedns." +"afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient DNS Dinamik" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Emër Dinamik Përkatësie" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1642,7 +1658,7 @@ msgstr "" "përdoren brenda URL-së. Për hollësi, shihni gjedhet e përditësimit të URL-së " "për shembuj furnizuesish." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1653,7 +1669,7 @@ msgstr "" "nëse furnizuesi juaj nuk duket te lista, mund të përdorni URL-n e " "përditësimit të furnizuesit tuaj." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1661,19 +1677,19 @@ msgstr "" "Ju lutemi, mos jepni një URL këtu (bie fjala, “https://example.com/”), por " "vetëm strehëemrin e shërbyesit GnuDIP (p.sh., “example.com”)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Emri publik i përkatësisë që doni të përdoret për të kapur {box_name} tuaj." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Përdoreni këtë mundësi, nëse furnizuesi juaj i shërbimeve përdor dëshmi të " "vetënënshkruara." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1681,18 +1697,13 @@ msgstr "" "Nëse kjo mundësi është përzgjedhur, emri i përdoruesit dhe fjalëkalimi për " "ju do të përdoren për mirëfilltësim elementa HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" "Nëse doni të mbahet fjalëkalimi i tanishëm, lëreni të zbrazët këtë fushë." -#: plinth/modules/dynamicdns/forms.py:54 -#, fuzzy, python-brace-format -#| msgid "" -#| "Optional Value. If your {box_name} is not connected directly to the " -#| "Internet (i.e. connected to a NAT router) this URL is used to determine " -#| "the real IP address. The URL should simply return the IP where the client " -#| "comes from (example: http://myip.datasystems24.de)." +#: plinth/modules/dynamicdns/forms.py:43 +#, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " "(i.e. connected to a NAT router) this URL is used to determine the real IP " @@ -1702,169 +1713,70 @@ msgstr "" "Vlerë Opsionale. Nëse {box_name} juaj s’lidhet drejtpërsëdrejti në Internet " "(p.sh., i lidhur me një rrugëzues NAT), kjo URL përdoret për të përcaktuar " "adresën e njëmendtë IP. URL-ja thjesht duhet të japë IP-në prej nga vjen " -"klienti (shembull: http://myip.datasystems24.de)." +"klienti (shembull: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Emri i përdoruesit që u përdor kur u krijua llogaria." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "tjetër URL përditësimesh" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Aktivizo DNS Dinamik" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Lloj Shërbimi" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Adresë Shërbyesi GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Emër i pavlefshëm shërbyesi" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL Përditësimi" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Prano krejt dëshmitë SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Përdor mirëfilltësim elementar HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Emër përdoruesi" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Shfaq fjalëkalim" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL ku të kërkohet IP publike" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Përdor IPv6, në vend se IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Ju lutemi, jepni një URL përditësimi ose një adresë shërbyesi GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Ju lutemi, jepni një emër përdoruesi GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Ju lutemi, jepni një emër përkatësie GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Ju lutemi, jepni një fjalëkalim" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 +#: plinth/modules/dynamicdns/forms.py:123 #, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Nëse po kërkoni për një llogari falas DNS-je dinamike, mund të gjeni një " -"shërbim GnuDIP të lirë, te gnudip.datasystems24.net, ose mund të gjeni shërbime " -"të lira me bazë përditësim URL-je, te freedns.afraid.org." +#| msgid "secrets required" +msgid "This field is required." +msgstr "lyp të fshehta" -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Nëse %(box_name)s juaj gjendet pas një rrugëzuesi NAT, mos harroni të shtoni " -"përcjellje portash për porta standarde, përfshi portën TCP 80 (HTTP) dhe " -"portën TCP 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Keni çaktivizuar Javascript-in. Mënyra e formularëve dinamikë është e " -"çaktivizuar dhe disa funksione ndihmës mund të mos funksionojnë (por " -"funksionet kryesore duhet të punojnë)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Përditësoni ujdisjen" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Lloj NAT-i" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"S’është pikasur ende lloj NAT-i. Nëse s’jepni një “URL Kontrolli IP-je”, " -"s’do të pikasim lloj NAT-i." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Lidhje e drejtpërdrejtë në Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Pas NAT-i. Kjo do të thotë që shërbimi DNS Dinamik do të vëzhgojë “URL ku të " -"kërkohet IP publike” për ndryshime (zëri “URL ku të kërkohet IP publike” " -"është i domosdoshëm për këtë, përndryshe ndryshimet e IP-së s’do të pikasen " -"dot). Në rast ndryshimet IP-je WAN, mund të duhen deri në %(timer)s minuta, " -"para se të përditësohet zëri juaj DNS." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Përditësimi i fundit më" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Mbi" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1878,13 +1790,60 @@ msgstr "Mbi" msgid "Status" msgstr "Gjendje" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Formësoni DNS Dinamik" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Përkatësi" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Gjendje DNS Dinamik" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Përditësimi i fundit më" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "Adresë IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Hyrje" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "dështoi" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "S’ka biblioteka." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Emër Lidhjeje" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Fshije lidhjen" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Enable auto-update" +msgid "Already up-to-date" +msgstr "Aktivio vetëpërditësim" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1914,6 +1873,9 @@ msgid "" "ejabberd needs a STUN/TURN server for audio/video calls. Install the Coturn app or configure an external server." msgstr "" +"ejabberd lyp një shërbyes STUN/TURN për thirrje audio/video. Instaloni " +"aplikacionin Coturn, ose formësoni një shërbyes " +"të jashtëm." #: plinth/modules/ejabberd/__init__.py:65 msgid "ejabberd" @@ -1953,6 +1915,9 @@ msgid "" "server for ejabberd. Disable this if you want to use a different STUN/TURN " "server." msgstr "" +"Formëson aplikacionin vendor coturn si shërbyes " +"STUN/TURN për ejjaberd-in. Çaktivizojeni këtë, nëse doni të përdorni një " +"shërbyes tjetër STUN/TURN." #: plinth/modules/ejabberd/forms.py:36 plinth/modules/matrixsynapse/forms.py:31 msgid "STUN/TURN Server URIs" @@ -1960,11 +1925,11 @@ msgstr "URI Shërbyesi STUN/TURN" #: plinth/modules/ejabberd/forms.py:38 plinth/modules/matrixsynapse/forms.py:33 msgid "List of public URIs of the STUN/TURN server, one on each line." -msgstr "" +msgstr "Listë URI-sh publike shërbyesish STUN/TURN, një për rresht." #: plinth/modules/ejabberd/forms.py:42 plinth/modules/matrixsynapse/forms.py:37 msgid "Shared Authentication Secret" -msgstr "" +msgstr "E fshehtë Mirëfilltësimi e Përbashkët" #: plinth/modules/ejabberd/forms.py:43 plinth/modules/matrixsynapse/forms.py:38 msgid "Shared secret used to compute passwords for the TURN server." @@ -2034,68 +1999,67 @@ msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" +"Aplikacioni Roundcube furnizon " +"ndërfaqe web për përdoruesit për të përdorur email-in." #: plinth/modules/email_server/__init__.py:33 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" +"Gjatë instalimit, çfarëdo shërbyesi tjetër email në sistem do të çinstalohet." #: plinth/modules/email_server/__init__.py:44 -#, fuzzy -#| msgid "Chat Server" msgid "Email Server" -msgstr "Shërbyes Fjalosjesh" +msgstr "Shërbyes Email-i" #: plinth/modules/email_server/__init__.py:100 msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +msgstr "Bazuar në Postfix, Dovecot & Rspamd" #: plinth/modules/email_server/audit/ldap.py:68 msgid "Postfix-Dovecot SASL integration" -msgstr "" +msgstr "Ingetrim Postfix-Dovecot SASL" #: plinth/modules/email_server/audit/ldap.py:69 msgid "Postfix alias maps" -msgstr "" +msgstr "Harta aliasesh Postfix" #: plinth/modules/email_server/audit/spam.py:87 msgid "Inbound and outbound mail filters" -msgstr "" +msgstr "Filtra email-esh të marrë dhe të dërguar" #: plinth/modules/email_server/forms.py:24 -#, fuzzy -#| msgid "Primary connection" msgid "Primary domain" -msgstr "Lidhje parësore" +msgstr "Përkatësi parësore" #: plinth/modules/email_server/forms.py:26 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" +"Email-et merren për krejt përkatësitë e formësuara në sistem. Me këtyre, " +"përzgjidhni një më të rëndësishmen." #: plinth/modules/email_server/forms.py:34 msgid "New alias (without @domain)" -msgstr "" +msgstr "Alias i ri (pa @përkatësi)" #: plinth/modules/email_server/forms.py:41 msgid "Contains illegal characters" -msgstr "" +msgstr "Përmban shenja të paligjshme" #: plinth/modules/email_server/forms.py:44 msgid "Must start and end with a-z or 0-9" -msgstr "" +msgstr "Duhet të fillojë dhe të përfundojë me a-z ose 0-9" #: plinth/modules/email_server/forms.py:47 msgid "Cannot be a number" -msgstr "" +msgstr "S’mund të jetë një numër" #: plinth/modules/email_server/forms.py:57 -#, fuzzy -#| msgid "Manage Libraries" msgid "Aliases" -msgstr "Administroni Biblioteka" +msgstr "Aliase" #: plinth/modules/email_server/forms.py:69 #: plinth/modules/firewall/templates/firewall.html:54 @@ -2120,57 +2084,45 @@ msgstr "Roundcube" #: plinth/modules/email_server/manifest.py:16 #: plinth/modules/radicale/manifest.py:36 -#, fuzzy -#| msgid "Mozilla Thunderbird" msgid "Thunderbird" -msgstr "Mozilla Thunderbird" +msgstr "Thunderbird" #: plinth/modules/email_server/manifest.py:33 msgid "K-9 Mail" -msgstr "" +msgstr "K-9 Mail" #: plinth/modules/email_server/manifest.py:48 msgid "FairEmail" -msgstr "" +msgstr "FairEmail" #: plinth/modules/email_server/templates/email_alias.html:13 #: plinth/modules/email_server/templates/email_server.html:15 -#, fuzzy -#| msgid "Manage Libraries" msgid "Manage Aliases" -msgstr "Administroni Biblioteka" +msgstr "Administroni Aliase" #: plinth/modules/email_server/templates/email_alias.html:16 msgid "You have no email aliases." -msgstr "" +msgstr "S’keni aliase emil-i." #: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" msgid "Disable" -msgstr "E çaktivizuar" +msgstr "Çaktivizoje" #: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" msgid "Enable" -msgstr "E aktivizuar" +msgstr "Aktivizoje" #: plinth/modules/email_server/templates/email_alias.html:32 -#, fuzzy -#| msgid "Create a new backup" msgid "Create a new email alias" -msgstr "Krijoni një kopjeruajtje të re" +msgstr "Krijoni një alias të ri email-i" #: plinth/modules/email_server/templates/email_alias.html:38 msgid "Add" msgstr "Shtoje" #: plinth/modules/email_server/templates/email_server.html:10 -#, fuzzy -#| msgid "Manage Snapshots" msgid "Manage Spam" -msgstr "Administroni Fotografime" +msgstr "Administroni Të Padëshiruarat" #: plinth/modules/firewall/__init__.py:26 #, python-brace-format @@ -2483,6 +2435,11 @@ msgstr "Parashtroni Përshtypjet" msgid "Contribute" msgstr "Jepni Ndihmesë" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Mbi" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2717,7 +2674,7 @@ msgid "" "Search for past discussions or post a new query on our discussion forum." msgstr "" -"kërkoni në diskutimet e kaluara, ose postoni një kërkesë të re te forumi ynë i " "diskutimeve." @@ -2830,11 +2787,6 @@ msgid "Anonymous Torrents" msgstr "Rrëkeza Aanonime" #: plinth/modules/i2p/views.py:16 -#, fuzzy -#| msgid "" -#| "I2P lets you browse the Internet and hidden services (eepsites) " -#| "anonymously. For this, your browser, preferably a Tor Browser, needs to " -#| "be configured for a proxy." msgid "" "I2P lets you browse the Internet and hidden services (eepsites) anonymously. " "For this, your browser, preferably the Tor Browser, needs to be configured " @@ -2842,7 +2794,7 @@ msgid "" msgstr "" "I2P-ja ju ljeon të shfletoni në mënyrë anonime Internetin dhe shërbime të " "fshehura (eepsites). Për këtë, shfletuesi juaj, mundësisht një Shfletues " -"Tor, duhet formësuar për një ndërmjetës." +"Tor, duhet formësuar me një ndërmjetës." #: plinth/modules/i2p/views.py:19 msgid "" @@ -2931,6 +2883,13 @@ msgstr "Kalo te sajti %(site)s" msgid "Delete site %(site)s" msgstr "Fshije sajtin %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Përditësoni ujdisjen" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3075,11 +3034,7 @@ msgstr "Dëshmi" #: plinth/modules/letsencrypt/__init__.py:98 msgid "Cannot test: No domains are configured." -msgstr "" - -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Përkatësi" +msgstr "S’mund të testojë: S’ka përkatësi të formësuara." #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" @@ -3187,6 +3142,13 @@ msgid "" "not require phone numbers to work. Users on a given Matrix server can " "converse with users on all other Matrix servers via federation." msgstr "" +"Matrix është një " +"ekosistem i ri për shkëmbim të hapët, të federuar, mesazhesh të " +"atypëratyshëm dhe VoIP. Synapse është një shërbyes që sendërton protokollin " +"Matrix. Furnizon grupe fjalosjesh, thirrje audio/video, fshehtëzim skaj-më-" +"skaj, njëkohësim pajisjesh të shumta dhe nuk lyp numra telefonash që të " +"funksionojë. Përmes federimi, përdoruesit në një shërbyes të dhënë Matrix " +"mund të bisedojnë me përdorues në krejt shërbyesit e tjerë Matrix." #: plinth/modules/matrixsynapse/__init__.py:37 #, python-brace-format @@ -3194,6 +3156,9 @@ msgid "" "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Coturn app or configure an external server." msgstr "" +"Matrix Synapse lyp një shërbyes STUN/TURN për thirrje audio/video. Instaloni " +"aplikacionin Coturn, ose formësoni një shërbyes " +"të jashtëm." #: plinth/modules/matrixsynapse/__init__.py:70 msgid "Matrix Synapse" @@ -3209,6 +3174,9 @@ msgid "" "a new account on your Matrix server. Disable this if you only want existing " "users to be able to use it." msgstr "" +"Aktivizimi i regjistrimeve publike do të thotë se cilido në Internet mund të " +"regjistrojë një llogari të re në shërbyesin tuaj Matrix. Çaktivizojeni këtë, " +"nëse doni të jenë të aftë për ta përdorur vetëm përdoruesit ekzistues." #: plinth/modules/matrixsynapse/forms.py:24 #, python-brace-format @@ -3217,6 +3185,9 @@ msgid "" "server for Matrix Synapse. Disable this if you want to use a different STUN/" "TURN server." msgstr "" +"Formëson aplikacionin vendor coturn si shërbyes " +"STUN/TURN për Matrix Synapse. Çaktivizojeni këtë, nëse doni të përdorni një " +"shërbyes tjetër STUN/TURN." #: plinth/modules/matrixsynapse/manifest.py:14 msgid "Element" @@ -3224,7 +3195,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3439,6 +3410,11 @@ msgid "" "(30000). To connect to the server, a Minetest client is needed." msgstr "" +"Minetest është një bankëprovë blloqesh lojërash “botë e pafundme” me shumë " +"lojëtarë. Ky modul i bën të mundur shërbyesit Minetest të xhirojë mbi këtë " +"{box_name}, në portën parazgjedhje (30000). Që të lidheni me shërbyesin, " +"lypset një klient Minetest." #: plinth/modules/minetest/__init__.py:59 plinth/modules/minetest/manifest.py:9 msgid "Minetest" @@ -3446,7 +3422,7 @@ msgstr "Minetest" #: plinth/modules/minetest/__init__.py:60 msgid "Block Sandbox" -msgstr "" +msgstr "Bankëprovë Blloqesh" #: plinth/modules/minetest/forms.py:13 msgid "Maximum number of players" @@ -3502,22 +3478,6 @@ msgstr "Adresë" msgid "Port" msgstr "Portë" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Formësimi PVP u përditësua" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3598,11 +3558,6 @@ msgstr "" "fjalosje me zë, të fshehtëzuar, <em>low-latency</em>." #: plinth/modules/mumble/__init__.py:28 -#, fuzzy -#| msgid "" -#| "You can connect to your Mumble server on the regular Mumble port 64738. " -#| "Clients to connect to Mumble from your " -#| "desktop and Android devices are available." msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -3610,7 +3565,7 @@ msgid "" msgstr "" "Me shërbyesin tuaj Mumble mund të lidheni përmes portës së rregullt Mumble " "64738. Ka klientë klientë të gatshëm për " -"t’u lidhur me Mumble-in që nga desktopi apo pajisjet tuaja Android." +"t’u lidhur me Mumble-in që nga desktopi apo pajisjet tuaja celulare." #: plinth/modules/mumble/__init__.py:48 plinth/modules/mumble/manifest.py:9 msgid "Mumble" @@ -4569,11 +4524,6 @@ msgstr "" "që kështu %(box_name)s-i të japë shërbimet." #: plinth/modules/networks/templates/router_configuration_content.html:32 -#, fuzzy -#| msgid "" -#| "If you don't have control over your router, choose not to configure it. " -#| "To see options to overcome this limitation, choose 'no public address' " -#| "option in Internet connection type selection." msgid "" "If you don't have control over your router, choose not to configure it. To " "see options to overcome this limitation, choose 'I dont have a public IP " @@ -4581,8 +4531,9 @@ msgid "" "\">Internet connection type selection." msgstr "" "Nëse s’keni kontrollin e rrugëzuesit tuaj, zgjidhni të mos formësohet. Që të " -"shihni mundësitë për kapërcimin e këtij kufizimi, zgjidhni mundësinë “pa " -"adresë publike”, te përzgjedhje lloji lidhjeje në Internet." +"shihni mundësitë për kapërcimin e këtij kufizimi, zgjidhni mundësinë “S’kam " +"adresë IP publike”, te përzgjedhja e llojit të lidhjes tuaj Internet." #: plinth/modules/networks/templates/router_configuration_content.html:39 msgid "Choose How You Wish to Configure Your Router" @@ -5061,7 +5012,7 @@ msgstr "" #: plinth/modules/pagekite/forms.py:40 msgid "Kite name" -msgstr "Emër <em>pagekite</em>" +msgstr "Emër Kite-i" #: plinth/modules/pagekite/forms.py:41 msgid "Example: mybox.pagekite.me" @@ -5073,7 +5024,7 @@ msgstr "Emër <em>pagekite</em> i pavlefshëm" #: plinth/modules/pagekite/forms.py:47 msgid "Kite secret" -msgstr "E fshehtë <em>pagekite</em>" +msgstr "E fshehtë Kite-i" #: plinth/modules/pagekite/forms.py:48 msgid "" @@ -5513,7 +5464,7 @@ msgstr "Klient Email" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Përdor vetëm shërbyesin vendor të email-it" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5521,6 +5472,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Kur aktivizohet, prej faqes së hyrjeve hiqet kuadrati për dhënie teksti " +"kundrejt shërbyesit dhe përdoruesit mund të lexojnë dhe dërgojnë email-e " +"vetëm prej këtij {box_name}." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5821,6 +5775,9 @@ msgid "" "There are %(count)s reported security vulnerabilities in the FreedomBox app, " "which provides the core services and user interface for a FreedomBox server." msgstr "" +"Ka %(count)s cenueshmëri sigurie të raportuara në aplikacionin FreedomBox, i " +"cili furnizon shërbimet bazë dhe ndërfaqen e përdoruesit për shërbyesin " +"FreedomBox." #: plinth/modules/security/templates/security_report.html:19 msgid "" @@ -5829,6 +5786,10 @@ msgid "" "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" +"Tabela vijuese radhit numrin e tanishëm të cenueshmërive të sigurisë të " +"raportuara për çdo aplikacion të instaluar. Më tepër hollësi mbi " +"cenueshmëritë mund të gjenden te Ndjekësi i të Metave të Sigurisë në Debian." #: plinth/modules/security/templates/security_report.html:28 msgid "" @@ -5912,10 +5873,8 @@ msgid "Bookmarks" msgstr "Faqerojtës" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6006,7 +5965,7 @@ msgid "" "A lowercase alpha-numeric string that uniquely identifies a share. Example: " "media." msgstr "" -"Një varg alfanumerik me të vogla që identifikon në mënyrë unike një pjesë. " +"Një varg alfanumerik me të vogla, që identifikon në mënyrë unike një pjesë. " "Për shembull: media." #: plinth/modules/sharing/forms.py:24 @@ -6158,13 +6117,12 @@ msgid "Software Installation Snapshots" msgstr "Fotografime Instalimi Software-i" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Aktivizoni ose çaktivizoni fotografime para dhe pas instalimi software-i" +"Aktivizoni ose çaktivizoni fotografime para dhe pas instalimi dhe " +"përditësimi software-i." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6292,7 +6250,7 @@ msgstr "rrjedhë kohore" #: plinth/modules/snapshot/views.py:29 msgid "apt" -msgstr "" +msgstr "apt" #: plinth/modules/snapshot/views.py:39 msgid "Manage Snapshots" @@ -6400,10 +6358,8 @@ msgid "Login" msgstr "Hyrje" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Fjalëkalimi u ndryshua me sukses." +msgstr "U dol me sukses." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -6648,6 +6604,10 @@ msgid "" "deletion of files on one device will be automatically replicated on all " "other devices that also run Syncthing." msgstr "" +"Syncthing është një aplikacion për njëkohësim kartelash nëpër pajisje të " +"shumta. p.sh., kompjuteri juaj desktop dhe telefoni celular. Krijimi, " +"ndryshimi, ose fshirja e kartelave në një pajisje do të përsëritet vetvetiu " +"në krejt pajisjet e tjera që xhirojnë gjithashtu Syncthing-un." #: plinth/modules/syncthing/__init__.py:28 #, python-brace-format @@ -6660,6 +6620,13 @@ msgid "" "{box_name} is only available for users belonging to the \"admin\" or " "\"syncthing-access\" group." msgstr "" +"Xhirimi i Syncthing-ut në {box_name} furnizon një pikë shtesë njëkohësimesh " +"për të dhënat tuaja, që është e përdorshme shumicën e kohës, duke u lejuar " +"pajisjeve tuaja të njëkohësohen më shpesh. {box_name} xhiron një instancë " +"Syncthing-u që mund të përdoret nga shumë përdorues. Grupi i pajisjeve të " +"çdo përdoruesi mund të njëkohësohet me një grup të veçantë dosjesh. " +"Ndërfaqja web te {box_name} është e përdorshme vetëm nga përdorues që i " +"përkasin grupit “përgjegjës”, ose atij “syncthing-access”." #: plinth/modules/syncthing/__init__.py:57 msgid "Administer Syncthing application" @@ -6710,11 +6677,11 @@ msgstr "Portë releje Tor e gatshme" #: plinth/modules/tor/__init__.py:127 msgid "Obfs3 transport registered" -msgstr "" +msgstr "U regjistruar transport Obfs3" #: plinth/modules/tor/__init__.py:137 msgid "Obfs4 transport registered" -msgstr "" +msgstr "U regjistruar transport Obfs3" #: plinth/modules/tor/__init__.py:206 #, python-brace-format @@ -6738,7 +6705,7 @@ msgstr "Aktivizo Tor-in" #: plinth/modules/tor/forms.py:77 msgid "Use upstream bridges to connect to Tor network" -msgstr "" +msgstr "Përdorni ura “upstream” që të lidheni në rrjetin Tor" #: plinth/modules/tor/forms.py:79 msgid "" @@ -6746,10 +6713,14 @@ msgid "" "Tor network. Use this option if your Internet Service Provider (ISP) blocks " "or censors connections to the Tor Network. This will disable relay modes." msgstr "" +"Kur aktivizohet, urat e formësuara më poshtë do të përdoren për t’u lidhur " +"në rrjetin Tor. Përdoreni këtë mundësi nëse Furnizuesi i Shërbimit tuaj " +"Internet (ISP) bllokon ose censuron lidhjet në Rrjetin Tor. Kjo do të " +"çaktivizojë mënyrat rele." #: plinth/modules/tor/forms.py:84 msgid "Upstream bridges" -msgstr "" +msgstr "Ura “upstream”" #: plinth/modules/tor/forms.py:86 msgid "" @@ -6757,6 +6728,11 @@ msgid "" "\">https://bridges.torproject.org/ and copy/paste the bridge information " "here. Currently supported transports are none, obfs3, obfs4 and scamblesuit." msgstr "" +"Mund të merrni ndonjë urë prej https://bridges.torproject.org/ dhe të kopjoni/ngjitni hollësitë e " +"urës këtu. Transportet që mbulohen tani janë <em>asnjë</em>, <" +"em>obfs3</em>, <em>obfs4</em> dhe <em>" +"scamblesuit</em>." #: plinth/modules/tor/forms.py:92 msgid "Enable Tor relay" @@ -6769,6 +6745,9 @@ msgid "" "the Tor network. Do this if you have more than 2 megabits/s of upload and " "download bandwidth." msgstr "" +"Kur aktivizohet, {box_name} juaj do të xhirojë një rele Tor dhe do të " +"dhurojë gjerësi bande për rrjetin Tor. Bëjeni këtë nëse keni gjerësi bande " +"ngarkimesh dhe shkarkimesh më tepër se 2 megabite/s." #: plinth/modules/tor/forms.py:98 msgid "Enable Tor bridge relay" @@ -6780,6 +6759,10 @@ msgid "" "instead of public Tor relay database making it harder to censor this node. " "This helps others circumvent censorship." msgstr "" +"Kur aktivizohet, hollësitë e relesë do të publikohen te baza e të dhënave të " +"urave Tor, në vend se baza e të dhënave të releve publike Tor, duke e bërë " +"më të vështirë censurimin e kësaj nyjeje. Kjo i ndihmon të tjerët të " +"anashkalojnë censurimin." #: plinth/modules/tor/forms.py:105 msgid "Enable Tor Hidden Service" @@ -6813,6 +6796,7 @@ msgstr "" #: plinth/modules/tor/forms.py:128 msgid "Specify at least one upstream bridge to use upstream bridges." msgstr "" +"Që të përdoren ura “upstream”, përcaktoni të paktën një urë “upstream”." #: plinth/modules/tor/manifest.py:13 msgid "Tor Browser" @@ -6844,6 +6828,9 @@ msgid "" "If your %(box_name)s is behind a router or firewall, you should make sure " "the following ports are open, and port-forwarded, if necessary:" msgstr "" +"Nëse %(box_name)s juaj gjendet pas një rrugëzuesi ose firewall-i, duhet të " +"bëni të mundur që portat vijuese të jenë të hapura, si dhe <em>port-" +"forwarded</em>, në qoftë e nevojshme:" #: plinth/modules/tor/templates/tor.html:71 msgid "Service" @@ -6856,25 +6843,27 @@ msgstr "SOCKS" #: plinth/modules/tor/templates/tor.html:90 #, python-format msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." -msgstr "" +msgstr "Një portë SOCKS Tor-i në %(box_name)s tuaj gjendet në portën TCP 9050." #: plinth/modules/tor/views.py:137 plinth/views.py:222 msgid "Setting unchanged" -msgstr "" +msgstr "Rregullim i pandryshuar" #: plinth/modules/transmission/__init__.py:24 msgid "Transmission is a BitTorrent client with a web interface." -msgstr "" +msgstr "Transmission është një klient BitTorrent me një ndërfaqe web." #: plinth/modules/transmission/__init__.py:25 msgid "" "BitTorrent is a peer-to-peer file sharing protocol. Note that BitTorrent is " "not anonymous." msgstr "" +"BitTorrent është një protokoll shkëmbimi kartelash tek-për-tek. Kini " +"parasysh se BitTorrent s’është anonim." #: plinth/modules/transmission/__init__.py:27 msgid "Please do not change the default port of the Transmission daemon." -msgstr "" +msgstr "Ju lutemi, mos ndryshoni portën parazgjedhje të demonit Transmission." #: plinth/modules/transmission/__init__.py:53 #: plinth/modules/transmission/manifest.py:6 @@ -6887,6 +6876,9 @@ msgid "" "allow reading news from any location, while feeling as close to a real " "desktop application as possible." msgstr "" +"Tiny Tiny RSS është një lexues dhe grumbullues prurjesh lajmesh (RSS/Atom), " +"i konceptuar të lejojë lexim lajmesh prej çfarëdo vendndodhjeje, ndërkohë që " +"duket si një aplikacion desktop, aq afër kësaj sa mundet." #: plinth/modules/ttrss/__init__.py:27 #, python-brace-format @@ -6894,16 +6886,21 @@ msgid "" "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login." msgstr "" +"Kur aktivizohet, Tiny Tiny RSS mund të përdoret nga cilido përdorues me kredenciale hyrjeje në {box_name}." #: plinth/modules/ttrss/__init__.py:31 msgid "" "When using a mobile or desktop application for Tiny Tiny RSS, use the URL /tt-rss-app for connecting." msgstr "" +"Kur për Tiny Tiny RSS-në përdoret një aplikacion për celular, ose për " +"dekstop, përdorni URL /tt-rss-app për t’u " +"lidhur." #: plinth/modules/ttrss/__init__.py:49 msgid "Read and subscribe to news feeds" -msgstr "" +msgstr "Lexoni dhe pajtohuni te prurje lajmesh" #: plinth/modules/ttrss/__init__.py:52 plinth/modules/ttrss/manifest.py:18 msgid "Tiny Tiny RSS" @@ -6921,6 +6918,7 @@ msgstr "Tiny Tiny RSS (Fork)" #: plinth/modules/upgrades/templates/update-firstboot.html:14 msgid "Check for and apply the latest software and security updates." msgstr "" +"Kontrolloni dhe aplikoni përditësimet më të reja software-i dhe sigurie." #: plinth/modules/upgrades/__init__.py:40 msgid "" @@ -6929,15 +6927,18 @@ msgid "" "to be unavailable briefly. If system reboot is deemed necessary, it is done " "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" +"Përditësimet bëhen më 06:00 çdo ditë, sipas zonës vendore kohore. Ujdisni " +"zonë tuaj kohore që nga aplikacioni Datë & Kohë. Aplikacionet rinisen, " +"pas përditësimi, duke bërë që të jenë jashtë funksionimi për ca çaste. Nëse " +"rinisja e sistemit shihet si e domosdoshme, bëhet automatikisht më 02:00, " +"duke bërë që krejt aplikacionet të jenë jashtë funksionimi për ca çaste." #: plinth/modules/upgrades/__init__.py:74 #: plinth/modules/upgrades/__init__.py:129 #: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 #: plinth/modules/upgrades/templates/update-firstboot.html:11 -#, fuzzy -#| msgid "Server URL updated" msgid "Software Update" -msgstr "URL-ja e shërbyesit u përditësua" +msgstr "Përditësim Software-i" #: plinth/modules/upgrades/__init__.py:132 msgid "FreedomBox Updated" @@ -6945,7 +6946,7 @@ msgstr "FreedomBox-i u Përditësua" #: plinth/modules/upgrades/__init__.py:217 msgid "Could not start distribution update" -msgstr "" +msgstr "S’u fillua dot përditësim shpërndarjeje" #: plinth/modules/upgrades/__init__.py:219 msgid "" @@ -6953,15 +6954,21 @@ msgid "" "distribution update. Please ensure at least 5 GB is free. Distribution " "update will be retried after 24 hours, if enabled." msgstr "" +"S’ka hapësirë të lirë të mjaftueshme te pjesa rrënjë, që të fillojë " +"përditësimi i shpërndarjes. Ju lutemi, siguroni të paktën 5 GB të lira. " +"Përditësimi i shpërndarjes do të riprovohet pas 24 orësh, nëse kjo është " +"aktivizuar." #: plinth/modules/upgrades/__init__.py:230 msgid "Distribution update started" -msgstr "" +msgstr "Përditësimi i shpërndarjes filloi" #: plinth/modules/upgrades/__init__.py:232 msgid "" "Started update to next stable release. This may take a long time to complete." msgstr "" +"Filloi përditësimi me hedhjen e re të qëndrueshme në qarkullim. Ky mund të " +"dojë një kohë të gjatë për t’u plotësuar." #: plinth/modules/upgrades/forms.py:15 msgid "Enable auto-update" @@ -6970,21 +6977,24 @@ msgstr "Aktivio vetëpërditësim" #: plinth/modules/upgrades/forms.py:16 msgid "When enabled, FreedomBox automatically updates once a day." msgstr "" +"Kur është aktivizuar, FreedomBox-i përditësohet vetvetiu një herë në ditë." #: plinth/modules/upgrades/forms.py:19 msgid "Enable auto-update to next stable release" -msgstr "" +msgstr "Aktivizoni vetëpërditësim me hedhjen e re të qëndrueshme në qarkullim" #: plinth/modules/upgrades/forms.py:20 msgid "" "When enabled, FreedomBox will update to the next stable distribution release " "when it is available." msgstr "" +"Kur është aktivizuar, FreedomBox-i do të përditësohet me hedhjen e re të " +"qëndrueshme në qarkullim, kur ka të tillë." #: plinth/modules/upgrades/forms.py:34 #: plinth/modules/upgrades/templates/upgrades_configure.html:89 msgid "Activate frequent feature updates (recommended)" -msgstr "" +msgstr "Aktivizoni përditësime të shpeshta veçorish (e rekomanduar)" #: plinth/modules/upgrades/forms.py:40 msgid "Update now (recommended)" @@ -6995,12 +7005,16 @@ msgid "" "It is strongly recommended to activate frequent feature updates. If not " "activated now, they can be activated later." msgstr "" +"Rekomandohet me forcë të aktivizohen përditësimet e shpeshta të veçorive. " +"Nëse s’aktivizohen tani, mund të aktivizohen më vonë." #: plinth/modules/upgrades/templates/backports-firstboot.html:33 msgid "" "Note: Once frequent feature updates are activated, they " "cannot be deactivated." msgstr "" +"Shënim: Pasi të aktivizohen përditësime të shpeshta " +"veçorish, s’mund të çaktivizohen më." #: plinth/modules/upgrades/templates/update-firstboot-progress.html:19 msgid "Updating, please wait..." @@ -7013,6 +7027,9 @@ msgid "" "this web interface may be temporarily unavailable and show an error. In that " "case, refresh the page to continue." msgstr "" +"Kjo mund të dojë një kohë të gjatë për t’u plotësuar. Gjatë " +"një përditësimi, kjo ndërfaqe web mund të jetë përkohësisht e papërdorshme " +"dhe të shfaqë një gabim. Në rast të tillë, rifreskoni faqen, që të vazhdohet." #: plinth/modules/upgrades/templates/update-firstboot-progress.html:31 #, python-format @@ -7021,12 +7038,14 @@ msgid "" "\t%(box_name)s is up to date. Press Next to continue.\n" " " msgstr "" +"\n" +"\t%(box_name)s është i përditësuar. Që të vazhdohet, klikoni mbi Pasuesi.\n" +" " #: plinth/modules/upgrades/templates/upgrades-new-release.html:9 -#, fuzzy, python-format -#| msgid "%(box_name)s is up to date." +#, python-format msgid "%(box_name)s updated" -msgstr "%(box_name)s është i përditësuar." +msgstr "%(box_name)s u përditësua" #: plinth/modules/upgrades/templates/upgrades-new-release.html:13 #, python-format @@ -7034,6 +7053,8 @@ msgid "" "%(box_name)s has been updated to version %(version)s. See the release announcement." msgstr "" +"%(box_name)s është përditësuar me versionin %(version)s. Shihni njoftimin mbi hedhjen në qarkullim." #: plinth/modules/upgrades/templates/upgrades-new-release.html:22 #: plinth/templates/notifications.html:44 @@ -7048,7 +7069,7 @@ msgstr "Po përditësohet…" #: plinth/modules/upgrades/templates/upgrades_configure.html:32 #, python-format msgid "There is a new %(box_name)s version available." -msgstr "" +msgstr "Ka të gatshëm një version të ri të %(box_name)s." #: plinth/modules/upgrades/templates/upgrades_configure.html:35 msgid "Your Freedombox needs an update!" @@ -7058,12 +7079,16 @@ msgstr "Freedombox-i juaj lyp përditësim!" msgid "" "Frequent feature updates can be activated. Activating them is recommended." msgstr "" +"Përditësimet e shpeshta të veçorive mund të aktivizohen. Aktivizimi i tyre " +"është i rekomanduar." #: plinth/modules/upgrades/templates/upgrades_configure.html:56 msgid "" "Frequent feature updates cannot be activated. They may not be necessary on " "your distribution." msgstr "" +"Përditësimet e shpeshta të veçorive s’mund të aktivizohen. Mund të mos jenë " +"të nevojshme në shpërndarjen tuaj." #: plinth/modules/upgrades/templates/upgrades_configure.html:78 #, python-format @@ -7072,6 +7097,10 @@ msgid "" "cannot be deactivated. You may wish to take a snapshot using Storage Snapshots before continuing." msgstr "" +"Kujdes! Pasi të aktivizohen përditësime të shpeshta " +"veçorish, s’mund të çaktivizohen më. Mund të doni të bëni një fotografim " +"duke përdorur Fotografime Depozitimesh, " +"përpara se të vazhdohet." #: plinth/modules/upgrades/templates/upgrades_configure.html:94 msgid "Manual Update" @@ -7087,6 +7116,10 @@ msgid "" "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 "" +"Kjo mund të dojë një kohë të gjatë për t’u plotësuar.. " +"Gjatë një përditësimi, s’mund të instaloni aplikacione. Veç kësaj, kjo " +"ndërfaqe web mund të jetë përkohësisht e papërdorshme dhe të shfaqë një " +"gabim. Në rast të tillë, rifreskoni faqen, që të vazhdohet." #: plinth/modules/upgrades/templates/upgrades_configure.html:128 msgid "Show recent update logs" @@ -7096,41 +7129,51 @@ msgstr "Shfaq regjistra të freskët përditësimesh" #, python-brace-format msgid "Error when configuring unattended-upgrades: {error}" msgstr "" +"Gabim teksa formësohej <em>unattended-upgrades</em>: {error}" #: plinth/modules/upgrades/views.py:71 msgid "Automatic upgrades enabled" -msgstr "" +msgstr "U aktivizuan përmirësime të automatizuara" #: plinth/modules/upgrades/views.py:74 msgid "Automatic upgrades disabled" -msgstr "" +msgstr "Përmirësimet e vetvetishme janë çaktivizuar" #: plinth/modules/upgrades/views.py:82 msgid "Distribution upgrade enabled" -msgstr "" +msgstr "Me përmirësim shpërndarjeje të aktivizuar" #: plinth/modules/upgrades/views.py:85 msgid "Distribution upgrade disabled" -msgstr "" +msgstr "Me përmirësim shpërndarjeje të çaktivizuar" #: plinth/modules/upgrades/views.py:127 msgid "Upgrade process started." -msgstr "" +msgstr "Procesi i përmirësimit filloi." #: plinth/modules/upgrades/views.py:129 msgid "Starting upgrade failed." -msgstr "" +msgstr "Nisja e përmirësimi dështoi." #: plinth/modules/upgrades/views.py:139 msgid "Frequent feature updates activated." -msgstr "" +msgstr "Përditësime të shpeshta veçorish të aktivizuara." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" +"Krijoni dhe administroni llogari përdoruesi. Këto llogari shërbejnë si " +"mekanizma të centralizuar mirëfilltësimi për shumicën e aplikacioneve. Disa " +"aplikacione kërkojnë doemos një llogari përdoruesi, për të qenë pjesë e një " +"grupi që autorizon përdoruesin të përdorë aplikacionin." #: plinth/modules/users/__init__.py:34 #, python-brace-format @@ -7139,6 +7182,10 @@ msgid "" "relevant to them in the home page. However, only users of the admin " "group may alter apps or system settings." msgstr "" +"Te ndërfaqja web e {box_name} mund të bëjë hyrjen cilido përdorues, që të " +"shohë një listë aplikacionesh që u bëjnë punë atyre te faqja hyrëse. Por, " +"vetëm përdoruesit e grupit përgjegjës mund të ndryshojnë " +"aplikacionet, apo rregullimet e sistemit." #: plinth/modules/users/__init__.py:57 msgid "Users and Groups" @@ -7146,16 +7193,16 @@ msgstr "Përdorues dhe Grupe" #: plinth/modules/users/__init__.py:77 msgid "Access to all services and system settings" -msgstr "" +msgstr "Hyrje te krejt shërbimet dhe rregullime të sistemit" #: plinth/modules/users/__init__.py:113 #, python-brace-format msgid "Check LDAP entry \"{search_item}\"" -msgstr "" +msgstr "Kontrolloni zërin LDAP \"{search_item}\"" #: plinth/modules/users/forms.py:36 msgid "Username is taken or is reserved." -msgstr "" +msgstr "Emri i përdoruesit është i zënë, ose i rezervuar." #: plinth/modules/users/forms.py:63 msgid "Enter a valid username." @@ -7165,6 +7212,8 @@ msgstr "Jepni një emër përdoruesi të vlefshëm." msgid "" "Required. 150 characters or fewer. English letters, digits and @/./-/_ only." msgstr "" +"E domosdoshme. 150 ose më pak shenja. Vetëm shkronja anglishteje, shifra, " +"dhe @/./-/_." #: plinth/modules/users/forms.py:78 msgid "Authorization Password" @@ -7175,6 +7224,8 @@ msgstr "Fjalëkalim Autorizimi" msgid "" "Enter the password for user \"{user}\" to authorize account modifications." msgstr "" +"Jepni fjalëkalimin për përdoruesin “{user}”, që të autorizoni ndryshime " +"llogarie." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -7188,20 +7239,26 @@ msgid "" "able to log in to all services. They can also log in to the system through " "SSH and have administrative privileges (sudo)." msgstr "" +"Përzgjidhni cilat shërbime të jenë të passhme për përdoruesin e ri. " +"Përdoruesi do të jetë në gjendje të bëjë hyrjen te shërbime që mbulojnë " +"hyrje njëshe përmes LDAP-i, nëse gjenden në grupin e duhur." +"

Përdoruesit në grupin e përgjegjësve do të jenë në gjendje të hyjnë " +"në krejt shërbimet. Munden edhe të hyjnë në sistem përmes SSH-së dhe të kenë " +"privilegje administrative (sudo)." #: plinth/modules/users/forms.py:155 plinth/modules/users/forms.py:399 #, python-brace-format msgid "Creating LDAP user failed: {error}" -msgstr "" +msgstr "S’u arrit të krijohej përdorues LDAP: {error}" #: plinth/modules/users/forms.py:168 #, python-brace-format msgid "Failed to add new user to {group} group: {error}" -msgstr "" +msgstr "S’u arrit të shtohej përdorues i ri te grupi {group}: {error}" #: plinth/modules/users/forms.py:182 msgid "Authorized SSH Keys" -msgstr "" +msgstr "Kyçe SSH të autorizuar" #: plinth/modules/users/forms.py:184 msgid "" @@ -7209,49 +7266,53 @@ msgid "" "system without using a password. You may enter multiple keys, one on each " "line. Blank lines and lines starting with # will be ignored." msgstr "" +"Ujdisja e një kyçi SSH publik do ta lejojë këtë përdorues të hyjë në mënyrë " +"të siguruar në sistem pa përdorur fjalëkalim. Mund të jepni kyçe të shumtë, " +"një për rresht. Rreshta të zbrazët dhe rreshta që fillojnë me # do të " +"shpërfillen." #: plinth/modules/users/forms.py:269 msgid "Renaming LDAP user failed." -msgstr "" +msgstr "Riemërtimi i përdoruesit LDAP dështoi." #: plinth/modules/users/forms.py:282 msgid "Failed to remove user from group." -msgstr "" +msgstr "S’u arrit të hiqej përdorues nga grupi." #: plinth/modules/users/forms.py:294 msgid "Failed to add user to group." -msgstr "" +msgstr "S’u arrit të shtohej përdorues te grup." #: plinth/modules/users/forms.py:307 msgid "Unable to set SSH keys." -msgstr "" +msgstr "S’arrihet të ujdisen kyçe SSH." #: plinth/modules/users/forms.py:325 msgid "Failed to change user status." -msgstr "" +msgstr "S’u arrit të ndryshohej gjendje përdoruesi." #: plinth/modules/users/forms.py:370 msgid "Changing LDAP user password failed." -msgstr "" +msgstr "Ndryshimi i fjalëkalimit për përdorues LDAP dështoi." #: plinth/modules/users/forms.py:410 #, python-brace-format msgid "Failed to add new user to admin group: {error}" -msgstr "" +msgstr "S’u arrit të shtohej përdorues i ri te grupi i përgjegjësve: {error}" #: plinth/modules/users/forms.py:429 #, python-brace-format msgid "Failed to restrict console access: {error}" -msgstr "" +msgstr "S’u arrit të kufizohej hyrja në konsol: {error}" #: plinth/modules/users/forms.py:442 msgid "User account created, you are now logged in" -msgstr "" +msgstr "Llogaria e përdoruesit u krijua, tani jeni i futur në llogari" #: plinth/modules/users/templates/users_change_password.html:11 #, python-format msgid "Change Password for %(username)s" -msgstr "" +msgstr "Ndryshoni Fjalëkalimin për %(username)s" #: plinth/modules/users/templates/users_change_password.html:21 msgid "Save Password" @@ -7273,7 +7334,7 @@ msgstr "Fshi Përdorues" #: plinth/modules/users/templates/users_delete.html:14 #, python-format msgid "Delete user %(username)s permanently?" -msgstr "" +msgstr "Të fshihet përgjithnjë përdoruesi %(username)s?" #: plinth/modules/users/templates/users_delete.html:23 #, python-format @@ -7290,6 +7351,10 @@ msgid "" "can be changed later. This user will be granted administrative privileges. " "Other users can be added later." msgstr "" +"Zgjidhni një emër përdoruesi dhe një fjalëkalim për të hyrë në këtë ndërfaqe " +"web. Fjalëkalimi mund të ndryshohet më vonë. Këtij përdoruesi do t’i " +"akordohen privilegje administrative. Përdorues të tjerë mund të shtohen më " +"vonë." #: plinth/modules/users/templates/users_firstboot.html:28 msgid "Create Account" @@ -7301,7 +7366,7 @@ msgstr "Ka tashmë një llogari përgjegjësi." #: plinth/modules/users/templates/users_firstboot.html:38 msgid "The following administrator accounts exist in the system." -msgstr "" +msgstr "Në sistem ekzistojnë llogaritë vijuese përgjegjësish." #: plinth/modules/users/templates/users_firstboot.html:50 #, python-format, python-brace-format @@ -7312,6 +7377,11 @@ msgid "" "{username}'. If an account is already usable with %(box_name)s, skip this " "step." msgstr "" +"Fshijini këto llogari që nga rreshti i urdhrave dhe rifreskoni faqen, që të " +"krijohet një llogari e cila të jetë e përdorushme me %(box_name)s. Te " +"rreshti i urdhrave jepni urdhrin 'echo \"{password}\" | /usr/share/plinth/" +"actions/users remove-user {username}'. Nëse ka tashmë një llogari të " +"përdorshme me %(box_name)s, anashkalojeni këtë hap." #: plinth/modules/users/templates/users_list.html:11 #: plinth/modules/users/views.py:61 @@ -7321,17 +7391,17 @@ msgstr "Përdorues" #: plinth/modules/users/templates/users_list.html:28 #, python-format msgid "Edit user %(username)s" -msgstr "" +msgstr "Përpunoni përdoruesin %(username)s" #: plinth/modules/users/templates/users_list.html:41 #, python-format msgid "Delete user %(username)s" -msgstr "" +msgstr "Fshije përdoruesin %(username)s" #: plinth/modules/users/templates/users_update.html:11 #, python-format msgid "Edit User %(username)s" -msgstr "" +msgstr "Përpunoni Përdoruesin %(username)s" #: plinth/modules/users/templates/users_update.html:19 #, python-format @@ -7339,6 +7409,8 @@ msgid "" "Use the change password form to " "change the password." msgstr "" +"Që të ndryshoni fjalëkalimin, përdorni formularin e ndryshimit të fjalëkalimeve." #: plinth/modules/users/templates/users_update.html:31 #: plinth/templates/language-selection.html:17 @@ -7348,12 +7420,12 @@ msgstr "Ruaji Ndryshimet" #: plinth/modules/users/views.py:42 #, python-format msgid "User %(username)s created." -msgstr "" +msgstr "Përdoruesi %(username)s u krijua." #: plinth/modules/users/views.py:76 #, python-format msgid "User %(username)s updated." -msgstr "" +msgstr "Përdoruesi %(username)s u përditësua." #: plinth/modules/users/views.py:77 msgid "Edit User" @@ -7362,11 +7434,11 @@ msgstr "Përpunoni Përdorues" #: plinth/modules/users/views.py:144 #, python-brace-format msgid "User {user} deleted." -msgstr "" +msgstr "Përdoruesi {user} u fshi." #: plinth/modules/users/views.py:151 msgid "Deleting LDAP user failed." -msgstr "" +msgstr "Fshirja e përdoruesi LDAP dështoi." #: plinth/modules/users/views.py:160 msgid "Change Password" @@ -7378,7 +7450,7 @@ msgstr "Fjalëkalimi u ndryshua me sukses." #: plinth/modules/wireguard/__init__.py:20 msgid "WireGuard is a fast, modern, secure VPN tunnel." -msgstr "" +msgstr "WireGuard-i është një tunel VPN i shpejtë, modern, i sigurt." #: plinth/modules/wireguard/__init__.py:22 #, python-brace-format @@ -7386,6 +7458,9 @@ msgid "" "It can be used to connect to a VPN provider which supports WireGuard, and to " "route all outgoing traffic from {box_name} through the VPN." msgstr "" +"Mund të përdoret për t’u lidhur te një furnizues shërbimi VPN që mbulon " +"WireGuard dhe për të kaluar përmes VPN-je krejt trafikun që del nga " +"{box_name}." #: plinth/modules/wireguard/__init__.py:26 #, python-brace-format @@ -7394,6 +7469,10 @@ msgid "" "travelling. While connected to a public Wi-Fi network, all traffic can be " "securely relayed through {box_name}." msgstr "" +"Një shembull tjetër përdorimi është të lidhet një pajisje celulare te " +"{box_name}, ndërkohë që udhëtohet. Teksa gjendet e lidhur te një rrjet Wi-Fi " +"publik, krejt trafiku mund të kalohet në mënyrë të siguruar përmes " +"{box_name}." #: plinth/modules/wireguard/forms.py:32 msgid "Invalid key." @@ -7411,16 +7490,20 @@ msgid "" "Public key of the peer. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"Kyç publik i ortakut. Shembull: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." #: plinth/modules/wireguard/forms.py:70 msgid "Endpoint of the server" -msgstr "" +msgstr "Pikëmbarim i shërbyesit" #: plinth/modules/wireguard/forms.py:71 msgid "" "Domain name and port in the form \"ip:port\". Example: demo.wireguard." "com:12912 ." msgstr "" +"Emër përkatësie dhe portë, në trajtën “ip:portë”. Shembull: demo.wireguard." +"com:12912 ." #: plinth/modules/wireguard/forms.py:76 msgid "Public key of the server" @@ -7431,10 +7514,12 @@ msgid "" "Provided by the server operator, a long string of characters. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"Dhënë nga operatori i shërbyesit, një listë e gjatë shenjash. Shembull: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." #: plinth/modules/wireguard/forms.py:82 msgid "Client IP address provided by server" -msgstr "" +msgstr "Adresë IP klienti e furnizuar nga shërbyesi\\" #: plinth/modules/wireguard/forms.py:83 msgid "" @@ -7442,6 +7527,8 @@ msgid "" "endpoint. This value is usually provided by the server operator. Example: " "192.168.0.10." msgstr "" +"Adresë IP caktuar kësaj makine te VPN-ja, pas lidhjes me pikëmbarimin. Kjo " +"vlerë zakonisht jepet nga operatori i shërbyesit. Shembull: 192.168.0.10." #: plinth/modules/wireguard/forms.py:89 msgid "Private key of this machine" @@ -7454,10 +7541,14 @@ msgid "" "some server operators insist on providing this. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"Opsionale. Në u lëntë i zbrazët, prodhohen kyça të rinj publikë/privatë. " +"Mandej kyçi publik mund t’i jepet shërbyesit. Kjo është rruga e rekomanduar. " +"Megjithatë, disa operatorë shërbyesish këmbëngulin në dhënien e tij. " +"ShembullConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." #: plinth/modules/wireguard/forms.py:98 msgid "Pre-shared key" -msgstr "" +msgstr "Kyç i përbashkët" #: plinth/modules/wireguard/forms.py:99 msgid "" @@ -7465,14 +7556,19 @@ msgid "" "layer of security. Fill in only if provided. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." msgstr "" +"Opsionale. Një kyç i fshehtë i përbashkët dhënë nga shërbyesi për të shtuar " +"një shtresë shtesë sigurie. Plotësojeni vetëm nëse është dhënë. Shembull: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." #: plinth/modules/wireguard/forms.py:105 msgid "Use this connection to send all outgoing traffic" -msgstr "" +msgstr "Përdoreni këtë lidhje për të dërguar krejt trafikun që del" #: plinth/modules/wireguard/forms.py:107 msgid "Typically checked for a VPN service through which all traffic is sent." msgstr "" +"Zakonisht e zgjedhur për një shërbim VPN përmes të cilit dërgohet krejt " +"trafiku." #: plinth/modules/wireguard/templates/wireguard.html:10 msgid "As a Server" @@ -7480,7 +7576,7 @@ msgstr "Si Shërbyes" #: plinth/modules/wireguard/templates/wireguard.html:12 msgid "Peers allowed to connect to this server:" -msgstr "" +msgstr "Ortakë të lejuar për t’u lidhur me këtë shërbyes:" #: plinth/modules/wireguard/templates/wireguard.html:18 msgid "Allowed IPs" @@ -7489,48 +7585,48 @@ msgstr "IP të Lejuara" #: plinth/modules/wireguard/templates/wireguard.html:19 #: plinth/modules/wireguard/templates/wireguard.html:78 msgid "Last Connected Time" -msgstr "" +msgstr "Kohë e Lidhjes së Fundit" #: plinth/modules/wireguard/templates/wireguard.html:38 #, python-format msgid "No peers configured to connect to this %(box_name)s yet." -msgstr "" +msgstr "Ende s’ka ortakë të formësuar për t’u lidhur te ky %(box_name)s." #: plinth/modules/wireguard/templates/wireguard.html:48 #, python-format msgid "Public key for this %(box_name)s:" -msgstr "" +msgstr "Kyç publik për këtë %(box_name)s:" #: plinth/modules/wireguard/templates/wireguard.html:54 msgid "Not configured yet." -msgstr "" +msgstr "Ende e paformësuar." #: plinth/modules/wireguard/templates/wireguard.html:59 msgid "Add a new peer" -msgstr "" +msgstr "Shtoni ortak të ri" #: plinth/modules/wireguard/templates/wireguard.html:63 #: plinth/modules/wireguard/views.py:48 msgid "Add Allowed Client" -msgstr "" +msgstr "Shtoni Klient të Lejuar" #: plinth/modules/wireguard/templates/wireguard.html:67 msgid "As a Client" -msgstr "" +msgstr "Si Klient" #: plinth/modules/wireguard/templates/wireguard.html:69 #, python-format msgid "Servers that %(box_name)s will connect to:" -msgstr "" +msgstr "Shërbyes me të cilët do të lidhet %(box_name)s:" #: plinth/modules/wireguard/templates/wireguard.html:76 #: plinth/modules/wireguard/templates/wireguard_delete_server.html:20 msgid "Endpoint" -msgstr "" +msgstr "Pikëmbarim" #: plinth/modules/wireguard/templates/wireguard.html:100 msgid "No connections to remote servers are configured yet." -msgstr "" +msgstr "S’janë formësuar ende lidhje te shërbyes të largët." #: plinth/modules/wireguard/templates/wireguard.html:110 msgid "Add a new server" @@ -7539,7 +7635,7 @@ msgstr "Shtoni një shërbyes të ri" #: plinth/modules/wireguard/templates/wireguard.html:114 #: plinth/modules/wireguard/views.py:157 msgid "Add Connection to Server" -msgstr "" +msgstr "Shtoni Lidhje me Shërbyesin" #: plinth/modules/wireguard/templates/wireguard_add_client.html:19 msgid "Add Client" @@ -7547,11 +7643,11 @@ msgstr "Shtoni Klient" #: plinth/modules/wireguard/templates/wireguard_delete_client.html:14 msgid "Are you sure that you want to delete this client?" -msgstr "" +msgstr "Jeni i sigurt se doni të fshihet ky klient?" #: plinth/modules/wireguard/templates/wireguard_delete_server.html:14 msgid "Are you sure that you want to delete this server?" -msgstr "" +msgstr "Jeni i sigurt se doni të fshihet ky shërbyes?" #: plinth/modules/wireguard/templates/wireguard_edit_client.html:19 msgid "Update Client" @@ -7567,10 +7663,12 @@ msgid "" "%(box_name)s will allow this client to connect to it. Ensure that the client " "is configured with the following information." msgstr "" +"%(box_name)s do ta lejojë këtë klient të lidhet me të. Garantoni që klienti " +"të jetë formësuar me hollësitë vijuese." #: plinth/modules/wireguard/templates/wireguard_show_client.html:21 msgid "Client public key:" -msgstr "" +msgstr "Kyç publik klienti:" #: plinth/modules/wireguard/templates/wireguard_show_client.html:25 msgid "IP address to use for client:" @@ -7579,11 +7677,11 @@ msgstr "Adresë IP për t’u përdorur për klientin:" #: plinth/modules/wireguard/templates/wireguard_show_client.html:29 #: plinth/modules/wireguard/templates/wireguard_show_server.html:32 msgid "Pre-shared key:" -msgstr "" +msgstr "Kyç i përbashkët:" #: plinth/modules/wireguard/templates/wireguard_show_client.html:33 msgid "Server endpoints:" -msgstr "" +msgstr "Pikëmbarime shërbyesi:" #: plinth/modules/wireguard/templates/wireguard_show_client.html:41 #: plinth/modules/wireguard/templates/wireguard_show_server.html:28 @@ -7612,10 +7710,13 @@ msgid "" "information. Ensure that the server is configured to allow %(box_name)s's " "public key and IP address." msgstr "" +"%(box_name)s do të provojë të kapë një shërbyes WireGuard me hollësitë " +"vijuese. Garantoni që shërbyesi të jetë i formësuar të lejojë kyçin publik " +"dhe adresën IP të %(box_name)s." #: plinth/modules/wireguard/templates/wireguard_show_server.html:24 msgid "Server endpoint:" -msgstr "" +msgstr "Pikëmbarim shërbyesi:" #: plinth/modules/wireguard/templates/wireguard_show_server.html:36 msgid "Public key of this machine:" @@ -7689,6 +7790,11 @@ msgid "" "Administration interface and produced web pages are suitable for mobile " "devices." msgstr "" +"WordPress-i është një rrugë popullore për të krijuar dhe administruar sajte " +"dhe blogje. Lënda mund të administrohet duke përdorur një ndërfaqe pamore. " +"Ana grafike dhe funksionet e faqeve web mund të përshtaten. Dukja mund të " +"zgjidhet përmes përdorimit të temave. Ndërfaqja e administrimit dhe faqet " +"web të prodhuara janë të përshtatshme për pajisje celulare." #: plinth/modules/wordpress/__init__.py:29 #, python-brace-format @@ -7698,6 +7804,10 @@ msgid "" "the correct domain name. Enable permalinks in administrator interface for " "better URLs to your pages and posts." msgstr "" +"Lypset të xhironi ujdisjen e WordPress-it duke vizituar aplikacionin, para " +"se ta bëni sajtin publik më poshtë. Ujdisja duhet xhiruar kur përdoret " +"{box_name} me emrin e saktë të përkatësisë. Aktivizoni permalidhje te " +"ndërfaqja e përgjegjësit, për URL më të mira për te faqet dhe postimet tuaja." #: plinth/modules/wordpress/__init__.py:34 msgid "" @@ -7705,6 +7815,10 @@ msgid "" "during setup. Bookmark the admin page " "to reach administration interface in the future." msgstr "" +"WordPress-i ka llogaritë e veta për përdoruesit. Së pari, gjatë ujdisjes, " +"krijohet llogaria e përgjegjësit. Faaqeruajeni faqen e përgjegjësit, që të mund të përdorni ndërfaqen e përgjegjësit " +"në të ardhmen." #: plinth/modules/wordpress/__init__.py:38 msgid "" @@ -7712,31 +7826,32 @@ msgid "" "from administrator interface. Additional plugins or themes may be installed " "and upgraded at your own risk." msgstr "" +"Pas një përmirësimi të rëndësishëm versioni, lypset të xhironi dorazi " +"përmirësimin e bazës së të dhënave, që nga ndërfaqja e përdoruesit. Shtojca " +"ose tema shtesë mund të instalohet dhe përmirësohen duke e marrë ju përsipër " +"rrezikun." #: plinth/modules/wordpress/__init__.py:58 #: plinth/modules/wordpress/manifest.py:6 -#, fuzzy -#| msgid "Address" msgid "WordPress" -msgstr "Adresë" +msgstr "WordPress" #: plinth/modules/wordpress/__init__.py:59 -#, fuzzy -#| msgid "Wiki and Blog" msgid "Website and Blog" -msgstr "Wiki dhe Blog" +msgstr "Sajt dhe Blog" #: plinth/modules/wordpress/forms.py:14 -#, fuzzy -#| msgid "public access" msgid "Public access" -msgstr "hyrje publike" +msgstr "Hyrje publike" #: plinth/modules/wordpress/forms.py:15 msgid "" "Allow all visitors. Disabling allows only administrators to view the " "WordPress site or blog. Enable only after performing initial WordPress setup." msgstr "" +"Lejoji krejt vizitorët. Çaktivizimi lejon vetëm përgjegjësit të shohin " +"sajtin ose blogun WordPress. Aktivizojeni vetëm pasi të jetë kryer ujdisja " +"fillestare e WordPress-it." #: plinth/modules/zoph/__init__.py:26 #, python-brace-format @@ -7750,6 +7865,15 @@ msgid "" "location using search, map and calendar views. Individual photos can be " "shared with others by sending a direct link." msgstr "" +"Zoph administron koleksionin tuaj të fotove. Fotot depozitohen te {box_name} " +"juaj, nën kontrollin tuaj. Në vend të përqendrohet te galeri për shfaqje " +"publike, Zoph përqendrohet në administrimin e tyre për përdorimin tuaj, duke " +"i sistemuar sipas kush i bëri, kur u bënë dhe cilët gjenden në to. Fotot " +"mund të lidhen në albume dhe kategori të shumta hierarkike. Është e lehtë të " +"gjenden krejt fotot që përmbajnë një persona, ose foto të bëra në një datë " +"të dhënë, ose foto të bëra në një vend të caktuar, duke përdorur kërkimin, " +"pamjet hartë dhe kalendar. Foto individuale mund të ndahen me të tjerë duke " +"dërguar një lidhje të drejtpërdrejtë." #: plinth/modules/zoph/__init__.py:37 #, python-brace-format @@ -7758,6 +7882,9 @@ msgid "" "Zoph. For additional users, accounts must be created both in {box_name} and " "in Zoph with the same user name." msgstr "" +"Përdoruesi {box_name} që ujdisi Zoph do të bëhet gjithashtu përgjegjësi në " +"Zoph. Për përdorues të tjerë, llogaritë mund të krijohen si në {box_name}, " +"ashtu edhe në Zoph, me të njëjtin emër përdoruesi." #: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6 msgid "Zoph" @@ -7776,6 +7903,8 @@ msgid "" "When enabled, requests will be made to OpenStreetMap servers from user's " "browser. This impacts privacy." msgstr "" +"Kur aktivizohet, kërkesat do të bëhen te shërbyesit e OpenStreetMap-it që " +"nga shfletuesi i përdoruesit. Kjo prek privatësinë." #: plinth/modules/zoph/templates/zoph-pre-setup.html:15 #: plinth/modules/zoph/templates/zoph-pre-setup.html:28 @@ -7788,6 +7917,8 @@ msgid "" "User account %(username)s will become the administrator " "account for Zoph." msgstr "" +"Llogaria e përdoruesit %(username)s do të bëhet llogaria e " +"përgjegjësit për Zoph." #: plinth/network.py:29 msgid "PPPoE" @@ -7801,6 +7932,7 @@ msgstr "Elementar" #, python-brace-format msgid "Package {package_name} is the latest version ({latest_version})" msgstr "" +"Paketa {package_name} gjendet nën versionin më të ri ({latest_version})" #: plinth/package.py:245 msgid "Error during installation" @@ -7830,7 +7962,7 @@ msgstr "403 E ndaluar" #: plinth/templates/403.html:14 #, python-format msgid "You don't have permission to access %(request_path)s on this server." -msgstr "" +msgstr "S’keni leje të përdorni %(request_path)s në këtë shërbyes." #: plinth/templates/404.html:10 msgid "404" @@ -7847,6 +7979,9 @@ msgid "" "FreedomBox Service (Plinth) project issue tracker." msgstr "" +"Nëse besoni se kjo faqe që mungon duhet të ekzistojë, ju lutemi, njoftoni " +"një të metë te ndjekësi i të metave për projektin FreedomBox Service (Plinth) ." #: plinth/templates/500.html:10 msgid "500" @@ -7860,6 +7995,11 @@ msgid "" "freedombox/issues\">bug tracker so we can fix it. Also, please attach " "the status log to the bug report." msgstr "" +"Ky është një gabim i brendshëm dhe jo diçka që e shkaktuat apo mund ta " +"ndreqni ju. Ju lutemi, njoftojeni gabimin te ndjekësi i të metave, që të mund " +"ta ndreqim. Po ashtu, ju lutemi, te njoftimi i të metës bashkëngjitni regjistër gjendjesh." #: plinth/templates/app-header.html:22 msgid "Installation" @@ -7873,7 +8013,7 @@ msgstr "Shërbimi %(service_name)s s’po xhiron." #: plinth/templates/base.html:30 #, python-format msgid "Core functionality and web interface for %(box_name)s" -msgstr "" +msgstr "Funksione bazë dhe ndërfaqe web për %(box_name)s" #: plinth/templates/base.html:107 msgid " Home" @@ -7986,6 +8126,8 @@ msgid "" "Please wait for %(box_name)s to finish installation. You can start using " "your %(box_name)s once it is done." msgstr "" +"Ju lutemi, pritni që të përfundojë instalimi për %(box_name)s. Sapo të ketë " +"mbaruar, mund të filloni përdorimin e %(box_name)s tuaj." #: plinth/templates/index.html:22 #, python-format @@ -7993,6 +8135,8 @@ msgid "" "Enable some applications to add shortcuts to " "this page." msgstr "" +"Që të shtohen shkurtore te kjo faqe, aktivizoni ca aplikacione." #: plinth/templates/index.html:108 #, python-format @@ -8001,6 +8145,10 @@ msgid "" "server to deploy social applications on small machines. It provides online " "communication tools respecting your privacy and data ownership." msgstr "" +"%(box_name)s, një përzierje puro Debian, është një shërbyes i " +"vetëstrehueshëm 100%% software i lirë, për vënie në punë aplikacionesh " +"shoqërorë në makina të vogla. Furnizon mjete komunikimi internetor që " +"respektojnë privatësinë tuaj dhe pronësinë e të dhënave." #: plinth/templates/index.html:117 #, python-format @@ -8009,6 +8157,9 @@ msgid "" "free software, distributed under the GNU Affero General Public License, " "Version 3 or later." msgstr "" +"Ky portal është pjesë e ndërfaqes web për %(box_name)s. %(box_name)s është " +"<em>software</em> i lirë, i shpërndarë sipas licencës GNU Affero " +"General Public License, Version 3 ose i mëvonshëm." #: plinth/templates/index.html:137 msgid "Homepage" @@ -8040,10 +8191,12 @@ msgid "" "%(service_name)s is available only on internal networks or when the " "client is connected to %(box_name)s through VPN." msgstr "" +"%(service_name)s është i përdorshëm vetëm në rrjete të brendshëm, " +"ose kur klienti është i lidhur me %(box_name)s përmes VPN-je." #: plinth/templates/internal-zone.html:17 msgid "Currently there are no network interfaces configured as internal." -msgstr "" +msgstr "Aktualisht nuk ka ndërfaqe rrjeti të formësuara për të brendshëm." #: plinth/templates/internal-zone.html:19 #, python-format @@ -8051,6 +8204,8 @@ msgid "" "Currently the following network interfaces are configured as internal: " "%(interface_list)s" msgstr "" +"Aktualisht janë të formësuara për rrjete të brendshëm ndërfaqet vijuese të " +"rrjetit: %(interface_list)s" #: plinth/templates/messages.html:11 msgid "Close" @@ -8070,6 +8225,8 @@ msgid "" "Your FreedomBox is not behind a router. No " "action is necessary." msgstr "" +"FreedomBox -i juaj s’gjendet pas një " +"rrugëzuesi. S’ka nevojë për veprim." #: plinth/templates/port-forwarding-info.html:19 #, python-format @@ -8078,6 +8235,9 @@ msgid "" "are using the DMZ feature to forward all ports. No further router " "configuration is necessary." msgstr "" +"FreedomBox-i juaj gjendet pas një rrugëzuesi dhe ju po përdorni veçorinë DMZ për përcjellje te krejt portat. S’ka " +"nevojë për formësim të mëtejshëm të rrugëzuesit." #: plinth/templates/port-forwarding-info.html:26 #, python-format @@ -8086,6 +8246,10 @@ msgid "" "are not using the DMZ feature. You will need to set up port forwarding on " "your router. You should forward the following ports for %(service_name)s:" msgstr "" +"FreedomBox-i juaj gjendet pas një rrugëzuesi dhe nuk po përdorni veçorinë DMZ. Do t’ju duhet të ujdisni te rrugëzuesi " +"juaj përcjellje te porta. Duhet të lejoni përcjellje te portat vijuese për " +"%(service_name)s:" #: plinth/templates/port-forwarding-info.html:37 msgid "Protocol" @@ -8093,12 +8257,12 @@ msgstr "Protokoll" #: plinth/templates/port-forwarding-info.html:38 msgid "From Router/WAN Ports" -msgstr "" +msgstr "Nga Porta Rrugëzuesi/WAN-i" #: plinth/templates/port-forwarding-info.html:39 #, python-format msgid "To %(box_name)s Ports" -msgstr "" +msgstr "Te Porta të %(box_name)s" #: plinth/templates/setup.html:24 msgid "Install this application?" @@ -8106,13 +8270,15 @@ msgstr "Të instalohet aplikacionin?" #: plinth/templates/setup.html:28 msgid "This application needs an update. Update now?" -msgstr "" +msgstr "Ky aplikacion lyp një përditësim. Të përditësohet tani?" #: plinth/templates/setup.html:39 msgid "" "Another installation or upgrade is already running. Please wait for a few " "moments before trying again." msgstr "" +"Po xhirohet tashmë një tjetër instalim ose përmirësim. Ju lutemi, pritni pak " +"çaste, përpara se të riprovoni." #: plinth/templates/setup.html:46 msgid "This application is currently not available in your distribution." @@ -8128,6 +8294,9 @@ msgid "" "conflict with the installation of this app. The following packages will be " "removed if you proceed:" msgstr "" +"Paketa Me Përplasje: Disa paketa të instaluara në sistem " +"kanë përplasje me instalimin e këtij aplikacioni. Paketa vijuese do të " +"hiqen, nëse vazhdoni më tej:" #: plinth/templates/setup.html:71 msgid "Install" @@ -8139,26 +8308,105 @@ msgstr "Përditësoje" #: plinth/templates/setup.html:83 msgid "Performing pre-install operation" -msgstr "" +msgstr "Po kryhet veprim para-instalimi" #: plinth/templates/setup.html:88 msgid "Performing post-install operation" -msgstr "" +msgstr "Po kryhet veprim pas-instalimi" #: plinth/templates/setup.html:94 #, python-format msgid "Installing %(package_names)s: %(status)s" -msgstr "" +msgstr "Po instalohet %(package_names)s: %(status)s" #: plinth/templates/setup.html:104 #, python-format msgid "%(percentage)s%% complete" -msgstr "" +msgstr "%(percentage)s%% e plotësuar" #: plinth/web_framework.py:114 msgid "Gujarati" msgstr "Gujaratase" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Aktivizo DNS Dinamik" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "" +#~ "Ju lutemi, jepni një URL përditësimi ose një adresë shërbyesi GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Ju lutemi, jepni një emër përdoruesi GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Ju lutemi, jepni një emër përkatësie GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Ju lutemi, jepni një fjalëkalim" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Nëse %(box_name)s juaj gjendet pas një rrugëzuesi NAT, mos harroni të " +#~ "shtoni përcjellje portash për porta standarde, përfshi portën TCP 80 " +#~ "(HTTP) dhe portën TCP 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Keni çaktivizuar Javascript-in. Mënyra e formularëve dinamikë është e " +#~ "çaktivizuar dhe disa funksione ndihmës mund të mos funksionojnë (por " +#~ "funksionet kryesore duhet të punojnë)." + +#~ msgid "NAT type" +#~ msgstr "Lloj NAT-i" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "S’është pikasur ende lloj NAT-i. Nëse s’jepni një “URL Kontrolli IP-je”, " +#~ "s’do të pikasim lloj NAT-i." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Lidhje e drejtpërdrejtë në Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Pas NAT-i. Kjo do të thotë që shërbimi DNS Dinamik do të vëzhgojë “URL ku " +#~ "të kërkohet IP publike” për ndryshime (zëri “URL ku të kërkohet IP " +#~ "publike” është i domosdoshëm për këtë, përndryshe ndryshimet e IP-së s’do " +#~ "të pikasen dot). Në rast ndryshimet IP-je WAN, mund të duhen deri në " +#~ "%(timer)s minuta, para se të përditësohet zëri juaj DNS." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Formësoni DNS Dinamik" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Gjendje DNS Dinamik" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Formësimi për maksimumin e lojtarëve u përditësua" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Formësimi për “mënyrë krijuese” u përditësua" + +#~ msgid "PVP configuration updated" +#~ msgstr "Formësimi PVP u përditësua" + +#~ msgid "Damage configuration updated" +#~ msgstr "Formësimi i dëmtuar u përditësua" + #, fuzzy #~| msgid "unavailable" #~ msgid "RoundCube availability" diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po index 10b5212d9..f455c78e4 100644 --- a/plinth/locale/sr/LC_MESSAGES/django.po +++ b/plinth/locale/sr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Serbian ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1591,142 +1601,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1740,12 +1672,51 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP addresses" +msgid "IP Address" +msgstr "IP adrese" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Pristup" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Veza odbijena" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2280,6 +2251,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2627,6 +2603,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2752,10 +2735,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3122,22 +3101,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6318,7 +6281,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index 055abe1a2..73bf2466b 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-24 12:53+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-07 23:55+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: Swedish \n" @@ -477,11 +477,7 @@ msgid "Existing Backups" msgstr "Befintliga säkerhetskopior" #: plinth/modules/backups/templates/backups_add_remote_repository.html:19 -#, fuzzy, python-format -#| msgid "" -#| "The credentials for this repository are stored on your %(box_name)s.
To restore a backup on a new %(box_name)s you need the ssh credentials " -#| "and, if chosen, the encryption passphrase." +#, python-format msgid "" "The credentials for this repository are stored on your %(box_name)s.
" "To restore a backup on a new %(box_name)s you need the SSH credentials and, " @@ -643,19 +639,14 @@ msgid "How to verify?" msgstr "Hur man verifierar?" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:45 -#, fuzzy -#| msgid "" -#| "Run the following command on the SSH host machine. The output should " -#| "match one of the provided options. You can also use dsa, ecdsa, ed25519 " -#| "etc. instead of rsa, by choosing the corresponding file." msgid "" "Run the following command on the SSH host machine. The output should match " "one of the provided options. You can also use DSA, ECDSA, Ed25519 etc. " "instead of RSA, by choosing the corresponding file." msgstr "" "Kör följande kommando på SSH hostdatorn. Utgången ska matcha ett av de " -"följande alternativen. Du kan också använda dsa, ecdsa, ed25519 etc. " -"istället för rsa, genom att välja motsvarande fil." +"följande alternativen. Du kan också använda DSA, ECDSA, Ed25519 etc. " +"istället för RSA, genom att välja motsvarande fil." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:60 msgid "Verify Host" @@ -878,7 +869,7 @@ msgid "No passwords currently configured." msgstr "Inga lösenord har för närvarande konfigurerats." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Lösenord" @@ -1025,9 +1016,10 @@ msgid "Refresh IP address and domains" msgstr "Uppdatera IP-adress och domäner" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1221,7 +1213,7 @@ msgstr "" msgid "General Configuration" msgstr "Allmän Konfiguration" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1229,13 +1221,13 @@ msgid "Configure" msgstr "Konfigurera" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Domännamn" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Ogiltigt domännamn" @@ -1583,6 +1575,7 @@ msgid "Test" msgstr "Test" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Resultat" @@ -1590,7 +1583,7 @@ msgstr "Resultat" msgid "Diagnostic Test" msgstr "Diagnostiktest" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1601,7 +1594,7 @@ msgstr "" "kan det vara svårt för andra att hitta dig på nätet. Detta förhindrar andra " "att nå de tjänster som tillhandahålls av denna {box_name}." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1618,15 +1611,34 @@ msgstr "" "servern ditt DNS-namn till din nya IP, och om någon från Internet ber om " "ditt DNS-namn, kommer hen att få din aktuella IP som svar." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Om du letar efter ett gratis dynamiskt DNS-konto kan du hitta en gratis " +"GnuDIP-tjänst på ddns.freedombox.org eller så kan " +"du hitta gratis uppdaterings-URL-baserade tjänster på freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient för Dynamisk DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Dynamiskt Domännamn" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1636,7 +1648,7 @@ msgstr "" "användas i webbadressen. Se mallar från de olika tjänsteleverantörerna för " "information om uppdateringsadress." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1646,7 +1658,7 @@ msgstr "" "stöder protokollet GnuDIP, eller din leverantör saknas i listan, använd din " "leverantörs uppdateringsadress." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1654,18 +1666,18 @@ msgstr "" "Skriv inte en full webbadress här (t.ex.: \"https://exempel.com/\"), utan " "endast värdnamnet för GnuDIP servern (t.ex.: \"exempel.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "Det public domännamnet du vill använda för att nå ditt {box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Använd denna funktion om din tjänsteleverantör använder självsignerade " "certifikat." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1673,11 +1685,11 @@ msgstr "" "Om detta alternativ är markerat, kommer ditt användarnamn och lösenord " "användas för grundläggande HTTP autentisering." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Lämna fältet tomt om du vill behålla ditt nuvarande lösenord." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1690,159 +1702,68 @@ msgstr "" "verkliga IP. Webbadressen ska helt enkelt returnera det IP som klienten " "kommer från. (example: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Användarnamnet som användes när konton skapades." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "annan uppdaterings-URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Aktivera Dynamisk DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Servicetype" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP-serveradress" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Du har angett ett ogiltigt servernamn" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Adress för uppdateringar" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Acceptera alla SSL-certifikat" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Använd grundläggande HTTP-autentisering" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Användarnamn" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Visa lösenord" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL för att hitta publik IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Använda IPv6 i stället för IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Ange en uppdateringsadress eller GnuDIP-serveradress" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "hemligheter krävs" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Ange ett användarnamn för GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Ange ett GnuDIP-domän" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Ange ett lösenord" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Om du letar efter ett gratis dynamiskt DNS-konto kan du hitta en gratis " -"GnuDIP-tjänst på ddns.freedombox.org eller så kan " -"du hitta gratis uppdaterings-URL-baserade tjänster på freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Om din %(box_name)s är ansluten bakom en NAT-router, så glöm inte att lägga " -"till port forwarding för standardportar, såsom TCP port 80 (HTTP) och TCP " -"port 443(HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Du har inaktiverat Javascript. Funktionen dynamiskt formulär är inaktiverat " -"och vissa hjälpfunktioner fungerar inte (men alla huvudfunktioner bör " -"fungera)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Uppdatera inställningar" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT-typ" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT-typen har ännu inte upptäckts. Om du inte anger en \"IP-kontrolladress\" " -"kommer vi inte att kunna upptäcka NAT-typen." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Direktanslutning till Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"Bakom NAT. Detta betyder att dynamisk DNS-tjänsten kommer att fråga \"URL en " -"upptäckning av publik IP\" om ändringar skett (\"URL för publik IP " -"upptäckning\" behöver därför anges, annars kan inte ändringar av IP adressen " -"upptäckas). Det kan ta upp till %(timer)s minuter tills din DNS-inställning " -"uppdateras." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Senaste uppdatering" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Om" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1856,13 +1777,60 @@ msgstr "Om" msgid "Status" msgstr "Status" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Konfigurera Dynamisk DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Domän" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Dynamisk DNS (Domän Namns Server) status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Senaste uppdatering" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-adress" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Tillgång" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "misslyckades" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Inga bibliotek tillgängliga." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Anslutningens namn" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Ta bort anslutning" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "Senaste uppdatering" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2448,6 +2416,11 @@ msgstr "Skicka feedback" msgid "Contribute" msgstr "Bidrar" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Om" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2792,11 +2765,6 @@ msgid "Anonymous Torrents" msgstr "Anonyma torrenter" #: plinth/modules/i2p/views.py:16 -#, fuzzy -#| msgid "" -#| "I2P lets you browse the Internet and hidden services (eepsites) " -#| "anonymously. For this, your browser, preferably a Tor Browser, needs to " -#| "be configured for a proxy." msgid "" "I2P lets you browse the Internet and hidden services (eepsites) anonymously. " "For this, your browser, preferably the Tor Browser, needs to be configured " @@ -2891,6 +2859,13 @@ msgstr "Gå till webbsidan %(site)s" msgid "Delete site %(site)s" msgstr "Ta bort webbsida %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Uppdatera inställningar" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3034,10 +3009,6 @@ msgstr "Certifikaterna" msgid "Cannot test: No domains are configured." msgstr "Kan inte testa: Inga domäner är konfigurerade." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Domän" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Certifikatets status" @@ -3196,7 +3167,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3470,22 +3441,6 @@ msgstr "Adress" msgid "Port" msgstr "Port" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Maximal spelarkonfiguration uppdaterad" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Kreativ-modus konfiguration uppdaterad" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "PVP-konfiguration uppdaterad" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Skadekonfiguration uppdaterad" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3565,11 +3520,6 @@ msgstr "" "kryptering och hög ljudkvalitet." #: plinth/modules/mumble/__init__.py:28 -#, fuzzy -#| msgid "" -#| "You can connect to your Mumble server on the regular Mumble port 64738. " -#| "Clients to connect to Mumble from your " -#| "desktop and Android devices are available." msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4531,20 +4481,16 @@ msgstr "" "tjänsterna." #: plinth/modules/networks/templates/router_configuration_content.html:32 -#, fuzzy -#| msgid "" -#| "If you don't have control over your router, choose not to configure it. " -#| "To see options to overcome this limitation, choose 'no public address' " -#| "option in Internet connection type selection." msgid "" "If you don't have control over your router, choose not to configure it. To " "see options to overcome this limitation, choose 'I dont have a public IP " "address' option in Internet connection type selection." msgstr "" -"Om du inte har kontroll över routern väljer du att inte konfigurera den. Om " -"du vill se alternativ för att övervinna denna begränsning väljer du " -"alternativet \"ingen offentlig adress\" i valet av internetanslutningstyp." +"Om du inte har kontroll över routern kan du välja att inte konfigurera den. " +"Om du vill se alternativ för att övervinna denna begränsning väljer du 'Jag " +"har ingen offentlig IP-adress' i Val av typ av internetanslutning." #: plinth/modules/networks/templates/router_configuration_content.html:39 msgid "Choose How You Wish to Configure Your Router" @@ -5471,7 +5417,7 @@ msgstr "E-postklient" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Använd endast den lokala e-postservern" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5479,6 +5425,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"När det är aktiverad tas textrutan för serverinmatning bort från " +"inloggningssidan och användarna kan endast läsa och skicka e-postmeddelanden " +"från denna {box_name}." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5870,8 +5819,6 @@ msgid "Bookmarks" msgstr "Bokmärken" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" msgstr "Shaarli" @@ -6112,14 +6059,12 @@ msgid "Software Installation Snapshots" msgstr "Ögonblicksbilder av programvaru installation" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" "Aktivera eller inaktivera ögonblicksbilder före och efter " -"programvaruinstallationen" +"programvaruinstallationen." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6354,10 +6299,8 @@ msgid "Login" msgstr "Logga in" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Lösenordet har ändrats." +msgstr "Du har loggat ut framgångsrikt." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -6857,10 +6800,8 @@ msgstr "" "BitTorrent inte är anonym." #: plinth/modules/transmission/__init__.py:27 -#, fuzzy -#| msgid "Please do not change the default port of the transmission daemon." msgid "Please do not change the default port of the Transmission daemon." -msgstr "Vänligen ändra inte standardporten för transmissionsdemonen." +msgstr "Vänligen ändra inte standardporten för Transmission demonen." #: plinth/modules/transmission/__init__.py:53 #: plinth/modules/transmission/manifest.py:6 @@ -6933,10 +6874,8 @@ msgstr "" #: plinth/modules/upgrades/__init__.py:129 #: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 #: plinth/modules/upgrades/templates/update-firstboot.html:11 -#, fuzzy -#| msgid "Server URL updated" msgid "Software Update" -msgstr "Serverns URL har uppdaterats" +msgstr "Mjukvaruuppdatering" #: plinth/modules/upgrades/__init__.py:132 msgid "FreedomBox Updated" @@ -7040,8 +6979,7 @@ msgstr "" " " #: plinth/modules/upgrades/templates/upgrades-new-release.html:9 -#, fuzzy, python-format -#| msgid "%(box_name)s Updated" +#, python-format msgid "%(box_name)s updated" msgstr "%(box_name)s uppdaterat" @@ -7155,8 +7093,13 @@ msgid "Frequent feature updates activated." msgstr "Frekventa funktionsuppdateringar aktiverade." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7209,11 +7152,12 @@ msgid "Authorization Password" msgstr "Auktoriseringslösenord" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Ange ditt nuvarande lösenord för att auktorisera kontomodifieringar." +msgstr "" +"Ange lösenordet för användaren \"{user}\" för att godkänna " +"kontomodifieringar." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -7550,11 +7494,9 @@ msgid "Use this connection to send all outgoing traffic" msgstr "Använd den här anslutningen för att skicka all utgående trafik" #: plinth/modules/wireguard/forms.py:107 -#, fuzzy -#| msgid "" -#| "Typically checked for a VPN service though which all traffic is sent." msgid "Typically checked for a VPN service through which all traffic is sent." -msgstr "Vanligtvis kontrolleras för en VPN-tjänst men som all trafik skickas." +msgstr "" +"Vanligtvis kontrolleras för en VPN-tjänst genom vilken all trafik skickas." #: plinth/modules/wireguard/templates/wireguard.html:10 msgid "As a Server" @@ -8316,6 +8258,84 @@ msgstr "%(percentage)s %% färdigt" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Aktivera Dynamisk DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Ange en uppdateringsadress eller GnuDIP-serveradress" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Ange ett användarnamn för GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Ange ett GnuDIP-domän" + +#~ msgid "Please provide a password" +#~ msgstr "Ange ett lösenord" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Om din %(box_name)s är ansluten bakom en NAT-router, så glöm inte att " +#~ "lägga till port forwarding för standardportar, såsom TCP port 80 (HTTP) " +#~ "och TCP port 443(HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Du har inaktiverat Javascript. Funktionen dynamiskt formulär är " +#~ "inaktiverat och vissa hjälpfunktioner fungerar inte (men alla " +#~ "huvudfunktioner bör fungera)." + +#~ msgid "NAT type" +#~ msgstr "NAT-typ" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT-typen har ännu inte upptäckts. Om du inte anger en \"IP-kontrolladress" +#~ "\" kommer vi inte att kunna upptäcka NAT-typen." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Direktanslutning till Internet." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "Bakom NAT. Detta betyder att dynamisk DNS-tjänsten kommer att fråga \"URL " +#~ "en upptäckning av publik IP\" om ändringar skett (\"URL för publik IP " +#~ "upptäckning\" behöver därför anges, annars kan inte ändringar av IP " +#~ "adressen upptäckas). Det kan ta upp till %(timer)s minuter tills din DNS-" +#~ "inställning uppdateras." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Konfigurera Dynamisk DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Dynamisk DNS (Domän Namns Server) status" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Maximal spelarkonfiguration uppdaterad" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Kreativ-modus konfiguration uppdaterad" + +#~ msgid "PVP configuration updated" +#~ msgstr "PVP-konfiguration uppdaterad" + +#~ msgid "Damage configuration updated" +#~ msgstr "Skadekonfiguration uppdaterad" + #~ msgid "RoundCube availability" #~ msgstr "RoundCube tillgänglighet" @@ -9244,11 +9264,6 @@ msgstr "Gujarati" #~ msgid "Create a Wiki or Blog" #~ msgstr "Skapa en wiki eller blogg" -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "Senaste uppdatering" - #, fuzzy #~| msgid "{box_name} Manual" #~ msgid "Download Manual" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index 47c67be46..e38dd32d6 100644 --- a/plinth/locale/ta/LC_MESSAGES/django.po +++ b/plinth/locale/ta/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -793,7 +793,7 @@ msgid "No passwords currently configured." msgstr "" #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "" @@ -933,9 +933,10 @@ msgid "Refresh IP address and domains" msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1103,7 +1104,7 @@ msgstr "" msgid "General Configuration" msgstr "" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1111,13 +1112,13 @@ msgid "Configure" msgstr "" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "" @@ -1427,6 +1428,7 @@ msgid "Test" msgstr "" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "" @@ -1434,7 +1436,7 @@ msgstr "" msgid "Diagnostic Test" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1442,7 +1444,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1453,54 +1455,62 @@ msgid "" "IP address." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1509,142 +1519,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1658,12 +1590,45 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +msgid "IP Address" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +msgid "Success" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +msgid "No status available." +msgstr "" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +msgid "Connection timed out" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2192,6 +2157,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2539,6 +2509,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2664,10 +2641,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3032,22 +3005,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6212,7 +6169,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index efc1ccebc..c611471bd 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-05-17 18:31+0000\n" "Last-Translator: chilumula vamshi krishna \n" "Language-Team: Telugu gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"మీరు ఒక ఉచిత డైనమిక్ DNS ఖాతా కోసం చూస్తున్న ఉంటే, మీరు 1gnudip.datasystems24.net 2 వద్ద ఉచిత " +"GnuDIP సేవ కనుగొనేందుకు ఉండవచ్చు లేదా మీరు 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు " +"కనుగొనవచ్చు." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "గతిక DNS కక్షిదారు" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" msgstr "డొమైను పేరు" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1622,7 +1644,7 @@ msgstr "" "<వాడుకరి>, <పాస్>, <ఎల్.పి>, <డోమైన్> అనే వేరియబల్స్ మీ యూ.ఆర్.ఎల్ తో " "వాడవచ్చును. వివరాల కోసం మీ యూ.ఆర్.ఎల్ నవీనికరణ టెంప్లేట్ ను చూడండి." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1631,7 +1653,7 @@ msgstr "" "దయ చేసి మీ నవీకరణ ప్రోటొకాల్ ను ఎంచుకోండి. మీ ప్రదాత గ్నూడిప్ ప్రోటొకాల్ కు సహకరించకపోయిన లేదా మీ ప్రదాత " "కింద జాబితా లో లేకపోయినా మీ ప్రదాత యొక్క నవీకరణ యూ.ఆర్.ఎల్ ను వాడగలరు." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1639,16 +1661,16 @@ msgstr "" "దయ చేసి యూ.ఆర్.ఎల్ (ఉ.దా \"ఏచ్.టి.టి.పి.ఎస్://ఎగ్స్యాంపల్.కామ్\") ను తెలుపవద్దు కానీ కేవలం అతిధ్య " "పేరును (ఉ.దా \"ఎగ్స్యాంపల్.కామ్\") మాత్రమే తెలుపండి." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "మీ {box_name} ను చేరుకోవడానికి మీరు ఉపయోగించాలని కోరుకుంటున్న మీ పబ్లిక్ డొమైన్ పేరు." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "మీ అంతర్జాల సేవ ప్రదాత ఒకవేళ స్వీయ సంతక సర్టిఫికేట్లు ఉపయోగిస్తుంటే ఈ ఎంపికను ఉపయోగించండి." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1656,11 +1678,11 @@ msgstr "" "ఈ ఎంపికను ఎంపిక చేస్తే, మీ వాడుకరి పేరు మరియు పాస్‌వర్డ్ హెచ్.టి.టి.పి ప్రాథమిక ప్రమాణీకరణ కోసం " "ఉపయోగించబడుతుంది." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "మీరు మీ ప్రస్తుత పాస్‌వర్డ్ ను ఉంచుకోవాలనుకుంటే ఈ ఫీల్డ్ ఖాళీగా వదిలివేయండి." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1678,167 +1700,66 @@ msgstr "" "ఎక్కడ నుండి వస్తుంది అనే ఐపీ మాత్రమే ఈ యూ.ఆర్.ఎల్ తిరిగివ్వాలి (ఉ.దా: ఏచ్.టి.టి.పి.://మైఐపి." "డాటాసిస్టమ్స్24.దే)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "మీరు మీ ఖాతాను సృష్టించినప్పుడు వాడిన వాడుకరి పేరు ." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 +#: plinth/modules/dynamicdns/forms.py:57 #, fuzzy #| msgid "Update URL" -msgid "other update URL" +msgid "Other update URL" msgstr "URL నవీకరణ" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "చురుకైన DNS అమలుచెయ్యి" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "సేవా రకం" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnudIP సేవకం చిరునామా" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "సేవిక పేరు చెలదు" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL నవీకరణ" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "అన్ని ఎస్.ఎస్.ఎల్ సర్టిఫికెట్లు అంగీకరించు" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "HTTP ప్రాథమిక ప్రమాణీకరణ ఉపయోగించు" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "వినియోగి పేరు" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "రహస్యపదం కనబర్చు" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "పబ్లిక్ IP చూసేందుకు URL" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "దయచేసి నవీకరణ యూ.ఆర్.ఎల్ ను లేక ఒక GnuDIP సేవిక ఐ.పీ చిరునామాను అందించండి" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "దయచేసి గ్నూ.డిప్ వాడుకరిపేరుని అందించండి" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "గ్నూ.డిప్ డోమైన్ పేరును దయచేసి అందించండి" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "ఒక రహస్యపదం అందించండి దయచేసి" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"మీరు ఒక ఉచిత డైనమిక్ DNS ఖాతా కోసం చూస్తున్న ఉంటే, మీరు 1gnudip.datasystems24.net 2 వద్ద ఉచిత " -"GnuDIP సేవ కనుగొనేందుకు ఉండవచ్చు లేదా మీరు 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు " -"కనుగొనవచ్చు." -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"మీ %(box_name)s కనుక ఎన్.ఏ.టి రూటర్ కి అనుసంధానం చేయబడి ఉంటే, టిసి.పి పోర్టు ౮౦ (హెచ్.టి.టి." -"పి) మరియి టిసి.పి పోర్టు ౪౪౩ (హెచ్.టి.టి.పి.ఎస్) ప్రామాణిక పోర్ట్‌లకు పోర్ట్ ఫార్వర్డింగ్ను జోడించడం " -"మర్చిపోకండి." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"మీరు జావాస్క్రిప్ట్ ను పని చేయకుండా చేశారు. చలనశిల ఫొరము స్థితి మరియు కొన్ని సహాయక కార్యక్రమాలు పని " -"చేయవు (కానీ ప్రధాన కార్యాచరణ పని చేయాలి)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "అమరికను నవీకరించు" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT రకం" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"ఎన్.ఏ.టి రకము ఇంకా గుర్తింపబడలేదు. మీరు ఐ.పి తనిఖీ యూ.ఆర్.ఎల్ ఇవ్వకపోతే మేము ఎన్.ఏ.టి రకమును " -"గుర్తింపము." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "అంతర్జాలానికి నేరు బంధం." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, fuzzy, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"NAT వెనుక. ఈ డైనమిక్ DNS సేవ మార్పులకు అనుగుణంగా \"పబ్లిక్ IP చూసేందుకు ను" -"\" ( \"చూసేందుకు URL పబ్లిక్ IP\" ఎంట్రీ ఈ అవసరమవుతుంది, లేకపోతే ఐపీ మార్పులు కనుగొనబడింది " -"కాదు) ఎన్నిక చేస్తాము. కేసు పాలిపోయిన ఐపీ మార్పులు, మీ DNS ఎంట్రీ నవీకరించబడింది వరకు% వరకు " -"ఉండవచ్చు %(టైమర్)s 1 నిమిషాల." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "చివరి నవీకరణ" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "గురించి" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1852,13 +1773,60 @@ msgstr "గురించి" msgid "Status" msgstr "స్థితి" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "చురుకైనDNS ఆకృతీకరించు" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "డొమైన్" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "చలనశీల డి.ఎన్.ఎస్ స్థితి" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "చివరి నవీకరణ" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP చిరునామా" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access Point" +msgid "Success" +msgstr "ప్రాప్తి సూచి" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "Setup failed." +msgid "Failed" +msgstr "అమరక విఫలమైంది." + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No status available." +msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "అనుసంధానం పేరు" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "అనుసంధానం తొలగించండి" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "చివరి నవీకరణ" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2472,6 +2440,11 @@ msgstr "అభిప్రాయాన్ని సమర్పించండ msgid "Contribute" msgstr "దోహదం చేయండి" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "గురించి" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2893,6 +2866,13 @@ msgstr "ప్రదేశం కు వెళ్ళండి %(site)s" msgid "Delete site %(site)s" msgstr "ప్రదేశం తొలగించు %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "అమరికను నవీకరించు" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3036,10 +3016,6 @@ msgstr "యోగ్యతాపత్రాలు" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "డొమైన్" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "యోగ్యతాపత్రం స్థితి" @@ -3452,30 +3428,6 @@ msgstr "చిరునామా" msgid "Port" msgstr "పోర్టు" -#: plinth/modules/minetest/views.py:48 -#, fuzzy -#| msgid "Configuration updated" -msgid "Maximum players configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" - -#: plinth/modules/minetest/views.py:55 -#, fuzzy -#| msgid "Configuration updated" -msgid "Creative mode configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" - -#: plinth/modules/minetest/views.py:61 -#, fuzzy -#| msgid "Configuration updated" -msgid "PVP configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" - -#: plinth/modules/minetest/views.py:67 -#, fuzzy -#| msgid "Configuration updated" -msgid "Damage configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -7087,7 +7039,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -8230,6 +8182,90 @@ msgstr "%(percentage)s %% పూర్తి" msgid "Gujarati" msgstr "గుజరాతీ" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "చురుకైన DNS అమలుచెయ్యి" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "దయచేసి నవీకరణ యూ.ఆర్.ఎల్ ను లేక ఒక GnuDIP సేవిక ఐ.పీ చిరునామాను అందించండి" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "దయచేసి గ్నూ.డిప్ వాడుకరిపేరుని అందించండి" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "గ్నూ.డిప్ డోమైన్ పేరును దయచేసి అందించండి" + +#~ msgid "Please provide a password" +#~ msgstr "ఒక రహస్యపదం అందించండి దయచేసి" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "మీ %(box_name)s కనుక ఎన్.ఏ.టి రూటర్ కి అనుసంధానం చేయబడి ఉంటే, టిసి.పి పోర్టు ౮౦ (హెచ్.టి." +#~ "టి.పి) మరియి టిసి.పి పోర్టు ౪౪౩ (హెచ్.టి.టి.పి.ఎస్) ప్రామాణిక పోర్ట్‌లకు పోర్ట్ ఫార్వర్డింగ్ను జోడించడం " +#~ "మర్చిపోకండి." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "మీరు జావాస్క్రిప్ట్ ను పని చేయకుండా చేశారు. చలనశిల ఫొరము స్థితి మరియు కొన్ని సహాయక కార్యక్రమాలు పని " +#~ "చేయవు (కానీ ప్రధాన కార్యాచరణ పని చేయాలి)." + +#~ msgid "NAT type" +#~ msgstr "NAT రకం" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "ఎన్.ఏ.టి రకము ఇంకా గుర్తింపబడలేదు. మీరు ఐ.పి తనిఖీ యూ.ఆర్.ఎల్ ఇవ్వకపోతే మేము ఎన్.ఏ.టి " +#~ "రకమును గుర్తింపము." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "అంతర్జాలానికి నేరు బంధం." + +#, fuzzy, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "NAT వెనుక. ఈ డైనమిక్ DNS సేవ మార్పులకు అనుగుణంగా \"పబ్లిక్ IP చూసేందుకు ను" +#~ "\" ( \"చూసేందుకు URL పబ్లిక్ IP\" ఎంట్రీ ఈ అవసరమవుతుంది, లేకపోతే ఐపీ మార్పులు " +#~ "కనుగొనబడింది కాదు) ఎన్నిక చేస్తాము. కేసు పాలిపోయిన ఐపీ మార్పులు, మీ DNS ఎంట్రీ నవీకరించబడింది వరకు" +#~ "% వరకు ఉండవచ్చు %(టైమర్)s 1 నిమిషాల." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "చురుకైనDNS ఆకృతీకరించు" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "చలనశీల డి.ఎన్.ఎస్ స్థితి" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Maximum players configuration updated" +#~ msgstr "ఆకృతీకరణ నవీకరించబడింది" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Creative mode configuration updated" +#~ msgstr "ఆకృతీకరణ నవీకరించబడింది" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "PVP configuration updated" +#~ msgstr "ఆకృతీకరణ నవీకరించబడింది" + +#, fuzzy +#~| msgid "Configuration updated" +#~ msgid "Damage configuration updated" +#~ msgstr "ఆకృతీకరణ నవీకరించబడింది" + #, fuzzy #~| msgid "Available Domains" #~ msgid "RoundCube availability" @@ -9089,11 +9125,6 @@ msgstr "గుజరాతీ" #~ msgstr "" #~ "పేజెకైట్ ఏర్పాటు పూర్తి అయినది. ఏచ్.టి.టి.పి మరియు ఏచ్.టి.టి.పి.ఎస్ సేవలు క్రియాశీలకంగా చేయబడ్డాయి." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "చివరి నవీకరణ" - #, fuzzy #~| msgid "Create User" #~ msgid "Add Remote Location" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index a04431e49..a062a2773 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-13 18:58+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-02 08:55+0000\n" "Last-Translator: Burak Yavuz \n" "Language-Team: Turkish \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.10.1\n" +"X-Generator: Weblate 4.11-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -859,7 +859,7 @@ msgid "No passwords currently configured." msgstr "Şu anda yapılandırılmış parolalar yok." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Parola" @@ -1006,9 +1006,10 @@ msgid "Refresh IP address and domains" msgstr "IP adresi ve etki alanlarını yenile" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1205,7 +1206,7 @@ msgstr "" msgid "General Configuration" msgstr "Genel Yapılandırma" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1213,13 +1214,13 @@ msgid "Configure" msgstr "Yapılandır" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Etki Alanı Adı" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Geçersiz etki alanı adı" @@ -1567,6 +1568,7 @@ msgid "Test" msgstr "Deneme" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Sonuç" @@ -1574,7 +1576,7 @@ msgstr "Sonuç" msgid "Diagnostic Test" msgstr "Tanı Denemesi" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1586,7 +1588,7 @@ msgstr "" "başkalarının bu {box_name} tarafından sağlanan hizmetleri bulmasını " "engelleyecektir." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1603,15 +1605,35 @@ msgstr "" "sunucu DNS adınızı yeni IP'ye atayacaktır ve İnternet'ten birisi sizin DNS " "adınızı sorarsa, şu anki IP adresinizle bir yanıt alacaktır." -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Eğer ücretsiz bir değişken DNS hesabı arıyorsanız, ücretsiz bir GnuDIP " +"hizmetini ddns." +"freedombox.org adresinde veya ücretsiz URL güncelleme tabanlı hizmetleri " +"freedns.afraid." +"org adresinde bulabilirsiniz." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Değişken DNS İstemcisi" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Değişken Etki Alanı Adı" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1621,7 +1643,7 @@ msgstr "" "içinde kullanılabilir. Ayrıntılar için örnek sağlayıcıların URL güncelleme " "şablonlarına bakın." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1631,7 +1653,7 @@ msgstr "" "GnuDIP protokolünü desteklemiyorsa veya sağlayıcınız listede yoksa, " "sağlayıcınızın güncelleme URL'sini kullanabilirsiniz." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1639,19 +1661,19 @@ msgstr "" "Lütfen buraya bir URL (\"https://ornek.com/\" gibi) girmeyin, sadece GnuDIP " "sunucusunun anamakine adını (\"ornek.com\" gibi) girin." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "{box_name} cihazınıza ulaşmak için kullanmak istediğiniz herkese açık etki " "alanı adı." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Sağlayıcınız kendinden imzalı sertifikalar kullanıyorsa bu seçeneği kullanın." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1659,11 +1681,11 @@ msgstr "" "Eğer bu seçenek seçilirse, kullanıcı adınız ve parolanız HTTP temel kimlik " "doğrulaması için kullanılacaktır." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Şu anki parolanızı korumak istiyorsanız bu alanı boş bırakın." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1676,160 +1698,68 @@ msgstr "" "belirlemek için kullanılır. URL, istemcinin geldiği IP'yi döndürmelidir " "(örnek: https://ddns.freedombox.org/ip/)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Hesap oluşturulduğunda kullanılan kullanıcı adı." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "diğer güncelleme URL'si" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Değişken DNS'i etkinleştir" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Hizmet Türü" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP Sunucu Adresi" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Geçersiz sunucu adı" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Güncelleme URL'si" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Tüm SSL sertifikalarını kabul et" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "HTTP temel kimlik doğrulamasını kullan" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Kullanıcı adı" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Parolayı göster" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "Dış IP'yi aramak için URL" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "IPv4 yerine IPv6 kullan" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Lütfen bir güncelleme URL'si ya da bir GnuDIP sunucu adresi girin" +#: plinth/modules/dynamicdns/forms.py:123 +#, fuzzy +#| msgid "secrets required" +msgid "This field is required." +msgstr "gizli anahtarlar gerekli" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Lütfen bir GnuDIP kullanıcı adı girin" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Lütfen bir GnuDIP etki alanı adı girin" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Lütfen bir parola girin" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Eğer ücretsiz bir değişken DNS hesabı arıyorsanız, ücretsiz bir GnuDIP " -"hizmetini ddns." -"freedombox.org adresinde veya ücretsiz URL güncelleme tabanlı hizmetleri " -"freedns.afraid." -"org adresinde bulabilirsiniz." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Eğer %(box_name)s cihazınız bir NAT yönlendiricisinin arkasına bağlıysa, TCP " -"bağlantı noktası 80 (HTTP) ve TCP bağlantı noktası 443 (HTTPS) dahil olmak " -"üzere standart bağlantı noktaları için bağlantı noktası yönlendirme eklemeyi " -"unutmayın." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Javascript'i etkisizleştirdiniz. Değişken biçim kipi etkisizleştirildi ve " -"bazı yardımcı işlevler çalışmayabilir (ancak ana işlevsellik çalışmalıdır)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Ayarlamayı güncelle" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT türü" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"NAT türü henüz algılanmadı. Eğer bir \"IP Denetim URL'si\" girmezseniz, bir " -"NAT türü saptayamayacağız." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "İnternet'e doğrudan bağlantı." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"NAT arkasında. Bu, Değişken DNS hizmetinin değişiklikler için \"Dış IP'yi " -"aramak için URL\"yi yoklayacağı anlamına gelir (bunun için \"Dış IP'yi " -"aramak için URL\" girişi gereklidir, aksi takdirde IP değişiklikleri " -"algılanmayacaktır). WAN IP'sinin değişmesi durumunda, DNS girişinizin " -"güncellenmesi %(timer)s dakika kadar sürebilir." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Son güncelleme" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Hakkında" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1843,13 +1773,60 @@ msgstr "Hakkında" msgid "Status" msgstr "Durum" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Değişken DNS'i Yapılandır" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Etki Alanı" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Değişken DNS Durumu" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Son güncelleme" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP adresi" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Erişim" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "başarısız" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Kullanılabilir kütüphane yok." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Bağlantı Adı" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Bağlantıyı sil" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "Son güncelleme" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2445,6 +2422,11 @@ msgstr "Geri Bildirim Gönder" msgid "Contribute" msgstr "Katkıda Bulun" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Hakkında" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2882,6 +2864,13 @@ msgstr "%(site)s sitesine git" msgid "Delete site %(site)s" msgstr "%(site)s sitesini sil" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Ayarlamayı güncelle" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -3028,10 +3017,6 @@ msgstr "Sertifikalar" msgid "Cannot test: No domains are configured." msgstr "Denenemiyor: Hiçbir etki alanı yapılandırılmamış." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Etki Alanı" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Sertifika Durumu" @@ -3191,7 +3176,7 @@ msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3471,22 +3456,6 @@ msgstr "Adres" msgid "Port" msgstr "Bağlantı noktası" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "En fazla oyuncu yapılandırması güncellendi" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Yaratıcı kipi yapılandırması güncellendi" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "PVP yapılandırması güncellendi" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Hasar yapılandırması güncellendi" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5460,7 +5429,7 @@ msgstr "E-posta İstemcisi" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Sadece yerel posta sunucusunu kullan" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5468,6 +5437,9 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"Etkinleştirildiğinde, sunucu girişi için metin kutusu oturum açma " +"sayfasından kaldırılır ve kullanıcılar postaları sadece bu {box_name} " +"cihazından okuyabilir ve gönderebilir." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5863,10 +5835,8 @@ msgid "Bookmarks" msgstr "Yer İşaretleri" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -6109,14 +6079,12 @@ msgid "Software Installation Snapshots" msgstr "Yazılım Kurulum Anlık Görüntüleri" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." msgstr "" -"Yazılım kurulumundan önce ve sonra anlık görüntüleri etkinleştirin veya " -"etkisizleştirin." +"Her yazılım kurulumundan ve güncellemesinden önce ve sonra anlık görüntüleri " +"etkinleştirin veya etkisizleştirin." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -6352,10 +6320,8 @@ msgid "Login" msgstr "Oturum aç" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Parola başarılı olarak değiştirildi." +msgstr "Başarılı olarak oturumu kapatıldı." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -7151,8 +7117,13 @@ msgid "Frequent feature updates activated." msgstr "Sık yapılan özellik güncellemeleri etkinleştirildi." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7206,11 +7177,12 @@ msgid "Authorization Password" msgstr "Yetkilendirme Parolası" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Hesap değişikliklerini yetkilendirmek için şu anki parolanızı girin." +msgstr "" +"Hesap değişikliklerini yetkilendirmek için \"{user}\" kullanıcısının " +"parolasını girin." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -8306,6 +8278,85 @@ msgstr "%%%(percentage)s tamamlandı" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Değişken DNS'i etkinleştir" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Lütfen bir güncelleme URL'si ya da bir GnuDIP sunucu adresi girin" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Lütfen bir GnuDIP kullanıcı adı girin" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Lütfen bir GnuDIP etki alanı adı girin" + +#~ msgid "Please provide a password" +#~ msgstr "Lütfen bir parola girin" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Eğer %(box_name)s cihazınız bir NAT yönlendiricisinin arkasına bağlıysa, " +#~ "TCP bağlantı noktası 80 (HTTP) ve TCP bağlantı noktası 443 (HTTPS) dahil " +#~ "olmak üzere standart bağlantı noktaları için bağlantı noktası yönlendirme " +#~ "eklemeyi unutmayın." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Javascript'i etkisizleştirdiniz. Değişken biçim kipi etkisizleştirildi ve " +#~ "bazı yardımcı işlevler çalışmayabilir (ancak ana işlevsellik " +#~ "çalışmalıdır)." + +#~ msgid "NAT type" +#~ msgstr "NAT türü" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "NAT türü henüz algılanmadı. Eğer bir \"IP Denetim URL'si\" girmezseniz, " +#~ "bir NAT türü saptayamayacağız." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "İnternet'e doğrudan bağlantı." + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "NAT arkasında. Bu, Değişken DNS hizmetinin değişiklikler için \"Dış IP'yi " +#~ "aramak için URL\"yi yoklayacağı anlamına gelir (bunun için \"Dış IP'yi " +#~ "aramak için URL\" girişi gereklidir, aksi takdirde IP değişiklikleri " +#~ "algılanmayacaktır). WAN IP'sinin değişmesi durumunda, DNS girişinizin " +#~ "güncellenmesi %(timer)s dakika kadar sürebilir." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Değişken DNS'i Yapılandır" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Değişken DNS Durumu" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "En fazla oyuncu yapılandırması güncellendi" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Yaratıcı kipi yapılandırması güncellendi" + +#~ msgid "PVP configuration updated" +#~ msgstr "PVP yapılandırması güncellendi" + +#~ msgid "Damage configuration updated" +#~ msgstr "Hasar yapılandırması güncellendi" + #~ msgid "RoundCube availability" #~ msgstr "RoundCube kullanılabilirliği" @@ -9236,11 +9287,6 @@ msgstr "Gujarati" #~ "Pagekite kurulumu tamamlanmıştır. HTTP ve HTTPS servisleri artık " #~ "etkinleştirilmiştir." -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "Son güncelleme" - #~ msgid "Add Remote Location" #~ msgstr "Uzak Konum Ekle" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index e28367c59..f34944944 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-29 13:55+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-07 23:55+0000\n" "Last-Translator: Andrij Mizyk \n" "Language-Team: Ukrainian \n" @@ -864,7 +864,7 @@ msgid "No passwords currently configured." msgstr "Не налаштовано жодного пароля." #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "Пароль" @@ -1010,9 +1010,10 @@ msgid "Refresh IP address and domains" msgstr "Оновити IP-адреси і домени" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1209,7 +1210,7 @@ msgstr "" msgid "General Configuration" msgstr "Загальні налаштування" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1217,13 +1218,13 @@ msgid "Configure" msgstr "Налаштування" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "Доменна назва" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "Неправильна доменна назва" @@ -1568,6 +1569,7 @@ msgid "Test" msgstr "Тест" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "Результат" @@ -1575,7 +1577,7 @@ msgstr "Результат" msgid "Diagnostic Test" msgstr "Тест діагностики" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1586,7 +1588,7 @@ msgstr "" "кожних 24год.), то іншим може бути важко знайти Вас в Інтернеті. Це " "перешкоджатиме іншим пошук сервісів, що надаються цим {box_name}." -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1597,29 +1599,37 @@ msgid "" "IP address." msgstr "" -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Клієнт динамічної DNS" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Динамічна доменна назва" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1627,19 +1637,19 @@ msgstr "" "Будь ласка, не вводьте тут URL-адресу (як «https://example.com/»), а лише " "назву компʼютера для сервера GnuDIP (як-от «example.com»)." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" "Публічна назва домену, яку Ви бажаєте використовувати для входу на свій " "{box_name}." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Використовуйте цю опцію, якщо Ваш провайдер використовує власні сертифікати." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1647,11 +1657,11 @@ msgstr "" "Якщо вибрано цю опцію, Ваше імʼя користувача і пароль використовуватиметься " "для основної автентифікації HTTP." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Залишіть це поле порожнім, якщо хочете зберегти поточний пароль." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1660,149 +1670,66 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Імʼя користувача, яке використовуватиметься після створення обліківки." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "інша URL оновлення" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Дозволити динамічну DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Тип сервісу" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Адреса сервера GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Невірна назва сервера" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "Оновити URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Приймати всі SSL-сертифікати" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Використовувати основну автентифікацію HTTP" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Ім’я користувача" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Показати пароль" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL для пошуку публічної IP" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Використовувати IPv6 замість IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Надайте URL оновлення або адресу сервера GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Надайте імʼя користувача GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Надайте назву домену GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Надайте пароль" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Якщо Ваш %(box_name)s підʼєднано до маршрутизатора NAT, то не забудьте " -"додати перенаправлення для стандартних портів, включаючи TCP-порт 80 (HTTP) " -"і TCP-порт 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"У Вас вимкнено Javascript. Режим динамічної форми вимкнено і деякі допоміжні " -"функції можуть не працювати (але основна функціональність повинна працювати)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Оновити налаштування" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Тип NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Тип NAT поки що не виявлено. Якщо Ви не надали «URL перевірки IP», ми не " -"виявлятимемо тип NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Пряме підʼєднання до Інтернету." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "Востаннє оновлено" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "Про FreedomBox" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1816,13 +1743,60 @@ msgstr "Про FreedomBox" msgid "Status" msgstr "Стан" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "Налаштувати динамічну DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "Домен" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "Стан динамічної DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "Востаннє оновлено" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP-адреса" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Доступ" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "невдало" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Нема доступних бібліотек." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "Назва зʼєднання" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "Видалити зʼєднання" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Enable auto-update" +msgid "Already up-to-date" +msgstr "Дозволити автооновлення" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2386,6 +2360,11 @@ msgstr "Надіслати відгук" msgid "Contribute" msgstr "Співпрацювати" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "Про FreedomBox" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2769,6 +2748,13 @@ msgstr "Перейти на сайт %(site)s" msgid "Delete site %(site)s" msgstr "Видалити сайт %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Оновити налаштування" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2901,10 +2887,6 @@ msgstr "Сертифікати" msgid "Cannot test: No domains are configured." msgstr "Тестування не можливе: Нема налаштованих доменів." -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "Домен" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "Стан сертифікату" @@ -3276,22 +3258,6 @@ msgstr "Адреса" msgid "Port" msgstr "Порт" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "Конфіґурацію кількості гравців оновлено" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "Конфіґурацію креативного режиму оновлено" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "Конфіґурацію PVP оновлено" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "Конфіґурацію пошкоджень оновлено" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5446,10 +5412,8 @@ msgid "Bookmarks" msgstr "Закладки" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -5677,12 +5641,12 @@ msgid "Software Installation Snapshots" msgstr "Зрізи встановлення ПЗ" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." -msgstr "Дозволити або заборонити зрізи перед і після встановлення програм" +msgstr "" +"Дозволити або заборонити зрізи перед і після кожного встановлення програм і " +"оновлень." #: plinth/modules/snapshot/forms.py:32 msgid "Hourly Snapshots Limit" @@ -5902,10 +5866,8 @@ msgid "Login" msgstr "Вхід" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "Пароль змінено успішно." +msgstr "Вийшли успішно." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -6630,8 +6592,13 @@ msgid "Frequent feature updates activated." msgstr "Оновлення частих можливостей активовано." #: plinth/modules/users/__init__.py:29 +#, fuzzy +#| msgid "" +#| "Create and managed user accounts. These accounts serve as centralized " +#| "authentication mechanism for most apps. Some apps further require a user " +#| "account to be part of a group to authorize the user to access the app." msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -6684,11 +6651,11 @@ msgid "Authorization Password" msgstr "Пароль для авторизації" #: plinth/modules/users/forms.py:84 -#, fuzzy, python-brace-format -#| msgid "Enter your current password to authorize account modifications." +#, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "Уведіть свій поточний пароль для авторизування змін обліківки." +msgstr "" +"Уведіть пароль для користувача \"{user}\", щоб авторизувати зміни обліківки." #: plinth/modules/users/forms.py:93 msgid "Invalid password." @@ -7712,6 +7679,70 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Дозволити динамічну DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Надайте URL оновлення або адресу сервера GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Надайте імʼя користувача GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Надайте назву домену GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Надайте пароль" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Якщо Ваш %(box_name)s підʼєднано до маршрутизатора NAT, то не забудьте " +#~ "додати перенаправлення для стандартних портів, включаючи TCP-порт 80 " +#~ "(HTTP) і TCP-порт 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "У Вас вимкнено Javascript. Режим динамічної форми вимкнено і деякі " +#~ "допоміжні функції можуть не працювати (але основна функціональність " +#~ "повинна працювати)." + +#~ msgid "NAT type" +#~ msgstr "Тип NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Тип NAT поки що не виявлено. Якщо Ви не надали «URL перевірки IP», ми не " +#~ "виявлятимемо тип NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Пряме підʼєднання до Інтернету." + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "Налаштувати динамічну DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "Стан динамічної DNS" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "Конфіґурацію кількості гравців оновлено" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "Конфіґурацію креативного режиму оновлено" + +#~ msgid "PVP configuration updated" +#~ msgstr "Конфіґурацію PVP оновлено" + +#~ msgid "Damage configuration updated" +#~ msgstr "Конфіґурацію пошкоджень оновлено" + #~ msgid "RoundCube availability" #~ msgstr "Доступність RoundCube" diff --git a/plinth/locale/vi/LC_MESSAGES/django.po b/plinth/locale/vi/LC_MESSAGES/django.po index 84af6f994..099821eed 100644 --- a/plinth/locale/vi/LC_MESSAGES/django.po +++ b/plinth/locale/vi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n" "Last-Translator: bruh \n" "Language-Team: Vietnamese gnudip.datasystems24.net or you may find free update " +#| "URL based services at freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"Nếu bạn đang tìm một tài khoản DNS động miễn phí, bạn có thể tìm một dịch vụ " +"GnuDIP miễn phí tại gnudip.datasystems24.net hoặc bạn có thể tìm các dịch vụ miễn " +"phí dựa trên URL cập nhật tại freedns.afraid.org." + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Ứng dụng khách DNS động" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "Tên miền động" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1634,7 +1656,7 @@ msgstr "" "được sử dụng trong URL. Để biết thêm chi tiết, hãy xem các mẫu URL cập nhật " "của những nhà cung cấp trong ví dụ." -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1644,7 +1666,7 @@ msgstr "" "cung cấp không hỗ trợ giao thức GnuDIP hoặc nhà cung cấp không được liệt kê, " "bạn có thể sử dụng URL cập nhật của nhà cung cấp." -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1652,17 +1674,17 @@ msgstr "" "Vui lòng đừng nhập một URL ở đây (như \"https://example.com/\") mà chỉ nhập " "tên miền của máy chủ GnuDIP (như \"example.com\")." -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "Tên miền công khai bạn muốn sử dụng để kết nối đến {box_name} của bạn." -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" "Sử dụng tuỳ chọn này nếu nhà cung cấp của bạn sử dụng các chứng chỉ tự ký." -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." @@ -1670,11 +1692,11 @@ msgstr "" "Nếu tuỳ chọn này được chọn, tên người dùng và mật khẩu của bạn sẽ được sử " "dụng để xác thực HTTP cơ bản." -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "Bỏ trống ô này nếu bạn muốn giữ mật khẩu hiện tại." -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, fuzzy, python-brace-format #| msgid "" #| "Optional Value. If your {box_name} is not connected directly to the " @@ -1692,162 +1714,66 @@ msgstr "" "xác định địa chỉ IP thật. URL này nên chỉ đơn giản là trả về địa chỉ IP nơi " "mà máy khách đến từ đó (vd: http://myip.datasystems24.de)." -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Tên người dùng được sử dụng khi tài khoản được tạo." -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "URL cập nhật khác" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "Bật DNS động" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "Loại dịch vụ" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "Địa chỉ máy chủ GnuDIP" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "Tên máy chủ không hợp lệ" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "URL cập nhật" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "Chấp nhận tất cả chứng chỉ SSL" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "Sử dụng xác thực HTTP cơ bản" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "Tên người dùng" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "Hiện mật khẩu" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "URL để tra cứu IP công khai" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "Sử dụng IPv6 thay vì IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "Vui lòng cung cấp một URL cập nhật hoặc một địa chỉ máy chủ GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "Vui lòng cung cấp một tên người dùng GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "Vui lòng cung cấp một tên miền GnuDIP" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "Vui lòng cung cấp một mật khẩu" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" -"Nếu bạn đang tìm một tài khoản DNS động miễn phí, bạn có thể tìm một dịch vụ " -"GnuDIP miễn phí tại gnudip.datasystems24.net hoặc bạn có thể tìm các dịch vụ miễn " -"phí dựa trên URL cập nhật tại freedns.afraid.org." - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"Nếu %(box_name)s của bạn được kết nối đằng sau một router NAT, đừng quên " -"thêm chuyển tiếp cổng cho các cổng tiêu chuẩn, bao gồm cổng TCP 80 (HTTP) và " -"cổng TCP 443 (HTTPS)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"Bạn đã tắt Javascript. Chế độ form động bị tắt và một số chức năng trợ giúp " -"có thể không hoạt động (nhưng chức năng chính có khả năng cao là sẽ hoạt " -"động)." - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "Cập nhật thiết lập" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "Loại NAT" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" -"Loại NAT chưa được phát hiện. Nếu bạn không cung cấp một \"URL kiểm tra IP" -"\", chúng tôi sẽ không phát hiện loại NAT." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "Kết nối trực tiếp đến Internet." - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1861,12 +1787,55 @@ msgstr "" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP addresses" +msgid "IP Address" +msgstr "Địa chỉ IP" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "Truy cập" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "đã trượt" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "Không có thư viện nào có sẵn." + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "Kết nối bị từ chối" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2409,6 +2378,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2756,6 +2730,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "Cập nhật thiết lập" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2881,10 +2862,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3249,22 +3226,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6432,7 +6393,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7458,6 +7419,52 @@ msgstr "" msgid "Gujarati" msgstr "" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "Bật DNS động" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "Vui lòng cung cấp một URL cập nhật hoặc một địa chỉ máy chủ GnuDIP" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "Vui lòng cung cấp một tên người dùng GnuDIP" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "Vui lòng cung cấp một tên miền GnuDIP" + +#~ msgid "Please provide a password" +#~ msgstr "Vui lòng cung cấp một mật khẩu" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "Nếu %(box_name)s của bạn được kết nối đằng sau một router NAT, đừng quên " +#~ "thêm chuyển tiếp cổng cho các cổng tiêu chuẩn, bao gồm cổng TCP 80 (HTTP) " +#~ "và cổng TCP 443 (HTTPS)." + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "Bạn đã tắt Javascript. Chế độ form động bị tắt và một số chức năng trợ " +#~ "giúp có thể không hoạt động (nhưng chức năng chính có khả năng cao là sẽ " +#~ "hoạt động)." + +#~ msgid "NAT type" +#~ msgstr "Loại NAT" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "Loại NAT chưa được phát hiện. Nếu bạn không cung cấp một \"URL kiểm tra IP" +#~ "\", chúng tôi sẽ không phát hiện loại NAT." + +#~ msgid "Direct connection to the Internet." +#~ msgstr "Kết nối trực tiếp đến Internet." + #, fuzzy #~| msgid "Invalid domain name" #~ msgid "Enter a valid domain" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index 22c4f3096..8662d343d 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" -"PO-Revision-Date: 2022-01-13 18:58+0000\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"PO-Revision-Date: 2022-02-02 08:55+0000\n" "Last-Translator: Eric \n" "Language-Team: Chinese (Simplified) \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.10.1\n" +"X-Generator: Weblate 4.11-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -827,7 +827,7 @@ msgid "No passwords currently configured." msgstr "目前没有配置密码。" #: plinth/modules/bepasty/templates/bepasty.html:29 -#: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 +#: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 #: plinth/modules/shadowsocks/forms.py:45 msgid "Password" msgstr "密码" @@ -971,9 +971,10 @@ msgid "Refresh IP address and domains" msgstr "刷新 IP 地址和域" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 -#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 +#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 #: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 -#: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 +#: plinth/modules/matrixsynapse/views.py:124 +#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 #: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59 #: plinth/modules/transmission/views.py:47 plinth/modules/ttrss/views.py:26 @@ -1157,7 +1158,7 @@ msgstr "在这里你可以设置一些一般的配置选项,如主机名、域 msgid "General Configuration" msgstr "常规配置" -#: plinth/modules/config/__init__.py:58 plinth/modules/dynamicdns/views.py:29 +#: plinth/modules/config/__init__.py:58 #: plinth/modules/names/templates/names.html:30 #: plinth/modules/names/templates/names.html:44 #: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:46 @@ -1165,13 +1166,13 @@ msgid "Configure" msgstr "配置" #: plinth/modules/config/__init__.py:71 plinth/modules/config/forms.py:68 -#: plinth/modules/dynamicdns/forms.py:97 +#: plinth/modules/dynamicdns/forms.py:82 #: plinth/modules/names/templates/names.html:16 msgid "Domain Name" msgstr "域名" #: plinth/modules/config/forms.py:30 plinth/modules/config/forms.py:80 -#: plinth/modules/dynamicdns/forms.py:100 +#: plinth/modules/dynamicdns/forms.py:85 msgid "Invalid domain name" msgstr "无效的域名" @@ -1502,6 +1503,7 @@ msgid "Test" msgstr "测试" #: plinth/modules/diagnostics/templates/diagnostics_results.html:12 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:20 msgid "Result" msgstr "结果" @@ -1509,7 +1511,7 @@ msgstr "结果" msgid "Diagnostic Test" msgstr "诊断测试" -#: plinth/modules/dynamicdns/__init__.py:22 +#: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1519,7 +1521,7 @@ msgstr "" "如果您的互联网提供商定期(例如每24小时)更改您的IP地址,其他人可能很难在互联" "网上找到您。这会阻止其他人找到由此 {box_name} 提供的服务。" -#: plinth/modules/dynamicdns/__init__.py:26 +#: plinth/modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1535,15 +1537,34 @@ msgstr "" "器会将您的 DNS 名称分配给新的 IP,如果互联网上的某人要求您的 DNS 名称,他们将" "从您当前 IP 地址收到响应。" -#: plinth/modules/dynamicdns/__init__.py:52 +#: plinth/modules/dynamicdns/__init__.py:41 +#, fuzzy +#| msgid "" +#| "If you are looking for a free dynamic DNS account, you may find a free " +#| "GnuDIP service at ddns.freedombox.org or you may find free update URL " +#| "based services at " +#| "freedns.afraid.org." +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" +"如果您正在寻找一个免费的动态 DNS 帐户,您可以在ddns.freedombox.org 找到免费的 GnuDIP " +"服务,或您可以在 " +"freedns.afraid.org 找到免费更新网址服务。" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "动态 DNS 客户端" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "动态域名" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " @@ -1552,7 +1573,7 @@ msgstr "" "变量 < 用户 > < 传递 > < Ip > < 域 > 可能在 URL 内使" "用。详细信息请参见更新 URL 模板的示例提供程序。" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " @@ -1561,7 +1582,7 @@ msgstr "" "请选择您的提供商更新协议。如果您的提供商不支持 GnuDIP 协议或未列出您的提供商" "可能会使用您的提供商的更新 URL。" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." @@ -1569,26 +1590,26 @@ msgstr "" "请不要在此输入 URL(如\"https://example.com/\"),只输入 GnuDIP 服务器的主机" "名(例如“example.com”)。" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "你访问你的 {box_name} 时想使用的公开域名。" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "如果您的提供商使用自签名的证书,请使用此选项。" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "如果选择了此选项,您的用户名和密码将用于 HTTP 基本身份验证。" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "如果你想保持你的当前密码,请将此字段留空。" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1600,153 +1621,66 @@ msgstr "" "此 URL 用于确定真实的IP地址。URL应该简单地返回客户端来自的 IP (例如:" "https://ddns.freedombox.org/ip/)。" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "创建账户时使用的用户名。" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "GnuDIP" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +#, fuzzy +#| msgid "other update URL" +msgid "Other update URL" msgstr "其他更新 URL" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "启用动态 DNS" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "服务类型" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "GnuDIP 服务器地址" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "服务器名称无效" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "更新 URL" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "接受所有 SSL 证书" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "使用 HTTP 基本身份验证" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "用户名" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "显示密码" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "查寻公开 IP 的 URL" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "使用IPv6而不是IPv4" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" -msgstr "请提供一个更新 URL 或者 GnuDIP 服务器地址" - -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "请提供一个 GnuDIP 用户名" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "请提供一个 GnuDIP 域名" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "请提供一个密码" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -"如果您正在寻找一个免费的动态 DNS 帐户,您可以在ddns.freedombox.org 找到免费的 GnuDIP " -"服务,或您可以在 " -"freedns.afraid.org 找到免费更新网址服务。" -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" -"如果您的 %(box_name)s 经过 NAT 方式的路由连接,别忘了添加标准端口的转发,包" -"括 TCP 端口 80 (HTTP) 和 TCP 端口 443 (HTTPS)。" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" -"您已禁用 Javascript。禁用动态表单模式和一些 helper 函数可能无法工作(但主要功" -"能应该工作)。" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "更新安装程序" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "NAT 类型" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "不能检测 NAT 类型。如果你不提供”IP 检查 URL“,我们将不检测 NAT 类型。" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "直接连接到互联网。" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" -"如果在 NAT 后面。这意味着动态 DNS 服务将轮询“URL 查找公共 IP”的更改(需要输" -"入“查找公共 IP 的 URL”),否则将不会检测到 IP 更改)。 如果 WAN IP 更改,可能" -"需要最多 %(timer)s 分钟,直到您的DNS条目更新。" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "最后一次更新" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "关于" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1760,13 +1694,60 @@ msgstr "关于" msgid "Status" msgstr "状态" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" -msgstr "配置动态 DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" +msgstr "域名" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" -msgstr "动态 DNS 状态" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "最后一次更新" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP address" +msgid "IP Address" +msgstr "IP 地址" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "访问" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +#, fuzzy +#| msgid "failed" +msgid "Failed" +msgstr "失败" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "没有可用的库。" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection Name" +msgid "Connection timed out" +msgstr "连接名称" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +#, fuzzy +#| msgid "Delete connection" +msgid "Server refused connection" +msgstr "删除连接" + +#: plinth/modules/dynamicdns/views.py:28 +#, fuzzy +#| msgid "Last update" +msgid "Already up-to-date" +msgstr "最后一次更新" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2318,6 +2299,11 @@ msgstr "" msgid "Contribute" msgstr "贡献" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "关于" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2695,6 +2681,13 @@ msgstr "转到站点 %(site)s" msgid "Delete site %(site)s" msgstr "删除站点 %(site)s" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "更新安装程序" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2829,10 +2822,6 @@ msgstr "证书" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "域名" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "证书状态" @@ -3204,22 +3193,6 @@ msgstr "地址" msgid "Port" msgstr "端口" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "最大玩家配置已更新" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "创意模式配置已更新" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "玩家对战(PVP)配置已更新" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "伤害配置已更新" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -5328,10 +5301,8 @@ msgid "Bookmarks" msgstr "书签" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "Shaarli" +msgstr "Shaarlier" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -5764,10 +5735,8 @@ msgid "Login" msgstr "登录" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "已成功更改密码。" +msgstr "已成功退出登录。" #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -6488,7 +6457,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" @@ -7535,6 +7504,79 @@ msgstr "已完成 %(percentage)s%%" msgid "Gujarati" msgstr "古吉拉特语" +#~ msgid "Enable Dynamic DNS" +#~ msgstr "启用动态 DNS" + +#~ msgid "Please provide an update URL or a GnuDIP server address" +#~ msgstr "请提供一个更新 URL 或者 GnuDIP 服务器地址" + +#~ msgid "Please provide a GnuDIP username" +#~ msgstr "请提供一个 GnuDIP 用户名" + +#~ msgid "Please provide a GnuDIP domain name" +#~ msgstr "请提供一个 GnuDIP 域名" + +#~ msgid "Please provide a password" +#~ msgstr "请提供一个密码" + +#, python-format +#~ msgid "" +#~ "If your %(box_name)s is connected behind a NAT router, don't forget to " +#~ "add port forwarding for standard ports, including TCP port 80 (HTTP) and " +#~ "TCP port 443 (HTTPS)." +#~ msgstr "" +#~ "如果您的 %(box_name)s 经过 NAT 方式的路由连接,别忘了添加标准端口的转发," +#~ "包括 TCP 端口 80 (HTTP) 和 TCP 端口 443 (HTTPS)。" + +#~ msgid "" +#~ "You have disabled Javascript. Dynamic form mode is disabled and some " +#~ "helper functions may not work (but the main functionality should work)." +#~ msgstr "" +#~ "您已禁用 Javascript。禁用动态表单模式和一些 helper 函数可能无法工作(但主" +#~ "要功能应该工作)。" + +#~ msgid "NAT type" +#~ msgstr "NAT 类型" + +#~ msgid "" +#~ "NAT type was not detected yet. If you do not provide an \"IP Check URL\", " +#~ "we will not detect a NAT type." +#~ msgstr "" +#~ "不能检测 NAT 类型。如果你不提供”IP 检查 URL“,我们将不检测 NAT 类型。" + +#~ msgid "Direct connection to the Internet." +#~ msgstr "直接连接到互联网。" + +#, python-format +#~ msgid "" +#~ "Behind NAT. This means that Dynamic DNS service will poll the \"URL to " +#~ "look up public IP\" for changes (the \"URL to look up public IP\" entry " +#~ "is needed for this, otherwise IP changes will not be detected). In case " +#~ "the WAN IP changes, it may take up to %(timer)s minutes until your DNS " +#~ "entry is updated." +#~ msgstr "" +#~ "如果在 NAT 后面。这意味着动态 DNS 服务将轮询“URL 查找公共 IP”的更改(需要" +#~ "输入“查找公共 IP 的 URL”),否则将不会检测到 IP 更改)。 如果 WAN IP 更" +#~ "改,可能需要最多 %(timer)s 分钟,直到您的DNS条目更新。" + +#~ msgid "Configure Dynamic DNS" +#~ msgstr "配置动态 DNS" + +#~ msgid "Dynamic DNS Status" +#~ msgstr "动态 DNS 状态" + +#~ msgid "Maximum players configuration updated" +#~ msgstr "最大玩家配置已更新" + +#~ msgid "Creative mode configuration updated" +#~ msgstr "创意模式配置已更新" + +#~ msgid "PVP configuration updated" +#~ msgstr "玩家对战(PVP)配置已更新" + +#~ msgid "Damage configuration updated" +#~ msgstr "伤害配置已更新" + #~ msgid "RoundCube availability" #~ msgstr "RoundCube 可用性" @@ -8237,11 +8279,6 @@ msgstr "古吉拉特语" #~ "Pagekite setup finished. The HTTP and HTTPS services are activated now." #~ msgstr "Pagekite 安装完成。HTTP 和 HTTPS 服务现已启用。" -#, fuzzy -#~| msgid "Last update" -#~ msgid "Auto-update" -#~ msgstr "最后一次更新" - #~ msgid "Add Remote Location" #~ msgstr "添加远程位置" diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po index 2bade7871..1c524d717 100644 --- a/plinth/locale/zh_Hant/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 19:23-0500\n" +"POT-Creation-Date: 2022-02-14 20:10-0500\n" "PO-Revision-Date: 2021-12-23 12:50+0000\n" "Last-Translator: pesder \n" "Language-Team: Chinese (Traditional) ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: plinth/modules/dynamicdns/__init__.py:65 +#: plinth/modules/dynamicdns/__init__.py:77 msgid "Dynamic Domain Name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:29 +#: plinth/modules/dynamicdns/forms.py:18 msgid "" "The Variables <User>, <Pass>, <Ip>, <Domain> may be " "used within the URL. For details see the update URL templates of the example " "providers." msgstr "" -#: plinth/modules/dynamicdns/forms.py:33 +#: plinth/modules/dynamicdns/forms.py:22 msgid "" "Please choose an update protocol according to your provider. If your " "provider does not support the GnuDIP protocol or your provider is not listed " "you may use the update URL of your provider." msgstr "" -#: plinth/modules/dynamicdns/forms.py:38 +#: plinth/modules/dynamicdns/forms.py:27 msgid "" "Please do not enter a URL here (like \"https://example.com/\") but only the " "hostname of the GnuDIP server (like \"example.com\")." msgstr "" -#: plinth/modules/dynamicdns/forms.py:42 +#: plinth/modules/dynamicdns/forms.py:31 #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -#: plinth/modules/dynamicdns/forms.py:45 +#: plinth/modules/dynamicdns/forms.py:34 msgid "Use this option if your provider uses self signed certificates." msgstr "" -#: plinth/modules/dynamicdns/forms.py:48 +#: plinth/modules/dynamicdns/forms.py:37 msgid "" "If this option is selected, your username and password will be used for HTTP " "basic authentication." msgstr "" -#: plinth/modules/dynamicdns/forms.py:51 +#: plinth/modules/dynamicdns/forms.py:40 msgid "Leave this field empty if you want to keep your current password." msgstr "" -#: plinth/modules/dynamicdns/forms.py:54 +#: plinth/modules/dynamicdns/forms.py:43 #, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " @@ -1589,142 +1599,64 @@ msgid "" "(example: https://ddns.freedombox.org/ip/)." msgstr "" -#: plinth/modules/dynamicdns/forms.py:62 +#: plinth/modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: plinth/modules/dynamicdns/forms.py:65 +#: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:68 -msgid "other update URL" +#: plinth/modules/dynamicdns/forms.py:57 +msgid "Other update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:70 -msgid "Enable Dynamic DNS" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:73 +#: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" msgstr "" -#: plinth/modules/dynamicdns/forms.py:78 +#: plinth/modules/dynamicdns/forms.py:64 msgid "GnuDIP Server Address" msgstr "" -#: plinth/modules/dynamicdns/forms.py:81 +#: plinth/modules/dynamicdns/forms.py:67 msgid "Invalid server name" msgstr "" -#: plinth/modules/dynamicdns/forms.py:84 +#: plinth/modules/dynamicdns/forms.py:70 msgid "Update URL" msgstr "" -#: plinth/modules/dynamicdns/forms.py:89 +#: plinth/modules/dynamicdns/forms.py:74 msgid "Accept all SSL certificates" msgstr "" -#: plinth/modules/dynamicdns/forms.py:93 +#: plinth/modules/dynamicdns/forms.py:78 msgid "Use HTTP basic authentication" msgstr "" -#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 +#: plinth/modules/dynamicdns/forms.py:88 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:68 msgid "Username" msgstr "" -#: plinth/modules/dynamicdns/forms.py:110 plinth/modules/networks/forms.py:215 +#: plinth/modules/dynamicdns/forms.py:95 plinth/modules/networks/forms.py:215 msgid "Show password" msgstr "" -#: plinth/modules/dynamicdns/forms.py:114 +#: plinth/modules/dynamicdns/forms.py:99 msgid "URL to look up public IP" msgstr "" -#: plinth/modules/dynamicdns/forms.py:119 +#: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" msgstr "" -#: plinth/modules/dynamicdns/forms.py:141 -msgid "Please provide an update URL or a GnuDIP server address" +#: plinth/modules/dynamicdns/forms.py:123 +msgid "This field is required." msgstr "" -#: plinth/modules/dynamicdns/forms.py:146 -msgid "Please provide a GnuDIP username" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:150 -msgid "Please provide a GnuDIP domain name" -msgstr "" - -#: plinth/modules/dynamicdns/forms.py:155 -msgid "Please provide a password" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:12 -msgid "" -"If you are looking for a free dynamic DNS account, you may find a free " -"GnuDIP service at ddns." -"freedombox.org or you may find free update URL based services at freedns.afraid.org." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns.html:23 -#, python-format -msgid "" -"If your %(box_name)s is connected behind a NAT router, don't forget to add " -"port forwarding for standard ports, including TCP port 80 (HTTP) and TCP " -"port 443 (HTTPS)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:15 -msgid "" -"You have disabled Javascript. Dynamic form mode is disabled and some helper " -"functions may not work (but the main functionality should work)." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 -#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 -#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 -#: plinth/modules/snapshot/templates/snapshot.html:15 -#: plinth/templates/app.html:54 -msgid "Update setup" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 -msgid "NAT type" -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 -msgid "" -"NAT type was not detected yet. If you do not provide an \"IP Check URL\", we " -"will not detect a NAT type." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 -msgid "Direct connection to the Internet." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 -#, python-format -msgid "" -"Behind NAT. This means that Dynamic DNS service will poll the \"URL to look " -"up public IP\" for changes (the \"URL to look up public IP\" entry is needed " -"for this, otherwise IP changes will not be detected). In case the WAN IP " -"changes, it may take up to %(timer)s minutes until your DNS entry is updated." -msgstr "" - -#: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 -msgid "Last update" -msgstr "" - -#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:55 -#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 -msgid "About" -msgstr "關於" - -#: plinth/modules/dynamicdns/views.py:32 +#: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 #: plinth/modules/firewall/templates/firewall.html:36 #: plinth/modules/letsencrypt/templates/letsencrypt.html:17 @@ -1738,12 +1670,53 @@ msgstr "關於" msgid "Status" msgstr "" -#: plinth/modules/dynamicdns/views.py:62 -msgid "Configure Dynamic DNS" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 +msgid "Domain" msgstr "" -#: plinth/modules/dynamicdns/views.py:86 -msgid "Dynamic DNS Status" +#: plinth/modules/dynamicdns/templates/dynamicdns.html:19 +msgid "Last update" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:21 +#, fuzzy +#| msgid "IP addresses" +msgid "IP Address" +msgstr "IP 地址" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:32 +#, fuzzy +#| msgid "Access" +msgid "Success" +msgstr "存取" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:36 +msgid "Failed" +msgstr "" + +#: plinth/modules/dynamicdns/templates/dynamicdns.html:52 +#, fuzzy +#| msgid "No libraries available." +msgid "No status available." +msgstr "無可用的圖書館。" + +#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 +#, fuzzy +#| msgid "Connection refused" +msgid "Connection timed out" +msgstr "連線被拒絕" + +#: plinth/modules/dynamicdns/views.py:25 +msgid "Could not find server" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:27 +msgid "Server refused connection" +msgstr "" + +#: plinth/modules/dynamicdns/views.py:28 +msgid "Already up-to-date" msgstr "" #: plinth/modules/ejabberd/__init__.py:31 @@ -2284,6 +2257,11 @@ msgstr "" msgid "Contribute" msgstr "" +#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 +#: plinth/templates/help-menu.html:47 +msgid "About" +msgstr "關於" + #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #, python-format @@ -2631,6 +2609,13 @@ msgstr "" msgid "Delete site %(site)s" msgstr "" +#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 +#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47 +#: plinth/modules/snapshot/templates/snapshot.html:15 +#: plinth/templates/app.html:54 +msgid "Update setup" +msgstr "" + #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" @@ -2756,10 +2741,6 @@ msgstr "" msgid "Cannot test: No domains are configured." msgstr "" -#: plinth/modules/letsencrypt/templates/letsencrypt.html:24 -msgid "Domain" -msgstr "" - #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" msgstr "" @@ -3124,22 +3105,6 @@ msgstr "" msgid "Port" msgstr "" -#: plinth/modules/minetest/views.py:48 -msgid "Maximum players configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:55 -msgid "Creative mode configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:61 -msgid "PVP configuration updated" -msgstr "" - -#: plinth/modules/minetest/views.py:67 -msgid "Damage configuration updated" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -6304,7 +6269,7 @@ msgstr "" #: plinth/modules/users/__init__.py:29 msgid "" -"Create and managed user accounts. These accounts serve as centralized " +"Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " "account to be part of a group to authorize the user to access the app." msgstr "" diff --git a/plinth/modules/backups/components.py b/plinth/modules/backups/components.py index 3fadf8e82..45165e856 100644 --- a/plinth/modules/backups/components.py +++ b/plinth/modules/backups/components.py @@ -3,7 +3,10 @@ App component for other apps to use backup/restore functionality. """ -from plinth import app +import copy +import json + +from plinth import actions, app def _validate_directories_and_files(section): @@ -45,29 +48,52 @@ def _validate_service(service): assert service['kind'] in ('config', 'site', 'module') +def _validate_settings(settings): + """Validate settings stored by an in kvstore.""" + if not settings: + return + + assert isinstance(settings, list) + for setting in settings: + assert isinstance(setting, str) + + class BackupRestore(app.FollowerComponent): """Component to backup/restore an app.""" def __init__(self, component_id, config=None, data=None, secrets=None, - services=None): + services=None, settings=None): """Initialize the backup/restore component.""" super().__init__(component_id) _validate_directories_and_files(config) self.config = config or {} _validate_directories_and_files(data) - self.data = data or {} + self._data = data or {} _validate_directories_and_files(secrets) self.secrets = secrets or {} _validate_services(services) self.services = services or [] + _validate_settings(settings) + self.settings = settings or [] - self.has_data = bool(config) or bool(data) or bool(secrets) + self.has_data = (bool(config) or bool(data) or bool(secrets) + or bool(settings)) def __eq__(self, other): """Check if this component is same as another.""" return self.component_id == other.component_id + @property + def data(self): + """Add additional files to data files list.""" + data = copy.deepcopy(self._data) + settings_file = self._get_settings_file() + if settings_file: + data.setdefault('files', []).append(settings_file) + + return data + @property def manifest(self): """Return the backup details as a dictionary.""" @@ -84,10 +110,14 @@ class BackupRestore(app.FollowerComponent): if self.services: manifest['services'] = self.services + if self.settings: + manifest['settings'] = self.settings + return manifest def backup_pre(self, packet): """Perform any special operations before backup.""" + self._settings_backup_pre() def backup_post(self, packet): """Perform any special operations after backup.""" @@ -97,3 +127,43 @@ class BackupRestore(app.FollowerComponent): def restore_post(self, packet): """Perform any special operations after restore.""" + self._settings_restore_post() + + def _get_settings_file(self): + """Return the settings file path to list of files to backup.""" + if not self.settings or not self.app_id: + return None + + data_path = '/var/lib/plinth/backups-data/' + return data_path + f'{self.app_id}-settings.json' + + def _settings_backup_pre(self): + """Read keys from kvstore and store them in a file to backup.""" + if not self.settings: + return + + from plinth import kvstore + data = {} + for key in self.settings: + try: + data[key] = kvstore.get(key) + except Exception: + pass + + input_ = json.dumps(data).encode() + actions.superuser_run('backups', + ['dump-settings', '--app-id', self.app_id], + input=input_) + + def _settings_restore_post(self): + """Read from a file and restore keys to kvstore.""" + if not self.settings: + return + + output = actions.superuser_run( + 'backups', ['load-settings', '--app-id', self.app_id]) + data = json.loads(output) + + from plinth import kvstore + for key, value in data.items(): + kvstore.set(key, value) diff --git a/plinth/modules/backups/tests/test_components.py b/plinth/modules/backups/tests/test_components.py index d1a0df774..29a88d91d 100644 --- a/plinth/modules/backups/tests/test_components.py +++ b/plinth/modules/backups/tests/test_components.py @@ -3,8 +3,13 @@ Test the App components provides by backups app. """ +import json +from unittest.mock import call, patch + import pytest +from plinth import kvstore + from .. import components from ..components import BackupRestore @@ -16,8 +21,9 @@ def fixture_backup_restore(): """Fixture to create a domain type after clearing all existing ones.""" value = {'files': ['a', 'b'], 'directories': ['a', 'b']} services = ['service-1', {'type': 'system', 'name': 'service-2'}] + settings = ['setting-1', 'setting-2'] return BackupRestore('test-backup-restore', config=value, data=value, - secrets=value, services=services) + secrets=value, services=services, settings=settings) @pytest.mark.parametrize('section', [ @@ -159,6 +165,7 @@ def test_backup_restore_init_default_arguments(): assert component.data == {} assert component.secrets == {} assert component.services == [] + assert component.settings == [] assert not component.has_data @@ -185,6 +192,22 @@ def test_backup_restore_init_services(): assert not component.has_data +def test_backup_restore_init_settings(): + """Test initialization of the backup restore object.""" + with pytest.raises(AssertionError): + BackupRestore('test-backup-restore', settings='invalid-value') + + settings = ['setting1', 'setting2'] + component = BackupRestore('test-backup-restore', settings=settings) + assert component.settings == settings + assert component.has_data + assert component.data == {} + + component.app_id = 'testapp' + settings_file = '/var/lib/plinth/backups-data/testapp-settings.json' + assert component.data == {'files': [settings_file]} + + def test_backup_restore_equal(backup_restore): """Test equality operator on the backup restore object.""" assert backup_restore == BackupRestore('test-backup-restore') @@ -199,6 +222,7 @@ def test_backup_restore_manifest(backup_restore): assert manifest['data'] == backup_restore.data assert manifest['secrets'] == backup_restore.secrets assert manifest['services'] == backup_restore.services + assert manifest['settings'] == backup_restore.settings assert BackupRestore('test-backup-restore').manifest == {} @@ -206,7 +230,47 @@ def test_backup_restore_manifest(backup_restore): def test_backup_restore_hooks(backup_restore): """Test running hooks on backup restore object.""" packet = None - backup_restore.backup_pre(packet) backup_restore.backup_post(packet) backup_restore.restore_pre(packet) + + +@pytest.mark.django_db +@patch('plinth.actions.superuser_run') +def test_backup_restore_backup_pre(run, backup_restore): + """Test running backup-pre hook.""" + packet = None + kvstore.set('setting-1', 'value-1') + backup_restore.app_id = 'testapp' + + component = BackupRestore('test-backup-restore') + component.backup_pre(packet) + run.assert_has_calls([]) + + backup_restore.backup_pre(packet) + input_ = {'setting-1': 'value-1'} + run.assert_has_calls([ + call('backups', ['dump-settings', '--app-id', 'testapp'], + input=json.dumps(input_).encode()) + ]) + + +@pytest.mark.django_db +@patch('plinth.actions.superuser_run') +def test_backup_restore_restore_post(run, backup_restore): + """Test running restore-post hook.""" + packet = None + backup_restore.app_id = 'testapp' + + component = BackupRestore('test-backup-restore') + component.restore_post(packet) + run.assert_has_calls([]) + + output = {'setting-1': 'value-1'} + run.return_value = json.dumps(output) backup_restore.restore_post(packet) + run.assert_has_calls( + [call('backups', ['load-settings', '--app-id', 'testapp'])]) + + assert kvstore.get('setting-1') == 'value-1' + with pytest.raises(Exception): + kvstore.get('setting-2') diff --git a/plinth/modules/dynamicdns/__init__.py b/plinth/modules/dynamicdns/__init__.py index 86efbc4da..9fc18467c 100644 --- a/plinth/modules/dynamicdns/__init__.py +++ b/plinth/modules/dynamicdns/__init__.py @@ -3,19 +3,26 @@ FreedomBox app to configure ez-ipupdate client. """ +import json +import logging +import subprocess +import time +import urllib + from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module -from plinth import cfg, menu +from plinth import cfg, glib, kvstore, menu from plinth.modules.backups.components import BackupRestore from plinth.modules.names.components import DomainType from plinth.modules.users.components import UsersAndGroups -from plinth.package import Packages -from plinth.signals import domain_added +from plinth.signals import domain_added, domain_removed from plinth.utils import format_lazy -from . import manifest +from . import gnudip, manifest + +logger = logging.getLogger(__name__) _description = [ format_lazy( @@ -30,7 +37,12 @@ _description = [ ' ' 'GnuDIP server. Afterwards, the server will assign your DNS name ' 'to the new IP, and if someone from the Internet asks for your DNS ' - 'name, they will get a response with your current IP address.') + 'name, they will get a response with your current IP address.'), + _('If you are looking for a free dynamic DNS account, you may find a free ' + 'GnuDIP service at ddns.freedombox.org or you may find free update ' + 'URL based services at freedns.afraid.org.'), ] app = None @@ -41,7 +53,7 @@ class DynamicDNSApp(app_module.App): app_id = 'dynamicdns' - _version = 1 + _version = 2 def __init__(self): """Create components for the app.""" @@ -58,8 +70,8 @@ class DynamicDNSApp(app_module.App): 'dynamicdns:index', parent_url_name='system') self.add(menu_item) - packages = Packages('packages-dynamicdns', ['ez-ipupdate']) - self.add(packages) + enable_state = app_module.EnableState('enable-state-dynamicdns') + self.add(enable_state) domain_type = DomainType('domain-type-dynamic', _('Dynamic Domain Name'), 'dynamicdns:index', @@ -74,106 +86,195 @@ class DynamicDNSApp(app_module.App): **manifest.backup) self.add(backup_restore) - @staticmethod - def post_init(): + def post_init(self): """Perform post initialization operations.""" - current_status = get_status() - if current_status['enabled']: - domain_added.send_robust(sender='dynamicdns', - domain_type='domain-type-dynamic', - name=current_status['dynamicdns_domain'], - services='__all__') + config = get_config() + if self.is_enabled(): + for domain_name in config['domains']: + notify_domain_added(domain_name) - def is_enabled(self): - """Return whether all the leader components are enabled. - - Return True when there are no leader components and DynamicDNS setup - is done. - """ - return super().is_enabled() and get_status()['enabled'] + # Check every 5 minutes (every 3 minutes in debug mode) to perform + # dynamic DNS updates. + interval = 180 if cfg.develop else 300 + glib.schedule(interval, update_dns) def setup(helper, old_version=None): """Install and configure the module.""" app.setup(old_version) + if not old_version: + helper.call('post', app.enable) + + if old_version == 1: + config = actions.superuser_run('dynamicdns', ['export-config']) + config = json.loads(config) + if config['enabled']: + app.enable() + else: + app.disable() + + del config['enabled'] + set_config(config) + actions.superuser_run('dynamicdns', ['clean']) + + +def _query_external_address(domain): + """Return the IP address by querying an external server.""" + if not domain['ip_lookup_url']: + return None + + ip_option = '-6' if domain['use_ipv6'] else '-4' + try: + ip_address = subprocess.check_output([ + 'wget', ip_option, '-o', '/dev/null', '-t', '3', '-T', '3', '-O', + '-', domain['ip_lookup_url'] + ]) + return ip_address.decode().strip().lower() + except subprocess.CalledProcessError as exception: + logger.warning('Unable to lookup external IP with URL %s: %s', + domain['ip_lookup_url'], exception) + return None + + +def _query_dns_address(domain): + """Return the IP address in the DNS records.""" + ip_option = 'AAAA' if domain['use_ipv6'] else 'A' + try: + output = subprocess.check_output( + ['host', '-t', ip_option, domain['domain']]) + return output.decode().split(' ')[-1].strip().lower() + except subprocess.CalledProcessError as exception: + logger.warning('Unable to lookup DNS for host %s: %s', + domain['domain'], exception) + return None + + +def _update_using_url(domain, external_address): + """Update DNS entry using an update URL.""" + update_url = domain['update_url'] + quote = urllib.parse.quote + if external_address: + update_url = update_url.replace('', quote(external_address)) + + if domain['domain']: + update_url = update_url.replace('', quote(domain['domain'])) + + if domain['username']: + update_url = update_url.replace('', quote(domain['username'])) + + if domain['password']: + update_url = update_url.replace('', quote(domain['password'])) + + options = ['-o', '/dev/null', '-t', '3', '-T', '3'] + if domain['use_http_basic_auth']: + options += [ + '--user', domain['username'], '--password', domain['password'] + ] + + if domain['disable_ssl_cert_check']: + options += ['--no-check-certificate'] + + if domain['use_ipv6']: + options += ['-6'] + else: + options += ['-4'] + + command = ['wget', '-O', '/dev/null'] + options + [update_url] + process = subprocess.run(command, check=False) + return process.returncode == 0, external_address + + +def _update_dns_for_domain(domain): + """Update DNS records for a single domain.""" + result = False + ip_address = None + error = None + + try: + dns_address = _query_dns_address(domain) + external_address = _query_external_address(domain) + if dns_address == external_address and dns_address is not None: + logger.info('Dynamic domain %s is up-to-date: %s', + domain['domain'], dns_address) + result = True + ip_address = dns_address + error = ValueError('up-to-date') + else: + logger.info( + 'Updating dynamic domain %s, DNS address %s, looked up ' + 'external address %s', domain['domain'], dns_address, + external_address) + if domain['service_type'] == 'gnudip': + result, ip_address = gnudip.update(domain['server'], + domain['domain'], + domain['username'], + domain['password']) + else: + result, ip_address = _update_using_url(domain, + external_address) + except Exception as exception: + logger.exception('Failed to be update Dynamic DNS - %s', exception) + error = exception + + set_status(domain, result, ip_address, error) + + +def update_dns(_data): + """For all configured domains, check and up to date DNS records.""" + config = get_config() + if not app.is_enabled(): + return + + # Update for each domain + for domain in config['domains'].values(): + _update_dns_for_domain(domain) def get_status(): - """Return the current status.""" - # TODO: use key/value instead of hard coded value list - status = {} - output = actions.superuser_run('dynamicdns', ['status']) - details = output.split() - status['enabled'] = (output.split()[0] == 'enabled') - - if len(details) > 1: - if details[1] == 'disabled': - status['dynamicdns_server'] = '' - else: - status['dynamicdns_server'] = details[1].replace("'", "") - else: - status['dynamicdns_server'] = '' - - if len(details) > 2: - if details[2] == 'disabled': - status['dynamicdns_domain'] = '' - else: - status['dynamicdns_domain'] = details[2].replace("'", "") - else: - status['dynamicdns_domain'] = '' - - if len(details) > 3: - if details[3] == 'disabled': - status['dynamicdns_user'] = '' - else: - status['dynamicdns_user'] = details[3].replace("'", "") - else: - status['dynamicdns_user'] = '' - - if len(details) > 4: - if details[4] == 'disabled': - status['dynamicdns_secret'] = '' - else: - status['dynamicdns_secret'] = details[4].replace("'", "") - else: - status['dynamicdns_secret'] = '' - - if len(details) > 5: - if details[5] == 'disabled': - status['dynamicdns_ipurl'] = '' - else: - status['dynamicdns_ipurl'] = details[5].replace("'", "") - else: - status['dynamicdns_ipurl'] = '' - - if len(details) > 6: - if details[6] == 'disabled': - status['dynamicdns_update_url'] = '' - else: - status['dynamicdns_update_url'] = details[6].replace("'", "") - else: - status['dynamicdns_update_url'] = '' - - if len(details) > 7: - status['disable_SSL_cert_check'] = (output.split()[7] == 'enabled') - else: - status['disable_SSL_cert_check'] = False - - if len(details) > 8: - status['use_http_basic_auth'] = (output.split()[8] == 'enabled') - else: - status['use_http_basic_auth'] = False - - if len(details) > 9: - status['use_ipv6'] = (output.split()[9] == 'enabled') - else: - status['use_ipv6'] = False - - if not status['dynamicdns_server'] and not status['dynamicdns_update_url']: - status['service_type'] = 'GnuDIP' - elif not status['dynamicdns_server'] and status['dynamicdns_update_url']: - status['service_type'] = 'other' - else: - status['service_type'] = 'GnuDIP' - + """Return the status of recent update for each domain.""" + status = kvstore.get_default('dynamicdns_status', '{}') + status = json.loads(status) + status.setdefault('domains', {}) return status + + +def set_status(domain, result, ip_address, error=None): + """Set the status of most recent update.""" + status = kvstore.get_default('dynamicdns_status', '{}') + status = json.loads(status) + domains = status.setdefault('domains', {}) + domains[domain['domain']] = { + 'domain': domain['domain'], + 'result': result, + 'ip_address': ip_address, + 'error_code': error.__class__.__name__ if error else None, + 'error_message': error.args[0] if error and error.args else None, + 'timestamp': int(time.time()), + } + kvstore.set('dynamicdns_status', json.dumps(status)) + + +def get_config(): + """Return the current configuration.""" + default_config = {'domains': {}} + config = kvstore.get_default('dynamicdns_config', '{}') + return json.loads(config) or default_config + + +def set_config(config): + """Set a new configuration.""" + kvstore.set('dynamicdns_config', json.dumps(config)) + + +def notify_domain_added(domain_name): + """Send a signal that domain has been added.""" + domain_added.send_robust(sender='dynamicdns', + domain_type='domain-type-dynamic', + name=domain_name, services='__all__') + + +def notify_domain_removed(domain_name): + """Send a signal that domain has been removed.""" + domain_removed.send_robust(sender='dynamicdns', + domain_type='domain-type-dynamic', + name=domain_name) diff --git a/plinth/modules/dynamicdns/forms.py b/plinth/modules/dynamicdns/forms.py index 60454a9df..51693af62 100644 --- a/plinth/modules/dynamicdns/forms.py +++ b/plinth/modules/dynamicdns/forms.py @@ -12,24 +12,13 @@ from plinth import cfg from plinth.utils import format_lazy -class TrimmedCharField(forms.CharField): - """Trim the contents of a CharField.""" - - def clean(self, value): - """Clean and validate the field value""" - if value: - value = value.strip() - - return super(TrimmedCharField, self).clean(value) - - class ConfigureForm(forms.Form): """Form to configure the Dynamic DNS client.""" help_update_url = \ gettext_lazy('The Variables <User>, <Pass>, <Ip>, ' '<Domain> may be used within the URL. For details ' 'see the update URL templates of the example providers.') - help_services = \ + help_service_type = \ gettext_lazy('Please choose an update protocol according to your ' 'provider. If your provider does not support the GnuDIP ' 'protocol or your provider is not listed you may use ' @@ -41,16 +30,16 @@ class ConfigureForm(forms.Form): help_domain = format_lazy( gettext_lazy('The public domain name you want to use to reach your ' '{box_name}.'), box_name=gettext_lazy(cfg.box_name)) - help_disable_ssl = \ + help_disable_ssl_cert_check = \ gettext_lazy('Use this option if your provider uses self signed ' 'certificates.') - help_http_auth = \ + help_use_http_basic_auth = \ gettext_lazy('If this option is selected, your username and password ' 'will be used for HTTP basic authentication.') - help_secret = \ + help_password = \ gettext_lazy('Leave this field empty if you want to keep your ' 'current password.') - help_ip_url = format_lazy( + help_ip_lookup_url = format_lazy( gettext_lazy('Optional Value. If your {box_name} is not connected ' 'directly to the Internet (i.e. connected to a NAT ' 'router) this URL is used to determine the real ' @@ -58,98 +47,99 @@ class ConfigureForm(forms.Form): 'the client comes from (example: ' 'https://ddns.freedombox.org/ip/).'), box_name=gettext_lazy(cfg.box_name)) - help_user = \ + help_username = \ gettext_lazy('The username that was used when the account was ' 'created.') - provider_choices = (('GnuDIP', gettext_lazy('GnuDIP')), - ('noip', 'noip.com'), ('selfhost', 'selfhost.bz'), - ('freedns', 'freedns.afraid.org'), - ('other', gettext_lazy('other update URL'))) - - enabled = forms.BooleanField(label=gettext_lazy('Enable Dynamic DNS'), - required=False) + provider_choices = (('gnudip', gettext_lazy('GnuDIP')), + ('noip.com', 'noip.com'), ('freedns.afraid.org', + 'freedns.afraid.org'), + ('other', gettext_lazy('Other update URL'))) service_type = forms.ChoiceField(label=gettext_lazy('Service Type'), - help_text=help_services, + help_text=help_service_type, choices=provider_choices) - dynamicdns_server = TrimmedCharField( + server = forms.CharField( label=gettext_lazy('GnuDIP Server Address'), required=False, help_text=help_server, validators=[ validators.RegexValidator(r'^[\w-]{1,63}(\.[\w-]{1,63})*$', gettext_lazy('Invalid server name')) ]) - dynamicdns_update_url = TrimmedCharField(label=gettext_lazy('Update URL'), - required=False, - help_text=help_update_url) + update_url = forms.CharField(label=gettext_lazy('Update URL'), + required=False, help_text=help_update_url) - disable_SSL_cert_check = forms.BooleanField( + disable_ssl_cert_check = forms.BooleanField( label=gettext_lazy('Accept all SSL certificates'), - help_text=help_disable_ssl, required=False) + help_text=help_disable_ssl_cert_check, required=False) use_http_basic_auth = forms.BooleanField( label=gettext_lazy('Use HTTP basic authentication'), - help_text=help_http_auth, required=False) + help_text=help_use_http_basic_auth, required=False) - dynamicdns_domain = TrimmedCharField( + domain = forms.CharField( label=gettext_lazy('Domain Name'), help_text=help_domain, - required=False, validators=[ + required=True, validators=[ validators.RegexValidator(r'^[\w-]{1,63}(\.[\w-]{1,63})*$', gettext_lazy('Invalid domain name')) ]) - dynamicdns_user = TrimmedCharField(label=gettext_lazy('Username'), - required=False, help_text=help_user) + username = forms.CharField(label=gettext_lazy('Username'), required=False, + help_text=help_username) - dynamicdns_secret = TrimmedCharField(label=gettext_lazy('Password'), - widget=forms.PasswordInput(), - required=False, help_text=help_secret) + password = forms.CharField(label=gettext_lazy('Password'), + widget=forms.PasswordInput(), required=False, + help_text=help_password) - showpw = forms.BooleanField(label=gettext_lazy('Show password'), - required=False) + show_password = forms.BooleanField(label=gettext_lazy('Show password'), + required=False) - dynamicdns_ipurl = TrimmedCharField( + ip_lookup_url = forms.CharField( label=gettext_lazy('URL to look up public IP'), required=False, - help_text=help_ip_url, - validators=[validators.URLValidator(schemes=['http', 'https', 'ftp'])]) + help_text=help_ip_lookup_url, + validators=[validators.URLValidator(schemes=['http', 'https'])]) use_ipv6 = forms.BooleanField( label=gettext_lazy('Use IPv6 instead of IPv4'), required=False) def clean(self): - cleaned_data = super(ConfigureForm, self).clean() - dynamicdns_secret = cleaned_data.get('dynamicdns_secret') - dynamicdns_update_url = cleaned_data.get('dynamicdns_update_url') - dynamicdns_user = cleaned_data.get('dynamicdns_user') - dynamicdns_domain = cleaned_data.get('dynamicdns_domain') - dynamicdns_server = cleaned_data.get('dynamicdns_server') + """Further validate and transform field data.""" + cleaned_data = super().clean() + + # Domain name is not case sensitive, but Let's Encrypt + # certificate paths use lower-case domain name. + cleaned_data['domain'] = cleaned_data['domain'].lower() + + update_url = cleaned_data.get('update_url') + password = cleaned_data.get('password') service_type = cleaned_data.get('service_type') - old_dynamicdns_secret = self.initial['dynamicdns_secret'] + old_password = self.initial.get('password') - # Clear the fields which are not in use - if service_type == 'GnuDIP': - dynamicdns_update_url = '' + if not password: + # If password is not set, use old password + cleaned_data['password'] = old_password + + message = _('This field is required.') + if service_type == 'gnudip': + for field_name in ['server', 'username', 'password']: + if not cleaned_data.get(field_name): + self.add_error(field_name, message) else: - dynamicdns_server = '' + if not update_url: + self.add_error('update_url', message) - if cleaned_data.get('enabled'): - # Check if gnudip server or update URL is filled - if not dynamicdns_update_url and not dynamicdns_server: - raise forms.ValidationError( - _('Please provide an update URL or a GnuDIP server ' - 'address')) + param_map = (('username', ''), ('password', ''), + ('ip_lookup_url', '')) + for field_name, param in param_map: + if (update_url and param in update_url + and not cleaned_data.get(field_name)): + self.add_error(field_name, message) - if dynamicdns_server and not dynamicdns_user: - raise forms.ValidationError( - _('Please provide a GnuDIP username')) + if cleaned_data.get('use_http_basic_auth'): + for field_name in ('username', 'password'): + if not cleaned_data.get(field_name): + self.add_error(field_name, message) - if dynamicdns_server and not dynamicdns_domain: - raise forms.ValidationError( - _('Please provide a GnuDIP domain name')) - - # Check if a password was set before or a password is set now - if dynamicdns_server and \ - not dynamicdns_secret and not old_dynamicdns_secret: - raise forms.ValidationError(_('Please provide a password')) + del cleaned_data['show_password'] + return cleaned_data diff --git a/plinth/modules/dynamicdns/gnudip.py b/plinth/modules/dynamicdns/gnudip.py new file mode 100644 index 000000000..7b96eef2e --- /dev/null +++ b/plinth/modules/dynamicdns/gnudip.py @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +GnuDIP client for updating Dynamic DNS records. +""" + +import hashlib +import logging +import socket as socket_module + +BUF_SIZE = 128 +GNUDIP_PORT = 3495 +TIMEOUT = 10 + +logger = logging.getLogger(__name__) + + +def update(server, domain, username, password): + """Update Dynamic DNS record.""" + domain = domain.removeprefix(username + '.') + password_digest = hashlib.md5(password.encode()).hexdigest() + + with socket_module.socket(socket_module.AF_INET, + socket_module.SOCK_STREAM) as socket: + logger.debug('Connecting to %s:%d, timeout %ss', server, GNUDIP_PORT, + TIMEOUT) + socket.settimeout(TIMEOUT) + socket.connect((server, GNUDIP_PORT)) + salt = socket.recv(BUF_SIZE).decode().strip() + salted_digest = password_digest + '.' + salt + final_digest = hashlib.md5(salted_digest.encode()).hexdigest() + + update_request = username + ':' + final_digest + ':' + domain + ':2\n' + socket.sendall(update_request.encode()) + + response = socket.recv(BUF_SIZE).decode().strip() + result, _, new_ip = response.partition(':') + result = (int(result) == 0) + + new_ip = new_ip if result else None + return result, new_ip diff --git a/plinth/modules/dynamicdns/manifest.py b/plinth/modules/dynamicdns/manifest.py index 15151580d..8be41ecda 100644 --- a/plinth/modules/dynamicdns/manifest.py +++ b/plinth/modules/dynamicdns/manifest.py @@ -1,3 +1,10 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -backup = {'config': {'directories': ['/etc/ez-ipupdate/']}} +backup = { + 'config': { + 'directories': ['/etc/ez-ipupdate/'] + }, + 'settings': [ + 'dynamicdns_enable', 'dynamicdns_config', 'dynamicdns_status' + ], +} diff --git a/plinth/modules/dynamicdns/static/dynamicdns.js b/plinth/modules/dynamicdns/static/dynamicdns.js index b37d1b100..7ee0bcbb0 100644 --- a/plinth/modules/dynamicdns/static/dynamicdns.js +++ b/plinth/modules/dynamicdns/static/dynamicdns.js @@ -23,123 +23,57 @@ */ (function($) { - var SELFHOST = 'https://carol.selfhost.de/update?username=&' + - 'password=&myip='; - var NOIP = 'http://dynupdate.no-ip.com/nic/update?hostname=' + - '&myip='; + var NOIP = 'https://:@dynupdate.no-ip.com/nic/update?' + + 'hostname='; var FREEDNS = 'https://freedns.afraid.org/dynamic/update.php?' + '_YOURAPIKEYHERE_'; - // Hide all form fields - $('.form-group').hide(); - // Show the enable checkbox - $('#id_enabled').closest('.form-group').show(); - if ($('#id_enabled').prop('checked')) { - // Show all form fields - show_all(); - // Set the selectbox to the last configured value - select_service(); - } - - $('#id_enabled').change(function() { - if ($('#id_enabled').prop('checked')) { - show_all(); - if ($("#id_service_type option:selected").text() == "GnuDIP") { - set_gnudip_mode(); - } else { - set_update_url_mode(); - } - } else { - $('.form-group').hide(); - $('#id_enabled').closest('.form-group').show(); - } - }); - $('#id_service_type').change(function() { - var service_type = $("#id_service_type option:selected").text(); - if (service_type == "GnuDIP") { - set_gnudip_mode(); - } else { - set_update_url_mode(); - if (service_type == "noip.com") { - $('#id_dynamicdns_update_url').val(NOIP); - $('#id_use_http_basic_auth').prop('checked', true); - } else { - $('#id_use_http_basic_auth').prop('checked', false); - } - if (service_type == "selfhost.bz") { - $('#id_dynamicdns_update_url').val(SELFHOST); - } - if (service_type == "freedns.afraid.org") { - $('#id_dynamicdns_update_url').val(FREEDNS); - } - if (service_type == "other update URL") { - $('#id_dynamicdns_update_url').val(''); - } + set_mode(); + + var service_type = $("#id_service_type").val(); + if (service_type == "noip.com") { + $('#id_update_url').val(NOIP); + } else if (service_type == "freedns.afraid.org") { + $('#id_update_url').val(FREEDNS); + } else { // GnuDIP and other + $('#id_update_url').val(''); } }); - $('#id_showpw').change(function() { - // Changing type attribute from password to text is prevented by most - // browsers make a new form field works for me - if ($('#id_showpw').prop('checked')) { - $('#id_dynamicdns_secret').replaceWith( - $('#id_dynamicdns_secret').clone().attr( - 'type', 'text')); + $('#id_show_password').change(function() { + if ($('#id_show_password').prop('checked')) { + $('#id_password').prop('type', 'text'); } else { - $('#id_dynamicdns_secret').replaceWith( - $('#id_dynamicdns_secret').clone().attr( - 'type', 'password')); + $('#id_password').prop('type', 'password'); } }); - function select_service() { - var update_url = $("#id_dynamicdns_update_url").val(); - if ($("#id_dynamicdns_server").val().length == 0) { - set_update_url_mode(); - if (update_url == NOIP) { - $("#id_service_type").val("noip"); - } else if (update_url == SELFHOST) { - $("#id_service_type").val("selfhost"); - } else if (update_url == FREEDNS) { - $("#id_service_type").val("freedns"); - } else { - $("#id_service_type").val("other"); - } - } else { - $("#id_service_type").val("GnuDIP"); + function set_mode() { + var service_type = $("#id_service_type").val(); + if (service_type == "gnudip") { set_gnudip_mode(); + } else { + set_update_url_mode(); } } function set_gnudip_mode() { - $('#id_dynamicdns_update_url').closest('.form-group').hide(); - $('#id_disable_SSL_cert_check').closest('.form-group').hide(); + $('.form-group').show(); + $('#id_update_url').closest('.form-group').hide(); + $('#id_disable_ssl_cert_check').closest('.form-group').hide(); $('#id_use_http_basic_auth').closest('.form-group').hide(); $('#id_use_ipv6').closest('.form-group').hide(); - $('#id_dynamicdns_server').closest('.form-group').show(); + $('#id_server').closest('.form-group').show(); } function set_update_url_mode() { - $('#id_dynamicdns_update_url').closest('.form-group').show(); - $('#id_disable_SSL_cert_check').closest('.form-group').show(); + $('#id_update_url').closest('.form-group').show(); + $('#id_disable_ssl_cert_check').closest('.form-group').show(); $('#id_use_http_basic_auth').closest('.form-group').show(); $('#id_use_ipv6').closest('.form-group').show(); - $('#id_dynamicdns_server').closest('.form-group').hide(); + $('#id_server').closest('.form-group').hide(); } - function show_all() { - $('#id_enabled').closest('.form-group').show(); - $('#id_service_type').closest('.form-group').show(); - $('#id_dynamicdns_server').closest('.form-group').show(); - $('#id_dynamicdns_update_url').closest('.form-group').show(); - $('#id_disable_SSL_cert_check').closest('.form-group').show(); - $('#id_use_http_basic_auth').closest('.form-group').show(); - $('#id_dynamicdns_domain').closest('.form-group').show(); - $('#id_dynamicdns_user').closest('.form-group').show(); - $('#id_dynamicdns_secret').closest('.form-group').show(); - $('#id_showpw').closest('.form-group').show(); - $('#id_dynamicdns_ipurl').closest('.form-group').show(); - $('#id_use_ipv6').closest('.form-group').show(); - } + set_mode(); })(jQuery); diff --git a/plinth/modules/dynamicdns/templates/dynamicdns.html b/plinth/modules/dynamicdns/templates/dynamicdns.html index 0584be5cc..169420eb2 100644 --- a/plinth/modules/dynamicdns/templates/dynamicdns.html +++ b/plinth/modules/dynamicdns/templates/dynamicdns.html @@ -3,28 +3,56 @@ # SPDX-License-Identifier: AGPL-3.0-or-later {% endcomment %} +{% load bootstrap %} {% load i18n %} -{% load plinth_extras %} +{% load static %} -{% block configuration %} - -

- {% blocktrans trimmed %} - If you are looking for a free dynamic DNS account, you may find - a free GnuDIP service at ddns.freedombox.org or you may find - free update URL based services at - - freedns.afraid.org. - {% endblocktrans %} -

- -

- {% blocktrans trimmed %} - If your {{ box_name }} is connected behind a NAT router, don't forget - to add port forwarding for standard ports, including TCP port 80 (HTTP) - and TCP port 443 (HTTPS). - {% endblocktrans %} -

+{% block extra_content %} +

{% trans "Status" %}

+ {% if domains_status %} +
+ + + + + + + + + + + {% for domain in domains_status.values %} + + + + + + + {% endfor %} + +
{% trans "Domain" %}{% trans "Last update" %}{% trans "Result" %}{% trans "IP Address" %}
{{ domain.domain }}{{ domain.timestamp|timesince }} + {% if domain.result %} + + {% trans "Success" %} + + {% else %} + + {% trans "Failed" %} + + {% endif %} + {% if domain.error_message %} + ({{ domain.error_message }}) + {% elif domain.error_code %} + ({{ domain.error_code }}) + {% endif %} + {{ domain.ip_address|default_if_none:'-' }}
+
+ {% else %} + {% trans "No status available." %} + {% endif %} +{% endblock %} + +{% block page_js %} + {% endblock %} diff --git a/plinth/modules/dynamicdns/templates/dynamicdns_configure.html b/plinth/modules/dynamicdns/templates/dynamicdns_configure.html deleted file mode 100644 index 2edab8afc..000000000 --- a/plinth/modules/dynamicdns/templates/dynamicdns_configure.html +++ /dev/null @@ -1,31 +0,0 @@ -{% extends "app.html" %} -{% comment %} -# SPDX-License-Identifier: AGPL-3.0-or-later -{% endcomment %} - -{% load bootstrap %} -{% load i18n %} -{% load static %} - -{% block configuration %} -
- {% csrf_token %} - - - - {{ form|bootstrap }} - - -
-{% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/dynamicdns/templates/dynamicdns_status.html b/plinth/modules/dynamicdns/templates/dynamicdns_status.html deleted file mode 100644 index f2560ed1f..000000000 --- a/plinth/modules/dynamicdns/templates/dynamicdns_status.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends "app.html" %} -{% comment %} -# SPDX-License-Identifier: AGPL-3.0-or-later -{% endcomment %} - -{% load i18n %} - -{% block configuration %} -

{% trans "NAT type" %}

- -

- {% if nat_unchecked %} - {% blocktrans trimmed %} - NAT type was not detected yet. If you do not provide an "IP Check - URL", we will not detect a NAT type. - {% endblocktrans %} - {% else %} - {% if no_nat %} - {% trans "Direct connection to the Internet." %} - {% else %} - {% blocktrans trimmed %} - Behind NAT. This means that Dynamic DNS service will poll - the "URL to look up public IP" for changes (the "URL to look - up public IP" entry is needed for this, otherwise IP changes - will not be detected). In case the WAN IP changes, it may - take up to {{ timer }} minutes until your DNS entry is - updated. - {% endblocktrans %} - {% endif %} - {% endif %} -

- -

{% trans "Last update" %}

- -

{{ last_update }}

- -{% endblock %} diff --git a/plinth/modules/dynamicdns/tests/test_functional.py b/plinth/modules/dynamicdns/tests/test_functional.py index 8f2655532..4f6af00a2 100644 --- a/plinth/modules/dynamicdns/tests/test_functional.py +++ b/plinth/modules/dynamicdns/tests/test_functional.py @@ -3,8 +3,6 @@ Functional, browser based tests for dynamicdns app. """ -import time - import pytest from plinth.tests import functional @@ -14,6 +12,58 @@ pytestmark = [ pytest.mark.dynamicdns ] +_configs = { + 'gnudip1': { + 'service_type': 'gnudip', + 'server': 'localhost', + 'domain': 'freedombox.example.com', + 'username': 'tester', + 'password': 'testingtesting', + 'ip_lookup_url': 'https://ddns.freedombox.org/ip/', + }, + 'gnudip2': { + 'service_type': 'gnudip', + 'server': '127.0.0.1', + 'domain': 'freedombox2.example.com', + 'username': 'tester2', + 'password': 'testingtesting2', + 'ip_lookup_url': 'https://ddns2.freedombox.org/ip/', + }, + 'noip.com': { + 'service_type': 'noip.com', + 'update_url': 'https://localhost/update3/', + 'disable_ssl_cert_check': True, + 'use_http_basic_auth': True, + 'domain': 'freedombox3.example.com', + 'username': 'tester3', + 'password': 'testingtesting3', + 'ip_lookup_url': 'https://ddns3.freedombox.org/ip/', + 'use_ipv6': True, + }, + 'freedns.afraid.org': { + 'service_type': 'freedns.afraid.org', + 'update_url': 'https://localhost/update5/', + 'disable_ssl_cert_check': False, + 'use_http_basic_auth': False, + 'domain': 'freedombox5.example.com', + 'username': '', + 'password': '', + 'ip_lookup_url': '', + 'use_ipv6': False, + }, + 'other': { + 'service_type': 'other', + 'update_url': 'https://localhost/update6/', + 'disable_ssl_cert_check': False, + 'use_http_basic_auth': False, + 'domain': 'freedombox6.example.com', + 'username': 'tester6', + 'password': 'testingtesting6', + 'ip_lookup_url': 'https://ddns6.freedombox.org/ip/', + 'use_ipv6': False, + }, +} + @pytest.fixture(scope='module', autouse=True) def fixture_background(session_browser): @@ -21,104 +71,70 @@ def fixture_background(session_browser): functional.login(session_browser) -def test_capitalized_domain_name(session_browser): - """Test handling of capitalized domain name.""" - _configure(session_browser) - _configure_domain(session_browser, 'FreedomBox.example.com') - assert _get_domain(session_browser) == 'freedombox.example.com' +class TestDynamicDNSApp(functional.BaseAppTests): + app_name = 'dynamicdns' + has_service = False + has_web = False + check_diagnostics = False + + @staticmethod + def test_capitalized_domain_name(session_browser): + """Test handling of capitalized domain name.""" + _configure(session_browser, _configs['gnudip1']) + _configure(session_browser, {'domain': 'FreedomBox.example.com'}) + _assert_has_config(session_browser, + {'domain': 'freedombox.example.com'}) + + @staticmethod + @pytest.mark.parametrize('config_name', list(_configs.keys())) + def test_various_form_values(session_browser, config_name): + """Test feeding various values and check that they are saved.""" + _configure(session_browser, _configs[config_name]) + _assert_has_config(session_browser, _configs[config_name]) + + @staticmethod + @pytest.mark.backups + def test_backup_restore(session_browser): + """Test backup and restore of configuration.""" + _configure(session_browser, _configs['gnudip1']) + functional.backup_create(session_browser, 'dynamicdns', + 'test_dynamicdns') + + _configure(session_browser, _configs['gnudip2']) + functional.backup_restore(session_browser, 'dynamicdns', + 'test_dynamicdns') + + _assert_has_config(session_browser, _configs['gnudip1']) -def test_backup_and_restore(session_browser): - """Test backup and restore of configuration.""" - _configure(session_browser) - functional.backup_create(session_browser, 'dynamicdns', 'test_dynamicdns') - - _change_config(session_browser) - functional.backup_restore(session_browser, 'dynamicdns', 'test_dynamicdns') - - assert _has_original_config(session_browser) - - -# TODO Scenario: Configure GnuDIP service -# TODO Scenario: Configure noip.com service -# TODO Scenario: Configure selfhost.bz service -# TODO Scenario: Configure freedns.afraid.org service -# TODO Scenario: Configure other update URL service - - -def _configure(browser): +def _configure(browser, config): functional.nav_to_module(browser, 'dynamicdns') - browser.links.find_by_href( - '/plinth/sys/dynamicdns/configure/').first.click() - browser.find_by_id('id_enabled').check() - browser.find_by_id('id_service_type').select('GnuDIP') - browser.find_by_id('id_dynamicdns_server').fill('example.com') - browser.find_by_id('id_dynamicdns_domain').fill('freedombox.example.com') - browser.find_by_id('id_dynamicdns_user').fill('tester') - browser.find_by_id('id_dynamicdns_secret').fill('testingtesting') - browser.find_by_id('id_dynamicdns_ipurl').fill( - 'https://ddns.freedombox.org/ip/') - functional.submit(browser) + for key, value in config.items(): + if key == 'service_type': + browser.find_by_id(f'id_{key}').select(value) + elif isinstance(value, bool): + if value: + browser.find_by_id(f'id_{key}').check() + else: + browser.find_by_id(f'id_{key}').uncheck() + else: + browser.find_by_id(f'id_{key}').fill(value) - # After a domain name change, Let's Encrypt will restart the web - # server and could cause a connection failure. - time.sleep(1) - functional.eventually(functional.nav_to_module, [browser, 'dynamicdns']) + functional.submit(browser, form_class='form-configuration') -def _has_original_config(browser): +def _assert_has_config(browser, config): functional.nav_to_module(browser, 'dynamicdns') - browser.links.find_by_href( - '/plinth/sys/dynamicdns/configure/').first.click() - enabled = browser.find_by_id('id_enabled').value - service_type = browser.find_by_id('id_service_type').value - server = browser.find_by_id('id_dynamicdns_server').value - domain = browser.find_by_id('id_dynamicdns_domain').value - user = browser.find_by_id('id_dynamicdns_user').value - ipurl = browser.find_by_id('id_dynamicdns_ipurl').value - if enabled and service_type == 'GnuDIP' and server == 'example.com' \ - and domain == 'freedombox.example.com' and user == 'tester' \ - and ipurl == 'https://ddns.freedombox.org/ip/': - return True - else: - return False + for key, value in config.items(): + if key == 'password': + continue - -def _change_config(browser): - functional.nav_to_module(browser, 'dynamicdns') - browser.links.find_by_href( - '/plinth/sys/dynamicdns/configure/').first.click() - browser.find_by_id('id_enabled').check() - browser.find_by_id('id_service_type').select('GnuDIP') - browser.find_by_id('id_dynamicdns_server').fill('2.example.com') - browser.find_by_id('id_dynamicdns_domain').fill('freedombox2.example.com') - browser.find_by_id('id_dynamicdns_user').fill('tester2') - browser.find_by_id('id_dynamicdns_secret').fill('testingtesting2') - browser.find_by_id('id_dynamicdns_ipurl').fill( - 'https://ddns2.freedombox.org/ip/') - functional.submit(browser) - - # After a domain name change, Let's Encrypt will restart the web - # server and could cause a connection failure. - time.sleep(1) - functional.eventually(functional.nav_to_module, [browser, 'dynamicdns']) - - -def _configure_domain(browser, domain): - functional.nav_to_module(browser, 'dynamicdns') - browser.links.find_by_href( - '/plinth/sys/dynamicdns/configure/').first.click() - browser.find_by_id('id_dynamicdns_domain').fill(domain) - functional.submit(browser) - - # After a domain name change, Let's Encrypt will restart the web - # server and could cause a connection failure. - time.sleep(1) - functional.eventually(functional.nav_to_module, [browser, 'dynamicdns']) + if isinstance(value, bool): + assert browser.find_by_id(f'id_{key}').checked == value + else: + assert value == browser.find_by_id(f'id_{key}').value def _get_domain(browser): functional.nav_to_module(browser, 'dynamicdns') - browser.links.find_by_href( - '/plinth/sys/dynamicdns/configure/').first.click() - return browser.find_by_id('id_dynamicdns_domain').value + return browser.find_by_id('id_domain').value diff --git a/plinth/modules/dynamicdns/urls.py b/plinth/modules/dynamicdns/urls.py index 5a3e0aaf8..af9f805d6 100644 --- a/plinth/modules/dynamicdns/urls.py +++ b/plinth/modules/dynamicdns/urls.py @@ -8,8 +8,6 @@ from django.urls import re_path from . import views urlpatterns = [ - re_path(r'^sys/dynamicdns/$', views.index, name='index'), - re_path(r'^sys/dynamicdns/configure/$', views.configure, name='configure'), - re_path(r'^sys/dynamicdns/statuspage/$', views.statuspage, - name='statuspage'), + re_path(r'^sys/dynamicdns/$', views.DynamicDNSAppView.as_view(), + name='index'), ] diff --git a/plinth/modules/dynamicdns/views.py b/plinth/modules/dynamicdns/views.py index e0b41a40d..9d0d0034b 100644 --- a/plinth/modules/dynamicdns/views.py +++ b/plinth/modules/dynamicdns/views.py @@ -3,174 +3,81 @@ Views for the dynamicsdns module. """ -import logging +import datetime from django.contrib import messages -from django.template.response import TemplateResponse -from django.urls import reverse_lazy -from django.utils.translation import gettext as _ -from django.utils.translation import gettext_lazy +from django.utils.translation import gettext_lazy as _ -from plinth import actions +from plinth import views from plinth.modules import dynamicdns -from plinth.signals import domain_added, domain_removed from .forms import ConfigureForm -logger = logging.getLogger(__name__) -EMPTYSTRING = 'none' +class DynamicDNSAppView(views.AppView): + """Serve configuration page.""" + app_id = 'dynamicdns' + template_name = 'dynamicdns.html' + form_class = ConfigureForm -subsubmenu = [{ - 'url': reverse_lazy('dynamicdns:index'), - 'text': gettext_lazy('About') -}, { - 'url': reverse_lazy('dynamicdns:configure'), - 'text': gettext_lazy('Configure') -}, { - 'url': reverse_lazy('dynamicdns:statuspage'), - 'text': gettext_lazy('Status') -}] + _error_messages = { + 'timeout': _('Connection timed out'), + 'gaierror': _('Could not find server'), + 'TimeoutError': _('Connection timed out'), + 'ConnectionRefusedError': _('Server refused connection'), + 'ValueError': _('Already up-to-date') + } + def get_context_data(self, **kwargs): + """Return the context data for rendering the template view.""" + context = super().get_context_data(**kwargs) + status = dynamicdns.get_status() + config = dynamicdns.get_config() + domains_status = {} + for domain_name, domain in status['domains'].items(): + if domain_name not in config['domains']: + continue -def index(request): - """Serve Dynamic DNS page.""" - return TemplateResponse( - request, 'dynamicdns.html', { - 'app_info': dynamicdns.app.info, - 'title': dynamicdns.app.info.name, - 'subsubmenu': subsubmenu - }) + # Create naive datetime object in local timezone + domain['timestamp'] = datetime.datetime.fromtimestamp( + domain['timestamp']) + domains_status[domain_name] = domain + if domain['error_code'] in self._error_messages: + domain['error_message'] = self._error_messages[ + domain['error_code']] + context['domains_status'] = domains_status + return context -def configure(request): - """Serve the configuration form.""" - status = dynamicdns.get_status() - form = None + def get_initial(self): + """Get the current values for the form.""" + initial = super().get_initial() + domains = dynamicdns.get_config()['domains'] + domain = list(domains.values())[0] if domains else {} + initial.update(domain) + return domain - if request.method == 'POST': - form = ConfigureForm(request.POST, initial=status) - if form.is_valid(): - _apply_changes(request, status, form.cleaned_data) - status = dynamicdns.get_status() - form = ConfigureForm(initial=status) - else: - form = ConfigureForm(initial=status) + def form_valid(self, form): + """Apply the changes submitted in the form.""" + old_status = form.initial + new_status = form.cleaned_data - return TemplateResponse( - request, 'dynamicdns_configure.html', { - 'title': _('Configure Dynamic DNS'), - 'app_info': dynamicdns.app.info, - 'form': form, - 'subsubmenu': subsubmenu - }) + if old_status != new_status: + config = dynamicdns.get_config() + try: + del config['domains'][old_status['domain']] + except KeyError: + pass + config['domains'][new_status['domain']] = new_status + dynamicdns.set_config(config) + if old_status.get('domain'): + dynamicdns.notify_domain_removed(old_status['domain']) -def statuspage(request): - """Serve the status page.""" - check_nat = _run(['get-nat']) - last_update = _run(['get-last-success']) + dynamicdns.notify_domain_added(new_status['domain']) + messages.success(self.request, _('Configuration updated')) - no_nat = check_nat.strip() == 'no' - nat_unchecked = check_nat.strip() == 'unknown' - timer = _run(['get-timer']) + # Perform an immediate update, even when configuration is not changed. + dynamicdns.update_dns(None) - if no_nat: - logger.info('Not behind a NAT') - - if nat_unchecked: - logger.info('Did not check if behind a NAT') - - return TemplateResponse( - request, 'dynamicdns_status.html', { - 'title': _('Dynamic DNS Status'), - 'app_info': dynamicdns.app.info, - 'no_nat': no_nat, - 'nat_unchecked': nat_unchecked, - 'timer': timer, - 'last_update': last_update, - 'subsubmenu': subsubmenu - }) - - -def _apply_changes(request, old_status, new_status): - """Apply the changes to Dynamic DNS client.""" - logger.info('New status is - %s', new_status) - logger.info('Old status was - %s', old_status) - - if new_status['dynamicdns_secret'] == '': - new_status['dynamicdns_secret'] = old_status['dynamicdns_secret'] - - if new_status['dynamicdns_ipurl'] == '': - new_status['dynamicdns_ipurl'] = EMPTYSTRING - - if new_status['dynamicdns_update_url'] == '': - new_status['dynamicdns_update_url'] = EMPTYSTRING - - if new_status['dynamicdns_server'] == '': - new_status['dynamicdns_server'] = EMPTYSTRING - - if new_status['service_type'] == 'GnuDIP': - new_status['dynamicdns_update_url'] = EMPTYSTRING - else: - new_status['dynamicdns_server'] = EMPTYSTRING - - if old_status != new_status: - disable_ssl_check = "disabled" - use_http_basic_auth = "disabled" - use_ipv6 = "disabled" - - if new_status['disable_SSL_cert_check']: - disable_ssl_check = "enabled" - - if new_status['use_http_basic_auth']: - use_http_basic_auth = "enabled" - - if new_status.get('use_ipv6'): - use_ipv6 = "enabled" - - # Domain name is not case sensitive, but Let's Encrypt - # certificate paths use lower-case domain name. - new_domain_name = new_status['dynamicdns_domain'].lower() - - _run([ - 'configure', - '-s', - new_status['dynamicdns_server'], - '-d', - new_domain_name, - '-u', - new_status['dynamicdns_user'], - '-p', - '-I', - new_status['dynamicdns_ipurl'], - '-U', - new_status['dynamicdns_update_url'], - '-c', - disable_ssl_check, - '-b', - use_http_basic_auth, - '-6', - use_ipv6, - ], input=new_status['dynamicdns_secret'].encode()) - - if old_status['enabled']: - domain_removed.send_robust(sender='dynamicdns', - domain_type='domain-type-dynamic', - name=old_status['dynamicdns_domain']) - _run(['stop']) - - if new_status['enabled']: - domain_added.send_robust(sender='dynamicdns', - domain_type='domain-type-dynamic', - name=new_domain_name, services='__all__') - _run(['start']) - - messages.success(request, _('Configuration updated')) - else: - logger.info('Nothing changed') - - -def _run(arguments, input=None): - """Run a given command and raise exception if there was an error.""" - return actions.superuser_run('dynamicdns', arguments, input=input) + return super().form_valid(form) diff --git a/plinth/modules/gitweb/__init__.py b/plinth/modules/gitweb/__init__.py index bd0f6bf4a..e513414a0 100644 --- a/plinth/modules/gitweb/__init__.py +++ b/plinth/modules/gitweb/__init__.py @@ -153,6 +153,7 @@ class GitwebBackupRestore(BackupRestore): def restore_post(self, packet): """Update access after restoration of backups.""" + super().restore_post(packet) app.update_service_access() diff --git a/plinth/modules/minetest/views.py b/plinth/modules/minetest/views.py index 53b82e98c..8e9757933 100644 --- a/plinth/modules/minetest/views.py +++ b/plinth/modules/minetest/views.py @@ -37,6 +37,7 @@ class MinetestAppView(AppView): # pylint: disable=too-many-ancestors """Change the configurations of Minetest service.""" data = form.cleaned_data old_config = get_configuration() + updated = False if old_config['max_players'] != data['max_players'] \ and data['max_players'] is not None: @@ -44,26 +45,27 @@ class MinetestAppView(AppView): # pylint: disable=too-many-ancestors 'minetest', ['configure', '--max_players', str(data['max_players'])]) - messages.success(self.request, - _('Maximum players configuration updated')) + updated = True if old_config['creative_mode'] != data['creative_mode']: value = 'true' if data['creative_mode'] else 'false' actions.superuser_run('minetest', ['configure', '--creative_mode', value]) - messages.success(self.request, - _('Creative mode configuration updated')) + updated = True if old_config['enable_pvp'] != data['enable_pvp']: value = 'true' if data['enable_pvp'] else 'false' actions.superuser_run('minetest', ['configure', '--enable_pvp', value]) - messages.success(self.request, _('PVP configuration updated')) + updated = True if old_config['enable_damage'] != data['enable_damage']: value = 'true' if data['enable_damage'] else 'false' actions.superuser_run('minetest', ['configure', '--enable_damage', value]) - messages.success(self.request, _('Damage configuration updated')) + updated = True + + if updated: + messages.success(self.request, _('Configuration updated')) return super().form_valid(form) diff --git a/plinth/modules/samba/__init__.py b/plinth/modules/samba/__init__.py index b0baee393..c40c984ab 100644 --- a/plinth/modules/samba/__init__.py +++ b/plinth/modules/samba/__init__.py @@ -107,10 +107,12 @@ class SambaBackupRestore(BackupRestore): def backup_pre(self, packet): """Save registry share configuration.""" + super().backup_pre(packet) actions.superuser_run('samba', ['dump-shares']) def restore_post(self, packet): """Restore configuration.""" + super().restore_post(packet) actions.superuser_run('samba', ['setup']) actions.superuser_run('samba', ['restore-shares']) diff --git a/plinth/modules/ttrss/__init__.py b/plinth/modules/ttrss/__init__.py index fb90ad392..be2926be4 100644 --- a/plinth/modules/ttrss/__init__.py +++ b/plinth/modules/ttrss/__init__.py @@ -112,10 +112,12 @@ class TTRSSBackupRestore(BackupRestore): def backup_pre(self, packet): """Save database contents.""" + super().backup_pre(packet) actions.superuser_run('ttrss', ['dump-database']) def restore_post(self, packet): """Restore database contents.""" + super().restore_post(packet) actions.superuser_run('ttrss', ['restore-database']) diff --git a/plinth/modules/ttrss/data/etc/apache2/conf-available/tt-rss-plinth.conf b/plinth/modules/ttrss/data/etc/apache2/conf-available/tt-rss-plinth.conf index 8ec6b983d..b09d63c68 100644 --- a/plinth/modules/ttrss/data/etc/apache2/conf-available/tt-rss-plinth.conf +++ b/plinth/modules/ttrss/data/etc/apache2/conf-available/tt-rss-plinth.conf @@ -21,6 +21,6 @@ Alias /tt-rss-app /usr/share/tt-rss/www Include includes/freedombox-auth-ldap.conf - Require valid-user - # TODO Restrict access to `feed-reader` group + Require ldap-group cn=admin,ou=groups,dc=thisbox + Require ldap-group cn=feed-reader,ou=groups,dc=thisbox diff --git a/plinth/modules/users/__init__.py b/plinth/modules/users/__init__.py index 7a1dd68b9..b90b22251 100644 --- a/plinth/modules/users/__init__.py +++ b/plinth/modules/users/__init__.py @@ -26,7 +26,7 @@ first_boot_steps = [ ] _description = [ - _('Create and managed user accounts. These accounts serve as centralized ' + _('Create and manage user accounts. These accounts serve as centralized ' 'authentication mechanism for most apps. Some apps further require a ' 'user account to be part of a group to authorize the user to access the ' 'app.'), diff --git a/plinth/modules/wordpress/__init__.py b/plinth/modules/wordpress/__init__.py index f4061acc8..54571145a 100644 --- a/plinth/modules/wordpress/__init__.py +++ b/plinth/modules/wordpress/__init__.py @@ -113,10 +113,12 @@ class WordPressBackupRestore(BackupRestore): def backup_pre(self, packet): """Save database contents.""" + super().backup_pre(packet) actions.superuser_run('wordpress', ['dump-database']) def restore_post(self, packet): """Restore database contents.""" + super().restore_post(packet) actions.superuser_run('wordpress', ['restore-database']) diff --git a/plinth/modules/zoph/__init__.py b/plinth/modules/zoph/__init__.py index c1486b05e..45991df18 100644 --- a/plinth/modules/zoph/__init__.py +++ b/plinth/modules/zoph/__init__.py @@ -126,8 +126,10 @@ class ZophBackupRestore(BackupRestore): def backup_pre(self, packet): """Save database contents.""" + super().backup_pre(packet) actions.superuser_run('zoph', ['dump-database']) def restore_post(self, packet): """Restore database contents.""" + super().restore_post(packet) actions.superuser_run('zoph', ['restore-database']) diff --git a/plinth/tests/functional/install.sh b/plinth/tests/functional/install.sh index ab8bc93ad..6b8932627 100755 --- a/plinth/tests/functional/install.sh +++ b/plinth/tests/functional/install.sh @@ -8,7 +8,7 @@ sudo apt-get install -yq --no-install-recommends \ python3-pip python3-wheel firefox-esr git smbclient\ xvfb -pip3 install splinter pytest-splinter pytest-xvfb +pip3 install splinter pytest-splinter pytest-xvfb pytest-reporter-html1 echo "Installing geckodriver" ( diff --git a/plinth/tests/test_app.py b/plinth/tests/test_app.py index a7603622f..3ce28e5fc 100644 --- a/plinth/tests/test_app.py +++ b/plinth/tests/test_app.py @@ -9,7 +9,7 @@ from unittest.mock import Mock, call, patch import pytest -from plinth.app import (App, Component, FollowerComponent, Info, +from plinth.app import (App, Component, EnableState, FollowerComponent, Info, LeaderComponent, apps_init) # pylint: disable=protected-access @@ -427,6 +427,28 @@ def test_info_clients_validation(): Info('test-app', 3, clients=clients) +def test_enable_state_key(app_with_components): + """Test getting the storage key for enable state component.""" + component = EnableState('enable-state-1') + with pytest.raises(KeyError): + assert component.key + + app_with_components.add(component) + assert component.key == app_with_components.app_id + '_enable' + + +@pytest.mark.django_db +def test_enable_state_enable_disable(app_with_components): + """Test enabling/disabling enable state component.""" + component = EnableState('enable-state-1') + app_with_components.add(component) + assert not component.is_enabled() + component.enable() + assert component.is_enabled() + component.disable() + assert not component.is_enabled() + + class ModuleTest1: """A test module with an app."""