freedombox Debian release 23.14

-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmTIYzwWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICC8iEACchsBfp21W+EGiwRJwFjzU0yY+
 ETiTBdUm2V+g50YPc4MnwmnlB6mLSvzj363E2pz+NNpnpYxsa8y0le4dsFq4BF7w
 vBN7MwC14bMbacUsGUC3hACwkt3X1p0AU2Jb6Mhc6nr5O6l/LBenIv6AAQs2V4kX
 6NsdOgYs01vPht5TaLq+Y79h98gRh67DNgjltjX8gUlFNIZJgZIeJ3afS2AHe11U
 V19JqdC4Zla3U9XfHVZSuqqw8sF5vNKn9nD0cUAvQleeHtFTvBxPcMwyAAo93rtv
 y0DCIY9c6kEqK7oiOVW6+CyCWTMwEKo07xrdHQzSofroxMJHogo3/vkbKN6aIjNt
 LzYpronpBbLwi9wqb7jj3J7fIULVE0tJyYFQFT27LegExNbdqXd00ftCDXzoj2Rd
 V73ZdAwHc3SfDrrYTGy7QVv3p8R0olApNN9SmI7s9JhdSwyRaKAMLiuvrgW0XeJT
 pBs31twC5JHrjJn0+SLLXGNkz8r7U8QTzbfnerNiwG5MEDF2rszNTFr6CYFYStLD
 OhlYAznjqQTirmBgbp2RelPqE/dyX7U7X/XvHqYoPSo+yOP4YD597V0l+rAvOWX1
 QuX4Xb80fEW3qDXR0DOHSwT9fWOdK7lBxfxP+3cQR8OQWUnWo5JyhDIt6I2KGxzH
 ZXLwCxekcQRIW4fCLw==
 =Jx2D
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmTLfU8WHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICOyQD/9AEkkWBJJSbxbeEPHQihQJ4PfP
 AHc72dAtbcO3A6GLPg2j+KzJYplfopKt92H7v/gZuVQJA/GEEIjH5scbRBbF/pmO
 /VtN3KyHBxaMiFdrt/eObwp01YZ/Ulozet3T4tEde9nVR5ejZTIUS+Rd6Hz/NjlS
 6h5SiEXOkJOPgnzg6DXvMOb/u9BbzQ4HrVXO593I6fdwEZOlvuNo6SI/FwdtcRFf
 Lz/0qqrpWFeHIKrpyF6WHPMBn2hEhG9bBlDfYD3XXzc7RuYQ4bojVz1878o9XEjO
 eHcSKoRE+hh2Ojj192BIPej4yuILfSIi7A/9cgnhXYvfysCPkMIBRf2cn/TOYGxa
 3zysNtcuaMLhAIUuAAMxMn69OcK7aBFPuDKhFhA4qHYxTJLJ6KSz00xxuAL6L1+2
 NfVNjoAc9cxZQlJDHtCsT2Sct+9Mez4LCWx/lCqaPLXS7rRbVibe0QNtBL1sk1Te
 Cf9JhiEMfiFWuqZJWuya9zLLBWXNrFTLgWP5Iqc8HtBjr07vh9NG8SBl9Ryh7WUs
 XQIzKmzu7rHZOm5507Tdx2ymXc8r0YRp0bja9HbIEUSOvu0uL6bfqeCvBhIgId+l
 DPJyYpl991KljQ0O+8cY8QDvCcX6vjkSSMQj/v4nIdW46vNhwbxu7O4OwxwPUjt8
 KI5PSlzlIZuI32/u1g==
 =dhE2
 -----END PGP SIGNATURE-----

Merge tag 'v23.14' into debian/bookworm-backports

freedombox Debian release 23.14

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
James Valleroy 2023-08-03 06:11:23 -04:00
commit 3aac407176
107 changed files with 6276 additions and 3031 deletions

View File

@ -18,6 +18,16 @@ code-quality:
script:
- python3 -m flake8 container plinth actions/*
static-type-check:
stage: test
allow_failure: true
needs: []
before_script:
- apt-get update
- apt-get install -y mypy
script:
- mypy --ignore-missing-imports .
unit-tests:
stage: test
needs: []

View File

@ -167,6 +167,16 @@ Note: This development container has automatic upgrades disabled by default.
host$ sudo find -iname '__pycache__' | sudo xargs rm -rf {} ;
```
#### Using Containers On 64-bit Raspberry Pi
The container script can be used (as described above) on a Raspberry Pi 3 or 4
running a 64-bit operating system.
If you are running Raspberry Pi OS 64-bit, you will first need to enable Network
Manager. To do this, run `sudo raspi-config`, go to "5 Advanced Options", and
then to "A4 Network Config". Select "NetworkManager", and then reboot as
prompted.
[back to index](#hacking)
[DebianNetworkManager]: https://wiki.debian.org/NetworkManager#Wired_Networks_are_Unmanaged

View File

@ -131,7 +131,7 @@ from urllib.request import urlopen
URLS_AMD64 = {
'stable': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
'amd64/bullseye/freedombox-bullseye-free_all-amd64.img.xz',
'amd64/bookworm/freedombox-bookworm_all-amd64.img.xz',
'testing': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
'amd64/testing/freedombox-testing_dev_all-amd64.img.xz',
'unstable': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
@ -140,7 +140,7 @@ URLS_AMD64 = {
URLS_ARM64 = {
'stable': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
'arm64/bullseye/freedombox-bullseye-free_all-arm64.img.xz',
'arm64/bookworm/freedombox-bookworm_all-arm64.img.xz',
'testing': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
'arm64/testing/freedombox-testing_dev_all-arm64.img.xz',
'unstable': 'https://ftp.freedombox.org/pub/freedombox/hardware/'
@ -149,11 +149,13 @@ URLS_ARM64 = {
URLS = URLS_AMD64
TRUSTED_KEYS = ['013D86D8BA32EAB4A6691BF85D4153D6FE188FC8']
TRUSTED_KEYS = ['D4B069124FCF43AA1FCD7FBC2ACFC1E15AF82D8C']
KEY_SERVER = 'keyserver.ubuntu.com'
KEY_SERVER_HTTPS_API = \
'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x{key_id}'
PROVISION_SCRIPT = '''
set -x
set -xe pipefail
cd /freedombox/
@ -185,8 +187,8 @@ sudo chmod a+rw geckodriver.log
sudo mkdir -p .pytest_cache/
sudo chmod --recursive a+rw .pytest_cache/
sudo chmod a+w /freedombox
sudo chmod --recursive --silent a+w htmlcov
sudo chmod --silent a+w .coverage
sudo chmod --recursive --silent a+w htmlcov || true
sudo chmod --silent a+w .coverage || true
exit 0
''' # noqa
@ -290,6 +292,8 @@ def parse_arguments():
help='Distribution of the image to download and setup')
subparser.add_argument('--image-size', default='16G',
help='Disk image size to resize to after download')
subparser.add_argument('--hkp-client', choices=('gpg', 'wget'),
default='gpg', help='Client for key retrieval')
# Print IP address
subparser = subparsers.add_parser(
@ -339,6 +343,8 @@ def parse_arguments():
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the image to update')
subparser.add_argument('--hkp-client', choices=('gpg', 'wget'),
default='gpg', help='Client for key retrieval')
# Display help message when no args are passed
if len(sys.argv) == 1:
@ -383,6 +389,7 @@ def _verify_dependencies():
'sgdisk': 'gdisk',
'btrfs': 'btrfs-progs',
'nmcli': 'network-manager',
'dnsmasq': 'dnsmasq',
'ssh': 'openssh-client',
'ssh-keygen': 'openssh-client',
}
@ -405,8 +412,8 @@ def _verify_dependencies():
sys.exit(1)
logger.info('Running apt for missing packages: %s',
' '.join(missing_commands))
subprocess.run(['sudo', 'apt', 'install'] + missing_packages, check=False)
' '.join(missing_packages))
subprocess.run(['sudo', 'apt', 'install'] + missing_packages, check=True)
def _get_systemd_nspawn_version():
@ -440,7 +447,30 @@ def _download_file(url, target_file, force=False):
partial_file.rename(target_file)
def _verify_signature(data_file, signature_file):
def _receive_keys_with_gpg(gpg_home, key_ids):
"""Use gpg to retrieve and import a list of keys."""
subprocess.run([
'gpg', '--quiet', '--homedir',
str(gpg_home), '--keyserver', KEY_SERVER, '--recv-keys'
] + key_ids, check=True)
def _receive_keys_with_wget(gpg_home, key_ids):
"""Use wget to retrieve a list of keys and import them."""
for key_id in key_ids:
# Download public key
logger.info('Getting public key %s', key_id)
url = KEY_SERVER_HTTPS_API.format(key_id=key_id)
wget_result = subprocess.run(
['wget', '--quiet', '--output-document=-', url], check=True,
capture_output=True)
public_key = wget_result.stdout
subprocess.run(
['gpg', '--quiet', '--homedir',
str(gpg_home), '--import=-'], input=public_key, check=True)
def _verify_signature(hkp_client, data_file, signature_file):
"""Verify the detached signature on a file using GPG."""
verified_file = signature_file.with_suffix(signature_file.suffix +
'.verified')
@ -452,10 +482,11 @@ def _verify_signature(data_file, signature_file):
gpg_home.chmod(0o700)
logger.info('Receiving GPG keys')
subprocess.run([
'gpg', '--quiet', '--homedir',
str(gpg_home), '--keyserver', KEY_SERVER, '--recv-keys'
] + TRUSTED_KEYS, check=True)
if hkp_client == 'wget':
_receive_keys_with_wget(gpg_home, TRUSTED_KEYS)
else:
_receive_keys_with_gpg(gpg_home, TRUSTED_KEYS)
process = subprocess.run(
['gpg', '--quiet', '--homedir',
str(gpg_home), '--armor', '--export'] + TRUSTED_KEYS, check=True,
@ -518,7 +549,7 @@ def _get_overlay_folder(distribution):
return folder.resolve()
def _download_disk_image(distribution, force=False):
def _download_disk_image(distribution, hkp_client, force=False):
"""Download and unpack FreedomBox disk image."""
work_directory.mkdir(exist_ok=True)
@ -530,7 +561,7 @@ def _download_disk_image(distribution, force=False):
signature_file = target_file.with_suffix(target_file.suffix + '.sig')
_download_file(url + '.sig', signature_file, force=force)
_verify_signature(target_file, signature_file)
_verify_signature(hkp_client, target_file, signature_file)
return _extract_image(target_file)
@ -547,6 +578,7 @@ def _get_partition_info(image_file):
if line.startswith('Partition Table:'):
partition_table_type = line.partition(': ')[2]
logger.info('Main partition: %s', last_partition_number)
return partition_table_type, last_partition_number
@ -750,6 +782,7 @@ def _setup(image_file, distribution):
_setup_nm_connection(distribution)
setup_file.touch()
logger.info('Setup completed')
def _create_nspawn_machine(image_file, distribution):
@ -820,9 +853,10 @@ def _launch(image_file, distribution):
logger.info('Bringing up host network connection: %s',
f'fbx-{distribution}-shared')
# This command requires dnsmasq
subprocess.run(
['sudo', 'nmcli', 'connection', 'up', f'fbx-{distribution}-shared'],
stdout=subprocess.DEVNULL, check=False)
stdout=subprocess.DEVNULL, check=True)
def _stop(distribution):
@ -907,6 +941,7 @@ def _provision(image_file, distribution):
input=PROVISION_SCRIPT.encode())
provision_file.touch()
logger.info('Provision completed')
def _print_banner(distribution):
@ -1023,7 +1058,8 @@ def subcommand_up(arguments):
_verify_dependencies()
_get_systemd_nspawn_version()
image_file = _download_disk_image(arguments.distribution)
image_file = _download_disk_image(arguments.distribution,
arguments.hkp_client)
_resize_disk_image(image_file, arguments.image_size)
_setup(image_file, arguments.distribution)
_launch(image_file, arguments.distribution)
@ -1077,7 +1113,8 @@ def subcommand_update(arguments):
"""Update the disk image."""
if _is_update_required(arguments.distribution):
logger.info("Updating...")
_download_disk_image(arguments.distribution, force=True)
_download_disk_image(arguments.distribution, arguments.hkp_client,
force=True)
else:
logger.info("Already using the latest image")

59
debian/changelog vendored
View File

@ -1,3 +1,62 @@
freedombox (23.14) unstable; urgency=medium
[ James Valleroy ]
* users: Add diagnostics check for nslcd config
* users: Add diagnostic checks for nsswitch config
* firewall: Add diagnostic for default zone
* firewall: Add diagnostic check for backend
* firewall: Add diagnostic check for passthroughs
* torproxy: Add separate app for Tor Proxy
* HACKING: Add instructions for container on Raspberry Pi
* ci: Add mypy static type check
* upgrades: Use codename= in apt preferences
* upgrades: Use n= for unattended-upgrades origin pattern
* container: Update for bookworm images
* locale: Update translation strings
* doc: Fetch latest manual
[ ikmaak ]
* Translated using Weblate (Dutch)
[ Sunil Mohan Adapa ]
* torproxy: Rename icon from tor to torproxy
* torproxy: Remove unnecessary load tags in template file
* torproxy: Add shortcut to home page for logged in users
* tor: Minor refactor to remove code the check for need to restart
* tor, torproxy: Update description for info on services provided
* tor: tests: Make functional test check for running service
* torproxy: Drop irrelavant 'ExitPolicy' configuration directive
* kvstore: Optionally, don't throw exception when deleting key
* tor, torproxy: Export settings from old to new app
* bepasty: Don't enable app when setup is rerun
* bind: Don't enable app when setup is rerun
* deluge: Don't enable app when setup is rerun
* ejabberd: Don't enable app when setup is rerun
* gitweb: Don't enable app when setup is rerun
* ikiwiki: Don't enable app when setup is rerun
* infinoted: Don't enable app when setup is rerun
* janus: Don't enable app when setup is rerun
* jsxc: Don't enable app when setup is rerun
* mediawiki: Don't enable app when setup is rerun
* minetest: Don't enable app when setup is rerun
* openvpn: Don't enable app when setup is rerun
* performance: Don't enable app when setup is rerun
* privoxy: Don't enable app when setup is rerun
* quassel: Don't enable app when setup is rerun
* radicale: Don't enable app when setup is rerun
* rssbridge: Don't enable app when setup is rerun
* shaarli: Don't enable app when setup is rerun
* sharing: Don't enable app when setup is rerun
* ttrss: Don't enable app when setup is rerun
* wireguard: Don't enable app when setup is rerun
* zoph: Don't enable app when setup is rerun
* app: Implement advanced option to rerun app setup
[ fliu ]
* container: Add support for retrieving GPG keys using wget
-- James Valleroy <jvalleroy@mailbox.org> Mon, 31 Jul 2023 20:39:40 -0400
freedombox (23.13~bpo12+1) bookworm-backports; urgency=medium
* Rebuild for bookworm-backports.

View File

@ -10,7 +10,7 @@
<<Anchor(gettinghelp)>>
The !FreedomBox community provides live help via forum, chat and email. Feel free to join and ask anything you like. If you receive help, please consider to report your solution to the [[FreedomBox/QuestionsAndAnswers|Questions and Answers]] page, so others can benefit in the future.
The !FreedomBox community provides live help via forum, chat and email. Feel free to join and ask anything you like. If you receive help, please consider to report your solution to the [[https://discuss.freedombox.org/t/frequently-asked-questions/1906|Questions and Answers]] page, so others can benefit in the future.
== Discussion Forum ==
@ -34,7 +34,7 @@ Providing you are familiar with [[http://www.irchelp.org/|Internet Relay Chat]]
== Help Back ==
Once you've got your solution, don't forget to add it to the [[FreedomBox/QuestionsAndAnswers|Questions and Answers]] page and tell which features do you use from the box on [[FreedomBox/UserExperience|Use Cases]] page. It could help others to use !FreedomBox in a way they would have not imagined.
Once you've got your solution, don't forget to add it to the [[https://discuss.freedombox.org/t/frequently-asked-questions/1906|Questions and Answers]] page and tell which features do you use from the box on [[FreedomBox/UserExperience|Use Cases]] page. It could help others to use !FreedomBox in a way they would have not imagined.
## END_INCLUDE

View File

@ -8,6 +8,54 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 23.14 (2023-07-31) ==
=== Highlights ===
* app: Implement advanced option to rerun app setup
* torproxy: Add separate app for Tor Proxy
* upgrades: Use codename in apt preferences
=== Other Changes ===
* HACKING: Add instructions for container on Raspberry Pi
* bepasty: Don't enable app when setup is rerun
* bind: Don't enable app when setup is rerun
* ci: Add mypy static type check
* container: Add support for retrieving GPG keys using wget
* container: Update for bookworm images
* deluge: Don't enable app when setup is rerun
* ejabberd: Don't enable app when setup is rerun
* firewall: Add diagnostic check for backend
* firewall: Add diagnostic check for passthroughs
* firewall: Add diagnostic for default zone
* gitweb: Don't enable app when setup is rerun
* ikiwiki: Don't enable app when setup is rerun
* infinoted: Don't enable app when setup is rerun
* janus: Don't enable app when setup is rerun
* jsxc: Don't enable app when setup is rerun
* kvstore: Optionally, don't throw exception when deleting key
* locale: Update translations for Dutch
* mediawiki: Don't enable app when setup is rerun
* minetest: Don't enable app when setup is rerun
* openvpn: Don't enable app when setup is rerun
* performance: Don't enable app when setup is rerun
* privoxy: Don't enable app when setup is rerun
* quassel: Don't enable app when setup is rerun
* radicale: Don't enable app when setup is rerun
* rssbridge: Don't enable app when setup is rerun
* shaarli: Don't enable app when setup is rerun
* sharing: Don't enable app when setup is rerun
* tor, torproxy: Export settings from old to new app
* tor, torproxy: Update description for info on services provided
* tor: tests: Make functional test check for running service
* ttrss: Don't enable app when setup is rerun
* upgrades: Use codename for unattended-upgrades origin pattern
* users: Add diagnostic checks for nsswitch config
* users: Add diagnostics check for nslcd config
* wireguard: Don't enable app when setup is rerun
* zoph: Don't enable app when setup is rerun
== FreedomBox 23.13 (2023-07-17) ==
* container: Add support for ARM64 containers

View File

@ -8,6 +8,54 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 23.14 (2023-07-31) ==
=== Highlights ===
* app: Implement advanced option to rerun app setup
* torproxy: Add separate app for Tor Proxy
* upgrades: Use codename in apt preferences
=== Other Changes ===
* HACKING: Add instructions for container on Raspberry Pi
* bepasty: Don't enable app when setup is rerun
* bind: Don't enable app when setup is rerun
* ci: Add mypy static type check
* container: Add support for retrieving GPG keys using wget
* container: Update for bookworm images
* deluge: Don't enable app when setup is rerun
* ejabberd: Don't enable app when setup is rerun
* firewall: Add diagnostic check for backend
* firewall: Add diagnostic check for passthroughs
* firewall: Add diagnostic for default zone
* gitweb: Don't enable app when setup is rerun
* ikiwiki: Don't enable app when setup is rerun
* infinoted: Don't enable app when setup is rerun
* janus: Don't enable app when setup is rerun
* jsxc: Don't enable app when setup is rerun
* kvstore: Optionally, don't throw exception when deleting key
* locale: Update translations for Dutch
* mediawiki: Don't enable app when setup is rerun
* minetest: Don't enable app when setup is rerun
* openvpn: Don't enable app when setup is rerun
* performance: Don't enable app when setup is rerun
* privoxy: Don't enable app when setup is rerun
* quassel: Don't enable app when setup is rerun
* radicale: Don't enable app when setup is rerun
* rssbridge: Don't enable app when setup is rerun
* shaarli: Don't enable app when setup is rerun
* sharing: Don't enable app when setup is rerun
* tor, torproxy: Export settings from old to new app
* tor, torproxy: Update description for info on services provided
* tor: tests: Make functional test check for running service
* ttrss: Don't enable app when setup is rerun
* upgrades: Use codename for unattended-upgrades origin pattern
* users: Add diagnostic checks for nsswitch config
* users: Add diagnostics check for nslcd config
* wireguard: Don't enable app when setup is rerun
* zoph: Don't enable app when setup is rerun
== FreedomBox 23.13 (2023-07-17) ==
* container: Add support for ARM64 containers

View File

@ -3,4 +3,4 @@
Package init file.
"""
__version__ = '23.13'
__version__ = '23.14'

View File

@ -27,7 +27,11 @@ def set(key, value): # pylint: disable-msg=W0622
store.save()
def delete(key):
def delete(key, ignore_missing=False):
"""Delete a key"""
from plinth.models import KVStore
return KVStore.objects.get(key=key).delete()
try:
return KVStore.objects.get(key=key).delete()
except KVStore.DoesNotExist:
if not ignore_missing:
raise

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-03-31 09:12+0000\n"
"Last-Translator: abidin toumi <abidin24@disroot.org>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "مصدر الصفحة"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr ""
@ -836,7 +836,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1918,7 +1919,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1926,10 +1927,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2502,7 +2515,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4768,7 +4782,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6017,7 +6031,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6026,55 +6040,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6102,11 +6109,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6114,22 +6121,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6137,26 +6144,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6168,16 +6164,54 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "خطأ أثناء تثبيت التطبيق: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6503,14 +6537,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6518,19 +6552,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7610,7 +7654,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7628,11 +7676,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2020-06-10 15:41+0000\n"
"Last-Translator: aiman an <an1f3@hotmail.com>\n"
"Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr ""
@ -836,7 +836,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1920,7 +1921,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1928,10 +1929,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2504,7 +2517,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4772,7 +4786,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6021,7 +6035,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6030,55 +6044,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6106,11 +6113,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6118,22 +6125,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6141,26 +6148,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6172,16 +6168,54 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "خطأ في تثبيت التطبيق:{error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6507,14 +6541,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6522,19 +6556,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7614,7 +7658,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7632,11 +7680,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-04-19 09:52+0000\n"
"Last-Translator: 109247019824 <stoyan@gmx.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Изходен код на страницата"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -900,7 +900,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Настройките са променени."
@ -2025,7 +2026,7 @@ msgstr "Порт"
msgid "Host/Target/Value"
msgstr "Хост/цел/стойност"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2036,10 +2037,22 @@ msgstr ""
"мрежов трафик в и от {box_name}. Поддържането на включена и правилно "
"настроена защитна стена намалява риска от заплахи за сигурността от интернет."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Защитна стена"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2633,7 +2646,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Анонимна мрежа"
@ -5008,7 +5022,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6310,7 +6324,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Синхронизиране на файлове"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6319,59 +6333,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"На {box_name} е достъпен порт на Tor SOCKS за вътрешни мрежи на порт 9050 от "
"TCP."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Тор"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Услуга на Тор Onion"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Прокси сървър на Тор за SOCKS"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Транспортът Obfs3 е регистриран"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Транспортът Obfs4 е регистриран"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Услуга на Onion"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Достъп до {url} по tcp{kind} чрез Тор"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6409,11 +6414,11 @@ msgstr ""
"информацията за мостовете тук. Текущо поддържаните транспорти са none, "
"obfs3, obfs4 и scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6424,11 +6429,11 @@ msgstr ""
"част от пропускателната способност. Направете го ако разполагате с ширина на "
"канала по-голяма от 2Мбит/сек."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
#, fuzzy
msgid ""
"When enabled, relay information is published in the Tor bridge database "
@ -6436,13 +6441,13 @@ msgid ""
"This helps others circumvent censorship."
msgstr "Когато е отметнато,"
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Включване на скритата услуга на Тор"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -6457,29 +6462,15 @@ msgstr ""
"(като енциклопедия или бързи съобщения) без да разкрива местоположението си. "
"Не използвайте, за да криете самоличността си, все още."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Изтегляне на софтуерните пакети през Тор"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Когато е отметнато, софтуерът, при инсталиране и обновяване, ще бъде "
"изтеглян през мрежата на Tor. По този начин се увеличава степента на "
"поверителност на личния живот и сигурност при изтегляне."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Четецът Тор"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Орбот: Прокси с Тор"
@ -6491,15 +6482,58 @@ msgstr "Услуга на Onion"
msgid "Ports"
msgstr "Портове"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Настройките са променени"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Грешка при настройка на приложението: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Прокси сървър на Тор за SOCKS"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Прокси сървър на Тор за SOCKS"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Достъп до {url} по tcp{kind} чрез Тор"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Изтегляне на софтуерните пакети през Тор"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Когато е отметнато, софтуерът, при инсталиране и обновяване, ще бъде "
"изтеглян през мрежата на Tor. По този начин се увеличава степента на "
"поверителност на личния живот и сигурност при изтегляне."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6868,7 +6902,7 @@ msgstr "Честото обновяване на възможности е вк
msgid "Starting distribution upgrade test."
msgstr "Начало на опит за обновяване на дистрибуцията."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -6879,7 +6913,7 @@ msgstr ""
"получи достъп, някои приложения още имат изискване потребителският профил да "
"бъде част от определена група."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6891,19 +6925,29 @@ msgstr ""
"<em>администратори</em> могат да променят приложенията и настройките на "
"системата."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Потребители и групи"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Достъп до всички услуги и системни настройки"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Проверете записа на LDAP „{search_item}“"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Потребителското име е заето."
@ -8002,7 +8046,11 @@ msgstr "Обновяване"
msgid "Backup"
msgstr "Резервни копия"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Премахване"
@ -8020,11 +8068,11 @@ msgstr ""
"Всички данни и настройки на приложението ще бъдат загубени. Приложението "
"може да бъде инсталирано отново."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Настройките не са променени"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "преди премахване на {app_id}"
@ -8033,6 +8081,14 @@ msgstr "преди премахване на {app_id}"
msgid "Gujarati"
msgstr "Гуджарати"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "На {box_name} е достъпен порт на Tor SOCKS за вътрешни мрежи на порт 9050 "
#~ "от TCP."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-06-16 07:33+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "পৃষ্ঠার উৎস"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "ফ্রিডমবক্স"
@ -835,7 +835,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1932,7 +1933,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1940,10 +1941,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ফায়ারওয়্যাল"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2516,7 +2529,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4784,7 +4798,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6035,7 +6049,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6044,55 +6058,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6120,11 +6127,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6132,22 +6139,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6155,26 +6162,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6186,17 +6182,55 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "Configuration"
msgid "Updating configuration"
msgstr "পছন্দসমূহ"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6522,14 +6556,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6537,19 +6571,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7619,7 +7663,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7635,11 +7683,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-06-14 07:51+0000\n"
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Zdrojový kód stránky"
msgid "Static configuration {etc_path} is setup properly"
msgstr "Statická konfigurace {etc_path} je nastavena správně"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -899,7 +899,8 @@ msgstr "správce"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Nastavení aktualizována."
@ -2133,7 +2134,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr "Hostitel / cíl / hodnota"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2144,10 +2145,24 @@ msgstr ""
"provoz na vašem {box_name}. Zapnutá a správně nastavená brána firewall "
"snižuje riziko bezpečnostních hrozeb z Internetu."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brána firewall"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Výchozí sada aplikací"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2819,7 +2834,8 @@ msgstr "Spravovat aplikaci I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonymní síť"
@ -5435,7 +5451,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Webová proxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Přistupte {url} s proxy {proxy} na tcp{kind}"
@ -6875,7 +6891,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Synchronizace souborů"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6889,57 +6905,48 @@ msgstr ""
"prohlížeč <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">Tor Browser</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Tor SOCKS port je k dispozici na vašem {box_name} pro interní síť na TCP "
"portu 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor Onion Service"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Předávájící Tor most"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Port Tor předávání k dispozici"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport zaregistrován"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport zaregistrován"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr "Onion service je verze 3"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Přistoupit k URL adrese {url} na tcp{kind} prostřednictvím Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Potvrďte použití Tor na adrese {url} na tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6974,11 +6981,11 @@ msgstr ""
"\">https://bridges.torproject.org/</a> a zkopírovat informace odtud. V "
"současnosti podporované transporty jsou none, obfs3, obfs4 a scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Zapnout Tor předávání"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6989,11 +6996,11 @@ msgstr ""
"přenosové pásmo pro Tor síť. Toto udělejte pokud má přípojka rychlost více "
"než 2 megabity/s v obou směrech."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Zapnout předávání Tor mostu"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7003,11 +7010,11 @@ msgstr ""
"namísto veřejné databázi Tor předávání, čímž je těžší tento uzel cenzurovat. "
"Toto ostatním pomůže obcházet cenzuru."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr "Povolit službu Tor Onion"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -7018,29 +7025,15 @@ msgstr ""
"wiki nebo chat), aniž by odhalila svou polohu. Pro silnou anonymitu to zatím "
"nepoužívejte."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Stahovat balíčky software prostřednictvím sítě Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Když je zapnuto, software pro instalaci a aktualizace bude stahováno přes "
"síť Tor. To zlepší soukromí a zabezpečení při stahování software (ale je "
"pomalejší)."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Pro používání nadřazených mostů je třeba určit alespoň jeden takový."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor prohlížeč"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: proxy s Tor"
@ -7052,15 +7045,58 @@ msgstr "Onion služba"
msgid "Ports"
msgstr "Porty"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Aktualizace konfigurace"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Chyba při konfiguraci aplikace: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Přistoupit k URL adrese {url} na tcp{kind} prostřednictvím Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Potvrďte použití Tor na adrese {url} na tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Stahovat balíčky software prostřednictvím sítě Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Když je zapnuto, software pro instalaci a aktualizace bude stahováno přes "
"síť Tor. To zlepší soukromí a zabezpečení při stahování software (ale je "
"pomalejší)."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7443,7 +7479,7 @@ msgstr "Aktivovány časté aktualizace funkcí."
msgid "Starting distribution upgrade test."
msgstr "Zahájení testu aktualizace distribuce."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7454,7 +7490,7 @@ msgstr ""
"aby uživatelský účet byl součástí skupiny, která uživatele opravňuje k "
"přístupu k aplikaci."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7466,19 +7502,29 @@ msgstr ""
"nebo nastavení systému však mohou měnit pouze uživatelé skupiny <em>admin</"
"em>."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Uživatelé a skupiny"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Přístup ke všem službám a nastavení systému"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Zkontrolujte LDAP položku „{search_item}“"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8665,7 +8711,13 @@ msgstr "Aktualizovat"
msgid "Backup"
msgstr "Záloha"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Zahájit nastavování"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Odinstalace"
@ -8683,11 +8735,11 @@ msgstr ""
"Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze "
"nainstalovat znovu."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Nastavení se nezměnila"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "před odinstalací {app_id}"
@ -8696,6 +8748,14 @@ msgstr "před odinstalací {app_id}"
msgid "Gujarati"
msgstr "gudžarátština"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Tor SOCKS port je k dispozici na vašem {box_name} pro interní síť na TCP "
#~ "portu 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9493,9 +9553,6 @@ msgstr "gudžarátština"
#~ "opravdu dlouhý čas. V závislosti na rychlosti vašeho %(box_name)s to může "
#~ "trvat i hodiny. Pokud je nastavování přerušeno, je možné ho spustit znovu."
#~ msgid "Start setup"
#~ msgstr "Zahájit nastavování"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Nastavování OpenVPN je spuštěné"
@ -10147,9 +10204,6 @@ msgstr "gudžarátština"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Chyba při nastavování výchozí aplikace: {exception}"
#~ msgid "Default app set"
#~ msgstr "Výchozí sada aplikací"
#~ msgid "Abort"
#~ msgstr "Přerušit"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Sidens kildekode"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -913,7 +913,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Konfiguration opdateret."
@ -2163,7 +2164,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2174,10 +2175,24 @@ msgstr ""
"på din{box_name}. At holde en firewall aktiveret og velkonfigureret "
"reducerer risikoen for sikkerhedstrusler fra internettet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "Standard"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2859,7 +2874,8 @@ msgstr "Aktiver applikation"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
#, fuzzy
#| msgid "Tor Anonymity Network"
msgid "Anonymity Network"
@ -5480,7 +5496,7 @@ msgstr "Aktiver Privoxy"
msgid "Web Proxy"
msgstr "Privoxy Webproxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tilgå {url} med proxy {proxy} ved brug af tcp{kind}"
@ -6935,7 +6951,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6949,60 +6965,52 @@ msgstr ""
"du bruger <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">Tor-browseren</a>."
#: plinth/modules/tor/__init__.py:30
#, fuzzy, python-brace-format
#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "En Tor SOCKS-port er tilgængelig på din %(box_name)s TCP-port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "Tor Skjult Tjeneste"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor videresendelsesport tilgængelig"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport registreret"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport registreret"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion service is version 3"
msgstr "Skjult Tjeneste"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tilgå URL {url} ved brug af tcp{kind} via Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekræft brug af Tor på {url} ved brug af tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7030,13 +7038,13 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
#, fuzzy
#| msgid "Enable Tor"
msgid "Enable Tor relay"
msgstr "Aktiver Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7044,25 +7052,25 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
#, fuzzy
msgid "Enable Tor bridge relay"
msgstr "Tor Bridge Relay"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Aktiver Tor Skjult Tjeneste"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7075,29 +7083,15 @@ msgstr ""
"En skjult tjeneste tillader {box_name} at levere udvalgte tjenester (såsom "
"ownCloud og chat) uden at afsløre sin lokation."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Hent softwarepakker over Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Når aktiveret, vil softwareinstallationer og opdateringer blive hentet over "
"Tor-netværket. Dette giver en vis grad af privatlivsbeskyttelse og sikkerhed "
"under hentningen."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -7111,18 +7105,61 @@ msgstr "Skjult Tjeneste"
msgid "Ports"
msgstr "Porte"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Der opstod en fejl under konfigurationen."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Kunne ikke installere applikation: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tilgå URL {url} ved brug af tcp{kind} via Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekræft brug af Tor på {url} ved brug af tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Hent softwarepakker over Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Når aktiveret, vil softwareinstallationer og opdateringer blive hentet over "
"Tor-netværket. Dette giver en vis grad af privatlivsbeskyttelse og sikkerhed "
"under hentningen."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7519,14 +7556,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "Automatisk opdatering aktiveret"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7534,19 +7571,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Brugere og Grupper"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrol af LDAP-konfiguration \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8772,7 +8819,13 @@ msgstr "Opdater"
msgid "Backup"
msgstr "Sikkerhedskopiering"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Start opsætning"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8791,11 +8844,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Indstilling uændret"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8804,6 +8857,14 @@ msgstr ""
msgid "Gujarati"
msgstr ""
#, fuzzy, python-brace-format
#~| msgid ""
#~| "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr "En Tor SOCKS-port er tilgængelig på din %(box_name)s TCP-port 9050."
#~ msgid "ChatSecure"
#~ msgstr "ChatSecure"
@ -9432,9 +9493,6 @@ msgstr ""
#~ "tager meget lang tid. Afhængig af hvor hurtig din %(box_name)s er, kan "
#~ "det tage flere timer. Hvis processen afbrydes kan den blot genstartes."
#~ msgid "Start setup"
#~ msgstr "Start opsætning"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN-opsætning kører"
@ -9910,11 +9968,6 @@ msgstr ""
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Kunne ikke sætte sprog: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "Standard"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-06-26 16:51+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Seitenquelle"
msgid "Static configuration {etc_path} is setup properly"
msgstr "Statische Konfiguration {etc_path} ist richtig eingerichtet"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -924,7 +924,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Konfiguration aktualisiert."
@ -2177,7 +2178,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr "Host/Ziel/Wert"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2188,10 +2189,24 @@ msgstr ""
"Verkehr Ihrer {box_name} kontrolliert. Die Firewall aktiv und korrekt "
"konfiguriert halten reduziert Sicherheitsrisiken aus dem Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Standard-Anwendung eingestellt"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2878,7 +2893,8 @@ msgstr "I2P-Anwendung verwalten"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonymisierungsnetzwerk"
@ -5547,7 +5563,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web Proxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Zugang auf {url} über Proxy {proxy} auf TCP{kind}"
@ -7027,7 +7043,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Dateisynchronisation"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -7041,59 +7057,50 @@ msgstr ""
"Sie den <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">Tor Browser</a> verwenden."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Tor SOCKS-Port ist auf Ihrer {box_name} für interne Netzwerke auf TCP port "
"9050 verfügbar."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor-Onion-Dienste"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor-Socks-Proxy"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor-Bridge-Relay"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor-Relay-Port ist verfügbar"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3-Transport registriert"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4-Transport registriert"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Onion-Dienste"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Zugangs-URL {url} auf TCP{kind} über Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tor-Nutzung auf {url} über TCP{kind} bestätigen"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7131,11 +7138,11 @@ msgstr ""
"Informationen von dort kopieren und hier einfügen. Derzeitig unterstützte "
"Transports sind „none“, „obfs3“, „obfs4“ und „scamblesuit“."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Tor-Relay einschalten"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7147,11 +7154,11 @@ msgstr ""
"Upload-Bandbreite zur Verfügung haben, sollten Sie diese Funktion "
"aktivieren. (Es verbessert die Anonymisierung)."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Tor-Bridge-Relay aktivieren"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7161,13 +7168,13 @@ msgstr ""
"Datenbank veröffentlicht, anstatt in einer öffentlichen Tor-Relay-Datenbank, "
"was die Zensur des Knotens erschwert. Dies hilft anderen, Zensur zu umgehen."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Tor Hidden Service aktivieren"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7182,31 +7189,17 @@ msgstr ""
"B. Wiki oder Chat) bereitzustellen, ohne seinen Standort preiszugeben. "
"Verwenden Sie dies noch nicht für starke Anonymität."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Softwarepakete über das Tor-Netzwerk herunterladen"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Wenn aktiviert, werden zukünftige Softwarepakete für die Installation und "
"den Aktualisierungen über das Tor-Netzwerk heruntergeladen. Dies erhöht die "
"Privatsphäre und Sicherheit während die Software heruntergeladen wird."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Tragen Sie mindestens eine Upstream-Bridge ein, um Upstream-Bridges zu "
"nutzen."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor Browser"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy mit Tor"
@ -7218,15 +7211,58 @@ msgstr "Onion-Dienste"
msgid "Ports"
msgstr "Ports"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Aktualisieren der Konfiguration"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Fehler beim Konfigurieren der App: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor-Socks-Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor-Socks-Proxy"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Zugangs-URL {url} auf TCP{kind} über Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tor-Nutzung auf {url} über TCP{kind} bestätigen"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Softwarepakete über das Tor-Netzwerk herunterladen"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Wenn aktiviert, werden zukünftige Softwarepakete für die Installation und "
"den Aktualisierungen über das Tor-Netzwerk heruntergeladen. Dies erhöht die "
"Privatsphäre und Sicherheit während die Software heruntergeladen wird."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission ist ein BitTorrent-Client mit einer Weboberfläche."
@ -7622,7 +7658,7 @@ msgstr "Häufige Funktions-Updates aktiviert."
msgid "Starting distribution upgrade test."
msgstr "Start des Tests zur Aktualisierung der Distribution."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7633,7 +7669,7 @@ msgstr ""
"muss ein Benutzerkonto Teil einer Gruppe sein, damit ein Benutzer auf die "
"App zugreifen kann."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7645,19 +7681,29 @@ msgstr ""
"dürfen nur Mitglieder der Gruppe <em>admin</em> Apps oder "
"Systemeinstellungen ändern."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Benutzer und Gruppen"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Zugriff auf alle Anwendungen und Systemeinstellungen"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP-Eintrag „{search_item}“ prüfen"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Benutzername wird bereits verwendet oder ist reserviert."
@ -8873,7 +8919,13 @@ msgstr "Aktualisieren"
msgid "Backup"
msgstr "Sicherungskopie"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Einrichten beginnen"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Deinstallieren"
@ -8891,11 +8943,11 @@ msgstr ""
"Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann "
"wieder frisch installiert werden."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Einstellung unverändert"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "vor der Deinstallation von {app_id}"
@ -8904,6 +8956,14 @@ msgstr "vor der Deinstallation von {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Tor SOCKS-Port ist auf Ihrer {box_name} für interne Netzwerke auf TCP "
#~ "port 9050 verfügbar."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9723,9 +9783,6 @@ msgstr "Gujarati"
#~ "Stunden dauern. Wenn das Einrichten unterbrochen wird, können Sie es "
#~ "erneut zu starten."
#~ msgid "Start setup"
#~ msgstr "Einrichten beginnen"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Einrichtung von OpenVPN läuft"
@ -10376,9 +10433,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Fehler beim Einstellen der Standard-Anwendung: {exception}"
#~ msgid "Default app set"
#~ msgstr "Standard-Anwendung eingestellt"
#~ msgid "Abort"
#~ msgstr "Abbrechen"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr ""
@ -833,7 +833,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1915,7 +1916,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1923,10 +1924,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2499,7 +2512,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4763,7 +4777,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6012,7 +6026,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6021,55 +6035,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6097,11 +6104,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6109,22 +6116,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6132,26 +6139,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6163,15 +6159,53 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6497,14 +6531,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6512,19 +6546,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7592,7 +7636,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7608,11 +7656,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Πηγή της σελίδας"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "Freedombox"
@ -935,7 +935,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Η ρύθμιση παραμέτρων Ενημερώθηκε."
@ -2217,7 +2218,7 @@ msgstr "Θύρα"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2229,10 +2230,22 @@ msgstr ""
"προστασίας ενεργοποιημένο και η σωστή ρύθμιση παραμέτρων μειώνει τον κίνδυνο "
"απειλών προερχόμενων από το Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall (τείχος προστασίας)"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2931,7 +2944,8 @@ msgstr "Διαχείριση εφαρμογής I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Δίκτυο ανωνυμίας"
@ -5582,7 +5596,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Διακομιστής μεσολάβησης διαδικτύου"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -7125,7 +7139,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Συγχρονισμός αρχείων"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -7139,58 +7153,50 @@ msgstr ""
"Project συνιστά να χρησιμοποιήσετε το <a href=\"https://www.torproject.org/"
"download/download-easy.html.en\">πρόγραμμα περιήγησης διαδικτύου Tor</a>."
#: plinth/modules/tor/__init__.py:30
#, fuzzy, python-brace-format
#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "Μια θύρα Tor SOCKS είναι διαθέσιμη στη θύρα 9050 του %(box_name)s σας."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Υπηρεσία κρεμυδιού Tor"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor διακομιστής μεσολάβησης τύπου socks5"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Γέφυρα/μεσολαβητής Tor"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Θύρα μεσολαβητή Tor διαθέσιμη"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 μεταφορά καταχωρήθηκε"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 μεταφορά καταχωρήθηκε"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Υπηρεσία κρεμμυδιού"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Πρόσβαση στη διεύθυνση URL {url} με tcp {kind} μέσω του Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Επιβεβαίωση χρήσης του Tor στο {url} στο προτόκολλο TCP {kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7228,11 +7234,11 @@ msgstr ""
"τις πληροφορίες της γέφυρας εδώ. Οι τρέχουσες υποστηριζόμενες μεταφορές "
"είναι 'καμία', obfs3, obfs4 και scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Ενεργοποίηση μεσολαβητή Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7243,11 +7249,11 @@ msgstr ""
"δωρίσει ένα μερος της ταχήτυτας της σύνδεσής σας στο δίκτυο Tor. Κάντε αυτό "
"αν έχετε περισσότερα από 2 Mbps ταχύτητα μεταφόρτωσης και λήψης."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Ενεργοποίηση γέφυρας μεσολαβητή Tor"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7258,13 +7264,13 @@ msgstr ""
"Tor που καθιστά δυσκολότερη τη λογοκρισία αυτού του κόμβου. Αυτό βοηθά τους "
"άλλους να παρακάμψουν τη λογοκρισία."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Ενεργοποίηση της κρυφής υπηρεσίας Tor"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7279,31 +7285,17 @@ msgstr ""
"υπηρεσίες (όπως wiki ή chat) χωρίς να αποκαλύψει τη θέση της. Να μην "
"χρησιμοποιείται για πληρη ανωνυμία παρόλαυτα."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Κατεβάστε πακέτα λογισμικού μέσω του Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Όταν ενεργοποιηθεί, θα γίνει λήψη του λογισμικού μέσω του δικτύου Tor για "
"εγκαταστάσεις και αναβαθμίσεις. Αυτό προσθέτει ένα βαθμό ιδιωτικότητας και "
"ασφάλειας κατά τη λήψη λογισμικού."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Καθορίστε τουλάχιστον μία εξωτερική γέφυρα για να χρησιμοποιήσετε εξωτερικές "
"γέφυρες."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor πρόγραμμα περιήγησης"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: διακομιστής μεσολάβησης με Tor"
@ -7315,18 +7307,61 @@ msgstr "Υπηρεσία κρεμμυδιού"
msgid "Ports"
msgstr "Θύρες"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Παρουσιάστηκε σφάλμα κατά τη ρύθμιση παραμέτρων."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor διακομιστής μεσολάβησης τύπου socks5"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor διακομιστής μεσολάβησης τύπου socks5"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Πρόσβαση στη διεύθυνση URL {url} με tcp {kind} μέσω του Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Επιβεβαίωση χρήσης του Tor στο {url} στο προτόκολλο TCP {kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Κατεβάστε πακέτα λογισμικού μέσω του Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Όταν ενεργοποιηθεί, θα γίνει λήψη του λογισμικού μέσω του δικτύου Tor για "
"εγκαταστάσεις και αναβαθμίσεις. Αυτό προσθέτει ένα βαθμό ιδιωτικότητας και "
"ασφάλειας κατά τη λήψη λογισμικού."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7732,7 +7767,7 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
#, fuzzy
#| msgid ""
#| "Create and managed user accounts. These accounts serve as centralized "
@ -7749,7 +7784,7 @@ msgstr ""
"είναι μέρος μιας ομάδας για να εξουσιοδοτήσουν το χρήστη να αποκτήσει "
"πρόσβαση στην εφαρμογή."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7761,19 +7796,29 @@ msgstr ""
"σελίδα. Ωστόσο, μόνο οι χρήστες της ομάδας <em>admin</em> μπορούν να "
"τροποποιήσουν τις εφαρμογές ή τις ρυθμίσεις του συστήματος."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Χρήστες και ομάδες"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Πρόσβαση σε όλες τις υπηρεσίες και τις ρυθμίσεις συστήματος"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Ελέγξτε την καταχώρηση LDAP \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Το όνομα χρήστη είναι δεσμευμένο."
@ -9031,7 +9076,13 @@ msgstr "Ενημερωμένη έκδοση"
msgid "Backup"
msgstr "Αντίγραφα ασφαλείας"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Έναρξη εγκατάστασης"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -9050,11 +9101,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Οι ρυθμίσεις δεν άλλαξαν"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -9063,6 +9114,15 @@ msgstr ""
msgid "Gujarati"
msgstr "Gujarati"
#, fuzzy, python-brace-format
#~| msgid ""
#~| "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Μια θύρα Tor SOCKS είναι διαθέσιμη στη θύρα 9050 του %(box_name)s σας."
#~ msgid ""
#~ "Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect "
#~ "your Internet traffic. It can be used to bypass Internet filtering and "
@ -9829,9 +9889,6 @@ msgstr "Gujarati"
#~ "%(box_name)s, μπορεί να χρειαστούν και ώρες. Εάν η ρύθμιση διακοπεί, "
#~ "μπορείτε να την ξεκινήσετε ξανά."
#~ msgid "Start setup"
#~ msgstr "Έναρξη εγκατάστασης"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Η εγκατάσταση του OpenVPN εκτελείται"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-06-21 13:49+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Página origen"
msgid "Static configuration {etc_path} is setup properly"
msgstr "La configuración fija {etc_path} está configurada correctamente"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -915,7 +915,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Configuración actualizada."
@ -2154,7 +2155,7 @@ msgstr "Puerto"
msgid "Host/Target/Value"
msgstr "Host/Objetivo/Valor"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2165,10 +2166,24 @@ msgstr ""
"de su {box_name}. Mantenerlo activado y correctamente configurado reduce el "
"riesgo de amenazas de seguridad desde Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Cortafuegos"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Aplicación por defecto establecida"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2847,7 +2862,8 @@ msgstr "Administrar la aplicación I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Red anónima"
@ -5467,7 +5483,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Proxy Web"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Acceso a {url} con proxy {proxy} en tcp {kind}"
@ -6921,7 +6937,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Sincronización de archivos"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6935,57 +6951,48 @@ msgstr ""
"download/download-easy.html.en\">Navegador Tor</a> para tener la mejor "
"protección cuando navega por la red."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Un puerto SOCKS de Tor está disponible para redes internas en su {box_name} "
"en el puerto TCP 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Servicio Tor Onion"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Proxy Socks para Tor"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Puente de retransmisión Tor"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Puerto de servidor Tor disponible"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Transporte Obfs3 registrado"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Transporte Obfs4 registrado"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr "Versión 3 para los servicios de Onion"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Acceso a URL {url} sobre tcp {kind} vía Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmar uso de Tor en {url} sobre tcp {kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7023,11 +7030,11 @@ msgstr ""
"Los tipos de transporte actualmente soportados son ninguno, obfs3, obfs4 y "
"scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Activar Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7038,11 +7045,11 @@ msgstr ""
"ancho de banda a la red Tor. Actívelo si dispone de más de 2 megabits/s de "
"ancho de banda para descarga y subida."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Activar puente de retransmisión Tor"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7052,11 +7059,11 @@ msgstr ""
"Tor en vez de en la base de datos pública de Tor, lo que dificulta censurar "
"este nodo. Ayuda a otros usuarios a esquivar la censura."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr "Activar el servicio Tor Onion"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -7067,30 +7074,16 @@ msgstr ""
"seleccionados (como wiki o chat) sin revelar tu ubicación. No use esto para "
"un fuerte anonimato todavía."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Descarga de paquetes de software con Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Cuando se activa, el software para instalación o las actualizaciones se "
"descargarán a través de la red Tor. De esta forma se añade un grado de "
"privacidad y seguridad durante la descarga."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Especifique al menos un puente de subida para usar los puentes de subida."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Navegador Tor"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy con Tor"
@ -7102,15 +7095,58 @@ msgstr "Servicio Onion"
msgid "Ports"
msgstr "Puertos"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Actualizando la configuración"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Error al configurar la aplicación: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Proxy Socks para Tor"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Proxy Socks para Tor"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Acceso a URL {url} sobre tcp {kind} vía Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmar uso de Tor en {url} sobre tcp {kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Descarga de paquetes de software con Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Cuando se activa, el software para instalación o las actualizaciones se "
"descargarán a través de la red Tor. De esta forma se añade un grado de "
"privacidad y seguridad durante la descarga."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission es un cliente BitTorrent con interfaz web."
@ -7501,7 +7537,7 @@ msgstr "Las actualizaciones funcionales frecuentes están activadas."
msgid "Starting distribution upgrade test."
msgstr "Comenzando la prueba de la actualización de la distribución."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7512,7 +7548,7 @@ msgstr ""
"requieren que además la cuenta de usuario conste en un grupo para "
"autorizarles a acceder."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7524,19 +7560,29 @@ msgstr ""
"sólo los usuarios del grupo <em>admin</em> pueden cambiar configuraciones de "
"apps o del sistema."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Usuarias/os y grupos"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Acceso a todos los servicios y configuraciones del sistema"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Comprobar la entrada LDAP \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "El nombre de usuaria/o está en uso o reservado."
@ -8727,7 +8773,13 @@ msgstr "Actualización"
msgid "Backup"
msgstr "Copia de seguridad"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Iniciar configuración"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Desinstalar"
@ -8745,11 +8797,11 @@ msgstr ""
"Todos los datos de la aplicación y la configuración se perderán "
"permanentemente. La aplicación se puede instalar de nuevo."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Configuración sin cambio"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "antes de desinstalar {app_id}"
@ -8758,6 +8810,14 @@ msgstr "antes de desinstalar {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Un puerto SOCKS de Tor está disponible para redes internas en su "
#~ "{box_name} en el puerto TCP 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9570,9 +9630,6 @@ msgstr "Gujarati"
#~ "llevar incluso horas terminarla. Si la configuración se interrumpe "
#~ "debería empezarla de nuevo."
#~ msgid "Start setup"
#~ msgstr "Iniciar configuración"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Se está ejecutando la configuración de OpenVPN"
@ -10214,9 +10271,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Error al establecer la aplicación por defecto: {exception}"
#~ msgid "Default app set"
#~ msgstr "Aplicación por defecto establecida"
#~ msgid "Abort"
#~ msgstr "Cancelar"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
#, fuzzy
msgid "FreedomBox"
msgstr "FreedomBox"
@ -912,7 +912,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -2154,7 +2155,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2165,10 +2166,24 @@ msgstr ""
"خروجی شبکه را در {box_name} شما کنترل می‌کند. فعال نگه‌داشتن فایروال و تنظیم "
"درست آن خطر تهدیدهای امنیتی از طرف اینترنت را کم می‌کند."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "فایروال"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "پیش‌فرض"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2816,7 +2831,8 @@ msgstr "فعال‌سازی برنامه"
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
#, fuzzy
msgid "Anonymity Network"
msgstr "رفتن به تنظیمات شبکه"
@ -5290,7 +5306,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6650,7 +6666,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6659,57 +6675,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Service"
msgid "Onion service is version 3"
msgstr "سرویس"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6737,11 +6746,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6749,24 +6758,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Service"
msgid "Enable Tor Onion Service"
msgstr "سرویس"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6774,26 +6783,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6807,18 +6805,56 @@ msgstr "سرویس"
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "Current Network Configuration"
msgid "Updating configuration"
msgstr "پیکربندی فعلی شبکه"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "خطا هنگام نصب برنامه: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "دِلوگ (Transmission) یک برنامهٔ بیت‌تورنت با رابط کاربری تحت وب است."
@ -7161,14 +7197,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "برنامه نصب شد."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7176,19 +7212,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8347,7 +8393,11 @@ msgstr ""
msgid "Backup"
msgstr "ساختن اتصال"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
msgid "Uninstall"
@ -8365,11 +8415,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -9054,11 +9104,6 @@ msgstr ""
#~ msgid "Error setting default app: {exception}"
#~ msgstr "خطا در هنگام تنظیم زبان: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "پیش‌فرض"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Plinth 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2016-01-31 22:24+0530\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Plinth Developers <freedombox-discuss@lists.alioth.debian."
@ -27,7 +27,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FREEDOMBOX"
@ -954,7 +954,8 @@ msgstr "ADMIN"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "CONFIGURATION UPDATED."
@ -2254,7 +2255,7 @@ msgstr "PORT"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, fuzzy, python-brace-format
#| msgid ""
#| "Firewall is a security system that controls the incoming and outgoing "
@ -2269,10 +2270,24 @@ msgstr ""
"NETWORK TRAFFIC ON YOUR %(box_name)s. KEEPING A FIREWALL ENABLED AND "
"PROPERLY CONFIGURED REDUCES RISK OF SECURITY THREAT FROM THE INTERNET."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "FIREWALL"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "DEFAULT"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, fuzzy, python-brace-format
#| msgid "Service discovery server is not running"
@ -2944,7 +2959,8 @@ msgstr "APPLICATIONS"
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
#, fuzzy
#| msgid "Tor Anonymity Network"
msgid "Anonymity Network"
@ -5563,7 +5579,7 @@ msgstr "ENABLE PRIVOXY"
msgid "Web Proxy"
msgstr "PRIVOXY WEB PROXY"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "ACCESS {url} WITH PROXY {proxy} ON TCP{kind}"
@ -7013,7 +7029,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
#, fuzzy
#| msgid ""
#| "Tor is an anonymous communication system. You can learn more about it "
@ -7034,60 +7050,52 @@ msgstr ""
"THE <a href=\"https://www.torproject.org/download/download-easy.html.en\"> "
"TOR BROWSER</a>."
#: plinth/modules/tor/__init__.py:30
#, fuzzy, python-brace-format
#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "A TOR SOCKS PORT IS AVAILABLE ON YOUR %(box_name)s ON TCP PORT 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "TOR HIDDEN SERVICE"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "TOR BRIDGE RELAY"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "TOR RELAY PORT AVAILABLE"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "OBFS3 TRANSPORT REGISTERED"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "OBFS4 TRANSPORT REGISTERED"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion service is version 3"
msgstr "HIDDEN SERVICE"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "ACCESS URL {url} ON TCP{kind} VIA TOR"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "CONFIRM TOR USAGE AT {url} ON TCP{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7115,13 +7123,13 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
#, fuzzy
#| msgid "Enable Tor"
msgid "Enable Tor relay"
msgstr "ENABLE TOR"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7129,26 +7137,26 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
#, fuzzy
#| msgid "Tor Bridge Relay"
msgid "Enable Tor bridge relay"
msgstr "TOR BRIDGE RELAY"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "ENABLE TOR HIDDEN SERVICE"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7161,29 +7169,15 @@ msgstr ""
"A HIDDEN SERVICE WILL ALLOW {box_name} TO PROVIDE SELECTED SERVICES (SUCH AS "
"OWNCLOUD OR CHAT) WITHOUT REVEALING ITS LOCATION."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "DOWNLOAD SOFTWARE PACKAGES OVER TOR"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"WHEN ENABLED, SOFTWARE WILL BE DOWNLOADED OVER THE TOR NETWORK FOR "
"INSTALLATIONS AND UPGRADES. THIS ADDS A DEGREE OF PRIVACY AND SECURITY "
"DURING SOFTWARE DOWNLOADS."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -7199,18 +7193,61 @@ msgstr "HIDDEN SERVICE"
msgid "Ports"
msgstr "PORT"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "AN ERROR OCCURRED DURING CONFIGURATION."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing packages: {string} {details}"
msgid "Error configuring app: {error}"
msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Privoxy Web Proxy"
msgid "Tor Proxy"
msgstr "PRIVOXY WEB PROXY"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "ACCESS URL {url} ON TCP{kind} VIA TOR"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "CONFIRM TOR USAGE AT {url} ON TCP{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "DOWNLOAD SOFTWARE PACKAGES OVER TOR"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"WHEN ENABLED, SOFTWARE WILL BE DOWNLOADED OVER THE TOR NETWORK FOR "
"INSTALLATIONS AND UPGRADES. THIS ADDS A DEGREE OF PRIVACY AND SECURITY "
"DURING SOFTWARE DOWNLOADS."
#: plinth/modules/transmission/__init__.py:25
#, fuzzy
#| msgid "Deluge is a BitTorrent client that features a Web UI."
@ -7604,14 +7641,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "AUTOMATIC UPGRADES ENABLED"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7619,19 +7656,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "USERS AND GROUPS"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "CHECK LDAP ENTRY \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8871,7 +8918,13 @@ msgstr "UPDATE URL"
msgid "Backup"
msgstr "PAGEKITE ACCOUNT"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "START SETUP"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8890,11 +8943,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "SETTING UNCHANGED"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8903,6 +8956,15 @@ msgstr ""
msgid "Gujarati"
msgstr ""
#, fuzzy, python-brace-format
#~| msgid ""
#~| "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "A TOR SOCKS PORT IS AVAILABLE ON YOUR %(box_name)s ON TCP PORT 9050."
#, fuzzy
#~| msgid "Web Server"
#~ msgid "ChatSecure"
@ -9450,9 +9512,6 @@ msgstr ""
#~ "LONG TIME. DEPENDING ON HOW FAST YOUR %(box_name)s IS, IT MAY EVEN TAKE "
#~ "HOURS. IF THE SETUP IS INTERRUPTED, YOU MAY START IT AGAIN."
#~ msgid "Start setup"
#~ msgstr "START SETUP"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OPENVPN SETUP IS RUNNING"
@ -9856,11 +9915,6 @@ msgstr ""
#~ msgid "Error setting default app: {exception}"
#~ msgstr "ERROR SETTING LANGUAGE: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "DEFAULT"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-04-07 23:10+0000\n"
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Code source de la page"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -923,7 +923,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Configuration mise à jour."
@ -2190,7 +2191,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr "Hôte/Cible/Valeur"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2202,10 +2203,24 @@ msgstr ""
"Garder un pare-feu activé et correctement configuré réduit le risque des "
"menaces provenant dInternet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Pare-feu"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "Défaut"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2893,7 +2908,8 @@ msgstr "Gestion de lapplication I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Réseau danonymisation"
@ -5575,7 +5591,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Serveur mandataire web"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Accéder à lURL {url} avec le mandataire {proxy} sur tcp{kind}"
@ -7068,7 +7084,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Synchronisation de fichiers"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -7082,59 +7098,50 @@ msgstr ""
"recommande lutilisation du <a href=\"https://www.torproject.org/fr/download/"
"\">Navigateur Tor</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Un port SOCKS pour Tor est accessible sur votre {box_name} pour les réseaux "
"internes via le port TCP 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Service onion Tor"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Mandataire Socks Tor"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Relais Tor de type pont (« bridge relay »)"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Le port du relais Tor est disponible"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Abonné au transport obfs3"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Abonné au transport obfs4"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Service Onion"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Accédez à lURL {url} sur tcp{kind} via Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmez lutilisation de Tor pour {url} sur tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7171,11 +7178,11 @@ msgstr ""
"coller les informations de pont ici. Les transports pris en charge "
"actuellement sont aucun, obfs3, obfs4 et scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Activer le relais Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7187,11 +7194,11 @@ msgstr ""
"disposez de plus de 2 mégabits/s de bande passante en téléversement et en "
"téléchargement."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Activer le relais pont Tor"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7202,13 +7209,13 @@ msgstr ""
"relais Tor, rendant ainsi plus difficile la censure de ce nœud. Ceci aide "
"dautres personnes à contourner la censure."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Activer le service Tor caché"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7223,30 +7230,15 @@ msgstr ""
"services sélectionnés (comme un wiki ou un tchat) sans révéler son "
"emplacement. Ne pas utiliser pour linstant pour de lanonymisation forte."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Téléchargez les paquets logiciels via Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"En activant cette option, les logiciels seront téléchargés via le réseau Tor "
"lors des installations et des mises à niveau. Ce mode ajoute un niveau de "
"sécurité et de confidentialité supplémentaires pour le téléchargement des "
"logiciels."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Spécifiez au moins un pont upstream pour utiliser des ponts upstream."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Navigateur Tor"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot : Mandataire utilisant Tor"
@ -7258,15 +7250,59 @@ msgstr "Service Onion"
msgid "Ports"
msgstr "Ports"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Mise à jour de la configuration"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Erreur lors de la configuration de lapplication : {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Mandataire Socks Tor"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Mandataire Socks Tor"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Accédez à lURL {url} sur tcp{kind} via Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmez lutilisation de Tor pour {url} sur tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Téléchargez les paquets logiciels via Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"En activant cette option, les logiciels seront téléchargés via le réseau Tor "
"lors des installations et des mises à niveau. Ce mode ajoute un niveau de "
"sécurité et de confidentialité supplémentaires pour le téléchargement des "
"logiciels."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7668,7 +7704,7 @@ msgstr "Mise à jour régulière des fonctionnalités activée."
msgid "Starting distribution upgrade test."
msgstr "Démarrage du test de mise à niveau de la distribution."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7679,7 +7715,7 @@ msgstr ""
"Certaines applis demandent en outre que les comptes soient membres dun "
"groupe particulier pour pouvoir accéder à lapplication."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7691,19 +7727,29 @@ msgstr ""
"principale. En revanche, seuls les utilisateurs membres du groupe <em>admin</"
"em> peuvent modifier les applications ou changer les paramètres système."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Utilisateurs et groupes"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Accès à tous les services et à la configuration du système"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Vérification de lentrée LDAP « {search_item} »"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Le nom dutilisateur est déjà pris ou est réservé."
@ -8917,7 +8963,13 @@ msgstr "Mettre à jour"
msgid "Backup"
msgstr "Sauvegarder"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Démarrer linstallation"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Désinstaller"
@ -8935,11 +8987,11 @@ msgstr ""
"Lensemble données de lappli et sa configuration seront définitivement "
"perdus. Un appli peut toujours être réinstallée de zéro."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Paramètre inchangé"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "avant la désinstallation de {app_id}"
@ -8948,6 +9000,14 @@ msgstr "avant la désinstallation de {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Un port SOCKS pour Tor est accessible sur votre {box_name} pour les "
#~ "réseaux internes via le port TCP 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9776,9 +9836,6 @@ msgstr "Gujarati"
#~ "%(box_name)s, cela peut prendre jusquà plusieurs heures. Si "
#~ "l'installation est interrompue, vous devrez la relancer intégralement."
#~ msgid "Start setup"
#~ msgstr "Démarrer linstallation"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Linstallation dOpenVPN est en cours"
@ -10453,11 +10510,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Erreur lors de la configuration de la langue : {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "Défaut"
#~ msgid "Abort"
#~ msgstr "Annuler"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-12-30 10:51+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -839,7 +839,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1923,7 +1924,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1931,10 +1932,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2509,7 +2522,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4781,7 +4795,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6036,7 +6050,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6045,55 +6059,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6121,11 +6128,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6133,22 +6140,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6156,26 +6163,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6187,16 +6183,54 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6528,14 +6562,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6543,19 +6577,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7640,7 +7684,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7658,11 +7706,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "ફ્રિડમબોક્ષ"
@ -880,7 +880,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -2105,7 +2106,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2116,10 +2117,22 @@ msgstr ""
"છે {box_name}. ફાયરવૉલ સક્ષમ અને યોગ્ય રીતે રૂપરેખાંકિત રાખીને ઇન્ટરનેટથી સુરક્ષાના ભયને "
"ઘટાડે છે."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ફાયરવોલ"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2718,7 +2731,8 @@ msgstr "એપ્લીકેશનને પ્રસ્થાપિત કર
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -5044,7 +5058,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6314,7 +6328,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6323,57 +6337,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Dynamic DNS Service"
msgid "Onion service is version 3"
msgstr "ડાયનેમિક DNS સેવા"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6401,11 +6408,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6413,24 +6420,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Dynamic DNS Service"
msgid "Enable Tor Onion Service"
msgstr "ડાયનેમિક DNS સેવા"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6438,26 +6445,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6471,18 +6467,56 @@ msgstr "ડાયનેમિક DNS સેવા"
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "General Configuration"
msgid "Updating configuration"
msgstr "સામાન્ય ગોઠવણી"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission બીટ ટોરેન્ટ ક્લાયન્ટ છે જે વેબ UI ધરાવે છે."
@ -6838,14 +6872,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6853,19 +6887,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7997,7 +8041,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -8015,11 +8063,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "સેટિંગ યથાવત"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "फ्रीडमबोएक्स"
@ -934,7 +934,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "कॉन्फ़िगरेशन अपडेट किया."
@ -2206,7 +2207,7 @@ msgstr "पोर्ट"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2217,10 +2218,24 @@ msgstr ""
"को नियंत्रित करता है. फ़ायरवॉल सक्षम और ठीक से कॉंफ़िगर रखते हुए इंटरनेट से सुरक्षा खतरे का "
"जोखिम कम कर देता है."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "फ़ायरवॉल"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "डिफ़ॉल्ट एेप सेट"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, fuzzy, python-brace-format
#| msgid "<em>%(service_name)s</em> is available only on internal networks."
@ -2884,7 +2899,8 @@ msgstr "एप्लिकेशन सक्षम करें"
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "गुमनामी नेटवर्क"
@ -5455,7 +5471,7 @@ msgstr "प्रिवोक्सी"
msgid "Web Proxy"
msgstr "वेब प्रॉक्सी"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "{url} ऐकसेस करें प्रॉक्सी लेकर {proxy} टीसीपी पर{kind}"
@ -6938,7 +6954,7 @@ msgstr "सिंकतिन्ग"
msgid "File Synchronization"
msgstr "फ़ाइल सिंक्रनाइज़ेशन"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6951,60 +6967,52 @@ msgstr ""
"टो प्रोजेक्ट सिफारिश की है कि आप <a href=\"https://www.torproject.org/download/"
"download-easy.html.en\">टो ब्राउज़र </a> उपयोग करें."
#: plinth/modules/tor/__init__.py:30
#, fuzzy, python-brace-format
#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "एक टोर सॉक्स पोर्ट आपका %(box_name)s र उपलब्ध है, TCP पोर्ट ९०५० पर."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "टोर"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "टोर हिडन सर्विस"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "टोर सोक्स प्रॉक्सी"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "टो ब्रिज रीले"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "टोर रीले पोर्ट उपलब्ध है"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 ट्रांसपोर्ट पंजीकृत"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 ट्रांसपोर्ट पंजीकृत"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion service is version 3"
msgstr "हिडन सर्विस"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "यूआरएल एक्सेस करें {url} टीसीपी पर {kind} टोर के माध्यम से"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "टोर उपयोग की पुष्टि करें {url} पर टीसीपी पर {kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7039,11 +7047,11 @@ msgstr ""
"\">https://bridges.torproject.org/</a> और ब्रिज जानकारी यहाॅं से कॉपी/पेस्ट कर सकते "
"हैं. वर्तमान में समर्थित ट्रांसपोर्ट्स कोई नहीं, obfs3, obfs4 और scamblesuit हैं."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "टोर रीले सक्षम करें"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7054,11 +7062,11 @@ msgstr ""
"अगर आपके पास दो से अधिक मेगाबिट से अपलोड \n"
"आैर डाउनलोड बैंडविड्थ है यह करें."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "टोर ब्रिज रीले सक्षम करें"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7068,13 +7076,13 @@ msgstr ""
"और इस नोड सेंसर करने के लिए और मुश्किल होगा. यह दूसरों को सेंसरशिप से टाल करने के लिये मदद "
"करता है."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "टोर हिडन सर्विस सक्षम करें"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7088,28 +7096,15 @@ msgstr ""
"हिडन सर्विस {box_name} को इसके स्थान को प्रकट किए बिना चयनित सर्विसस प्रदान करने की "
"अनुमति देगी. स्ट्रॉन्ग गुमनामी के लिए इससे अभी न करें."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "टो पर सॉफ्टवेयर पैकेजस डाउनलोड करें"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"सक्षम होने पर सॉफ्टवेयर इंस्टालेशन और अपग्रेड के लिए टो नेटवर्क पर डाउनलोड किया जाएगा. "
"यह सॉफ़्टवेयर डाउनलोड के दौरान एकांत और सुरक्षा जोड़ता है."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "अपस्ट्रीम ब्रिजस उपयोग करने के लिए एक अपस्ट्रीम ब्रिजस निर्दिष्ट करें."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "टोर ब्राउजर"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "अोरबोट: टोर के साथ प्रॉक्सी"
@ -7123,18 +7118,60 @@ msgstr "हिडन सर्विस"
msgid "Ports"
msgstr "पोर्टस"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "टोर सोक्स प्रॉक्सी"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "टोर सोक्स प्रॉक्सी"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "यूआरएल एक्सेस करें {url} टीसीपी पर {kind} टोर के माध्यम से"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "टोर उपयोग की पुष्टि करें {url} पर टीसीपी पर {kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "टो पर सॉफ्टवेयर पैकेजस डाउनलोड करें"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"सक्षम होने पर सॉफ्टवेयर इंस्टालेशन और अपग्रेड के लिए टो नेटवर्क पर डाउनलोड किया जाएगा. "
"यह सॉफ़्टवेयर डाउनलोड के दौरान एकांत और सुरक्षा जोड़ता है."
#: plinth/modules/transmission/__init__.py:25
#, fuzzy
#| msgid "Deluge is a BitTorrent client that features a Web UI."
@ -7543,14 +7580,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7558,19 +7595,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "यूसरस और समूह"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "सब सर्विसस और सिस्टम सेटिंग्स तक पहुंच"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "एलडीएपी प्रविष्टि चेक करें \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "यूसरनाम लिया है या आरक्षित है."
@ -8802,7 +8849,13 @@ msgstr "अपडेट"
msgid "Backup"
msgstr "बैकअप"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "सटअप शुरु करें"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8821,11 +8874,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "सेटिंग स्थिर है"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8834,6 +8887,14 @@ msgstr ""
msgid "Gujarati"
msgstr ""
#, fuzzy, python-brace-format
#~| msgid ""
#~| "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr "एक टोर सॉक्स पोर्ट आपका %(box_name)s र उपलब्ध है, TCP पोर्ट ९०५० पर."
#~ msgid ""
#~ "Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect "
#~ "your Internet traffic. It can be used to bypass Internet filtering and "
@ -9529,9 +9590,6 @@ msgstr ""
#~ "होगा. इस पर निर्भर करता है कि आपका%(box_name)s कितना तेज़ है, ये घंटों भी लग सकते. "
#~ "अगर सेटअप बाधित हो गया, फिर से शरु कर सकता है."
#~ msgid "Start setup"
#~ msgstr "सटअप शुरु करें"
#~ msgid "OpenVPN setup is running"
#~ msgstr "ओपनवीपीएन सेटअप चल रहा है"
@ -10183,9 +10241,6 @@ msgstr ""
#~ msgid "Error setting default app: {exception}"
#~ msgstr "{exception}: डिफ़ॉल्ट एेप सेट करने में एरर"
#~ msgid "Default app set"
#~ msgstr "डिफ़ॉल्ट एेप सेट"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-10-24 18:39+0000\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Oldal forrása"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -911,7 +911,8 @@ msgstr "Adminisztrál"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Beállítások frissítve."
@ -2162,7 +2163,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr "Állomás/Cél/Érték"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2173,10 +2174,24 @@ msgstr ""
"hálózati forgalmát felügyeli. A folyamatosan aktív és megfelelően beállított "
"tűzfal csökkenti az internetről leselkedő biztonsági fenyegetések kockázatát."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Tűzfal"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Alapértelmezett alkalmazás beállítva"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2858,7 +2873,8 @@ msgstr "I2P alkalmazás kezelése"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonim hálózat"
@ -5515,7 +5531,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web proxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6982,7 +6998,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Fájlszinkronizáció"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6996,59 +7012,50 @@ msgstr ""
"torproject.org/download/download-easy.html.en\">Tor böngésző</a> használatát "
"javasolja."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Egy Tor SOCKS port elérhető a {box_name} eszközöd 9050-es TCP-portján a "
"belső hálózat számára."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor Onion szolgáltatás"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor híd relay"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor relay port elérhető"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 átvitel regisztrálva"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 átvitel regisztrálva"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Onion-szolgáltatás"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Hozzáférés a {url} URL-hez tcp{kind}-on Tor használatával"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Hagyd jóvá a Tor használatát {url} célcímhez tcp{kind} protokollon"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7086,11 +7093,11 @@ msgstr ""
"információit ide. A jelenleg támogatott átvitelek: none (nincs), obfs3, "
"obfs4 és scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Tor relay engedélyezése"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7102,11 +7109,11 @@ msgstr ""
"legalább 2 megabit/másodperc feltöltési és letöltési sávszélességgel "
"rendelkezel."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Tor híd relay engedélyezése"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7116,13 +7123,13 @@ msgstr ""
"helyett a Tor híd adatbázisban jelennek meg, ami megnehezíti a csomópont "
"cenzúrázását. Ez segít másoknak megkerülni a cenzúrát."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Tor rejtett szolgáltatás engedélyezése"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7137,29 +7144,15 @@ msgstr ""
"kiválasztott szolgáltatásokat nyújthasson (pl. wiki vagy chat) anélkül, hogy "
"felfedné a helyét. Ezt még ne használd erős anonimitás eléréséhez."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "A szoftvercsomagok Tor-on keresztüli letöltése"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Ha engedélyezett, akkor minden telepítéshez és frissítéshez szükséges "
"szoftver a Tor hálózaton keresztül töltődik le. Ez magasabb szintű "
"biztonságot jelent szoftverek letöltésekor."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Felmenő híd használatához adj meg legalább egyet."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor böngésző"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Tor proxy Android platformra"
@ -7171,15 +7164,58 @@ msgstr "Onion-szolgáltatás"
msgid "Ports"
msgstr "Portok"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Beállítások frissítése"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Hiba lépett fel az alkalmazás konfigurációja során: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Hozzáférés a {url} URL-hez tcp{kind}-on Tor használatával"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Hagyd jóvá a Tor használatát {url} célcímhez tcp{kind} protokollon"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "A szoftvercsomagok Tor-on keresztüli letöltése"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Ha engedélyezett, akkor minden telepítéshez és frissítéshez szükséges "
"szoftver a Tor hálózaton keresztül töltődik le. Ez magasabb szintű "
"biztonságot jelent szoftverek letöltésekor."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "A Transmission egy webes felülettel rendelkező BitTorrent-kliens."
@ -7574,7 +7610,7 @@ msgstr "Gyakori funkciófrissítések aktiválva."
msgid "Starting distribution upgrade test."
msgstr "Disztribúció frissítés engedélyezve"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7585,7 +7621,7 @@ msgstr ""
"alkalmazások megkövetelik továbbá, hogy a felhasználói fiók egy csoport "
"tagja legyen, hogy a felhasználó hozzáférhessen az alkalmazáshoz."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7597,19 +7633,29 @@ msgstr ""
"az <em>admin</em> csoport felhasználói módosíthatják az alkalmazásokat vagy "
"a rendszerbeállításokat."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Felhasználók és csoportok"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Hozzáférés az összes szolgáltatáshoz és rendszerbeállításhoz"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP-bejegyzés ellenőrzése: \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "A felhasználónév foglalt."
@ -8837,7 +8883,13 @@ msgstr "Frissítés"
msgid "Backup"
msgstr "Biztonsági mentések"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Beállítás elindítása"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8856,11 +8908,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "A beállítás változatlan"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8869,6 +8921,14 @@ msgstr ""
msgid "Gujarati"
msgstr "Gudzsaráti"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Egy Tor SOCKS port elérhető a {box_name} eszközöd 9050-es TCP-portján a "
#~ "belső hálózat számára."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9677,9 +9737,6 @@ msgstr "Gudzsaráti"
#~ "akár órákig is eltarthat. Ha a beállítás megszakad, akkor később újra "
#~ "lehet kezdeni."
#~ msgid "Start setup"
#~ msgstr "Beállítás elindítása"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN beállítás fut"
@ -10343,9 +10400,6 @@ msgstr "Gudzsaráti"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Az alapértelmezett alkalmazás beállítása sikertelen: {exception}"
#~ msgid "Default app set"
#~ msgstr "Alapértelmezett alkalmazás beállítva"
#~ msgid "Abort"
#~ msgstr "Megszakítás"

View File

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Indonesian (FreedomBox)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/"
@ -23,7 +23,7 @@ msgstr "Sumber halaman"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -901,7 +901,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Konfigurasi diperbarui."
@ -2162,7 +2163,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2173,10 +2174,22 @@ msgstr ""
"masuk dan keluar pada {box_name} Anda. Menjaga firewall diaktifkan dan "
"dikonfigurasi dengan benar mengurangi risiko ancaman keamanan dari Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2842,7 +2855,8 @@ msgstr "Kelola aplikasi I2P"
msgid "I2P"
msgstr "I2p"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Jaringan Anonimitas"
@ -5195,7 +5209,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Proksi Web"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Akses {url} dengan proksi {proxy} pada tcp{kind}"
@ -6491,7 +6505,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6500,57 +6514,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Service"
msgid "Onion service is version 3"
msgstr "Layanan"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6578,11 +6585,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Aktifkan Tor relay"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6590,24 +6597,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor relay"
msgid "Enable Tor Onion Service"
msgstr "Aktifkan Tor relay"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6615,26 +6622,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6648,18 +6644,58 @@ msgstr "Layanan"
msgid "Ports"
msgstr "Port"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Terjadi kesalahan selama konfigurasi."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Kesalahan pemasangan aplikasi: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2p proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7018,14 +7054,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "Pembaruan distribusi dinonaktifkan"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7033,19 +7069,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8171,7 +8217,13 @@ msgstr "Memperbarui"
msgid "Backup"
msgstr "Cadangan"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Jalankan pengaturan"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8190,11 +8242,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8693,9 +8745,6 @@ msgstr "Bahasa Gujarat"
#~ msgid "Disk Name"
#~ msgstr "Nama"
#~ msgid "Start setup"
#~ msgstr "Jalankan pengaturan"
#~ msgid "Setup completed."
#~ msgstr "Pengaturan selesai."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Pagina di origine"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -898,7 +898,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -2121,7 +2122,7 @@ msgstr "Porta"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2133,10 +2134,24 @@ msgstr ""
"adeguatamente configurato riduce i rischi di attacchi informatici dalla rete "
"Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "Default"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2818,7 +2833,8 @@ msgstr "Gestione dell'applicazione I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
#, fuzzy
msgid "Anonymity Network"
msgstr "Rete di anonimato"
@ -5331,7 +5347,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web Proxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Accesso {url} con proxy {proxy} su tcp{kind}"
@ -6619,7 +6635,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6628,57 +6644,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Servizio Onion"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6706,11 +6715,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6718,24 +6727,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Abilita Tor Hidden Service"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6743,26 +6752,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6774,16 +6772,56 @@ msgstr "Servizio Onion"
msgid "Ports"
msgstr "Ports"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Aggiornamento della configurazione"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Errore durante l'installazione dell'applicazione: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "Proxy I2P"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission è un client BitTorrent che può essere gestito da Web UI."
@ -7124,14 +7162,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7139,19 +7177,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8248,7 +8296,13 @@ msgstr ""
msgid "Backup"
msgstr "Backup"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Avvia setup"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Disinstalla"
@ -8265,11 +8319,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Impostazioni invariate"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8798,9 +8852,6 @@ msgstr "Gujarati"
#~ "può impiegare anche delle ore. Se il setup viene interroto, è possibile "
#~ "riavviarlo."
#~ msgid "Start setup"
#~ msgstr "Avvia setup"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Setup OpenVPN in corso"
@ -9302,11 +9353,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Errore impostazione nome di dominio: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "Default"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-05-07 23:50+0000\n"
"Last-Translator: Nobuhiro Iwamatsu <iwamatsu@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "ページのソース"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -835,7 +835,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1917,7 +1918,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1925,10 +1926,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2501,7 +2514,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4765,7 +4779,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6014,7 +6028,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6023,55 +6037,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6099,11 +6106,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6111,22 +6118,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6134,26 +6141,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6165,15 +6161,53 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6499,14 +6533,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6514,19 +6548,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7594,7 +7638,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7610,11 +7658,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2020-07-16 16:41+0000\n"
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
"Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್"
@ -835,7 +835,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1917,7 +1918,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1925,10 +1926,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2501,7 +2514,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4765,7 +4779,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6016,7 +6030,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6025,55 +6039,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6101,11 +6108,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6113,22 +6120,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6136,26 +6143,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6167,15 +6163,53 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6501,14 +6535,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6516,19 +6550,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7596,7 +7640,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7612,11 +7660,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -837,7 +837,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1919,7 +1920,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1927,10 +1928,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2503,7 +2516,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4767,7 +4781,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6016,7 +6030,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6025,55 +6039,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6101,11 +6108,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6113,22 +6120,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6136,26 +6143,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6167,15 +6163,55 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6501,14 +6537,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6516,19 +6552,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7596,7 +7642,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7612,11 +7662,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -836,7 +836,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1918,7 +1919,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1926,10 +1927,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2502,7 +2515,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4766,7 +4780,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6015,7 +6029,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6024,55 +6038,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6100,11 +6107,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6112,22 +6119,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6135,26 +6142,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6166,15 +6162,55 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6500,14 +6536,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6515,19 +6551,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7595,7 +7641,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7611,11 +7661,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-11-07 10:05+0000\n"
"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@ -36,7 +36,7 @@ msgstr "Sidekilde"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -923,7 +923,8 @@ msgstr "admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Konfigurering oppdatert."
@ -2185,7 +2186,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2196,10 +2197,24 @@ msgstr ""
"utgående nettverkstrafikk på din {box_name}. Å holde en brannmur aktivert og "
"riktig konfigurert, reduserer risikoen for sikkerhetstrusler fra Internett."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brannmur"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Forvalgsprogram satt"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2892,7 +2907,8 @@ msgstr "Håndter I2P-program"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonymitetsnettverk"
@ -5526,7 +5542,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Mellomtjener for nettet"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tilgang {url} med mellomtjener {proxy} på tcp{kind}"
@ -7000,7 +7016,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Filsynkronisering"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -7014,59 +7030,50 @@ msgstr ""
"href=\"https://www.torproject.org/download/download-easy.html.en\">Tor "
"Browser</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"En Tor SOCKS-port er tilgjengelig på din {box_name} for interne nettverk på "
"TCP port 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor-løktjeneste"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks-mellomtjener"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor bro-stafettvideresendingsoppsett"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor relay-port tilgjengelig"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3-transport registrert"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4-transport registrert"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Løktjeneste"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Adgang til URL {url} på tcp{kind} via Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekreft Tor-bruk på {url} via tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7102,11 +7109,11 @@ msgstr ""
"bridges.torproject.org/</a> og kopiere/lime inn broinfoen her. For "
"øyeblikket støttes ingen transporter, obfs3, obfs4 og scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Aktiver Tor-videresending"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7117,11 +7124,11 @@ msgstr ""
"båndbredde til Tor-nettverket. Gjør dette hvis båndbredden din for "
"opplasting og nestlasting er mer enn 2 Mbits/s."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Aktiver Tor-bru-videresending"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7131,13 +7138,13 @@ msgstr ""
"stedet for den offentlige databasen over Tor-videresendere, hvilket gjør det "
"vanskeligere å sensurere denne noden. Dette hjelper andre å unngå sensur."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Aktiver skjult Tor-tjeneste"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7152,29 +7159,15 @@ msgstr ""
"eller nettprat) uten å avsløre sin beliggenhet. Ikke bruk dette for å oppnå "
"sterk anonymitet enda."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Last ned programpakker via Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Når den er aktivert, vil programvaren lastes ned over Tor-nettverket for "
"installasjoner og oppgraderinger. Dette legger til en viss grad privatliv "
"(personvern) og sikkerhet under nedlasting av programvare."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Angi minst én oppstrøms bro for å bruke oppstrøms broer."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor-nettleseren"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Mellomtjener med Tor"
@ -7186,16 +7179,59 @@ msgstr "Løktjeneste"
msgid "Ports"
msgstr "Porter"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Oppdaterer oppsett"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Feil ved programinstallering: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks-mellomtjener"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks-mellomtjener"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Adgang til URL {url} på tcp{kind} via Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekreft Tor-bruk på {url} via tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Last ned programpakker via Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Når den er aktivert, vil programvaren lastes ned over Tor-nettverket for "
"installasjoner og oppgraderinger. Dette legger til en viss grad privatliv "
"(personvern) og sikkerhet under nedlasting av programvare."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission er en BitTorrent-klient som har et Web-grensesnitt."
@ -7587,7 +7623,7 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "Starter test av distribusjonsoppgradering."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7598,7 +7634,7 @@ msgstr ""
"kan kreve at en brukerkonto er medlem av en gruppe for å gi brukeren tilgang "
"til programmet."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7609,19 +7645,29 @@ msgstr ""
"liste over programmer som er relevante for dem på hjemmesiden. Dog kan kun "
"brukere av <em>admin</em>-gruppen endre programmer eller systeminnstillinger."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Brukere og grupper"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Tilgang til alle tjenester og systeminnstillinger"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Sjekk LDAP-oppføring «{search_item}»"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Brukernavnet er opptatt eller reservert."
@ -8824,7 +8870,13 @@ msgstr "Oppdater"
msgid "Backup"
msgstr "Sikkerhetskopier"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Start oppsett"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8844,11 +8896,11 @@ msgstr ""
"All programdata og oppsett blir permanent borte. Programmet kan installeres "
"på nytt igjen."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Oppsett uendret"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "før avinstallering av {app_id}"
@ -8857,6 +8909,14 @@ msgstr "før avinstallering av {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "En Tor SOCKS-port er tilgjengelig på din {box_name} for interne nettverk "
#~ "på TCP port 9050."
#~ msgid ""
#~ "Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect "
#~ "your Internet traffic. It can be used to bypass Internet filtering and "
@ -9613,9 +9673,6 @@ msgstr "Gujarati"
#~ "tid. Avhengig av hvor fort din %(box_name)s er, kan det hende at det tar "
#~ "timer. Hvis oppsettingen blir avbrutt, kan du starte den igjen."
#~ msgid "Start setup"
#~ msgstr "Start oppsett"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN-oppsett kjører"
@ -10260,9 +10317,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Feil ved endring av forvalgsprogram: {exception}"
#~ msgid "Default app set"
#~ msgstr "Forvalgsprogram satt"
#~ msgid "Abort"
#~ msgstr "Anuller"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"PO-Revision-Date: 2023-06-10 15:51+0000\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-07-19 18:07+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/"
"freedombox/nl/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18-dev\n"
"X-Generator: Weblate 5.0-dev\n"
"X-Language: nl_NL\n"
"X-Source-Language: C\n"
@ -30,7 +30,7 @@ msgstr "Paginabron"
msgid "Static configuration {etc_path} is setup properly"
msgstr "Statische configuratie {etc_path} is correct ingesteld"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -914,7 +914,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Configuratie bijgewerkt."
@ -2153,7 +2154,7 @@ msgstr "Poort"
msgid "Host/Target/Value"
msgstr "Host/Target/Value"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2164,10 +2165,24 @@ msgstr ""
"datastromen van {box_name} stuurt. Een geactiveerde en goed ingestelde "
"firewall vermindert het risico op beveiligingsrisico's vanuit internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "Standaard"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2854,7 +2869,8 @@ msgstr "I2P-toepassing beheren"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonimiteitsnetwerk"
@ -3842,7 +3858,7 @@ msgid ""
"each type of name, it is shown whether the HTTP, HTTPS, and SSH services are "
"enabled or disabled for incoming connections through the given name."
msgstr ""
"Name Services biedt een overzicht van de manieren waarop {box_name} "
"Domeindiensten biedt een overzicht van de manieren waarop {box_name} "
"bereikbaar is via het openbare internet: domeinnaam, Tor-onionservice en "
"Pagekite. Voor elk type naam wordt weergegeven of de HTTP-, HTTPS- en SSH-"
"services zijn ingeschakeld of uitgeschakeld voor binnenkomende verbindingen "
@ -3850,7 +3866,7 @@ msgstr ""
#: plinth/modules/names/__init__.py:43
msgid "Name Services"
msgstr "Domeinnamen"
msgstr "Domeindiensten"
#: plinth/modules/names/components.py:12
msgid "All"
@ -5253,7 +5269,7 @@ msgstr "Deze dienst is al beschikbaar als een standaarddienst."
#: plinth/modules/pagekite/forms.py:169
msgid "Added custom service"
msgstr "Aangepaste dienst toevoegen"
msgstr "Aangepaste dienst toegevoegd"
#: plinth/modules/pagekite/forms.py:172
msgid "This service already exists"
@ -5494,7 +5510,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web Proxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Gebruik {url} via proxy {proxy} op tcp{kind}"
@ -5707,6 +5723,11 @@ msgid ""
"uncheck this option. When unchecked, a text entry field is added to the "
"login page so the user can specify to which account they wish to connect."
msgstr ""
"Als dit ingeschakeld is kunnen gebruikers alleen mails lezen en verzenden "
"via deze {box_name}. Om Roundcube te gebruiken met een extern e-mailaccount, "
"zoals Gmail, moet deze optie uitgevinkt zijn. Als dit uitgeschakeld is wordt "
"een tekstinvoerveld toegevoegd aan de inlogpagina, zodat de gebruiker kan "
"aangeven met welk account verbinding moet worden gemaakt."
#: plinth/modules/rssbridge/__init__.py:21
msgid ""
@ -6944,7 +6965,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Bestandssynchronisatie"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6958,57 +6979,48 @@ msgstr ""
"de <a href=\"https://www.torproject.org/download/download-easy.html.en\">Tor "
"Browser</a> aan."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Een Tor SOCKS poort is beschikbaar op {box_name} voor interne netwerken op "
"TCP poort 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor-Onion Dienst"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks Proxy"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor relay poort beschikbaar"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport geregistreerd"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport geregistreerd"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr "Onion service is versie 3"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Gebruik URL {url} op tcp{kind} via Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bevestig Tor gebruik met {url} via tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7046,11 +7058,11 @@ msgstr ""
"Momenteel worden de volgende transportmethoden ondersteund; geen, obfs3, "
"obfs4 en scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Tor Relay Inschakelen"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7061,11 +7073,11 @@ msgstr ""
"bandbreedte delen met het Tor-netwerk. Doe dit alleen als er meer dan 2 "
"megabit/s upload- en download bandbreedte beschikbaar is."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Tor Bridge Relay inschakelen"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7076,11 +7088,11 @@ msgstr ""
"moeilijker om dit knooppunt te censureren. Dit helpt anderen censuur te "
"omzeilen."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr "Tor Onion Service inschakelen"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -7091,31 +7103,17 @@ msgstr ""
"(zoals wiki of chat) kan aanbieden zonder de locatie te onthullen. Deze "
"dienst nog niet gebruiken als sterke anonimiteit vereist is."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Download Softwarepakketen via Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Indien ingeschakeld, wordt software door middel van het Tor netwerk "
"binnengehaald. Dit voegt een mate van privacy en veiligheid tijdens software "
"downloads toe."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Geef ten minste één upstream brug in voor het gebruik van de upstream "
"bruggen."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor Browser"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy met Tor"
@ -7127,15 +7125,58 @@ msgstr "Onion Service"
msgid "Ports"
msgstr "Poorten"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Configuratie bijwerken"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Fout bij het configureren van de toepassing: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks Proxy"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Gebruik URL {url} op tcp{kind} via Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bevestig Tor gebruik met {url} via tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Download Softwarepakketen via Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Indien ingeschakeld, wordt software door middel van het Tor netwerk "
"binnengehaald. Dit voegt een mate van privacy en veiligheid tijdens software "
"downloads toe."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission is een BitTorrent-client met een webinterface."
@ -7521,7 +7562,7 @@ msgstr "Tussentijdse Software Updates zijn ingeschakeld."
msgid "Starting distribution upgrade test."
msgstr "Start de distributie upgrade test."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7532,7 +7573,7 @@ msgstr ""
"apps moet een gebruikersaccount deel uitmaken van een groep om de gebruiker "
"toegang te geven tot de toepassing."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7544,19 +7585,29 @@ msgstr ""
"die lid zijn van de <em>admin</em> -groep mogen toepassings- of "
"systeeminstellingen wijzigen."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Gebruikers en Groepen"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Toegang tot alle diensten en systeeminstellingen"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Zoek LDAP item \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Gebruikersnaam is in gebruik of is gereserveerd."
@ -8754,7 +8805,13 @@ msgstr "Update"
msgid "Backup"
msgstr "Back-up"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Setup starten"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Verwijderen"
@ -8772,11 +8829,11 @@ msgstr ""
"Alle toepassings-gegevens en configuratie gaan permanent verloren. de "
"toepassing kan opnieuw vers worden geïnstalleerd."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Instelling onveranderd"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "voor het verwijderen van {app_id}"
@ -8785,6 +8842,14 @@ msgstr "voor het verwijderen van {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Een Tor SOCKS poort is beschikbaar op {box_name} voor interne netwerken "
#~ "op TCP poort 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9597,9 +9662,6 @@ msgstr "Gujarati"
#~ "Afhankelijk van de snelheid van %(box_name)s kan dit zelfs uren duren. "
#~ "Als de installatie wordt onderbroken, kan deze opnieuw gestart worden."
#~ msgid "Start setup"
#~ msgstr "Setup starten"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN setup draait"
@ -10290,11 +10352,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Taal instellen mislukt: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "Standaard"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Źródło strony"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -904,7 +904,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Zaktualizowano ustawienia."
@ -2144,7 +2145,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2155,10 +2156,22 @@ msgstr ""
"ruch sieciowy na twoim {box_name}. Włączony i poprawnie skonfigurowany "
"firewall redukuje ryzyko zagrożeń z Internetu."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2794,7 +2807,8 @@ msgstr "Aktywuj aplikację"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
#, fuzzy
#| msgid "Go to Networks"
msgid "Anonymity Network"
@ -5153,7 +5167,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6473,7 +6487,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6482,57 +6496,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Dynamic DNS Service"
msgid "Onion service is version 3"
msgstr "Usługa dynamicznego DNS"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6560,11 +6567,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Włącz przekaźnik Tora"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6572,24 +6579,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor relay"
msgid "Enable Tor Onion Service"
msgstr "Włącz przekaźnik Tora"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6597,26 +6604,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6630,18 +6626,58 @@ msgstr "Usługa dynamicznego DNS"
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Podczas konfiguracji wystąpił błąd."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Błąd podczas instalowania aplikacji: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission to klient BitTorrent z interfejsem webowym."
@ -7003,14 +7039,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "Rejestracja użytkowników wyłączona"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7018,19 +7054,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -8232,7 +8278,11 @@ msgstr ""
msgid "Backup"
msgstr "Kopie zapasowe"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -8251,11 +8301,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Ustawienie bez zmian"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-05-22 15:50+0000\n"
"Last-Translator: Frederico Gomes <fefekrzr@gmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Fonte da página"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "Freedombox"
@ -922,7 +922,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Configuração atualizada."
@ -2072,7 +2073,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2080,10 +2081,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2689,7 +2702,8 @@ msgstr "Ativar aplicação"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -5052,7 +5066,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Acesse {url} com proxy {proxy} em tcp{kind}"
@ -6328,7 +6342,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6337,57 +6351,50 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Service discovery server is running"
msgid "Onion service is version 3"
msgstr "O Servidor da descoberta do serviço está a correr"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6415,13 +6422,13 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
#, fuzzy
#| msgid "Enable network time"
msgid "Enable Tor relay"
msgstr "Ativar tempo da rede"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6429,24 +6436,24 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable service discovery"
msgid "Enable Tor Onion Service"
msgstr "Permitir descoberta do serviço"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6454,26 +6461,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6485,18 +6481,58 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "General Configuration"
msgid "Updating configuration"
msgstr "Configuração Geral"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Erro a instalar a aplicação: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6840,14 +6876,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "A iniciar teste de atualização de distribuição."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6855,19 +6891,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7996,7 +8042,11 @@ msgstr ""
msgid "Backup"
msgstr "Cópia de segurança"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8014,11 +8064,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Definição inalterada"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-10-10 18:05+0000\n"
"Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Исходный код страницы"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -912,7 +912,8 @@ msgstr "Админ"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Конфигурация обновлена."
@ -2147,7 +2148,7 @@ msgstr "Порт"
msgid "Host/Target/Value"
msgstr "Хост/Цель/Значение"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2159,10 +2160,24 @@ msgstr ""
"правильно настроенным, чтобы уменьшить риск информационной опасности из "
"Интернета."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Брандмауэр"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default app set"
msgid "Default zone is external"
msgstr "Приложение по умолчанию настроено"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2833,7 +2848,8 @@ msgstr "Управление приложением I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Анонимная сеть"
@ -5477,7 +5493,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web-прокси"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Доступ к {url} с прокси {proxy} на tcp{kind}"
@ -6930,7 +6946,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Синхронизация файлов"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6944,58 +6960,50 @@ msgstr ""
"href=\"https://www.torproject.org/download/download-easy.html.en\">Tor "
"Browser</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Порт Tor SOCKS доступен на {box_name} для внутренних сетей на TCP-порту 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Сервис Tor Onion"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks прокси"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Ретранслятор Tor типа мост"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Доступен порт трансляции Tor"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 транспорт зарегестрирован"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 транспорт зарегистрирован"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Onion сервис"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Доступ к {url} по tcp{kind} через Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Подтверждение использования Tor в {url} по tcp {kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7032,11 +7040,11 @@ msgstr ""
"org/\">https://bridges.torproject.org/</a>и скопировать/вставить информацию "
"сюда. В данное время поддерживаются «none», «obfs3», «obfs4» и «scamblesuit»."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Включить ретранслятор Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7047,11 +7055,11 @@ msgstr ""
"часть пропускной способности сети Tor. Сделайте это, если у вас более ширина "
"канала более 2Мбит/c."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Ретранслятор Tor типа мост"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7061,13 +7069,13 @@ msgstr ""
"общественной базы данных ретрансляции Tor. Это помогает другим обойти "
"цензуру."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Включить скрытый сервис Tor"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7082,29 +7090,15 @@ msgstr ""
"wiki или чат), не раскрывая своего местоположения. Не используйте это для "
"повышения анонимности."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Скачать пакеты программного обеспечения через Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Когда включен, программное обеспечение будет загружено через сеть Tor для "
"установки и обновления. Это добавляет определенную степень безопасности и "
"конфиденциальности во время загрузки программного обеспечения."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Укажите по крайней мере один upstream bridge чтобы использовать их."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor Browser"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Прокси с Tor"
@ -7116,18 +7110,61 @@ msgstr "Onion сервис"
msgid "Ports"
msgstr "Порты"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Произошла ошибка во время настройки."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Ошибка при установке приложения: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks прокси"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks прокси"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Доступ к {url} по tcp{kind} через Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Подтверждение использования Tor в {url} по tcp {kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Скачать пакеты программного обеспечения через Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Когда включен, программное обеспечение будет загружено через сеть Tor для "
"установки и обновления. Это добавляет определенную степень безопасности и "
"конфиденциальности во время загрузки программного обеспечения."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission это клиент BitTorrent, имеющий веб-интерфейс."
@ -7521,7 +7558,7 @@ msgstr "Активированы частые обновления функци
msgid "Starting distribution upgrade test."
msgstr "Обновление дистрибутива включено"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7533,7 +7570,7 @@ msgstr ""
"запись пользователя была частью группы, чтобы разрешить пользователю доступ "
"к приложению."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7545,19 +7582,29 @@ msgstr ""
"пользователи группы <em>admin</em> могут изменять приложения или системные "
"настройки."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Пользователи и группы"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Доступ ко всем сервисам и настройкам системы"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Проверьте запись LDAP \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Имя пользователя уже занято."
@ -8781,7 +8828,13 @@ msgstr "Обновление"
msgid "Backup"
msgstr "Резервные копии"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Запуск программы установки"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8800,11 +8853,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Настройки без изменений"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8813,6 +8866,14 @@ msgstr ""
msgid "Gujarati"
msgstr "Гуджарати"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Порт Tor SOCKS доступен на {box_name} для внутренних сетей на TCP-порту "
#~ "9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9610,9 +9671,6 @@ msgstr "Гуджарати"
#~ "занять продолжительное время. Если установка прерывается, вы можете "
#~ "начать её снова."
#~ msgid "Start setup"
#~ msgstr "Запуск программы установки"
#~ msgid "OpenVPN setup is running"
#~ msgstr "Выполняется установка OpenVPN"
@ -10208,9 +10266,6 @@ msgstr "Гуджарати"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Ошибка настройки приложения по умолчанию: {exception}"
#~ msgid "Default app set"
#~ msgstr "Приложение по умолчанию настроено"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-04-27 13:32+0000\n"
"Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n"
"Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "ෆ්‍රීඩම්බොක්ස්"
@ -835,7 +835,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1917,7 +1918,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1925,10 +1926,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2501,7 +2514,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4765,7 +4779,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6014,7 +6028,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6023,55 +6037,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6099,11 +6106,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6111,22 +6118,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6134,26 +6141,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6165,15 +6161,53 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6499,14 +6533,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6514,19 +6548,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7594,7 +7638,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7610,11 +7658,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -940,7 +940,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -2090,7 +2091,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2098,10 +2099,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2699,7 +2712,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4992,7 +5006,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6264,7 +6278,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6273,55 +6287,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6349,11 +6356,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6361,22 +6368,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6384,26 +6391,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6415,18 +6411,58 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "Configuration updated"
msgid "Updating configuration"
msgstr "Konfiguracija je posodobljena"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Napaka ob nameščanju aplikacije: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6776,14 +6812,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6791,19 +6827,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7926,7 +7972,11 @@ msgstr ""
msgid "Backup"
msgstr "Rezervne kopije"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7945,11 +7995,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-02-25 11:36+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Burim faqeje"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -907,7 +907,8 @@ msgstr "Përgjegjës"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Formësimi u përditësua."
@ -2158,7 +2159,7 @@ msgstr "Portë"
msgid "Host/Target/Value"
msgstr "Strehë/Objektiv/Vlerë"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2169,10 +2170,22 @@ msgstr ""
"në rrjet te {box_name} juaj. Mbajta e një firewall-i të aktivizuar dhe të "
"formësuar si duhet ul rrezikun e kërcënimeve të sigurisë nga Interneti."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2847,7 +2860,8 @@ msgstr "Administroni aplikacion I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Rrjet Anonimiteti"
@ -5502,7 +5516,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Ndërmjetës Web"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Hapni {url} me ndërmjetësin {proxy} në tcp{kind}"
@ -6964,7 +6978,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Njëkohësim Kartelash"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6978,59 +6992,50 @@ msgstr ""
"përdorni <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">Shfletuesin Tor</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Një portë SOCKS Tor-i për rrjete të brendshëm në {box_name} tuaj gjendet në "
"portën TCP 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Shërbim Onion Tor"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Ndërmjetës SOCKS Tor"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Rele Ure Tor"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Portë releje Tor e gatshme"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "U regjistruar transport Obfs3"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "U regjistruar transport Obfs3"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Shërbim Onion"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "URL hyrjesh {url} në tcp{kind} përmes Tor-i"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Ripohoni përdorim Tor-i te {url} në tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7068,11 +7073,11 @@ msgstr ""
"em&gt;obfs3&lt;/em&gt;, &lt;em&gt;obfs4&lt;/em&gt; dhe &lt;em&gt;"
"scamblesuit&lt;/em&gt;."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Aktivizo rele Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7083,11 +7088,11 @@ msgstr ""
"dhurojë gjerësi bande për rrjetin Tor. Bëjeni këtë nëse keni gjerësi bande "
"ngarkimesh dhe shkarkimesh më tepër se 2 megabite/s."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Aktivizo rele ure Tor"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7098,13 +7103,13 @@ msgstr ""
"më të vështirë censurimin e kësaj nyjeje. Kjo i ndihmon të tjerët të "
"anashkalojnë censurimin."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Aktivizo Shërbim Tor të Fshehur"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7119,30 +7124,16 @@ msgstr ""
"përzgjedhura (bie fjala, wiki, ose fjalosje) pa treguar vendndodhjen e tyre. "
"Mos e përdorni këtë ende për anonimitet të fortë."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Shkarkoni paketa software përmes Tor-i"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Kur aktivizohet, për instalime dhe përmirësime software-i do të shkarkohet "
"përmes rrjeti Tor. Kjo shton një shkallë privatësie dhe sigurie gjatë "
"shkarkimit të software-it."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
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:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Shfletuesi Tor"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Ndërmjetës me Tor"
@ -7154,15 +7145,58 @@ msgstr "Shërbim Onion"
msgid "Ports"
msgstr "Porta"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Po përditësohet formësimi"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Gabim në formësimin e aplikacionit: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Ndërmjetës SOCKS Tor"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Ndërmjetës SOCKS Tor"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "URL hyrjesh {url} në tcp{kind} përmes Tor-i"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Ripohoni përdorim Tor-i te {url} në tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Shkarkoni paketa software përmes Tor-i"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Kur aktivizohet, për instalime dhe përmirësime software-i do të shkarkohet "
"përmes rrjeti Tor. Kjo shton një shkallë privatësie dhe sigurie gjatë "
"shkarkimit të software-it."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission është një klient BitTorrent me një ndërfaqe web."
@ -7557,7 +7591,7 @@ msgstr "Përditësime të shpeshta veçorish të aktivizuara."
msgid "Starting distribution upgrade test."
msgstr "Po fillohet provë përmirësimi shpërndarjeje."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7568,7 +7602,7 @@ msgstr ""
"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
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7580,19 +7614,29 @@ msgstr ""
"vetëm përdoruesit e grupit <em>përgjegjës</em> mund të ndryshojnë "
"aplikacionet, apo rregullimet e sistemit."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Përdorues dhe Grupe"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Hyrje te krejt shërbimet dhe rregullime të sistemit"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrolloni zërin LDAP \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Emri i përdoruesit është i zënë, ose i rezervuar."
@ -8791,7 +8835,11 @@ msgstr "Përditësoje"
msgid "Backup"
msgstr "Kopjeruajtje"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Çinstaloje"
@ -8809,11 +8857,11 @@ msgstr ""
"Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. "
"Aplikacioni mund të instalohet sërish nga e para."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Rregullim i pandryshuar"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "para çinstalimit të {app_id}"
@ -8822,6 +8870,14 @@ msgstr "para çinstalimit të {app_id}"
msgid "Gujarati"
msgstr "Gujaratase"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Një portë SOCKS Tor-i për rrjete të brendshëm në {box_name} tuaj gjendet "
#~ "në portën TCP 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Izvorna stranica"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "KutijaSlobode"
@ -898,7 +898,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -2010,7 +2011,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2018,10 +2019,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2594,7 +2607,8 @@ msgstr ""
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4878,7 +4892,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6138,7 +6152,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6147,55 +6161,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6223,11 +6230,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6235,22 +6242,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6258,26 +6265,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6289,18 +6285,58 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "Configuration updated"
msgid "Updating configuration"
msgstr "Konfiguracija sačuvana"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Greška prilikom instaliranja aplikacije: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P Proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6636,14 +6672,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6651,19 +6687,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7747,7 +7793,11 @@ msgstr ""
msgid "Backup"
msgstr "Sigurnosne kopije"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7765,11 +7815,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-02-26 18:38+0000\n"
"Last-Translator: Michael Breidenbach <leahc@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Sidkälla"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -910,7 +910,8 @@ msgstr "Admin"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Konfiguration uppdaterad."
@ -2140,7 +2141,7 @@ msgstr "Port"
msgid "Host/Target/Value"
msgstr "Värd/Mål/Värde"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2151,10 +2152,22 @@ msgstr ""
"nätverkstrafiken på din {box_name}. Att ha en brandvägg aktiverad och "
"korrekt konfigurerad minskar risken för säkerhetshot från Internet."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brandvägg"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2827,7 +2840,8 @@ msgstr "Hantera I2P appen"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Anonymitetsnätverk"
@ -5454,7 +5468,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Webbproxy"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Anslut till {url} med proxy {proxy} på TCP {kind}"
@ -6897,7 +6911,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Filsynkronisering"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6911,59 +6925,50 @@ msgstr ""
"använder <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">TOR Browser</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"En Tor SOCKS-port finns tillgängligt på din {box_name} för interna nätverk "
"på TCP-port 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor Onion service"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor SOCKS-proxy"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor relä port tillgänglig"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport registrerad"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport registrerad"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "Onion tjänst"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tillgång URL {url} på TCP {kind} via Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekräfta Tor-användning vid {url} på TCP {kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7001,11 +7006,11 @@ msgstr ""
"informationen här. För närvarande stöds transporter är ingen, obfs3, obfs4 "
"och scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Aktivera Tor Relay"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7016,11 +7021,11 @@ msgstr ""
"bandbredd till Tor-nätverket. Gör detta om du har mer än 2 megabits/s av "
"uppladdning och nedladdning bandbredd."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Aktivera Tor Bridge Relay"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7030,13 +7035,13 @@ msgstr ""
"stället för public Tor Relay-databasen, vilket gör det svårare att censurera "
"den här noden. Detta hjälper andra att kringgå censur."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "Aktivera Tor Hidden service"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -7051,29 +7056,15 @@ msgstr ""
"tjänster (till exempel wiki eller chatt) utan att avslöja dess plats. Använd "
"inte detta för stark anonymitet ännu."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Ladda ner mjukvarupaket över Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"När den är aktiverad kommer programvara att laddas ner via Tor-nätverket för "
"installationer och uppgraderingar. Detta ger en viss grad av integritet och "
"säkerhet under Programnedladdningar."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Ange minst en uppströms bro för att använda uppströms broar."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "TOR Browser"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: proxy med Tor"
@ -7085,15 +7076,58 @@ msgstr "Onion tjänst"
msgid "Ports"
msgstr "Portar"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Uppdatera konfigurationen"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Fel vid konfigurering av appen: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor SOCKS-proxy"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor SOCKS-proxy"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tillgång URL {url} på TCP {kind} via Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekräfta Tor-användning vid {url} på TCP {kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Ladda ner mjukvarupaket över Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"När den är aktiverad kommer programvara att laddas ner via Tor-nätverket för "
"installationer och uppgraderingar. Detta ger en viss grad av integritet och "
"säkerhet under Programnedladdningar."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -7483,7 +7517,7 @@ msgstr "Frekventa funktionsuppdateringar aktiverade."
msgid "Starting distribution upgrade test."
msgstr "Startar distributionsuppgraderingstest."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7494,7 +7528,7 @@ msgstr ""
"ett användarkonto för att vara en del av en grupp för att auktorisera "
"användaren att komma åt appen."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7505,19 +7539,29 @@ msgstr ""
"över appar som är relevanta för dem på startsidan. Endast användare av "
"gruppen <em>admin</em> kan dock ändra appar eller Systeminställningar."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Användare och grupper"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Tillgång till alla tjänster och systeminställningar"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrollera LDAP-posten \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Användarnamnet är upptaget eller är reserverade."
@ -8712,7 +8756,13 @@ msgstr "Uppdatera"
msgid "Backup"
msgstr "Säkerhetskopia"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Starta installation"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "avinstallera"
@ -8730,11 +8780,11 @@ msgstr ""
"All appdata och konfiguration kommer att gå förlorad permanent. Appen kan "
"installeras på nytt igen."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Instänllningar oförändrade"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "innan du avinstallerar {app_id}"
@ -8743,6 +8793,14 @@ msgstr "innan du avinstallerar {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "En Tor SOCKS-port finns tillgängligt på din {box_name} för interna "
#~ "nätverk på TCP-port 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9545,9 +9603,6 @@ msgstr "Gujarati"
#~ "säker installation. Beroende på hur snabbt din %(box_name)s är, kan det "
#~ "även ta timmar. Om installationen avbryts kan du starta den igen."
#~ msgid "Start setup"
#~ msgstr "Starta installation"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN-installationen körs"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,7 +27,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr ""
@ -834,7 +834,8 @@ msgstr ""
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr ""
@ -1916,7 +1917,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -1924,10 +1925,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2500,7 +2513,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4764,7 +4778,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6013,7 +6027,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6022,55 +6036,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6098,11 +6105,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6110,22 +6117,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6133,26 +6140,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6164,15 +6160,53 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr ""
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6498,14 +6532,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6513,19 +6547,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7593,7 +7637,11 @@ msgstr ""
msgid "Backup"
msgstr ""
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr ""
@ -7609,11 +7657,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-03-02 12:27+0000\n"
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "పుట ఆధారం"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "ఫ్రీడంబాక్స్"
@ -887,7 +887,8 @@ msgstr "నిర్వాహకుడు"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "ఆకృతీకరణ నవీకరించబడింది."
@ -2078,7 +2079,7 @@ msgstr "పోర్టు"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2088,10 +2089,24 @@ msgstr ""
"ఫైర్వాల్ అనేది మీ {box_name}కు జరిగే రవాణా రాకపోకలను నియంత్రించే ఒక భద్రతా వ్యవస్థ. దీనిని అనుమతించి "
"సరిగా ఆకృతీకరిస్తే అంతర్జాలం నుంచి భద్రతా ముప్పు తగ్గుతుంది."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ఫైర్వాల్"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "అప్రమేయం"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2743,7 +2758,8 @@ msgstr "I2P కార్యక్షేతాన్ని నిర్వహి
msgid "I2P"
msgstr "ఇ౨ప్"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "అజ్ఞాత జాలిక"
@ -5305,7 +5321,7 @@ msgstr "ప్రివొక్సి"
msgid "Web Proxy"
msgstr "వెబ్ ప్రాక్సీ"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "టీసీపీ{kind} పై{proxy} తో యాక్సిస్ {url} చేయండి"
@ -6709,7 +6725,7 @@ msgstr "సింక్ తింగ్"
msgid "File Synchronization"
msgstr "ఫైళ్ళ సమకాలీకరణ"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6722,58 +6738,50 @@ msgstr ""
"టార్ ప్రాజెక్ట్ మీరు <a href=\"https://www.torproject.org/download/download-easy."
"html.en\"> టార్ బ్రౌజర్ </a> ను ఉపయోగించాలని సిఫార్సు చేస్తున్నారు."
#: plinth/modules/tor/__init__.py:30
#, fuzzy, python-brace-format
#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "టిసిపి పోర్ట్ 9050 పై ఒక టార్ సొక్స్ పోర్ట్ మీ %(box_name)sలో అందుబాటులో ఉంది."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "టార్"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "టోర్ ఉల్లిపాయ సేవ"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "టోర్ సాక్స్ ప్రాతినిధ్య"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "టార్ బ్రిడ్జ్ రిలే"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 రవాణా నమోదు చేయబడింది"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 రవాణా నమోదు చేయబడింది"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "ఉల్లిపాయ సేవ"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "టార్ ద్వారా {kind} లో {url} ను ఆక్సెస్ చెయ్యండి"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "టోర్ వాడుకను నిర్ధారించండి{url} టీ సి పి పై{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6808,11 +6816,11 @@ msgstr ""
"torproject.org/ </a> నుండి కొన్ని బ్రిడ్జెస్ పొందవచ్చు మరియు ఇక్కడ బ్రిడ్జె సమాచారాన్ని కాపీ / పేస్ట్ "
"చెయ్యండి. ప్రస్తుతం మద్దతిచ్చే ట్రాన్స్పోర్ట్ లు none, obfs3, obfs4 మరియు scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "టోర్ రిలేని ప్రారంభించండి"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6822,11 +6830,11 @@ msgstr ""
"ప్రారంభించినప్పుడు, మీ {box_name} 1 టోర్ రిలేని అమలు చేస్తుంది మరియు టార్ నెట్వర్క్కి బ్యాండ్విడ్త్ని దానం "
"చేస్తుంది. మీరు 2 megabits / s కంటే ఎక్కువ అప్లోడ్ మరియు డౌన్లోడ్ బ్యాండ్విడ్త్ ఉంటే దీన్ని చేయండి."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "టార్ వంతెన రిలేను ప్రారంభించండి."
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -6836,13 +6844,13 @@ msgstr ""
"ప్రచురించబడుతుంది, ఇది ఈ నోడ్ను సెన్సార్ చేయడానికి కష్టతరం చేస్తుంది. ఇతరులు సెన్సార్షిప్ను "
"తప్పించుకునేందుకు ఇది దోహదపడుతుంది."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "టోర్ హిడెన్ సర్వీస్‌ని ప్రారంభించండి"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6852,28 +6860,15 @@ msgstr ""
"దాచిన సేవ దాని స్థానాన్ని బహిర్గతం చేయకుండా ఎంచుకున్న సేవలను (వికీ లేదా చాట్ వంటివి) అందించడానికి "
"బాక్స్_నామని అనుమతిస్తుంది. ఇంకా బలమైన అనామకత్వం కోసం దీన్ని ఉపయోగించవద్దు. {box_name}"
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "టార్ పై సాఫ్ట్వేర్ ప్యాకేజీలను డౌన్లోడ్ చేయండి"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"ప్రారంభించబడినప్పుడు, సంస్థాపనలు మరియు నవీకరణలు కోసం సాఫ్ట్వేర్ టార్ నెట్వర్క్ ద్వారా డౌన్లోడ్ "
"చేయబడుతుంది. ఇది సాఫ్ట్ వేర్ డౌన్లోడ్ సమయంలో గోప్యత మరియు భద్రత యొక్క డిగ్రీని జతచేస్తుంది."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "అప్స్ట్రీమ్ వంతెనలను ఉపయోగించడానికి కనీసం ఒక అప్స్ట్రీమ్ వంతెనను పేర్కొనండి."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "టార్ బ్రౌజర్"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "ఆర్బోట్: టోర్ తో ప్రాక్సీ"
@ -6885,18 +6880,60 @@ msgstr "ఉల్లిపాయ సేవ"
msgid "Ports"
msgstr "పోర్ట్స్"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "టోర్ సాక్స్ ప్రాతినిధ్య"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "టోర్ సాక్స్ ప్రాతినిధ్య"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "టార్ ద్వారా {kind} లో {url} ను ఆక్సెస్ చెయ్యండి"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "టోర్ వాడుకను నిర్ధారించండి{url} టీ సి పి పై{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "టార్ పై సాఫ్ట్వేర్ ప్యాకేజీలను డౌన్లోడ్ చేయండి"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"ప్రారంభించబడినప్పుడు, సంస్థాపనలు మరియు నవీకరణలు కోసం సాఫ్ట్వేర్ టార్ నెట్వర్క్ ద్వారా డౌన్లోడ్ "
"చేయబడుతుంది. ఇది సాఫ్ట్ వేర్ డౌన్లోడ్ సమయంలో గోప్యత మరియు భద్రత యొక్క డిగ్రీని జతచేస్తుంది."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "ప్రసరణ అనేది వెబ్ ఇంటర్‌ఫేస్‌తో కూడిన బిట్‌టొరెంట్ క్లయింట్."
@ -7277,7 +7314,7 @@ msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లు య
msgid "Starting distribution upgrade test."
msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7287,7 +7324,7 @@ msgstr ""
"విధానంగా పనిచేస్తాయి. కొన్ని యాప్‌లకు యాప్‌ను యాక్సెస్ చేయడానికి వినియోగదారుని ప్రామాణీకరించడానికి సమూహంలో భాగంగా "
"వినియోగదారు ఖాతా అవసరం"
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7298,19 +7335,29 @@ msgstr ""
"చేయవచ్చు. అయినప్పటికీ, <em>అడ్మిన్</em> సమూహం యొక్క వినియోగదారులు మాత్రమే యాప్‌లు లేదా సిస్టమ్ "
"సెట్టింగ్‌లను మార్చవచ్చు."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "వినియోగదారులు మరియు సమూహాలు"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "అన్ని సేవలకు మరియు సిస్టమ్ అమరికలకు ప్రాప్యత"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP నమోదు \"{search_item}\" తనిఖీ"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "యూజర్ పేరు తీసుకోబడింది లేదా రిజర్వ్ చేయబడింది."
@ -8502,7 +8549,13 @@ msgstr "నవీకరణ"
msgid "Backup"
msgstr "బ్యాకప్స్"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "అమర్చిపెట్టు ప్రారంభం"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Install"
@ -8521,11 +8574,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "మారకుండా అమర్చుతోంది"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -8534,6 +8587,14 @@ msgstr ""
msgid "Gujarati"
msgstr "గుజరాతీ"
#, fuzzy, python-brace-format
#~| msgid ""
#~| "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr "టిసిపి పోర్ట్ 9050 పై ఒక టార్ సొక్స్ పోర్ట్ మీ %(box_name)sలో అందుబాటులో ఉంది."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9287,9 +9348,6 @@ msgstr "గుజరాతీ"
#~ "(box_name) లు 1 ఆధారపడి, అది కూడా గంటల సమయం పట్టవచ్చు. సెటప్ ఆటకం, మీరు మళ్ళీ దాన్ని "
#~ "మొదలు పెడతాయి."
#~ msgid "Start setup"
#~ msgstr "అమర్చిపెట్టు ప్రారంభం"
#~ msgid "OpenVPN setup is running"
#~ msgstr "అమర్చిపెటినా తెరిచినVPNనడుస్తుది"
@ -9941,11 +9999,6 @@ msgstr "గుజరాతీ"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "భాషను అమర్చుటలో లోపం: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "అప్రమేయం"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-06-21 13:49+0000\n"
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
@ -27,7 +27,7 @@ msgstr "Sayfa kaynağı"
msgid "Static configuration {etc_path} is setup properly"
msgstr "Sabit yapılandırma {etc_path} düzgün bir şekilde ayarlanmış"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -900,7 +900,8 @@ msgstr "Yönetici"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Yapılandırma güncellendi."
@ -2139,7 +2140,7 @@ msgstr "Bağlantı noktası"
msgid "Host/Target/Value"
msgstr "Anamakine/Hedef/Değer"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2151,10 +2152,24 @@ msgstr ""
"ve uygun şekilde yapılandırılmış halde tutulması, İnternet kaynaklı güvenlik "
"tehdidi riskini azaltır."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Güvenlik Duvarı"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "Varsayılan"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2831,7 +2846,8 @@ msgstr "I2P uygulamasını yönet"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "İsim Gizliliği Ağı"
@ -5459,7 +5475,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web Vekil Sunucusu"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tcp{kind} üzerinde {proxy} vekil sunucusu ile {url} adresine erişin"
@ -6913,7 +6929,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Dosya Eşitleme"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6926,57 +6942,48 @@ msgstr ""
"gezinirken en iyi koruma için Tor Projesi, <a href=\"https://www.torproject."
"org/download/download-easy.html.en\">Tor Tarayıcı</a> kullanmanızı önerir."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"9050 nolu TCP bağlantı noktası üzerindeki dahili ağlar için {box_name} "
"cihazınızda bir Tor SOCKS bağlantı noktası kullanılabilir."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor Onion Hizmeti"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Tor Socks Vekil Sunucusu"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor Köprüsü Aktarımı"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor aktarımı bağlantı noktası kullanılabilir"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Obfs3 taşıma kayıtlı"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Obfs4 taşıma kayıtlı"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr "Onion hizmeti sürüm 3'tür"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tor aracılığıyla tcp{kind} üzerinde erişim URL'si {url}"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tcp{kind} üzerinde {url} adresinde Tor kullanımını onaylama"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7012,11 +7019,11 @@ msgstr ""
"yapıştır yapabilirsiniz. Şu anda desteklenen taşımalar none, obfs3, obfs4 ve "
"scamblesuit'tir."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Tor aktarımını etkinleştir"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7027,11 +7034,11 @@ msgstr ""
"Tor ağına bant genişliği bağışlayacaktır. 2 megabit/s'den daha fazla "
"gönderme ve indirme bant genişliğiniz varsa bunu yapın."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Tor köprüsü aktarımını etkinleştir"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7041,11 +7048,11 @@ msgstr ""
"zorlaştıran herkese açık Tor aktarımı veritabanı yerine Tor köprüsü "
"veritabanında yayınlanır. Bu, başkalarının sansürü atlatmasına yardımcı olur."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr "Tor Onion Hizmetini etkinleştir"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -7056,31 +7063,17 @@ msgstr ""
"hizmetleri (viki veya sohbet gibi) sağlaması için izin verecektir. Bunu "
"henüz güçlü bir isim gizliliği için kullanmayın."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Yazılım paketlerini Tor üzerinden indir"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Etkinleştirildiğinde, kurulumlar ve yükseltmeler için yazılım Tor ağı "
"üzerinden indirilecektir. Bu, yazılım indirmeleri sırasında bir derece "
"gizlilik ve güvenlik sağlar."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Yukarı akış köprülerini kullanmak için en az bir yukarı akış köprüsü "
"belirtin."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor Tarayıcı"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Tor ile Vekil Sunucu"
@ -7092,15 +7085,58 @@ msgstr "Onion Hizmeti"
msgid "Ports"
msgstr "Bağlantı Noktaları"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Yapılandırma güncelleniyor"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Uygulama yapılandırılırken hata oldu: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Tor Socks Vekil Sunucusu"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Tor Socks Vekil Sunucusu"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tor aracılığıyla tcp{kind} üzerinde erişim URL'si {url}"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tcp{kind} üzerinde {url} adresinde Tor kullanımını onaylama"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Yazılım paketlerini Tor üzerinden indir"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Etkinleştirildiğinde, kurulumlar ve yükseltmeler için yazılım Tor ağı "
"üzerinden indirilecektir. Bu, yazılım indirmeleri sırasında bir derece "
"gizlilik ve güvenlik sağlar."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission, Web kullanıcı arayüzü olan bir BitTorrent istemcisidir."
@ -7490,7 +7526,7 @@ msgstr "Sık yapılan özellik güncellemeleri etkinleştirildi."
msgid "Starting distribution upgrade test."
msgstr "Dağıtım yükseltmesi denemesi başlatılıyor."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7501,7 +7537,7 @@ msgstr ""
"kullanıcıya, uygulamaya erişme yetkisi vermek için bir kullanıcı hesabının "
"bir grubun parçası olmasını gerektirir."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7513,19 +7549,29 @@ msgstr ""
"sadece <em>admin</em> grubunun kullanıcıları uygulamaları veya sistem "
"ayarlarını değiştirebilir."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Kullanıcılar ve Gruplar"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Tüm hizmetlere ve sistem ayarlarına erişim"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP \"{search_item}\" girişini denetleme"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Kullanıcı adı alınmış veya ayrılmış."
@ -8715,7 +8761,13 @@ msgstr "Güncelle"
msgid "Backup"
msgstr "Yedekle"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "Ayarlamayı başlat"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Kaldır"
@ -8733,11 +8785,11 @@ msgstr ""
"Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. "
"Uygulama tekrar yeni olarak yüklenebilir."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Ayar değişmedi"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "{app_id} kaldırılmadan önce"
@ -8746,6 +8798,14 @@ msgstr "{app_id} kaldırılmadan önce"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "9050 nolu TCP bağlantı noktası üzerindeki dahili ağlar için {box_name} "
#~ "cihazınızda bir Tor SOCKS bağlantı noktası kullanılabilir."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "
@ -9556,9 +9616,6 @@ msgstr "Gujarati"
#~ "olarak saatler bile sürebilir. Eğer ayarlama yarıda kesilirse, tekrar "
#~ "başlatabilirsiniz."
#~ msgid "Start setup"
#~ msgstr "Ayarlamayı başlat"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN ayarlaması çalışıyor"
@ -10235,11 +10292,6 @@ msgstr "Gujarati"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "Dilin ayarlanmasında hata: {exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "Varsayılan"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2023-06-21 13:49+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Джерело сторінки"
msgid "Static configuration {etc_path} is setup properly"
msgstr "Статична конфігурація {etc_path} налаштована належним чином"
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -905,7 +905,8 @@ msgstr "Адміністратор"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Налаштування оновлено."
@ -2148,7 +2149,7 @@ msgstr "Порт"
msgid "Host/Target/Value"
msgstr "Хост/ціль/значення"
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2159,10 +2160,22 @@ msgstr ""
"трафік Вашого {box_name}. Тримайте фаєрвол увімкненим і належно "
"налаштованим, це зменшить ризик загроз безпеці з Інтернету."
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Фаєрвол"
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2841,7 +2854,8 @@ msgstr "Керування застосунком I2P"
msgid "I2P"
msgstr "I2P"
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "Мережа анонімності"
@ -5465,7 +5479,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Вебпроксі"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Доступ за адресою {url} через проксі {proxy} по tcp{kind}"
@ -6912,7 +6926,7 @@ msgstr "Syncthing"
msgid "File Synchronization"
msgstr "Синхронізація файлів"
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6925,56 +6939,48 @@ msgstr ""
"під час вебсерфінгу, проєкт Tor радить використовувати <a href=\"https://www."
"torproject.org/download/download-easy.html.en\">Tor Browser</a>."
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
"Порт SOCKS для Tor на Вашому {box_name} для внутрішніх мереж TCP 9050."
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr "Tor"
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Сервіс Tor Onion"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr "Проксі Tor Socks"
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Ретранслятор Tor типу міст"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Доступний порт ретрансляції Tor"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "Зареєстровано транспорт Obfs3"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "Зареєстровано транспорт Obfs4"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr "Служба Onion версії 3"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Доступ за адресою {url} на tcp{kind} через Tor"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Підтвердити використання Tor можна за посиланням {url} на tcp{kind}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -7010,11 +7016,11 @@ msgstr ""
"сюди. Наразі підтримуються такі види транспорту: none, obfs3, obfs4 та "
"scamblesuit."
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "Увімкнути ретранслятор Tor"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -7025,11 +7031,11 @@ msgstr ""
"пропускну здатність мережі Tor. Зробіть це, якщо у вас є більше 2 мегабіт/с "
"пропускної здатності для завантаження і вивантаження."
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "Увімкнути ретранслятор моста Tor"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -7039,11 +7045,11 @@ msgstr ""
"не в загальнодоступній базі даних ретрансляції Tor, що ускладнює цензуру "
"цього вузла. Це допомагає іншим обходити цензуру."
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr "Увімкнути службу Tor Onion"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -7054,30 +7060,16 @@ msgstr ""
"чат), не розкриваючи свого місця перебування. Не використовуйте це для "
"повної анонімності."
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Завантажувати пакунки програмного забезпечення через Tor"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Якщо увімкнено, програмне забезпечення буде завантажуватися через мережу Tor "
"для встановлення та оновлення. Це додає певний рівень конфіденційності та "
"безпеки під час завантаження програмного забезпечення."
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Указати хоча б один upstream-міст для використання мостів вище за течією."
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "Tor Browser"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: проксі з Tor"
@ -7089,15 +7081,58 @@ msgstr "Сервіс Onion"
msgid "Ports"
msgstr "Порти"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "Оновлення налаштувань"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "Помилка налаштування застосунку: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy"
msgstr "Проксі Tor Socks"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr "Проксі Tor Socks"
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Доступ за адресою {url} на tcp{kind} через Tor"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Підтвердити використання Tor можна за посиланням {url} на tcp{kind}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "Завантажувати пакунки програмного забезпечення через Tor"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"Якщо увімкнено, програмне забезпечення буде завантажуватися через мережу Tor "
"для встановлення та оновлення. Це додає певний рівень конфіденційності та "
"безпеки під час завантаження програмного забезпечення."
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission це клієнт BitTorrent із вебінтерфейсом."
@ -7483,7 +7518,7 @@ msgstr "Оновлення частих можливостей активова
msgid "Starting distribution upgrade test."
msgstr "Запуск тесту оновлення дистрибутиву."
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@ -7494,7 +7529,7 @@ msgstr ""
"застосунки також вимагають, щоб обліковий запис був частиною групи, щоб "
"отримати авторизований доступ до застосунку."
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -7506,19 +7541,29 @@ msgstr ""
"користувачі з групи <em>admin</em> можуть змінювати застосунки або системні "
"налаштування."
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "Користувачі і групи"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr "Доступ до всіх сервісів і налаштувань системи"
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Перевірка запису LDAP \"{search_item}\""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "Імʼя користувача зайняте або зарезервоване."
@ -8706,7 +8751,11 @@ msgstr "Оновити"
msgid "Backup"
msgstr "Резервна копія"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "Видалити"
@ -8724,11 +8773,11 @@ msgstr ""
"Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна "
"встановити начисто ще раз."
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "Налаштування не змінено"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr "перед видаленням {app_id}"
@ -8737,6 +8786,13 @@ msgstr "перед видаленням {app_id}"
msgid "Gujarati"
msgstr "Gujarati"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "Порт SOCKS для Tor на Вашому {box_name} для внутрішніх мереж TCP 9050."
#, python-brace-format
#~ msgid ""
#~ "When enabled, text box for server input is removed from login page and "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-07-28 08:34+0000\n"
"Last-Translator: bruh <quangtrung02hn16@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Nguồn của trang"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -916,7 +916,8 @@ msgstr "Quản trị viên"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "Đã cập nhật thiết lập."
@ -2141,7 +2142,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2149,10 +2150,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2725,7 +2738,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -5005,7 +5019,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6262,7 +6276,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6271,55 +6285,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6347,11 +6354,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6359,22 +6366,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6382,26 +6389,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6413,18 +6409,56 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "Đã xảy ra lỗi trong khi thiết lập."
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "Lỗi khi cài đặt ứng dụng: {error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6760,14 +6794,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6775,19 +6809,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7872,7 +7916,11 @@ msgstr "Cập nhật"
msgid "Backup"
msgstr "Sao lưu"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7891,11 +7939,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Plinth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2022-12-07 20:48+0000\n"
"Last-Translator: Eric <hamburger1024@duck.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
@ -28,7 +28,7 @@ msgstr "来源页面"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "FreedomBox"
@ -868,7 +868,8 @@ msgstr "管理员"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "配置已更新。"
@ -2025,7 +2026,7 @@ msgstr "端口"
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2035,10 +2036,24 @@ msgstr ""
"防火墙控制你的 {box_name} 上的进出网络流量。启用并正确配置防火墙上可以减少来"
"自互联网的安全威胁。"
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "防火墙"
#: plinth/modules/firewall/__init__.py:269
#, fuzzy
#| msgid "Default"
msgid "Default zone is external"
msgstr "默认"
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2641,7 +2656,8 @@ msgstr "管理 I2P 应用程序"
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr "匿名网络"
@ -4975,7 +4991,7 @@ msgstr "Privoxy"
msgid "Web Proxy"
msgstr "Web 代理"
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "在 tcp{kind} 上通过 {proxy} 访问 {url}"
@ -6261,7 +6277,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6274,57 +6290,50 @@ msgstr ""
"href=\"https://www.torproject.org/download/download-easy.html.en\">Tor浏览器"
"</a>。"
#: plinth/modules/tor/__init__.py:30
#: plinth/modules/tor/__init__.py:37
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr "你的 {box_name} 有一个 Tor SOCKS 端口在 TCP 端口 9050 上对内网可用。"
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr "Tor 洋葱服务"
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr "Tor 网桥中继"
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr "Tor 中继端口可用"
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr "已注册 Obfs3 传输"
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr "已注册 Obfs4 传输"
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3"
msgstr "洋葱服务"
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "在 tcp{kind} 上通过 Tor 访问 {url}"
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "确认使用 Tor 通过 tcp{kind} 访问 {url}"
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6352,11 +6361,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr "启用 Tor 中继"
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6366,11 +6375,11 @@ msgstr ""
"启用后,您的 {box_name} 将运行 Tor 中继,并向 Tor 网络分配带宽。如果您的上传"
"和下载带宽超过 2 MB/s请执行此操作。"
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr "启用 Tor 网桥中继"
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@ -6379,13 +6388,13 @@ msgstr ""
"当启用时,中继信息在 Tor 桥数据库中发布,而不是公共 Tor 中继数据库,使得更难"
"以检查此节点。这有助于其他人绕过审查。"
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service"
msgstr "启用 Tor 隐藏服务"
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@ -6399,28 +6408,15 @@ msgstr ""
"隐藏的服务将允许 {box_name} 提供所选服务(如维基或聊天),而不暴露其位置。如"
"果对匿名性要求很高,暂时不要使用它。"
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "通过 Tor 下载软件包"
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"当启用时,软件将会下载 Tor 网络的安装和升级。这在软件下载过程中添加了一定程度"
"的隐私和安全。"
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr "洋葱浏览器"
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6432,15 +6428,57 @@ msgstr "洋葱服务"
msgid "Ports"
msgstr "端口"
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration"
msgstr "更新配置"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format
msgid "Error configuring app: {error}"
msgstr "配置应用出错:{error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "I2P Proxy"
msgid "Tor Proxy"
msgstr "I2P 代理"
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "在 tcp{kind} 上通过 Tor 访问 {url}"
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "确认使用 Tor 通过 tcp{kind} 访问 {url}"
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr "通过 Tor 下载软件包"
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
"当启用时,软件将会下载 Tor 网络的安装和升级。这在软件下载过程中添加了一定程度"
"的隐私和安全。"
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr "Transmission 是一个有网页界面的 BitTorrent 客户端。"
@ -6779,14 +6817,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr "启动分发升级测试。"
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6794,19 +6832,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr "用户和组"
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "请检查 LDAP 条目“{search_item}”"
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr "用户名已经占用或保留。"
@ -7897,7 +7945,13 @@ msgstr "更新"
msgid "Backup"
msgstr "备份"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
#, fuzzy
#| msgid "Start setup"
msgid "Re-run setup"
msgstr "启动安装程序"
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
msgid "Uninstall"
msgstr "卸载"
@ -7913,11 +7967,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr "设置未改变"
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
@ -7926,6 +7980,13 @@ msgstr ""
msgid "Gujarati"
msgstr "古吉拉特语"
#, python-brace-format
#~ msgid ""
#~ "A Tor SOCKS port is available on your {box_name} for internal networks on "
#~ "TCP port 9050."
#~ msgstr ""
#~ "你的 {box_name} 有一个 Tor SOCKS 端口在 TCP 端口 9050 上对内网可用。"
#~ msgid "ChatSecure"
#~ msgstr "ChatSecure"
@ -8474,9 +8535,6 @@ msgstr "古吉拉特语"
#~ "OpenVPN 尚未安装。 执行安全的安装需要很长的时间。 根据您的 %(box_name)s 运"
#~ "行速度,它甚至可能需要小时。 如果安装程序中断,您可以重新启动。"
#~ msgid "Start setup"
#~ msgstr "启动安装程序"
#~ msgid "OpenVPN setup is running"
#~ msgstr "OpenVPN 安装程序正在运行"
@ -8926,11 +8984,6 @@ msgstr "古吉拉特语"
#~ msgid "Error setting default app: {exception}"
#~ msgstr "设置语言错误:{exception}"
#, fuzzy
#~| msgid "Default"
#~ msgid "Default app set"
#~ msgstr "默认"
#, fuzzy
#~| msgid "NTP client in contact with servers"
#~ msgid "chrony client in contact with servers"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-19 20:15-0400\n"
"POT-Creation-Date: 2023-07-31 20:04-0400\n"
"PO-Revision-Date: 2021-12-23 12:50+0000\n"
"Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
@ -28,7 +28,7 @@ msgstr "來源頁面"
msgid "Static configuration {etc_path} is setup properly"
msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:92
#: plinth/context_processors.py:23 plinth/views.py:94
msgid "FreedomBox"
msgstr "自由盒子"
@ -879,7 +879,8 @@ msgstr "管理員"
#: plinth/modules/bepasty/views.py:88 plinth/modules/searx/views.py:35
#: plinth/modules/searx/views.py:46 plinth/modules/security/views.py:56
#: plinth/modules/tor/views.py:73 plinth/modules/zoph/views.py:74
#: plinth/modules/tor/views.py:73 plinth/modules/torproxy/views.py:71
#: plinth/modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "配置已更新。"
@ -2020,7 +2021,7 @@ msgstr ""
msgid "Host/Target/Value"
msgstr ""
#: plinth/modules/firewall/__init__.py:23
#: plinth/modules/firewall/__init__.py:24
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
@ -2028,10 +2029,22 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
#: plinth/modules/firewall/__init__.py:59
#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
#: plinth/modules/firewall/__init__.py:269
msgid "Default zone is external"
msgstr ""
#: plinth/modules/firewall/__init__.py:276
msgid "Firewall backend is nftables"
msgstr ""
#: plinth/modules/firewall/__init__.py:287
msgid "Direct passthrough rules exist"
msgstr ""
#: plinth/modules/firewall/components.py:134
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
@ -2604,7 +2617,8 @@ msgstr ""
msgid "I2P"
msgstr ""
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:49
#: plinth/modules/i2p/__init__.py:53 plinth/modules/tor/__init__.py:61
#: plinth/modules/torproxy/__init__.py:55
msgid "Anonymity Network"
msgstr ""
@ -4880,7 +4894,7 @@ msgstr ""
msgid "Web Proxy"
msgstr ""
#: plinth/modules/privoxy/__init__.py:113
#: plinth/modules/privoxy/__init__.py:114
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@ -6134,7 +6148,7 @@ msgstr ""
msgid "File Synchronization"
msgstr ""
#: plinth/modules/tor/__init__.py:23
#: plinth/modules/tor/__init__.py:31 plinth/modules/torproxy/__init__.py:27
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
@ -6143,55 +6157,48 @@ msgid ""
"en\">Tor Browser</a>."
msgstr ""
#: plinth/modules/tor/__init__.py:30
#, python-brace-format
#: plinth/modules/tor/__init__.py:37
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: plinth/modules/tor/__init__.py:48
#: plinth/modules/tor/__init__.py:40
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: plinth/modules/tor/__init__.py:60
msgid "Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:65
#: plinth/modules/tor/__init__.py:76
msgid "Tor Onion Service"
msgstr ""
#: plinth/modules/tor/__init__.py:69
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/tor/__init__.py:73
#: plinth/modules/tor/__init__.py:80
msgid "Tor Bridge Relay"
msgstr ""
#: plinth/modules/tor/__init__.py:132
#: plinth/modules/tor/__init__.py:135
msgid "Tor relay port available"
msgstr ""
#: plinth/modules/tor/__init__.py:143
#: plinth/modules/tor/__init__.py:146
msgid "Obfs3 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:153
#: plinth/modules/tor/__init__.py:156
msgid "Obfs4 transport registered"
msgstr ""
#: plinth/modules/tor/__init__.py:165
#: plinth/modules/tor/__init__.py:168
msgid "Onion service is version 3"
msgstr ""
#: plinth/modules/tor/__init__.py:242
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/tor/__init__.py:253
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
@ -6219,11 +6226,11 @@ msgid ""
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: plinth/modules/tor/forms.py:91
#: plinth/modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: plinth/modules/tor/forms.py:92
#: plinth/modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@ -6231,22 +6238,22 @@ msgid ""
"download bandwidth."
msgstr ""
#: plinth/modules/tor/forms.py:97
#: plinth/modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: plinth/modules/tor/forms.py:99
#: plinth/modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: plinth/modules/tor/forms.py:104
#: plinth/modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: plinth/modules/tor/forms.py:106
#: plinth/modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
@ -6254,26 +6261,15 @@ msgid ""
"anonymity yet."
msgstr ""
#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/tor/forms.py:127
#: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: plinth/modules/tor/manifest.py:15
#: plinth/modules/tor/manifest.py:15 plinth/modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: plinth/modules/tor/manifest.py:31
#: plinth/modules/tor/manifest.py:31 plinth/modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
@ -6285,18 +6281,56 @@ msgstr ""
msgid "Ports"
msgstr ""
#: plinth/modules/tor/views.py:53
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "設置過程中發生錯誤。"
#: plinth/modules/tor/views.py:70
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: plinth/modules/torproxy/__init__.py:34
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: plinth/modules/torproxy/__init__.py:54
msgid "Tor Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy"
msgstr ""
#: plinth/modules/torproxy/__init__.py:138
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: plinth/modules/torproxy/__init__.py:149
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: plinth/modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: plinth/modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: plinth/modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@ -6632,14 +6666,14 @@ msgstr ""
msgid "Starting distribution upgrade test."
msgstr ""
#: plinth/modules/users/__init__.py:29
#: plinth/modules/users/__init__.py:30
msgid ""
"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 ""
#: plinth/modules/users/__init__.py:34
#: plinth/modules/users/__init__.py:35
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
@ -6647,19 +6681,29 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
#: plinth/modules/users/__init__.py:55
#: plinth/modules/users/__init__.py:56
msgid "Users and Groups"
msgstr ""
#: plinth/modules/users/__init__.py:80
#: plinth/modules/users/__init__.py:81
msgid "Access to all services and system settings"
msgstr ""
#: plinth/modules/users/__init__.py:116
#: plinth/modules/users/__init__.py:124
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: plinth/modules/users/__init__.py:137
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: plinth/modules/users/__init__.py:166
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: plinth/modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
@ -7744,7 +7788,11 @@ msgstr ""
msgid "Backup"
msgstr "Backups 模組"
#: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52
#: plinth/templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: plinth/templates/toolbar.html:59 plinth/templates/toolbar.html:60
#: plinth/templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
@ -7762,11 +7810,11 @@ msgid ""
"installed freshly again."
msgstr ""
#: plinth/views.py:239
#: plinth/views.py:241
msgid "Setting unchanged"
msgstr ""
#: plinth/views.py:456
#: plinth/views.py:478
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""

View File

@ -100,7 +100,9 @@ class BepastyApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup('freedombox.local')
self.enable()
if not old_version:
self.enable()
if old_version == 1 and not privileged.get_configuration().get(
'DEFAULT_PERMISSIONS'):
# Upgrade to a better default only if user hasn't changed the

View File

@ -67,7 +67,8 @@ class BindApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup(old_version)
self.enable()
if not old_version:
self.enable()
def force_upgrade(self, _packages):
"""Force upgrade the managed packages to resolve conffile prompt."""

View File

@ -105,7 +105,8 @@ class DelugeApp(app_module.App):
super().setup(old_version)
add_user_to_share_group(SYSTEM_USER)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -146,7 +146,8 @@ class EjabberdApp(app_module.App):
self.get_component('letsencrypt-ejabberd').setup_certificates(
[domainname])
privileged.setup(domainname)
self.enable()
if not old_version:
self.enable()
# Configure STUN/TURN only if there's a valid TLS domain set for Coturn
configuration = self.get_component('turn-ejabberd').get_configuration()

View File

@ -4,6 +4,7 @@
import contextlib
import logging
from django.utils.translation import gettext
from django.utils.translation import gettext_lazy as _
from plinth import app as app_module
@ -94,6 +95,15 @@ class FirewallApp(app_module.App):
_run_setup()
return True
def diagnose(self):
"""Run diagnostics and return the results."""
results = super().diagnose()
config = privileged.get_config()
results.append(_diagnose_default_zone(config))
results.append(_diagnose_firewall_backend(config))
results.append(_diagnose_direct_passthroughs(config))
return results
def _run_setup():
"""Run firewalld setup."""
@ -252,3 +262,28 @@ def remove_passthrough(ipv, *args):
config_direct = _get_dbus_proxy(_CONFIG_OBJECT, _CONFIG_DIRECT_INTERFACE)
if config_direct.queryPassthrough('(sas)', ipv, args):
config_direct.removePassthrough('(sas)', ipv, args)
def _diagnose_default_zone(config):
"""Diagnose whether the default zone is external."""
testname = gettext('Default zone is external')
result = 'passed' if config['default_zone'] == 'external' else 'failed'
return [testname, result]
def _diagnose_firewall_backend(config):
"""Diagnose whether the firewall backend is nftables."""
testname = gettext('Firewall backend is nftables')
result = 'passed' if config['backend'] == 'nftables' else 'failed'
return [testname, result]
def _diagnose_direct_passthroughs(config):
"""Diagnose direct passthroughs for local service protection.
Currently, we just check that the number of passthroughs is at least 12,
which are the number that are added by firewall's setup.
"""
testname = gettext('Direct passthrough rules exist')
result = 'passed' if len(config['passthroughs']) >= 12 else 'failed'
return [testname, result]

View File

@ -129,3 +129,31 @@ def setup():
set_firewall_backend('nftables')
_setup_local_service_protection()
@privileged
def get_config():
"""Return firewalld configuration for diagnostics."""
config = {}
# Get the default zone.
output = subprocess.check_output(['firewall-cmd', '--get-default-zone'])
config['default_zone'] = output.decode().strip()
# Load Augeas lens.
conf_file = '/etc/firewalld/firewalld.conf'
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.transform('Shellvars', conf_file)
aug.set('/augeas/context', '/files' + conf_file)
aug.load()
# Get the firewall backend.
config['backend'] = aug.get('FirewallBackend')
# Get the list of direct passthroughs.
output = subprocess.check_output(
['firewall-cmd', '--direct', '--get-all-passthroughs'])
config['passthroughs'] = output.decode().strip().split('\n')
return config

View File

@ -131,7 +131,8 @@ class GitwebApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -118,7 +118,8 @@ class IkiwikiApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -77,7 +77,8 @@ class InfinotedApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -9,7 +9,6 @@ import shutil
import subprocess
import time
from plinth import action_utils
from plinth.actions import privileged
DATA_DIR = '/var/lib/infinoted'
@ -167,8 +166,6 @@ def setup():
shutil.chown(KEY_DIR + '/infinoted-key.pem', user='infinoted',
group='infinoted')
action_utils.service_enable('infinoted')
@privileged
def uninstall():

View File

@ -96,7 +96,8 @@ class JanusApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def force_upgrade(self, packages):
"""Force upgrade janus to resolve conffile prompts."""

View File

@ -80,4 +80,5 @@ class JSXCApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()

View File

@ -101,7 +101,8 @@ class MediaWikiApp(app_module.App):
super().setup(old_version)
privileged.setup()
privileged.update()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -96,7 +96,8 @@ class MinetestApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()
def force_upgrade(self, packages):
"""Force upgrade minetest to resolve conffile prompt."""

View File

@ -90,7 +90,8 @@ class OpenVPNApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -75,4 +75,5 @@ class PerformanceApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()

View File

@ -97,7 +97,8 @@ class PrivoxyApp(app_module.App):
privileged.pre_install()
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def diagnose_url_with_proxy():

View File

@ -98,7 +98,9 @@ class QuasselApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()
self.get_component('letsencrypt-quassel').setup_certificates()

View File

@ -104,7 +104,8 @@ class RadicaleApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()
def force_upgrade(self, packages):
"""Force upgrade radicale to resolve conffile prompt."""

View File

@ -93,7 +93,8 @@ class RSSBridgeApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -68,4 +68,5 @@ class ShaarliApp(app_module.App):
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
self.enable()
if not old_version:
self.enable()

View File

@ -60,7 +60,8 @@ class SharingApp(app_module.App):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def uninstall(self):
"""De-configure and uninstall the app."""

View File

@ -1,17 +1,23 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""FreedomBox app to configure Tor."""
import json
import logging
from django.utils.translation import gettext_lazy as _
from plinth import action_utils
from plinth import app as app_module
from plinth import cfg, menu
from plinth import cfg, kvstore, menu
from plinth import setup as setup_module
from plinth.daemon import (Daemon, app_is_running, diagnose_netcat,
diagnose_port_listening)
from plinth.modules.apache.components import Webserver, diagnose_url
from plinth.modules import torproxy
from plinth.modules.apache.components import Webserver
from plinth.modules.backups.components import BackupRestore
from plinth.modules.firewall.components import Firewall
from plinth.modules.names.components import DomainType
from plinth.modules.torproxy.utils import is_apt_transport_tor_enabled
from plinth.modules.users.components import UsersAndGroups
from plinth.package import Packages
from plinth.signals import domain_added, domain_removed
@ -19,6 +25,8 @@ from plinth.utils import format_lazy
from . import manifest, privileged, utils
logger = logging.getLogger(__name__)
_description = [
_('Tor is an anonymous communication system. You can learn more '
'about it from the <a href="https://www.torproject.org/">Tor '
@ -26,9 +34,13 @@ _description = [
'Tor Project recommends that you use the '
'<a href="https://www.torproject.org/download/download-easy.html.en">'
'Tor Browser</a>.'),
_('This app provides relay services to contribute to Tor network and help '
'others overcome censorship.'),
format_lazy(
_('A Tor SOCKS port is available on your {box_name} for internal '
'networks on TCP port 9050.'), box_name=_(cfg.box_name))
_('This app provides an onion domain to expose {box_name} services '
'via the Tor network. Using Tor browser, one can access {box_name} '
'from the internet even when using an ISP that limits servers at '
'home.'), box_name=_(cfg.box_name)),
]
@ -37,7 +49,7 @@ class TorApp(app_module.App):
app_id = 'tor'
_version = 6
_version = 7
def __init__(self):
"""Create components for the app."""
@ -57,28 +69,20 @@ class TorApp(app_module.App):
parent_url_name='apps')
self.add(menu_item)
packages = Packages('packages-tor', [
'tor', 'tor-geoipdb', 'torsocks', 'obfs4proxy', 'apt-transport-tor'
])
packages = Packages('packages-tor',
['tor', 'tor-geoipdb', 'obfs4proxy'])
self.add(packages)
domain_type = DomainType('domain-type-tor', _('Tor Onion Service'),
'tor:index', can_have_certificate=False)
self.add(domain_type)
firewall = Firewall('firewall-tor-socks', _('Tor Socks Proxy'),
ports=['tor-socks'], is_external=False)
self.add(firewall)
firewall = Firewall('firewall-tor-relay', _('Tor Bridge Relay'),
ports=['tor-orport', 'tor-obfs3',
'tor-obfs4'], is_external=True)
self.add(firewall)
daemon = Daemon(
'daemon-tor', 'tor@plinth', strict_check=True,
listen_ports=[(9050, 'tcp4'), (9050, 'tcp6'), (9040, 'tcp4'),
(9040, 'tcp6'), (9053, 'udp4'), (9053, 'udp6')])
daemon = Daemon('daemon-tor', 'tor@plinth', strict_check=True)
self.add(daemon)
webserver = Webserver('webserver-onion-location',
@ -113,8 +117,7 @@ class TorApp(app_module.App):
update_hidden_service_domain()
def disable(self):
"""Disable APT use of Tor before disabling."""
privileged.configure(apt_transport_tor=False)
"""Disable the app and remove HS domain."""
super().disable()
update_hidden_service_domain()
@ -166,22 +169,14 @@ class TorApp(app_module.App):
'passed' if len(hs_hostname) == 56 else 'failed'
])
results.append(_diagnose_url_via_tor('http://www.debian.org', '4'))
results.append(_diagnose_url_via_tor('http://www.debian.org', '6'))
results.append(_diagnose_tor_use('https://check.torproject.org', '4'))
results.append(_diagnose_tor_use('https://check.torproject.org', '6'))
return results
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup(old_version)
if not old_version:
privileged.configure(apt_transport_tor=True)
update_hidden_service_domain(utils.get_status())
status = utils.get_status()
update_hidden_service_domain(status)
# Enable/disable Onion-Location component based on app status.
# Component was introduced in version 6.
@ -189,11 +184,30 @@ class TorApp(app_module.App):
daemon_component = self.get_component('daemon-tor')
component = self.get_component('webserver-onion-location')
if daemon_component.is_enabled():
logger.info('Enabling Onion-Location component')
component.enable()
else:
logger.info('Disabling Onion-Location component')
component.disable()
# The SOCKS proxy and "Download software packages using Tor" features
# were moved into a new app, Tor Proxy, in version 7. If Tor is
# enabled, then store the relevant configuration, and install Tor
# Proxy.
if old_version and old_version < 7 and self.is_enabled():
logger.info('Tor Proxy app will be installed')
config = {
'use_upstream_bridges': status['use_upstream_bridges'],
'upstream_bridges': status['upstream_bridges'],
'apt_transport_tor': is_apt_transport_tor_enabled()
}
kvstore.set(torproxy.PREINSTALL_CONFIG_KEY, json.dumps(config))
# This creates the operation, which will run after the current
# operation (Tor setup) is completed.
setup_module.run_setup_on_app('torproxy')
if not old_version:
logger.info('Enabling Tor app')
self.enable()
def uninstall(self):
@ -234,23 +248,3 @@ def _diagnose_control_port():
negate=negate))
return results
def _diagnose_url_via_tor(url, kind=None):
"""Diagnose whether a URL is reachable via Tor."""
result = diagnose_url(url, kind=kind, wrapper='torsocks')
result[0] = _('Access URL {url} on tcp{kind} via Tor') \
.format(url=url, kind=kind)
return result
def _diagnose_tor_use(url, kind=None):
"""Diagnose whether webpage at URL reports that we are using Tor."""
expected_output = 'Congratulations. This browser is configured to use Tor.'
result = diagnose_url(url, kind=kind, wrapper='torsocks',
expected_output=expected_output)
result[0] = _('Confirm Tor usage at {url} on tcp{kind}') \
.format(url=url, kind=kind)
return result

View File

@ -70,8 +70,8 @@ def bridges_validator(bridges):
raise validation_error
class TorForm(forms.Form): # pylint: disable=W0232
"""Tor configuration form."""
class TorCommonForm(forms.Form):
"""Tor common configuration form."""
use_upstream_bridges = forms.BooleanField(
label=_('Use upstream bridges to connect to Tor network'),
required=False, help_text=_(
@ -87,6 +87,10 @@ class TorForm(forms.Form): # pylint: disable=W0232
'https://bridges.torproject.org/</a> and copy/paste the bridge '
'information here. Currently supported transports are none, '
'obfs3, obfs4 and scamblesuit.'), validators=[bridges_validator])
class TorForm(TorCommonForm):
"""Tor configuration form."""
relay_enabled = forms.BooleanField(
label=_('Enable Tor relay'), required=False, help_text=format_lazy(
_('When enabled, your {box_name} will run a Tor relay and donate '
@ -107,12 +111,6 @@ class TorForm(forms.Form): # pylint: disable=W0232
'services (such as wiki or chat) without revealing its '
'location. Do not use this for strong anonymity yet.'),
box_name=_(cfg.box_name)))
apt_transport_tor_enabled = forms.BooleanField(
label=_('Download software packages over Tor'), required=False,
help_text=_('When enabled, software will be downloaded over the Tor '
'network for installations and upgrades. This adds a '
'degree of privacy and security during software '
'downloads.'))
def clean(self):
"""Validate the form for cross-field integrity."""

View File

@ -44,11 +44,11 @@ clients = [{
backup = {
'config': {
'directories': ['/etc/tor/'],
'directories': ['/etc/tor/instances/plinth/'],
'files': [str(privileged.TOR_APACHE_SITE)]
},
'secrets': {
'directories': ['/var/lib/tor/', '/var/lib/tor-instances/']
'directories': ['/var/lib/tor-instances/plinth/']
},
'services': ['tor@plinth']
}

View File

@ -2,6 +2,7 @@
"""Configure Tor service."""
import codecs
import logging
import os
import pathlib
import re
@ -15,20 +16,29 @@ import augeas
from plinth import action_utils
from plinth.actions import privileged
from plinth.modules.tor.utils import APT_TOR_PREFIX, get_augeas, iter_apt_uris
INSTANCE_NAME = 'plinth'
SERVICE_FILE = '/etc/firewalld/services/tor-{0}.xml'
TOR_CONFIG = '/files/etc/tor/instances/plinth/torrc'
TOR_STATE_FILE = '/var/lib/tor-instances/plinth/state'
TOR_AUTH_COOKIE = '/var/run/tor-instances/plinth/control.authcookie'
SERVICE_NAME = f'tor@{INSTANCE_NAME}'
TOR_CONFIG = f'/etc/tor/instances/{INSTANCE_NAME}/torrc'
TOR_CONFIG_AUG = f'/files/{TOR_CONFIG}'
TOR_STATE_FILE = f'/var/lib/tor-instances/{INSTANCE_NAME}/state'
TOR_AUTH_COOKIE = f'/var/run/tor-instances/{INSTANCE_NAME}/control.authcookie'
TOR_APACHE_SITE = '/etc/apache2/conf-available/onion-location-freedombox.conf'
logger = logging.getLogger(__name__)
@privileged
def setup(old_version: int):
"""Setup Tor configuration after installing it."""
if old_version and old_version <= 4:
_upgrade_orport_value()
if old_version:
if old_version <= 4:
_upgrade_orport_value()
if old_version <= 6:
_remove_proxy()
return
_first_time_setup()
@ -37,50 +47,39 @@ def setup(old_version: int):
def _first_time_setup():
"""Setup Tor configuration for the first time setting defaults."""
logger.info('Performing first time setup for Tor')
# Disable default tor service. We will use tor@plinth instance
# instead.
_disable_apt_transport_tor()
action_utils.service_disable('tor')
action_utils.service_disable('tor@default')
subprocess.run(['tor-instance-create', 'plinth'], check=True)
subprocess.run(['tor-instance-create', INSTANCE_NAME], check=True)
# Remove line starting with +SocksPort, since our augeas lens
# doesn't handle it correctly.
with open('/etc/tor/instances/plinth/torrc', 'r',
encoding='utf-8') as torrc:
with open(TOR_CONFIG, 'r', encoding='utf-8') as torrc:
torrc_lines = torrc.readlines()
with open('/etc/tor/instances/plinth/torrc', 'w',
encoding='utf-8') as torrc:
with open(TOR_CONFIG, 'w', encoding='utf-8') as torrc:
for line in torrc_lines:
if not line.startswith('+'):
torrc.write(line)
aug = augeas_load()
aug.set(TOR_CONFIG + '/SocksPort[1]', '[::]:9050')
aug.set(TOR_CONFIG + '/SocksPort[2]', '0.0.0.0:9050')
aug.set(TOR_CONFIG + '/ControlPort', '9051')
aug.set(TOR_CONFIG_AUG + '/ControlPort', '9051')
_enable_relay(relay=True, bridge=True, aug=aug)
aug.set(TOR_CONFIG + '/ExitPolicy[1]', 'reject *:*')
aug.set(TOR_CONFIG + '/ExitPolicy[2]', 'reject6 *:*')
aug.set(TOR_CONFIG_AUG + '/ExitPolicy[1]', 'reject *:*')
aug.set(TOR_CONFIG_AUG + '/ExitPolicy[2]', 'reject6 *:*')
aug.set(TOR_CONFIG + '/VirtualAddrNetworkIPv4', '10.192.0.0/10')
aug.set(TOR_CONFIG + '/AutomapHostsOnResolve', '1')
aug.set(TOR_CONFIG + '/TransPort[1]', '127.0.0.1:9040')
aug.set(TOR_CONFIG + '/TransPort[2]', '[::1]:9040')
aug.set(TOR_CONFIG + '/DNSPort[1]', '127.0.0.1:9053')
aug.set(TOR_CONFIG + '/DNSPort[2]', '[::1]:9053')
aug.set(TOR_CONFIG + '/HiddenServiceDir',
'/var/lib/tor-instances/plinth/hidden_service')
aug.set(TOR_CONFIG + '/HiddenServicePort[1]', '22 127.0.0.1:22')
aug.set(TOR_CONFIG + '/HiddenServicePort[2]', '80 127.0.0.1:80')
aug.set(TOR_CONFIG + '/HiddenServicePort[3]', '443 127.0.0.1:443')
aug.set(TOR_CONFIG_AUG + '/HiddenServiceDir',
f'/var/lib/tor-instances/{INSTANCE_NAME}/hidden_service')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[1]', '22 127.0.0.1:22')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[2]', '80 127.0.0.1:80')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[3]', '443 127.0.0.1:443')
aug.save()
action_utils.service_enable('tor@plinth')
action_utils.service_restart('tor@plinth')
action_utils.service_enable(SERVICE_NAME)
action_utils.service_restart(SERVICE_NAME)
_update_ports()
# wait until hidden service information is available
@ -110,28 +109,45 @@ def _upgrade_orport_value():
443 is not possible in FreedomBox due it is use for other purposes.
"""
logger.info('Upgrading ORPort value for Tor')
aug = augeas_load()
if _is_relay_enabled(aug):
aug.set(TOR_CONFIG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG + '/ORPort[2]', '[::]:9001')
aug.set(TOR_CONFIG_AUG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG_AUG + '/ORPort[2]', '[::]:9001')
aug.save()
action_utils.service_try_restart('tor@plinth')
action_utils.service_try_restart(SERVICE_NAME)
# Tor may not be running, don't try to read/update all ports
_update_port('orport', 9001)
action_utils.service_restart('firewalld')
def _remove_proxy():
"""Remove SocksProxy from configuration.
This functionality was split off to a separate app, Tor Proxy.
"""
logger.info('Removing SocksProxy from Tor configuration')
aug = augeas_load()
for config in [
'SocksPort', 'VirtualAddrNetworkIPv4', 'AutomapHostsOnResolve',
'TransPort', 'DNSPort'
]:
aug.remove(TOR_CONFIG_AUG + '/' + config)
aug.save()
action_utils.service_try_restart(SERVICE_NAME)
@privileged
def configure(use_upstream_bridges: Optional[bool] = None,
upstream_bridges: Optional[str] = None,
relay: Optional[bool] = None,
bridge_relay: Optional[bool] = None,
hidden_service: Optional[bool] = None,
apt_transport_tor: Optional[bool] = None):
hidden_service: Optional[bool] = None):
"""Configure Tor."""
aug = augeas_load()
@ -151,11 +167,6 @@ def configure(use_upstream_bridges: Optional[bool] = None,
elif hidden_service is not None:
_disable_hs(aug=aug)
if apt_transport_tor:
_enable_apt_transport_tor()
elif apt_transport_tor is not None:
_disable_apt_transport_tor()
@privileged
def update_ports():
@ -166,12 +177,12 @@ def update_ports():
@privileged
def restart():
"""Restart Tor."""
if (action_utils.service_is_enabled('tor@plinth', strict_check=True)
and action_utils.service_is_running('tor@plinth')):
action_utils.service_restart('tor@plinth')
if (action_utils.service_is_enabled(SERVICE_NAME, strict_check=True)
and action_utils.service_is_running(SERVICE_NAME)):
action_utils.service_restart(SERVICE_NAME)
aug = augeas_load()
if aug.get(TOR_CONFIG + '/HiddenServiceDir'):
if aug.get(TOR_CONFIG_AUG + '/HiddenServiceDir'):
# wait until hidden service information is available
tries = 0
while not _get_hidden_service()['enabled']:
@ -197,26 +208,26 @@ def get_status() -> dict[str, Union[bool, str, dict[str, Any]]]:
def _are_upstream_bridges_enabled(aug) -> bool:
"""Return whether upstream bridges are being used."""
use_bridges = aug.get(TOR_CONFIG + '/UseBridges')
use_bridges = aug.get(TOR_CONFIG_AUG + '/UseBridges')
return use_bridges == '1'
def _get_upstream_bridges(aug) -> str:
"""Return upstream bridges separated by newlines."""
matches = aug.match(TOR_CONFIG + '/Bridge')
matches = aug.match(TOR_CONFIG_AUG + '/Bridge')
bridges = [aug.get(match) for match in matches]
return '\n'.join(bridges)
def _is_relay_enabled(aug) -> bool:
"""Return whether a relay is enabled."""
orport = aug.get(TOR_CONFIG + '/ORPort[1]')
orport = aug.get(TOR_CONFIG_AUG + '/ORPort[1]')
return bool(orport) and orport != '0'
def _is_bridge_relay_enabled(aug) -> bool:
"""Return whether bridge relay is enabled."""
bridge = aug.get(TOR_CONFIG + '/BridgeRelay')
bridge = aug.get(TOR_CONFIG_AUG + '/BridgeRelay')
return bridge == '1'
@ -272,8 +283,8 @@ def _get_hidden_service(aug=None) -> dict[str, Any]:
if not aug:
aug = augeas_load()
hs_dir = aug.get(TOR_CONFIG + '/HiddenServiceDir')
hs_port_paths = aug.match(TOR_CONFIG + '/HiddenServicePort')
hs_dir = aug.get(TOR_CONFIG_AUG + '/HiddenServiceDir')
hs_port_paths = aug.match(TOR_CONFIG_AUG + '/HiddenServicePort')
for hs_port_path in hs_port_paths:
port_info = aug.get(hs_port_path).split()
@ -300,14 +311,13 @@ def _get_hidden_service(aug=None) -> dict[str, Any]:
def _enable():
"""Enable and start the service."""
action_utils.service_enable('tor@plinth')
action_utils.service_enable(SERVICE_NAME)
_update_ports()
def _disable():
"""Disable and stop the service."""
_disable_apt_transport_tor()
action_utils.service_disable('tor@plinth')
action_utils.service_disable(SERVICE_NAME)
def _use_upstream_bridges(use_upstream_bridges: Optional[bool] = None,
@ -320,9 +330,9 @@ def _use_upstream_bridges(use_upstream_bridges: Optional[bool] = None,
aug = augeas_load()
if use_upstream_bridges:
aug.set(TOR_CONFIG + '/UseBridges', '1')
aug.set(TOR_CONFIG_AUG + '/UseBridges', '1')
else:
aug.set(TOR_CONFIG + '/UseBridges', '0')
aug.set(TOR_CONFIG_AUG + '/UseBridges', '0')
aug.save()
@ -335,16 +345,16 @@ def _set_upstream_bridges(upstream_bridges=None, aug=None):
if not aug:
aug = augeas_load()
aug.remove(TOR_CONFIG + '/Bridge')
aug.remove(TOR_CONFIG_AUG + '/Bridge')
if upstream_bridges:
bridges = [bridge.strip() for bridge in upstream_bridges.split('\n')]
bridges = [bridge for bridge in bridges if bridge]
for bridge in bridges:
parts = [part for part in bridge.split() if part]
bridge = ' '.join(parts)
aug.set(TOR_CONFIG + '/Bridge[last() + 1]', bridge.strip())
aug.set(TOR_CONFIG_AUG + '/Bridge[last() + 1]', bridge.strip())
aug.set(TOR_CONFIG + '/ClientTransportPlugin',
aug.set(TOR_CONFIG_AUG + '/ClientTransportPlugin',
'obfs3,scramblesuit,obfs4 exec /usr/bin/obfs4proxy')
aug.save()
@ -362,20 +372,20 @@ def _enable_relay(relay: Optional[bool], bridge: Optional[bool],
use_upstream_bridges = _are_upstream_bridges_enabled(aug)
if relay and not use_upstream_bridges:
aug.set(TOR_CONFIG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG + '/ORPort[2]', '[::]:9001')
aug.set(TOR_CONFIG_AUG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG_AUG + '/ORPort[2]', '[::]:9001')
elif relay is not None:
aug.remove(TOR_CONFIG + '/ORPort')
aug.remove(TOR_CONFIG_AUG + '/ORPort')
if bridge and not use_upstream_bridges:
aug.set(TOR_CONFIG + '/BridgeRelay', '1')
aug.set(TOR_CONFIG + '/ServerTransportPlugin',
aug.set(TOR_CONFIG_AUG + '/BridgeRelay', '1')
aug.set(TOR_CONFIG_AUG + '/ServerTransportPlugin',
'obfs3,obfs4 exec /usr/bin/obfs4proxy')
aug.set(TOR_CONFIG + '/ExtORPort', 'auto')
aug.set(TOR_CONFIG_AUG + '/ExtORPort', 'auto')
elif bridge is not None:
aug.remove(TOR_CONFIG + '/BridgeRelay')
aug.remove(TOR_CONFIG + '/ServerTransportPlugin')
aug.remove(TOR_CONFIG + '/ExtORPort')
aug.remove(TOR_CONFIG_AUG + '/BridgeRelay')
aug.remove(TOR_CONFIG_AUG + '/ServerTransportPlugin')
aug.remove(TOR_CONFIG_AUG + '/ExtORPort')
aug.save()
@ -388,11 +398,11 @@ def _enable_hs(aug=None):
if _get_hidden_service(aug)['enabled']:
return
aug.set(TOR_CONFIG + '/HiddenServiceDir',
'/var/lib/tor-instances/plinth/hidden_service')
aug.set(TOR_CONFIG + '/HiddenServicePort[1]', '22 127.0.0.1:22')
aug.set(TOR_CONFIG + '/HiddenServicePort[2]', '80 127.0.0.1:80')
aug.set(TOR_CONFIG + '/HiddenServicePort[3]', '443 127.0.0.1:443')
aug.set(TOR_CONFIG_AUG + '/HiddenServiceDir',
f'/var/lib/tor-instances/{INSTANCE_NAME}/hidden_service')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[1]', '22 127.0.0.1:22')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[2]', '80 127.0.0.1:80')
aug.set(TOR_CONFIG_AUG + '/HiddenServicePort[3]', '443 127.0.0.1:443')
aug.save()
_set_onion_header(_get_hidden_service(aug))
@ -405,39 +415,12 @@ def _disable_hs(aug=None):
if not _get_hidden_service(aug)['enabled']:
return
aug.remove(TOR_CONFIG + '/HiddenServiceDir')
aug.remove(TOR_CONFIG + '/HiddenServicePort')
aug.remove(TOR_CONFIG_AUG + '/HiddenServiceDir')
aug.remove(TOR_CONFIG_AUG + '/HiddenServicePort')
aug.save()
_set_onion_header(None)
def _enable_apt_transport_tor():
"""Enable package download over Tor."""
aug = get_augeas()
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if uri.startswith('http://') or uri.startswith('https://'):
aug.set(uri_path, APT_TOR_PREFIX + uri)
aug.save()
def _disable_apt_transport_tor():
"""Disable package download over Tor."""
try:
aug = get_augeas()
except Exception:
# Disable what we can, so APT is not unusable.
pass
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if uri.startswith(APT_TOR_PREFIX):
aug.set(uri_path, uri[len(APT_TOR_PREFIX):])
aug.save()
def _update_port(name, number):
"""Update firewall service information for single port."""
lines = """<?xml version="1.0" encoding="utf-8"?>
@ -485,14 +468,14 @@ def augeas_load():
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.set('/augeas/load/Tor/lens', 'Tor.lns')
aug.set('/augeas/load/Tor/incl[last() + 1]',
'/etc/tor/instances/plinth/torrc')
aug.set('/augeas/load/Tor/incl[last() + 1]', TOR_CONFIG)
aug.load()
return aug
def _set_onion_header(hidden_service):
"""Set Apache configuration for the Onion-Location header."""
logger.info('Setting Onion-Location header for Apache')
config_file = pathlib.Path(TOR_APACHE_SITE)
if hidden_service and hidden_service['enabled']:
# https://community.torproject.org/onion-services/advanced/onion-location/
@ -512,10 +495,13 @@ def _set_onion_header(hidden_service):
@privileged
def uninstall():
"""Remove create instances."""
"""Remove plinth instance."""
directories = [
'/etc/tor/instances/', '/var/lib/tor-instances/',
'/var/run/tor-instances/'
f'/etc/tor/instances/{INSTANCE_NAME}/',
f'/var/lib/tor-instances/{INSTANCE_NAME}/',
f'/var/run/tor-instances/{INSTANCE_NAME}/'
]
for directory in directories:
shutil.rmtree(directory, ignore_errors=True)
os.unlink(f'/var/run/tor-instances/{INSTANCE_NAME}.defaults')

View File

@ -11,7 +11,6 @@ _TOR_FEATURE_TO_ELEMENT = {
'relay': 'tor-relay_enabled',
'bridge-relay': 'tor-bridge_relay_enabled',
'hidden-services': 'tor-hs_enabled',
'software': 'tor-apt_transport_tor_enabled'
}
pytestmark = [pytest.mark.apps, pytest.mark.domain, pytest.mark.tor]
@ -21,9 +20,6 @@ class TestTorApp(functional.BaseAppTests):
app_name = 'tor'
has_service = True
has_web = False
# TODO: Investigate why accessing IPv6 sites through Tor fails in
# container.
check_diagnostics = False
def test_set_tor_relay_configuration(self, session_browser):
"""Test setting Tor relay configuration."""
@ -52,13 +48,6 @@ class TestTorApp(functional.BaseAppTests):
enabled=True)
_assert_hidden_services(session_browser)
def test_set_download_software_packages_over_tor(self, session_browser):
"""Test setting download software packages over Tor."""
functional.app_enable(session_browser, 'tor')
_feature_enable(session_browser, 'software', should_enable=True)
_feature_enable(session_browser, 'software', should_enable=False)
_assert_feature_enabled(session_browser, 'software', enabled=False)
# TODO: Test more thoroughly by checking same hidden service is restored
# and by actually connecting using Tor.
@pytest.mark.backups

View File

@ -14,14 +14,6 @@ from plinth.modules.tor import forms, utils
class TestTor:
"""Test cases for testing the Tor module."""
@staticmethod
@pytest.mark.usefixtures('needs_root')
def test_is_apt_transport_tor_enabled():
"""Test that is_apt_transport_tor_enabled does not raise any unhandled
exceptions.
"""
utils.is_apt_transport_tor_enabled()
@staticmethod
@patch('plinth.app.App.get')
@pytest.mark.usefixtures('needs_root', 'load_cfg')
@ -29,7 +21,7 @@ class TestTor:
"""Test that get_status does not raise any unhandled exceptions.
This should work regardless of whether tor is installed, or
/etc/tor/torrc exists.
/etc/tor/instances/plinth/torrc exists.
"""
utils.get_status()

View File

@ -1,21 +1,12 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Tor utility functions."""
import itertools
import augeas
from plinth import app as app_module
from plinth.daemon import app_is_running
from plinth.modules.names.components import DomainName
from . import privileged
APT_SOURCES_URI_PATHS = ('/files/etc/apt/sources.list/*/uri',
'/files/etc/apt/sources.list.d/*/*/uri',
'/files/etc/apt/sources.list.d/*/*/URIs/*')
APT_TOR_PREFIX = 'tor+'
def get_status(initialized=True):
"""Return current Tor status."""
@ -53,50 +44,4 @@ def get_status(initialized=True):
'hs_hostname': hs_info['hostname'],
'hs_ports': hs_info['ports'],
'hs_services': hs_services,
'apt_transport_tor_enabled': is_apt_transport_tor_enabled()
}
def iter_apt_uris(aug):
"""Iterate over all the APT source URIs."""
return itertools.chain.from_iterable(
[aug.match(path) for path in APT_SOURCES_URI_PATHS])
def get_augeas():
"""Return an instance of Augeaus for processing APT configuration."""
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.set('/augeas/load/Aptsources/lens', 'Aptsources.lns')
aug.set('/augeas/load/Aptsources/incl[last() + 1]',
'/etc/apt/sources.list')
aug.set('/augeas/load/Aptsources/incl[last() + 1]',
'/etc/apt/sources.list.d/*.list')
aug.set('/augeas/load/Aptsources822/lens', 'Aptsources822.lns')
aug.set('/augeas/load/Aptsources822/incl[last() + 1]',
'/etc/apt/sources.list.d/*.sources')
aug.load()
# Check for any errors in parsing sources lists.
if aug.match('/augeas/files/etc/apt/sources.list/error') or \
aug.match('/augeas/files/etc/apt/sources.list.d//error'):
raise Exception('Error parsing sources list')
return aug
def is_apt_transport_tor_enabled():
"""Return whether APT is set to download packages over Tor."""
try:
aug = get_augeas()
except Exception:
# If there was an error with parsing.
return False
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if not uri.startswith(APT_TOR_PREFIX) and \
(uri.startswith('http://') or uri.startswith('https://')):
return False
return True

View File

@ -79,43 +79,31 @@ def _apply_changes(old_status, new_status):
def __apply_changes(old_status, new_status):
"""Apply the changes."""
needs_restart = False
arguments = {}
app = app_module.App.get('tor')
is_enabled = app.is_enabled()
if old_status['relay_enabled'] != new_status['relay_enabled']:
arguments['relay'] = new_status['relay_enabled']
needs_restart = True
if old_status['bridge_relay_enabled'] != \
new_status['bridge_relay_enabled']:
arguments['bridge_relay'] = new_status['bridge_relay_enabled']
needs_restart = True
if old_status['hs_enabled'] != new_status['hs_enabled']:
arguments['hidden_service'] = new_status['hs_enabled']
needs_restart = True
if old_status['apt_transport_tor_enabled'] != \
new_status['apt_transport_tor_enabled']:
arguments['apt_transport_tor'] = (
is_enabled and new_status['apt_transport_tor_enabled'])
if old_status['use_upstream_bridges'] != \
new_status['use_upstream_bridges']:
arguments['use_upstream_bridges'] = new_status['use_upstream_bridges']
needs_restart = True
if old_status['upstream_bridges'] != new_status['upstream_bridges']:
arguments['upstream_bridges'] = new_status['upstream_bridges']
needs_restart = True
if arguments:
privileged.configure(**arguments)
if needs_restart and is_enabled:
privileged.restart()
status = tor_utils.get_status()
tor.update_hidden_service_domain(status)
if is_enabled:
privileged.restart()
status = tor_utils.get_status()
tor.update_hidden_service_domain(status)

View File

@ -0,0 +1,152 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""FreedomBox app to configure Tor Proxy."""
import json
import logging
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
from plinth import app as app_module
from plinth import cfg, frontpage, kvstore, menu
from plinth.daemon import Daemon
from plinth.modules.apache.components import diagnose_url
from plinth.modules.backups.components import BackupRestore
from plinth.modules.firewall.components import Firewall
from plinth.modules.users.components import UsersAndGroups
from plinth.package import Packages
from plinth.utils import format_lazy
from . import manifest, privileged
logger = logging.getLogger(__name__)
PREINSTALL_CONFIG_KEY = 'torproxy_preinstall_config'
_description = [
_('Tor is an anonymous communication system. You can learn more '
'about it from the <a href="https://www.torproject.org/">Tor '
'Project</a> website. For best protection when web surfing, the '
'Tor Project recommends that you use the '
'<a href="https://www.torproject.org/download/download-easy.html.en">'
'Tor Browser</a>.'),
format_lazy(
_('This app provides a web proxy on your {box_name} for internal '
'networks on TCP port 9050 using the SOCKS protocol. This can be '
'used by various apps to access the internet via the Tor network. '
'ISP censorship can be circumvented using upstream bridges.'),
box_name=_(cfg.box_name))
]
class TorProxyApp(app_module.App):
"""FreedomBox app for Tor Proxy."""
app_id = 'torproxy'
_version = 1
def __init__(self):
"""Create components for the app."""
super().__init__()
info = app_module.Info(app_id=self.app_id, version=self._version,
name=_('Tor Proxy'), icon_filename='torproxy',
short_description=_('Anonymity Network'),
description=_description,
manual_page='TorProxy',
clients=manifest.clients,
donation_url='https://donate.torproject.org/')
self.add(info)
menu_item = menu.Menu('menu-torproxy', info.name,
info.short_description, info.icon_filename,
'torproxy:index', parent_url_name='apps')
self.add(menu_item)
shortcut = frontpage.Shortcut(
'shortcut-torproxy', info.name,
short_description=info.short_description, icon=info.icon_filename,
description=info.description, manual_page=info.manual_page,
configure_url=reverse_lazy('torproxy:index'), login_required=True)
self.add(shortcut)
packages = Packages('packages-torproxy', [
'tor', 'tor-geoipdb', 'torsocks', 'obfs4proxy', 'apt-transport-tor'
])
self.add(packages)
firewall = Firewall('firewall-torproxy-socks', _('Tor Socks Proxy'),
ports=['tor-socks'], is_external=False)
self.add(firewall)
daemon = Daemon(
'daemon-torproxy', 'tor@fbxproxy', strict_check=True,
listen_ports=[(9050, 'tcp4'), (9050, 'tcp6'), (9040, 'tcp4'),
(9040, 'tcp6'), (9053, 'udp4'), (9053, 'udp6')])
self.add(daemon)
users_and_groups = UsersAndGroups('users-and-groups-torproxy',
reserved_usernames=['debian-tor'])
self.add(users_and_groups)
backup_restore = BackupRestore('backup-restore-torproxy',
**manifest.backup)
self.add(backup_restore)
def disable(self):
"""Disable APT use of Tor before disabling."""
privileged.configure(apt_transport_tor=False)
super().disable()
def diagnose(self):
"""Run diagnostics and return the results."""
results = super().diagnose()
results.append(_diagnose_url_via_tor('http://www.debian.org', '4'))
results.append(_diagnose_url_via_tor('http://www.debian.org', '6'))
results.append(_diagnose_tor_use('https://check.torproject.org', '4'))
results.append(_diagnose_tor_use('https://check.torproject.org', '6'))
return results
def setup(self, old_version):
"""Install and configure the app."""
super().setup(old_version)
privileged.setup(old_version)
if not old_version:
logger.info('Enabling apt-transport-tor')
config = kvstore.get_default(PREINSTALL_CONFIG_KEY, '{}')
config = json.loads(config)
config = {
'use_upstream_bridges': config.get('use_upstream_bridges'),
'upstream_bridges': config.get('upstream_bridges'),
'apt_transport_tor': config.get('apt_transport_tor', True),
}
privileged.configure(**config)
logger.info('Enabling Tor Proxy app')
self.enable()
kvstore.delete(PREINSTALL_CONFIG_KEY, ignore_missing=True)
def uninstall(self):
"""De-configure and uninstall the app."""
super().uninstall()
privileged.uninstall()
def _diagnose_url_via_tor(url, kind=None):
"""Diagnose whether a URL is reachable via Tor."""
result = diagnose_url(url, kind=kind, wrapper='torsocks')
result[0] = _('Access URL {url} on tcp{kind} via Tor') \
.format(url=url, kind=kind)
return result
def _diagnose_tor_use(url, kind=None):
"""Diagnose whether webpage at URL reports that we are using Tor."""
expected_output = 'Congratulations. This browser is configured to use Tor.'
result = diagnose_url(url, kind=kind, wrapper='torsocks',
expected_output=expected_output)
result[0] = _('Confirm Tor usage at {url} on tcp{kind}') \
.format(url=url, kind=kind)
return result

View File

@ -0,0 +1 @@
plinth.modules.torproxy

View File

@ -0,0 +1,19 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Forms for configuring Tor Proxy.
"""
from django import forms
from django.utils.translation import gettext_lazy as _
from plinth.modules.tor.forms import TorCommonForm
class TorProxyForm(TorCommonForm):
"""Tor Proxy configuration form."""
apt_transport_tor_enabled = forms.BooleanField(
label=_('Download software packages over Tor'), required=False,
help_text=_('When enabled, software will be downloaded over the Tor '
'network for installations and upgrades. This adds a '
'degree of privacy and security during software '
'downloads.'))

View File

@ -0,0 +1,52 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""App manifest for Tor Proxy."""
from django.utils.translation import gettext_lazy as _
from plinth.clients import store_url
_ORBOT_PACKAGE_ID = 'org.torproject.android'
_TOR_BROWSER_DOWNLOAD_URL = \
'https://www.torproject.org/download/download-easy.html'
clients = [{
'name':
_('Tor Browser'),
'platforms': [{
'type': 'download',
'os': 'windows',
'url': _TOR_BROWSER_DOWNLOAD_URL,
}, {
'type': 'download',
'os': 'gnu-linux',
'url': _TOR_BROWSER_DOWNLOAD_URL,
}, {
'type': 'download',
'os': 'macos',
'url': _TOR_BROWSER_DOWNLOAD_URL,
}]
}, {
'name':
_('Orbot: Proxy with Tor'),
'platforms': [{
'type': 'store',
'os': 'android',
'store_name': 'google-play',
'url': store_url('google-play', _ORBOT_PACKAGE_ID)
}, {
'type': 'store',
'os': 'android',
'store_name': 'f-droid',
'url': store_url('f-droid', _ORBOT_PACKAGE_ID)
}]
}]
backup = {
'config': {
'directories': ['/etc/tor/instances/fbxproxy/'],
},
'secrets': {
'directories': ['/var/lib/tor-instances/fbxproxy/']
},
'services': ['tor@fbxproxy']
}

View File

@ -0,0 +1,217 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Configure Tor Proxy service."""
import logging
import os
import shutil
import subprocess
from typing import Any, Optional, Union
import augeas
from plinth import action_utils
from plinth.actions import privileged
from plinth.modules.torproxy.utils import (APT_TOR_PREFIX, get_augeas,
iter_apt_uris)
logger = logging.getLogger(__name__)
INSTANCE_NAME = 'fbxproxy'
SERVICE_FILE = '/etc/firewalld/services/tor-{0}.xml'
SERVICE_NAME = f'tor@{INSTANCE_NAME}'
TORPROXY_CONFIG = f'/etc/tor/instances/{INSTANCE_NAME}/torrc'
TORPROXY_CONFIG_AUG = f'/files/{TORPROXY_CONFIG}'
@privileged
def setup(old_version: int):
"""Setup Tor configuration after installing it."""
_first_time_setup()
def _first_time_setup():
"""Setup Tor configuration for the first time setting defaults."""
logger.info('Performing first time setup for Tor Proxy')
# Disable default tor service. We will use tor@fbxproxy instance
# instead.
_disable_apt_transport_tor()
action_utils.service_disable('tor@default')
subprocess.run(['tor-instance-create', INSTANCE_NAME], check=True)
# Remove line starting with +SocksPort, since our augeas lens
# doesn't handle it correctly.
with open(TORPROXY_CONFIG, 'r', encoding='utf-8') as torrc:
torrc_lines = torrc.readlines()
with open(TORPROXY_CONFIG, 'w', encoding='utf-8') as torrc:
for line in torrc_lines:
if not line.startswith('+'):
torrc.write(line)
aug = augeas_load()
aug.set(TORPROXY_CONFIG_AUG + '/SocksPort[1]', '[::]:9050')
aug.set(TORPROXY_CONFIG_AUG + '/SocksPort[2]', '0.0.0.0:9050')
aug.set(TORPROXY_CONFIG_AUG + '/VirtualAddrNetworkIPv4', '10.192.0.0/10')
aug.set(TORPROXY_CONFIG_AUG + '/AutomapHostsOnResolve', '1')
aug.set(TORPROXY_CONFIG_AUG + '/TransPort[1]', '127.0.0.1:9040')
aug.set(TORPROXY_CONFIG_AUG + '/TransPort[2]', '[::1]:9040')
aug.set(TORPROXY_CONFIG_AUG + '/DNSPort[1]', '127.0.0.1:9053')
aug.set(TORPROXY_CONFIG_AUG + '/DNSPort[2]', '[::1]:9053')
aug.save()
action_utils.service_enable(SERVICE_NAME)
action_utils.service_restart(SERVICE_NAME)
@privileged
def configure(use_upstream_bridges: Optional[bool] = None,
upstream_bridges: Optional[str] = None,
apt_transport_tor: Optional[bool] = None):
"""Configure Tor."""
aug = augeas_load()
_use_upstream_bridges(use_upstream_bridges, aug=aug)
if upstream_bridges:
_set_upstream_bridges(upstream_bridges, aug=aug)
if apt_transport_tor:
_enable_apt_transport_tor()
elif apt_transport_tor is not None:
_disable_apt_transport_tor()
@privileged
def restart():
"""Restart Tor."""
if (action_utils.service_is_enabled(SERVICE_NAME, strict_check=True)
and action_utils.service_is_running(SERVICE_NAME)):
action_utils.service_restart(SERVICE_NAME)
@privileged
def get_status() -> dict[str, Union[bool, str, dict[str, Any]]]:
"""Return dict with Tor Proxy status."""
aug = augeas_load()
return {
'use_upstream_bridges': _are_upstream_bridges_enabled(aug),
'upstream_bridges': _get_upstream_bridges(aug)
}
def _are_upstream_bridges_enabled(aug) -> bool:
"""Return whether upstream bridges are being used."""
use_bridges = aug.get(TORPROXY_CONFIG_AUG + '/UseBridges')
return use_bridges == '1'
def _get_upstream_bridges(aug) -> str:
"""Return upstream bridges separated by newlines."""
matches = aug.match(TORPROXY_CONFIG_AUG + '/Bridge')
bridges = [aug.get(match) for match in matches]
return '\n'.join(bridges)
def _enable():
"""Enable and start the service."""
action_utils.service_enable(SERVICE_NAME)
def _disable():
"""Disable and stop the service."""
_disable_apt_transport_tor()
action_utils.service_disable(SERVICE_NAME)
def _use_upstream_bridges(use_upstream_bridges: Optional[bool] = None,
aug=None):
"""Enable use of upstream bridges."""
if use_upstream_bridges is None:
return
if not aug:
aug = augeas_load()
if use_upstream_bridges:
aug.set(TORPROXY_CONFIG_AUG + '/UseBridges', '1')
else:
aug.set(TORPROXY_CONFIG_AUG + '/UseBridges', '0')
aug.save()
def _set_upstream_bridges(upstream_bridges=None, aug=None):
"""Set list of upstream bridges."""
if upstream_bridges is None:
return
if not aug:
aug = augeas_load()
aug.remove(TORPROXY_CONFIG_AUG + '/Bridge')
if upstream_bridges:
bridges = [bridge.strip() for bridge in upstream_bridges.split('\n')]
bridges = [bridge for bridge in bridges if bridge]
for bridge in bridges:
parts = [part for part in bridge.split() if part]
bridge = ' '.join(parts)
aug.set(TORPROXY_CONFIG_AUG + '/Bridge[last() + 1]',
bridge.strip())
aug.set(TORPROXY_CONFIG_AUG + '/ClientTransportPlugin',
'obfs3,scramblesuit,obfs4 exec /usr/bin/obfs4proxy')
aug.save()
def _enable_apt_transport_tor():
"""Enable package download over Tor."""
aug = get_augeas()
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if uri.startswith('http://') or uri.startswith('https://'):
aug.set(uri_path, APT_TOR_PREFIX + uri)
aug.save()
def _disable_apt_transport_tor():
"""Disable package download over Tor."""
try:
aug = get_augeas()
except Exception:
# Disable what we can, so APT is not unusable.
pass
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if uri.startswith(APT_TOR_PREFIX):
aug.set(uri_path, uri[len(APT_TOR_PREFIX):])
aug.save()
def augeas_load():
"""Initialize Augeas."""
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.set('/augeas/load/Tor/lens', 'Tor.lns')
aug.set('/augeas/load/Tor/incl[last() + 1]', TORPROXY_CONFIG)
aug.load()
return aug
@privileged
def uninstall():
"""Remove fbxproxy instance."""
directories = [
f'/etc/tor/instances/{INSTANCE_NAME}/',
f'/var/lib/tor-instances/{INSTANCE_NAME}/',
f'/var/run/tor-instances/{INSTANCE_NAME}/'
]
for directory in directories:
shutil.rmtree(directory, ignore_errors=True)
os.unlink(f'/var/run/tor-instances/{INSTANCE_NAME}.defaults')

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="512"
height="512"
id="图层_1"
class="mozwebext"
sodipodi:docname="tor.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata27696">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs27694" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1956"
inkscape:window-height="1329"
id="namedview27692"
showgrid="false"
inkscape:zoom="0.41594518"
inkscape:cx="-376.85156"
inkscape:cy="-302.70084"
inkscape:window-x="1463"
inkscape:window-y="369"
inkscape:window-maximized="0"
inkscape:current-layer="图层_1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<g
transform="matrix(2.7708177,0,0,2.7708177,-452.25352,-177.84153)"
id="layer3"
style="display:inline">
<g
id="layer5">
<path
d="m 264.513,77.977773 -4.917,19.529001 c 6.965,-13.793001 18.027,-24.172001 30.729,-33.323001 -9.287,10.789 -17.754,21.579001 -22.944,32.368001 8.741,-12.292001 20.486,-19.120001 33.733,-23.627001 -17.618,15.706001 -31.60228,32.559277 -42.25528,49.494277 l -8.467,-3.687 c 1.501,-13.521 6.60928,-27.369276 14.12128,-40.754277 z"
id="path2554"
style="fill:#abcd03"
inkscape:connector-curvature="0" />
<path
d="m 241.90113,115.14152 16.116,6.68594 c 0,4.098 -0.33313,16.59703 2.22938,20.28403 26.80289,34.5191 22.29349,103.71329 -5.42951,105.48829 -42.21656,0 -58.317,-28.679 -58.317,-55.03801 0,-24.037 28.816,-40.016 46.025,-54.219 4.37,-3.824 3.61113,-12.27525 -0.62387,-23.20125 z"
id="path2534"
style="fill:#fffcdb"
inkscape:connector-curvature="0" />
<path
d="m 258.02197,121.58695 5.80803,2.96282 c -0.546,3.823 0.273,12.292 4.096,14.476 16.936,10.516 32.914,21.988 39.197,33.46 22.398,40.42601 -15.706,77.84601 -48.62,74.29501 17.891,-13.248 23.081,-40.42501 16.389,-70.06201 -2.731,-11.609 -6.966,-22.125 -14.478,-34.007 -3.25421,-5.83246 -2.11803,-13.06582 -2.39203,-21.12482 z"
id="path2536"
style="fill:#7d4698"
inkscape:connector-curvature="0" />
</g>
<g
id="layer4"
style="display:inline">
<path
d="m 255.226,120.58877 12.018,1.639 c -3.551,11.745 6.966,19.939 10.38,21.852 7.64801,4.234 15.02301,8.604 20.89601,13.93 11.063,10.106 17.345,24.31 17.345,39.333 0,14.886 -6.829,29.226 -18.301,38.786 -10.789,9.014 -25.67501,12.838 -40.15201,12.838 -9.014,0 -17.072,-0.409 -25.812,-3.278 -19.939,-6.692 -34.826,-23.763 -36.055,-44.25 -1.093,-15.979 2.458,-28.134 14.887,-40.835 6.418,-6.692 19.393,-14.34 28.271,-20.486 4.371,-3.005 9.014,-11.473 0.136,-27.451 l 1.776,-1.366 13.15659,8.81203 -11.10759,-4.57803 c 0.956,1.366 3.551,7.512 4.098,9.287 1.229,5.053 0.683,9.971 -0.41,12.155 -5.599,10.107 -15.159,12.838 -22.124,18.574 -12.292,10.106 -25.676,18.164 -24.174,45.888 0.683,13.657 11.336,30.319 27.314,38.104 9.014,4.371 19.394,6.146 29.91,6.692 9.423,0.41 27.45101,-5.19 37.28401,-13.384 10.516,-8.74 16.389,-21.988 16.389,-35.508 0,-13.658 -5.463,-26.632 -15.706,-35.783 -5.873,-5.326 -15.56901,-11.745 -21.57801,-15.16 -6.009,-3.414 -13.521,-12.974 -11.063,-22.124 z"
id="path2538"
inkscape:connector-curvature="0" />
<path
d="m 251.539,140.80177 c -1.229,6.283 -2.595,17.618 -8.058,21.852 -2.322,1.638 -4.644,3.278 -7.102,4.916 -9.833,6.693 -19.667,12.974 -24.173,29.09 -0.956,3.415 -0.136,7.102 0.684,10.516 2.458,9.833 9.423,20.486 14.886,26.769 0,0.273 1.093,0.956 1.093,1.229 4.507,5.327 5.873,6.829 22.944,10.652 l -0.41,1.913 c -10.243,-2.731 -18.71,-5.189 -24.037,-11.336 0,-0.136 -0.956,-1.093 -0.956,-1.093 -5.736,-6.556 -12.702,-17.481 -15.296,-27.724 -0.956,-4.098 -1.775,-7.238 -0.683,-11.473 4.643,-16.661 14.75,-23.217 24.993,-30.182 2.322,-1.502 5.053,-2.869 7.238,-4.644 4.233,-3.14 6.554,-12.701 8.877,-20.485 z"
id="path2540"
inkscape:connector-curvature="0" />
<path
d="m 255.90625,166.74951 c 0.137,7.102 -0.55625,10.66475 1.21875,15.71875 1.092,3.004 4.782,7.1015 5.875,11.0625 1.502,5.327 3.138,11.19901 3,14.75001 0,4.09799 -0.25625,11.74249 -2.03125,19.93749 -1.35362,6.77108 -4.47323,12.58153 -9.71875,15.875 -5.37327,-1.10644 -11.68224,-2.99521 -15.40625,-6.1875 -7.238,-6.282 -13.64875,-16.7865 -14.46875,-25.9375 -0.682,-7.51099 6.27275,-18.5885 15.96875,-24.1875 8.194,-4.78 10.1,-10.22775 11.875,-18.96875 -2.458,7.648 -4.7665,14.05925 -12.6875,18.15625 -11.472,6.009 -17.3585,16.09626 -16.8125,25.65625 0.819,12.291 5.7415,20.6195 15.4375,27.3125 4.097,2.868 11.75125,5.89875 16.53125,6.71875 v -0.625 c 3.62493,-0.67888 8.31818,-6.63267 10.65625,-14.6875 2.049,-7.238 2.85675,-16.502 2.71875,-22.37499 -0.137,-3.414 -1.643,-10.80801 -4.375,-17.50001 -1.502,-3.687 -3.8095,-7.37375 -5.3125,-9.96875 -1.637,-2.597 -1.64875,-8.195 -2.46875,-14.75 z"
id="path2542"
inkscape:connector-curvature="0" />
<path
d="m 255.09375,193.53076 c 0.136,4.78 2.056,10.90451 2.875,17.18751 0.684,4.64399 0.387,9.30824 0.25,13.40624 -0.13495,4.74323 -1.7152,13.24218 -3.875,17.375 -2.03673,-0.93403 -2.83294,-1.99922 -4.15625,-3.71875 -1.638,-2.322 -2.75075,-4.644 -3.84375,-7.375 -0.819,-2.049 -1.7765,-4.394 -2.1875,-7.125 -0.546,-4.097 -0.393,-10.5065 4.25,-17.06249 3.551,-5.19001 4.36475,-5.58476 5.59375,-11.59376 -1.64,5.326 -2.8625,5.869 -6.6875,10.37501 -4.233,4.917 -4.9375,12.15924 -4.9375,18.03124 0,2.459 0.9805,5.18725 1.9375,7.78125 1.092,2.732 2.02925,5.452 3.53125,7.5 2.25796,3.32082 5.14798,5.20922 6.5625,5.5625 0.009,0.002 0.022,-0.002 0.0312,0 0.0303,0.007 0.0649,0.0255 0.0937,0.0312 v -0.15625 c 2.64982,-2.95437 4.24444,-5.88934 4.78125,-8.84375 0.683,-3.551 0.84,-7.10975 1.25,-11.34375 0.409,-3.551 0.11225,-8.334 -0.84375,-13.24999 -1.365,-6.146 -3.669,-12.41226 -4.625,-16.78126 z"
id="path2544"
inkscape:connector-curvature="0" />
<path
d="m 255.499,135.06577 c 0.137,7.101 0.683,20.35 2.595,25.539 0.546,1.775 5.599,9.56 9.149,18.983 2.459,6.556 3.005,12.565 3.415,14.34 1.639,7.785 -0.41,20.896 -3.142,33.324 -1.365,6.692 -6.009,15.023 -11.335,18.301 l -1.092,1.912 c 3.005,-0.137 10.379,-7.375 12.974,-16.389 4.371,-15.296 6.146,-22.398 4.098,-39.333 -0.273,-1.64 -0.956,-7.238 -3.551,-13.248 -3.824,-9.151 -9.287,-17.891 -9.969,-19.667 -1.23,-2.867 -2.869,-15.295 -3.142,-23.762 z"
id="path2550"
inkscape:connector-curvature="0" />
<path
d="m 258.06151,125.35303 c -0.40515,7.29812 -0.51351,9.98574 0.85149,15.31174 1.502,5.873 9.151,14.34 12.292,24.037 6.009,18.574 4.507,42.884 0.136,61.867 -1.638,6.691 -9.424,16.389 -17.208,19.529 l 5.736,1.366 c 3.141,-0.137 11.198,-7.648 14.34,-16.252 5.052,-13.521 6.009,-29.636 3.96,-46.571 -0.137,-1.639 -2.869,-16.252 -5.463,-22.398 -3.688,-9.15 -10.244,-17.345 -10.926,-19.119 -1.228,-3.005 -3.92651,-9.24362 -3.71849,-17.77074 z"
id="path2552"
inkscape:connector-curvature="0" />
<rect
width="0.550412"
height="126.01891"
x="253.71959"
y="120.21686"
id="rect2556" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,33 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
/**
* @licstart The following is the entire license notice for the JavaScript
* code in this page.
*
* This file is part of FreedomBox.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice for the JavaScript code
* in this page.
*/
(function($) {
$('#id_torproxy-use_upstream_bridges').change(function() {
if ($('#id_torproxy-use_upstream_bridges').prop('checked')) {
$('#id_torproxy-upstream_bridges').parent().parent().show('slow');
} else {
$('#id_torproxy-upstream_bridges').parent().parent().hide('slow');
}
}).change();
})(jQuery);

View File

@ -0,0 +1,10 @@
{% extends "app.html" %}
{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{% load static %}
{% block page_js %}
<script type="text/javascript" src="{% static 'torproxy/torproxy.js' %}"></script>
{% endblock %}

View File

@ -0,0 +1,64 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Functional, browser based tests for Tor Proxy app.
"""
import pytest
from plinth.tests import functional
_TOR_FEATURE_TO_ELEMENT = {'software': 'torproxy-apt_transport_tor_enabled'}
pytestmark = [pytest.mark.apps, pytest.mark.torproxy]
class TestTorProxyApp(functional.BaseAppTests):
"""Tests for the Tor Proxy app."""
app_name = 'torproxy'
has_service = True
has_web = False
# TODO: Investigate why accessing IPv6 sites through Tor fails in
# container.
check_diagnostics = False
def test_set_download_software_packages_over_tor(self, session_browser):
"""Test setting download software packages over Tor."""
functional.app_enable(session_browser, 'torproxy')
_feature_enable(session_browser, 'software', should_enable=True)
_feature_enable(session_browser, 'software', should_enable=False)
_assert_feature_enabled(session_browser, 'software', enabled=False)
@pytest.mark.backups
def test_backup_restore(self, session_browser):
"""Test backup and restore of configuration."""
functional.app_enable(session_browser, 'torproxy')
# TODO: Check that upstream bridges are restored.
functional.backup_create(session_browser, 'torproxy', 'test_torproxy')
functional.backup_restore(session_browser, 'torproxy', 'test_torproxy')
assert functional.service_is_running(session_browser, 'torproxy')
def _feature_enable(browser, feature, should_enable):
"""Enable/disable a Tor Proxy feature."""
element_name = _TOR_FEATURE_TO_ELEMENT[feature]
functional.nav_to_module(browser, 'torproxy')
checkbox_element = browser.find_by_name(element_name).first
if should_enable == checkbox_element.checked:
return
if should_enable:
checkbox_element.check()
else:
checkbox_element.uncheck()
functional.submit(browser, form_class='form-configuration')
functional.wait_for_config_update(browser, 'torproxy')
def _assert_feature_enabled(browser, feature, enabled):
"""Assert whether Tor Proxy feature is enabled or disabled."""
element_name = _TOR_FEATURE_TO_ELEMENT[feature]
functional.nav_to_module(browser, 'torproxy')
assert browser.find_by_name(element_name).first.checked == enabled

View File

@ -0,0 +1,33 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Tests for Tor Proxy module.
"""
from unittest.mock import patch
import pytest
from plinth.modules.torproxy import utils
class TestTorProxy:
"""Test cases for testing the Tor Proxy module."""
@staticmethod
@pytest.mark.usefixtures('needs_root')
def test_is_apt_transport_tor_enabled():
"""Test that is_apt_transport_tor_enabled does not raise any unhandled
exceptions.
"""
utils.is_apt_transport_tor_enabled()
@staticmethod
@patch('plinth.app.App.get')
@pytest.mark.usefixtures('needs_root', 'load_cfg')
def test_get_status(_app_get):
"""Test that get_status does not raise any unhandled exceptions.
This should work regardless of whether tor is installed, or
/etc/tor/instances/fbxproxy/torrc exists.
"""
utils.get_status()

View File

@ -0,0 +1,13 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
URLs for the Tor Proxy module.
"""
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r'^apps/torproxy/$', views.TorProxyAppView.as_view(),
name='index'),
]

View File

@ -0,0 +1,75 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Tor Proxy utility functions."""
import itertools
import augeas
from plinth import app as app_module
from plinth.daemon import app_is_running
from . import privileged
APT_SOURCES_URI_PATHS = ('/files/etc/apt/sources.list/*/uri',
'/files/etc/apt/sources.list.d/*/*/uri',
'/files/etc/apt/sources.list.d/*/*/URIs/*')
APT_TOR_PREFIX = 'tor+'
def get_status(initialized=True):
"""Return current Tor status."""
status = privileged.get_status()
app = app_module.App.get('torproxy')
return {
'enabled': app.is_enabled() if initialized else False,
'is_running': app_is_running(app) if initialized else False,
'use_upstream_bridges': status['use_upstream_bridges'],
'upstream_bridges': status['upstream_bridges'],
'apt_transport_tor_enabled': is_apt_transport_tor_enabled()
}
def iter_apt_uris(aug):
"""Iterate over all the APT source URIs."""
return itertools.chain.from_iterable(
[aug.match(path) for path in APT_SOURCES_URI_PATHS])
def get_augeas():
"""Return an instance of Augeaus for processing APT configuration."""
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.set('/augeas/load/Aptsources/lens', 'Aptsources.lns')
aug.set('/augeas/load/Aptsources/incl[last() + 1]',
'/etc/apt/sources.list')
aug.set('/augeas/load/Aptsources/incl[last() + 1]',
'/etc/apt/sources.list.d/*.list')
aug.set('/augeas/load/Aptsources822/lens', 'Aptsources822.lns')
aug.set('/augeas/load/Aptsources822/incl[last() + 1]',
'/etc/apt/sources.list.d/*.sources')
aug.load()
# Check for any errors in parsing sources lists.
if aug.match('/augeas/files/etc/apt/sources.list/error') or \
aug.match('/augeas/files/etc/apt/sources.list.d//error'):
raise Exception('Error parsing sources list')
return aug
def is_apt_transport_tor_enabled():
"""Return whether APT is set to download packages over Tor."""
try:
aug = get_augeas()
except Exception:
# If there was an error with parsing.
return False
for uri_path in iter_apt_uris(aug):
uri = aug.get(uri_path)
if not uri.startswith(APT_TOR_PREFIX) and \
(uri.startswith('http://') or uri.startswith('https://')):
return False
return True

View File

@ -0,0 +1,104 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""FreedomBox app for configuring Tor Proxy."""
import logging
from django.utils.translation import gettext_noop
from django.views.generic.edit import FormView
from plinth import app as app_module
from plinth import operation as operation_module
from plinth.views import AppView
from . import privileged
from . import utils as tor_utils
from .forms import TorProxyForm
logger = logging.getLogger(__name__)
class TorProxyAppView(AppView):
"""Show Tor Proxy app main page."""
app_id = 'torproxy'
template_name = 'torproxy.html'
form_class = TorProxyForm
prefix = 'torproxy'
status = None
def get_initial(self):
"""Return the values to fill in the form."""
if not self.status:
self.status = tor_utils.get_status()
initial = super().get_initial()
initial.update(self.status)
return initial
def get_context_data(self, *args, **kwargs):
"""Add additional context data for template."""
if not self.status:
self.status = tor_utils.get_status()
context = super().get_context_data(*args, **kwargs)
context['status'] = self.status
return context
def form_valid(self, form):
"""Configure tor app on successful form submission."""
operation_module.manager.new(self.app_id,
gettext_noop('Updating configuration'),
_apply_changes,
[form.initial, form.cleaned_data],
show_notification=False)
# Skip check for 'Settings unchanged' message by calling grandparent
return super(FormView, self).form_valid(form)
def _apply_changes(old_status, new_status):
"""Try to apply changes and handle errors."""
logger.info('torproxy: applying configuration changes')
exception_to_update = None
message = None
try:
__apply_changes(old_status, new_status)
except Exception as exception:
exception_to_update = exception
message = gettext_noop('Error configuring app: {error}').format(
error=exception)
else:
message = gettext_noop('Configuration updated.')
logger.info('torproxy: configuration changes completed')
operation = operation_module.Operation.get_operation()
operation.on_update(message, exception_to_update)
def __apply_changes(old_status, new_status):
"""Apply the changes."""
needs_restart = False
arguments = {}
app = app_module.App.get('torproxy')
is_enabled = app.is_enabled()
if old_status['apt_transport_tor_enabled'] != \
new_status['apt_transport_tor_enabled']:
arguments['apt_transport_tor'] = (
is_enabled and new_status['apt_transport_tor_enabled'])
if old_status['use_upstream_bridges'] != \
new_status['use_upstream_bridges']:
arguments['use_upstream_bridges'] = new_status['use_upstream_bridges']
needs_restart = True
if old_status['upstream_bridges'] != new_status['upstream_bridges']:
arguments['upstream_bridges'] = new_status['upstream_bridges']
needs_restart = True
if arguments:
privileged.configure(**arguments)
if needs_restart and is_enabled:
privileged.restart()

View File

@ -117,7 +117,8 @@ class TTRSSApp(app_module.App):
privileged.pre_setup()
super().setup(old_version)
privileged.setup()
self.enable()
if not old_version:
self.enable()
def force_upgrade(self, packages):
"""Force update package to resolve conffile prompts."""

View File

@ -53,7 +53,7 @@ class UpgradesApp(app_module.App):
app_id = 'upgrades'
_version = 16
_version = 17
can_be_disabled = False

View File

@ -12,7 +12,7 @@ Unattended-Upgrade::Remove-Unused-Dependencies "true";
// ignored. Only packages that have higher priority set explicitly will get
// upgraded. Only selected FreedomBox packages have high priority set on them.
Unattended-Upgrade::Origins-Pattern {
"o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports";
"o=Debian Backports,n=${distro_codename}-backports,l=Debian Backports";
};
// Automatically reboot *WITHOUT CONFIRMATION* if

View File

@ -33,7 +33,7 @@ APT_PREFERENCES_FREEDOMBOX = \
'''Explanation: This file is managed by FreedomBox, do not edit.
Explanation: Allow carefully selected updates to 'freedombox' from backports.
Package: src:freedombox
Pin: release a={}-backports
Pin: release n={}-backports
Pin-Priority: 500
'''

View File

@ -4,6 +4,7 @@
import grp
import subprocess
import augeas
from django.utils.text import format_lazy
from django.utils.translation import gettext_lazy as _
@ -90,6 +91,13 @@ class UsersApp(app_module.App):
results.append(_diagnose_ldap_entry('ou=people'))
results.append(_diagnose_ldap_entry('ou=groups'))
config = privileged.get_nslcd_config()
results.append(_diagnose_nslcd_config(config, 'uri', 'ldapi:///'))
results.append(_diagnose_nslcd_config(config, 'base', 'dc=thisbox'))
results.append(_diagnose_nslcd_config(config, 'sasl_mech', 'EXTERNAL'))
results.extend(_diagnose_nsswitch_config())
return results
def setup(self, old_version):
@ -119,6 +127,50 @@ def _diagnose_ldap_entry(search_item):
return [testname, result]
def _diagnose_nslcd_config(config, key, value):
"""Diagnose that nslcd has a configuration."""
try:
result = 'passed' if config[key] == value else 'failed'
except KeyError:
result = 'failed'
template = _('Check nslcd config "{key} {value}"')
testname = format_lazy(template, key=key, value=value)
return [testname, result]
def _diagnose_nsswitch_config():
"""Diagnose that Name Service Switch is configured to use LDAP."""
nsswitch_conf = '/etc/nsswitch.conf'
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.transform('Nsswitch', nsswitch_conf)
aug.set('/augeas/context', '/files' + nsswitch_conf)
aug.load()
results = []
for database in ['passwd', 'group', 'shadow']:
result = 'failed'
for match in aug.match('database'):
if aug.get(match) != database:
continue
for service_match in aug.match(match + '/service'):
if 'ldap' == aug.get(service_match):
result = 'passed'
break
break
template = _('Check nsswitch config "{database}"')
testname = format_lazy(template, database=database)
results.append([testname, result])
return results
def get_last_admin_user():
"""If there is only one admin user return its name else return None."""
admin_users = privileged.get_group_users('admin')

View File

@ -178,6 +178,23 @@ def _configure_ldapscripts():
aug.save()
@privileged
def get_nslcd_config():
"""Get nslcd configuration for diagnostics."""
nslcd_conf = '/etc/nslcd.conf'
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.transform('Nslcd', nslcd_conf)
aug.set('/augeas/context', '/files' + nslcd_conf)
aug.load()
return {
'uri': aug.get('uri/1'),
'base': aug.get('base'),
'sasl_mech': aug.get('sasl_mech')
}
def _get_samba_users():
"""Get users from the Samba user database."""
# 'pdbedit -L' is better for listing users but is installed only with samba

Some files were not shown because too many files have changed in this diff Show More