freedombox Debian release 23.18

-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmUSMyMWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICI3DEACAkOF4kOwtA8Lqy1tGCLVg8z3m
 ff+zDNDpi14vMu43Chz3xTfmPNtZQ20fRKQ78a1+IvOVZShaaZiqevGD/9rvbuBV
 RHQm+6YIR6Z5HqTQNnkKHO585q6JF1AxzgzMBt5cR98k5pIUykUKZAb32fgpzj8a
 Yxc8+vvPzNqyR1SCTT7PZDmjr46vi5c+mVcxPA017PrFtTSgIa8NTuTcXWInP5me
 JVFa8IuFqnNh05BwVW0qeCigQZ1Pvf/1TS3/VB2y2+52oPQeJdAzF0tKTSZJDUJb
 aH1er+PG5/YPlKU/oQpPK9oJn7eKzM8NqfTVEMyGKA+L0e7L4oNFnWTP2ctNQhh/
 DX+7D2sqZ6ALbS4A0Ur9hxifX0clIRzaohNYS77LztH178ZEZifNylL7qqO4qPWa
 tqLu0wPWT5WWDLUxkpDQSn7BhWZBIn4r4Xu5adWjvLA48/UHcrTkw6tpLlH0PDn6
 nXAaDraZOZJtrx1HbMUiwafPZ0ZZ5bQP0iS+8PHQGuV4dEiFuQ6M7L+hv93KEwlN
 Gf/Br8G123EqoZ/jknvuAP0qDC45R9mSRSyfi4h2Oi9/81y9XENIX9d99ddiiov+
 /yTE/4SIFDOzz8DionwRZhbWS9waHHiDQicAS7BopZUVjUr55E6foi461J43+zP3
 weP3eSvGV4k+JTkyKA==
 =ZDWe
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmUWCocWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICI3WEADTuOoWqcsu8uJXksRdudQDJKAv
 GbXSzB5I7Ykb3sdIZRzRWYei7EFJrrxbSXbWlDbVXvz2hqAC43z+DknpG0RrT9u+
 lhffkm0luPE0mafZsOS+S0IuGu2a37DdKGFTp5+htwH6ekxM/tD/u2QFgaHbo0fL
 zZ3JjnUIfTHsJB16jtYowahf35Oh8gIodEvLA8tnF3lI+dRZtzwATictt6ux2rRL
 +Z3V0k5pFdKbjc5ZRyYZHtkOtPiNyQEIV1Zx3LUs42Q4qga2cZev8jRH/NDilZ+4
 2cFkeLAWKD34LA3odNbqOyKo9vMnbCFDO5H8VS5a+d6CXfP9EdkSTVWwZFWvyE2r
 xhqO6NEVmwOCXeNhye2Ajcg75ZU4i6+ro85SQyUEEr1s7+0tEQZxec/UV3Q7sc5r
 xaqj2dYJZOOjRufAIdDgZizhoTbRlQMsUg2J68dlg+2dH85OL4ncIz9OKTOYiF3s
 G8hdsP/XEI6im/ghdI0QcbmgWHB2D022iIZENxcJXsg+IY4cadwzMmfAr5LuxgGh
 W5qm9uRwz8zSW99TVAtK1Hq1U/WIqLe7LFIFY7+10B2e+dcGl+yF6vAS4Sj56ke3
 KlPzLYc0DHHHtdHq/UG9xS8myrWwK2YAQzSq4RfBIHnGmQeuQsPoYD4wIc5MRKyX
 jLdmo9UcmsPDaBnpSw==
 =AWE7
 -----END PGP SIGNATURE-----

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

freedombox Debian release 23.18

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
James Valleroy 2023-09-28 19:21:41 -04:00
commit 4a62d4fc77
118 changed files with 1828 additions and 1332 deletions

View File

@ -20,13 +20,12 @@ code-quality:
static-type-check: static-type-check:
stage: test stage: test
allow_failure: true
needs: [] needs: []
before_script: before_script:
- apt-get update - apt-get update
- apt-get install -y mypy - apt-get install -y mypy
script: script:
- mypy --ignore-missing-imports . - mypy .
unit-tests: unit-tests:
stage: test stage: test
@ -120,7 +119,7 @@ build:
build-backports: build-backports:
extends: .build-package extends: .build-package
variables: variables:
RELEASE: bullseye-backports RELEASE: bookworm-backports
build i386: build i386:
extends: .build-package-i386 extends: .build-package-i386

View File

@ -9,6 +9,7 @@ import logging
import os import os
import sys import sys
import traceback import traceback
import types
import typing import typing
import plinth.log import plinth.log
@ -166,10 +167,9 @@ def _assert_valid_type(arg_name, value, annotation):
return return
if not hasattr(annotation, '__origin__'): # 'int | str' or 'typing.Union[int, str]'
raise TypeError('Unsupported annotation type') if (isinstance(annotation, types.UnionType)
or getattr(annotation, '__origin__', None) == typing.Union):
if annotation.__origin__ == typing.Union:
for arg in annotation.__args__: for arg in annotation.__args__:
try: try:
_assert_valid_type(arg_name, value, arg) _assert_valid_type(arg_name, value, arg)
@ -179,7 +179,8 @@ def _assert_valid_type(arg_name, value, annotation):
raise TypeError(f'Expected one of unioned types for {arg_name}') raise TypeError(f'Expected one of unioned types for {arg_name}')
if annotation.__origin__ == list: # 'list[int]' or 'typing.List[int]'
if getattr(annotation, '__origin__', None) == list:
if not isinstance(value, list): if not isinstance(value, list):
raise TypeError(f'Expected type list for {arg_name}') raise TypeError(f'Expected type list for {arg_name}')
@ -189,7 +190,8 @@ def _assert_valid_type(arg_name, value, annotation):
return return
if annotation.__origin__ == dict: # 'list[dict]' or 'typing.List[dict]'
if getattr(annotation, '__origin__', None) == dict:
if not isinstance(value, dict): if not isinstance(value, dict):
raise TypeError(f'Expected type dict for {arg_name}') raise TypeError(f'Expected type dict for {arg_name}')

29
debian/changelog vendored
View File

@ -1,3 +1,32 @@
freedombox (23.18) unstable; urgency=medium
[ 109247019824 ]
* Translated using Weblate (Bulgarian)
* Translated using Weblate (Bulgarian)
[ Brian Ó Donnell ]
* middleware: Add new middleware to handle common errors like DB busy
[ James Valleroy ]
* middleware: tests: Add tests for common error middleware
* locale: Update translations strings
* doc: Fetch latest manual
[ rsquared ]
* ikiwiki: Disable discussion pages by default for new wiki/blog
[ Sunil Mohan Adapa ]
* wordpress: Use absolute path in service file
* upgrades: Fix detecting apt over tor during upgrade
* gitlab-ci: Perform backports tests on bookworm instead of bullseye
* *: Fix all typing hint related errors
* gitlab-ci: Make passing mypy checks mandatory
* *: Utilize newer 3.10 syntax for type hints
* *: Add some additional type annotations
* pyproject: Add configuration for mypy to ignore some libraries
-- James Valleroy <jvalleroy@mailbox.org> Mon, 25 Sep 2023 20:47:20 -0400
freedombox (23.17~bpo12+1) bookworm-backports; urgency=medium freedombox (23.17~bpo12+1) bookworm-backports; urgency=medium
* Rebuild for bookworm-backports. * Rebuild for bookworm-backports.

View File

@ -111,7 +111,7 @@ htmlhelp_basename = 'FreedomBoxdoc'
# -- Options for LaTeX output ------------------------------------------------ # -- Options for LaTeX output ------------------------------------------------
latex_elements = { latex_elements: dict = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
# #
# 'papersize': 'letterpaper', # 'papersize': 'letterpaper',

View File

@ -160,7 +160,6 @@ for transmission daemon. We will do this by creating a file ``privileged.py``.
import json import json
import pathlib import pathlib
from typing import Union
from plinth import action_utils from plinth import action_utils
from plinth.actions import privileged from plinth.actions import privileged
@ -175,7 +174,7 @@ for transmission daemon. We will do this by creating a file ``privileged.py``.
@privileged @privileged
def merge_configuration(configuration: dict[str, Union[str, bool]]) -> None: def merge_configuration(configuration: dict[str, str | bool]) -> None:
"""Merge given JSON configuration with existing configuration.""" """Merge given JSON configuration with existing configuration."""
current_configuration = _transmission_config.read_bytes() current_configuration = _transmission_config.read_bytes()
current_configuration = json.loads(current_configuration) current_configuration = json.loads(current_configuration)

View File

@ -8,6 +8,17 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 23.18 (2023-09-25) ==
* *: Fix all typing hint related errors
* development: Make passing mypy checks mandatory
* development: Perform backports tests on bookworm instead of bullseye
* ikiwiki: Disable discussion pages by default for new wiki/blog
* locale: Update translations for Bulgarian
* middleware: Add new middleware to handle common errors like DB busy
* upgrades: Fix detecting apt over tor during upgrade
* wordpress: Use absolute path in service file
== FreedomBox 23.17 (2023-09-11) == == FreedomBox 23.17 (2023-09-11) ==
* locale: Update translations for Czech, Dutch, Spanish, Swedish, Turkish, Ukrainian * locale: Update translations for Czech, Dutch, Spanish, Swedish, Turkish, Ukrainian

View File

@ -8,6 +8,17 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 23.18 (2023-09-25) ==
* *: Fix all typing hint related errors
* development: Make passing mypy checks mandatory
* development: Perform backports tests on bookworm instead of bullseye
* ikiwiki: Disable discussion pages by default for new wiki/blog
* locale: Update translations for Bulgarian
* middleware: Add new middleware to handle common errors like DB busy
* upgrades: Fix detecting apt over tor during upgrade
* wordpress: Use absolute path in service file
== FreedomBox 23.17 (2023-09-11) == == FreedomBox 23.17 (2023-09-11) ==
* locale: Update translations for Czech, Dutch, Spanish, Swedish, Turkish, Ukrainian * locale: Update translations for Czech, Dutch, Spanish, Swedish, Turkish, Ukrainian

View File

@ -3,4 +3,4 @@
Package init file. Package init file.
""" """
__version__ = '23.17' __version__ = '23.18'

View File

@ -7,6 +7,7 @@ import collections
import enum import enum
import inspect import inspect
import logging import logging
from typing import ClassVar
from plinth import cfg from plinth import cfg
from plinth.signals import post_app_loading from plinth.signals import post_app_loading
@ -39,14 +40,15 @@ class App:
""" """
app_id = None app_id: str | None = None
can_be_disabled = True can_be_disabled: bool = True
locked = False # Whether user interaction with the app is allowed. locked: bool = False # Whether user interaction with the app is allowed.
# XXX: Lockdown the application UI by implementing a middleware # XXX: Lockdown the application UI by implementing a middleware
_all_apps = collections.OrderedDict() _all_apps: ClassVar[collections.OrderedDict[
str, 'App']] = collections.OrderedDict()
class SetupState(enum.Enum): class SetupState(enum.Enum):
"""Various states of app being setup.""" """Various states of app being setup."""

View File

@ -4,6 +4,7 @@
import json import json
import logging import logging
import pathlib import pathlib
from typing import ClassVar
from plinth import app, cfg from plinth import app, cfg
from plinth.modules.users import privileged as users_privileged from plinth.modules.users import privileged as users_privileged
@ -14,7 +15,7 @@ logger = logging.getLogger(__name__)
class Shortcut(app.FollowerComponent): class Shortcut(app.FollowerComponent):
"""An application component for handling shortcuts.""" """An application component for handling shortcuts."""
_all_shortcuts = {} _all_shortcuts: ClassVar[dict[str, 'Shortcut']] = {}
def __init__(self, component_id, name, short_description=None, icon=None, def __init__(self, component_id, name, short_description=None, icon=None,
url=None, description=None, manual_page=None, url=None, description=None, manual_page=None,

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-03-31 09:12+0000\n" "PO-Revision-Date: 2022-03-31 09:12+0000\n"
"Last-Translator: abidin toumi <abidin24@disroot.org>\n" "Last-Translator: abidin toumi <abidin24@disroot.org>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "مصدر الصفحة"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -104,6 +104,10 @@ msgstr "اللغة المستخدمة في واجهة الويب"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "استخدم لغة المتصفح" msgstr "استخدم لغة المتصفح"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1639,13 +1643,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1654,19 +1658,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1943,17 +1947,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2868,7 +2872,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2878,14 +2882,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3359,15 +3363,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7231,34 +7235,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7494,6 +7498,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7683,11 +7691,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2020-06-10 15:41+0000\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n"
"Last-Translator: aiman an <an1f3@hotmail.com>\n" "Last-Translator: aiman an <an1f3@hotmail.com>\n"
"Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/" "Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -104,6 +104,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1639,13 +1643,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1654,19 +1658,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1945,17 +1949,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2870,7 +2874,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2880,14 +2884,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3363,15 +3367,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7235,34 +7239,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7498,6 +7502,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7687,11 +7695,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-04-19 09:52+0000\n" "PO-Revision-Date: 2023-09-18 19:00+0000\n"
"Last-Translator: 109247019824 <stoyan@gmx.com>\n" "Last-Translator: 109247019824 <stoyan@gmx.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/bg/>\n" "freedombox/bg/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18-dev\n" "X-Generator: Weblate 5.0.2\n"
#: doc/dev/_templates/layout.html:11 #: doc/dev/_templates/layout.html:11
msgid "Page source" msgid "Page source"
@ -28,7 +28,7 @@ msgstr "Изходен код на страницата"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -59,7 +59,7 @@ msgstr "Не може да се свърже с {host}:{port}"
#: plinth/forms.py:36 #: plinth/forms.py:36
msgid "Backup app before uninstall" msgid "Backup app before uninstall"
msgstr "Направете резерено копие преди да премахнете приложението" msgstr "Резервно копие преди премахване на приложението"
#: plinth/forms.py:37 #: plinth/forms.py:37
msgid "Restoring from the backup will restore app data." msgid "Restoring from the backup will restore app data."
@ -108,6 +108,10 @@ msgstr "Език на интерфейса"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Използване на предпочитания от четеца език" msgstr "Използване на предпочитания от четеца език"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Сървър на Apache HTTP" msgstr "Сървър на Apache HTTP"
@ -1739,13 +1743,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1759,19 +1763,19 @@ msgstr ""
"отметнато, до ejabberd ще има достъп всеки <a href=\"{users_url}\"> " "отметнато, до ejabberd ще има достъп всеки <a href=\"{users_url}\"> "
"потребител с вход в {box_name}</a>." "потребител с вход в {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2053,17 +2057,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Порт {name} ({details}) достъпен за вътрешните мрежи" msgstr "Порт {name} ({details}) достъпен за вътрешните мрежи"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Порт {name} ({details}) достъпен за външните мрежи" msgstr "Порт {name} ({details}) достъпен за външните мрежи"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Порт {name} ({details}) недостъпен за външните мрежи" msgstr "Порт {name} ({details}) недостъпен за външните мрежи"
@ -2999,7 +3003,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3009,14 +3013,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3241,10 +3245,8 @@ msgid ""
msgstr "" msgstr ""
#: plinth/modules/mediawiki/forms.py:93 #: plinth/modules/mediawiki/forms.py:93
#, fuzzy
#| msgid "Select language"
msgid "Default Language" msgid "Default Language"
msgstr "Избор на език" msgstr "Подразбиран език"
#: plinth/modules/mediawiki/forms.py:94 #: plinth/modules/mediawiki/forms.py:94
msgid "" msgid ""
@ -3289,10 +3291,8 @@ msgid "Site name updated"
msgstr "Името на страницата е променено" msgstr "Името на страницата е променено"
#: plinth/modules/mediawiki/views.py:96 #: plinth/modules/mediawiki/views.py:96
#, fuzzy
#| msgid "Select language"
msgid "Default language changed" msgid "Default language changed"
msgstr "Избор на език" msgstr "Подразбираният език е променен"
#: plinth/modules/minetest/__init__.py:33 #: plinth/modules/minetest/__init__.py:33
#, python-brace-format #, python-brace-format
@ -3508,15 +3508,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Услуги за имена" msgstr "Услуги за имена"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Всички" msgstr "Всички"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Всички приложения за уеб" msgstr "Всички приложения за уеб"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -4015,7 +4015,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_manage.html:29
#: plinth/modules/snapshot/templates/snapshot_rollback.html:27 #: plinth/modules/snapshot/templates/snapshot_rollback.html:27
msgid "Description" msgid "Description"
msgstr "" msgstr "Описание"
#: plinth/modules/networks/templates/connection_show.html:109 #: plinth/modules/networks/templates/connection_show.html:109
msgid "Physical Link" msgid "Physical Link"
@ -4907,7 +4907,7 @@ msgstr ""
#: plinth/modules/power/templates/power.html:22 plinth/templates/base.html:174 #: plinth/modules/power/templates/power.html:22 plinth/templates/base.html:174
#: plinth/templates/base.html:175 #: plinth/templates/base.html:175
msgid "Restart" msgid "Restart"
msgstr "Рестарт" msgstr "Рестартиране"
#: plinth/modules/power/templates/power.html:25 #: plinth/modules/power/templates/power.html:25
msgid "Shut Down" msgid "Shut Down"
@ -4932,7 +4932,7 @@ msgstr ""
#: plinth/modules/power/templates/power_restart.html:48 #: plinth/modules/power/templates/power_restart.html:48
#: plinth/modules/power/templates/power_restart.html:51 #: plinth/modules/power/templates/power_restart.html:51
msgid "Restart Now" msgid "Restart Now"
msgstr "Рестарт" msgstr "Рестартиране"
#: plinth/modules/power/templates/power_shutdown.html:17 #: plinth/modules/power/templates/power_shutdown.html:17
msgid "" msgid ""
@ -5454,7 +5454,7 @@ msgstr "Често обновяване на възможности"
#: plinth/modules/security/templates/security.html:21 #: plinth/modules/security/templates/security.html:21
#: plinth/modules/upgrades/templates/upgrades_configure.html:52 #: plinth/modules/upgrades/templates/upgrades_configure.html:52
msgid "Frequent feature updates are activated." msgid "Frequent feature updates are activated."
msgstr "Честото обновяване на възможности е включено." msgstr "Честото обновяване на пакети е включено."
#: plinth/modules/security/templates/security.html:26 #: plinth/modules/security/templates/security.html:26
#: plinth/modules/upgrades/templates/backports-firstboot.html:14 #: plinth/modules/upgrades/templates/backports-firstboot.html:14
@ -5957,7 +5957,7 @@ msgstr "Настройките на моментните снимки на хр
#: plinth/modules/snapshot/views.py:162 #: plinth/modules/snapshot/views.py:162
#, python-brace-format #, python-brace-format
msgid "Action error: {0} [{1}] [{2}]" msgid "Action error: {0} [{1}] [{2}]"
msgstr "" msgstr "Грешка при действие: {0} [{1}] [{2}]"
#: plinth/modules/snapshot/views.py:188 #: plinth/modules/snapshot/views.py:188
msgid "Deleted selected snapshots" msgid "Deleted selected snapshots"
@ -6380,10 +6380,8 @@ msgid "Obfs4 transport registered"
msgstr "Транспортът Obfs4 е регистриран" msgstr "Транспортът Obfs4 е регистриран"
#: plinth/modules/tor/__init__.py:168 #: plinth/modules/tor/__init__.py:168
#, fuzzy
#| msgid "Onion Service"
msgid "Onion service is version 3" msgid "Onion service is version 3"
msgstr "Услуга на Onion" msgstr "Услугата на Onion е версия 3"
#: plinth/modules/tor/forms.py:33 #: plinth/modules/tor/forms.py:33
msgid "" msgid ""
@ -6442,33 +6440,30 @@ msgid "Enable Tor bridge relay"
msgstr "" msgstr ""
#: plinth/modules/tor/forms.py:103 #: plinth/modules/tor/forms.py:103
#, fuzzy
msgid "" msgid ""
"When enabled, relay information is published in the Tor bridge database " "When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. " "instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship." "This helps others circumvent censorship."
msgstr "Когато е отметнато," msgstr ""
"Когато е отметнато, информацията за препращанията ще бъде публикувана в "
"базата от данни с мостове на Тор вместо в публичната база от данни с "
"препращания на Тор като по този начин прави възела по-труден за цензуриране. "
"Помага на другите да заобиколят цензурата."
#: plinth/modules/tor/forms.py:108 #: plinth/modules/tor/forms.py:108
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Onion Service" msgid "Enable Tor Onion Service"
msgstr "Включване на скритата услуга на Тор" msgstr "Включване на услугата Tor Onion"
#: plinth/modules/tor/forms.py:110 #: plinth/modules/tor/forms.py:110
#, fuzzy, python-brace-format #, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
#| "as wiki or chat) without revealing its location. Do not use this for "
#| "strong anonymity yet."
msgid "" msgid ""
"An onion service will allow {box_name} to provide selected services (such as " "An onion service will allow {box_name} to provide selected services (such as "
"wiki or chat) without revealing its location. Do not use this for strong " "wiki or chat) without revealing its location. Do not use this for strong "
"anonymity yet." "anonymity yet."
msgstr "" msgstr ""
"Скрита услуга дава възможност на {box_name} да предоставя избрани ислуги " "Услугата Tor Onion дава възможност на {box_name} да предоставя избрани "
"(като енциклопедия или бързи съобщения) без да разкрива местоположението си. " "услуги (като енциклопедия или бързи съобщения) без да разкрива "
"Не използвайте, за да криете самоличността си, все още." "местоположението си. Не използвайте, за да криете самоличността си, все още."
#: plinth/modules/tor/forms.py:125 #: plinth/modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges." msgid "Specify at least one upstream bridge to use upstream bridges."
@ -6492,7 +6487,7 @@ msgstr "Портове"
#: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51 #: plinth/modules/tor/views.py:53 plinth/modules/torproxy/views.py:51
msgid "Updating configuration" msgid "Updating configuration"
msgstr "Настройките са променени" msgstr "Запазване на настройки"
#: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68 #: plinth/modules/tor/views.py:70 plinth/modules/torproxy/views.py:68
#, python-brace-format #, python-brace-format
@ -6509,10 +6504,8 @@ msgid ""
msgstr "" msgstr ""
#: plinth/modules/torproxy/__init__.py:54 #: plinth/modules/torproxy/__init__.py:54
#, fuzzy
#| msgid "Tor Socks Proxy"
msgid "Tor Proxy" msgid "Tor Proxy"
msgstr "Прокси сървър на Тор за SOCKS" msgstr "Прокси сървър на Тор"
#: plinth/modules/torproxy/__init__.py:79 #: plinth/modules/torproxy/__init__.py:79
msgid "Tor Socks Proxy" msgid "Tor Socks Proxy"
@ -6643,10 +6636,8 @@ msgid "News Feed Reader"
msgstr "Четец на абонаменти за новини" msgstr "Четец на абонаменти за новини"
#: plinth/modules/ttrss/manifest.py:10 #: plinth/modules/ttrss/manifest.py:10
#, fuzzy
#| msgid "Tiny Tiny RSS (Fork)"
msgid "Tiny Tiny RSS (TTTRSS)" msgid "Tiny Tiny RSS (TTTRSS)"
msgstr "Tiny Tiny RSS (Fork)" msgstr "Tiny Tiny RSS (TTTRSS)"
#: plinth/modules/ttrss/manifest.py:20 #: plinth/modules/ttrss/manifest.py:20
msgid "TTRSS-Reader" msgid "TTRSS-Reader"
@ -6792,7 +6783,7 @@ msgstr ""
#: plinth/templates/notifications.html:50 #: plinth/templates/notifications.html:50
#: plinth/templates/operation-notification.html:23 #: plinth/templates/operation-notification.html:23
msgid "Dismiss" msgid "Dismiss"
msgstr "" msgstr "Затваряне"
#: plinth/modules/upgrades/templates/upgrades_configure.html:30 #: plinth/modules/upgrades/templates/upgrades_configure.html:30
#: plinth/modules/upgrades/templates/upgrades_configure.html:100 #: plinth/modules/upgrades/templates/upgrades_configure.html:100
@ -6904,7 +6895,7 @@ msgstr ""
#: plinth/modules/upgrades/views.py:138 #: plinth/modules/upgrades/views.py:138
msgid "Frequent feature updates activated." msgid "Frequent feature updates activated."
msgstr "Честото обновяване на възможности е включено." msgstr "Честото обновяване на пакети е включено."
#: plinth/modules/upgrades/views.py:224 #: plinth/modules/upgrades/views.py:224
msgid "Starting distribution upgrade test." msgid "Starting distribution upgrade test."
@ -7625,34 +7616,34 @@ msgstr "Изчакване да започне: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Готово: {name}" msgstr "Готово: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Пакетът „{expression}“ е недостъпен за инсталиране" msgstr "Пакетът „{expression}“ е недостъпен за инсталиране"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Времето за изчакване на диспечера на пакети е изтекло" msgstr "Времето за изчакване на диспечера на пакети е изтекло"
@ -7879,14 +7870,20 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "грешка"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
"Please wait for %(box_name)s to finish installation. You can start using " "Please wait for %(box_name)s to finish installation. You can start using "
"your %(box_name)s once it is done." "your %(box_name)s once it is done."
msgstr "" msgstr ""
"Изчакайте да завърши инсталирането на %(box_name)s. След това можете да " "Изчакайте да завърши инсталирането на %(box_name)s. След това устройството "
"започнете употреба." "%(box_name)s може да бъде въведено в употреба."
#: plinth/templates/index.html:22 #: plinth/templates/index.html:22
#, python-format #, python-format
@ -8048,10 +8045,8 @@ msgid "Update"
msgstr "Обновяване" msgstr "Обновяване"
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
#, fuzzy
#| msgid "Backups"
msgid "Backup" msgid "Backup"
msgstr "Резервни копия" msgstr "Резервно копие"
#: plinth/templates/toolbar.html:53 #: plinth/templates/toolbar.html:53
msgid "Re-run setup" msgid "Re-run setup"
@ -8075,11 +8070,11 @@ msgstr ""
"Всички данни и настройки на приложението ще бъдат загубени. Приложението " "Всички данни и настройки на приложението ще бъдат загубени. Приложението "
"може да бъде инсталирано отново." "може да бъде инсталирано отново."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Настройките не са променени" msgstr "Настройките не са променени"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "преди премахване на {app_id}" msgstr "преди премахване на {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-06-16 07:33+0000\n" "PO-Revision-Date: 2021-06-16 07:33+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n" "Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "পৃষ্ঠার উৎস"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ফ্রিডমবক্স" msgstr "ফ্রিডমবক্স"
@ -103,6 +103,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1639,13 +1643,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1654,19 +1658,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ইজ্যাবার্ড" msgstr "ইজ্যাবার্ড"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1957,17 +1961,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2882,7 +2886,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2892,14 +2896,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3375,15 +3379,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7250,34 +7254,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7501,6 +7505,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7690,11 +7698,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-31 19:50+0000\n" "PO-Revision-Date: 2023-08-31 19:50+0000\n"
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n" "Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "Statická konfigurace {etc_path} je nastavena správně" msgstr "Statická konfigurace {etc_path} je nastavena správně"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "Jazyk pro toto webové rozhraní"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Použít upřednostňovaný jazyk nastavený ve webovém prohlížeči" msgstr "Použít upřednostňovaný jazyk nastavený ve webovém prohlížeči"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP Server" msgstr "Apache HTTP Server"
@ -1807,7 +1811,7 @@ msgstr "Server odmítl připojení"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Již aktualizováno" msgstr "Již aktualizováno"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1815,7 +1819,7 @@ msgstr ""
"XMPP je otevřený a standardizovaný komunikační protokol. Zde je možné " "XMPP je otevřený a standardizovaný komunikační protokol. Zde je možné "
"nastavit a spustit vlastní XMPP server, zvaný ejabberd." "nastavit a spustit vlastní XMPP server, zvaný ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1829,7 +1833,7 @@ msgstr ""
"ejabberd přistupovat kterýkoli <a href=\"{users_url}\">uživatel s " "ejabberd přistupovat kterýkoli <a href=\"{users_url}\">uživatel s "
"přihlašovacím jménem {box_name}</a>." "přihlašovacím jménem {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1839,12 +1843,12 @@ msgstr ""
"aplikaci <a href=\"{coturn_url}\">Coturn</a> nebo nakonfigurujte externí " "aplikaci <a href=\"{coturn_url}\">Coturn</a> nebo nakonfigurujte externí "
"server." "server."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chat server" msgstr "Chat server"
@ -2161,17 +2165,17 @@ msgstr "Firewall backend je nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Existují pravidla přímého prostupu" msgstr "Existují pravidla přímého prostupu"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) dostupný pro interní sítě" msgstr "Port {name} ({details}) dostupný pro interní sítě"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) dostupný pro externí sítě" msgstr "Port {name} ({details}) dostupný pro externí sítě"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} {details} je nedostupný pro externí sítě" msgstr "Port {name} {details} je nedostupný pro externí sítě"
@ -3224,7 +3228,7 @@ msgstr "Certifikát pro doménu {domain} úspěšně smazán"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Nepodařilo se smazat certifikát pro doménu {domain}: {error}" msgstr "Nepodařilo se smazat certifikát pro doménu {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3241,7 +3245,7 @@ msgstr ""
"čísla. Díky federování mohou uživatelé na daném Matrix serveru komunikovat s " "čísla. Díky federování mohou uživatelé na daném Matrix serveru komunikovat s "
"uživateli všech ostatních Matrix serverů." "uživateli všech ostatních Matrix serverů."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3251,7 +3255,7 @@ msgstr ""
"Nainstalujte aplikaci <a href=\"{coturn_url}\">Coturn</a> nebo " "Nainstalujte aplikaci <a href=\"{coturn_url}\">Coturn</a> nebo "
"nakonfigurujte externí server." "nakonfigurujte externí server."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3817,15 +3821,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Jmenné služby" msgstr "Jmenné služby"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Vše" msgstr "Vše"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Všechny webové aplikace" msgstr "Všechny webové aplikace"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Zabezpečený shell" msgstr "Zabezpečený shell"
@ -8273,34 +8277,34 @@ msgstr "Čeká na spuštění: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Dokončeno: {name}" msgstr "Dokončeno: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Balíček {expression} není k dispozici pro instalaci" msgstr "Balíček {expression} není k dispozici pro instalaci"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Balíček {package_name} je nejnovější verze ({latest_version})" msgstr "Balíček {package_name} je nejnovější verze ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Instalace" msgstr "Instalace"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "stahování" msgstr "stahování"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "změna média" msgstr "změna média"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "soubor s nastaveními: {file}" msgstr "soubor s nastaveními: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Časový limit čekání na správce balíčků" msgstr "Časový limit čekání na správce balíčků"
@ -8534,6 +8538,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "chyba"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8751,11 +8761,11 @@ msgstr ""
"Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze " "Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze "
"nainstalovat znovu." "nainstalovat znovu."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Nastavení se nezměnila" msgstr "Nastavení se nezměnila"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "před odinstalací {app_id}" msgstr "před odinstalací {app_id}"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Sidens kildekode"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -111,6 +111,10 @@ msgstr "Sprog denne web-brugergrænseflade skal vises i"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Benyt browserens sprogindstilling" msgstr "Benyt browserens sprogindstilling"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
@ -1845,7 +1849,7 @@ msgstr "Slet forbindelse"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Seneste opdatering" msgstr "Seneste opdatering"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1853,7 +1857,7 @@ msgstr ""
"XMPP er en åben og standardiseret kommunikationsprotokol. Her kan du " "XMPP er en åben og standardiseret kommunikationsprotokol. Her kan du "
"aktivere og konfigurere din XMPP-server, kaldet ejabberd." "aktivere og konfigurere din XMPP-server, kaldet ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1867,19 +1871,19 @@ msgstr ""
"bruges af enhver <a href=\"{users_url}\"> bruger med adgang til {box_name}</" "bruges af enhver <a href=\"{users_url}\"> bruger med adgang til {box_name}</"
"a>." "a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chatserver" msgstr "Chatserver"
@ -2193,17 +2197,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) er tilgængelig for interne netværk" msgstr "Port {name} ({details}) er tilgængelig for interne netværk"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) er tilgængelig for eksterne netværk" msgstr "Port {name} ({details}) er tilgængelig for eksterne netværk"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details}) er ikke tilgængelig for eksterne netværk" msgstr "Port {name} ({details}) er ikke tilgængelig for eksterne netværk"
@ -3288,7 +3292,7 @@ msgstr "Certifikatet for domænet {domain} blev trukket tilbage"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Fejl ved tilbagetrækning af certifikatet for domænet {domain}: {error}" msgstr "Fejl ved tilbagetrækning af certifikatet for domænet {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3298,14 +3302,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3860,15 +3864,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Navnetjenester" msgstr "Navnetjenester"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -8348,34 +8352,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Tjeneste ikke aktiv: {name}" msgstr "Tjeneste ikke aktiv: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Installerer" msgstr "Installerer"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "downloader" msgstr "downloader"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "medie-ændring" msgstr "medie-ændring"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "konfigurationsfil: {file}" msgstr "konfigurationsfil: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8645,6 +8649,12 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "fejl"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8851,11 +8861,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Indstilling uændret" msgstr "Indstilling uændret"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-07 12:46+0000\n" "PO-Revision-Date: 2023-08-07 12:46+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n" "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/" "Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Seitenquelle"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Statische Konfiguration {etc_path} ist richtig eingerichtet" msgstr "Statische Konfiguration {etc_path} ist richtig eingerichtet"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -110,6 +110,10 @@ msgstr "Sprache für die Darstellung dieser Weboberfläche"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Die im Browser festgelegte Sprache verwenden" msgstr "Die im Browser festgelegte Sprache verwenden"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP Server" msgstr "Apache HTTP Server"
@ -1846,7 +1850,7 @@ msgstr "Server verweigert Verbindung"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Bereits auf dem neuesten Stand" msgstr "Bereits auf dem neuesten Stand"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1854,7 +1858,7 @@ msgstr ""
"XMPP ist ein offenes und standardisiertes Kommunikationsprotokoll. Hier " "XMPP ist ein offenes und standardisiertes Kommunikationsprotokoll. Hier "
"können Sie Ihren XMPP-Server, genannt ejabberd, starten und konfigurieren." "können Sie Ihren XMPP-Server, genannt ejabberd, starten und konfigurieren."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1868,7 +1872,7 @@ msgstr ""
"aktiviert, kann ejabberd von jedem <a href=\"{users_url}\"> Benutzer mit " "aktiviert, kann ejabberd von jedem <a href=\"{users_url}\"> Benutzer mit "
"einem {box_name} Login</a> aufgerufen werden." "einem {box_name} Login</a> aufgerufen werden."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1878,12 +1882,12 @@ msgstr ""
"die <a href=\"{coturn_url}\">Coturn</a>-App oder konfiguriere einen externen " "die <a href=\"{coturn_url}\">Coturn</a>-App oder konfiguriere einen externen "
"Server." "Server."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chatserver" msgstr "Chatserver"
@ -2205,17 +2209,17 @@ msgstr "Firewall-Backend ist nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Regeln für direktes Durchleiten existieren" msgstr "Regeln für direktes Durchleiten existieren"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port -Name {name}({details}) für interne Netzwerke verfügbar" msgstr "Port -Name {name}({details}) für interne Netzwerke verfügbar"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port -Name {name} ({details}) für externe Netzwerke verfügbar" msgstr "Port -Name {name} ({details}) für externe Netzwerke verfügbar"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port -Name {name} ({details}) für externe Netzwerke nicht verfügbar" msgstr "Port -Name {name} ({details}) für externe Netzwerke nicht verfügbar"
@ -3288,7 +3292,7 @@ msgstr "Zertifikat erfolgreich widerrufen für Domain {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Fehler beim Widerrufen des Zertifikats für Domain {domain}: {error}" msgstr "Fehler beim Widerrufen des Zertifikats für Domain {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3306,7 +3310,7 @@ msgstr ""
"einem bestimmten Matrix Server können dank Föderation zwischen den Servern " "einem bestimmten Matrix Server können dank Föderation zwischen den Servern "
"mit Nutzerkonten auf einem beliebigen anderen Server kommunizieren." "mit Nutzerkonten auf einem beliebigen anderen Server kommunizieren."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3316,7 +3320,7 @@ msgstr ""
"Installiere die <a href=\"{coturn_url}\">Coturn</a>-App oder konfiguriere " "Installiere die <a href=\"{coturn_url}\">Coturn</a>-App oder konfiguriere "
"einen externen Server." "einen externen Server."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3897,15 +3901,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Namen-Dienste" msgstr "Namen-Dienste"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Alle Webanwendungen" msgstr "Alle Webanwendungen"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -8444,34 +8448,34 @@ msgstr "Warten auf den Start: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Fertig: {name}" msgstr "Fertig: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Paket {expression} ist nicht verfügbar" msgstr "Paket {expression} ist nicht verfügbar"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Paket {package_name} ist die aktuellste Version ({latest_version})" msgstr "Paket {package_name} ist die aktuellste Version ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Installation läuft" msgstr "Installation läuft"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "herunterladen" msgstr "herunterladen"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "Medienwechsel" msgstr "Medienwechsel"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "Konfigurationsdatei: {file}" msgstr "Konfigurationsdatei: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Zeitüberschreitung beim Warten auf den Paket-Manager" msgstr "Zeitüberschreitung beim Warten auf den Paket-Manager"
@ -8709,6 +8713,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "Fehler"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8926,11 +8936,11 @@ msgstr ""
"Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann " "Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann "
"wieder frisch installiert werden." "wieder frisch installiert werden."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Einstellung unverändert" msgstr "Einstellung unverändert"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "vor der Deinstallation von {app_id}" msgstr "vor der Deinstallation von {app_id}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -101,6 +101,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1636,13 +1640,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1651,19 +1655,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1940,17 +1944,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2865,7 +2869,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2875,14 +2879,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3354,15 +3358,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7225,34 +7229,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7476,6 +7480,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7663,11 +7671,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Πηγή της σελίδας"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "Freedombox" msgstr "Freedombox"
@ -113,6 +113,10 @@ msgstr "Επιλέξτε γλώσσα που θα χρησιμοποιηθεί
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Χρήση της προεπιλεγμένης γλώσσας του περιηγητή διαδικτύου" msgstr "Χρήση της προεπιλεγμένης γλώσσας του περιηγητή διαδικτύου"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Chat Server" #| msgid "Chat Server"
@ -1897,7 +1901,7 @@ msgstr "Διαγραφή σύνδεσης"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Ενεργοποίηση αυτόματων ενημερώσεων" msgstr "Ενεργοποίηση αυτόματων ενημερώσεων"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1906,7 +1910,7 @@ msgstr ""
"μπορείτε να εκτελέσετε και να ρυθμίσετε τις παραμέτρους του διακομιστή XMPP, " "μπορείτε να εκτελέσετε και να ρυθμίσετε τις παραμέτρους του διακομιστή XMPP, "
"που ονομάζεται ejabberd." "που ονομάζεται ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1920,19 +1924,19 @@ msgstr ""
"ejabberd μπορεί να χρησιμοποιηθεί από κάθε χρήστη με <a " "ejabberd μπορεί να χρησιμοποιηθεί από κάθε χρήστη με <a "
"href=\"{users_url}\">πιστοποιητικά για το {box_name}</a>." "href=\"{users_url}\">πιστοποιητικά για το {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Διακομιστής συνομιλίας" msgstr "Διακομιστής συνομιλίας"
@ -2246,17 +2250,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Θύρα {name} ({details}) διαθέσιμη για εσωτερικά δίκτυα" msgstr "Θύρα {name} ({details}) διαθέσιμη για εσωτερικά δίκτυα"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Η θύρα {name} ({details}) είναι διαθέσιμη για εξωτερικά δίκτυα" msgstr "Η θύρα {name} ({details}) είναι διαθέσιμη για εξωτερικά δίκτυα"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Η θύρα {name} ({details}) δεν είναι διαθέσιμη για εξωτερικά δίκτυα" msgstr "Η θύρα {name} ({details}) δεν είναι διαθέσιμη για εξωτερικά δίκτυα"
@ -3349,7 +3353,7 @@ msgstr "Το πιστοποιητικό διαγράφηκε επιτυχώς γ
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Αποτυχία διαγραφής πιστοποιητικού για το όνομα {domain}: {error}" msgstr "Αποτυχία διαγραφής πιστοποιητικού για το όνομα {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3367,14 +3371,14 @@ msgstr ""
"να συνομιλήσουν με τους χρήστες σε όλες τις άλλες διακομιστές Matrix μέσω " "να συνομιλήσουν με τους χρήστες σε όλες τις άλλες διακομιστές Matrix μέσω "
"ομοσπονδίας." "ομοσπονδίας."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3979,15 +3983,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Υπηρεσίες ονομάτων" msgstr "Υπηρεσίες ονομάτων"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Όλα" msgstr "Όλα"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Όλες οι εφαρμογές ιστού" msgstr "Όλες οι εφαρμογές ιστού"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -8585,34 +8589,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Εγκαθίσταται" msgstr "Εγκαθίσταται"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "Λήψη" msgstr "Λήψη"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "Αλλαγή μέσου" msgstr "Αλλαγή μέσου"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "αρχείο ρυθμίσεων: {file}" msgstr "αρχείο ρυθμίσεων: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8876,6 +8880,10 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -9108,11 +9116,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Οι ρυθμίσεις δεν άλλαξαν" msgstr "Οι ρυθμίσεις δεν άλλαξαν"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-31 19:50+0000\n" "PO-Revision-Date: 2023-08-31 19:50+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "La configuración fija {etc_path} está configurada correctamente" msgstr "La configuración fija {etc_path} está configurada correctamente"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -109,6 +109,10 @@ msgstr "Idioma para mostrar esta interfaz web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Configure la preferencia de idioma en el navegador" msgstr "Configure la preferencia de idioma en el navegador"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Servidor HTTP Apache" msgstr "Servidor HTTP Apache"
@ -1827,7 +1831,7 @@ msgstr "El Servidor rechazo la conexión"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Ya Estaba Actualizada" msgstr "Ya Estaba Actualizada"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1835,7 +1839,7 @@ msgstr ""
"XMPP es un protocolo de comunicación abierto y estándar. Puede ejecutar y " "XMPP es un protocolo de comunicación abierto y estándar. Puede ejecutar y "
"configurar su servidor XMPP (ejabberd) aquí." "configurar su servidor XMPP (ejabberd) aquí."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1849,7 +1853,7 @@ msgstr ""
"disponible para cualquier <a href=\"{users_url}\">usuario con acceso a " "disponible para cualquier <a href=\"{users_url}\">usuario con acceso a "
"{box_name}</a>." "{box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1859,12 +1863,12 @@ msgstr ""
"Instalar la app <a href=\"{coturn_url}\">Coturn</a> o configurar un servidor " "Instalar la app <a href=\"{coturn_url}\">Coturn</a> o configurar un servidor "
"externo." "externo."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Servidor de Chat" msgstr "Servidor de Chat"
@ -2182,17 +2186,17 @@ msgstr "El backend del cortafuegos es nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Existen normas de transferencia directa" msgstr "Existen normas de transferencia directa"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Puerto {name} ({details}) disponible para redes internas" msgstr "Puerto {name} ({details}) disponible para redes internas"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Puerto {name} ({details}) disponible para redes externas" msgstr "Puerto {name} ({details}) disponible para redes externas"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Puerto {name} ({details}) no disponible para redes externas" msgstr "Puerto {name} ({details}) no disponible para redes externas"
@ -3254,7 +3258,7 @@ msgstr "El certificado para el dominio {domain} ha sido eliminado con éxito"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Falló la eliminación del certificado para el dominio {domain}: {error}" msgstr "Falló la eliminación del certificado para el dominio {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3271,7 +3275,7 @@ msgstr ""
"funcionar. La federación de los servidores permite que las/os usuarias/os de " "funcionar. La federación de los servidores permite que las/os usuarias/os de "
"un servidor Matrix contacten con los de otro servidor." "un servidor Matrix contacten con los de otro servidor."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3281,7 +3285,7 @@ msgstr ""
"Instalar la app <a href=\"{coturn_url}\">Coturn</a> o configurar un servidor " "Instalar la app <a href=\"{coturn_url}\">Coturn</a> o configurar un servidor "
"externo." "externo."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3854,15 +3858,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Servicios de nombres" msgstr "Servicios de nombres"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Todos" msgstr "Todos"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Todas las apps web" msgstr "Todas las apps web"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Intérprete de órdenes seguro" msgstr "Intérprete de órdenes seguro"
@ -8330,34 +8334,34 @@ msgstr "Esperando a empezar: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Terminó: {name}" msgstr "Terminó: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "El paquete {expression} no está disponible para instalar" msgstr "El paquete {expression} no está disponible para instalar"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "El paquete {package_name} es la última versión ({latest_version})" msgstr "El paquete {package_name} es la última versión ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "instalando" msgstr "instalando"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "descargando" msgstr "descargando"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "cambio de medio" msgstr "cambio de medio"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "archivo de configuración: {file}" msgstr "archivo de configuración: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Tiempo máximo esperando al administrador de paquetes" msgstr "Tiempo máximo esperando al administrador de paquetes"
@ -8593,6 +8597,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "error"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8808,11 +8818,11 @@ msgstr ""
"Todos los datos de la aplicación y la configuración se perderán " "Todos los datos de la aplicación y la configuración se perderán "
"permanentemente. La aplicación se puede instalar de nuevo." "permanentemente. La aplicación se puede instalar de nuevo."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Configuración sin cambio" msgstr "Configuración sin cambio"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "antes de desinstalar {app_id}" msgstr "antes de desinstalar {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
#, fuzzy #, fuzzy
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -109,6 +109,10 @@ msgstr "زبان محیط این برنامهٔ مدیریتی"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
@ -1849,13 +1853,13 @@ msgstr "پاک‌کردن اتصال"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "آخرین به‌روزرسانی" msgstr "آخرین به‌روزرسانی"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1864,19 +1868,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
msgid "Chat Server" msgid "Chat Server"
@ -2184,17 +2188,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3240,7 +3244,7 @@ msgstr "گواهی دامنهٔ {domain} با موفقیت باطل شد"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "باطل‌کردن گواهی دامنهٔ {domain} شکست خورد: {error}" msgstr "باطل‌کردن گواهی دامنهٔ {domain} شکست خورد: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3250,14 +3254,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3781,15 +3785,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "سرویس نام‌ها" msgstr "سرویس نام‌ها"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "پوستهٔ ایمن" msgstr "پوستهٔ ایمن"
@ -7959,34 +7963,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8224,6 +8228,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8422,11 +8430,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Plinth 0.6\n" "Project-Id-Version: Plinth 0.6\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2016-01-31 22:24+0530\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n" "Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Plinth Developers <freedombox-discuss@lists.alioth.debian." "Language-Team: Plinth Developers <freedombox-discuss@lists.alioth.debian."
@ -27,7 +27,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FREEDOMBOX" msgstr "FREEDOMBOX"
@ -112,6 +112,10 @@ msgstr "LANGUAGE FOR THIS WEB ADMINISTRATION INTERFACE"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
@ -1935,7 +1939,7 @@ msgstr "DELETE CONNECTION"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "LAST UPDATE" msgstr "LAST UPDATE"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1943,7 +1947,7 @@ msgstr ""
"XMPP IS AN OPEN AND STANDARDIZED COMMUNICATION PROTOCOL. HERE YOU CAN RUN " "XMPP IS AN OPEN AND STANDARDIZED COMMUNICATION PROTOCOL. HERE YOU CAN RUN "
"AND CONFIGURE YOUR XMPP SERVER, CALLED EJABBERD." "AND CONFIGURE YOUR XMPP SERVER, CALLED EJABBERD."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "" #| msgid ""
#| "To actually communicate, you can use the <a href='/jwchat'>web client</a> " #| "To actually communicate, you can use the <a href='/jwchat'>web client</a> "
@ -1959,19 +1963,19 @@ msgstr ""
"ANY OTHER <a href='http://xmpp.org/xmpp-software/clients/' " "ANY OTHER <a href='http://xmpp.org/xmpp-software/clients/' "
"target='_blank'>XMPP CLIENT</a>." "target='_blank'>XMPP CLIENT</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
msgid "Chat Server" msgid "Chat Server"
@ -2288,19 +2292,19 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "Service discovery server is not running" #| msgid "Service discovery server is not running"
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING" msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "Service discovery server is not running" #| msgid "Service discovery server is not running"
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING" msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3365,7 +3369,7 @@ msgstr "CERTIFICATE SUCCESSFULLY REVOKED FOR DOMAIN {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "FAILED TO REVOKE CERTIFICATE FOR DOMAIN {domain}: {error}" msgstr "FAILED TO REVOKE CERTIFICATE FOR DOMAIN {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3375,14 +3379,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
#, fuzzy #, fuzzy
#| msgid "Chat Server (XMPP)" #| msgid "Chat Server (XMPP)"
msgid "Matrix Synapse" msgid "Matrix Synapse"
@ -3931,15 +3935,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "NAME SERVICES" msgstr "NAME SERVICES"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
#, fuzzy #, fuzzy
#| msgid "Secure Shell (SSH)" #| msgid "Secure Shell (SSH)"
msgid "Secure Shell" msgid "Secure Shell"
@ -8432,39 +8436,39 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "SERVICE DISABLED: {name}" msgstr "SERVICE DISABLED: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
#, fuzzy #, fuzzy
#| msgid "Installation" #| msgid "Installation"
msgid "installing" msgid "installing"
msgstr "INSTALLATION" msgstr "INSTALLATION"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
#, fuzzy #, fuzzy
#| msgid "Setting unchanged" #| msgid "Setting unchanged"
msgid "media change" msgid "media change"
msgstr "SETTING UNCHANGED" msgstr "SETTING UNCHANGED"
#: plinth/package.py:379 #: plinth/package.py:378
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "Configuration" #| msgid "Configuration"
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "CONFIGURATION" msgstr "CONFIGURATION"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8738,6 +8742,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8950,11 +8958,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "SETTING UNCHANGED" msgstr "SETTING UNCHANGED"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-04-07 23:10+0000\n" "PO-Revision-Date: 2023-04-07 23:10+0000\n"
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n" "Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -109,6 +109,10 @@ msgstr "Langue de cette interface web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Utiliser la langue du navigateur" msgstr "Utiliser la langue du navigateur"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Serveur HTTP Apache" msgstr "Serveur HTTP Apache"
@ -1861,7 +1865,7 @@ msgstr "Connexion refusée par le serveur"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Déjà à jour" msgstr "Déjà à jour"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1869,7 +1873,7 @@ msgstr ""
"XMPP est un protocole de communication ouvert et standardisé. Vous pouvez " "XMPP est un protocole de communication ouvert et standardisé. Vous pouvez "
"lancer et configurer ici votre serveur XMPP, appelé ejabberd." "lancer et configurer ici votre serveur XMPP, appelé ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1883,7 +1887,7 @@ msgstr ""
"est accessible par tout <a href=\"{users_url}\">utilisatrice ou utilisateur " "est accessible par tout <a href=\"{users_url}\">utilisatrice ou utilisateur "
"disposant dun compte sur la {box_name}</a>." "disposant dun compte sur la {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1893,12 +1897,12 @@ msgstr ""
"Installez pour cela lapplication <a href=\"{coturn_url}\">Coturn</a> ou " "Installez pour cela lapplication <a href=\"{coturn_url}\">Coturn</a> ou "
"bien configurez un serveur externe." "bien configurez un serveur externe."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Serveur de discussion" msgstr "Serveur de discussion"
@ -2221,17 +2225,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) disponible pour les réseaux internes" msgstr "Port {name} ({details}) disponible pour les réseaux internes"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) disponible pour les réseaux externes" msgstr "Port {name} ({details}) disponible pour les réseaux externes"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details}) non disponible pour les réseaux externes" msgstr "Port {name} ({details}) non disponible pour les réseaux externes"
@ -3307,7 +3311,7 @@ msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
"La suppression du certificat pour le domaine {domain} a échoué : {error}" "La suppression du certificat pour le domaine {domain} a échoué : {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3325,7 +3329,7 @@ msgstr ""
"un serveur Matrix donné peuvent converser avec des utilisateurs sur tous les " "un serveur Matrix donné peuvent converser avec des utilisateurs sur tous les "
"autres serveurs Matrix grâce la fédération." "autres serveurs Matrix grâce la fédération."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3335,7 +3339,7 @@ msgstr ""
"Installez pour cela lapplication <a href=\"{coturn_url}\">Coturn</a> ou " "Installez pour cela lapplication <a href=\"{coturn_url}\">Coturn</a> ou "
"bien configurez un serveur externe." "bien configurez un serveur externe."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3924,15 +3928,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Services de nommage" msgstr "Services de nommage"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Tous" msgstr "Tous"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Toutes les applications web" msgstr "Toutes les applications web"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -8508,34 +8512,34 @@ msgstr "Attente du démarrage de : {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Terminé : {name}" msgstr "Terminé : {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Le paquet {expression} nest pas disponible à linstallation" msgstr "Le paquet {expression} nest pas disponible à linstallation"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Le paquet {package_name} est à la dernière version ({latest_version})" msgstr "Le paquet {package_name} est à la dernière version ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "installation en cours" msgstr "installation en cours"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "téléchargement en cours" msgstr "téléchargement en cours"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "changement de support" msgstr "changement de support"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "fichier de configuration : {file}" msgstr "fichier de configuration : {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Aucune réponse du gestionnaire de paquets" msgstr "Aucune réponse du gestionnaire de paquets"
@ -8772,6 +8776,12 @@ msgstr "Homebrew :"
msgid "RPM:" msgid "RPM:"
msgstr "RPM :" msgstr "RPM :"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "erreur"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8994,11 +9004,11 @@ msgstr ""
"Lensemble données de lappli et sa configuration seront définitivement " "Lensemble données de lappli et sa configuration seront définitivement "
"perdus. Un appli peut toujours être réinstallée de zéro." "perdus. Un appli peut toujours être réinstallée de zéro."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Paramètre inchangé" msgstr "Paramètre inchangé"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "avant la désinstallation de {app_id}" msgstr "avant la désinstallation de {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-12-30 10:51+0000\n" "PO-Revision-Date: 2022-12-30 10:51+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -105,6 +105,10 @@ msgstr "Idioma para amosar esta interface web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Usar a preferencia de idioma definida no navegador" msgstr "Usar a preferencia de idioma definida no navegador"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Web Server" #| msgid "Web Server"
@ -1642,13 +1646,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1657,19 +1661,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1948,17 +1952,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2875,7 +2879,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2885,14 +2889,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3368,15 +3372,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7259,34 +7263,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7522,6 +7526,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7713,11 +7721,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ફ્રિડમબોક્ષ" msgstr "ફ્રિડમબોક્ષ"
@ -108,6 +108,10 @@ msgstr "આ વેબ પ્રબંધક ઈન્ટરફેસ માટ
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Chat Server" #| msgid "Chat Server"
@ -1786,7 +1790,7 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "છેલ્લો સુધારો" msgstr "છેલ્લો સુધારો"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1794,7 +1798,7 @@ msgstr ""
"XMPP એક ખુલ્લું અને પ્રમાણિત સંચાર પ્રોટોકોલ છે. અહીં તમે તમારા XMPP સર્વરને ચલાવો અને " "XMPP એક ખુલ્લું અને પ્રમાણિત સંચાર પ્રોટોકોલ છે. અહીં તમે તમારા XMPP સર્વરને ચલાવો અને "
"ગોઠવી શકો છો, જેને ઈઝબેબર્ડે કહેવાય છે." "ગોઠવી શકો છો, જેને ઈઝબેબર્ડે કહેવાય છે."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "" #| msgid ""
#| "To actually communicate, you can use the <a href=\"/plinth/apps/" #| "To actually communicate, you can use the <a href=\"/plinth/apps/"
@ -1814,19 +1818,19 @@ msgstr ""
"શકાય છે કોઇપણ દ્વારા <a href=\"/plinth/sys/users\">વપરાશકર્તાઓ સાથે{box_name}" "શકાય છે કોઇપણ દ્વારા <a href=\"/plinth/sys/users\">વપરાશકર્તાઓ સાથે{box_name}"
"પ્રવેશ</a>." "પ્રવેશ</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ઈઝબેબર્ડ" msgstr "ઈઝબેબર્ડ"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "ચેટ સર્વર" msgstr "ચેટ સર્વર"
@ -2133,17 +2137,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3084,7 +3088,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3094,14 +3098,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3609,15 +3613,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7597,34 +7601,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7870,6 +7874,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8070,11 +8078,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "સેટિંગ યથાવત" msgstr "સેટિંગ યથાવત"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "फ्रीडमबोएक्स" msgstr "फ्रीडमबोएक्स"
@ -109,6 +109,10 @@ msgstr "इस वेब इंटरफेस में इसतेमाल
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "जो भाषा ब्राउज़र में हैं, वो भाषा उपयोग करें" msgstr "जो भाषा ब्राउज़र में हैं, वो भाषा उपयोग करें"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Chat Server" #| msgid "Chat Server"
@ -1886,7 +1890,7 @@ msgstr "कनेक्शन हटाएँ"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "अंतिम अपडेट" msgstr "अंतिम अपडेट"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1894,7 +1898,7 @@ msgstr ""
"एक्सएमरपिपि एक खुला और मानकीकृत संचार प्रोटोकॉल है. यहां आप आपना एक्सएमरपिपि सर्वर " "एक्सएमरपिपि एक खुला और मानकीकृत संचार प्रोटोकॉल है. यहां आप आपना एक्सएमरपिपि सर्वर "
"कॉंफ़िगर आैर चल सकते हैं, सर्वर का नाम एजाबेरड है." "कॉंफ़िगर आैर चल सकते हैं, सर्वर का नाम एजाबेरड है."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "" #| msgid ""
#| "To actually communicate, you can use the <a href=\"{jsxc_url}\">web " #| "To actually communicate, you can use the <a href=\"{jsxc_url}\">web "
@ -1912,19 +1916,19 @@ msgstr ""
"ग्राहक</a>. सक्षम होने पर एजाबेरड कोई <a href=\"{users_url}\"> यूसर एक {box_name} " "ग्राहक</a>. सक्षम होने पर एजाबेरड कोई <a href=\"{users_url}\"> यूसर एक {box_name} "
"लोगिन</a> से उपयोग कर सकते हैं." "लोगिन</a> से उपयोग कर सकते हैं."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "एजाबेरड" msgstr "एजाबेरड"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "चाट सर्वर" msgstr "चाट सर्वर"
@ -2236,19 +2240,19 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "<em>%(service_name)s</em> is available only on internal networks." #| msgid "<em>%(service_name)s</em> is available only on internal networks."
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "<em>%(service_name)s</em> सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है." msgstr "<em>%(service_name)s</em> सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है."
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
#| msgid "<em>%(service_name)s</em> is available only on internal networks." #| msgid "<em>%(service_name)s</em> is available only on internal networks."
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "<em>%(service_name)s</em> सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है." msgstr "<em>%(service_name)s</em> सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है."
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3293,7 +3297,7 @@ msgstr "डोमेन के लिए प्रमाणपत्र का
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "डोमेन के लिए प्रमाणपत्र नहीं हटाया गया {domain}:{error}" msgstr "डोमेन के लिए प्रमाणपत्र नहीं हटाया गया {domain}:{error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3308,14 +3312,14 @@ msgstr ""
"मल्टीपल डिवाइस सिंक्रनाइज़इज़ाशिन और काम करने के लिए फोन नंबर की ज़रुरत नहीं है. मैट्रिक्स " "मल्टीपल डिवाइस सिंक्रनाइज़इज़ाशिन और काम करने के लिए फोन नंबर की ज़रुरत नहीं है. मैट्रिक्स "
"सर्वर पर यूसरसॅ सारे मैट्रिक्स सर्वर के लेग से बात कर सकते है फ़ेडरेशिन उपयोग कर." "सर्वर पर यूसरसॅ सारे मैट्रिक्स सर्वर के लेग से बात कर सकते है फ़ेडरेशिन उपयोग कर."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "मैट्रिक्स सिनापसॅ" msgstr "मैट्रिक्स सिनापसॅ"
@ -3869,15 +3873,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "नाम सरविस" msgstr "नाम सरविस"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "सुरक्षित शेल" msgstr "सुरक्षित शेल"
@ -8378,34 +8382,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "सर्विस सक्षम किया गया:{name}" msgstr "सर्विस सक्षम किया गया:{name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "इंस्टॉलिंग" msgstr "इंस्टॉलिंग"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "डाउनलोडिंग" msgstr "डाउनलोडिंग"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "मीडिया बदलाव" msgstr "मीडिया बदलाव"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "कॉंफ़िगरेशन फ़ाइल: {file}" msgstr "कॉंफ़िगरेशन फ़ाइल: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8666,6 +8670,10 @@ msgstr "होमब्रु:"
msgid "RPM:" msgid "RPM:"
msgstr "आरपीएम:" msgstr "आरपीएम:"
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8881,11 +8889,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "सेटिंग स्थिर है" msgstr "सेटिंग स्थिर है"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-10-24 18:39+0000\n" "PO-Revision-Date: 2022-10-24 18:39+0000\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n" "Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "A webes felület megjelenítéséhez használt nyelv"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "A böngésző nyelvének használata" msgstr "A böngésző nyelvének használata"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP szerver" msgstr "Apache HTTP szerver"
@ -1831,7 +1835,7 @@ msgstr "A szerver visszautasította a kapcsolatot"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Már frissítve" msgstr "Már frissítve"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1839,7 +1843,7 @@ msgstr ""
"Az XMPP egy nyílt és szabványos kommunikációs protokoll. Itt tudod futtatni " "Az XMPP egy nyílt és szabványos kommunikációs protokoll. Itt tudod futtatni "
"és konfigurálni az XMPP-szerveredet, amit ejabberd-nek neveznek." "és konfigurálni az XMPP-szerveredet, amit ejabberd-nek neveznek."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1853,7 +1857,7 @@ msgstr ""
"lesz bármely <a href=\"{users_url}\"> felhasználó számára {box_name} " "lesz bármely <a href=\"{users_url}\"> felhasználó számára {box_name} "
"felhasználónéven</a>." "felhasználónéven</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1863,12 +1867,12 @@ msgstr ""
"videóhívásokhoz. Telepítsd a <a href=\"{coturn_url}\">Coturn</a> alkalmazást " "videóhívásokhoz. Telepítsd a <a href=\"{coturn_url}\">Coturn</a> alkalmazást "
"vagy állíts be egy külső szervert." "vagy állíts be egy külső szervert."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chat szerver" msgstr "Chat szerver"
@ -2192,17 +2196,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "{name} port ({details}) elérhető a belső hálózaton" msgstr "{name} port ({details}) elérhető a belső hálózaton"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "{name} port ({details}) elérhető a külső hálózaton" msgstr "{name} port ({details}) elérhető a külső hálózaton"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "{name} port ({details}) nem érhető el külső hálózaton" msgstr "{name} port ({details}) nem érhető el külső hálózaton"
@ -3270,7 +3274,7 @@ msgstr "{domain} domain tanúsítványa sikeresen törölve"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "{domain} domain tanúsítványát nem sikerült kitörölni: {error}" msgstr "{domain} domain tanúsítványát nem sikerült kitörölni: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3287,7 +3291,7 @@ msgstr ""
"adott Matrix-szerveren lévő felhasználók föderáción keresztül " "adott Matrix-szerveren lévő felhasználók föderáción keresztül "
"beszélgethetnek az összes többi Matrix-szerver felhasználóival." "beszélgethetnek az összes többi Matrix-szerver felhasználóival."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3297,7 +3301,7 @@ msgstr ""
"videóhívásokhoz. Telepítsd a <a href=\"{coturn_url}\">Coturn</a> " "videóhívásokhoz. Telepítsd a <a href=\"{coturn_url}\">Coturn</a> "
"alkalmazást, vagy konfigurálj egy külső szervert." "alkalmazást, vagy konfigurálj egy külső szervert."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3879,15 +3883,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Névszolgáltatások" msgstr "Névszolgáltatások"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Összes" msgstr "Összes"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Összes webalkalmazás" msgstr "Összes webalkalmazás"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell (Biztonságos parancsértelmező)" msgstr "Secure Shell (Biztonságos parancsértelmező)"
@ -8411,34 +8415,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Szolgáltatás letiltva: {name}" msgstr "Szolgáltatás letiltva: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "A(z) {package_name} a legfrissebb verzió ({latest_version})" msgstr "A(z) {package_name} a legfrissebb verzió ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "telepítés" msgstr "telepítés"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "letöltés" msgstr "letöltés"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "adathordozó csere" msgstr "adathordozó csere"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "konfigurációs fájl: {file}" msgstr "konfigurációs fájl: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8691,6 +8695,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "hiba"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8915,11 +8925,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "A beállítás változatlan" msgstr "A beállítás változatlan"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Indonesian (FreedomBox)\n" "Project-Id-Version: Indonesian (FreedomBox)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/"
@ -23,7 +23,7 @@ msgstr "Sumber halaman"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -104,6 +104,10 @@ msgstr "Bahasa yang digunakan untuk menyajikan antarmuka web ini"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Gunakan preferensi bahasa yang ditetapkan di browser" msgstr "Gunakan preferensi bahasa yang ditetapkan di browser"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP Server" msgstr "Apache HTTP Server"
@ -1842,7 +1846,7 @@ msgstr "Hapus koneksi"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Automatic" msgstr "Automatic"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1850,7 +1854,7 @@ msgstr ""
"XMPP adalah protokol komunikasi terbuka dan standar. Di sini Anda dapat " "XMPP adalah protokol komunikasi terbuka dan standar. Di sini Anda dapat "
"menjalankan dan mengkonfigurasi server XMPP Anda, yang disebut Ejabberd." "menjalankan dan mengkonfigurasi server XMPP Anda, yang disebut Ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1864,7 +1868,7 @@ msgstr ""
"diakses oleh <a href=\"{users_url}\"> pengguna dengan sebuah {box_name} " "diakses oleh <a href=\"{users_url}\"> pengguna dengan sebuah {box_name} "
"login</a>." "login</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1874,12 +1878,12 @@ msgstr ""
"aplikasi <a href=\"{coturn_url}\">Coturn</a> atau konfigurasikan server " "aplikasi <a href=\"{coturn_url}\">Coturn</a> atau konfigurasikan server "
"eksternal." "eksternal."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "Ejabberd" msgstr "Ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Server obrolan" msgstr "Server obrolan"
@ -2190,17 +2194,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) tersedia untuk jaringan internal" msgstr "Port {name} ({details}) tersedia untuk jaringan internal"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) tersedia untuk jaringan eksternal" msgstr "Port {name} ({details}) tersedia untuk jaringan eksternal"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details}) tidak tersedia untuk jaringan eksternal" msgstr "Port {name} ({details}) tidak tersedia untuk jaringan eksternal"
@ -3253,7 +3257,7 @@ msgstr "Sertifikat berhasil dihapus untuk domain {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Gagal menghapus sertifikat untuk domain {domain}: {error}" msgstr "Gagal menghapus sertifikat untuk domain {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3270,7 +3274,7 @@ msgstr ""
"Pengguna pada server matriks tertentu dapat berkomunikasi dengan pengguna di " "Pengguna pada server matriks tertentu dapat berkomunikasi dengan pengguna di "
"semua server matriks lainnya melalui Federation." "semua server matriks lainnya melalui Federation."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3280,7 +3284,7 @@ msgstr ""
"Pasang aplikasi <a href=\"{coturn_url}\">Coturn</a> atau konfigurasikan " "Pasang aplikasi <a href=\"{coturn_url}\">Coturn</a> atau konfigurasikan "
"server eksternal." "server eksternal."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Sinaps Matrix" msgstr "Sinaps Matrix"
@ -3780,15 +3784,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Nama Layanan" msgstr "Nama Layanan"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Semua" msgstr "Semua"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Semua aplikasi web" msgstr "Semua aplikasi web"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -7779,34 +7783,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "memasang" msgstr "memasang"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "mengunduh" msgstr "mengunduh"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8047,6 +8051,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "kesalahan"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8249,11 +8259,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "Lingua da usare per la presentazione di questa interfaccia web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Usa la lingua impostata nel browser" msgstr "Usa la lingua impostata nel browser"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Server Apache HTTP" msgstr "Server Apache HTTP"
@ -1817,7 +1821,7 @@ msgstr "Cancella connessione"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Abilita l'aggiornamento automatico" msgstr "Abilita l'aggiornamento automatico"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1825,7 +1829,7 @@ msgstr ""
"XMPP è un protocollo di comunicazione aperto e standardizzato. Qui puoi " "XMPP è un protocollo di comunicazione aperto e standardizzato. Qui puoi "
"eseguire e configurare il tuo server XMPP, chiamato ejabberd." "eseguire e configurare il tuo server XMPP, chiamato ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1839,19 +1843,19 @@ msgstr ""
"accedere a ejabberd <a href=\"{users_url}\"> da ogni utente con un login " "accedere a ejabberd <a href=\"{users_url}\"> da ogni utente con un login "
"{box_name} </a>." "{box_name} </a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Server Chat" msgstr "Server Chat"
@ -2152,17 +2156,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Porta {name} ({details}) disponibile per le reti interne" msgstr "Porta {name} ({details}) disponibile per le reti interne"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Porta {name} ({details}) disponibile per reti esterne" msgstr "Porta {name} ({details}) disponibile per reti esterne"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Porta {name} ({details}) non disponibile per reti esterne" msgstr "Porta {name} ({details}) non disponibile per reti esterne"
@ -3230,7 +3234,7 @@ msgstr "Certificato cancellato correttamente per il dominio {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Cancellazione certificato fallita per il dominio {domain}:{error}" msgstr "Cancellazione certificato fallita per il dominio {domain}:{error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3247,14 +3251,14 @@ msgstr ""
"Gli utenti di un certo server Matrix possono comunicare con gli altri utenti " "Gli utenti di un certo server Matrix possono comunicare con gli altri utenti "
"attestati su tutti gli altri server Matrix tramite federazione." "attestati su tutti gli altri server Matrix tramite federazione."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3818,15 +3822,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Name Services" msgstr "Name Services"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -7858,34 +7862,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Servizio disabilitato: {name}" msgstr "Servizio disabilitato: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8130,6 +8134,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8326,11 +8334,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Impostazioni invariate" msgstr "Impostazioni invariate"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-05-07 23:50+0000\n" "PO-Revision-Date: 2023-05-07 23:50+0000\n"
"Last-Translator: Nobuhiro Iwamatsu <iwamatsu@gmail.com>\n" "Last-Translator: Nobuhiro Iwamatsu <iwamatsu@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "ページのソース"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -103,6 +103,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1638,13 +1642,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1653,19 +1657,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1942,17 +1946,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2867,7 +2871,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2877,14 +2881,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3356,15 +3360,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7227,34 +7231,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7478,6 +7482,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7665,11 +7673,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2020-07-16 16:41+0000\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n"
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n" "Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
"Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್" msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್"
@ -103,6 +103,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1638,13 +1642,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1653,19 +1657,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1942,17 +1946,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2867,7 +2871,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2877,14 +2881,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3356,15 +3360,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7229,34 +7233,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7480,6 +7484,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7667,11 +7675,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -105,6 +105,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1640,13 +1644,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1655,19 +1659,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1944,17 +1948,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2869,7 +2873,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2879,14 +2883,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3358,15 +3362,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7231,34 +7235,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7482,6 +7486,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7669,11 +7677,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -104,6 +104,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1639,13 +1643,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1654,19 +1658,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1943,17 +1947,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2868,7 +2872,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2878,14 +2882,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3357,15 +3361,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7230,34 +7234,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7481,6 +7485,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7668,11 +7676,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -15,7 +15,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-16 06:52+0000\n" "PO-Revision-Date: 2023-08-16 06:52+0000\n"
"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n" "Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@ -36,7 +36,7 @@ msgstr "Sidekilde"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Statisk oppsett {etc_path} er korrekt satt opp" msgstr "Statisk oppsett {etc_path} er korrekt satt opp"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -114,6 +114,10 @@ msgstr "Språk som skal brukes i dette nettgrensesnittet"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Bruk språkforvalg satt i nettleseren" msgstr "Bruk språkforvalg satt i nettleseren"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP-tjener" msgstr "Apache HTTP-tjener"
@ -1862,7 +1866,7 @@ msgstr "Slett tilkobling"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Auto-oppdatering" msgstr "Auto-oppdatering"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1870,7 +1874,7 @@ msgstr ""
"XMPP er en åpen og standardisert kommunikasjonsprotokoll. Her kan du kjøre " "XMPP er en åpen og standardisert kommunikasjonsprotokoll. Her kan du kjøre "
"og konfigurere din XMPP-tjener, kalt ejabberd." "og konfigurere din XMPP-tjener, kalt ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1884,19 +1888,19 @@ msgstr ""
"tilgjengelig for enhver <a href=\"{users_url}\">bruker med innlogging på " "tilgjengelig for enhver <a href=\"{users_url}\">bruker med innlogging på "
"{box_name}</a>." "{box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Nettprat-tjener" msgstr "Nettprat-tjener"
@ -2215,17 +2219,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) tilgjengelig på interne nettverk" msgstr "Port {name} ({details}) tilgjengelig på interne nettverk"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) tilgjengelig på eksterne nettverk" msgstr "Port {name} ({details}) tilgjengelig på eksterne nettverk"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details}) er utilgjengelig for eksterne nettverk" msgstr "Port {name} ({details}) er utilgjengelig for eksterne nettverk"
@ -3299,7 +3303,7 @@ msgstr "Vellykket sletting av sertifikatet for domenet {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Klarte ikke å slette sertifikatet for domenet {domain}: {error}" msgstr "Klarte ikke å slette sertifikatet for domenet {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3315,14 +3319,14 @@ msgstr ""
"enheter, og krever ikke telefonnumre for å virke. Brukere på en gitt Matrix-" "enheter, og krever ikke telefonnumre for å virke. Brukere på en gitt Matrix-"
"tjener kan snakke med brukere på alle andre samvirkende Matrix-tjenere." "tjener kan snakke med brukere på alle andre samvirkende Matrix-tjenere."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3913,15 +3917,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Navnetjenester" msgstr "Navnetjenester"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Alle nettprogrammer" msgstr "Alle nettprogrammer"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell (SSH)" msgstr "Secure Shell (SSH)"
@ -8404,34 +8408,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Tjeneste deaktivert: {name}" msgstr "Tjeneste deaktivert: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Pakke {expression} er ikke tilgjengelig for installasjon" msgstr "Pakke {expression} er ikke tilgjengelig for installasjon"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Pakke {package_name} er siste versjon ({latest_version})" msgstr "Pakke {package_name} er siste versjon ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "installering" msgstr "installering"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "laster ned" msgstr "laster ned"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "mediaendring" msgstr "mediaendring"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "oppsettsfil: {file}" msgstr "oppsettsfil: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8681,6 +8685,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "feil"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8903,11 +8913,11 @@ msgstr ""
"All programdata og oppsett blir permanent borte. Programmet kan installeres " "All programdata og oppsett blir permanent borte. Programmet kan installeres "
"på nytt igjen." "på nytt igjen."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Oppsett uendret" msgstr "Oppsett uendret"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "før avinstallering av {app_id}" msgstr "før avinstallering av {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-09-05 19:53+0000\n" "PO-Revision-Date: 2023-09-05 19:53+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Paginabron"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Statische configuratie {etc_path} is correct ingesteld" msgstr "Statische configuratie {etc_path} is correct ingesteld"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -110,6 +110,10 @@ msgstr "Te gebruiken taal voor de weergave van deze webinterface"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Gebruik de taalvoorkeuren die zijn ingesteld in de browser" msgstr "Gebruik de taalvoorkeuren die zijn ingesteld in de browser"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP Server" msgstr "Apache HTTP Server"
@ -1827,7 +1831,7 @@ msgstr "Server weigert verbinding"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Al bijgewerkt" msgstr "Al bijgewerkt"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1835,7 +1839,7 @@ msgstr ""
"XMPP is een open en gestandaardiseerd communicatie protocol. Hiermee kan een " "XMPP is een open en gestandaardiseerd communicatie protocol. Hiermee kan een "
"XMPP server met de naam ejabberd worden ingesteld." "XMPP server met de naam ejabberd worden ingesteld."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1849,7 +1853,7 @@ msgstr ""
"kan elke <a href=\"{users_url}\">gebruiker van {box_name}</a> daartoe " "kan elke <a href=\"{users_url}\">gebruiker van {box_name}</a> daartoe "
"toegang krijgen." "toegang krijgen."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1859,12 +1863,12 @@ msgstr ""
"Installeer de <a href=\"{coturn_url}\">Coturn</a> toepassing of configureer " "Installeer de <a href=\"{coturn_url}\">Coturn</a> toepassing of configureer "
"een externe server." "een externe server."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chatserver" msgstr "Chatserver"
@ -2181,17 +2185,17 @@ msgstr "Firewall backend is nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Er zijn directe doorgeefregels ingesteld" msgstr "Er zijn directe doorgeefregels ingesteld"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Poort {name} ({details}) is beschikbaar binnen interne netwerken" msgstr "Poort {name} ({details}) is beschikbaar binnen interne netwerken"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Poort {name} ({details})is beschikbaar voor externe netwerken" msgstr "Poort {name} ({details})is beschikbaar voor externe netwerken"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Poort {name} ({details}) is niet beschikbaar voor externe netwerken" msgstr "Poort {name} ({details}) is niet beschikbaar voor externe netwerken"
@ -3263,7 +3267,7 @@ msgstr "Certificaat met succes verwijderd voor domein {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Verwijderen certificaat voor domein {domain} mislukt: {error}" msgstr "Verwijderen certificaat voor domein {domain} mislukt: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3280,7 +3284,7 @@ msgstr ""
"Matrix server kunnen gesprekken aangaan met gebruikers op alle andere Matrix " "Matrix server kunnen gesprekken aangaan met gebruikers op alle andere Matrix "
"servers door federatie (gedecentraliseerd netwerk)." "servers door federatie (gedecentraliseerd netwerk)."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3290,7 +3294,7 @@ msgstr ""
"videogesprekken. Installeer de <a href=\"{coturn_url}\">Coturn</a> " "videogesprekken. Installeer de <a href=\"{coturn_url}\">Coturn</a> "
"toepassing of configureer een externe server." "toepassing of configureer een externe server."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3866,15 +3870,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Domeindiensten" msgstr "Domeindiensten"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Alle webtoepassingen" msgstr "Alle webtoepassingen"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -8362,34 +8366,34 @@ msgstr "Wachten om te starten: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Klaar: {name}" msgstr "Klaar: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Pakket {expression} is niet beschikbaar voor installatie" msgstr "Pakket {expression} is niet beschikbaar voor installatie"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Pakket {package_name} is de nieuwste versie ({latest_version})" msgstr "Pakket {package_name} is de nieuwste versie ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "installeren" msgstr "installeren"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "downloaden" msgstr "downloaden"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "media wijzigen" msgstr "media wijzigen"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "configuratiebestand: {file}" msgstr "configuratiebestand: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Time-out wachtend op pakketbeheerder" msgstr "Time-out wachtend op pakketbeheerder"
@ -8625,6 +8629,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "fout"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8841,11 +8851,11 @@ msgstr ""
"Alle toepassings-gegevens en configuratie gaan permanent verloren. de " "Alle toepassings-gegevens en configuratie gaan permanent verloren. de "
"toepassing kan opnieuw vers worden geïnstalleerd." "toepassing kan opnieuw vers worden geïnstalleerd."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Instelling onveranderd" msgstr "Instelling onveranderd"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "voor het verwijderen van {app_id}" msgstr "voor het verwijderen van {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -108,6 +108,10 @@ msgstr "Język używany do reprezentowania danego interfejsu www"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Użyj języka ustawionego w przeglądarce" msgstr "Użyj języka ustawionego w przeglądarce"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Serwer Apache HTTP" msgstr "Serwer Apache HTTP"
@ -1829,7 +1833,7 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Ostatnie uaktualnienie" msgstr "Ostatnie uaktualnienie"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1837,7 +1841,7 @@ msgstr ""
"XMPP jest otwartym i ustandaryzowanym protokołem komunikacyjnym. Tu możesz " "XMPP jest otwartym i ustandaryzowanym protokołem komunikacyjnym. Tu możesz "
"uruchomić i skonfigurować własny serwer XMPP zwany ejabberd." "uruchomić i skonfigurować własny serwer XMPP zwany ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1850,19 +1854,19 @@ msgstr ""
"clients' target='_blank'>klienta XMPP</a>. Gdy włączony, ejabberd jest " "clients' target='_blank'>klienta XMPP</a>. Gdy włączony, ejabberd jest "
"dostępny dla każdego <a href=\"{users_url}\">użytkownika {box_name}</a>." "dostępny dla każdego <a href=\"{users_url}\">użytkownika {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Serwer czatu" msgstr "Serwer czatu"
@ -2172,17 +2176,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) jest dostępny dla sieci wewnętrznych" msgstr "Port {name} ({details}) jest dostępny dla sieci wewnętrznych"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) jest dostępny dla sieci zewnętrznych" msgstr "Port {name} ({details}) jest dostępny dla sieci zewnętrznych"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3170,7 +3174,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3180,14 +3184,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3707,15 +3711,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7799,34 +7803,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "plik konfiguracyjny: {file}" msgstr "plik konfiguracyjny: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8090,6 +8094,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "błąd"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8308,11 +8318,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Ustawienie bez zmian" msgstr "Ustawienie bez zmian"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-05-22 15:50+0000\n" "PO-Revision-Date: 2023-05-22 15:50+0000\n"
"Last-Translator: Frederico Gomes <fefekrzr@gmail.com>\n" "Last-Translator: Frederico Gomes <fefekrzr@gmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "Freedombox" msgstr "Freedombox"
@ -109,6 +109,10 @@ msgstr "Idioma a ser usado para apresentar a interface de administração web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Use a preferência de idioma definida no navegador" msgstr "Use a preferência de idioma definida no navegador"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Servidor HTTP Apache" msgstr "Servidor HTTP Apache"
@ -1773,13 +1777,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Aplicações" msgstr "Aplicações"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1788,19 +1792,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2097,17 +2101,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Porta {name} ({details}) disponível para redes internas" msgstr "Porta {name} ({details}) disponível para redes internas"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Porta {name} ({details}) disponível para redes externas" msgstr "Porta {name} ({details}) disponível para redes externas"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3067,7 +3071,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3077,14 +3081,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3597,15 +3601,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7596,36 +7600,36 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
#, fuzzy #, fuzzy
#| msgid "Setting unchanged" #| msgid "Setting unchanged"
msgid "media change" msgid "media change"
msgstr "Definição inalterada" msgstr "Definição inalterada"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "ficheiro de configuração: {file}" msgstr "ficheiro de configuração: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7865,6 +7869,10 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8071,11 +8079,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Definição inalterada" msgstr "Definição inalterada"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-10-10 18:05+0000\n" "PO-Revision-Date: 2022-10-10 18:05+0000\n"
"Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n" "Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Исходный код страницы"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -108,6 +108,10 @@ msgstr "Язык, используемый для представления д
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Использовать языковые настройки браузера" msgstr "Использовать языковые настройки браузера"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP сервер" msgstr "Apache HTTP сервер"
@ -1823,7 +1827,7 @@ msgstr "Сервер отказал в соединении"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Уже обновлено" msgstr "Уже обновлено"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1831,7 +1835,7 @@ msgstr ""
"XMPP является открытым и стандартизированным коммуникационным протоколом. " "XMPP является открытым и стандартизированным коммуникационным протоколом. "
"Здесь вы можете запустить и настроить сервер XMPP, называемый ejabberd." "Здесь вы можете запустить и настроить сервер XMPP, называемый ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1844,7 +1848,7 @@ msgstr ""
"target=\"_blank\"> XMPP клиент</a>. Когда включен, ejabberd доступен всем <a " "target=\"_blank\"> XMPP клиент</a>. Когда включен, ejabberd доступен всем <a "
"href=\"{users_url}\"> пользователям {box_name}</a>." "href=\"{users_url}\"> пользователям {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1853,12 +1857,12 @@ msgstr ""
"ejabberd необходим сервер STUN/TURN для аудио/видео звонков. Установите " "ejabberd необходим сервер STUN/TURN для аудио/видео звонков. Установите "
"приложение <a href=\"{coturn_url}\">Coturn</a> или настройте внешний сервер." "приложение <a href=\"{coturn_url}\">Coturn</a> или настройте внешний сервер."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "еjabberd" msgstr "еjabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Чат-сервер" msgstr "Чат-сервер"
@ -2178,17 +2182,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Порт {name} ({details}) доступен для внутренних сетей" msgstr "Порт {name} ({details}) доступен для внутренних сетей"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Порт {name} ({details}) доступен для внешних сетей" msgstr "Порт {name} ({details}) доступен для внешних сетей"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Порт {name} ({details}) недоступен для внешних сетей" msgstr "Порт {name} ({details}) недоступен для внешних сетей"
@ -3241,7 +3245,7 @@ msgstr "Сертификат успешно удален для домена {do
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Не удалось удалить сертификат для домена {domain}: {error}" msgstr "Не удалось удалить сертификат для домена {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3258,7 +3262,7 @@ msgstr ""
"одном сервере Matrix могут общаться с пользователями на всех остальных " "одном сервере Matrix могут общаться с пользователями на всех остальных "
"серверах." "серверах."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3268,7 +3272,7 @@ msgstr ""
"Установите приложение <a href=\"{coturn_url}\">Coturn</a> или настройте " "Установите приложение <a href=\"{coturn_url}\">Coturn</a> или настройте "
"внешний сервер." "внешний сервер."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3850,15 +3854,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Службы имён" msgstr "Службы имён"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Все" msgstr "Все"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Все веб-приложения" msgstr "Все веб-приложения"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Sеcure Shell" msgstr "Sеcure Shell"
@ -8357,34 +8361,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Служба выключена: {name}" msgstr "Служба выключена: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Пакет {expression} недоступен для установки" msgstr "Пакет {expression} недоступен для установки"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Пакет {package_name} последней версией ({latest_version})" msgstr "Пакет {package_name} последней версией ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Установка" msgstr "Установка"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "Загрузка" msgstr "Загрузка"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "изменение медиа" msgstr "изменение медиа"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "Файл настроек: {file}" msgstr "Файл настроек: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8638,6 +8642,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "ошибка"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8860,11 +8870,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Настройки без изменений" msgstr "Настройки без изменений"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-04-27 13:32+0000\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n"
"Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n" "Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n"
"Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ෆ්‍රීඩම්බොක්ස්" msgstr "ෆ්‍රීඩම්බොක්ස්"
@ -103,6 +103,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1638,13 +1642,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1653,19 +1657,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1942,17 +1946,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2867,7 +2871,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2877,14 +2881,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3356,15 +3360,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7227,34 +7231,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7478,6 +7482,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7665,11 +7673,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -108,6 +108,10 @@ msgstr "Jezik, ki ga želite uporabljati za ta spletni vmesnik"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Uporabi jezikovne nastavitve brskalnika" msgstr "Uporabi jezikovne nastavitve brskalnika"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
#, fuzzy #, fuzzy
#| msgid "Domain Name Server" #| msgid "Domain Name Server"
@ -1795,13 +1799,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1810,19 +1814,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2115,17 +2119,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3066,7 +3070,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3076,14 +3080,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3567,15 +3571,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7543,34 +7547,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7808,6 +7812,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8002,11 +8010,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-02-25 11:36+0000\n" "PO-Revision-Date: 2023-02-25 11:36+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n" "Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Burim faqeje"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "Gjuhë për tu përdorur për të paraqitur këtë ndërfaqe web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Përdor parapëlqim gjuhe të caktuar te shfletuesi" msgstr "Përdor parapëlqim gjuhe të caktuar te shfletuesi"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Shërbyes HTTP Apache" msgstr "Shërbyes HTTP Apache"
@ -1827,7 +1831,7 @@ msgstr "Shërbyesi hodhi poshtë lidhjen"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "I përditësuar tashmë" msgstr "I përditësuar tashmë"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1835,7 +1839,7 @@ msgstr ""
"XMPP është një protokoll i hapët dhe i standardizuar komunikimesh. Këtu mund " "XMPP është një protokoll i hapët dhe i standardizuar komunikimesh. Këtu mund "
"të vini në punë dhe formësoni shërbyesin tuaj XMPP, të quajtur ejabberd." "të vini në punë dhe formësoni shërbyesin tuaj XMPP, të quajtur ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1849,7 +1853,7 @@ msgstr ""
"aktivizohet, ejabberd mund të përdoret nga cilido përdorues <a " "aktivizohet, ejabberd mund të përdoret nga cilido përdorues <a "
"href=\"{users_url}\"> me hyrje {box_name}</a>." "href=\"{users_url}\"> me hyrje {box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1859,12 +1863,12 @@ msgstr ""
"aplikacionin <a href=\"{coturn_url}\">Coturn</a>, ose formësoni një shërbyes " "aplikacionin <a href=\"{coturn_url}\">Coturn</a>, ose formësoni një shërbyes "
"të jashtëm." "të jashtëm."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Shërbyes Fjalosjesh" msgstr "Shërbyes Fjalosjesh"
@ -2186,17 +2190,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Portë {name} ({details}) e përdorshme për rrjete të brendshëm" msgstr "Portë {name} ({details}) e përdorshme për rrjete të brendshëm"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Portë {name} ({details}) e përdorshme për rrjete të jashtëm" msgstr "Portë {name} ({details}) e përdorshme për rrjete të jashtëm"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Portë {name} ({details}) jo e përdorshme për rrjete të brendshëm" msgstr "Portë {name} ({details}) jo e përdorshme për rrjete të brendshëm"
@ -3257,7 +3261,7 @@ msgstr "Dëshmi e fshirë me sukses për përkatësinë {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Su arrit të fshihet dëshmi për përkatësinë {domain}: {error}" msgstr "Su arrit të fshihet dëshmi për përkatësinë {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3274,7 +3278,7 @@ msgstr ""
"funksionojë. Përmes federimi, përdoruesit në një shërbyes të dhënë Matrix " "funksionojë. Përmes federimi, përdoruesit në një shërbyes të dhënë Matrix "
"mund të bisedojnë me përdorues në krejt shërbyesit e tjerë Matrix." "mund të bisedojnë me përdorues në krejt shërbyesit e tjerë Matrix."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3284,7 +3288,7 @@ msgstr ""
"aplikacionin <a href=\"{coturn_url}\">Coturn</a>, ose formësoni një shërbyes " "aplikacionin <a href=\"{coturn_url}\">Coturn</a>, ose formësoni një shërbyes "
"të jashtëm." "të jashtëm."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3872,15 +3876,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Shërbime Emrash" msgstr "Shërbime Emrash"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Krejt" msgstr "Krejt"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Krejt aplikacionet web" msgstr "Krejt aplikacionet web"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Shell i Sigurt" msgstr "Shell i Sigurt"
@ -8385,35 +8389,35 @@ msgstr "Po pritet të fillohet: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Përfundoi: {name}" msgstr "Përfundoi: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Paketa {expression} sështë e gatshme për instalim" msgstr "Paketa {expression} sështë e gatshme për instalim"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
"Paketa {package_name} gjendet nën versionin më të ri ({latest_version})" "Paketa {package_name} gjendet nën versionin më të ri ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "po instalohet" msgstr "po instalohet"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "po shkarkohet" msgstr "po shkarkohet"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "ndryshim media" msgstr "ndryshim media"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "kartelë formësimi: {file}" msgstr "kartelë formësimi: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Mbaroi koha teksa pritej për përgjegjës paketash" msgstr "Mbaroi koha teksa pritej për përgjegjës paketash"
@ -8648,6 +8652,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "gabim"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8864,11 +8874,11 @@ msgstr ""
"Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. " "Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. "
"Aplikacioni mund të instalohet sërish nga e para." "Aplikacioni mund të instalohet sërish nga e para."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Rregullim i pandryshuar" msgstr "Rregullim i pandryshuar"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "para çinstalimit të {app_id}" msgstr "para çinstalimit të {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Izvorna stranica"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "KutijaSlobode" msgstr "KutijaSlobode"
@ -107,6 +107,10 @@ msgstr "Jezik za web interfejs"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Koristi jezik podešen u pretraživaču" msgstr "Koristi jezik podešen u pretraživaču"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1725,13 +1729,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1740,19 +1744,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2035,17 +2039,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2960,7 +2964,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2970,14 +2974,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3459,15 +3463,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7366,34 +7370,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7629,6 +7633,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7822,11 +7830,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-09-08 18:24+0000\n" "PO-Revision-Date: 2023-09-08 18:24+0000\n"
"Last-Translator: bittin1ddc447d824349b2 <bittin@reimu.nl>\n" "Last-Translator: bittin1ddc447d824349b2 <bittin@reimu.nl>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Sidkälla"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Statisk konfiguration {etc_path} är inställd korrekt" msgstr "Statisk konfiguration {etc_path} är inställd korrekt"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "Språk att använda för att presentera detta webbgränssnitt"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Använd språkinställningen i webbläsaren" msgstr "Använd språkinställningen i webbläsaren"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP-server" msgstr "Apache HTTP-server"
@ -1815,7 +1819,7 @@ msgstr "Servern vägrade anslutning"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Redan uppdaterad" msgstr "Redan uppdaterad"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1823,7 +1827,7 @@ msgstr ""
"XMPP är en öppen och standardiserad kommunikationsprotokoll. Här kan du köra " "XMPP är en öppen och standardiserad kommunikationsprotokoll. Här kan du köra "
"din XMPP-server (kallad ejabberd)." "din XMPP-server (kallad ejabberd)."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1837,7 +1841,7 @@ msgstr ""
"kan ejabberd nås av alla <a href=\"{users_url}\"> användare med en " "kan ejabberd nås av alla <a href=\"{users_url}\"> användare med en "
"{box_name} inloggning</a>." "{box_name} inloggning</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1846,12 +1850,12 @@ msgstr ""
"ejabberd behöver en STUN/TURN-server för ljud-/videosamtal. Installera appen " "ejabberd behöver en STUN/TURN-server för ljud-/videosamtal. Installera appen "
"<a href=\"{coturn_url}\">Coturn</a> eller konfigurera en extern server." "<a href=\"{coturn_url}\">Coturn</a> eller konfigurera en extern server."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabbert" msgstr "ejabbert"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Chat-Server" msgstr "Chat-Server"
@ -2168,17 +2172,17 @@ msgstr "Firewall backend är Nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Direkt genomgående regler finns" msgstr "Direkt genomgående regler finns"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Port {name} ({details}) tillgängligt för interna nätverk" msgstr "Port {name} ({details}) tillgängligt för interna nätverk"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Port {name} ({details}) tillgängligt för externa nätverk" msgstr "Port {name} ({details}) tillgängligt för externa nätverk"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details}) är inte tillgängligt för externa nätverk" msgstr "Port {name} ({details}) är inte tillgängligt för externa nätverk"
@ -2549,9 +2553,9 @@ msgstr ""
"%(box_name)s är fri programvara, licenserad under GNU Affero General Public " "%(box_name)s är fri programvara, licenserad under GNU Affero General Public "
"License. Källkoden är tillgänglig online på <a href=\"https://salsa.debian." "License. Källkoden är tillgänglig online på <a href=\"https://salsa.debian."
"org/freedombox-team/freedombox\"> %(box_name)s arkiv</a>. Dessutom kan " "org/freedombox-team/freedombox\"> %(box_name)s arkiv</a>. Dessutom kan "
"källkoden för alla Debianpaket erhållas från webbplatsen <a href=\"https" "källkoden för alla Debianpaket erhållas från webbplatsen <a href=\"https://"
"://sources.debian.org/\">Debian Källkod</a> eller genom att köra \"apt " "sources.debian.org/\">Debian Källkod</a> eller genom att köra \"apt source "
"source <i>paketnamn\" </i>\" i en terminal (med Cockpit eller SSH)." "<i>paketnamn\" </i>\" i en terminal (med Cockpit eller SSH)."
#: plinth/modules/help/templates/help_about.html:82 #: plinth/modules/help/templates/help_about.html:82
#, python-format #, python-format
@ -3236,7 +3240,7 @@ msgstr "Certifikatet framgångsrikt återkallat för domänen {domain}"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Det gick inte att ta bort certifikatet för domänen {domain}: {error}" msgstr "Det gick inte att ta bort certifikatet för domänen {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3253,7 +3257,7 @@ msgstr ""
"fungera. Användare på en given Matrix-server kan samtala med användare på " "fungera. Användare på en given Matrix-server kan samtala med användare på "
"alla andra Matrix-servrar via federation." "alla andra Matrix-servrar via federation."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3262,7 +3266,7 @@ msgstr ""
"Matrix Synapse behöver en STUN/TURN-server för ljud-/videosamtal. Installera " "Matrix Synapse behöver en STUN/TURN-server för ljud-/videosamtal. Installera "
"<a href=\"{coturn_url}\">Coturn</a>-appen eller konfigurera en extern server." "<a href=\"{coturn_url}\">Coturn</a>-appen eller konfigurera en extern server."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3830,15 +3834,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Namntjänster" msgstr "Namntjänster"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Alla" msgstr "Alla"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Alla webbappar" msgstr "Alla webbappar"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Secure Shell" msgstr "Secure Shell"
@ -7179,8 +7183,8 @@ msgid ""
msgstr "" msgstr ""
"Utöver webbgränssnittet kan mobila och stationära appar också användas för " "Utöver webbgränssnittet kan mobila och stationära appar också användas för "
"att fjärrstyra överföring på {box_name}. För att konfigurera " "att fjärrstyra överföring på {box_name}. För att konfigurera "
"fjärrkontrollappar, använd URL:en <a href=\"/transmission-remote/rpc\"" "fjärrkontrollappar, använd URL:en <a href=\"/transmission-remote/rpc\">/"
">/transmission-remote/rpc</a>." "transmission-remote/rpc</a>."
#: plinth/modules/transmission/__init__.py:44 #: plinth/modules/transmission/__init__.py:44
#, python-brace-format #, python-brace-format
@ -8301,34 +8305,34 @@ msgstr "Väntar på att starta: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Avslutad: {name}" msgstr "Avslutad: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Paket {expression} är inte tillgänglig för installation" msgstr "Paket {expression} är inte tillgänglig för installation"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Paketet {package_name} är den senaste versionen ({latest_version})" msgstr "Paketet {package_name} är den senaste versionen ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "Installera" msgstr "Installera"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "ladda ner" msgstr "ladda ner"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "Mediabyte" msgstr "Mediabyte"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "konfigurationsfil: {file}" msgstr "konfigurationsfil: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Timeout väntar på pakethanteraren" msgstr "Timeout väntar på pakethanteraren"
@ -8563,6 +8567,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "Rpm:" msgstr "Rpm:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "fel"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8781,11 +8791,11 @@ msgstr ""
"All appdata och konfiguration kommer att gå förlorad permanent. Appen kan " "All appdata och konfiguration kommer att gå förlorad permanent. Appen kan "
"installeras på nytt igen." "installeras på nytt igen."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Instänllningar oförändrade" msgstr "Instänllningar oförändrade"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "innan du avinstallerar {app_id}" msgstr "innan du avinstallerar {app_id}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,7 +27,7 @@ msgstr ""
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -102,6 +102,10 @@ msgstr ""
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "" msgstr ""
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "" msgstr ""
@ -1637,13 +1641,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1652,19 +1656,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -1941,17 +1945,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2866,7 +2870,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2876,14 +2880,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3355,15 +3359,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7226,34 +7230,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7477,6 +7481,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7664,11 +7672,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-03-02 12:27+0000\n" "PO-Revision-Date: 2022-03-02 12:27+0000\n"
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n" "Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "పుట ఆధారం"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ఫ్రీడంబాక్స్" msgstr "ఫ్రీడంబాక్స్"
@ -109,6 +109,10 @@ msgstr "ఈ జాల అంతరవర్తి కోసం వాడాల
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "బ్రౌజర్లో ఉన్న భాషాప్రాధాన్యతనే ఉపయోగించు" msgstr "బ్రౌజర్లో ఉన్న భాషాప్రాధాన్యతనే ఉపయోగించు"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "అపాచీ HTTP సేవిక" msgstr "అపాచీ HTTP సేవిక"
@ -1772,7 +1776,7 @@ msgstr "సర్వర్ కనెక్షన్ నిరాకరించ
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "ఇప్పటికే తాజాగా ఉంది" msgstr "ఇప్పటికే తాజాగా ఉంది"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1780,7 +1784,7 @@ msgstr ""
"XMPP ఓపెన్ మరియు ప్రామాణికమైన కమ్యూనికేషన్ ప్రోటోకాల్. ఇక్కడ మీరు మీ XMPP సర్వర్ ని రూపకరణ మరియు " "XMPP ఓపెన్ మరియు ప్రామాణికమైన కమ్యూనికేషన్ ప్రోటోకాల్. ఇక్కడ మీరు మీ XMPP సర్వర్ ని రూపకరణ మరియు "
"అమలు చేయగలరు ejabberd అని ఆకృతీకరించవచ్చు." "అమలు చేయగలరు ejabberd అని ఆకృతీకరించవచ్చు."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1793,7 +1797,7 @@ msgstr ""
"XMPP క్లయింట్</a>. ప్రారంభించబడినప్పుడు, ejabberdని ఏ <a href=\"{users_url}\"> " "XMPP క్లయింట్</a>. ప్రారంభించబడినప్పుడు, ejabberdని ఏ <a href=\"{users_url}\"> "
"వినియోగదారు అయినా {box_name} లాగిన్‌తో</a> యాక్సెస్ చేయవచ్చు." "వినియోగదారు అయినా {box_name} లాగిన్‌తో</a> యాక్సెస్ చేయవచ్చు."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, fuzzy, python-brace-format #, fuzzy, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1802,12 +1806,12 @@ msgstr ""
"ejabberd కి శ్రావణ /దృశ్యం కాల్ల కోసం stun /turn సేవిక అవసరం. కార్యక్షేత్రం ను నెలకొల్పడం " "ejabberd కి శ్రావణ /దృశ్యం కాల్ల కోసం stun /turn సేవిక అవసరం. కార్యక్షేత్రం ను నెలకొల్పడం "
"చేయండి లేదా బాహ్య సేవిక ను రూపకారణం చేయండి {coturn_url}" "చేయండి లేదా బాహ్య సేవిక ను రూపకారణం చేయండి {coturn_url}"
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ఈజాబ్బర్డి" msgstr "ఈజాబ్బర్డి"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "కబుర్ల సేవిక" msgstr "కబుర్ల సేవిక"
@ -2107,17 +2111,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది" msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది" msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Port {name} ({details})బాహ్య నెట్‌వర్క్‌లకు అందుబాటులో లేదు" msgstr "Port {name} ({details})బాహ్య నెట్‌వర్క్‌లకు అందుబాటులో లేదు"
@ -3144,7 +3148,7 @@ msgstr "{domain} డోమైన్ కొరకు సర్టిఫికే
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "{domain} డోమైన్ కొరకు ధృవీకరణపత్రం నిర్మూలించడంలో విఫలం: {error}" msgstr "{domain} డోమైన్ కొరకు ధృవీకరణపత్రం నిర్మూలించడంలో విఫలం: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3159,7 +3163,7 @@ msgstr ""
"అందిస్తుంది మరియు పని చేయడానికి ఫోన్ నంబర్‌లు అవసరం లేదు. ఇచ్చిన మ్యాట్రిక్స్ సర్వర్‌లోని వినియోగదారులు " "అందిస్తుంది మరియు పని చేయడానికి ఫోన్ నంబర్‌లు అవసరం లేదు. ఇచ్చిన మ్యాట్రిక్స్ సర్వర్‌లోని వినియోగదారులు "
"ఫెడరేషన్ ద్వారా అన్ని ఇతర మ్యాట్రిక్స్ సర్వర్‌లలోని వినియోగదారులతో సంభాషించవచ్చు." "ఫెడరేషన్ ద్వారా అన్ని ఇతర మ్యాట్రిక్స్ సర్వర్‌లలోని వినియోగదారులతో సంభాషించవచ్చు."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3168,7 +3172,7 @@ msgstr ""
"Matrix Synapseకి ఆడియో/వీడియో కాల్‌ల కోసం STUN/TURN సర్వర్ అవసరం.<a " "Matrix Synapseకి ఆడియో/వీడియో కాల్‌ల కోసం STUN/TURN సర్వర్ అవసరం.<a "
"href=\"{coturn_url}\">Coturn</a> యాప్‌ను ఇన్‌స్టాల్ చేయండి లేదా బాహ్య సర్వర్‌ను కాన్ఫిగర్ చేయండి." "href=\"{coturn_url}\">Coturn</a> యాప్‌ను ఇన్‌స్టాల్ చేయండి లేదా బాహ్య సర్వర్‌ను కాన్ఫిగర్ చేయండి."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "మ్యాట్రిక్స్ సినాప్స్" msgstr "మ్యాట్రిక్స్ సినాప్స్"
@ -3742,15 +3746,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "పేరు సేవలు" msgstr "పేరు సేవలు"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "అన్నీ" msgstr "అన్నీ"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "అన్నీ వెబ్ యాప్‌లు" msgstr "అన్నీ వెబ్ యాప్‌లు"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "సెక్యూర్ షెల్" msgstr "సెక్యూర్ షెల్"
@ -8085,34 +8089,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "సేవ నిలిపివేయబడింది: {name}" msgstr "సేవ నిలిపివేయబడింది: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "ప్యాకేజీ {package_name} తాజా వెర్షన్ ({latest_version})" msgstr "ప్యాకేజీ {package_name} తాజా వెర్షన్ ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "వ్యవస్థాపిస్తోంది" msgstr "వ్యవస్థాపిస్తోంది"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "దిగుమతి అవుతోంది" msgstr "దిగుమతి అవుతోంది"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "ప్రసార మాధ్యమం మార్పు" msgstr "ప్రసార మాధ్యమం మార్పు"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "ఆకృతీకరణ ఫైలు: {file}" msgstr "ఆకృతీకరణ ఫైలు: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -8364,6 +8368,12 @@ msgstr "హోమ్ బ్రూ:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "లోపం"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8581,11 +8591,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "మారకుండా అమర్చుతోంది" msgstr "మారకుండా అమర్చుతోంది"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-31 19:50+0000\n" "PO-Revision-Date: 2023-08-31 19:50+0000\n"
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n" "Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
@ -27,7 +27,7 @@ msgstr "Sayfa kaynağı"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Sabit yapılandırma {etc_path} düzgün bir şekilde ayarlanmış" msgstr "Sabit yapılandırma {etc_path} düzgün bir şekilde ayarlanmış"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -107,6 +107,10 @@ msgstr "Bu web arayüzünü sunmak için kullanılacak dil"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Tarayıcıda ayarlanan dil tercihini kullan" msgstr "Tarayıcıda ayarlanan dil tercihini kullan"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP Sunucusu" msgstr "Apache HTTP Sunucusu"
@ -1810,7 +1814,7 @@ msgstr "Sunucu bağlantıyı reddetti"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Zaten güncel" msgstr "Zaten güncel"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1818,7 +1822,7 @@ msgstr ""
"XMPP, açık ve standartlaştırılmış bir iletişim protokolüdür. Burada ejabberd " "XMPP, açık ve standartlaştırılmış bir iletişim protokolüdür. Burada ejabberd "
"adı verilen XMPP sunucunuzu çalıştırabilir ve yapılandırabilirsiniz." "adı verilen XMPP sunucunuzu çalıştırabilir ve yapılandırabilirsiniz."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1832,7 +1836,7 @@ msgstr ""
"Etkinleştirildiğinde, ejabberd'e <a href=\"{users_url}\">{box_name} oturum " "Etkinleştirildiğinde, ejabberd'e <a href=\"{users_url}\">{box_name} oturum "
"açma adı ile herhangi bir kullanıcı</a> tarafından erişilebilir." "açma adı ile herhangi bir kullanıcı</a> tarafından erişilebilir."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1842,12 +1846,12 @@ msgstr ""
"duyar. <a href=\"{coturn_url}\">Coturn</a> uygulamasını yükleyin veya harici " "duyar. <a href=\"{coturn_url}\">Coturn</a> uygulamasını yükleyin veya harici "
"bir sunucu yapılandırın." "bir sunucu yapılandırın."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Sohbet Sunucusu" msgstr "Sohbet Sunucusu"
@ -2168,17 +2172,17 @@ msgstr "Güvenlik duvarı arka ucu nftablesdır"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Doğrudan geçiş kuralları mevcut" msgstr "Doğrudan geçiş kuralları mevcut"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Dahili ağlar için {name} ({details}) bağlantı noktası kullanılabilir" msgstr "Dahili ağlar için {name} ({details}) bağlantı noktası kullanılabilir"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılabilir" msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılabilir"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılamaz" msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılamaz"
@ -3239,7 +3243,7 @@ msgstr "{domain} etki alanı için sertifika başarılı olarak silindi"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "{domain} etki alanı için sertifika silme başarısız oldu: {error}" msgstr "{domain} etki alanı için sertifika silme başarısız oldu: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3256,7 +3260,7 @@ msgstr ""
"kullanıcılar, federasyon aracılığıyla diğer tüm Matrix sunucularındaki " "kullanıcılar, federasyon aracılığıyla diğer tüm Matrix sunucularındaki "
"kullanıcılarla sohbet edebilir." "kullanıcılarla sohbet edebilir."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3266,7 +3270,7 @@ msgstr ""
"ihtiyaç duyar. <a href={coturn_url}>Coturn</a> uygulamasını yükleyin veya " "ihtiyaç duyar. <a href={coturn_url}>Coturn</a> uygulamasını yükleyin veya "
"harici bir sunucu yapılandırın." "harici bir sunucu yapılandırın."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3840,15 +3844,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Ad Hizmetleri" msgstr "Ad Hizmetleri"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Tümü" msgstr "Tümü"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Tüm web uygulamaları" msgstr "Tüm web uygulamaları"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Güvenli Kabuk" msgstr "Güvenli Kabuk"
@ -8318,34 +8322,34 @@ msgstr "Başlamak için bekleniyor: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Tamamlandı: {name}" msgstr "Tamamlandı: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "{expression} paketi yükleme için mevcut değil" msgstr "{expression} paketi yükleme için mevcut değil"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "{package_name} paketi en son sürümdür ({latest_version})" msgstr "{package_name} paketi en son sürümdür ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "yükleniyor" msgstr "yükleniyor"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "indiriliyor" msgstr "indiriliyor"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "ortam değiştirme" msgstr "ortam değiştirme"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "yapılandırma dosyası: {file}" msgstr "yapılandırma dosyası: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Paket yöneticisini beklerken zaman aşımı oldu" msgstr "Paket yöneticisini beklerken zaman aşımı oldu"
@ -8581,6 +8585,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "hata"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8796,11 +8806,11 @@ msgstr ""
"Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. " "Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. "
"Uygulama tekrar yeni olarak yüklenebilir." "Uygulama tekrar yeni olarak yüklenebilir."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Ayar değişmedi" msgstr "Ayar değişmedi"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "{app_id} kaldırılmadan önce" msgstr "{app_id} kaldırılmadan önce"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2023-08-31 19:50+0000\n" "PO-Revision-Date: 2023-08-31 19:50+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n" "Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Джерело сторінки"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "Статична конфігурація {etc_path} налаштована належним чином" msgstr "Статична конфігурація {etc_path} налаштована належним чином"
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -108,6 +108,10 @@ msgstr "Мова, що використовується для надання ц
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Використовувати мовні налаштування оглядача" msgstr "Використовувати мовні налаштування оглядача"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Сервер HTTP Apache" msgstr "Сервер HTTP Apache"
@ -1821,7 +1825,7 @@ msgstr "Сервер відмовив у зʼєднанні"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "Вже оновлено" msgstr "Вже оновлено"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1829,7 +1833,7 @@ msgstr ""
"XMPP це відкритий і стандартизований протокол спілкування. Тут Ви можете " "XMPP це відкритий і стандартизований протокол спілкування. Тут Ви можете "
"запустити і налаштувати свій XMPP-сервер ejabberd." "запустити і налаштувати свій XMPP-сервер ejabberd."
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1843,7 +1847,7 @@ msgstr ""
"ejabberd зможе <a href=\"{users_url}\">будь-який користувач із логіном " "ejabberd зможе <a href=\"{users_url}\">будь-який користувач із логіном "
"{box_name}</a>." "{box_name}</a>."
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1853,12 +1857,12 @@ msgstr ""
"застосунок <a href=\"{coturn_url}\">Coturn</a> або налаштуйте зовнішній " "застосунок <a href=\"{coturn_url}\">Coturn</a> або налаштуйте зовнішній "
"сервер." "сервер."
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "Сервер чату" msgstr "Сервер чату"
@ -2176,17 +2180,17 @@ msgstr "Серверна частина брандмауера - nftables"
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "Існують правила прямого переходу" msgstr "Існують правила прямого переходу"
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "Порт {name} ({details}) доступний для внутрішніх мереж" msgstr "Порт {name} ({details}) доступний для внутрішніх мереж"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "Порт {name} ({details}) доступний для зовнішніх мереж" msgstr "Порт {name} ({details}) доступний для зовнішніх мереж"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "Порт {name} ({details}) недоступний для зовнішніх мереж" msgstr "Порт {name} ({details}) недоступний для зовнішніх мереж"
@ -3246,7 +3250,7 @@ msgstr "Сертифікат успішно видалено для домену
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "Не вдалося видалити сертифікат для домену {domain}: {error}" msgstr "Не вдалося видалити сертифікат для домену {domain}: {error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3263,7 +3267,7 @@ msgstr ""
"можуть спілкуватися з користувачами на інших серверах Matrix через " "можуть спілкуватися з користувачами на інших серверах Matrix через "
"федеративність." "федеративність."
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
@ -3273,7 +3277,7 @@ msgstr ""
"Встановіть програму <a href=\"{coturn_url}\">Coturn</a> або налаштуйте " "Встановіть програму <a href=\"{coturn_url}\">Coturn</a> або налаштуйте "
"зовнішній сервер." "зовнішній сервер."
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3845,15 +3849,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "Назва сервісів" msgstr "Назва сервісів"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "Усі" msgstr "Усі"
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "Усі вебзастосунки" msgstr "Усі вебзастосунки"
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "Захищена оболонка" msgstr "Захищена оболонка"
@ -8310,34 +8314,34 @@ msgstr "Очікування запуску: {name}"
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "Завершено: {name}" msgstr "Завершено: {name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "Пакунок {expression} недоступний для встановлення" msgstr "Пакунок {expression} недоступний для встановлення"
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Пакунок {package_name} має останню версію ({latest_version})" msgstr "Пакунок {package_name} має останню версію ({latest_version})"
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "встановлення" msgstr "встановлення"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "завантаження" msgstr "завантаження"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "зміна медія" msgstr "зміна медія"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "файл конфіґурації: {file}" msgstr "файл конфіґурації: {file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "Час очікування менеджера пакунків" msgstr "Час очікування менеджера пакунків"
@ -8572,6 +8576,12 @@ msgstr "Homebrew:"
msgid "RPM:" msgid "RPM:"
msgstr "RPM:" msgstr "RPM:"
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "помилка"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -8788,11 +8798,11 @@ msgstr ""
"Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна " "Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна "
"встановити начисто ще раз." "встановити начисто ще раз."
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Налаштування не змінено" msgstr "Налаштування не змінено"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "перед видаленням {app_id}" msgstr "перед видаленням {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-07-28 08:34+0000\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n"
"Last-Translator: bruh <quangtrung02hn16@gmail.com>\n" "Last-Translator: bruh <quangtrung02hn16@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/freedombox/" "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" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -109,6 +109,10 @@ msgstr "Ngôn ngữ để sử dụng cho giao diện web"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "Sử dụng cài đặt ngôn ngữ của trình duyệt" msgstr "Sử dụng cài đặt ngôn ngữ của trình duyệt"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Máy chủ HTTP Apache" msgstr "Máy chủ HTTP Apache"
@ -1844,13 +1848,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1859,19 +1863,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2166,17 +2170,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3091,7 +3095,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3101,14 +3105,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3596,15 +3600,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7489,34 +7493,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7752,6 +7756,12 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "lỗi"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7946,11 +7956,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Plinth\n" "Project-Id-Version: Plinth\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2022-12-07 20:48+0000\n" "PO-Revision-Date: 2022-12-07 20:48+0000\n"
"Last-Translator: Eric <hamburger1024@duck.com>\n" "Last-Translator: Eric <hamburger1024@duck.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
@ -28,7 +28,7 @@ msgstr "来源页面"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -103,6 +103,10 @@ msgstr "此 web 管理界面的语言"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "使用浏览器中设置的语言首选项" msgstr "使用浏览器中设置的语言首选项"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP 服务" msgstr "Apache HTTP 服务"
@ -1730,7 +1734,7 @@ msgstr "服务器拒绝连接"
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "已是最新" msgstr "已是最新"
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
@ -1738,7 +1742,7 @@ msgstr ""
"XMPP 是一种开放标准的通信协议。在这里你可以运行并配置您的 XMPP 服务器,称为 " "XMPP 是一种开放标准的通信协议。在这里你可以运行并配置您的 XMPP 服务器,称为 "
"ejabberd。" "ejabberd。"
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1751,7 +1755,7 @@ msgstr ""
"a>。启用后,任何有 <a href=\"{users_url}\"> {box_name} 登录的用户</a>均可访" "a>。启用后,任何有 <a href=\"{users_url}\"> {box_name} 登录的用户</a>均可访"
"问 ejabberd。" "问 ejabberd。"
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
@ -1760,12 +1764,12 @@ msgstr ""
"ejabberd需要一个STUN/TURN服务器用于音频/视频呼叫。安装<a " "ejabberd需要一个STUN/TURN服务器用于音频/视频呼叫。安装<a "
"href=\"{coturn_url}\">Coturn</a>应用程序或配置一个外部服务器。" "href=\"{coturn_url}\">Coturn</a>应用程序或配置一个外部服务器。"
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "ejabberd" msgstr "ejabberd"
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "聊天服务器" msgstr "聊天服务器"
@ -2054,17 +2058,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "内网端口 {name}{details})可用" msgstr "内网端口 {name}{details})可用"
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "外网端口 {name}{details})可用" msgstr "外网端口 {name}{details})可用"
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -3022,7 +3026,7 @@ msgstr "成功删除域名 {domain} 的证书"
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "删除 {domain} 域名证书失败:{error}" msgstr "删除 {domain} 域名证书失败:{error}"
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -3032,14 +3036,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "Matrix Synapse" msgstr "Matrix Synapse"
@ -3528,15 +3532,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "名称服务" msgstr "名称服务"
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "安全 Shell" msgstr "安全 Shell"
@ -7518,34 +7522,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "已完成:{name}" msgstr "已完成:{name}"
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "安装" msgstr "安装"
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "下载中" msgstr "下载中"
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "媒体改变" msgstr "媒体改变"
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "配置文件:{file}" msgstr "配置文件:{file}"
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7776,6 +7780,12 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
#, fuzzy
#| msgid "error"
msgid "Error"
msgstr "错误"
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7974,11 +7984,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "设置未改变" msgstr "设置未改变"
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-28 20:05-0400\n" "POT-Creation-Date: 2023-09-25 20:14-0400\n"
"PO-Revision-Date: 2021-12-23 12:50+0000\n" "PO-Revision-Date: 2021-12-23 12:50+0000\n"
"Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n" "Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
@ -28,7 +28,7 @@ msgstr "來源頁面"
msgid "Static configuration {etc_path} is setup properly" msgid "Static configuration {etc_path} is setup properly"
msgstr "" msgstr ""
#: plinth/context_processors.py:23 plinth/views.py:94 #: plinth/context_processors.py:23 plinth/views.py:95
msgid "FreedomBox" msgid "FreedomBox"
msgstr "自由盒子" msgstr "自由盒子"
@ -105,6 +105,10 @@ msgstr "此網頁介面顯示的語言"
msgid "Use the language preference set in the browser" msgid "Use the language preference set in the browser"
msgstr "使用瀏覽器語言設定" msgstr "使用瀏覽器語言設定"
#: plinth/middleware.py:130
msgid "System is possibly under heavy load. Please retry later."
msgstr ""
#: plinth/modules/apache/__init__.py:32 #: plinth/modules/apache/__init__.py:32
msgid "Apache HTTP Server" msgid "Apache HTTP Server"
msgstr "Apache HTTP 伺服器" msgstr "Apache HTTP 伺服器"
@ -1725,13 +1729,13 @@ msgstr ""
msgid "Already up-to-date" msgid "Already up-to-date"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:30 #: plinth/modules/ejabberd/__init__.py:29
msgid "" msgid ""
"XMPP is an open and standardized communication protocol. Here you can run " "XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd." "and configure your XMPP server, called ejabberd."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:33 #: plinth/modules/ejabberd/__init__.py:32
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</" "To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
@ -1740,19 +1744,19 @@ msgid ""
"any <a href=\"{users_url}\"> user with a {box_name} login</a>." "any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:41 #: plinth/modules/ejabberd/__init__.py:40
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a " "ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server." "href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:62 #: plinth/modules/ejabberd/__init__.py:61
msgid "ejabberd" msgid "ejabberd"
msgstr "" msgstr ""
#: plinth/modules/ejabberd/__init__.py:63 #: plinth/modules/ejabberd/__init__.py:62
#: plinth/modules/matrixsynapse/__init__.py:57 #: plinth/modules/matrixsynapse/__init__.py:56
msgid "Chat Server" msgid "Chat Server"
msgstr "" msgstr ""
@ -2045,17 +2049,17 @@ msgstr ""
msgid "Direct passthrough rules exist" msgid "Direct passthrough rules exist"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:134 #: plinth/modules/firewall/components.py:135
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for internal networks" msgid "Port {name} ({details}) available for internal networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:142 #: plinth/modules/firewall/components.py:143
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) available for external networks" msgid "Port {name} ({details}) available for external networks"
msgstr "" msgstr ""
#: plinth/modules/firewall/components.py:147 #: plinth/modules/firewall/components.py:148
#, python-brace-format #, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks" msgid "Port {name} ({details}) unavailable for external networks"
msgstr "" msgstr ""
@ -2970,7 +2974,7 @@ msgstr ""
msgid "Failed to delete certificate for domain {domain}: {error}" msgid "Failed to delete certificate for domain {domain}: {error}"
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:27 #: plinth/modules/matrixsynapse/__init__.py:26
msgid "" msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new " "<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a " "ecosystem for open, federated instant messaging and VoIP. Synapse is a "
@ -2980,14 +2984,14 @@ msgid ""
"converse with users on all other Matrix servers via federation." "converse with users on all other Matrix servers via federation."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:35 #: plinth/modules/matrixsynapse/__init__.py:34
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server." "<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr "" msgstr ""
#: plinth/modules/matrixsynapse/__init__.py:56 #: plinth/modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse" msgid "Matrix Synapse"
msgstr "" msgstr ""
@ -3471,15 +3475,15 @@ msgstr ""
msgid "Name Services" msgid "Name Services"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:12 #: plinth/modules/names/components.py:14
msgid "All" msgid "All"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 #: plinth/modules/names/components.py:18 plinth/modules/names/components.py:22
msgid "All web apps" msgid "All web apps"
msgstr "" msgstr ""
#: plinth/modules/names/components.py:24 #: plinth/modules/names/components.py:26
msgid "Secure Shell" msgid "Secure Shell"
msgstr "" msgstr ""
@ -7361,34 +7365,34 @@ msgstr ""
msgid "Finished: {name}" msgid "Finished: {name}"
msgstr "" msgstr ""
#: plinth/package.py:212 #: plinth/package.py:211
#, python-brace-format #, python-brace-format
msgid "Package {expression} is not available for install" msgid "Package {expression} is not available for install"
msgstr "" msgstr ""
#: plinth/package.py:225 #: plinth/package.py:224
#, python-brace-format #, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})" msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "" msgstr ""
#: plinth/package.py:373 #: plinth/package.py:372
msgid "installing" msgid "installing"
msgstr "" msgstr ""
#: plinth/package.py:375 #: plinth/package.py:374
msgid "downloading" msgid "downloading"
msgstr "" msgstr ""
#: plinth/package.py:377 #: plinth/package.py:376
msgid "media change" msgid "media change"
msgstr "" msgstr ""
#: plinth/package.py:379 #: plinth/package.py:378
#, python-brace-format #, python-brace-format
msgid "configuration file: {file}" msgid "configuration file: {file}"
msgstr "" msgstr ""
#: plinth/package.py:407 plinth/package.py:432 #: plinth/package.py:406 plinth/package.py:431
msgid "Timeout waiting for package manager" msgid "Timeout waiting for package manager"
msgstr "" msgstr ""
@ -7624,6 +7628,10 @@ msgstr ""
msgid "RPM:" msgid "RPM:"
msgstr "" msgstr ""
#: plinth/templates/error.html:10
msgid "Error"
msgstr ""
#: plinth/templates/first_setup.html:18 #: plinth/templates/first_setup.html:18
#, python-format #, python-format
msgid "" msgid ""
@ -7817,11 +7825,11 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:241 #: plinth/views.py:242
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:478 #: plinth/views.py:479
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -1,5 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
from typing import ClassVar
from django.urls import reverse_lazy from django.urls import reverse_lazy
from plinth import app from plinth import app
@ -8,7 +10,7 @@ from plinth import app
class Menu(app.FollowerComponent): class Menu(app.FollowerComponent):
"""Component to manage a single menu item.""" """Component to manage a single menu item."""
_all_menus = set() _all_menus: ClassVar[set['Menu']] = set()
def __init__(self, component_id, name=None, short_description=None, def __init__(self, component_id, name=None, short_description=None,
icon=None, url_name=None, url_args=None, url_kwargs=None, icon=None, url_name=None, url_args=None, url_kwargs=None,

View File

@ -10,8 +10,11 @@ from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db.utils import OperationalError
from django.shortcuts import render from django.shortcuts import render
from django.template.response import SimpleTemplateResponse
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
from django.utils.translation import gettext as _
from stronghold.utils import is_view_func_public from stronghold.utils import is_view_func_public
from plinth import app as app_module from plinth import app as app_module
@ -114,3 +117,19 @@ class FirstSetupMiddleware(MiddlewareMixin):
'refresh_page_sec': 3 'refresh_page_sec': 3
} }
return render(request, 'first_setup.html', context) return render(request, 'first_setup.html', context)
class CommonErrorMiddleware(MiddlewareMixin):
"""Django middleware to handle common errors."""
@staticmethod
def process_exception(request, exception):
"""Show a custom error page when OperationalError is raised."""
if isinstance(exception, OperationalError):
message = _(
'System is possibly under heavy load. Please retry later.')
return SimpleTemplateResponse('error.html',
context={'message': message},
status=503)
return None

View File

@ -17,7 +17,7 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [] dependencies: list = []
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(

View File

@ -8,7 +8,6 @@ import importlib
import logging import logging
import pathlib import pathlib
import re import re
from typing import Optional
import django import django
@ -142,8 +141,7 @@ def get_module_import_path(module_name: str) -> str:
return import_path return import_path
def _read_module_import_paths_from_file( def _read_module_import_paths_from_file(file_path: pathlib.Path) -> str | None:
file_path: pathlib.Path) -> Optional[str]:
"""Read a module's import path from a file.""" """Read a module's import path from a file."""
with file_path.open() as file_handle: with file_path.open() as file_handle:
for line in file_handle: for line in file_handle:

View File

@ -3,4 +3,4 @@
URLs for the Apache module. URLs for the Apache module.
""" """
urlpatterns = [] urlpatterns: list = []

View File

@ -7,4 +7,4 @@ Application manifest for avahi.
# /etc/avahi/services. Currently, we don't intend to make that customizable. # /etc/avahi/services. Currently, we don't intend to make that customizable.
# There is no necessity for backup and restore. This manifest will ensure that # There is no necessity for backup and restore. This manifest will ensure that
# avahi enable/disable setting is preserved. # avahi enable/disable setting is preserved.
backup = {} backup: dict = {}

View File

@ -6,4 +6,4 @@ Application manifest for backups.
# Currently, backup application does not have any settings. However, settings # Currently, backup application does not have any settings. However, settings
# such as scheduler settings, backup location, secrets to connect to remove # such as scheduler settings, backup location, secrets to connect to remove
# servers need to be backed up. # servers need to be backed up.
backup = {} backup: dict = {}

View File

@ -7,7 +7,6 @@ import pathlib
import re import re
import subprocess import subprocess
import tarfile import tarfile
from typing import Optional, Union
from plinth.actions import privileged from plinth.actions import privileged
from plinth.utils import Version from plinth.utils import Version
@ -22,8 +21,8 @@ class AlreadyMountedError(Exception):
@privileged @privileged
def mount(mountpoint: str, remote_path: str, ssh_keyfile: Optional[str] = None, def mount(mountpoint: str, remote_path: str, ssh_keyfile: str | None = None,
password: Optional[str] = None, password: str | None = None,
user_known_hosts_file: str = '/dev/null'): user_known_hosts_file: str = '/dev/null'):
"""Mount a remote ssh path via sshfs.""" """Mount a remote ssh path via sshfs."""
try: try:
@ -31,7 +30,7 @@ def mount(mountpoint: str, remote_path: str, ssh_keyfile: Optional[str] = None,
except AlreadyMountedError: except AlreadyMountedError:
return return
kwargs = {} input_ = None
# the shell would expand ~/ to the local home directory # the shell would expand ~/ to the local home directory
remote_path = remote_path.replace('~/', '').replace('~', '') remote_path = remote_path.replace('~/', '').replace('~', '')
# 'reconnect', 'ServerAliveInternal' and 'ServerAliveCountMax' allow the # 'reconnect', 'ServerAliveInternal' and 'ServerAliveCountMax' allow the
@ -55,9 +54,9 @@ def mount(mountpoint: str, remote_path: str, ssh_keyfile: Optional[str] = None,
if not password: if not password:
raise ValueError('mount requires either a password or ssh_keyfile') raise ValueError('mount requires either a password or ssh_keyfile')
cmd += ['-o', 'password_stdin'] cmd += ['-o', 'password_stdin']
kwargs['input'] = password.encode() input_ = password.encode()
subprocess.run(cmd, check=True, timeout=TIMEOUT, **kwargs) subprocess.run(cmd, check=True, timeout=TIMEOUT, input=input_)
@privileged @privileged
@ -110,7 +109,7 @@ def setup(path: str):
def _init_repository(path: str, encryption: str, def _init_repository(path: str, encryption: str,
encryption_passphrase: Optional[str] = None): encryption_passphrase: str | None = None):
"""Initialize a local or remote borg repository.""" """Initialize a local or remote borg repository."""
if encryption != 'none': if encryption != 'none':
if not encryption_passphrase: if not encryption_passphrase:
@ -121,14 +120,13 @@ def _init_repository(path: str, encryption: str,
@privileged @privileged
def init(path: str, encryption: str, def init(path: str, encryption: str, encryption_passphrase: str | None = None):
encryption_passphrase: Optional[str] = None):
"""Initialize the borg repository.""" """Initialize the borg repository."""
_init_repository(path, encryption, encryption_passphrase) _init_repository(path, encryption, encryption_passphrase)
@privileged @privileged
def info(path: str, encryption_passphrase: Optional[str] = None) -> dict: def info(path: str, encryption_passphrase: str | None = None) -> dict:
"""Show repository information.""" """Show repository information."""
process = _run(['borg', 'info', '--json', path], encryption_passphrase, process = _run(['borg', 'info', '--json', path], encryption_passphrase,
stdout=subprocess.PIPE) stdout=subprocess.PIPE)
@ -136,7 +134,7 @@ def info(path: str, encryption_passphrase: Optional[str] = None) -> dict:
@privileged @privileged
def list_repo(path: str, encryption_passphrase: Optional[str] = None) -> dict: def list_repo(path: str, encryption_passphrase: str | None = None) -> dict:
"""List repository contents.""" """List repository contents."""
process = _run(['borg', 'list', '--json', '--format="{comment}"', path], process = _run(['borg', 'list', '--json', '--format="{comment}"', path],
encryption_passphrase, stdout=subprocess.PIPE) encryption_passphrase, stdout=subprocess.PIPE)
@ -150,8 +148,8 @@ def _get_borg_version():
@privileged @privileged
def create_archive(path: str, paths: list[str], comment: Optional[str] = None, def create_archive(path: str, paths: list[str], comment: str | None = None,
encryption_passphrase: Optional[str] = None): encryption_passphrase: str | None = None):
"""Create archive.""" """Create archive."""
existing_paths = filter(os.path.exists, paths) existing_paths = filter(os.path.exists, paths)
command = ['borg', 'create', '--json'] command = ['borg', 'create', '--json']
@ -169,7 +167,7 @@ def create_archive(path: str, paths: list[str], comment: Optional[str] = None,
@privileged @privileged
def delete_archive(path: str, encryption_passphrase: Optional[str] = None): def delete_archive(path: str, encryption_passphrase: str | None = None):
"""Delete archive.""" """Delete archive."""
_run(['borg', 'delete', path], encryption_passphrase) _run(['borg', 'delete', path], encryption_passphrase)
@ -199,7 +197,7 @@ def _extract(archive_path, destination, encryption_passphrase, locations=None):
@privileged @privileged
def export_tar(path: str, encryption_passphrase: Optional[str] = None): def export_tar(path: str, encryption_passphrase: str | None = None):
"""Export archive contents as tar stream on stdout.""" """Export archive contents as tar stream on stdout."""
_run(['borg', 'export-tar', path, '-', '--tar-filter=gzip'], _run(['borg', 'export-tar', path, '-', '--tar-filter=gzip'],
encryption_passphrase) encryption_passphrase)
@ -214,7 +212,7 @@ def _read_archive_file(archive, filepath, encryption_passphrase):
@privileged @privileged
def get_archive_apps(path: str, def get_archive_apps(path: str,
encryption_passphrase: Optional[str] = None) -> list[str]: encryption_passphrase: str | None = None) -> list[str]:
"""Get list of apps included in archive.""" """Get list of apps included in archive."""
manifest_folder = os.path.relpath(MANIFESTS_FOLDER, '/') manifest_folder = os.path.relpath(MANIFESTS_FOLDER, '/')
borg_call = [ borg_call = [
@ -266,7 +264,12 @@ def get_exported_archive_apps(path: str) -> list[str]:
for name in filenames: for name in filenames:
if 'var/lib/plinth/backups-manifests/' in name \ if 'var/lib/plinth/backups-manifests/' in name \
and name.endswith('.json'): and name.endswith('.json'):
manifest_data = tar_handle.extractfile(name).read() file_handle = tar_handle.extractfile(name)
if not file_handle:
raise RuntimeError(
'Unable to extract app manifest from backup file.')
manifest_data = file_handle.read()
manifest = json.loads(manifest_data) manifest = json.loads(manifest_data)
break break
@ -281,7 +284,7 @@ def get_exported_archive_apps(path: str) -> list[str]:
@privileged @privileged
def restore_archive(archive_path: str, destination: str, def restore_archive(archive_path: str, destination: str,
directories: list[str], files: list[str], directories: list[str], files: list[str],
encryption_passphrase: Optional[str] = None): encryption_passphrase: str | None = None):
"""Restore files from an archive.""" """Restore files from an archive."""
locations_all = directories + files locations_all = directories + files
locations_all = [ locations_all = [
@ -314,8 +317,7 @@ def _assert_app_id(app_id):
@privileged @privileged
def dump_settings(app_id: str, settings: dict[str, Union[int, float, bool, def dump_settings(app_id: str, settings: dict[str, int | float | bool | str]):
str]]):
"""Dump an app's settings to a JSON file.""" """Dump an app's settings to a JSON file."""
_assert_app_id(app_id) _assert_app_id(app_id)
BACKUPS_DATA_PATH.mkdir(exist_ok=True) BACKUPS_DATA_PATH.mkdir(exist_ok=True)
@ -324,7 +326,7 @@ def dump_settings(app_id: str, settings: dict[str, Union[int, float, bool,
@privileged @privileged
def load_settings(app_id: str) -> dict[str, Union[int, float, bool, str]]: def load_settings(app_id: str) -> dict[str, int | float | bool | str]:
"""Load an app's settings from a JSON file.""" """Load an app's settings from a JSON file."""
_assert_app_id(app_id) _assert_app_id(app_id)
settings_path = BACKUPS_DATA_PATH / f'{app_id}-settings.json' settings_path = BACKUPS_DATA_PATH / f'{app_id}-settings.json'
@ -334,7 +336,7 @@ def load_settings(app_id: str) -> dict[str, Union[int, float, bool, str]]:
return {} return {}
def _get_env(encryption_passphrase: Optional[str] = None): def _get_env(encryption_passphrase: str | None = None):
"""Create encryption and ssh kwargs out of given arguments.""" """Create encryption and ssh kwargs out of given arguments."""
env = dict(os.environ, BORG_RELOCATED_REPO_ACCESS_IS_OK='yes', env = dict(os.environ, BORG_RELOCATED_REPO_ACCESS_IS_OK='yes',
LANG='C.UTF-8') LANG='C.UTF-8')

View File

@ -72,9 +72,9 @@ KNOWN_ERRORS = [
class BaseBorgRepository(abc.ABC): class BaseBorgRepository(abc.ABC):
"""Base class for all kinds of Borg repositories.""" """Base class for all kinds of Borg repositories."""
flags = {} flags: dict[str, bool] = {}
is_mounted = True is_mounted = True
known_credentials = [] known_credentials: list[str] = []
def __init__(self, path, credentials=None, uuid=None, schedule=None, def __init__(self, path, credentials=None, uuid=None, schedule=None,
**kwargs): **kwargs):

View File

@ -11,7 +11,6 @@ import secrets
import shutil import shutil
import string import string
import subprocess import subprocess
from typing import Optional
import augeas import augeas
@ -124,7 +123,7 @@ def get_configuration() -> dict[str, object]:
@privileged @privileged
def add_password(permissions: list[str], comment: Optional[str] = None): def add_password(permissions: list[str], comment: str | None = None):
"""Generate a password with given permissions.""" """Generate a password with given permissions."""
conf = conf_file_read() conf = conf_file_read()
permissions = _format_permissions(permissions) permissions = _format_permissions(permissions)

View File

@ -17,4 +17,4 @@ clients = [{
# triggered on every Plinth domain change (and cockpit application install) and # triggered on every Plinth domain change (and cockpit application install) and
# will set the value of allowed domains correctly. This is the only key the is # will set the value of allowed domains correctly. This is the only key the is
# customized in cockpit.conf. # customized in cockpit.conf.
backup = {} backup: dict = {}

View File

@ -4,7 +4,6 @@
import os import os
import pathlib import pathlib
import subprocess import subprocess
from typing import Optional
import augeas import augeas
@ -29,7 +28,7 @@ def set_hostname(hostname: str):
@privileged @privileged
def set_domainname(domainname: Optional[str] = None): def set_domainname(domainname: str | None = None):
"""Set system domainname in /etc/hosts.""" """Set system domainname in /etc/hosts."""
hostname = subprocess.check_output(['hostname']).decode().strip() hostname = subprocess.check_output(['hostname']).decode().strip()
hosts_path = pathlib.Path('/etc/hosts') hosts_path = pathlib.Path('/etc/hosts')

View File

@ -2,8 +2,6 @@
"""App component for other apps to manage their STUN/TURN server configuration. """App component for other apps to manage their STUN/TURN server configuration.
""" """
from __future__ import annotations # Can be removed in Python 3.10
import base64 import base64
import hashlib import hashlib
import hmac import hmac
@ -11,6 +9,7 @@ import json
import re import re
from dataclasses import dataclass, field from dataclasses import dataclass, field
from time import time from time import time
from typing import ClassVar, Iterable
from plinth import app from plinth import app
@ -36,9 +35,9 @@ class TurnConfiguration:
that must be used by a STUN/TURN client after advice from the server. that must be used by a STUN/TURN client after advice from the server.
""" """
domain: str = None domain: str | None = None
uris: list[str] = field(default_factory=list) uris: list[str] = field(default_factory=list)
shared_secret: str = None shared_secret: str | None = None
def __post_init__(self): def __post_init__(self):
"""Generate URIs after object initialization if necessary.""" """Generate URIs after object initialization if necessary."""
@ -76,8 +75,8 @@ class UserTurnConfiguration(TurnConfiguration):
time. time.
""" """
username: str = None username: str | None = None
credential: str = None credential: str | None = None
def to_json(self) -> str: def to_json(self) -> str:
"""Return a JSON representation of the configuration.""" """Return a JSON representation of the configuration."""
@ -102,7 +101,7 @@ class TurnConsumer(app.FollowerComponent):
""" """
_all = {} _all: ClassVar[dict[str, 'TurnConsumer']] = {}
def __init__(self, component_id): def __init__(self, component_id):
"""Initialize the component. """Initialize the component.
@ -115,7 +114,7 @@ class TurnConsumer(app.FollowerComponent):
self._all[component_id] = self self._all[component_id] = self
@classmethod @classmethod
def list(cls) -> list[TurnConsumer]: # noqa def list(cls) -> Iterable['TurnConsumer']:
"""Return a list of all Coturn components.""" """Return a list of all Coturn components."""
return cls._all.values() return cls._all.values()

View File

@ -3,4 +3,4 @@
Application manifest for diagnostics. Application manifest for diagnostics.
""" """
backup = {} backup: dict = {}

View File

@ -3,6 +3,7 @@
import pathlib import pathlib
import urllib import urllib
from typing import Any
from plinth.actions import privileged from plinth.actions import privileged
@ -30,7 +31,7 @@ def _read_configuration(path, separator='='):
@privileged @privileged
def export_config() -> dict[str, object]: def export_config() -> dict[str, bool | dict[str, dict[str, str | None]]]:
"""Return the old ez-ipupdate configuration in JSON format.""" """Return the old ez-ipupdate configuration in JSON format."""
input_config = {} input_config = {}
if _active_config.exists(): if _active_config.exists():
@ -68,12 +69,12 @@ def export_config() -> dict[str, object]:
update_url = domain['update_url'] update_url = domain['update_url']
try: try:
server = urllib.parse.urlparse(update_url).netloc server = urllib.parse.urlparse(update_url).netloc
service_types = { service_types: dict[str, str] = {
'dynupdate.noip.com': 'noip.com', 'dynupdate.noip.com': 'noip.com',
'dynupdate.no-ip.com': 'noip.com', 'dynupdate.no-ip.com': 'noip.com',
'freedns.afraid.org': 'freedns.afraid.org' 'freedns.afraid.org': 'freedns.afraid.org'
} }
domain['service_type'] = service_types.get(server, 'other') domain['service_type'] = service_types.get(str(server), 'other')
except ValueError: except ValueError:
pass pass
@ -86,7 +87,7 @@ def export_config() -> dict[str, object]:
and _active_config.exists()): and _active_config.exists()):
enabled = True enabled = True
output_config = {'enabled': enabled, 'domains': {}} output_config: dict[str, Any] = {'enabled': enabled, 'domains': {}}
if domain['domain']: if domain['domain']:
output_config['domains'][domain['domain']] = domain output_config['domains'][domain['domain']] = domain

View File

@ -3,7 +3,6 @@
import json import json
import logging import logging
from typing import Tuple
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -226,7 +225,7 @@ def update_turn_configuration(config: TurnConfiguration, managed=True,
privileged.configure_turn(json.loads(config.to_json()), managed) privileged.configure_turn(json.loads(config.to_json()), managed)
def get_turn_configuration() -> Tuple[TurnConfiguration, bool]: def get_turn_configuration() -> tuple[TurnConfiguration, bool]:
"""Get the latest STUN/TURN configuration.""" """Get the latest STUN/TURN configuration."""
tc, managed = privileged.get_turn_config() tc, managed = privileged.get_turn_config()
return TurnConfiguration(tc['domain'], tc['uris'], return TurnConfiguration(tc['domain'], tc['uris'],

View File

@ -8,7 +8,7 @@ import shutil
import socket import socket
import subprocess import subprocess
from pathlib import Path from pathlib import Path
from typing import Any, Optional, Tuple from typing import Any
from ruamel.yaml import YAML, scalarstring from ruamel.yaml import YAML, scalarstring
@ -28,7 +28,7 @@ MOD_IRC_DEPRECATED_VERSION = Version('18.06')
yaml = YAML() yaml = YAML()
yaml.allow_duplicate_keys = True yaml.allow_duplicate_keys = True
yaml.preserve_quotes = True yaml.preserve_quotes = True # type: ignore [assignment]
TURN_URI_REGEX = r'(stun|turn):(.*):([0-9]{4})\?transport=(tcp|udp)' TURN_URI_REGEX = r'(stun|turn):(.*):([0-9]{4})\?transport=(tcp|udp)'
@ -240,7 +240,7 @@ def set_domains(domains: list[str]):
@privileged @privileged
def mam(command: str) -> Optional[bool]: def mam(command: str) -> bool | None:
"""Enable, disable, or get status of Message Archive Management (MAM).""" """Enable, disable, or get status of Message Archive Management (MAM)."""
if command not in ('enable', 'disable', 'status'): if command not in ('enable', 'disable', 'status'):
raise ValueError('Invalid command') raise ValueError('Invalid command')
@ -286,7 +286,11 @@ def mam(command: str) -> Optional[bool]:
def _generate_service(uri: str) -> dict: def _generate_service(uri: str) -> dict:
"""Generate ejabberd mod_stun_disco service config from Coturn URI.""" """Generate ejabberd mod_stun_disco service config from Coturn URI."""
pattern = re.compile(TURN_URI_REGEX) pattern = re.compile(TURN_URI_REGEX)
typ, domain, port, transport = pattern.match(uri).groups() match = pattern.match(uri)
if not match:
raise ValueError('URL does not match TURN URI')
typ, domain, port, transport = match.groups()
return { return {
"host": domain, "host": domain,
"port": int(port), "port": int(port),
@ -304,7 +308,7 @@ def _generate_uris(services: list[dict]) -> list[str]:
@privileged @privileged
def get_turn_config() -> Tuple[dict[str, Any], bool]: def get_turn_config() -> tuple[dict[str, Any], bool]:
"""Get the latest STUN/TURN configuration in JSON format.""" """Get the latest STUN/TURN configuration in JSON format."""
with open(EJABBERD_CONFIG, 'r', encoding='utf-8') as file_handle: with open(EJABBERD_CONFIG, 'r', encoding='utf-8') as file_handle:
conf = yaml.load(file_handle) conf = yaml.load(file_handle)

View File

@ -10,7 +10,6 @@ See: https://rspamd.com/doc/modules/dkim_signing.html
""" """
from dataclasses import dataclass from dataclasses import dataclass
from typing import Union
@dataclass @dataclass
@ -19,12 +18,12 @@ class Entry: # pylint: disable=too-many-instance-attributes
type_: str type_: str
value: str value: str
domain: Union[str, None] = None domain: str | None = None
class_: str = 'IN' class_: str = 'IN'
ttl: int = 60 ttl: int = 60
priority: int = 10 priority: int = 10
weight: Union[int, None] = None weight: int | None = None
port: Union[int, None] = None port: int | None = None
def get_split_value(self): def get_split_value(self):
"""If the record is TXT and value > 255, split it.""" """If the record is TXT and value > 255, split it."""

View File

@ -23,7 +23,7 @@ class Service: # NOQA, pylint: disable=too-many-instance-attributes
wakeup: str wakeup: str
maxproc: str maxproc: str
command: str command: str
options: str options: dict[str, str]
def __str__(self) -> str: def __str__(self) -> str:
parts = [ parts = [
@ -49,7 +49,8 @@ def get_config(keys: list) -> dict:
output = _run(args) output = _run(args)
result = {} result = {}
for line in filter(None, output.split('\n')): lines: list[str] = list(filter(None, output.split('\n')))
for line in lines:
key, sep, value = line.partition('=') key, sep, value = line.partition('=')
if not sep: if not sep:
raise ValueError('Invalid output detected') raise ValueError('Invalid output detected')

View File

@ -32,7 +32,7 @@ default_config = {
]) ])
} }
submission_options = { submission_options: dict[str, str] = {
'syslog_name': 'postfix/submission', 'syslog_name': 'postfix/submission',
'smtpd_tls_security_level': 'encrypt', 'smtpd_tls_security_level': 'encrypt',
'smtpd_client_restrictions': 'permit_sasl_authenticated,reject', 'smtpd_client_restrictions': 'permit_sasl_authenticated,reject',
@ -43,7 +43,7 @@ submission_service = postconf.Service(service='submission', type_='inet',
wakeup='-', maxproc='-', command='smtpd', wakeup='-', maxproc='-', command='smtpd',
options=submission_options) options=submission_options)
smtps_options = { smtps_options: dict[str, str] = {
'syslog_name': 'postfix/smtps', 'syslog_name': 'postfix/smtps',
'smtpd_tls_wrappermode': 'yes', 'smtpd_tls_wrappermode': 'yes',
'smtpd_sasl_auth_enable': 'yes', 'smtpd_sasl_auth_enable': 'yes',

View File

@ -27,7 +27,7 @@ _description = [
'security threat from the Internet.'), box_name=cfg.box_name) 'security threat from the Internet.'), box_name=cfg.box_name)
] ]
_port_details = {} _port_details: dict[str, list[str]] = {}
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -5,6 +5,7 @@ App component for other apps to use firewall functionality.
import logging import logging
import re import re
from typing import ClassVar
from django.utils.text import format_lazy from django.utils.text import format_lazy
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -18,7 +19,7 @@ logger = logging.getLogger(__name__)
class Firewall(app.FollowerComponent): class Firewall(app.FollowerComponent):
"""Component to open/close firewall ports for an app.""" """Component to open/close firewall ports for an app."""
_all_firewall_components = {} _all_firewall_components: ClassVar[dict[str, 'Firewall']] = {}
def __init__(self, component_id, name=None, ports=None, is_external=False): def __init__(self, component_id, name=None, ports=None, is_external=False):
"""Initialize the firewall component.""" """Initialize the firewall component."""

View File

@ -3,4 +3,4 @@
Application manifest for firewall. Application manifest for firewall.
""" """
backup = {} backup: dict = {}

View File

@ -9,7 +9,7 @@ import re
import shutil import shutil
import subprocess import subprocess
import time import time
from typing import Any, Optional from typing import Any
from plinth import action_utils from plinth import action_utils
from plinth.actions import privileged from plinth.actions import privileged
@ -347,7 +347,7 @@ def repo_info(name: str) -> dict[str, str]:
@privileged @privileged
def create_repo(url: Optional[str] = None, name: Optional[str] = None, def create_repo(url: str | None = None, name: str | None = None,
description: str = '', owner: str = '', description: str = '', owner: str = '',
keep_ownership: bool = False, is_private: bool = False, keep_ownership: bool = False, is_private: bool = False,
skip_prepare: bool = False, prepare_only: bool = False): skip_prepare: bool = False, prepare_only: bool = False):

View File

@ -1,8 +1,6 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
"""Configure I2P.""" """Configure I2P."""
from typing import Optional
from plinth.actions import privileged from plinth.actions import privileged
from plinth.modules.i2p.helpers import RouterEditor, TunnelEditor from plinth.modules.i2p.helpers import RouterEditor, TunnelEditor
@ -19,8 +17,8 @@ def set_tunnel_property(name: str, property_: str, value: str):
@privileged @privileged
def add_favorite(name: str, url: str, description: Optional[str], def add_favorite(name: str, url: str, description: str | None,
icon: Optional[str]): icon: str | None):
"""Add a favorite to router.config.""" """Add a favorite to router.config."""
editor = RouterEditor() editor = RouterEditor()
editor.read_conf().add_favorite(name, url, description, icon).write_conf() editor.read_conf().add_favorite(name, url, description, icon).write_conf()

View File

@ -25,7 +25,7 @@ IkiWiki::Setup::Automator->import(
cgiurl => "/ikiwiki/$wikiname_short/ikiwiki.cgi", cgiurl => "/ikiwiki/$wikiname_short/ikiwiki.cgi",
cgiauthurl => "/ikiwiki-auth/$wikiname_short/ikiwiki.cgi", cgiauthurl => "/ikiwiki-auth/$wikiname_short/ikiwiki.cgi",
cgi_wrapper => "/var/www/ikiwiki/$wikiname_short/ikiwiki.cgi", cgi_wrapper => "/var/www/ikiwiki/$wikiname_short/ikiwiki.cgi",
add_plugins => [qw{goodstuff websetup comments calendar sidebar trail httpauth lockedit opendiscussion moderatedcomments userlist remove attachment}], add_plugins => [qw{goodstuff websetup comments calendar sidebar trail httpauth lockedit moderatedcomments userlist remove attachment}],
rss => 1, rss => 1,
atom => 1, atom => 1,
syslog => 1, syslog => 1,

View File

@ -6,7 +6,6 @@ import pathlib
import re import re
import shutil import shutil
import subprocess import subprocess
from typing import Tuple
from plinth.actions import privileged from plinth.actions import privileged
@ -43,7 +42,7 @@ def _get_title(site):
@privileged @privileged
def get_sites() -> list[Tuple[str, str]]: def get_sites() -> list[tuple[str, str]]:
"""Get wikis and blogs.""" """Get wikis and blogs."""
sites = [] sites = []
if os.path.exists(SITE_PATH): if os.path.exists(SITE_PATH):

View File

@ -11,4 +11,4 @@ clients = [{
}] }]
}] }]
backup = {} backup: dict = {}

View File

@ -11,4 +11,4 @@ clients = [{
}] }]
}] }]
backup = {} backup: dict = {}

View File

@ -4,6 +4,7 @@
import logging import logging
import pathlib import pathlib
import threading import threading
from typing import ClassVar
from plinth import app from plinth import app
from plinth.modules.names.components import DomainName from plinth.modules.names.components import DomainName
@ -38,7 +39,7 @@ class LetsEncrypt(app.FollowerComponent):
""" """
_all = {} _all: ClassVar[dict[str, 'LetsEncrypt']] = {}
def __init__(self, component_id, domains=None, daemons=None, def __init__(self, component_id, domains=None, daemons=None,
should_copy_certificates=False, private_key_path=None, should_copy_certificates=False, private_key_path=None,

View File

@ -3,7 +3,6 @@
import logging import logging
import os import os
from typing import List
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -191,7 +190,7 @@ def get_configured_domain_name():
return config['server_name'] return config['server_name']
def get_turn_configuration() -> (List[str], str, bool): def get_turn_configuration() -> tuple[TurnConfiguration, bool]:
"""Return TurnConfiguration if setup else empty.""" """Return TurnConfiguration if setup else empty."""
for file_path, managed in ((privileged.OVERRIDDEN_TURN_CONF_PATH, False), for file_path, managed in ((privileged.OVERRIDDEN_TURN_CONF_PATH, False),
(privileged.TURN_CONF_PATH, True)): (privileged.TURN_CONF_PATH, True)):

View File

@ -7,7 +7,6 @@ import json
import os import os
import pathlib import pathlib
import shutil import shutil
from typing import Dict, List, Optional, Union
import requests import requests
import yaml import yaml
@ -102,7 +101,7 @@ def get_config():
@privileged @privileged
def set_config(public_registration: bool, def set_config(public_registration: bool,
registration_verification: Optional[str] = None): registration_verification: str | None = None):
"""Enable/disable public user registration.""" """Enable/disable public user registration."""
if registration_verification == 'token': if registration_verification == 'token':
_create_registration_token() _create_registration_token()
@ -243,7 +242,7 @@ def _get_access_token() -> str:
@privileged @privileged
def list_registration_tokens() -> List[Dict[str, Optional[Union[str, int]]]]: def list_registration_tokens() -> list[dict[str, str | int | None]]:
"""Return the current list of registration tokens.""" """Return the current list of registration tokens."""
if not action_utils.service_is_running('matrix-synapse'): if not action_utils.service_is_running('matrix-synapse'):
return [] return []
@ -262,7 +261,7 @@ def _get_headers(access_token: str):
def _list_registration_tokens( def _list_registration_tokens(
access_token: str) -> List[Dict[str, Optional[Union[str, int]]]]: access_token: str) -> list[dict[str, str | int | None]]:
"""Use Admin API to fetch the list of registration tokens. """Use Admin API to fetch the list of registration tokens.
For details on registration tokens API, see: For details on registration tokens API, see:

View File

@ -1,8 +1,6 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
"""Configure Minetest server.""" """Configure Minetest server."""
from typing import Optional
import augeas import augeas
from plinth import action_utils from plinth import action_utils
@ -13,10 +11,9 @@ AUG_PATH = '/files' + CONFIG_FILE + '/.anon'
@privileged @privileged
def configure(max_players: Optional[int] = None, def configure(max_players: int | None = None, enable_pvp: bool | None = None,
enable_pvp: Optional[bool] = None, creative_mode: bool | None = None,
creative_mode: Optional[bool] = None, enable_damage: bool | None = None):
enable_damage: Optional[bool] = None):
"""Update configuration file and restart daemon if necessary.""" """Update configuration file and restart daemon if necessary."""
aug = load_augeas() aug = load_augeas()
if max_players is not None: if max_players is not None:

View File

@ -5,7 +5,6 @@ Configure Mumble server.
import pathlib import pathlib
import subprocess import subprocess
from typing import Optional
import augeas import augeas
@ -33,7 +32,7 @@ def set_super_user_password(password: str):
@privileged @privileged
def get_domain() -> Optional[str]: def get_domain() -> str | None:
"""Return domain name set in mumble or empty string.""" """Return domain name set in mumble or empty string."""
domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox') domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox')
try: try:
@ -43,7 +42,7 @@ def get_domain() -> Optional[str]:
@privileged @privileged
def set_domain(domain_name: Optional[str]): def set_domain(domain_name: str | None):
"""Write a file containing domain name.""" """Write a file containing domain name."""
if domain_name: if domain_name:
domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox') domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox')
@ -69,7 +68,7 @@ def change_root_channel_name(root_channel_name: str):
@privileged @privileged
def get_root_channel_name() -> Optional[str]: def get_root_channel_name() -> str | None:
"""Return the currently configured Root channel name.""" """Return the currently configured Root channel name."""
aug = _load_augeas() aug = _load_augeas()
name = aug.get('.anon/registerName') name = aug.get('.anon/registerName')

View File

@ -3,6 +3,8 @@
App component to introduce a new domain type. App component to introduce a new domain type.
""" """
from typing import ClassVar
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from plinth import app from plinth import app
@ -39,7 +41,7 @@ class DomainType(app.FollowerComponent):
""" """
_all = {} _all: ClassVar[dict[str, 'DomainType']] = {}
def __init__(self, component_id, display_name, configuration_url, def __init__(self, component_id, display_name, configuration_url,
can_have_certificate=True): can_have_certificate=True):
@ -90,7 +92,7 @@ class DomainName(app.FollowerComponent):
primary reason for making a domain name available as a component. primary reason for making a domain name available as a component.
""" """
_all = {} _all: ClassVar[dict[str, 'DomainName']] = {}
def __init__(self, component_id, name, domain_type, services): def __init__(self, component_id, name, domain_type, services):
"""Initialize a domain name. """Initialize a domain name.

View File

@ -3,4 +3,4 @@
Application manifest for names. Application manifest for names.
""" """
backup = {} backup: dict = {}

View File

@ -2,7 +2,6 @@
"""Configure PageKite.""" """Configure PageKite."""
import os import os
from typing import Union
import augeas import augeas
@ -118,7 +117,7 @@ def set_config(frontend: str, kite_name: str, kite_secret: str):
@privileged @privileged
def remove_service(service: dict[str, Union[str, bool]]): def remove_service(service: dict[str, str]):
"""Search and remove the service(s) that match all given parameters.""" """Search and remove the service(s) that match all given parameters."""
aug = _augeas_load() aug = _augeas_load()
service = utils.load_service(service) service = utils.load_service(service)
@ -171,7 +170,7 @@ def _add_service(aug, service):
@privileged @privileged
def add_service(service: dict[str, Union[str, bool]]): def add_service(service: dict[str, str]):
"""Add one service.""" """Add one service."""
aug = _augeas_load() aug = _augeas_load()
service = utils.load_service(service) service = utils.load_service(service)

View File

@ -13,4 +13,4 @@ clients = [{
}] }]
}] }]
backup = {} backup: dict = {}

View File

@ -3,4 +3,4 @@
Application manifest for power. Application manifest for power.
""" """
backup = {} backup: dict = {}

View File

@ -2,7 +2,6 @@
"""Configure Privacy App.""" """Configure Privacy App."""
import pathlib import pathlib
from typing import Optional
import augeas import augeas
@ -30,7 +29,7 @@ def setup():
@privileged @privileged
def set_configuration(enable_popcon: Optional[bool] = None): def set_configuration(enable_popcon: bool | None = None):
"""Update popcon configuration.""" """Update popcon configuration."""
aug = _load_augeas() aug = _load_augeas()
if enable_popcon: if enable_popcon:

View File

@ -3,4 +3,4 @@
Application manifest for privoxy. Application manifest for privoxy.
""" """
backup = {} backup: dict = {}

View File

@ -7,7 +7,6 @@ import pathlib
import random import random
import string import string
from shutil import move from shutil import move
from typing import Union
from plinth import action_utils from plinth import action_utils
from plinth.actions import privileged from plinth.actions import privileged
@ -64,7 +63,7 @@ def setup():
@privileged @privileged
def get_config() -> dict[str, Union[int, str]]: def get_config() -> dict[str, int | str]:
"""Read and print Shadowsocks configuration.""" """Read and print Shadowsocks configuration."""
config = open(SHADOWSOCKS_CONFIG_SYMLINK, 'r', encoding='utf-8').read() config = open(SHADOWSOCKS_CONFIG_SYMLINK, 'r', encoding='utf-8').read()
return json.loads(config) return json.loads(config)
@ -86,7 +85,7 @@ def _merge_config(config):
@privileged @privileged
def merge_config(config: dict[str, Union[int, str]]): def merge_config(config: dict[str, int | str]):
"""Configure Shadowsocks Client.""" """Configure Shadowsocks Client."""
_merge_config(config) _merge_config(config)

View File

@ -6,7 +6,6 @@ import os
import pathlib import pathlib
import random import random
import string import string
from typing import Union
from plinth import action_utils from plinth import action_utils
from plinth.actions import privileged from plinth.actions import privileged
@ -47,7 +46,7 @@ def setup():
@privileged @privileged
def get_config() -> dict[str, Union[int, str]]: def get_config() -> dict[str, int | str]:
"""Read and print Shadowsocks Server configuration.""" """Read and print Shadowsocks Server configuration."""
config = open(SHADOWSOCKS_CONFIG_SYMLINK, 'r', encoding='utf-8').read() config = open(SHADOWSOCKS_CONFIG_SYMLINK, 'r', encoding='utf-8').read()
return json.loads(config) return json.loads(config)

View File

@ -3,4 +3,4 @@
Application manifest for storage. Application manifest for storage.
""" """
backup = {} backup: dict = {}

View File

@ -14,7 +14,7 @@ gio = import_from_gi('Gio', '2.0')
_DBUS_NAME = 'org.freedesktop.UDisks2' _DBUS_NAME = 'org.freedesktop.UDisks2'
_INTERFACES = { _INTERFACES: dict[str, str] = {
'Ata': 'org.freedesktop.UDisks2.Drive.Ata', 'Ata': 'org.freedesktop.UDisks2.Drive.Ata',
'Block': 'org.freedesktop.UDisks2.Block', 'Block': 'org.freedesktop.UDisks2.Block',
'Drive': 'org.freedesktop.UDisks2.Drive', 'Drive': 'org.freedesktop.UDisks2.Drive',
@ -28,14 +28,14 @@ _INTERFACES = {
'UDisks2': 'org.freedesktop.UDisks2', 'UDisks2': 'org.freedesktop.UDisks2',
} }
_OBJECTS = { _OBJECTS: dict[str, str] = {
'drives': '/org/freedesktop/UDisks2/drives/', 'drives': '/org/freedesktop/UDisks2/drives/',
'jobs': '/org/freedesktop/UDisks2/jobs/', 'jobs': '/org/freedesktop/UDisks2/jobs/',
'Manager': '/org/freedesktop/UDisks2/Manager', 'Manager': '/org/freedesktop/UDisks2/Manager',
'UDisks2': '/org/freedesktop/UDisks2', 'UDisks2': '/org/freedesktop/UDisks2',
} }
_ERRORS = { _ERRORS: dict[str, str] = {
'AlreadyMounted': 'org.freedesktop.UDisks2.Error.AlreadyMounted', 'AlreadyMounted': 'org.freedesktop.UDisks2.Error.AlreadyMounted',
'Failed': 'org.freedesktop.UDisks2.Error.Failed', 'Failed': 'org.freedesktop.UDisks2.Error.Failed',
} }
@ -54,8 +54,8 @@ def _get_dbus_proxy(object_, interface):
class Proxy: class Proxy:
"""Base methods for abstraction over UDisks2 DBus proxy objects.""" """Base methods for abstraction over UDisks2 DBus proxy objects."""
interface = None interface: str | None = None
properties = {} properties: dict[str, tuple[str, str]] = {}
def __init__(self, object_path): def __init__(self, object_path):
"""Return an object instance.""" """Return an object instance."""

View File

@ -10,7 +10,7 @@ import shutil
import socket import socket
import subprocess import subprocess
import time import time
from typing import Any, Optional, Union from typing import Any
import augeas import augeas
@ -143,11 +143,10 @@ def _remove_proxy():
@privileged @privileged
def configure(use_upstream_bridges: Optional[bool] = None, def configure(use_upstream_bridges: bool | None = None,
upstream_bridges: Optional[str] = None, upstream_bridges: str | None = None, relay: bool | None = None,
relay: Optional[bool] = None, bridge_relay: bool | None = None,
bridge_relay: Optional[bool] = None, hidden_service: bool | None = None):
hidden_service: Optional[bool] = None):
"""Configure Tor.""" """Configure Tor."""
aug = augeas_load() aug = augeas_load()
@ -193,7 +192,7 @@ def restart():
@privileged @privileged
def get_status() -> dict[str, Union[bool, str, dict[str, Any]]]: def get_status() -> dict[str, bool | str | dict[str, Any]]:
"""Return dict with Tor status.""" """Return dict with Tor status."""
aug = augeas_load() aug = augeas_load()
return { return {
@ -254,8 +253,8 @@ def _get_ports() -> dict[str, str]:
def _get_orport() -> str: def _get_orport() -> str:
"""Return the ORPort by querying running instance.""" """Return the ORPort by querying running instance."""
cookie = open(TOR_AUTH_COOKIE, 'rb').read() cookie_bytes = open(TOR_AUTH_COOKIE, 'rb').read()
cookie = codecs.encode(cookie, 'hex').decode() cookie = codecs.encode(cookie_bytes, 'hex').decode()
commands = '''AUTHENTICATE {cookie} commands = '''AUTHENTICATE {cookie}
GETINFO net/listeners/or GETINFO net/listeners/or
@ -270,6 +269,9 @@ QUIT
line = response.split(b'\r\n')[1].decode() line = response.split(b'\r\n')[1].decode()
matches = re.match(r'.*=".+:(\d+)"', line) matches = re.match(r'.*=".+:(\d+)"', line)
if not matches:
raise ValueError('Invalid orport value returned by Tor')
return matches.group(1) return matches.group(1)
@ -320,8 +322,7 @@ def _disable():
action_utils.service_disable(SERVICE_NAME) action_utils.service_disable(SERVICE_NAME)
def _use_upstream_bridges(use_upstream_bridges: Optional[bool] = None, def _use_upstream_bridges(use_upstream_bridges: bool | None = None, aug=None):
aug=None):
"""Enable use of upstream bridges.""" """Enable use of upstream bridges."""
if use_upstream_bridges is None: if use_upstream_bridges is None:
return return
@ -360,8 +361,7 @@ def _set_upstream_bridges(upstream_bridges=None, aug=None):
aug.save() aug.save()
def _enable_relay(relay: Optional[bool], bridge: Optional[bool], def _enable_relay(relay: bool | None, bridge: bool | None, aug: augeas.Augeas):
aug: augeas.Augeas):
"""Enable Tor bridge relay.""" """Enable Tor bridge relay."""
if relay is None and bridge is None: if relay is None and bridge is None:
return return

View File

@ -5,7 +5,7 @@ import logging
import os import os
import shutil import shutil
import subprocess import subprocess
from typing import Any, Optional, Union from typing import Any
import augeas import augeas
@ -66,9 +66,9 @@ def _first_time_setup():
@privileged @privileged
def configure(use_upstream_bridges: Optional[bool] = None, def configure(use_upstream_bridges: bool | None = None,
upstream_bridges: Optional[str] = None, upstream_bridges: str | None = None,
apt_transport_tor: Optional[bool] = None): apt_transport_tor: bool | None = None):
"""Configure Tor.""" """Configure Tor."""
aug = augeas_load() aug = augeas_load()
@ -92,7 +92,7 @@ def restart():
@privileged @privileged
def get_status() -> dict[str, Union[bool, str, dict[str, Any]]]: def get_status() -> dict[str, bool | str | dict[str, Any]]:
"""Return dict with Tor Proxy status.""" """Return dict with Tor Proxy status."""
aug = augeas_load() aug = augeas_load()
return { return {
@ -125,8 +125,7 @@ def _disable():
action_utils.service_disable(SERVICE_NAME) action_utils.service_disable(SERVICE_NAME)
def _use_upstream_bridges(use_upstream_bridges: Optional[bool] = None, def _use_upstream_bridges(use_upstream_bridges: bool | None = None, aug=None):
aug=None):
"""Enable use of upstream bridges.""" """Enable use of upstream bridges."""
if use_upstream_bridges is None: if use_upstream_bridges is None:
return return

View File

@ -5,7 +5,6 @@ Configuration helper for Transmission daemon.
import json import json
import pathlib import pathlib
from typing import Union
from plinth import action_utils from plinth import action_utils
from plinth.actions import privileged from plinth.actions import privileged
@ -20,14 +19,15 @@ def get_configuration() -> dict[str, str]:
@privileged @privileged
def merge_configuration(configuration: dict[str, Union[str, bool]]): def merge_configuration(configuration: dict[str, str | bool]):
"""Merge given JSON configuration with existing configuration.""" """Merge given JSON configuration with existing configuration."""
current_configuration = _transmission_config.read_bytes() current_configuration_bytes = _transmission_config.read_bytes()
current_configuration = json.loads(current_configuration) current_configuration = json.loads(current_configuration_bytes)
new_configuration = current_configuration new_configuration = current_configuration
new_configuration.update(configuration) new_configuration.update(configuration)
new_configuration = json.dumps(new_configuration, indent=4, sort_keys=True) new_configuration_bytes = json.dumps(new_configuration, indent=4,
sort_keys=True)
_transmission_config.write_text(new_configuration, encoding='utf-8') _transmission_config.write_text(new_configuration_bytes, encoding='utf-8')
action_utils.service_reload('transmission-daemon') action_utils.service_reload('transmission-daemon')

View File

@ -3,7 +3,6 @@
import os import os
import subprocess import subprocess
from typing import Optional
import augeas import augeas
@ -19,15 +18,16 @@ DB_BACKUP_FILE = '/var/lib/plinth/backups-data/ttrss-database.sql'
@privileged @privileged
def pre_setup(): def pre_setup():
"""Preseed debconf values before packages are installed.""" """Preseed debconf values before packages are installed."""
action_utils.debconf_set_selections( action_utils.debconf_set_selections([
['tt-rss tt-rss/database-type string pgsql', 'tt-rss tt-rss/database-type string pgsql',
'tt-rss tt-rss/purge boolean true', 'tt-rss tt-rss/purge boolean true',
'tt-rss tt-rss/dbconfig-remove boolean true', 'tt-rss tt-rss/dbconfig-remove boolean true',
'tt-rss tt-rss/dbconfig-reinstall boolean true']) 'tt-rss tt-rss/dbconfig-reinstall boolean true'
])
@privileged @privileged
def get_domain() -> Optional[str]: def get_domain() -> str | None:
"""Get the domain set for Tiny Tiny RSS.""" """Get the domain set for Tiny Tiny RSS."""
aug = load_augeas() aug = load_augeas()
@ -41,7 +41,7 @@ def get_domain() -> Optional[str]:
@privileged @privileged
def set_domain(domain_name: Optional[str]): def set_domain(domain_name: str | None):
"""Set the domain to be used by Tiny Tiny RSS.""" """Set the domain to be used by Tiny Tiny RSS."""
if not domain_name: if not domain_name:
return return

View File

@ -7,7 +7,6 @@ import pathlib
import re import re
import subprocess import subprocess
import time import time
from typing import List, Tuple, Union
from plinth.action_utils import (apt_hold, apt_hold_flag, apt_hold_freedombox, from plinth.action_utils import (apt_hold, apt_hold_flag, apt_hold_freedombox,
apt_unhold_freedombox, debconf_set_selections, apt_unhold_freedombox, debconf_set_selections,
@ -81,7 +80,7 @@ Pin: release a=bullseye-backports
Pin-Priority: 500 Pin-Priority: 500
''' '''
DIST_UPGRADE_OBSOLETE_PACKAGES: List[str] = [] DIST_UPGRADE_OBSOLETE_PACKAGES: list[str] = []
DIST_UPGRADE_PACKAGES_WITH_PROMPTS = [ DIST_UPGRADE_PACKAGES_WITH_PROMPTS = [
'bind9', 'firewalld', 'janus', 'minetest-server', 'minidlna', 'bind9', 'firewalld', 'janus', 'minetest-server', 'minidlna',
@ -90,7 +89,7 @@ DIST_UPGRADE_PACKAGES_WITH_PROMPTS = [
DIST_UPGRADE_PRE_INSTALL_PACKAGES = ['base-files'] DIST_UPGRADE_PRE_INSTALL_PACKAGES = ['base-files']
DIST_UPGRADE_PRE_DEBCONF_SELECTIONS: List[str] = [ DIST_UPGRADE_PRE_DEBCONF_SELECTIONS: list[str] = [
# Tell grub-pc to continue without installing grub again. # Tell grub-pc to continue without installing grub again.
'grub-pc grub-pc/install_devices_empty boolean true' 'grub-pc grub-pc/install_devices_empty boolean true'
] ]
@ -198,7 +197,7 @@ def get_log() -> str:
def _get_protocol() -> str: def _get_protocol() -> str:
"""Return the protocol to use for newly added repository sources.""" """Return the protocol to use for newly added repository sources."""
try: try:
from plinth.modules.tor import utils from plinth.modules.torproxy import utils
if utils.is_apt_transport_tor_enabled(): if utils.is_apt_transport_tor_enabled():
return 'tor+http' return 'tor+http'
except Exception: except Exception:
@ -317,7 +316,7 @@ def _is_sufficient_free_space() -> bool:
return free_space >= DIST_UPGRADE_REQUIRED_FREE_SPACE return free_space >= DIST_UPGRADE_REQUIRED_FREE_SPACE
def _check_dist_upgrade(test_upgrade=False) -> Tuple[bool, str]: def _check_dist_upgrade(test_upgrade=False) -> tuple[bool, str]:
"""Check if a distribution upgrade be performed. """Check if a distribution upgrade be performed.
Check for new stable release, if updates are enabled, and if there is Check for new stable release, if updates are enabled, and if there is
@ -589,7 +588,7 @@ def _start_dist_upgrade_service():
@privileged @privileged
def start_dist_upgrade(test: bool = False) -> dict[str, Union[str, bool]]: def start_dist_upgrade(test: bool = False) -> dict[str, str | bool]:
"""Start dist upgrade process. """Start dist upgrade process.
Check if a new stable release is available, and start dist-upgrade process Check if a new stable release is available, and start dist-upgrade process

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