mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-13 10:30:16 +00:00
freedombox Debian release 25.13
-----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmjkbeAWHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICH5iD/0Vw9PKwVUYiKModXpxhOgb0aGk kzeRafam3dOgIQW5Yf4Y3P0gLcfE430iCUvTnJLkxsSVhWA5J2lUYaqLlGoAZGe7 LCuP77v4ZWFYKnWkBBTTNIEDvsCe15CVKe+LoUhl4mS1TYGe2RvxIwK5f55YTu2k EvJkSzY31YezQpA5XyH7LQdeJw8C3fpM+RZUzPttTJNkhAmqkcDBppVmh8T8hmM9 oXbZ8aHHofKlFjhFLla3QxHGCfeoOExY/A6A6AMSwHK2gmnza00YUEU0rfrWmfGm 6VW/xxNxQRgY4buG54pgtv91adJtxEt1dT9f30HTonEy0MY674urDTKoRZnj80RG BsrAqXkKi9NHaL3CJ+NEErX8mq3mvSmabc9S4yAHvKKtX07Uvu/SekJnA2KNH5fZ ItIrniL/bUx0gkw+PJJu6UFpTp8WctRNPhiIQHm7/fq497lebwo46npfwZdfP7qI uCF0fedvS+/Zdr4WNShsuLZvwpt51waJTOVqSFdN2AeLdhD+rUVFgsxr0GI+O0M5 lL4lPI58GL6s3OYqnzIMmYmFxdDkWnR8PBXJlazVP88iIWJNtRqzQ6k9XJDcUd8X U8ue22hGdAWxNH2VnNGBSuIwoNISM91UtoRD06pKAw7GkESIQ2zMhroOObN7NcgI ASUxB+KXp2ieLT29Vw== =htcO -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmjnoPEWHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICMhhEACQ/xw3siNT6GdG3xhXbeJQJCEy S1rVpCXjCNoVxvM9jZO/8atGs5l5dVvZdLbGqYQTSFnBRei9Scmd5lHJf/DqOe3i zBRYS/9ahAYvz7olD37pikLlvHRcdsahCyw0cBw+B30FJdax3vkxLP7B+CbZhqWj ZcA3RhXAmvxqoprZN2Q/zFY2M2j2X38TtLx7bOt3KAWqPZcAgAoOKptl36JDimGa MPO+UwRSsjNgNV80bPWPYABQiFxaxM06Vl98K+/xaN/mIDZbJXDeoTAh+XT28QKz a3pxpM6lIq4KFfTJjKaXNj/6kmLulIxhlCNIqtm50a2d3XaAp97T0W0hkWk+wjTa 7nkJ91lM+Ysj0i5i9NSv6IpfWlQ99whJvCCcPPIYeBjt06hLn4dO63BFPe7OXJy4 MvBAmUYVNBHEmy2Z2umTNtiUPBKL3jj4t8LxlVrKQ7rqthl0Qhe8+9yPHOtoEy44 6ndI2VxZ/m8mdk12pQOqmrWlv3s9yRbNCi4gir8kX6JRgp81XwNS6AOKk9ghW4N4 4vWLdEiDNeJRJ31dE0uptTsYzUeWvIIrpWMlNgZAYHRRbhKxCW/u/8uLdxk+rZnW jzKEiCFvcl4brUZ1BKmaoK5ChxnyPRWL1CfG8xWKlNCUxXquCW906cNDRQpJ5F6i b8KO1xSknslUnAP5MQ== =vnij -----END PGP SIGNATURE----- Merge tag 'v25.13' into debian/trixie-backports freedombox Debian release 25.13
This commit is contained in:
commit
8e3a468a58
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,7 +4,7 @@
|
||||
doc/manual/*/*.pdf
|
||||
doc/manual/*/*.html
|
||||
doc/manual/*/*.xml
|
||||
doc/plinth.1
|
||||
doc/*.1
|
||||
doc/dev/_build
|
||||
\#*
|
||||
.#*
|
||||
|
||||
@ -56,7 +56,7 @@ build:
|
||||
build-backports:
|
||||
extends: .build-package
|
||||
variables:
|
||||
RELEASE: bookworm-backports
|
||||
RELEASE: trixie-backports
|
||||
|
||||
build i386:
|
||||
extends: .build-package-i386
|
||||
|
||||
3
Makefile
3
Makefile
@ -37,6 +37,7 @@ DIRECTORIES_TO_CREATE := \
|
||||
|
||||
STATIC_FILES_DIRECTORY := $(DESTDIR)/usr/share/plinth/static
|
||||
BIN_DIR := $(DESTDIR)/usr/bin
|
||||
LIB_DIR := $(DESTDIR)/usr/lib
|
||||
|
||||
FIND_ARGS := \
|
||||
-not -iname "*.log" \
|
||||
@ -102,7 +103,7 @@ install:
|
||||
rm -f $(DESTDIR)$${lib_dir}/plinth*.dist-info/COPYING.md && \
|
||||
rm -f $(DESTDIR)$${lib_dir}/plinth*.dist-info/direct_url.json && \
|
||||
$(INSTALL) -D -t $(BIN_DIR) bin/plinth
|
||||
$(INSTALL) -D -t $(BIN_DIR) bin/freedombox-privileged
|
||||
$(INSTALL) -D -t $(LIB_DIR)/freedombox bin/freedombox-privileged
|
||||
$(INSTALL) -D -t $(BIN_DIR) bin/freedombox-cmd
|
||||
|
||||
# Static web server files
|
||||
|
||||
@ -5,10 +5,12 @@ Description=FreedomBox Privileged Service
|
||||
Documentation=https://wiki.debian.org/FreedomBox/
|
||||
# Don't hit the start rate limiting.
|
||||
StartLimitIntervalSec=0
|
||||
# Stop/restart along with .socket unit (invoked from dpkg scripts).
|
||||
PartOf=freedombox-privileged.socket
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=/usr/bin/freedombox-privileged
|
||||
ExecStart=/usr/lib/freedombox/freedombox-privileged
|
||||
TimeoutSec=300s
|
||||
User=root
|
||||
Group=root
|
||||
|
||||
69
debian/changelog
vendored
69
debian/changelog
vendored
@ -1,3 +1,72 @@
|
||||
freedombox (25.13) unstable; urgency=medium
|
||||
|
||||
[ Burak Yavuz ]
|
||||
* Translated using Weblate (Turkish)
|
||||
|
||||
[ 大王叫我来巡山 ]
|
||||
* Translated using Weblate (Chinese (Simplified Han script))
|
||||
|
||||
[ Максим Горпиніч ]
|
||||
* Translated using Weblate (Ukrainian)
|
||||
|
||||
[ 109247019824 ]
|
||||
* Translated using Weblate (Bulgarian)
|
||||
|
||||
[ Jiří Podhorecký ]
|
||||
* Translated using Weblate (Czech)
|
||||
|
||||
[ Sunil Mohan Adapa ]
|
||||
* glib: Add schedule parameter for setting interval in develop mode
|
||||
* diagnostics: In development mode, run diagnostics more rarely
|
||||
* backups: Ignore a typing error with mypy
|
||||
* Makefile: Move privileged daemon to /usr/lib/freedombox
|
||||
* action_utils: Handle capture_output argument in run wrapper
|
||||
* privileged_daemon: Fix showing errors for freedombox-cmd command
|
||||
* doc: Add manual page for freedombox-cmd
|
||||
* storage: Fix disk usage checking with disconnected SSH mounts
|
||||
* actions: Work with older privileged daemon
|
||||
* privileged_daemon: Implement handling termination signal
|
||||
* d/rules: Drop a workaround for dh_installsytemd needed for /usr/lib
|
||||
* actions: Log method arguments in privileged daemon
|
||||
* backups: Fix robust handling of known errors
|
||||
* config: Set home page to FreedomBox for invalid values
|
||||
* actions: Log full exception from privileged daemon on error
|
||||
* setup: Log full exception traceback when setup fails
|
||||
* actions: Fix lifetime of thread local storage
|
||||
* actions_utils: Fix issue with collecting stdout/stderr
|
||||
* *: Use action_utils.run instead of subprocess.run
|
||||
* *: Use action_utils.run instead of subprocess.check_call
|
||||
* *: Use action_utils.run instead of subprocess.call
|
||||
* *: Use action_utils.run instead of subprocess.check_output
|
||||
* *: Collect output for all privileged sub-processes
|
||||
* ci: Switch backports test to trixie-backports
|
||||
* actions: Raise an exception if privileged server response is empty
|
||||
* debian: Stop privileged service during upgrade or removal
|
||||
* backups: Don't show enable/disable button as app can't be disabled
|
||||
* locale: Fix a string formatting issue in Italian translation
|
||||
* daemon: When ensuring running state handle not-installed state
|
||||
* miniflux: Fix DB connection issues during install/uninstall
|
||||
* zoph: Additional dbconfig configuration keys
|
||||
|
||||
[ Dietmar ]
|
||||
* Translated using Weblate (German)
|
||||
* Translated using Weblate (Italian)
|
||||
|
||||
[ Roman Akimov ]
|
||||
* Translated using Weblate (Russian)
|
||||
|
||||
[ Veiko Aasa ]
|
||||
* gitweb: Use Git credential helper when cloning URLs with credentials
|
||||
|
||||
[ Besnik Bleta ]
|
||||
* Translated using Weblate (Albanian)
|
||||
|
||||
[ James Valleroy ]
|
||||
* locale: Update translation strings
|
||||
* doc: Fetch latest manual
|
||||
|
||||
-- James Valleroy <jvalleroy@mailbox.org> Mon, 06 Oct 2025 20:30:14 -0400
|
||||
|
||||
freedombox (25.12~bpo13+1) trixie-backports; urgency=medium
|
||||
|
||||
* Rebuild for trixie-backports.
|
||||
|
||||
5
debian/freedombox.lintian-overrides
vendored
5
debian/freedombox.lintian-overrides
vendored
@ -19,3 +19,8 @@ freedombox binary: web-application-works-only-with-apache
|
||||
# Not documentation
|
||||
freedombox: package-contains-documentation-outside-usr-share-doc [usr/share/plinth/static/jslicense.html]
|
||||
freedombox: package-contains-documentation-outside-usr-share-doc [usr/lib/python3/dist-packages/plinth-*.dist-info/top_level.txt]
|
||||
|
||||
# This executable is meant to executed from systemd service file and is not
|
||||
# meant for user. However, don't install to /usr/libexec and follow systemd
|
||||
# convention instead.
|
||||
freedombox: executable-in-usr-lib [usr/lib/freedombox/freedombox-privileged]
|
||||
|
||||
1
debian/freedombox.manpages
vendored
1
debian/freedombox.manpages
vendored
@ -1 +1,2 @@
|
||||
./doc/freedombox-cmd.1
|
||||
./doc/plinth.1
|
||||
|
||||
10
debian/rules
vendored
10
debian/rules
vendored
@ -29,10 +29,6 @@ ifneq ($(FBX_VERSION),$(DEB_VERSION))
|
||||
endif
|
||||
|
||||
override_dh_installsystemd:
|
||||
# Do not enable or start any service other than FreedomBox service. Use
|
||||
# of --tmpdir is a hack to workaround an issue with dh_installsystemd
|
||||
# (as of debhelper 13.5.2) that still has hardcoded search path of
|
||||
# /lib/systemd/system for searching systemd services. See #987989 and
|
||||
# reversion of its changes.
|
||||
dh_installsystemd --tmpdir=debian/tmp/usr --package=freedombox \
|
||||
plinth.service freedombox-privileged.socket
|
||||
# Do not enable or start any service other than FreedomBox service.
|
||||
dh_installsystemd --package=freedombox plinth.service \
|
||||
freedombox-privileged.socket
|
||||
|
||||
@ -13,7 +13,7 @@ SCRIPTS_DIR=scripts
|
||||
|
||||
manual-pdfs=$(foreach lang,$(MANUAL_LANGUAGES),manual/$(lang)/freedombox-manual.pdf)
|
||||
manual-xmls=$(patsubst %.pdf,%.xml,$(manual-pdfs))
|
||||
OUTPUTS=$(manual-pdfs) plinth.1
|
||||
OUTPUTS=$(manual-pdfs) plinth.1 freedombox-cmd.1
|
||||
|
||||
INSTALL_OPTS=-D --mode=644
|
||||
|
||||
|
||||
160
doc/freedombox-cmd.xml
Normal file
160
doc/freedombox-cmd.xml
Normal file
@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.docbook.org/xml/4.4/docbookx.dtd">
|
||||
<!--
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<refentry>
|
||||
<refmeta>
|
||||
<refentrytitle><application>freedombox-cmd</application></refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="manual">FreedomBox Command Line Utility</refmiscinfo>
|
||||
<refmiscinfo class="version"> </refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname><application>freedombox-cmd</application></refname>
|
||||
<refpurpose>
|
||||
command line utility to perform FreedomBox operations
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>freedombox-cmd</command>
|
||||
<arg><option>-h, </option><option>--help</option></arg>
|
||||
<arg choice="req">module</arg>
|
||||
<arg choice="req">action</arg>
|
||||
<arg><option>--no-args</option></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
FreedomBox is a community project to develop, design and promote
|
||||
personal servers running free software for private, personal
|
||||
communications. It is a networking appliance designed to allow
|
||||
interfacing with the rest of the Internet under conditions of
|
||||
protected privacy and data security. It hosts applications such
|
||||
as blog, wiki, website, social network, email, web proxy and a
|
||||
Tor relay on a device that can replace a wireless router so that
|
||||
data stays with the users.
|
||||
</para>
|
||||
<para>
|
||||
freedombox-cmd is a command line interface to some of the operations
|
||||
performed by FreedomBox. It is typically not needed by the end users who
|
||||
use FreedomBox's web interface. The command may be used in some cases
|
||||
while debugging problems, especially where the web interface is not
|
||||
accessible or when a piece of functionality that is not provided in the
|
||||
web interface needs to be triggered.
|
||||
</para>
|
||||
<para>
|
||||
The command is simply a client to the FreedomBox's privileged daemon and
|
||||
relays user's request to it. It waits for the request to complete and
|
||||
prints the output of the operation or an error message collected form the
|
||||
daemon. The daemon only allows connections from an pre-allowed list of
|
||||
user accounts. So, be sure to run the command as 'root' superuser.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Options</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>module</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Name of the module from which to execute an action.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>action</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Name of the action to execute. It should found in the provided
|
||||
module.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--no-args</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Don't try to read the arguments to the command on the standard
|
||||
input. Instead, assume that the operation does not have any
|
||||
arguments and execute the method without arguments.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--help</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Show brief help about arguments allowed for this command.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Examples</title>
|
||||
|
||||
<example>
|
||||
<title>Re-run FreedomBox network setup</title>
|
||||
<synopsis>$ sudo freedombox-cmd networks setup --no-args</synopsis>
|
||||
<para>
|
||||
When FreedomBox starts for the first time, it will setup Network Manager
|
||||
connections suitable for the hardware found. If you wish to re-create
|
||||
these connections at a later time, you can re-run setup for the Networks
|
||||
app using the web interface or run this command on a terminal.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Delete a user account from LDAP database</title>
|
||||
<synopsis>$ echo '{"args": ["USERNAME", "AUTH_USER", "AUTH_PASSWORD"], "kwargs": {}}' | sudo freedombox-cmd users remove_user</synopsis>
|
||||
<para>
|
||||
USERNAME is the name of the user account that must be removed. AUTH_USER
|
||||
is name of the user account that is authorizing this operation.
|
||||
AUTH_PASSWORD is the password for user account that is authorizing this
|
||||
operation. This operation may be needed if FreedomBox's sqlite3 database
|
||||
is wiped, removing the user accounts in the database but the
|
||||
corresponding entries from LDAP database are not removed. A new user
|
||||
with that name can't be created until the LDAP account is also removed.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Set the logging mode to persistent</title>
|
||||
<synopsis>$ echo '{"args": ["persistent"], "kwargs": {}}' | sudo freedombox-cmd config set_logging_mode</synopsis>
|
||||
<para>
|
||||
By default, FreedomBox sets up systemd-journald to 'volatile' logging.
|
||||
This means that logs will not be stored on the disk and will be lost
|
||||
after a reboot. If you are tackling a problem and wish to store the logs
|
||||
persistently, you can change the setting in the web interface or run
|
||||
this command.
|
||||
</para>
|
||||
</example>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Bugs</title>
|
||||
<para>
|
||||
See <ulink
|
||||
url="https://salsa.debian.org/freedombox-team/freedombox/issues">FreedomBox
|
||||
issue tracker</ulink> for a full list of known issues and TODO items.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Author</title>
|
||||
<para>
|
||||
<author>
|
||||
<firstname>FreedomBox Developers</firstname>
|
||||
<contrib>Original author</contrib>
|
||||
</author>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@ -8,6 +8,47 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 25.13 (2025-10-06) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
* backups: Fix robust handling of known errors
|
||||
* debian: Stop privileged service during upgrade or removal
|
||||
* miniflux: Fix DB connection issues during install/uninstall
|
||||
|
||||
=== Other Changes ===
|
||||
|
||||
* *: Collect output for all privileged sub-processes
|
||||
* *: Use action_utils.run instead of subprocess.call
|
||||
* *: Use action_utils.run instead of subprocess.check_call
|
||||
* *: Use action_utils.run instead of subprocess.check_output
|
||||
* *: Use action_utils.run instead of subprocess.run
|
||||
* action_utils: Handle capture_output argument in run wrapper
|
||||
* actions: Fix lifetime of thread local storage
|
||||
* actions: Log full exception from privileged daemon on error
|
||||
* actions: Log method arguments in privileged daemon
|
||||
* actions: Raise an exception if privileged server response is empty
|
||||
* actions: Work with older privileged daemon
|
||||
* actions_utils: Fix issue with collecting stdout/stderr
|
||||
* backups: Don't show enable/disable button as app can't be disabled
|
||||
* backups: Ignore a typing error with mypy
|
||||
* ci: Switch backports test to trixie-backports
|
||||
* config: Set home page to !FreedomBox for invalid values
|
||||
* d/rules: Drop a workaround for dh_installsytemd needed for /usr/lib
|
||||
* daemon: When ensuring running state handle not-installed state
|
||||
* diagnostics: In development mode, run diagnostics more rarely
|
||||
* doc: Add manual page for freedombox-cmd
|
||||
* gitweb: Use Git credential helper when cloning URLs with credentials
|
||||
* glib: Add schedule parameter for setting interval in develop mode
|
||||
* locale: Fix a string formatting issue in Italian translation
|
||||
* locale: Update translations for Albanian, Bulgarian, Chinese (Simplified Han script), Czech, German, Italian, Russian, Turkish, Ukrainian
|
||||
* Makefile: Move privileged daemon to /usr/lib/freedombox
|
||||
* privileged_daemon: Fix showing errors for freedombox-cmd command
|
||||
* privileged_daemon: Implement handling termination signal
|
||||
* setup: Log full exception traceback when setup fails
|
||||
* storage: Fix disk usage checking with disconnected SSH mounts
|
||||
* zoph: Additional dbconfig configuration keys
|
||||
|
||||
== FreedomBox 25.12 (2025-09-22) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
@ -8,6 +8,47 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 25.13 (2025-10-06) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
* backups: Fix robust handling of known errors
|
||||
* debian: Stop privileged service during upgrade or removal
|
||||
* miniflux: Fix DB connection issues during install/uninstall
|
||||
|
||||
=== Other Changes ===
|
||||
|
||||
* *: Collect output for all privileged sub-processes
|
||||
* *: Use action_utils.run instead of subprocess.call
|
||||
* *: Use action_utils.run instead of subprocess.check_call
|
||||
* *: Use action_utils.run instead of subprocess.check_output
|
||||
* *: Use action_utils.run instead of subprocess.run
|
||||
* action_utils: Handle capture_output argument in run wrapper
|
||||
* actions: Fix lifetime of thread local storage
|
||||
* actions: Log full exception from privileged daemon on error
|
||||
* actions: Log method arguments in privileged daemon
|
||||
* actions: Raise an exception if privileged server response is empty
|
||||
* actions: Work with older privileged daemon
|
||||
* actions_utils: Fix issue with collecting stdout/stderr
|
||||
* backups: Don't show enable/disable button as app can't be disabled
|
||||
* backups: Ignore a typing error with mypy
|
||||
* ci: Switch backports test to trixie-backports
|
||||
* config: Set home page to !FreedomBox for invalid values
|
||||
* d/rules: Drop a workaround for dh_installsytemd needed for /usr/lib
|
||||
* daemon: When ensuring running state handle not-installed state
|
||||
* diagnostics: In development mode, run diagnostics more rarely
|
||||
* doc: Add manual page for freedombox-cmd
|
||||
* gitweb: Use Git credential helper when cloning URLs with credentials
|
||||
* glib: Add schedule parameter for setting interval in develop mode
|
||||
* locale: Fix a string formatting issue in Italian translation
|
||||
* locale: Update translations for Albanian, Bulgarian, Chinese (Simplified Han script), Czech, German, Italian, Russian, Turkish, Ukrainian
|
||||
* Makefile: Move privileged daemon to /usr/lib/freedombox
|
||||
* privileged_daemon: Fix showing errors for freedombox-cmd command
|
||||
* privileged_daemon: Implement handling termination signal
|
||||
* setup: Log full exception traceback when setup fails
|
||||
* storage: Fix disk usage checking with disconnected SSH mounts
|
||||
* zoph: Additional dbconfig configuration keys
|
||||
|
||||
== FreedomBox 25.12 (2025-09-22) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
@ -3,4 +3,4 @@
|
||||
Package init file.
|
||||
"""
|
||||
|
||||
__version__ = '25.12'
|
||||
__version__ = '25.13'
|
||||
|
||||
@ -33,20 +33,18 @@ def is_systemd_running():
|
||||
|
||||
def systemd_get_default() -> str:
|
||||
"""Return the default target that systemd will boot into."""
|
||||
process = subprocess.run(['systemctl', 'get-default'],
|
||||
stdout=subprocess.PIPE, check=True)
|
||||
process = run(['systemctl', 'get-default'], check=True)
|
||||
return process.stdout.decode().strip()
|
||||
|
||||
|
||||
def systemd_set_default(target: str):
|
||||
"""Set the default target that systemd will boot into."""
|
||||
subprocess.run(['systemctl', 'set-default', target], check=True)
|
||||
run(['systemctl', 'set-default', target], check=True)
|
||||
|
||||
|
||||
def service_daemon_reload():
|
||||
"""Reload systemd to ensure that newer unit files are read."""
|
||||
subprocess.run(['systemctl', 'daemon-reload'], check=True,
|
||||
stdout=subprocess.DEVNULL)
|
||||
run(['systemctl', 'daemon-reload'], check=True)
|
||||
|
||||
|
||||
def service_is_running(servicename):
|
||||
@ -55,8 +53,7 @@ def service_is_running(servicename):
|
||||
Does not need to run as root.
|
||||
"""
|
||||
try:
|
||||
subprocess.run(['systemctl', 'status', servicename], check=True,
|
||||
stdout=subprocess.DEVNULL)
|
||||
run(['systemctl', 'status', servicename], check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
# If a service is not running we get a status code != 0 and
|
||||
@ -102,9 +99,7 @@ def service_is_enabled(service_name, strict_check=False):
|
||||
|
||||
"""
|
||||
try:
|
||||
process = subprocess.run(['systemctl', 'is-enabled', service_name],
|
||||
check=True, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.DEVNULL)
|
||||
process = run(['systemctl', 'is-enabled', service_name], check=True)
|
||||
if not strict_check:
|
||||
return True
|
||||
|
||||
@ -115,13 +110,13 @@ def service_is_enabled(service_name, strict_check=False):
|
||||
|
||||
def service_enable(service_name: str, check: bool = False):
|
||||
"""Enable and start a service in systemd."""
|
||||
subprocess.run(['systemctl', 'enable', service_name], check=check)
|
||||
run(['systemctl', 'enable', service_name], check=check)
|
||||
service_start(service_name, check=check)
|
||||
|
||||
|
||||
def service_disable(service_name: str, check: bool = False):
|
||||
"""Disable and stop service in systemd."""
|
||||
subprocess.run(['systemctl', 'disable', service_name], check=check)
|
||||
run(['systemctl', 'disable', service_name], check=check)
|
||||
try:
|
||||
service_stop(service_name, check=check)
|
||||
except subprocess.CalledProcessError:
|
||||
@ -130,12 +125,12 @@ def service_disable(service_name: str, check: bool = False):
|
||||
|
||||
def service_mask(service_name: str, check: bool = False):
|
||||
"""Mask a service"""
|
||||
subprocess.run(['systemctl', 'mask', service_name], check=check)
|
||||
run(['systemctl', 'mask', service_name], check=check)
|
||||
|
||||
|
||||
def service_unmask(service_name: str, check: bool = False):
|
||||
"""Unmask a service"""
|
||||
subprocess.run(['systemctl', 'unmask', service_name], check=check)
|
||||
run(['systemctl', 'unmask', service_name], check=check)
|
||||
|
||||
|
||||
def service_start(service_name: str, check: bool = False):
|
||||
@ -181,14 +176,14 @@ def service_get_logs(service_name: str) -> str:
|
||||
command = [
|
||||
'journalctl', '--no-pager', '--lines=200', '--unit', service_name
|
||||
]
|
||||
process = subprocess.run(command, check=False, stdout=subprocess.PIPE)
|
||||
process = run(command, check=False)
|
||||
return process.stdout.decode()
|
||||
|
||||
|
||||
def service_show(service_name: str) -> dict[str, str]:
|
||||
"""Return the status of the service in dictionary format."""
|
||||
command = ['systemctl', 'show', service_name]
|
||||
process = subprocess.run(command, check=False, stdout=subprocess.PIPE)
|
||||
process = run(command, check=False)
|
||||
status = {}
|
||||
for line in process.stdout.decode().splitlines():
|
||||
parts = line.partition('=')
|
||||
@ -199,8 +194,7 @@ def service_show(service_name: str) -> dict[str, str]:
|
||||
|
||||
def service_action(service_name: str, action: str, check: bool = False):
|
||||
"""Perform the given action on the service_name."""
|
||||
subprocess.run(['systemctl', action, service_name],
|
||||
stdout=subprocess.DEVNULL, check=check)
|
||||
run(['systemctl', action, service_name], check=check)
|
||||
|
||||
|
||||
def webserver_is_enabled(name, kind='config'):
|
||||
@ -211,8 +205,7 @@ def webserver_is_enabled(name, kind='config'):
|
||||
option_map = {'config': '-c', 'site': '-s', 'module': '-m'}
|
||||
try:
|
||||
# Don't print anything on the terminal
|
||||
subprocess.check_output(['a2query', option_map[kind], name],
|
||||
stderr=subprocess.STDOUT)
|
||||
run(['a2query', option_map[kind], name], check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
return False
|
||||
@ -234,7 +227,7 @@ def webserver_enable(name, kind='config', apply_changes=True):
|
||||
'site': 'a2ensite',
|
||||
'module': 'a2enmod'
|
||||
}
|
||||
subprocess.check_output([command_map[kind], name])
|
||||
run([command_map[kind], name], check=True)
|
||||
|
||||
action_required = 'restart' if kind == 'module' else 'reload'
|
||||
|
||||
@ -263,7 +256,7 @@ def webserver_disable(name, kind='config', apply_changes=True):
|
||||
'site': 'a2dissite',
|
||||
'module': 'a2dismod'
|
||||
}
|
||||
subprocess.check_output([command_map[kind], name])
|
||||
run([command_map[kind], name], check=True)
|
||||
|
||||
action_required = 'restart' if kind == 'module' else 'reload'
|
||||
|
||||
@ -391,7 +384,7 @@ def get_ip_addresses() -> list[dict[str, str | bool]]:
|
||||
"""Return a list of IP addresses assigned to the system."""
|
||||
addresses = []
|
||||
|
||||
output = subprocess.check_output(['ip', '-o', 'addr'])
|
||||
output = run(['ip', '-o', 'addr'], check=True).stdout
|
||||
for line in output.decode().splitlines():
|
||||
parts = line.split()
|
||||
address: dict[str, str | bool] = {
|
||||
@ -417,7 +410,7 @@ def get_ip_addresses() -> list[dict[str, str | bool]]:
|
||||
|
||||
def get_hostname():
|
||||
"""Return the current hostname."""
|
||||
return subprocess.check_output(['hostname']).decode().strip()
|
||||
return run(['hostname'], check=True).stdout.decode().strip()
|
||||
|
||||
|
||||
def dpkg_reconfigure(package, config):
|
||||
@ -440,7 +433,7 @@ Owners: {package}
|
||||
env['DEBCONF_DB_OVERRIDE'] = 'File{' + override_file.name + \
|
||||
' readonly:true}'
|
||||
env['DEBIAN_FRONTEND'] = 'noninteractive'
|
||||
subprocess.run(['dpkg-reconfigure', package], env=env, check=False)
|
||||
run(['dpkg-reconfigure', package], env=env, check=False)
|
||||
|
||||
try:
|
||||
os.remove(override_file.name)
|
||||
@ -454,12 +447,12 @@ def debconf_set_selections(presets):
|
||||
# Workaround Debian Bug #487300. In some situations, debconf complains
|
||||
# it can't find the question being answered even though it is supposed
|
||||
# to create a dummy question for it.
|
||||
subprocess.run(['/usr/share/debconf/fix_db.pl'], check=True)
|
||||
run(['/usr/share/debconf/fix_db.pl'], check=True)
|
||||
except (FileNotFoundError, PermissionError):
|
||||
pass
|
||||
|
||||
presets = '\n'.join(presets)
|
||||
subprocess.check_output(['debconf-set-selections'], input=presets.encode())
|
||||
run(['debconf-set-selections'], input=presets.encode(), check=True)
|
||||
|
||||
|
||||
def is_disk_image():
|
||||
@ -472,8 +465,7 @@ def is_disk_image():
|
||||
return os.path.exists('/var/lib/freedombox/is-freedombox-disk-image')
|
||||
|
||||
|
||||
def run_apt_command(arguments, stdout=subprocess.DEVNULL,
|
||||
enable_triggers: bool = False):
|
||||
def run_apt_command(arguments, enable_triggers: bool = False):
|
||||
"""Run apt-get with provided arguments."""
|
||||
command = ['apt-get', '--assume-yes', '--quiet=2'] + arguments
|
||||
|
||||
@ -481,8 +473,7 @@ def run_apt_command(arguments, stdout=subprocess.DEVNULL,
|
||||
env['DEBIAN_FRONTEND'] = 'noninteractive'
|
||||
if not enable_triggers:
|
||||
env['FREEDOMBOX_INVOKED'] = 'true'
|
||||
process = subprocess.run(command, stdin=subprocess.DEVNULL, stdout=stdout,
|
||||
env=env, check=False)
|
||||
process = run(command, stdin=subprocess.DEVNULL, env=env, check=False)
|
||||
return process.returncode
|
||||
|
||||
|
||||
@ -503,25 +494,24 @@ def apt_hold(packages):
|
||||
held_packages = []
|
||||
try:
|
||||
for package in packages:
|
||||
current_hold = subprocess.check_output(
|
||||
['apt-mark', 'showhold', package])
|
||||
current_hold = run(['apt-mark', 'showhold', package],
|
||||
check=True).stdout
|
||||
if not current_hold:
|
||||
process = subprocess.run(['apt-mark', 'hold', package],
|
||||
check=False)
|
||||
process = run(['apt-mark', 'hold', package], check=False)
|
||||
if process.returncode == 0: # success
|
||||
held_packages.append(package)
|
||||
|
||||
yield held_packages
|
||||
finally:
|
||||
for package in held_packages:
|
||||
subprocess.check_call(['apt-mark', 'unhold', package])
|
||||
run(['apt-mark', 'unhold', package], check=True)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def apt_hold_freedombox():
|
||||
"""Prevent freedombox package from being removed during apt operations."""
|
||||
current_hold = subprocess.check_output(
|
||||
['apt-mark', 'showhold', 'freedombox'])
|
||||
current_hold = run(['apt-mark', 'showhold', 'freedombox'],
|
||||
check=True).stdout
|
||||
try:
|
||||
if current_hold:
|
||||
# Package is already held, possibly by administrator.
|
||||
@ -530,7 +520,7 @@ def apt_hold_freedombox():
|
||||
# Set the flag.
|
||||
apt_hold_flag.parent.mkdir(mode=0o755, parents=True, exist_ok=True)
|
||||
apt_hold_flag.touch(mode=0o660)
|
||||
yield subprocess.check_call(['apt-mark', 'hold', 'freedombox'])
|
||||
yield run(['apt-mark', 'hold', 'freedombox'], check=True)
|
||||
finally:
|
||||
# Was the package held, either in this process or a previous one?
|
||||
if not current_hold or apt_hold_flag.exists():
|
||||
@ -539,9 +529,7 @@ def apt_hold_freedombox():
|
||||
|
||||
def apt_unhold_freedombox():
|
||||
"""Remove any hold on freedombox package, and clear flag."""
|
||||
subprocess.run(['apt-mark', 'unhold', 'freedombox'],
|
||||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
|
||||
check=False)
|
||||
run(['apt-mark', 'unhold', 'freedombox'], check=False)
|
||||
if apt_hold_flag.exists():
|
||||
apt_hold_flag.unlink()
|
||||
|
||||
@ -552,7 +540,7 @@ def is_package_manager_busy():
|
||||
is open which indicates that the package manager is busy"""
|
||||
LOCK_FILE = '/var/lib/dpkg/lock'
|
||||
try:
|
||||
subprocess.check_output(['lsof', LOCK_FILE])
|
||||
run(['lsof', LOCK_FILE], check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
return False
|
||||
@ -568,15 +556,14 @@ def podman_create(container_name: str, image_name: str, volume_name: str,
|
||||
service_stop(container_name)
|
||||
|
||||
# Data is kept
|
||||
subprocess.run(['podman', 'volume', 'rm', '--force', volume_name],
|
||||
check=False)
|
||||
run(['podman', 'volume', 'rm', '--force', volume_name], check=False)
|
||||
|
||||
directory = pathlib.Path('/etc/containers/systemd')
|
||||
directory.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Fetch the image before creating the container. The systemd service for
|
||||
# the container won't timeout due to slow internet connectivity.
|
||||
subprocess.run(['podman', 'image', 'pull', image_name], check=True)
|
||||
run(['podman', 'image', 'pull', image_name], check=True)
|
||||
|
||||
pathlib.Path(volume_path).mkdir(parents=True, exist_ok=True)
|
||||
# Create storage volume
|
||||
@ -735,10 +722,8 @@ def podman_disable(container_name: str):
|
||||
def podman_uninstall(container_name: str, volume_name: str, image_name: str,
|
||||
volume_path: str):
|
||||
"""Remove a podman container's components and systemd unit."""
|
||||
subprocess.run(['podman', 'volume', 'rm', '--force', volume_name],
|
||||
check=True)
|
||||
subprocess.run(['podman', 'image', 'rm', '--ignore', image_name],
|
||||
check=True)
|
||||
run(['podman', 'volume', 'rm', '--force', volume_name], check=True)
|
||||
run(['podman', 'image', 'rm', '--ignore', image_name], check=True)
|
||||
volume_file = pathlib.Path(
|
||||
'/etc/containers/systemd/') / f'{volume_name}.volume'
|
||||
volume_file.unlink(missing_ok=True)
|
||||
@ -825,8 +810,10 @@ def run_as_user(command, username, **kwargs):
|
||||
|
||||
def run(command, **kwargs):
|
||||
"""Run subprocess.run but capture stdout and stderr in thread storage."""
|
||||
collect_stdout = ('stdout' not in kwargs)
|
||||
collect_stderr = ('stderr' not in kwargs)
|
||||
collect_stdout = ('stdout' not in kwargs
|
||||
and 'capture_output' not in kwargs)
|
||||
collect_stderr = ('stderr' not in kwargs
|
||||
and 'capture_output' not in kwargs)
|
||||
|
||||
if collect_stdout:
|
||||
kwargs['stdout'] = subprocess.PIPE
|
||||
@ -834,11 +821,20 @@ def run(command, **kwargs):
|
||||
if collect_stderr:
|
||||
kwargs['stderr'] = subprocess.PIPE
|
||||
|
||||
process = subprocess.run(command, **kwargs)
|
||||
if collect_stdout and actions.thread_storage:
|
||||
actions.thread_storage.stdout += process.stdout
|
||||
try:
|
||||
process = subprocess.run(command, **kwargs)
|
||||
if collect_stdout and hasattr(actions.thread_storage, 'stdout'):
|
||||
actions.thread_storage.stdout += process.stdout
|
||||
|
||||
if collect_stderr and actions.thread_storage:
|
||||
actions.thread_storage.stderr += process.stderr
|
||||
if collect_stderr and hasattr(actions.thread_storage, 'stderr'):
|
||||
actions.thread_storage.stderr += process.stderr
|
||||
except subprocess.CalledProcessError as exception:
|
||||
if exception.stdout and hasattr(actions.thread_storage, 'stdout'):
|
||||
actions.thread_storage.stdout += exception.stdout
|
||||
|
||||
if exception.stderr and hasattr(actions.thread_storage, 'stderr'):
|
||||
actions.thread_storage.stderr += exception.stderr
|
||||
|
||||
raise exception
|
||||
|
||||
return process
|
||||
|
||||
@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
socket_path = '/run/freedombox/privileged.socket'
|
||||
|
||||
thread_storage = None
|
||||
thread_storage = threading.local()
|
||||
|
||||
|
||||
# An alias for 'str' to mark some strings as sensitive. Sensitive strings are
|
||||
@ -88,6 +88,9 @@ def _read_from_server(client_socket: socket.socket) -> bytes:
|
||||
|
||||
response += chunk
|
||||
|
||||
if not response:
|
||||
raise ConnectionError('Server returned empty response')
|
||||
|
||||
return json.loads(response)
|
||||
|
||||
|
||||
@ -170,8 +173,8 @@ def _wait_for_server_response(func, module_name, action_name, args, kwargs,
|
||||
module = importlib.import_module(return_value['exception']['module'])
|
||||
exception_class = getattr(module, return_value['exception']['name'])
|
||||
exception = exception_class(*return_value['exception']['args'])
|
||||
exception.stdout = return_value['exception']['stdout'].encode()
|
||||
exception.stderr = return_value['exception']['stderr'].encode()
|
||||
exception.stdout = return_value['exception'].get('stdout', b'').encode()
|
||||
exception.stderr = return_value['exception'].get('stderr', b'').encode()
|
||||
|
||||
def _get_html_message():
|
||||
"""Return an HTML format error that can be shown in messages."""
|
||||
@ -364,7 +367,6 @@ class JSONEncoder(json.JSONEncoder):
|
||||
def _setup_thread_storage():
|
||||
"""Setup collection of stdout/stderr from any process in this thread."""
|
||||
global thread_storage
|
||||
thread_storage = threading.local()
|
||||
thread_storage.stdout = b''
|
||||
thread_storage.stderr = b''
|
||||
|
||||
@ -376,14 +378,13 @@ def _clear_thread_storage():
|
||||
cleaned up after a thread terminates.
|
||||
"""
|
||||
global thread_storage
|
||||
if thread_storage:
|
||||
thread_storage.stdout = None
|
||||
thread_storage.stderr = None
|
||||
thread_storage = None
|
||||
thread_storage.stdout = None
|
||||
thread_storage.stderr = None
|
||||
|
||||
|
||||
def get_return_value_from_exception(exception):
|
||||
"""Return the value to return from server when an exception is raised."""
|
||||
global thread_storage
|
||||
return_value = {
|
||||
'result': 'exception',
|
||||
'exception': {
|
||||
@ -391,14 +392,10 @@ def get_return_value_from_exception(exception):
|
||||
'name': type(exception).__name__,
|
||||
'args': exception.args,
|
||||
'traceback': traceback.format_tb(exception.__traceback__),
|
||||
'stdout': '',
|
||||
'stderr': ''
|
||||
'stdout': getattr(thread_storage, 'stdout', b'').decode(),
|
||||
'stderr': getattr(thread_storage, 'stderr', b'').decode(),
|
||||
}
|
||||
}
|
||||
if thread_storage:
|
||||
return_value['exception']['stdout'] = thread_storage.stdout.decode()
|
||||
return_value['exception']['stderr'] = thread_storage.stderr.decode()
|
||||
|
||||
return return_value
|
||||
|
||||
|
||||
@ -431,8 +428,6 @@ def privileged_handle_json_request(
|
||||
|
||||
try:
|
||||
request = _parse_request()
|
||||
logger.info('Received request for %s..%s(..)', request['module'],
|
||||
request['action'])
|
||||
arguments = {'args': request['args'], 'kwargs': request['kwargs']}
|
||||
_setup_thread_storage()
|
||||
return_value = _privileged_call(request['module'], request['action'],
|
||||
@ -495,6 +490,8 @@ def _privileged_call(module_name, action_name, arguments):
|
||||
|
||||
_privileged_assert_valid_arguments(func, arguments)
|
||||
|
||||
_log_action(func, module_name, action_name, arguments['args'],
|
||||
arguments['kwargs'], run_in_background=False)
|
||||
try:
|
||||
return_values = func(*arguments['args'], **arguments['kwargs'])
|
||||
if isinstance(return_values, io.BufferedReader):
|
||||
@ -503,6 +500,11 @@ def _privileged_call(module_name, action_name, arguments):
|
||||
return_value = {'result': 'success', 'return': return_values}
|
||||
except Exception as exception:
|
||||
return_value = get_return_value_from_exception(exception)
|
||||
logger.exception(
|
||||
'Error running action: %s..%s(..): %s\nstdout:\n%s\nstderr:\n%s\n',
|
||||
module_name, action_name, exception,
|
||||
return_value['exception']['stdout'],
|
||||
return_value['exception']['stderr'])
|
||||
|
||||
return return_value
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@ pytest configuration for all tests.
|
||||
import importlib
|
||||
import os
|
||||
import pathlib
|
||||
import subprocess
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
@ -188,7 +187,8 @@ def fixture_mock_run_as_user():
|
||||
"""A fixture to override action_utils.run_as_user."""
|
||||
|
||||
def _bypass_runuser(*args, username, **kwargs):
|
||||
return subprocess.run(*args, **kwargs)
|
||||
from plinth import action_utils
|
||||
return action_utils.run(*args, **kwargs)
|
||||
|
||||
with patch('plinth.action_utils.run_as_user') as mock:
|
||||
mock.side_effect = _bypass_runuser
|
||||
|
||||
@ -91,6 +91,13 @@ class Daemon(app.LeaderComponent, log.LogEmitter):
|
||||
def ensure_running(self):
|
||||
"""Ensure a service is running and return to previous state."""
|
||||
from plinth.privileged import service as service_privileged
|
||||
|
||||
if action_utils.service_show(self.unit)['LoadState'] == 'not-found':
|
||||
# The service's package not installed yet, don't try to start it
|
||||
# and later stop it after it is installed.
|
||||
yield False # Not running
|
||||
return
|
||||
|
||||
starting_state = self.is_running()
|
||||
if not starting_state:
|
||||
service_privileged.enable(self.unit)
|
||||
|
||||
@ -6,12 +6,14 @@ Uses utilities from 'mysql-client' package such as 'mysql' and 'mysqldump'.
|
||||
|
||||
import subprocess
|
||||
|
||||
from .. import action_utils
|
||||
|
||||
|
||||
def run_query(database_name: str, query: str) -> subprocess.CompletedProcess:
|
||||
"""Run a database query using 'root' user.
|
||||
|
||||
Does not ensure that the database server is running.
|
||||
"""
|
||||
return subprocess.run(
|
||||
return action_utils.run(
|
||||
['mysql', '--user=root', '--database', database_name],
|
||||
input=query.encode('utf-8'), check=True)
|
||||
|
||||
@ -6,7 +6,6 @@ Uses utilities from 'postgres' package such as 'psql' and 'pg_dump'.
|
||||
|
||||
import os
|
||||
import pathlib
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
|
||||
@ -14,7 +13,7 @@ from plinth import action_utils
|
||||
def _run_as(command, **kwargs):
|
||||
"""Run a command as 'postgres' user."""
|
||||
command = ['sudo', '--user', 'postgres'] + command
|
||||
return subprocess.run(command, check=True, **kwargs)
|
||||
return action_utils.run(command, check=True, **kwargs)
|
||||
|
||||
|
||||
def run_query(query):
|
||||
|
||||
@ -51,8 +51,13 @@ def _run():
|
||||
|
||||
|
||||
def schedule(interval, method, data=None, in_thread=True, repeat=True,
|
||||
add_jitter=True):
|
||||
"""Schedule a recurring call to a method with fixed interval."""
|
||||
add_jitter=True, develop_interval=None):
|
||||
"""Schedule a recurring call to a method with fixed interval.
|
||||
|
||||
develop_interval is number of seconds to schedule the task after when
|
||||
running in development mode. A value of 180 seconds assumed if the value is
|
||||
set to None or 0.
|
||||
"""
|
||||
|
||||
def _runner():
|
||||
"""Run the target method and log and exceptions."""
|
||||
@ -74,8 +79,8 @@ def schedule(interval, method, data=None, in_thread=True, repeat=True,
|
||||
|
||||
# When running in development mode, reduce the interval for tasks so that
|
||||
# they are triggered quickly and frequently to facilitate debugging.
|
||||
if cfg.develop and interval > 180:
|
||||
interval = 180
|
||||
if cfg.develop:
|
||||
interval = min(interval, develop_interval or 180)
|
||||
|
||||
if add_jitter:
|
||||
# Add or subtract 5% random jitter to given interval to avoid many
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-04-16 02:28+0000\n"
|
||||
"Last-Translator: MohammedSaalif <2300031323@kluniversity.in>\n"
|
||||
"Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -36,27 +36,27 @@ msgstr "الخدمة {service_name} نشِطة"
|
||||
msgid "FreedomBox"
|
||||
msgstr "صندوق الحرية"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "الخدمة {service_name} نشِطة"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "يستمع لمنفذ {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "يستمع لمنفذ {kind} {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "اتصل بـ {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "يتعذر الاتصال بـ {host}:{port}"
|
||||
@ -220,12 +220,12 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "تسمح النسخ الاحتياطية بإنشاء وإدارة أرشيفات النسخ الاحتياطي."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "النسخ الاحتياطية"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"تمكين جدول النسخ الاحتياطي التلقائي لسلامة البيانات. تفضل موقع النسخ "
|
||||
"الاحتياطي عن بعد المشفر أو قرص إضافي متصل."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "تمكين جدول النسخ الاحتياطي"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "انتقل إلى {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"فشلت عملية النسخ الاحتياطي المجدولة. لم تنجح المحاولات السابقة للنسخ "
|
||||
"الاحتياطي البالغ عددها {error_count}. الخطأ الأخير هو: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "خطأ أثناء النسخ الاحتياطي"
|
||||
|
||||
@ -1548,76 +1548,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8033,7 +8033,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8376,14 +8376,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8391,25 +8391,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2020-06-10 15:41+0000\n"
|
||||
"Last-Translator: aiman an <an1f3@hotmail.com>\n"
|
||||
"Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/"
|
||||
@ -34,27 +34,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -211,37 +211,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1528,76 +1528,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8037,7 +8037,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8380,14 +8380,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8395,25 +8395,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -30,27 +30,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -205,37 +205,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1518,76 +1518,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7986,7 +7986,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8329,14 +8329,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8344,25 +8344,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-01 17:02+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 03:02+0000\n"
|
||||
"Last-Translator: 109247019824 "
|
||||
"<109247019824@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.13.1-dev\n"
|
||||
"X-Generator: Weblate 5.14-dev\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -34,27 +34,27 @@ msgstr "Контейнерът {container_name} работи"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Услугата {service_name} работи"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Слушане на {kind} порт {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Слушане на {kind} порт {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Свързване с {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Не може да се свърже с {host}:{port}"
|
||||
@ -218,12 +218,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Създаване и управление на архиви с резервни копия."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Резервни копия"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -232,19 +232,19 @@ msgstr ""
|
||||
"Предпочетете шифровано местоположение за отдалечено архивиране или "
|
||||
"допълнително свързан диск."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Включване на резервни копия по график"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Към {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"опита за създаване на резервно копие са безуспешни. Последната грешка е: "
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Грешка при създаване на резервно копие"
|
||||
|
||||
@ -705,24 +705,14 @@ msgid "Restore data from"
|
||||
msgstr "Възстановяване на данни от"
|
||||
|
||||
#: plinth/modules/backups/templates/backups_upload.html:17
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " Upload a backup file downloaded from another %(box_name)s to "
|
||||
#| "restore its\n"
|
||||
#| " contents. You can choose the apps you wish to restore after "
|
||||
#| "uploading a\n"
|
||||
#| " backup file.\n"
|
||||
#| " "
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Upload a backup file downloaded from another %(box_name)s to restore its "
|
||||
"contents. You can choose the apps you wish to restore after uploading a "
|
||||
"backup file."
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Качете резервно копие от %(box_name)s, за да го възстановите. Ще "
|
||||
"можете да изберете приложенията, които да бъдат възстановени.\n"
|
||||
" "
|
||||
"Качете резервно копие от %(box_name)s, за да го възстановите. Ще можете да "
|
||||
"изберете приложенията, които да бъдат възстановени."
|
||||
|
||||
#: plinth/modules/backups/templates/backups_upload.html:31
|
||||
#, python-format
|
||||
@ -1620,53 +1610,53 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Диагностика"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "пропусната"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "преминала"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "неуспех"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "грешка"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "предупреждение"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "МБ"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "ГБ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"За да намалее използваната памет, трябва да изключите някои приложения."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Не трябва да инсталирате нови приложения."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1675,25 +1665,25 @@ msgstr ""
|
||||
"Системата разполага с малко памет: използвана {percent_used} %, свободна "
|
||||
"{memory_available} {memory_available_unit}. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Паметта е малко"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Диагностициране"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
"По време на обичайната проверка са намерени {issue_count} неизправности."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Резултати от диагностиката"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Резултати от диагностиката"
|
||||
|
||||
@ -8417,7 +8407,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Обновяване на дистрибуцията"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Проверка за задържани от обновяване пакети"
|
||||
|
||||
@ -8457,15 +8447,7 @@ msgstr "Нови възможности"
|
||||
|
||||
#: plinth/modules/upgrades/templates/backports-firstboot.html:14
|
||||
#: plinth/modules/upgrades/templates/upgrades_configure.html:69
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Frequent feature updates allow the %(box_name)s Service, plus a very "
|
||||
#| "limited set of software, to receive new features more frequently (from "
|
||||
#| "the backports repository). This results in receiving some new features "
|
||||
#| "within weeks, instead of only once every 2 years or so. Note that "
|
||||
#| "software with frequent feature updates does not have support from the "
|
||||
#| "Debian Security Team. Instead, they are maintained by contributors to "
|
||||
#| "Debian and the %(box_name)s community."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Frequent feature updates allow the %(box_name)s Service, plus a very limited "
|
||||
"set of software, to receive new features more frequently (from the backports "
|
||||
@ -8477,11 +8459,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Честото обновяване на възможности помага на услугата на %(box_name)s, както "
|
||||
"и на много ограничен набор от софтуер да получават по-често нови възможности "
|
||||
"(от хранилището backports). Това води до получаване на някои нови "
|
||||
"възможности в рамките на седмици вместо веднъж на около 2 години. Обърнете "
|
||||
"внимание, че софтуерът с често обновяване на възможностите не се ползва от "
|
||||
"подкрепата на екипа по сигурността на Дебиан. Вместо това той се поддържа от "
|
||||
"сътрудници на Дебиан и общността на %(box_name)s."
|
||||
"(от хранилището backports или unstable). Това води до получаване на някои "
|
||||
"нови възможности в рамките на седмици вместо веднъж на около 2 години. "
|
||||
"Обърнете внимание, че софтуерът с често обновяване на възможностите не се "
|
||||
"ползва от подкрепата на екипа по сигурността на Дебиан. Вместо това той се "
|
||||
"поддържа от сътрудници на Дебиан и общността на %(box_name)s."
|
||||
|
||||
#: plinth/modules/upgrades/templates/backports-firstboot.html:26
|
||||
msgid ""
|
||||
@ -8846,7 +8828,7 @@ msgstr "Грешка при започване на обновяване."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Честото обновяване на пакети е включено."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -8857,7 +8839,7 @@ msgstr ""
|
||||
"получи достъп, някои приложения още имат изискване потребителският профил да "
|
||||
"бъде част от определена група."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8869,25 +8851,25 @@ msgstr ""
|
||||
"<em>администратори</em> могат да променят приложенията и настройките на "
|
||||
"системата."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Потребители и групи"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Достъп до всички услуги и системни настройки"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Проверете записа на LDAP „{search_item}“"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Проверете настройката на nslcd „{key} {value}“"
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Проверете настройката на nsswitch „{database}“"
|
||||
@ -9068,13 +9050,7 @@ msgid "The following administrator accounts exist in the system."
|
||||
msgstr "В системата съществуват следните администраторски профили."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:56
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Delete these accounts from command line and refresh the page to create an "
|
||||
#| "account that is usable with %(box_name)s. On the command line run the "
|
||||
#| "command \"echo '{\"args\": [\"USERNAME\", \"PASSWORD\"], \"kwargs\": {}}' "
|
||||
#| "| sudo /usr/share/plinth/actions/actions users remove_user\". If an "
|
||||
#| "account is already usable with %(box_name)s, skip this step."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
@ -9085,7 +9061,7 @@ msgstr ""
|
||||
"За да създадете профил, който може да бъде използван с %(box_name)s, "
|
||||
"премахнете тези профили от командния ред и презаредете страницата. От "
|
||||
"команднен ред изпълнете командата „echo '{\"args\": [\"USERNAME\", "
|
||||
"\"PASSWORD\"], \"kwargs\": {}}' | sudo /usr/share/plinth/actions/actions "
|
||||
"\"AUTH_USER\", \"AUTH_PASSWORD\"], \"kwargs\": {}}' | sudo freedombox-cmd "
|
||||
"users remove_user“. Ако профилът вече може да се използва с %(box_name)s, "
|
||||
"прескочете тази стъпка."
|
||||
|
||||
@ -10016,10 +9992,8 @@ msgid "Clear all tags"
|
||||
msgstr "Изчистване на всички етикети"
|
||||
|
||||
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Logs"
|
||||
msgid "View Logs"
|
||||
msgstr "Дневник"
|
||||
msgstr "Преглед на дневника"
|
||||
|
||||
#: plinth/templates/toolbar.html:46 plinth/templates/toolbar.html:47
|
||||
msgid "Backup"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-04-01 03:02+0000\n"
|
||||
"Last-Translator: MURALA SAI GANESH <saiganeshmurala@gmail.com>\n"
|
||||
"Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "সেবা {service_name} চলছে"
|
||||
msgid "FreedomBox"
|
||||
msgstr "ফ্রিডমবক্স"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "সেবা {service_name} চলছে"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "{kind} পোর্টে শ্রবণ {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} পোর্টে শোনা {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host} এর সাথে সংযুক্ত: {port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host} এ সংযুক্ত হতে পারে না: {port}"
|
||||
@ -211,37 +211,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1524,80 +1524,80 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "কারণ নির্ণয়"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "কারণ নির্ণয়"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostics"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "কারণ নির্ণয়"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8057,7 +8057,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8402,14 +8402,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8417,25 +8417,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-06-25 22:04+0000\n"
|
||||
"Last-Translator: kosagi <marti.torra@natana.cat>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "El servei {service_name} està en marxa"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "El servei {service_name} està en marxa"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Escoltant a {kind} port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Escoltant a {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Connecta't a {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "No s'ha pogut connectar a {host}:{port}"
|
||||
@ -223,12 +223,12 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Còpies de Seguretat permet crear i gestionar arxius de còpia de seguretat."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Còpies de Seguretat"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -237,19 +237,19 @@ msgstr ""
|
||||
"seguretat de les dades. Prefereix una ubicació de còpia de seguretat remota "
|
||||
"xifrada o un disc addicional connectat."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Activa una programació de Còpies de Seguretat"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Ves a {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -259,7 +259,7 @@ msgstr ""
|
||||
"intents de còpia de seguretat no han tingut èxit. L’últim error és: "
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Error al fer la Còpia de Seguretat"
|
||||
|
||||
@ -1685,52 +1685,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnòstics"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "omès"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "passat"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "fallat"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "error"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "avís"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Hauries de desactivar algunes aplicacions per reduir l'ús de memòria."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "No hauries d’instal·lar cap aplicació nova en aquest sistema."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1739,24 +1739,24 @@ msgstr ""
|
||||
"El sistema té poca memòria: {percent_used}% utilitzada, {memory_available} "
|
||||
"{memory_available_unit} lliures. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Memòria Baixa"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Executant diagnòstics"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "S'han trobat {issue_count} problemes durant les proves rutinàries."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Resultats del diagnòstic"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Ves als resultats del diagnòstic"
|
||||
|
||||
@ -8417,7 +8417,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8760,14 +8760,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8775,25 +8775,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-20 19:02+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-28 07:02+0000\n"
|
||||
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
|
||||
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/cs/>\n"
|
||||
@ -33,27 +33,27 @@ msgstr "Kontejner {container_name} je spuštěn"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Služba {service_name} je spuštěná"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Spojení očekáváno na {kind} portu {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Spojení očekáváno na {kind} portu {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Připojit k {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Nedaří se připojit k {host}:{port}"
|
||||
@ -215,12 +215,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Zálohy umožňují vytváření a správu zálohových archivů."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Zálohy"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -228,19 +228,19 @@ msgstr ""
|
||||
"Povolit automatický plán zálohování pro bezpečnost dat. Upřednostněte "
|
||||
"šifrované vzdálené umístění zálohování nebo další připojený disk."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Povolení plánu zálohování"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Jít na {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -249,7 +249,7 @@ msgstr ""
|
||||
"Naplánované zálohování se nezdařilo. Minulé pokusy o zálohování s počtem "
|
||||
"chyb {error_count} nebyly úspěšné. Poslední chyba je: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Chyba při zálohování"
|
||||
|
||||
@ -1640,54 +1640,56 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Tato aplikace také zobrazuje <a href=\"{logs_url}\">protokoly</a> pro služby "
|
||||
"{box_name}."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostika"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "přeskočeno"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "prošlo"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "selhalo"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "chyba"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "varování"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Měli byste zakázat některé aplikace, abyste snížili využití paměti."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Do tohoto systému byste neměli instalovat žádné nové aplikace."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1696,24 +1698,24 @@ msgstr ""
|
||||
"Systém má málo paměti: {percent_used}% využité, {memory_available} "
|
||||
"{memory_available_unit} volné. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Málo paměti"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Spuštění diagnostiky"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Při rutinních testech bylo nalezeno {issue_count} problémů."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Výsledky diagnostiky"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Přejít na výsledky diagnostiky"
|
||||
|
||||
@ -9067,7 +9069,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Aktualizace distribuce"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Kontrola zadržení balíčku"
|
||||
|
||||
@ -9478,7 +9480,7 @@ msgstr "Spouštění přechodu na novější verzi se nezdařilo."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Aktivovány časté aktualizace funkcí."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9489,7 +9491,7 @@ msgstr ""
|
||||
"aby uživatelský účet byl součástí skupiny, která uživatele opravňuje k "
|
||||
"přístupu k aplikaci."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9501,25 +9503,25 @@ msgstr ""
|
||||
"nebo nastavení systému však mohou měnit pouze uživatelé skupiny <em>admin</"
|
||||
"em>."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Uživatelé a skupiny"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Přístup ke všem službám a nastavení systému"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Zkontrolujte LDAP položku „{search_item}“"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Zkontrolujte konfiguraci nslcd \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Zkontrolujte konfiguraci nsswitch \" {database}\""
|
||||
@ -10437,13 +10439,7 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
@ -10453,29 +10449,23 @@ msgstr ""
|
||||
"Jedná se o interní chybu, kterou jste nezpůsobili ani ji nemůžete opravit. "
|
||||
"Nahlaste prosím chybu na <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">sledovači chyb</a>, abychom ji mohli opravit. K hlášení "
|
||||
"chyby prosím připojte také <a href=\"%(status_log_url)s\">status log</a>."
|
||||
"chyby prosím připojte také <a href=\"%(logs_url)s\">protokoly</a>."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "Instalace"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Toto je posledních %(num_lines)s řádků stavového protokolu pro toto webové "
|
||||
"rozhraní. Pokud chcete nahlásit chybu, použijte prosím <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">prohlížeč chyb</a> a "
|
||||
"připojte tento stavový protokol k hlášení chyby."
|
||||
"Toto jsou poslední řádky protokolů služeb souvisejících s touto aplikací. "
|
||||
"Pokud chcete nahlásit chybu, použijte prosím <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> a "
|
||||
"připojte tento protokol k hlášení o chybě."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
@ -10736,10 +10726,8 @@ msgid "Clear all tags"
|
||||
msgstr "Vymazat všechny štítky"
|
||||
|
||||
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Logs"
|
||||
msgid "View Logs"
|
||||
msgstr "Protokoly"
|
||||
msgstr "Zobrazit Protokoly"
|
||||
|
||||
#: plinth/templates/toolbar.html:46 plinth/templates/toolbar.html:47
|
||||
msgid "Backup"
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -36,27 +36,27 @@ msgstr "Tjenesten {service_name} er aktiv"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Tjenesten {service_name} er aktiv"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Lytter på {kind} port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Lytter på {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Forbind til {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Kan ikke forbinde til {host}:{port}"
|
||||
@ -234,23 +234,23 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Sikkerhedskopiering lader dig oprette og administrere sikkerhedskopier."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sikkerhedskopiering"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, fuzzy, python-brace-format
|
||||
@ -258,14 +258,14 @@ msgstr ""
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Om {box_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing Backups"
|
||||
msgid "Error During Backup"
|
||||
@ -1724,52 +1724,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnosticering"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "lykkedes"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "mislykkedes"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "fejl"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Du bør deaktivere nogle applikationer for at frigøre hukommelse."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Du bør ikke installere flere applikationer på dette system."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1779,28 +1779,28 @@ msgstr ""
|
||||
"{memory_available} {memory_available_unit} fri{percent_used}{percent_used}. "
|
||||
"{advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Lav hukommelse"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Kør Diagnostik"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Diagnostiske Resultater"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9269,7 +9269,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Automatisk opdatering deaktiveret"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9658,14 +9658,14 @@ msgstr "Kunne ikke starte opdatering."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9673,25 +9673,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Brugere og Grupper"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Kontrol af LDAP-konfiguration \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-11 18:01+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 19:01+0000\n"
|
||||
"Last-Translator: Dietmar <sagen@permondes.de>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/de/>\n"
|
||||
@ -35,27 +35,27 @@ msgstr "Container {container_name} wird ausgeführt"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Der Dienst {service_name} wird ausgeführt"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Gebunden auf {kind} Port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Gebunden an {kind} Port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Verbinden mit {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Verbindung mit {host}:{port} fehlgeschlagen"
|
||||
@ -221,12 +221,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Erstellen und Verwalten von Sicherungs-Archiven."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sicherungen"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -235,19 +235,19 @@ msgstr ""
|
||||
"Bevorzugen Sie einen verschlüsselten Remote-Backup-Speicherort oder einen "
|
||||
"zusätzlich angeschlossenen Datenträger."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Aktivieren eines Sicherungszeitplans"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Gehe zu {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -257,7 +257,7 @@ msgstr ""
|
||||
"Versuche zur Sicherung waren nicht erfolgreich. Der letzte Fehler ist: "
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Fehler beim Sichern"
|
||||
|
||||
@ -1680,56 +1680,58 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Diese App zeigt auch die <a href=\"{logs_url}\">Protokolle</a> für "
|
||||
"{box_name} Dienste an."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnose"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "übersprungen"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "bestanden"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "gescheitert"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "Fehler"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "Warnung"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Sie sollten einige Anwendungen deaktivieren, um den Speicherverbrauch zu "
|
||||
"reduzieren."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Sie sollten auf diesem System keine neuen Anwendungen installieren."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1738,24 +1740,24 @@ msgstr ""
|
||||
"Das System hat wenig Speicherplatz: {percent_used}% verwendet, "
|
||||
"{memory_available}·{memory_available_unit}frei. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Wenig Speicher"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Laufende Diagnosen"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Bei Routinetests wurden {issue_count} Probleme gefunden."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Diagnose-Ergebnisse"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Zu Diagnose-Ergebnisse gehen"
|
||||
|
||||
@ -9263,7 +9265,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Distributionsaktualisierung"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Auf Paket-Sperren überprüfen"
|
||||
|
||||
@ -9693,7 +9695,7 @@ msgstr "Starten der Aktualisierung fehlgeschlagen."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Häufige Funktions-Updates aktiviert."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9704,7 +9706,7 @@ msgstr ""
|
||||
"muss ein Benutzerkonto Teil einer Gruppe sein, damit ein Benutzer auf die "
|
||||
"App zugreifen kann."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9716,25 +9718,25 @@ msgstr ""
|
||||
"dürfen nur Mitglieder der Gruppe <em>admin</em> Apps oder "
|
||||
"Systemeinstellungen ändern."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Benutzer und Gruppen"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Zugriff auf alle Anwendungen und Systemeinstellungen"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP-Eintrag „{search_item}“ prüfen"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Prüfen Sie die nslcd-Konfiguration \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Prüfen Sie die nsswitch-Konfiguration \"{database}\""
|
||||
@ -10687,46 +10689,35 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">bug tracker</a> so we can fix it. Also, please attach "
|
||||
"the <a href=\"%(logs_url)s\">logs</a> to the bug report."
|
||||
msgstr ""
|
||||
"Dies ist ein interner Fehler und nicht etwas, das Sie verursacht haben oder "
|
||||
"beheben können. Bitte melden Sie den Fehler im <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">online Fehlermelder</"
|
||||
"a>, so dass wir ihn beheben können. Fügen Sie auch das <a "
|
||||
"href=\"%(status_log_url)s\">Statusprotokoll</a> dem Fehlerbericht bei."
|
||||
"Dies ist ein interner Fehler, den Sie weder verursacht haben noch beheben "
|
||||
"können. Bitte melden Sie den Fehler im <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">Bug-Tracker</a>, damit wir ihn beheben "
|
||||
"können. Fügen Sie dem Fehlerbericht bitte auch die <a "
|
||||
"href=\"%(logs_url)s\">Protokolle</a> bei."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "Installation"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Dies sind die letzten %(num_lines)s Zeilen des Statusprotokolls der "
|
||||
"Weboberfläche. Bitte melden Sie den Fehler im <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">online Fehlerverfolger</"
|
||||
"a> und fügen diese Ausgabe hinzu."
|
||||
"Dies sind die letzten Zeilen der Protokolle für Dienste, die an dieser App "
|
||||
"beteiligt sind. Wenn Sie einen Fehler melden möchten, verwenden Sie bitte "
|
||||
"den <a href=\"https://salsa.debian.org/freedombox-team/freedombox/"
|
||||
"issues\">Bug-Tracker</a> und fügen Sie dieses Protokoll dem Fehlerbericht "
|
||||
"bei."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -31,27 +31,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -206,37 +206,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1519,76 +1519,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7987,7 +7987,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8330,14 +8330,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8345,25 +8345,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,29 +34,29 @@ msgstr "Το πρόγραμμα {service_name} είναι ενεργοποιημ
|
||||
msgid "FreedomBox"
|
||||
msgstr "Freedombox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Το πρόγραμμα {service_name} είναι ενεργοποιημένο"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
"Το πρόγραμμα είναι προσβάσιμο στο πρωτόκολλο {kind} στη διεύθυνση "
|
||||
"{listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Το πρόγραμμα είναι προσβάσιμο στο πρωτόκολλο {kind} στη θύρα {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Συνδεθείτε στη διεύθυνση {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Δεν είναι δυνατή η σύνδεση στη διεύθυνση {host}:{port}"
|
||||
@ -238,23 +238,23 @@ msgstr ""
|
||||
"Τα αντίγραφα ασφαλείας επιτρέπουν τη δημιουργία και τη διαχείριση εφεδρικών "
|
||||
"αρχείων (backups)."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Αντίγραφα ασφαλείας"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, fuzzy, python-brace-format
|
||||
@ -262,14 +262,14 @@ msgstr ""
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Σχετικά με το {box_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing Backups"
|
||||
msgid "Error During Backup"
|
||||
@ -1752,86 +1752,86 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Διαγνωστικά"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#, fuzzy
|
||||
#| msgid "Quassel"
|
||||
msgid "passed"
|
||||
msgstr "Quassel"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Setup failed."
|
||||
msgid "failed"
|
||||
msgstr "Η εγκατάσταση απέτυχε."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Git"
|
||||
msgid "GiB"
|
||||
msgstr "Git"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Εκτέλεση διαγνωστικών"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Αποτελέσματα διαγνωστικών τεστ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9503,7 +9503,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Oι αυτόματες ενημερώσεις απενεργοποιήθηκαν"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9892,7 +9892,7 @@ msgstr "Η εκκίνηση της αναβάθμισης απέτυχε."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Create and managed user accounts. These accounts serve as centralized "
|
||||
@ -9909,7 +9909,7 @@ msgstr ""
|
||||
"είναι μέρος μιας ομάδας για να εξουσιοδοτήσουν το χρήστη να αποκτήσει "
|
||||
"πρόσβαση στην εφαρμογή."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9921,25 +9921,25 @@ msgstr ""
|
||||
"σελίδα. Ωστόσο, μόνο οι χρήστες της ομάδας <em>admin</em> μπορούν να "
|
||||
"τροποποιήσουν τις εφαρμογές ή τις ρυθμίσεις του συστήματος."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Χρήστες και ομάδες"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Πρόσβαση σε όλες τις υπηρεσίες και τις ρυθμίσεις συστήματος"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Ελέγξτε την καταχώρηση LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2024-11-01 17:00+0000\n"
|
||||
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "{service_name} se está ejecutando"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "{service_name} se está ejecutando"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Escuchando en el puerto {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Escuchando en el puerto {port} {kind}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Conectar a {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "No se pudo conectar a {host}:{port}"
|
||||
@ -230,12 +230,12 @@ msgstr ""
|
||||
"Copias de seguridad le permite crear y gestionar archivos de copia de "
|
||||
"seguridad."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Copias de seguridad"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -243,19 +243,19 @@ msgstr ""
|
||||
"Por la seguridad de sus datos habilite un respaldo agendado. Preferíblemente "
|
||||
"uno remoto o en un disco externo."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Habilitar un respaldo agendado"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Ir a {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -264,7 +264,7 @@ msgstr ""
|
||||
"Falló un respaldo agendado. Los últimos {error_count} intentos no lo "
|
||||
"lograron. El último fallo es: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Error al respaldar"
|
||||
|
||||
@ -1715,53 +1715,53 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnósticos"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "omitido"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "ok."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "Falló"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "error"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "aviso"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Habría que deshabilitar algunas apps para reducir el consumo de memoria."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Hay que evitar instalar más apps en este sistema."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1770,25 +1770,25 @@ msgstr ""
|
||||
"El sistema va justo de memoria: {percent_used}% usada, {memory_available} "
|
||||
"{memory_available_unit} libres. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Poca memoria libre"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Ejecutando los diagnósticos"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
"Se han encontrado {issue_count} problemas durante las pruebas rutinarias."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Resultados de los diagnósticos"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Ir a los resultados de los diagnósticos"
|
||||
|
||||
@ -9333,7 +9333,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Iniciada la actualización de la distribución"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Comprobar si hay paquetes retenidos"
|
||||
|
||||
@ -9740,7 +9740,7 @@ msgstr "No se ha podido iniciar la actualización."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Las actualizaciones funcionales frecuentes están activadas."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9751,7 +9751,7 @@ msgstr ""
|
||||
"requieren que además la cuenta de usuario conste en un grupo para "
|
||||
"autorizarles a acceder."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9763,25 +9763,25 @@ msgstr ""
|
||||
"sólo los usuarios del grupo <em>admin</em> pueden cambiar configuraciones de "
|
||||
"apps o del sistema."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Usuarias/os y grupos"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Acceso a todos los servicios y configuraciones del sistema"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Comprobar la entrada LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Comprobar la configuración de nslcd \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Comprueba la configuración del nsswitch \"{database}\""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-07-20 18:01+0000\n"
|
||||
"Last-Translator: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "{service_name} teenus töötab"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "{service_name} teenus töötab"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -209,37 +209,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Viga varundamisel"
|
||||
|
||||
@ -1524,76 +1524,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7992,7 +7992,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8335,14 +8335,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8350,25 +8350,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -35,27 +35,27 @@ msgstr "سرویس {service_name} در حال اجراست"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "سرویس {service_name} در حال اجراست"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, fuzzy, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "در حال گوش دادن به پورت {kind} در {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, fuzzy, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "در حال گوش دادن به پورت {kind} یعنی {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, fuzzy, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "اتصال به {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, fuzzy, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "نمیتوان به {host}:{port} وصل شد"
|
||||
@ -231,37 +231,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "رفتن به {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "خظا هنگام پشتیبانگیری"
|
||||
|
||||
@ -1698,80 +1698,80 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "عیبیابی"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "اجرای عیبیابی"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "نتیجهٔ عیبیابی"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -8851,7 +8851,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "برنامه نصب شد."
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9213,14 +9213,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9228,25 +9228,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth 0.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2016-01-31 22:24+0530\n"
|
||||
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
|
||||
"Language-Team: Plinth Developers <freedombox-"
|
||||
@ -33,29 +33,29 @@ msgstr "SERVICE DISCOVERY SERVER IS RUNNING"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FREEDOMBOX"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Service discovery server is running"
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "SERVICE DISCOVERY SERVER IS RUNNING"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "LISTENING ON {kind} PORT {listen_address}:{port}"
|
||||
|
||||
# LISTENING ON {kind} PORT {port}
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "LISTENING ON {kind} PORT {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "CONNECT TO {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "CANNOT CONNECT TO {host}:{port}"
|
||||
@ -241,23 +241,23 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, fuzzy, python-brace-format
|
||||
@ -265,14 +265,14 @@ msgstr ""
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "ABOUT {box_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing custom services"
|
||||
msgid "Error During Backup"
|
||||
@ -1756,82 +1756,82 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "DIAGNOSTICS"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Setup failed."
|
||||
msgid "failed"
|
||||
msgstr "SETUP FAILED."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "RUN DIAGNOSTICS"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "DIAGNOSTIC RESULTS"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9297,7 +9297,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "AUTOMATIC UPGRADES DISABLED"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9684,14 +9684,14 @@ msgstr "STARTING UPGRADE FAILED."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9699,25 +9699,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "USERS AND GROUPS"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "CHECK LDAP ENTRY \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-08-21 09:02+0000\n"
|
||||
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -33,27 +33,27 @@ msgstr "Le conteneur {container_name} est actif"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Le service {service_name} est actif"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Écoute sur le port {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Écoute sur le port {kind} {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Connexion à {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Impossible de se connecter à {host}:{port}"
|
||||
@ -219,12 +219,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Sauvegardes permet de créer et de gérer des archives de sauvegarde."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sauvegardes"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"données. Il est préférable d’utiliser un emplacement de sauvegarde distant "
|
||||
"et chiffré, ou un disque externe additionnel."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Activer la planification des sauvegardes"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Aller à {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"Une sauvegarde régulière a échoué après {error_count} tentatives. Le dernier "
|
||||
"message d’erreur était : {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Erreur pendant la sauvegarde"
|
||||
|
||||
@ -1700,54 +1700,54 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostics"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "ignoré"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "réussi"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "échoué"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "erreur"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "avertissement"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "Mio"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "Gio"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Vous devriez désactiver certaines application pour libérer de la mémoire."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
"Il est déconseillé d’installer de nouvelles applications sur ce système."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1756,24 +1756,24 @@ msgstr ""
|
||||
"Le système est bientôt à court de mémoire : {percent_used}% utilisés, "
|
||||
"{memory_available} {memory_available_unit} libres. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Mémoire disponible faible"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Diagnostics en cours"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "{issue_count} problèmes trouvés lors des tests de routine."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Résultats des diagnostics"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Aller aux résultats des diagnostics"
|
||||
|
||||
@ -9314,7 +9314,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Mise à jour de la distribution"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Vérifier la mise en attente des paquets"
|
||||
|
||||
@ -9760,7 +9760,7 @@ msgstr "Le lancement de la mise à niveau a échoué."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Mise à jour régulière des fonctionnalités activée."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9771,7 +9771,7 @@ msgstr ""
|
||||
"Certaines applis demandent en outre que les comptes soient membres d’un "
|
||||
"groupe particulier pour pouvoir accéder à l’application."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9783,25 +9783,25 @@ msgstr ""
|
||||
"principale. En revanche, seuls les utilisateurs membres du groupe <em>admin</"
|
||||
"em> peuvent modifier les applications ou changer les paramètres système."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Utilisateurs et groupes"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Accès à tous les services et à la configuration du système"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Vérification de l’entrée LDAP « {search_item} »"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Vérifier la configuration nslcd \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Vérifier la configuration nsswitch \"{database}\""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-12-30 10:51+0000\n"
|
||||
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
|
||||
"Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -33,27 +33,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Escoitando no porto {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Escoitando no porto {kind} {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Conectar a {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Non é posíbel conectar con {host}:{port}"
|
||||
@ -214,37 +214,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1531,76 +1531,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8042,7 +8042,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8389,14 +8389,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8404,25 +8404,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -33,27 +33,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "ફ્રિડમબોક્ષ"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "સાંભળે છે {kind} પોર્ટ {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "સાંભળે છે {kind} પોર્ટ {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}:{port} ને સંપર્ક કરો"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host}:{port} નો સંપર્ક નથી સાધી શકતા"
|
||||
@ -222,37 +222,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1630,80 +1630,80 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "તપાસ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "તપાસ કરો"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "તપાસના પરિણામો"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -8456,7 +8456,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8829,14 +8829,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8844,25 +8844,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-04-29 16:30+0000\n"
|
||||
"Last-Translator: Thulasi Edhala <thulasiedhala@gmail.com>\n"
|
||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "सेवा {service_name} चल रहा है"
|
||||
msgid "FreedomBox"
|
||||
msgstr "स्वतंत्रता बॉक्स"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "सेवा {service_name} चल रहा है"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, fuzzy, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "{kind} में सुन कर पोर्ट {listen_address} :{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} में सुन कर पोर्ट{port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}:{port} से जुड़े"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host}:{port} से नहीं जोड़ सखता"
|
||||
@ -219,12 +219,12 @@ msgstr "एमडीएनएस"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "बैकअपस पुरालेखागार बनाने और प्रबंधित करने की अनुमति देता है।"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "बैकअप"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -232,19 +232,19 @@ msgstr ""
|
||||
"डेटा सुरक्षा के लिए स्वचालित बैकअप शेड्यूल सक्षम करें। एन्क्रिप्टेड रिमोट बैकअप स्थान या "
|
||||
"अतिरिक्त संलग्न डिस्क को प्राथमिकता दें।"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "बैकअप शेड्यूल सक्षम करें"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "{app_name} पर जाएं"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -253,7 +253,7 @@ msgstr ""
|
||||
"शेड्यूल किया गया बैकअप विफल रहा। बैकअप के लिए पिछले {error_count} प्रयास सफल नहीं हुए। "
|
||||
"नवीनतम त्रुटि यह है: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "बैकअप के दौरान त्रुटि"
|
||||
|
||||
@ -1729,56 +1729,56 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "निदानिकी"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#, fuzzy
|
||||
#| msgid "Quassel"
|
||||
msgid "passed"
|
||||
msgstr "क्वासेल"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Setup failed."
|
||||
msgid "failed"
|
||||
msgstr "सेटअप विफल."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "आपको इस सिस्टम पर कोई नया ऐप इंस्टॉल नहीं करना चाहिए।"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1787,28 +1787,28 @@ msgstr ""
|
||||
"सिस्टम में मेमोरी कम है: {percent_used}% उपयोग हो चुकी है, {memory_available} "
|
||||
"{memory_available_unit} खाली है। {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "कम मेमोरी"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "निदानिकी चलिये"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "निदानिकी का परिणाम"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9298,7 +9298,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "ऑटोमेटिक अपग्रेडस अक्षम किया गया"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9686,14 +9686,14 @@ msgstr "अपग्रेड प्रारंभ करना विफल
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9701,25 +9701,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "यूसरस और समूह"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "सब सर्विसस और सिस्टम सेटिंग्स तक पहुंच"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "एलडीएपी प्रविष्टि चेक करें \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-06-04 15:01+0000\n"
|
||||
"Last-Translator: András Szűcs "
|
||||
"<andrascc86288f63c44cb5@users.noreply.hosted.weblate.org>\n"
|
||||
@ -35,27 +35,27 @@ msgstr "A szolgáltatás fut: {service_name}"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "A szolgáltatás fut: {service_name}"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Figyelés a {kind} porton: {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Figyelés {kind} porton: {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Csatlakozás ide: {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Nem lehet ide csatlakozni: {host}:{port}"
|
||||
@ -225,12 +225,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Lehetővé teszi a biztonsági mentés létrehozását és kezelését."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Biztonsági mentések"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -238,19 +238,19 @@ msgstr ""
|
||||
"Automatikus biztonsági mentések ütemezésének engedélyezése. Ha lehet, "
|
||||
"használj egy titkosított távoli helyet, vagy egy extra külső lemezt."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Ütemezett biztonsági mentés engedélyezése"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Ugrás ide: {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -260,7 +260,7 @@ msgstr ""
|
||||
"mentésre tett próbálkozás nem sikerült. A legutóbbi hibaüzenet: "
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Hiba történt a biztonsági mentés közben"
|
||||
|
||||
@ -1724,52 +1724,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Hibaellenőrzés"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "sikerült"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "sikertelen"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "hiba"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "figyelmeztetés"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "A memóriahasználat csökkentése érdekében tilts le néhány alkalmazást."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Ne telepíts további alkalmazásokat erre a rendszerre."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1778,28 +1778,28 @@ msgstr ""
|
||||
"A rendszerben kevés a memória: {percent_used}% használt, "
|
||||
"{memory_available} {memory_available_unit} szabad. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Kevés a memória"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Ellenőrzés indítása"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Az ellenőrzés eredménye"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9442,7 +9442,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "A disztribúció frissítése elindult"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9851,7 +9851,7 @@ msgstr "A frissítést nem sikerült elindítani."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Gyakori funkciófrissítések aktiválva."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9862,7 +9862,7 @@ msgstr ""
|
||||
"alkalmazások megkövetelik továbbá, hogy a felhasználói fiók egy csoport "
|
||||
"tagja legyen, hogy a felhasználó hozzáférhessen az alkalmazáshoz."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9874,25 +9874,25 @@ msgstr ""
|
||||
"az <em>admin</em> csoport felhasználói módosíthatják az alkalmazásokat vagy "
|
||||
"a rendszerbeállításokat."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Felhasználók és csoportok"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Hozzáférés az összes szolgáltatáshoz és rendszerbeállításhoz"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP-bejegyzés ellenőrzése: \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Indonesian (FreedomBox)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -29,27 +29,27 @@ msgstr "Layanan {service_name} sedang berjalan"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Layanan {service_name} sedang berjalan"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Mendengarkan pada {kind} port {listen_address}: {port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Mendengarkan {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Terhubung ke {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Tidak dapat terhubung ke {host}:{port}"
|
||||
@ -224,12 +224,12 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Cadangan memungkinkan membuat dan mengelola arsip cadangan."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Cadangan"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -237,19 +237,19 @@ msgstr ""
|
||||
"Aktifkan jadwal cadangan otomatis untuk keamanan data. Lebih disukai lokasi "
|
||||
"cadangan jarak jauh terenkripsi atau disk terlampir tambahan."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Aktifkan jadwal cadangan"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Pergi ke {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -258,7 +258,7 @@ msgstr ""
|
||||
"Cadangan yang dijadwalkan gagal. Masalah {error_count} untuk cadangan tidak "
|
||||
"berhasil. Kesalahan terbaru adalah: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Kesalahan saat cadangan"
|
||||
|
||||
@ -1699,54 +1699,54 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnosa"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "LULUS"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "gagal"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "kesalahan"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "peringatan"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MIB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GIB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Anda harus menonaktifkan beberapa aplikasi untuk mengurangi penggunaan "
|
||||
"memori."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Kamu seharusnya tidak menginstal aplikasi baru di sistem ini."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1755,28 +1755,28 @@ msgstr ""
|
||||
"Sistem rendah pada memori: {percent_used}% digunakan, {memory_available} "
|
||||
"{memory_available_unit} gratis. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Memori rendah"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Jalankan Diagnosa"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Hasil Diagnosa"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -8788,7 +8788,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Pembaruan distribusi dimulai"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9161,14 +9161,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9176,25 +9176,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-11 18:02+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 19:02+0000\n"
|
||||
"Last-Translator: Dietmar <sagen@permondes.de>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/it/>\n"
|
||||
@ -33,27 +33,27 @@ msgstr "Il contenitore {container_name} è in esecuzione"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Il servizio {service_name} è in esecuzione"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "In ascolto sulla porta {kind}{listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "In ascolto sulla porta{port}:{kind}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Connessione a {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Impossibile connettersi a {host}:{port}"
|
||||
@ -217,37 +217,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Backups consente di creare e gestire archivi di backup."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Backup"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Abilita una schedulazione del Backup"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Vai a {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Errore durante il backup"
|
||||
|
||||
@ -1617,78 +1617,80 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Questa app mostra anche i <a href=\"{logs_url}\">log</a> per i servizi "
|
||||
"{box_name}."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostica"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "superato"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "fallito"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Esecuzione Diagnostica"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Risultati Diagnostica"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Vai ai risultati diagnostici"
|
||||
|
||||
@ -8521,7 +8523,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Aggiornamento della distribuzione"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8872,14 +8874,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8887,25 +8889,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
@ -9739,13 +9741,7 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
@ -9755,30 +9751,24 @@ msgstr ""
|
||||
"Si tratta di un errore interno e non di qualcosa che hai causato o che puoi "
|
||||
"correggere. Si prega di segnalare l'errore sul <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> in modo "
|
||||
"da poterlo correggere. Inoltre, si prega di allegare il <a "
|
||||
"href=\"%(status_log_url)s\">status log</a> alla segnalazione del bug."
|
||||
"da poterlo correggere. Inoltre, si prega di allegare i <a "
|
||||
"href=\"%(logs_url)s\">status log</a> alla segnalazione del bug."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Queste sono le ultime %(num_lines)s del status log di questa interfaccia "
|
||||
"web. Se vuoi riportare un bug, prego usa il <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> e "
|
||||
"allega questo status log report del bug."
|
||||
"Queste sono le ultime righe dei status log di questa app. Se vuoi riportare "
|
||||
"un bug, prego usa il <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">bug tracker</a> e allega questo status log report del "
|
||||
"bug."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2023-05-07 23:50+0000\n"
|
||||
"Last-Translator: Nobuhiro Iwamatsu <iwamatsu@gmail.com>\n"
|
||||
"Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "サービス {service_name} は動作中です"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "サービス {service_name} は動作中です"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "{kind} port {listen_address}:{port} を 待受中"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} port {port} を待ち受け中"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}:{port} に接続する"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host}:{port} に接続できません"
|
||||
@ -209,37 +209,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1524,76 +1524,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7994,7 +7994,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8337,14 +8337,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8352,25 +8352,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2020-07-16 16:41+0000\n"
|
||||
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
|
||||
"Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -33,27 +33,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -208,37 +208,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1521,76 +1521,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7991,7 +7991,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8334,14 +8334,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8349,25 +8349,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -35,27 +35,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -210,37 +210,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1527,76 +1527,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8015,7 +8015,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8358,14 +8358,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8373,25 +8373,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -209,37 +209,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1526,76 +1526,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8014,7 +8014,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8357,14 +8357,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8372,25 +8372,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -15,7 +15,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2024-10-27 23:30+0000\n"
|
||||
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||
@ -42,27 +42,27 @@ msgstr "Tjenesten {service_name} kjører"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Tjenesten {service_name} kjører"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Lytter på {kind} port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Lytter på {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Koble til {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Klarer ikke koble til {host}:{port}"
|
||||
@ -233,12 +233,12 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Sikkerhetskopier tillater opprettelse og behandling av sikkerhetskopiarkiver."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sikkerhetskopier"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -247,19 +247,19 @@ msgstr ""
|
||||
"Bruke helst et kryptert fjernlager eller en ekstern ekstradisk som "
|
||||
"sikkerhetslager."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Aktiver sikkerhetskopitidsplan"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Gå til {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -268,7 +268,7 @@ msgstr ""
|
||||
"En sikkerhetskopi på tidsplanen feilet. De {error_count} foregående "
|
||||
"forsøkene lyktes heller ikke. Den siste feilen er: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Feil under sikkerhetskopiering"
|
||||
|
||||
@ -1713,84 +1713,84 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostikk"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#, fuzzy
|
||||
#| msgid "Quassel"
|
||||
msgid "passed"
|
||||
msgstr "Quassel"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "feilet"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "feil"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Git"
|
||||
msgid "GiB"
|
||||
msgstr "Git"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Du bør skru av noen programmer for å redusere minnebruken."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Du bør ikke installere noen nye programmer på dette systemet."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Lite minne"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Kjør diagnostikk"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Diagnostikkresultater"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -9380,7 +9380,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Automatiske oppgraderinger avslått (deaktivert)"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9770,7 +9770,7 @@ msgstr "Å starte oppgradering (upgrade) mislyktes."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9781,7 +9781,7 @@ msgstr ""
|
||||
"kan kreve at en brukerkonto er medlem av en gruppe for å gi brukeren tilgang "
|
||||
"til programmet."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9792,25 +9792,25 @@ msgstr ""
|
||||
"liste over programmer som er relevante for dem på hjemmesiden. Dog kan kun "
|
||||
"brukere av <em>admin</em>-gruppen endre programmer eller systeminnstillinger."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Brukere og grupper"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Tilgang til alle tjenester og systeminnstillinger"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Sjekk LDAP-oppføring «{search_item}»"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-17 09:01+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -35,27 +35,27 @@ msgstr "Container {container_name} wordt uitgevoerd"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Service {service_name} wordt uitgevoerd"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Luistert op {kind} poort {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Luistert op {kind} poort {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Verbind met {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Kan niet verbinden met {host}:{port}"
|
||||
@ -219,12 +219,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Met back-ups kun je back-uparchieven maken en beheren."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Back-ups"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"verhogen. Gebruik bij voorkeur een versleutelde externe back-uplocatie of "
|
||||
"een extra aangesloten schijf."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Een back-upschema inschakelen"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Ga naar {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"Een geplande back-up is mislukt. De vorige {error_count} back-up pogingen "
|
||||
"zijn ook niet gelukt. De laatste fout was: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Fout tijdens back-up"
|
||||
|
||||
@ -1661,53 +1661,53 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnose"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "overgeslagen"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "geslaagd"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "mislukt"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "fout"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "waarschuwing"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Door toepassingen uit te schakelen kan het geheugengebruik worden verminderd."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Extra toepassingen installeren wordt afgeraden."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1716,24 +1716,24 @@ msgstr ""
|
||||
"Systeem heeft weinig geheugen beschikbaar: {percent_used}% gebruikt, "
|
||||
"{memory_available} {memory_available_unit} vrij. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Geheugengebrek"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Voer diagnose uit"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "{issue_count} problemen gevonden tijdens routinetests."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Resultaten van diagnose"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Ga naar resultaten van diagnose"
|
||||
|
||||
@ -9041,7 +9041,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Distributie-update"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Controleer op blokkerende pakketten"
|
||||
|
||||
@ -9420,7 +9420,7 @@ msgstr "Starten van de upgrade is mislukt."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Tussentijdse Software Updates zijn ingeschakeld."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9431,7 +9431,7 @@ msgstr ""
|
||||
"apps moet een gebruikersaccount deel uitmaken van een groep om de gebruiker "
|
||||
"toegang te geven tot de toepassing."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9443,25 +9443,25 @@ msgstr ""
|
||||
"die lid zijn van de <em>admin</em> -groep mogen toepassings- of "
|
||||
"systeeminstellingen wijzigen."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Gebruikers en Groepen"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Toegang tot alle diensten en systeeminstellingen"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Zoek LDAP item \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Controleer nslcd configuratie \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Controleer nsswitch config \"{database}\""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2024-07-13 12:09+0000\n"
|
||||
"Last-Translator: Monika <adamdomenek@protonmail.com>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -35,27 +35,27 @@ msgstr "Usługa {service_name} jest uruchomiona"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Usługa {service_name} jest uruchomiona"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Nasłuchuje na {kind} port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Nasłuchuje na {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Podłączony do {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Nie mogę się podłączyć do {host}:{port}"
|
||||
@ -225,37 +225,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Tworzenie i zarządzanie archiwami kopii zapasowych."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Kopie zapasowe"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Idź do {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing Backups"
|
||||
msgid "Error During Backup"
|
||||
@ -1706,80 +1706,80 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostyka"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "udało się"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "nie udało się"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "błąd"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "ostrzeżenie"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Powinieneś nie instalować żadnych nowych aplikacji na tym systemie."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Uruchom diagnostykę"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Wynik diagnostyki"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -8763,7 +8763,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Rejestracja użytkowników wyłączona"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9135,14 +9135,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9150,25 +9150,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-04-09 22:41+0000\n"
|
||||
"Last-Translator: tuliogit <wikigeolog@gmx.com>\n"
|
||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "O serviço {service_name} está em execução"
|
||||
msgid "FreedomBox"
|
||||
msgstr "Freedombox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "O serviço {service_name} está em execução"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Escutando á porta {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "À escuta de {kind} na porta {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Ligar a {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Não é possível ligar a {host}:{port}"
|
||||
@ -222,12 +222,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Backups permite criar e gerenciar arquivos de backup."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Cópia de segurança"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -236,19 +236,19 @@ msgstr ""
|
||||
"segurança dos dados. De preferência, escolha uma localização remota e "
|
||||
"encriptada ou um disco externo."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Ative o agendamento de cópias de segurança"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Ir para {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -258,7 +258,7 @@ msgstr ""
|
||||
"anteriores de realizar uma cópia de segurança, nenhuma foi bem sucedida. O "
|
||||
"erro mais recente é: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Erro durante a cópia de segurança"
|
||||
|
||||
@ -1677,53 +1677,53 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnóstico"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "pulou"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "passou"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "fracassado"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "erro"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "aviso"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Você deve desabilitar alguns aplicativos para reduzir o uso de memória."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Você não deve instalar nenhum aplicativo novo neste sistema."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1732,24 +1732,24 @@ msgstr ""
|
||||
"O sistema está com pouca memória: {percent_used}% usada, {memory_available} "
|
||||
"{memory_available_unit} livre. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Pouca memória"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Diagnóstico em execução"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Foram encontrados {issue_count} problemas durante testes de rotina."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Resultados de diagnóstico"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Ir para resultados de diagnóstico"
|
||||
|
||||
@ -9162,7 +9162,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Atualização de distribuição"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Verifique se há pacotes retidos"
|
||||
|
||||
@ -9597,7 +9597,7 @@ msgstr "Falha ao iniciar a atualização."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Atualizações frequentes de recursos ativadas."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9608,7 +9608,7 @@ msgstr ""
|
||||
"exigem ainda que uma conta de usuário faça parte de um grupo para autorizar "
|
||||
"o acesso ao aplicativo."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9620,25 +9620,25 @@ msgstr ""
|
||||
"usuários do grupo <em>admin</em> podem alterar aplicativos ou "
|
||||
"configurações do sistema."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Usuários e Grupos"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Acesso a todos os serviços e configurações do sistema"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Verifique a entrada LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Verifique a configuração do nslcd \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Verifique a configuração do nsswitch \"{database}\""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-18 10:01+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 19:02+0000\n"
|
||||
"Last-Translator: Roman Akimov <zoompyc@gmail.com>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/ru/>\n"
|
||||
@ -34,27 +34,27 @@ msgstr "Контейнер {container_name} запущен"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Выполняется служба {service_name}"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Слушать на {kind} порт {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Слушать порт {port} на {kind}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Подключение к {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Невозможно подключиться к {host}:{port}"
|
||||
@ -213,19 +213,19 @@ msgstr "Местный"
|
||||
|
||||
#: plinth/modules/avahi/manifest.py:14
|
||||
msgid "mDNS"
|
||||
msgstr "mDNS"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:24
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Резервное копирование позволяет создавать и управлять резервными архивами."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Резервные копии"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -234,19 +234,19 @@ msgstr ""
|
||||
"данных. Предпочтительно зашифрованное удаленное место резервного копирования "
|
||||
"или дополнительный подключенный диск."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Включить расписание резервного копирования"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Перейти в {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -256,7 +256,7 @@ msgstr ""
|
||||
"попытки резервного копирования не увенчались успехом. Последняя ошибка: "
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Ошибка во время резервного копирования"
|
||||
|
||||
@ -503,7 +503,7 @@ msgstr "Конфигурация"
|
||||
|
||||
#: plinth/modules/backups/manifest.py:21
|
||||
msgid "Borg"
|
||||
msgstr "Borg"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/privileged.py:34
|
||||
msgid ""
|
||||
@ -935,7 +935,7 @@ msgstr "Список и чтение всех файлов"
|
||||
|
||||
#: plinth/modules/bepasty/__init__.py:57 plinth/modules/bepasty/manifest.py:6
|
||||
msgid "bepasty"
|
||||
msgstr "bepasty"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:17
|
||||
msgid "Public Access (default permissions)"
|
||||
@ -977,7 +977,7 @@ msgstr "Обмен файлами"
|
||||
|
||||
#: plinth/modules/bepasty/manifest.py:23
|
||||
msgid "Pastebin"
|
||||
msgstr "Pastebin"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:12
|
||||
msgid "Manage Passwords"
|
||||
@ -1658,56 +1658,58 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Это приложение также показывает <a href=\"{logs_url}\">журналы</a> для "
|
||||
"{box_name} ."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Диагностика"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "пропустить"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "успешно"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "сбой"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "ошибка"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "предупреждение"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "МБ"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "ГБ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Вы должны отключить некоторые приложения, чтобы уменьшить использование "
|
||||
"памяти."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Вы не должны устанавливать никаких новых приложений в этой системе."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1716,24 +1718,24 @@ msgstr ""
|
||||
"В системе мало памяти: использовано {percent_used}%, свободно "
|
||||
"{memory_available} {memory_available_unit}. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Мало памяти"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Выполнение диагностики"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Найдены {issue_count} проблем во время обычных проверок."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Результаты диагностики"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Перейдите к результатам диагностики"
|
||||
|
||||
@ -2455,7 +2457,7 @@ msgstr "Thunderbird"
|
||||
|
||||
#: plinth/modules/email/manifest.py:37
|
||||
msgid "Thunderbird Mobile"
|
||||
msgstr "Thunderbird Mobile"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/email/manifest.py:52
|
||||
msgid "FairEmail"
|
||||
@ -2531,8 +2533,6 @@ msgid "Host/Target/Value"
|
||||
msgstr "Хост/Цель/Значение"
|
||||
|
||||
#: plinth/modules/email/templates/email-dns.html:50
|
||||
#, fuzzy
|
||||
#| msgid "Server hostname or IP address"
|
||||
msgid "Reverse DNS Records for IP Addresses"
|
||||
msgstr "Обратные записи DNS для IP-адресов"
|
||||
|
||||
@ -2566,8 +2566,6 @@ msgstr ""
|
||||
"разделе. Это можно настроить в приложении конфиденциальности."
|
||||
|
||||
#: plinth/modules/email/templates/email-dns.html:76
|
||||
#, fuzzy
|
||||
#| msgid "Hostname"
|
||||
msgid "Host"
|
||||
msgstr "Хост"
|
||||
|
||||
@ -2584,8 +2582,7 @@ msgstr ""
|
||||
"записей DNS домена."
|
||||
|
||||
#: plinth/modules/email/templates/email.html:35
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Resolve domain name: {domain}"
|
||||
#, python-format
|
||||
msgid "View domain: %(domain)s"
|
||||
msgstr "Просмотр домена: %(domain)s"
|
||||
|
||||
@ -2705,9 +2702,8 @@ msgstr "Веб-сайт"
|
||||
|
||||
#: plinth/modules/featherwiki/manifest.py:18
|
||||
#: plinth/modules/tiddlywiki/manifest.py:25
|
||||
#, fuzzy
|
||||
msgid "Quine"
|
||||
msgstr "Quine"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/featherwiki/manifest.py:18
|
||||
#: plinth/modules/nextcloud/manifest.py:56
|
||||
@ -3247,8 +3243,6 @@ msgstr ""
|
||||
"силу."
|
||||
|
||||
#: plinth/modules/gnome/__init__.py:48
|
||||
#, fuzzy
|
||||
#| msgid "GNOME Files"
|
||||
msgid "GNOME"
|
||||
msgstr "GNOME"
|
||||
|
||||
@ -3257,8 +3251,6 @@ msgid "Desktop"
|
||||
msgstr "Десктоп"
|
||||
|
||||
#: plinth/modules/gnome/manifest.py:10
|
||||
#, fuzzy
|
||||
#| msgid "Tor Browser"
|
||||
msgid "Browser"
|
||||
msgstr "Браузер"
|
||||
|
||||
@ -3267,8 +3259,6 @@ msgid "Office suite"
|
||||
msgstr "Офисный пакет"
|
||||
|
||||
#: plinth/modules/gnome/manifest.py:12
|
||||
#, fuzzy
|
||||
#| msgid "Software Update"
|
||||
msgid "Software store"
|
||||
msgstr "Магазин программного обеспечения"
|
||||
|
||||
@ -3658,12 +3648,6 @@ msgid "{box_name} Manual"
|
||||
msgstr "Руководство {box_name}"
|
||||
|
||||
#: plinth/modules/homeassistant/__init__.py:31
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Home Assistant is a home automation hub with emphasis on local control "
|
||||
#| "and privacy. It integrates with thousands of devices including smart "
|
||||
#| "bulbs, alarms, presense sensors, door bells, thermostats, irrigation "
|
||||
#| "timers, energy monitors, etc."
|
||||
msgid ""
|
||||
"Home Assistant is a home automation hub with emphasis on local control and "
|
||||
"privacy. It integrates with thousands of devices including smart bulbs, "
|
||||
@ -3727,9 +3711,8 @@ msgid "Home Automation"
|
||||
msgstr "Домашняя автоматизация"
|
||||
|
||||
#: plinth/modules/homeassistant/manifest.py:63
|
||||
#, fuzzy
|
||||
msgid "IoT"
|
||||
msgstr "IoT"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/homeassistant/manifest.py:64
|
||||
#: plinth/modules/networks/manifest.py:8
|
||||
@ -3742,11 +3725,11 @@ msgstr "Wi-Fi"
|
||||
|
||||
#: plinth/modules/homeassistant/manifest.py:65
|
||||
msgid "ZigBee"
|
||||
msgstr "ZigBee"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/homeassistant/manifest.py:66
|
||||
msgid "Z-Wave"
|
||||
msgstr "Z-Wave"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/homeassistant/manifest.py:67
|
||||
msgid "Thread"
|
||||
@ -3955,7 +3938,7 @@ msgstr "Видеокомната Janus"
|
||||
|
||||
#: plinth/modules/janus/manifest.py:16
|
||||
msgid "WebRTC"
|
||||
msgstr "WebRTC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/janus/manifest.py:16
|
||||
msgid "Web conference"
|
||||
@ -4038,7 +4021,7 @@ msgstr "Управление сервером контента Kiwix"
|
||||
|
||||
#: plinth/modules/kiwix/__init__.py:56 plinth/modules/kiwix/manifest.py:8
|
||||
msgid "Kiwix"
|
||||
msgstr "Kiwix"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/kiwix/forms.py:23
|
||||
msgid "Content packages have to be in .zim format"
|
||||
@ -4302,6 +4285,10 @@ msgid ""
|
||||
"only be installed if frequent feature updates is enabled in the <a "
|
||||
"href=\"{upgrades_url}\">Software Update</a> app."
|
||||
msgstr ""
|
||||
"<strong>Примечание:</strong> Это приложение часто получает обновления. Оно "
|
||||
"может быть установлено только в том случае, если в системе включено частое "
|
||||
"обновление функций. <a href=\"{upgrades_url}\">Обновление программного "
|
||||
"обеспечения</a> ."
|
||||
|
||||
#: plinth/modules/matrixsynapse/__init__.py:59
|
||||
msgid "Matrix Synapse"
|
||||
@ -4775,8 +4762,6 @@ msgid "UPnP"
|
||||
msgstr "UPnP"
|
||||
|
||||
#: plinth/modules/minidlna/manifest.py:116
|
||||
#, fuzzy
|
||||
#| msgid "MiniDLNA"
|
||||
msgid "DLNA"
|
||||
msgstr "DLNA"
|
||||
|
||||
@ -4814,9 +4799,8 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/__init__.py:42
|
||||
#: plinth/modules/miniflux/manifest.py:10
|
||||
#, fuzzy
|
||||
msgid "Miniflux"
|
||||
msgstr "Miniflux"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/forms.py:12
|
||||
msgid "Enter a username for the user."
|
||||
@ -4839,28 +4823,24 @@ msgid "Passwords do not match."
|
||||
msgstr "Пароли не совпадают."
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:18
|
||||
#, fuzzy
|
||||
msgid "Fluent Reader Lite"
|
||||
msgstr "Fluent Reader Lite"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:33
|
||||
msgid "Fluent Reader"
|
||||
msgstr "Беглое чтение"
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:46
|
||||
#, fuzzy
|
||||
msgid "FluxNews"
|
||||
msgstr "FluxNews"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:61
|
||||
#, fuzzy
|
||||
msgid "MiniFlutt"
|
||||
msgstr "MiniFlutt"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:71
|
||||
#, fuzzy
|
||||
msgid "NetNewsWire"
|
||||
msgstr "NetNewsWire"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:86
|
||||
msgid "Newsflash"
|
||||
@ -4884,14 +4864,11 @@ msgstr "Агрегация новостей"
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:138
|
||||
#: plinth/modules/rssbridge/manifest.py:16 plinth/modules/ttrss/manifest.py:55
|
||||
#, fuzzy
|
||||
#| msgid "SSH"
|
||||
msgid "RSS"
|
||||
msgstr "RSS"
|
||||
|
||||
#: plinth/modules/miniflux/manifest.py:138
|
||||
#: plinth/modules/rssbridge/manifest.py:16 plinth/modules/ttrss/manifest.py:55
|
||||
#, fuzzy
|
||||
msgid "ATOM"
|
||||
msgstr "ATOM"
|
||||
|
||||
@ -5201,7 +5178,7 @@ msgstr "Ссылка"
|
||||
#: plinth/modules/names/templates/names.html:104
|
||||
#: plinth/modules/networks/templates/connection_show.html:268
|
||||
msgid "DNS-over-TLS"
|
||||
msgstr "DNS-over-TLS"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/names/templates/names.html:108
|
||||
msgid "DNSSEC"
|
||||
@ -6249,7 +6226,7 @@ msgstr "локальная ссылка"
|
||||
|
||||
#: plinth/modules/networks/views.py:32
|
||||
msgid "dhcp"
|
||||
msgstr "dhcp"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/networks/views.py:33
|
||||
msgid "ignore"
|
||||
@ -6509,7 +6486,7 @@ msgstr ""
|
||||
#: plinth/modules/nextcloud/manifest.py:11
|
||||
#: plinth/modules/nextcloud/manifest.py:18
|
||||
msgid "Nextcloud"
|
||||
msgstr "Nextcloud"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/nextcloud/forms.py:19
|
||||
msgid "Not set"
|
||||
@ -7233,11 +7210,11 @@ msgstr "Контакты"
|
||||
|
||||
#: plinth/modules/radicale/manifest.py:91 plinth/modules/sogo/manifest.py:75
|
||||
msgid "CalDAV"
|
||||
msgstr "CalDAV"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/manifest.py:91 plinth/modules/sogo/manifest.py:76
|
||||
msgid "CardDAV"
|
||||
msgstr "CardDAV"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/views.py:32
|
||||
msgid "Access rights configuration updated"
|
||||
@ -7833,7 +7810,7 @@ msgstr "Точка входа"
|
||||
#: plinth/modules/shadowsocks/manifest.py:22
|
||||
#: plinth/modules/shadowsocksserver/manifest.py:21
|
||||
msgid "Shadowsocks"
|
||||
msgstr "Shadowsocks"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/shadowsocksserver/__init__.py:26
|
||||
#, python-brace-format
|
||||
@ -8102,7 +8079,7 @@ msgstr "Заведомо исправное состояние"
|
||||
|
||||
#: plinth/modules/snapshot/manifest.py:14
|
||||
msgid "Btrfs"
|
||||
msgstr "Btrfs"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:12
|
||||
msgid "Delete the following snapshots permanently?"
|
||||
@ -8730,7 +8707,7 @@ msgstr ""
|
||||
#: plinth/modules/tiddlywiki/__init__.py:64
|
||||
#: plinth/modules/tiddlywiki/manifest.py:9
|
||||
msgid "TiddlyWiki"
|
||||
msgstr "TiddlyWiki"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tiddlywiki/forms.py:39
|
||||
msgid "A TiddlyWiki file with .html file extension"
|
||||
@ -9103,7 +9080,7 @@ msgstr "TTRSS-читатель"
|
||||
|
||||
#: plinth/modules/ttrss/manifest.py:25
|
||||
msgid "Geekttrss"
|
||||
msgstr "Geekttrss"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:34
|
||||
msgid "Check for and apply the latest software and security updates."
|
||||
@ -9153,7 +9130,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Обновление дистрибутива"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Проверьте, не задерживается ли посылка"
|
||||
|
||||
@ -9367,7 +9344,7 @@ msgstr "Автоматическое обновление отключено."
|
||||
|
||||
#: plinth/modules/upgrades/templates/upgrades-dist-upgrade.html:54
|
||||
msgid "Distribution upgrades are disabled."
|
||||
msgstr "Обновления дистрибутива отключены"
|
||||
msgstr "Обновления дистрибутива отключены."
|
||||
|
||||
#: plinth/modules/upgrades/templates/upgrades-dist-upgrade.html:58
|
||||
msgid ""
|
||||
@ -9573,7 +9550,7 @@ msgstr "Не удалось запустить обновление."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Активированы частые обновления функций."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9585,7 +9562,7 @@ msgstr ""
|
||||
"запись пользователя была частью группы, чтобы разрешить пользователю доступ "
|
||||
"к приложению."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9597,25 +9574,25 @@ msgstr ""
|
||||
"пользователи группы <em>admin</em> могут изменять приложения или системные "
|
||||
"настройки."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Пользователи и группы"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Доступ ко всем сервисам и настройкам системы"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Проверьте запись LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Проверьте конфигурацию nslcd \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Проверьте конфигурацию nsswitch \"{database}\""
|
||||
@ -10543,13 +10520,7 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
@ -10557,32 +10528,26 @@ msgid ""
|
||||
"the <a href=\"%(logs_url)s\">logs</a> to the bug report."
|
||||
msgstr ""
|
||||
"Это внутренняя ошибка, а не то, что вы вызвали или можете исправить. "
|
||||
"Сообщите об ошибке в <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">трекере ошибок</a>, чтобы мы могли ее исправить. Также "
|
||||
"приложите <a href=\"%(status_log_url)s\">журнал состояния</a> к отчету об "
|
||||
"ошибке."
|
||||
"Пожалуйста, сообщите об ошибке на <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">трекере ошибок</a> чтобы мы могли это "
|
||||
"исправить. Кроме того, пожалуйста, приложите <a href=\"%(logs_url)s\">файлы "
|
||||
"журналов</a> к сообщению об ошибке."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "Установка"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Это последние %(num_lines)s строк журнала состояния для этого веб-"
|
||||
"интерфейса. Если вы хотите сообщить об ошибке, используйте <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">трекер ошибок</a> и "
|
||||
"прикрепите этот журнал состояния к отчету об ошибке."
|
||||
"Это последние строки журналов для служб, задействованных в этом приложении. "
|
||||
"Если вы хотите сообщить об ошибке, пожалуйста, воспользуйтесь <a "
|
||||
"href=\"https://salsa.debian.org/freedombox-team/freedombox/"
|
||||
"issues\">отслеживаним ошибок</a> и приложите этот журнал к отчету об ошибке."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
@ -10844,10 +10809,8 @@ msgid "Clear all tags"
|
||||
msgstr "Очистить все теги"
|
||||
|
||||
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Logs"
|
||||
msgid "View Logs"
|
||||
msgstr "Журналы"
|
||||
msgstr "Просмотр журналов"
|
||||
|
||||
#: plinth/templates/toolbar.html:46 plinth/templates/toolbar.html:47
|
||||
msgid "Backup"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2021-04-27 13:32+0000\n"
|
||||
"Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n"
|
||||
"Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -33,27 +33,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "ෆ්රීඩම්බොක්ස්"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr ""
|
||||
@ -208,37 +208,37 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr ""
|
||||
|
||||
@ -1521,76 +1521,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -7989,7 +7989,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8332,14 +8332,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8347,25 +8347,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:19+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr ""
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Poslušam na {kind} vratih {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Poslušam na {kind} vratih {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Povezava na {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Ne uspem se povezati na {host}:{port}"
|
||||
@ -226,37 +226,37 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Rezervne kopije omogočajo ustvarjanje in upravljanje arhivov rezervnih kopij."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Rezervne kopije"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing backups"
|
||||
msgid "Error During Backup"
|
||||
@ -1693,76 +1693,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8416,7 +8416,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Konfiguracija je posodobljena"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8769,14 +8769,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8784,25 +8784,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-06-25 22:04+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-05 18:02+0000\n"
|
||||
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
|
||||
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/sq/>\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.13-dev\n"
|
||||
"X-Generator: Weblate 5.14-dev\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -25,36 +25,35 @@ msgid "Static configuration {etc_path} is setup properly"
|
||||
msgstr "Formësimi statik {etc_path} është ujdisur si duhet"
|
||||
|
||||
#: plinth/container.py:140
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Service {service_name} is running"
|
||||
#, python-brace-format
|
||||
msgid "Container {container_name} is running"
|
||||
msgstr "Shërbimi {service_name} po xhiron"
|
||||
msgstr "Kontejneri {container_name} po xhiron"
|
||||
|
||||
#: plinth/context_processors.py:21 plinth/views.py:175
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Shërbimi {service_name} po xhiron"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Po përgjohet në portë {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Po përgjohet në portë {kind} {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Lidhu me {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "S’lidhet dot me {host}:{port}"
|
||||
@ -72,10 +71,8 @@ msgid "Repository to backup to"
|
||||
msgstr "Depo për kopjeruajtje"
|
||||
|
||||
#: plinth/forms.py:62
|
||||
#, fuzzy
|
||||
#| msgid "None"
|
||||
msgid "(None)"
|
||||
msgstr "Asnjë"
|
||||
msgstr "(Asnjë)"
|
||||
|
||||
#: plinth/forms.py:68
|
||||
msgid "Select a domain name to be used with this application"
|
||||
@ -220,12 +217,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Kopjeruajtjet lejojnë krijim dhe administrim arkivash kopjeruajtjeje."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Kopjeruajtje"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -234,19 +231,19 @@ msgstr ""
|
||||
"Parapëlqeni një vendndodhje të largët kopjeruajtjesh të fshehtëzuara ose një "
|
||||
"disk ekstra bashkëngjitur."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Aktivizoni një Plan Kopjeruajtjesh"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Kalo te {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -255,7 +252,7 @@ msgstr ""
|
||||
"Dështoi një kopjeruajtje e planifikuar. {error_count} përpjekjet e mëparshme "
|
||||
"s’patën sukses. Gabimi i fundit qe: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Gabim Gjatë Kopjeruajtjes"
|
||||
|
||||
@ -707,27 +704,15 @@ msgid "Restore data from"
|
||||
msgstr "Riktheje të dhëna prej"
|
||||
|
||||
#: plinth/modules/backups/templates/backups_upload.html:17
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " Upload a backup file downloaded from another %(box_name)s to "
|
||||
#| "restore its\n"
|
||||
#| " contents. You can choose the apps you wish to restore after "
|
||||
#| "uploading a\n"
|
||||
#| " backup file.\n"
|
||||
#| " "
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Upload a backup file downloaded from another %(box_name)s to restore its "
|
||||
"contents. You can choose the apps you wish to restore after uploading a "
|
||||
"backup file."
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Ngarkoni një kartel kopjeruajtje të shkarkuar prej një tjetër "
|
||||
"%(box_name)s për\n"
|
||||
" të rikthyer lëndën e tij. Pas ngarkimit të kartelës kopjeruajtje, mund "
|
||||
"të zgjidhni\n"
|
||||
" aplikacionet që doni të rikthehen.\n"
|
||||
" "
|
||||
"Ngarkoni një kartelë kopjeruajtje të shkarkuar prej një tjetër %(box_name)s "
|
||||
"për të rikthyer lëndën e tij. Pas ngarkimit të kartelës kopjeruajtje, mund "
|
||||
"të zgjidhni aplikacionet që doni të rikthehen."
|
||||
|
||||
#: plinth/modules/backups/templates/backups_upload.html:31
|
||||
#, python-format
|
||||
@ -1673,55 +1658,57 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Ky aplikacion shfaq gjithashtu <a href=\"{logs_url}\">regjistrat</a> për "
|
||||
"shërbimet {box_name}."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostikime"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "anashkaluar"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "kaloi"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "dështoi"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "gabim"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "kujdes"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Duhet të çaktivizoni disa aplikacione, për të zvogëluar përdorim kujtese."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "S’duhet të instaloni çfarëdo aplikacioni të ri në këtë sistem."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1730,24 +1717,24 @@ msgstr ""
|
||||
"Ka pak kujtesë për sistemin: {percent_used}% të përdorur, {memory_available} "
|
||||
"{memory_available_unit} të lirë. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Kujtesë e Pakët"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Xhirim diagnostikimesh"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "U gjetën {issue_count} probleme gjatë testimeve rutinë."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Përfundime diagnostikimesh"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Kaloni te përfundime diagnostikimi"
|
||||
|
||||
@ -1828,31 +1815,31 @@ msgstr "Përfundime"
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:53
|
||||
#, python-format
|
||||
msgid "%(number)s passed"
|
||||
msgstr ""
|
||||
msgstr "%(number)s të kaluar"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:57
|
||||
#, python-format
|
||||
msgid "%(number)s failed"
|
||||
msgstr ""
|
||||
msgstr "%(number)s me dështim"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:61
|
||||
#, python-format
|
||||
msgid "%(number)s warnings"
|
||||
msgstr ""
|
||||
msgstr "%(number)s sinjalizime"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:65
|
||||
#, python-format
|
||||
msgid "%(number)s errors"
|
||||
msgstr ""
|
||||
msgstr "%(number)s gabime"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:69
|
||||
#, python-format
|
||||
msgid "%(number)s skipped"
|
||||
msgstr ""
|
||||
msgstr "%(number)s të anashkaluar"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_full.html:111
|
||||
msgid "Running..."
|
||||
msgstr ""
|
||||
msgstr "Po xhirohet…"
|
||||
|
||||
#: plinth/modules/diagnostics/templates/diagnostics_results.html:11
|
||||
msgid "Test"
|
||||
@ -1903,13 +1890,6 @@ msgstr ""
|
||||
"tuaj DNS, do të marrë një përgjigje me adresën tuaj aktuale IP."
|
||||
|
||||
#: plinth/modules/dynamicdns/__init__.py:41
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "If you are looking for a free dynamic DNS account, you may find a free "
|
||||
#| "GnuDIP service at <a href='https://ddns.freedombox.org' "
|
||||
#| "target='_blank'>ddns.freedombox.org</a> or you may find free update URL "
|
||||
#| "based services at <a href='http://freedns.afraid.org/' "
|
||||
#| "target='_blank'>freedns.afraid.org</a>."
|
||||
msgid ""
|
||||
"If you are looking for a free dynamic DNS account, you may find a free "
|
||||
"GnuDIP service at <a href='https://ddns.freedombox.org' "
|
||||
@ -1919,27 +1899,19 @@ msgid ""
|
||||
msgstr ""
|
||||
"Nëse po kërkoni për një llogari falas DNS-je dinamike, mund të gjeni një "
|
||||
"shërbim GnuDIP të lirë, te <a href=\"https://ddns.freedombox.org\" "
|
||||
"target=\"_blank\">ddns.freedombox.org</a>, ose mund të gjeni shërbime të "
|
||||
"lira me bazë përditësim URL-je, te <a href=\"http://freedns.afraid.org/\" "
|
||||
"target=\"_blank\">freedns.afraid.org</a>."
|
||||
"target=\"_blank\">ddns.freedombox.org</a>. Me këtë shërbim, përfitoni "
|
||||
"nënpërkatësi të pakufizuara (me mundësinë e shenjës së gjithëpushtetshme të "
|
||||
"aktivizuar te rregullimet e llogarisë). Që të përdorni një nënpërkatësi, "
|
||||
"shtojeni si një përkatësi statike te aplikacioni Emra."
|
||||
|
||||
#: plinth/modules/dynamicdns/__init__.py:47
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "If you are looking for a free dynamic DNS account, you may find a free "
|
||||
#| "GnuDIP service at <a href='https://ddns.freedombox.org' "
|
||||
#| "target='_blank'>ddns.freedombox.org</a> or you may find free update URL "
|
||||
#| "based services at <a href='http://freedns.afraid.org/' "
|
||||
#| "target='_blank'>freedns.afraid.org</a>."
|
||||
msgid ""
|
||||
"Alternatively, you may find a free update URL based service at <a "
|
||||
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org</a>."
|
||||
msgstr ""
|
||||
"Nëse po kërkoni për një llogari falas DNS-je dinamike, mund të gjeni një "
|
||||
"shërbim GnuDIP të lirë, te <a href=\"https://ddns.freedombox.org\" "
|
||||
"target=\"_blank\">ddns.freedombox.org</a>, ose mund të gjeni shërbime të "
|
||||
"lira me bazë përditësim URL-je, te <a href=\"http://freedns.afraid.org/\" "
|
||||
"target=\"_blank\">freedns.afraid.org</a>."
|
||||
"Ndryshe, mund të gjeni një shërbim falas të bazuar në përditësim URL-sh, te "
|
||||
"<a href=\"http://freedns.afraid.org/\" target=\"_blank\">freedns.afraid.org</"
|
||||
"a>."
|
||||
|
||||
#: plinth/modules/dynamicdns/__init__.py:50
|
||||
msgid ""
|
||||
@ -2088,7 +2060,7 @@ msgstr "Përkatësi"
|
||||
|
||||
#: plinth/modules/dynamicdns/manifest.py:17
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "I lirë"
|
||||
|
||||
#: plinth/modules/dynamicdns/manifest.py:17
|
||||
msgid "Needs public IP"
|
||||
@ -2680,7 +2652,7 @@ msgstr "Feather Wiki"
|
||||
|
||||
#: plinth/modules/featherwiki/forms.py:13 plinth/modules/tiddlywiki/forms.py:13
|
||||
msgid "Wiki files cannot be named \"index.html\"."
|
||||
msgstr ""
|
||||
msgstr "Kartelat Wiki s’mund të emërtohen “index.html”."
|
||||
|
||||
#: plinth/modules/featherwiki/forms.py:20 plinth/modules/tiddlywiki/forms.py:20
|
||||
msgid "Name of the wiki file, with file extension \".html\""
|
||||
@ -9172,7 +9144,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Përditësim Shpërndarjeje"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Kontrolloni për mbajtje paketash"
|
||||
|
||||
@ -9603,7 +9575,7 @@ msgstr "Nisja e përmirësimi dështoi."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Përditësime të shpeshta veçorish të aktivizuara."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9614,7 +9586,7 @@ msgstr ""
|
||||
"aplikacione kërkojnë doemos një llogari përdoruesi, për të qenë pjesë e një "
|
||||
"grupi që autorizon përdoruesin të përdorë aplikacionin."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9626,25 +9598,25 @@ msgstr ""
|
||||
"vetëm përdoruesit e grupit <em>përgjegjës</em> mund të ndryshojnë "
|
||||
"aplikacionet, apo rregullimet e sistemit."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Përdorues dhe Grupe"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Hyrje te krejt shërbimet dhe rregullime të sistemit"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Kontrolloni zërin LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Kontrolloni “{key} {value}” formësimi nslcd-je"
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Kontrolloni “{database}” formësimi nsswitch"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 17:20+0000\n"
|
||||
"Last-Translator: ikmaak <info@ikmaak.nl>\n"
|
||||
"Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -35,27 +35,27 @@ msgstr "Servis {service_name} je pokrenut"
|
||||
msgid "FreedomBox"
|
||||
msgstr "KutijaSlobode"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Servis {service_name} je pokrenut"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Slušam na {kind} portu {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Slušam na {kind} portu {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Poveži se na {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Nije moguće povezati se na {host}:{port}"
|
||||
@ -226,37 +226,37 @@ msgstr ""
|
||||
"Izrada sigurnosnih kopija omogućava kreiranje i upravljanje arhivima "
|
||||
"sigurnosnih kopija."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sigurnosne kopije"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
"succeed. The latest error is: {error_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
#, fuzzy
|
||||
#| msgid "Existing Backups"
|
||||
msgid "Error During Backup"
|
||||
@ -1642,76 +1642,76 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
"{memory_available_unit} free. {advice_message}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr ""
|
||||
|
||||
@ -8287,7 +8287,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Konfiguracija sačuvana"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8638,14 +8638,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8653,25 +8653,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2024-07-30 01:31+0000\n"
|
||||
"Last-Translator: bittin1ddc447d824349b2 <bittin@reimu.nl>\n"
|
||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "Tjänsten {service_name} körs"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Tjänsten {service_name} körs"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Lyssnar på {kind} port {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Lyssnar på {kind} port {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Anslut till {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Kan inte ansluta till {host}:{port}"
|
||||
@ -224,12 +224,12 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Säkerhetskopior gör det möjligt att skapa och hantera säkerhetsarkiv."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Säkerhetskopiering"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -237,19 +237,19 @@ msgstr ""
|
||||
"Aktivera ett automatiskt reservschema för datasäkerhet. Föredra en krypterad "
|
||||
"plats för fjärrbackup eller en extra ansluten disk."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Aktivera ett schema för säkerhetskopiering"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Gå till {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -258,7 +258,7 @@ msgstr ""
|
||||
"En schemalagd säkerhetskopiering misslyckades. Tidigare {error_count} försök "
|
||||
"för säkerhetskopiering lyckades inte. Det senaste felet är: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Fel under säkerhetskopiering"
|
||||
|
||||
@ -1713,52 +1713,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostik"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "passerade"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "misslyckades"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "fel"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "varning"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Du bör inaktivera vissa appar för att minska minnesanvändningen."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Du bör inte installera några nya appar på det här systemet."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1767,24 +1767,24 @@ msgstr ""
|
||||
"Systemet är ont om minne: {percent_used}% används, {memory_available}"
|
||||
"·{memory_available_unit} ledig. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Låg minne"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Kör diagnostik"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Hittade {issue_count} problem under rutintester."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Diagnostikresultat"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Gå till Diagnostikresultat"
|
||||
|
||||
@ -9338,7 +9338,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Distributionsuppdateringen har startats"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -9744,7 +9744,7 @@ msgstr "Det gick inte att starta uppgraderingen."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Frekventa funktionsuppdateringar aktiverade."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9755,7 +9755,7 @@ msgstr ""
|
||||
"ett användarkonto för att vara en del av en grupp för att auktorisera "
|
||||
"användaren att komma åt appen."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9766,25 +9766,25 @@ msgstr ""
|
||||
"över appar som är relevanta för dem på startsidan. Endast användare av "
|
||||
"gruppen <em>admin</em> kan dock ändra appar eller Systeminställningar."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Användare och grupper"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Tillgång till alla tjänster och systeminställningar"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Kontrollera LDAP-posten \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Kontrollera nslcd-konfigurationen \"{key}{value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Kontrollera nsswitch-konfigurationen \"{database}\""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-08-17 08:02+0000\n"
|
||||
"Last-Translator: தமிழ்நேரம் <anishprabu.t@gmail.com>\n"
|
||||
"Language-Team: Tamil <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "பணி {service_name} இயங்குகிறது"
|
||||
msgid "FreedomBox"
|
||||
msgstr "கட்டற்றபெட்டி"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "பணி {service_name} இயங்குகிறது"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "{kind} துறைமுகம் {listen_address}: {port} இல் கேட்பது"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} துறைமுகம் {port} இல் கேட்பது"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}: {port} உடன் இணைக்கவும்"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host}: {port} உடன் இணைக்க முடியாது"
|
||||
@ -219,12 +219,12 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"காப்புப்பிரதி காப்பகங்களை உருவாக்க மற்றும் நிர்வகிக்க காப்புப்பிரதிகள் அனுமதிக்கிறது."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "காப்புப்பிரதிகள்"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"தொலைநிலை காப்புப்பிரதி இருப்பிடம் அல்லது கூடுதல் இணைக்கப்பட்ட வட்டு ஆகியவற்றை "
|
||||
"விரும்புங்கள்."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "காப்புப்பிரதி அட்டவணையை இயக்கவும்"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "{app_name} க்குச் செல்லவும்"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"திட்டமிடப்பட்ட காப்புப்பிரதி தோல்வியடைந்தது. கடந்த {error_count} காப்புப்பிரதிக்கான "
|
||||
"முயற்சிகள் வெற்றிபெறவில்லை. அண்மைக் கால பிழை: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "காப்புப்பிரதியின் போது பிழை"
|
||||
|
||||
@ -1654,52 +1654,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "கண்டறிதல்"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "தவிர்க்கப்பட்டது"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "கடந்து சென்றது"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "தோல்வியுற்றது"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "பிழை"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "எச்சரிக்கை"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "Mib"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "கிப்"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "நினைவக பயன்பாட்டைக் குறைக்க சில பயன்பாடுகளை முடக்க வேண்டும்."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "இந்த கணினியில் நீங்கள் எந்த புதிய பயன்பாடுகளையும் நிறுவக்கூடாது."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1708,24 +1708,24 @@ msgstr ""
|
||||
"கணினி நினைவகத்தில் குறைவாக உள்ளது: {percent_used}% பயன்படுத்தப்படுகிறது, "
|
||||
"{memory_available} {memory_available_unit} இலவசம். {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "குறைந்த நினைவகம்"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "கண்டறியும் இயங்கும்"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "வழக்கமான சோதனைகளின் போது {issue_count} சிக்கல்கள் கிடைத்தன."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "கண்டறியும் முடிவுகள்"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "கண்டறியும் முடிவுகளுக்குச் செல்லுங்கள்"
|
||||
|
||||
@ -9018,7 +9018,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "விநியோக புதுப்பிப்பு"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "தொகுப்பு வைத்திருக்கும் சரிபார்க்கவும்"
|
||||
|
||||
@ -9437,7 +9437,7 @@ msgstr "தொடக்க மேம்படுத்தல் தோல்வ
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "அடிக்கடி அம்ச புதுப்பிப்புகள் செயல்படுத்தப்படுகின்றன."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9447,7 +9447,7 @@ msgstr ""
|
||||
"மையப்படுத்தப்பட்ட அங்கீகார பொறிமுறையாக செயல்படுகின்றன. பயன்பாட்டை அணுக பயனருக்கு ஏற்பு "
|
||||
"வழங்க சில பயன்பாடுகள் ஒரு குழுவின் ஒரு பகுதியாக இருக்க வேண்டும்."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9458,25 +9458,25 @@ msgstr ""
|
||||
"வலை இடைமுகத்தில் உள்நுழையலாம். இருப்பினும், <em> நிர்வாகம் </em> குழுவின் பயனர்கள் "
|
||||
"மட்டுமே பயன்பாடுகள் அல்லது கணினி அமைப்புகளை மாற்றலாம்."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "பயனர்கள் மற்றும் குழுக்கள்"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "அனைத்து சேவைகள் மற்றும் கணினி அமைப்புகளுக்கான அணுகல்"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP உள்ளீட்டை சரிபார்க்கவும் \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "NSLCD கட்டமைப்பைச் சரிபார்க்கவும் \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "NSSWITCH கட்டமைப்பு \"{database}\""
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-05-14 17:03+0000\n"
|
||||
"Last-Translator: Sripath Roy Koganti <sripathroy@swecha.net>\n"
|
||||
"Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -36,27 +36,27 @@ msgstr "{service_name} సేవ అమలులో ఉంది"
|
||||
msgid "FreedomBox"
|
||||
msgstr "ఫ్రీడమ్బాక్స్"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "{service_name} సేవ అమలులో ఉంది"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "{kind} పోర్ట్ {listen_address}:{port} లో వింటున్నాను"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} port {port} లో వింటున్నాను"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}:{port} కి కనెక్ట్ అవ్వండి"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host} కి కనెక్ట్ అవ్వండి:{port}"
|
||||
@ -220,12 +220,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "బ్యాకప్లు బ్యాకప్ ఆర్కైవ్లను సృష్టించడానికి మరియు నిర్వహించడానికి అనుమతిస్తాయి."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "బ్యాకప్స్"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"డేటా భద్రత కోసం ఆటోమేటిక్ బ్యాకప్ షెడ్యూల్ను ప్రారంభించండి. ఎన్క్రిప్ట్ చేసిన రిమోట్ బ్యాకప్ లొకేషన్ లేదా అదనపు "
|
||||
"అటాచ్డ్ డిస్క్ను ఇష్టపడండి."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "బ్యాకప్ షెడ్యూల్ను ప్రారంభించండి"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "{app_name} కు వెళ్ళండి"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"షెడ్యూల్ చేయబడిన బ్యాకప్ విఫలమైంది. బ్యాకప్ కోసం గతంలో చేసిన {error_count} ప్రయత్నాలు విజయవంతం "
|
||||
"కాలేదు. తాజా లోపం: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "బ్యాకప్ సమయంలో లోపం"
|
||||
|
||||
@ -1630,52 +1630,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "లక్షణాలు"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "దాటివేయబడినవి"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "ఉత్తీర్ణులయ్యారు"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "విఫలమయ్యారు"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "లోపం"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "హెచ్చరిక"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "నిర్వహణ సమాచార ఆధారం"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "గిబ్"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "మెమరీ వినియోగాన్ని తగ్గించడానికి మీరు కొన్ని యాప్లను నిలిపివేయాలి."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "మీరు ఈ సిస్టమ్లో ఏ కొత్త యాప్లను ఇన్స్టాల్ చేయకూడదు."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1684,24 +1684,24 @@ msgstr ""
|
||||
"సిస్టమ్ మెమరీ తక్కువగా ఉంది: {percent_used}% ఉపయోగించబడింది, {memory_available} "
|
||||
"{memory_available_unit} ఉచితం. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "తక్కువ మెమరీ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "రన్నింగ్ డయాగ్నస్టిక్స్"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "సాధారణ పరీక్షల సమయంలో {issue_count} సమస్యలు కనుగొనబడ్డాయి."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "డయాగ్నోస్టిక్స్ ఫలితాలు"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "పంది"
|
||||
|
||||
@ -8823,7 +8823,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "పంపిణీ నవీకరణ"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "ప్యాకేజీ హోల్డ్ల కోసం తనిఖీ చేయండి"
|
||||
|
||||
@ -9226,7 +9226,7 @@ msgstr "నవీకరణ ప్రారంభం విఫలమైంద
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "తరచుగా ఫీచర్ అప్డేట్లు యాక్టివేట్ చేయబడ్డాయి."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9236,7 +9236,7 @@ msgstr ""
|
||||
"విధానంగా పనిచేస్తాయి. కొన్ని యాప్లకు యాప్ను యాక్సెస్ చేయడానికి వినియోగదారుని ప్రామాణీకరించడానికి సమూహంలో భాగంగా "
|
||||
"వినియోగదారు ఖాతా అవసరం."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9247,25 +9247,25 @@ msgstr ""
|
||||
"చేయవచ్చు. అయినప్పటికీ, <em>అడ్మిన్</em> సమూహం యొక్క వినియోగదారులు మాత్రమే యాప్లు లేదా సిస్టమ్ "
|
||||
"సెట్టింగ్లను మార్చవచ్చు."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "వినియోగదారులు మరియు సమూహాలు"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "అన్ని సేవలకు మరియు సిస్టమ్ అమరికలకు ప్రాప్యత"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP నమోదు \"{search_item}\" తనిఖీ"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "nslcd config \"{key} {value}\"ని తనిఖీ చేయండి"
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "nsswitch config \"{database}\"ని తనిఖీ చేయండి"
|
||||
|
||||
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-10 04:01+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 03:01+0000\n"
|
||||
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/tr/>\n"
|
||||
@ -32,28 +32,28 @@ msgstr "{container_name} kapsayıcısı çalışıyor"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "{service_name} hizmeti çalışıyor"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr ""
|
||||
"{kind} üzerinde {listen_address}:{port} nolu bağlantı noktasını dinleme"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "{kind} üzerinde {port} nolu bağlantı noktasını dinleme"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "{host}:{port} adresine bağlı"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "{host}:{port} adresine bağlanamıyor"
|
||||
@ -216,12 +216,12 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Yedeklemeler, yedekleme arşivleri oluşturmayı ve yönetmeyi sağlar."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Yedeklemeler"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -229,19 +229,19 @@ msgstr ""
|
||||
"Veri güvenliği için otomatik bir yedekleme planı etkinleştirin. Şifrelenmiş "
|
||||
"bir uzak yedekleme konumu veya fazladan eklenmiş bir disk tercih edin."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Bir Yedekleme Planı etkinleştirin"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "{app_name} için git"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -250,7 +250,7 @@ msgstr ""
|
||||
"Planlanmış bir yedekleme başarısız oldu. Geçen {error_count} yedekleme "
|
||||
"denemesi başarılı olmadı. En son hata: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Yedekleme Sırasında Hata"
|
||||
|
||||
@ -1642,55 +1642,57 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Bu uygulama ayrıca {box_name} hizmetleri için <a href=\"{logs_url}"
|
||||
"\">günlükleri</a> gösterir."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Tanılama"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "atlandı"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "geçti"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "başarısız"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "hata"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "uyarı"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Bellek kullanımını azaltmak için bazı uygulamaları etkisizleştirmelisiniz."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Bu sisteme herhangi bir yeni uygulama yüklememelisiniz."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1699,24 +1701,24 @@ msgstr ""
|
||||
"Sistem belleği düşük: %{percent_used} kullanılıyor, {memory_available}."
|
||||
"{memory_available_unit} boş. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Düşük Bellek"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Tanılama çalıştırılıyor"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Sıradan denemeler sırasında {issue_count} sorun bulundu."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Tanı sonuçları"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Tanı sonuçlarına git"
|
||||
|
||||
@ -9112,7 +9114,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Dağıtım Güncellemesi"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Paket bekletmelerini denetle"
|
||||
|
||||
@ -9527,7 +9529,7 @@ msgstr "Yükseltmeyi başlatma başarısız oldu."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Sık yapılan özellik güncellemeleri etkinleştirildi."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9538,7 +9540,7 @@ msgstr ""
|
||||
"kullanıcıya, uygulamaya erişme yetkisi vermek için bir kullanıcı hesabının "
|
||||
"bir grubun parçası olmasını gerektirir."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9550,25 +9552,25 @@ msgstr ""
|
||||
"sadece <em>admin</em> grubunun kullanıcıları uygulamaları veya sistem "
|
||||
"ayarlarını değiştirebilir."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Kullanıcılar ve Gruplar"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Tüm hizmetlere ve sistem ayarlarına erişim"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP \"{search_item}\" girişini denetleme"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "\"{key} {value}\" nslcd yapılandırmasını denetleme"
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "\"{database}\" nsswitch yapılandırmasını denetleme"
|
||||
@ -10492,13 +10494,7 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
@ -10508,30 +10504,23 @@ msgstr ""
|
||||
"Bu bir iç hatadır ve sizin neden olduğunuz veya düzeltebileceğiniz bir şey "
|
||||
"değildir. Lütfen düzeltebilmemiz için <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">hata izleyicide</a> hatayı bildirin. "
|
||||
"Ayrıca, lütfen hata raporuna <a href=\"%(status_log_url)s\">durum günlüğünü</"
|
||||
"a> ekleyin."
|
||||
"Ayrıca, lütfen hata raporuna <a href=\"%(logs_url)s\">günlükleri</a> ekleyin."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "Kurulum"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Bunlar, bu web arayüzü için durum günlüğünün son %(num_lines)s satırıdır. "
|
||||
"Bunlar, bu uygulamada yer alan hizmetler için günlüklerin son satırlarıdır. "
|
||||
"Eğer bir hata bildirmek istiyorsanız, lütfen <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">hata izleyiciyi</a> "
|
||||
"kullanın ve bu durum günlüğünü hata raporuna ekleyin."
|
||||
"kullanın ve bu günlüğü hata raporuna ekleyin."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
@ -10792,10 +10781,8 @@ msgid "Clear all tags"
|
||||
msgstr "Tüm etiketleri temizle"
|
||||
|
||||
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Logs"
|
||||
msgid "View Logs"
|
||||
msgstr "Günlükler"
|
||||
msgstr "Günlükleri görüntüle"
|
||||
|
||||
#: plinth/templates/toolbar.html:46 plinth/templates/toolbar.html:47
|
||||
msgid "Backup"
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-10 04:01+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 03:02+0000\n"
|
||||
"Last-Translator: Максим Горпиніч <gorpinicmaksim0@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/uk/>\n"
|
||||
@ -34,27 +34,27 @@ msgstr "Контейнер {container_name} працює"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Сервіс {service_name} запущено"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Слухати на {kind} порт {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Слухати на {kind} порт {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Під'єднання до {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Неможливо підключитись до {host}:{port}"
|
||||
@ -219,12 +219,12 @@ msgid "Backups allows creating and managing backup archives."
|
||||
msgstr ""
|
||||
"Резервне копіювання дозволяє створювати та керувати резервними архівами."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Резервні копії"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -233,19 +233,19 @@ msgstr ""
|
||||
"Для резервних копій надається перевага віддаленому зашифрованому "
|
||||
"розташуванню або зовнішньому знімному диску."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Дозволити планування резервних копій"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Перейти в {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
"Невдале заплановане резервне копіювання. Минулі {error_count} спроб не були "
|
||||
"успішними. Остання помилка: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Помилка під час резервного копіювання"
|
||||
|
||||
@ -1651,55 +1651,57 @@ msgid ""
|
||||
"This app also shows the <a href=\"{logs_url}\">logs</a> for {box_name} "
|
||||
"services."
|
||||
msgstr ""
|
||||
"Ця програма також показує <a href=\"{logs_url}\">журнали</a> для сервісів "
|
||||
"{box_name}."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Діагностика"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr "пропущено"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "пройдено"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "невдало"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "помилка"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "попередження"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "МіБ"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "ҐіБ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr ""
|
||||
"Ви повинні вимкнути деякі застосунки, щоб зменшити використання памʼяті."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Не слід встановлювати нові застосунки в цій системі."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1708,24 +1710,24 @@ msgstr ""
|
||||
"У системі бракує памʼяті: {percent_used}% використано, {memory_available} "
|
||||
"{memory_available_unit} вільно. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Мало памʼяті"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Виконується діагностика"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "Знайдено {issue_count} проблеми під час звичайних перевірок."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Результати діагностики"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "Перейти до результатів діагностики"
|
||||
|
||||
@ -9107,7 +9109,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Оновлення розповсюдження"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr "Перевірте наявність пакетів"
|
||||
|
||||
@ -9522,7 +9524,7 @@ msgstr "Не вдалося розпочати оновлення."
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr "Оновлення частих можливостей активовано."
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
@ -9533,7 +9535,7 @@ msgstr ""
|
||||
"застосунки також вимагають, щоб обліковий запис був частиною групи, щоб "
|
||||
"отримати авторизований доступ до застосунку."
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -9545,25 +9547,25 @@ msgstr ""
|
||||
"користувачі з групи <em>admin</em> можуть змінювати застосунки або системні "
|
||||
"налаштування."
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "Користувачі і групи"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr "Доступ до всіх сервісів і налаштувань системи"
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Перевірка запису LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr "Перевірте nslcd конфігурацію \"{key} {value}\""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr "Перевірте nsswitch конфігурацію \"{database}\""
|
||||
@ -10483,47 +10485,34 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">bug tracker</a> so we can fix it. Also, please attach "
|
||||
"the <a href=\"%(logs_url)s\">logs</a> to the bug report."
|
||||
msgstr ""
|
||||
"Це внутрішня помилка і не те, що Ви спричинили чи можете виправити. Будь "
|
||||
"ласка, повідомте про помилку на сторінці <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">відстеження недоліків</a>, щоб ми могли "
|
||||
"виправити її. Також, будь ласка, прикріпіть до звіту про недолік <a "
|
||||
"href=\"%(status_log_url)s\">журнал стану</a>."
|
||||
"Це внутрішня помилка, яку ви не спричинили і не можете виправити. Будь "
|
||||
"ласка, повідомте про помилку на <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a>, щоб ми могли її "
|
||||
"виправити. Також, будь ласка, додайте <a href=\"%(logs_url)s\">журнали</a> "
|
||||
"до звіту про помилку."
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "Встановлення"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"Це останні %(num_lines)s рядків із журналу стану для цього вебінтерфейсу. "
|
||||
"Якщо Ви бажаєте повідомити про недолік, будь ласка використовуйте сторінку "
|
||||
"<a href=\"https://salsa.debian.org/freedombox-team/freedombox/"
|
||||
"issues\">відстеження недоліків</a> і прикріпіть цей журнал стану до звіту "
|
||||
"про недолік."
|
||||
"Це останні рядки журналів для служб, пов'язаних із цією програмою. Якщо ви "
|
||||
"хочете повідомити про помилку, скористайтеся <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\">системою відстеження "
|
||||
"помилок</a> і додайте цей журнал до звіту про помилку."
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
@ -10783,10 +10772,8 @@ msgid "Clear all tags"
|
||||
msgstr "Очистити всі теги"
|
||||
|
||||
#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Logs"
|
||||
msgid "View Logs"
|
||||
msgstr "Журнали"
|
||||
msgstr "Переглянути журнали"
|
||||
|
||||
#: plinth/templates/toolbar.html:46 plinth/templates/toolbar.html:47
|
||||
msgid "Backup"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2021-07-28 08:34+0000\n"
|
||||
"Last-Translator: bruh <quangtrung02hn16@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -34,27 +34,27 @@ msgstr "Dịch vụ {service_name} đang chạy"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "Dịch vụ {service_name} đang chạy"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "Đang lắng nghe ở cổng {kind} {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "Đang lắng nghe ở cổng {kind} {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "Kết nối đến {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "Không thể kết nối đến {host}:{port}"
|
||||
@ -227,12 +227,12 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Sao lưu cho phép bạn tạo và quản lý các tệp sao lưu."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Sao lưu"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
@ -240,19 +240,19 @@ msgstr ""
|
||||
"Bật một lịch trình sao lưu tự động để dữ liệu được an toàn. Ưu tiên một vị "
|
||||
"trí sao lưu trên mạng được mã hoá hoặc một ổ đĩa bổ sung được gắn vào."
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "Bật một lịch trình sao lưu"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "Đi đến {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -261,7 +261,7 @@ msgstr ""
|
||||
"Sao lưu được lên lịch thất bại. {error_count} lần thử sao lưu trước đó không "
|
||||
"thành công. Lỗi mới nhất là: {error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "Lỗi trong khi sao lưu"
|
||||
|
||||
@ -1705,52 +1705,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "Chẩn đoán"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "đã qua"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "đã trượt"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "lỗi"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "cảnh báo"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "Bạn nên tắt một số ứng dụng để sử dụng ít bộ nhớ hơn."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "Bạn không nên cài đặt bất kỳ ứng dụng mới nào trên hệ thống này."
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1759,28 +1759,28 @@ msgstr ""
|
||||
"Hệ thống còn ít bộ nhớ: đã sử dụng {percent_used}%, còn trống "
|
||||
"{memory_available} {memory_available_unit}. {advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "Ít bộ nhớ"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
#, fuzzy
|
||||
#| msgid "Run Diagnostics"
|
||||
msgid "Running diagnostics"
|
||||
msgstr "Chạy chẩn đoán"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Diagnostics results"
|
||||
msgstr "Kết quả chẩn đoán"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
#, fuzzy
|
||||
#| msgid "Diagnostic Results"
|
||||
msgid "Go to diagnostics results"
|
||||
@ -8442,7 +8442,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "Đã cập nhật thiết lập"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8793,14 +8793,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8808,25 +8808,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"PO-Revision-Date: 2025-09-10 04:01+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 03:02+0000\n"
|
||||
"Last-Translator: 大王叫我来巡山 "
|
||||
"<hamburger2048@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
|
||||
@ -34,27 +34,27 @@ msgstr "{container_name} 容器正在运行"
|
||||
msgid "FreedomBox"
|
||||
msgstr "FreedomBox"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "服务{service_name}正在运行"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "正在侦听 {kind} 端口 {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "正在侦听 {kind} 端口 {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "连接到主机 {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "不能连接到主机 {host}:{port}"
|
||||
@ -213,30 +213,30 @@ msgstr ""
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "备份允许创建和管理备份存档。"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "备份"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr "为数据安全启用自动备份计划,最好使用加密的远程备份位置或附加的磁盘。"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "启用备份计划"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "转到 {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -244,7 +244,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"定时备份失败,尝试{error_count}次备份未成功。最后的错误是:{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "备份时出错"
|
||||
|
||||
@ -1579,52 +1579,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "诊断程序"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "通过了"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "失败"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "错误"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "警告"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "你应该禁用一些应用程序以减少内存的使用。"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "你不应该在这个系统上安装任何新的应用程序。"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1633,24 +1633,24 @@ msgstr ""
|
||||
"系统内存不足:已使用 {percent_used},{memory_available} "
|
||||
"{memory_available_unit}可用。{advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "低内存"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "运行诊断程序"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "诊断结果"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "转到诊断结果"
|
||||
|
||||
@ -8232,7 +8232,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "更新分发"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8577,14 +8577,14 @@ msgstr "开始升级失败。"
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8592,25 +8592,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr "用户和组"
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "请检查 LDAP 条目“{search_item}”"
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
@ -9447,44 +9447,31 @@ msgid "500"
|
||||
msgstr "500"
|
||||
|
||||
#: plinth/templates/500.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "This is an internal error and not something you caused or can fix. Please "
|
||||
#| "report the error on the <a href=\"https://salsa.debian.org/freedombox-"
|
||||
#| "team/freedombox/issues\">bug tracker</a> so we can fix it. Also, please "
|
||||
#| "attach the <a href=\"%(status_log_url)s\">status log</a> to the bug "
|
||||
#| "report."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This is an internal error and not something you caused or can fix. Please "
|
||||
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
|
||||
"freedombox/issues\">bug tracker</a> so we can fix it. Also, please attach "
|
||||
"the <a href=\"%(logs_url)s\">logs</a> to the bug report."
|
||||
msgstr ""
|
||||
"这是一个内部错误,不是你造成的或可以修复。 请报告到 <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\"> bug 追踪器</a> 上这样我"
|
||||
"们就可以修复该错误。同时请附加<a href=\"%(status_log_url)s\">状态日志</a>到 "
|
||||
"Bug 报告里。"
|
||||
"这是一个内部错误,不是你造成的或可以修复的。 请报告到 <a href=\"https://"
|
||||
"salsa.debian.org/freedombox-team/freedombox/issues\"> bug 追踪器</a> 上,让我"
|
||||
"们可以修复该错误。同时请附加 <a href=\"%(logs_url)s\">日志</a>到 Bug 报告里。"
|
||||
|
||||
#: plinth/templates/app-header.html:26
|
||||
msgid "Installation"
|
||||
msgstr "安装"
|
||||
|
||||
#: plinth/templates/app-logs.html:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "These are the last %(num_lines)s lines of the status log for this web "
|
||||
#| "interface. If you want to report a bug, please use the <a href=\"https://"
|
||||
#| "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
|
||||
#| "attach this status log to the bug report."
|
||||
msgid ""
|
||||
"These are the last lines of the logs for services involved in this app. If "
|
||||
"you want to report a bug, please use the <a href=\"https://salsa.debian.org/"
|
||||
"freedombox-team/freedombox/issues\">bug tracker</a> and attach this log to "
|
||||
"the bug report."
|
||||
msgstr ""
|
||||
"这些是此 Web 界面状态日志的最后 %(num_lines)s 行。如果想报 Bug,请通过 <a "
|
||||
"这些是本应用涉及到的服务的日志的最后几行。如果想报 Bug,请通过 <a "
|
||||
"href=\"salsa.debian.org/freedombox-team/freedombox/issues\"> bug 追踪器</a> "
|
||||
"并附上此状态日志。"
|
||||
"并附上此日志。"
|
||||
|
||||
#: plinth/templates/app-logs.html:26
|
||||
msgid ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 00:05+0000\n"
|
||||
"POT-Creation-Date: 2025-10-07 00:04+0000\n"
|
||||
"PO-Revision-Date: 2025-02-07 12:01+0000\n"
|
||||
"Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n"
|
||||
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/"
|
||||
@ -34,27 +34,27 @@ msgstr "{service_name} 服務執行中"
|
||||
msgid "FreedomBox"
|
||||
msgstr "自由盒子"
|
||||
|
||||
#: plinth/daemon.py:124
|
||||
#: plinth/daemon.py:131
|
||||
#, python-brace-format
|
||||
msgid "Service {service_name} is running"
|
||||
msgstr "{service_name} 服務執行中"
|
||||
|
||||
#: plinth/daemon.py:221
|
||||
#: plinth/daemon.py:228
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {listen_address}:{port}"
|
||||
msgstr "正在聆聽 {kind} 埠 {listen_address}:{port}"
|
||||
|
||||
#: plinth/daemon.py:224
|
||||
#: plinth/daemon.py:231
|
||||
#, python-brace-format
|
||||
msgid "Listening on {kind} port {port}"
|
||||
msgstr "正在聆聽 {kind} 埠 {port}"
|
||||
|
||||
#: plinth/daemon.py:295
|
||||
#: plinth/daemon.py:302
|
||||
#, python-brace-format
|
||||
msgid "Connect to {host}:{port}"
|
||||
msgstr "正在連線 {host}:{port}"
|
||||
|
||||
#: plinth/daemon.py:303
|
||||
#: plinth/daemon.py:310
|
||||
#, python-brace-format
|
||||
msgid "Cannot connect to {host}:{port}"
|
||||
msgstr "無法連線到 {host}:{port}"
|
||||
@ -214,31 +214,31 @@ msgstr "mDNS"
|
||||
msgid "Backups allows creating and managing backup archives."
|
||||
msgstr "Backups 能提供建立和管理備份檔。"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:44 plinth/modules/backups/__init__.py:174
|
||||
#: plinth/modules/backups/__init__.py:219
|
||||
#: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176
|
||||
#: plinth/modules/backups/__init__.py:221
|
||||
msgid "Backups"
|
||||
msgstr "Backups 模組"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:171
|
||||
#: plinth/modules/backups/__init__.py:173
|
||||
msgid ""
|
||||
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
|
||||
"remote backup location or an extra attached disk."
|
||||
msgstr ""
|
||||
"啟用自動排程的備份以策資料安全。請優先使用加密的遠端備份位置或外接式磁碟。"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:177
|
||||
#: plinth/modules/backups/__init__.py:179
|
||||
msgid "Enable a Backup Schedule"
|
||||
msgstr "啟用備份排程"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:181
|
||||
#: plinth/modules/backups/__init__.py:228 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/backups/__init__.py:183
|
||||
#: plinth/modules/backups/__init__.py:230 plinth/modules/privacy/__init__.py:84
|
||||
#: plinth/modules/storage/__init__.py:326
|
||||
#: plinth/modules/upgrades/__init__.py:152
|
||||
#, python-brace-format
|
||||
msgid "Go to {app_name}"
|
||||
msgstr "移至 {app_name}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:216
|
||||
#: plinth/modules/backups/__init__.py:218
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A scheduled backup failed. Past {error_count} attempts for backup did not "
|
||||
@ -247,7 +247,7 @@ msgstr ""
|
||||
"排程備份已失敗。總共 {error_count} 次備份嘗試沒有成功。最新的錯誤是︰"
|
||||
"{error_message}"
|
||||
|
||||
#: plinth/modules/backups/__init__.py:224
|
||||
#: plinth/modules/backups/__init__.py:226
|
||||
msgid "Error During Backup"
|
||||
msgstr "備份時發生錯誤"
|
||||
|
||||
@ -1621,52 +1621,52 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:60
|
||||
#: plinth/modules/diagnostics/__init__.py:254
|
||||
#: plinth/modules/diagnostics/__init__.py:255
|
||||
msgid "Diagnostics"
|
||||
msgstr "診斷"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:114
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
msgid "skipped"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:115
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
msgid "passed"
|
||||
msgstr "通過"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:116
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/networks/views.py:51
|
||||
msgid "failed"
|
||||
msgstr "失敗"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:117
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
msgid "error"
|
||||
msgstr "錯誤"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:118
|
||||
#: plinth/modules/diagnostics/__init__.py:119
|
||||
msgid "warning"
|
||||
msgstr "警告"
|
||||
|
||||
#. Translators: This is the unit of computer storage Mebibyte similar to
|
||||
#. Megabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:220
|
||||
#: plinth/modules/diagnostics/__init__.py:221
|
||||
msgid "MiB"
|
||||
msgstr "MiB"
|
||||
|
||||
#. Translators: This is the unit of computer storage Gibibyte similar to
|
||||
#. Gigabyte.
|
||||
#: plinth/modules/diagnostics/__init__.py:225
|
||||
#: plinth/modules/diagnostics/__init__.py:226
|
||||
msgid "GiB"
|
||||
msgstr "GiB"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:232
|
||||
#: plinth/modules/diagnostics/__init__.py:233
|
||||
msgid "You should disable some apps to reduce memory usage."
|
||||
msgstr "您應該停用一些應用程式以減少記憶體使用量。"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:237
|
||||
#: plinth/modules/diagnostics/__init__.py:238
|
||||
msgid "You should not install any new apps on this system."
|
||||
msgstr "您不應該在這個系統上安裝任何新的應用程式。"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:249
|
||||
#: plinth/modules/diagnostics/__init__.py:250
|
||||
#, no-python-format, python-brace-format
|
||||
msgid ""
|
||||
"System is low on memory: {percent_used}% used, {memory_available} "
|
||||
@ -1675,24 +1675,24 @@ msgstr ""
|
||||
"系統記憶體不足: 使用了{percent_used}%,剩 {memory_available}"
|
||||
"{memory_available_unit} 可用。{advice_message}"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:251
|
||||
#: plinth/modules/diagnostics/__init__.py:252
|
||||
msgid "Low Memory"
|
||||
msgstr "記憶體不足"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:282
|
||||
#: plinth/modules/diagnostics/__init__.py:283
|
||||
msgid "Running diagnostics"
|
||||
msgstr "正在進行診斷"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:328
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#, no-python-format, python-brace-format
|
||||
msgid "Found {issue_count} issues during routine tests."
|
||||
msgstr "在例行測試中發現{issue_count}個問題。"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:329
|
||||
#: plinth/modules/diagnostics/__init__.py:330
|
||||
msgid "Diagnostics results"
|
||||
msgstr "診斷結果"
|
||||
|
||||
#: plinth/modules/diagnostics/__init__.py:334
|
||||
#: plinth/modules/diagnostics/__init__.py:335
|
||||
msgid "Go to diagnostics results"
|
||||
msgstr "前往診斷結果頁面"
|
||||
|
||||
@ -8339,7 +8339,7 @@ msgstr ""
|
||||
msgid "Distribution Update"
|
||||
msgstr "配置已更新"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:385
|
||||
#: plinth/modules/upgrades/__init__.py:394
|
||||
msgid "Check for package holds"
|
||||
msgstr ""
|
||||
|
||||
@ -8690,14 +8690,14 @@ msgstr ""
|
||||
msgid "Frequent feature updates activated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:33
|
||||
#: plinth/modules/users/__init__.py:34
|
||||
msgid ""
|
||||
"Create and manage user accounts. These accounts serve as centralized "
|
||||
"authentication mechanism for most apps. Some apps further require a user "
|
||||
"account to be part of a group to authorize the user to access the app."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:38
|
||||
#: plinth/modules/users/__init__.py:39
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Any user may login to {box_name} web interface to see a list of apps "
|
||||
@ -8705,25 +8705,25 @@ msgid ""
|
||||
"group may alter apps or system settings."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:59
|
||||
#: plinth/modules/users/__init__.py:60
|
||||
msgid "Users and Groups"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:85
|
||||
#: plinth/modules/users/__init__.py:86
|
||||
msgid "Access to all services and system settings"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:137
|
||||
#: plinth/modules/users/__init__.py:139
|
||||
#, python-brace-format
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:152
|
||||
#: plinth/modules/users/__init__.py:154
|
||||
#, python-brace-format
|
||||
msgid "Check nslcd config \"{key} {value}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/__init__.py:182
|
||||
#: plinth/modules/users/__init__.py:184
|
||||
#, python-brace-format
|
||||
msgid "Check nsswitch config \"{database}\""
|
||||
msgstr ""
|
||||
|
||||
@ -90,13 +90,16 @@ def _capture_warnings():
|
||||
warnings.filterwarnings('default', '', ImportWarning)
|
||||
|
||||
|
||||
def action_init():
|
||||
def action_init(console: bool = False):
|
||||
"""Initialize logging for action scripts."""
|
||||
_capture_warnings()
|
||||
|
||||
configuration = get_configuration()
|
||||
# Don't log to console
|
||||
configuration['root']['handlers'] = ['journal']
|
||||
if console:
|
||||
configuration['root']['handlers'] = ['console']
|
||||
else:
|
||||
configuration['root']['handlers'] = ['journal']
|
||||
|
||||
logging.config.dictConfig(configuration)
|
||||
|
||||
|
||||
|
||||
@ -5,7 +5,6 @@ import glob
|
||||
import os
|
||||
import pathlib
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
@ -62,14 +61,14 @@ def setup(old_version: int):
|
||||
# version of Apache FreedomBox app and setting up for the first time don't
|
||||
# regenerate.
|
||||
if action_utils.is_disk_image() and old_version == 0:
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'make-ssl-cert', 'generate-default-snakeoil', '--force-overwrite'
|
||||
], check=True)
|
||||
# In case the certificate has been removed after ssl-cert is installed
|
||||
# on a fresh Debian machine.
|
||||
elif not os.path.exists('/etc/ssl/certs/ssl-cert-snakeoil.pem'):
|
||||
subprocess.run(['make-ssl-cert', 'generate-default-snakeoil'],
|
||||
check=True)
|
||||
action_utils.run(['make-ssl-cert', 'generate-default-snakeoil'],
|
||||
check=True)
|
||||
|
||||
with action_utils.WebserverChange() as webserver:
|
||||
# Disable mod_php as we have switched to mod_fcgi + php-fpm. Disable
|
||||
|
||||
@ -35,6 +35,8 @@ class BackupsApp(app_module.App):
|
||||
|
||||
_version = 3
|
||||
|
||||
can_be_disabled = False
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""Create components for the app."""
|
||||
super().__init__()
|
||||
|
||||
@ -118,8 +118,8 @@ def reraise_known_errors(privileged_func):
|
||||
|
||||
def _reraise_known_errors(err):
|
||||
"""Look whether the caught error is known and reraise it accordingly"""
|
||||
stdout = (getattr(err, 'stdout') or b'').decode()
|
||||
stderr = (getattr(err, 'stderr') or b'').decode()
|
||||
stdout = (getattr(err, 'stdout', b'') or b'').decode()
|
||||
stderr = (getattr(err, 'stderr', b'') or b'').decode()
|
||||
caught_error = str((err, err.args, stdout, stderr))
|
||||
for known_error in KNOWN_ERRORS:
|
||||
for error in known_error['errors']:
|
||||
@ -194,7 +194,7 @@ def _is_mounted(mountpoint):
|
||||
cmd = ['mountpoint', '-q', mountpoint]
|
||||
# mountpoint exits with status non-zero if it didn't find a mountpoint
|
||||
try:
|
||||
subprocess.run(cmd, check=True)
|
||||
action_utils.run(cmd, check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
return False
|
||||
@ -244,8 +244,7 @@ def init(path: str, encryption: str,
|
||||
@privileged
|
||||
def info(path: str, encryption_passphrase: secret_str | None = None) -> dict:
|
||||
"""Show repository information."""
|
||||
process = _run(['borg', 'info', '--json', path], encryption_passphrase,
|
||||
stdout=subprocess.PIPE)
|
||||
process = _run(['borg', 'info', '--json', path], encryption_passphrase)
|
||||
return json.loads(process.stdout.decode())
|
||||
|
||||
|
||||
@ -255,7 +254,7 @@ def list_repo(path: str,
|
||||
encryption_passphrase: secret_str | None = None) -> dict:
|
||||
"""List repository contents."""
|
||||
process = _run(['borg', 'list', '--json', '--format="{comment}"', path],
|
||||
encryption_passphrase, stdout=subprocess.PIPE)
|
||||
encryption_passphrase)
|
||||
return json.loads(process.stdout.decode())
|
||||
|
||||
|
||||
@ -281,7 +280,7 @@ def remove_uploaded_archive(file_path: str):
|
||||
|
||||
def _get_borg_version():
|
||||
"""Return the version of borgbackup."""
|
||||
process = _run(['borg', '--version'], stdout=subprocess.PIPE)
|
||||
process = _run(['borg', '--version'])
|
||||
return process.stdout.decode().split()[1] # Example: "borg 1.1.9"
|
||||
|
||||
|
||||
@ -322,10 +321,7 @@ def _extract(archive_path, destination, encryption_passphrase, locations=None):
|
||||
|
||||
try:
|
||||
os.chdir(os.path.expanduser(destination))
|
||||
# TODO: with python 3.7 use subprocess.run with the 'capture_output'
|
||||
# argument
|
||||
process = _run(borg_call, encryption_passphrase, check=False,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
process = _run(borg_call, encryption_passphrase, check=False)
|
||||
if process.returncode != 0:
|
||||
error = process.stderr.decode()
|
||||
# Don't fail on the borg error when no files were matched
|
||||
@ -350,8 +346,7 @@ def export_tar(path: str, encryption_passphrase: secret_str | None = None):
|
||||
def _read_archive_file(archive, filepath, encryption_passphrase):
|
||||
"""Read the content of a file inside an archive."""
|
||||
borg_call = ['borg', 'extract', archive, filepath, '--stdout']
|
||||
return _run(borg_call, encryption_passphrase,
|
||||
stdout=subprocess.PIPE).stdout.decode()
|
||||
return _run(borg_call, encryption_passphrase).stdout.decode()
|
||||
|
||||
|
||||
@reraise_known_errors
|
||||
@ -365,8 +360,7 @@ def get_archive_apps(
|
||||
'borg', 'list', path, manifest_folder, '--format', '{path}{NEWLINE}'
|
||||
]
|
||||
try:
|
||||
borg_process = _run(borg_call, encryption_passphrase,
|
||||
stdout=subprocess.PIPE)
|
||||
borg_process = _run(borg_call, encryption_passphrase)
|
||||
manifest_path = borg_process.stdout.decode().strip()
|
||||
except subprocess.CalledProcessError:
|
||||
raise RuntimeError('Borg exited unsuccessfully')
|
||||
|
||||
@ -237,7 +237,7 @@ class RootBorgRepository(BaseBorgRepository):
|
||||
UUID = 'root'
|
||||
PATH = '/var/lib/freedombox/borgbackup'
|
||||
|
||||
storage_type = 'root'
|
||||
storage_type = 'root' # type: ignore
|
||||
name = format_lazy(_('{box_name} storage'), box_name=_(cfg.box_name))
|
||||
borg_path = PATH
|
||||
sort_order = 10
|
||||
@ -252,7 +252,7 @@ class RootBorgRepository(BaseBorgRepository):
|
||||
class BorgRepository(BaseBorgRepository):
|
||||
"""General Borg repository implementation."""
|
||||
known_credentials = ['encryption_passphrase']
|
||||
storage_type = 'disk'
|
||||
storage_type = 'disk' # type: ignore
|
||||
sort_order = 20
|
||||
flags = {'removable': True}
|
||||
|
||||
@ -273,7 +273,7 @@ class SshBorgRepository(BaseBorgRepository):
|
||||
known_credentials = [
|
||||
'ssh_keyfile', 'ssh_password', 'encryption_passphrase'
|
||||
]
|
||||
storage_type = 'ssh'
|
||||
storage_type = 'ssh' # type: ignore
|
||||
sort_order = 30
|
||||
flags = {'removable': True, 'mountable': True}
|
||||
|
||||
|
||||
@ -10,7 +10,6 @@ import pwd
|
||||
import secrets
|
||||
import shutil
|
||||
import string
|
||||
import subprocess
|
||||
|
||||
import augeas
|
||||
|
||||
@ -71,13 +70,13 @@ def setup(domain_name: str):
|
||||
try:
|
||||
grp.getgrnam('bepasty')
|
||||
except KeyError:
|
||||
subprocess.run(['addgroup', '--system', 'bepasty'], check=True)
|
||||
action_utils.run(['addgroup', '--system', 'bepasty'], check=True)
|
||||
|
||||
# Create bepasty user if needed.
|
||||
try:
|
||||
pwd.getpwnam('bepasty')
|
||||
except KeyError:
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'adduser', '--system', '--ingroup', 'bepasty', '--home',
|
||||
'/var/lib/bepasty', '--gecos', 'bepasty file sharing', 'bepasty'
|
||||
], check=True)
|
||||
@ -174,5 +173,5 @@ def uninstall():
|
||||
"""Remove bepasty user, group and data."""
|
||||
shutil.rmtree(DATA_DIR, ignore_errors=True)
|
||||
CONF_FILE.unlink(missing_ok=True)
|
||||
subprocess.run(['deluser', 'bepasty'], check=False)
|
||||
subprocess.run(['delgroup', 'bepasty'], check=False)
|
||||
action_utils.run(['deluser', 'bepasty'], check=False)
|
||||
action_utils.run(['delgroup', 'bepasty'], check=False)
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
|
||||
import pathlib
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
@ -28,9 +27,9 @@ def create_library(name: str):
|
||||
calibre.validate_library_name(name)
|
||||
library = LIBRARIES_PATH / name
|
||||
library.mkdir(mode=0o755) # Raise exception if already exists
|
||||
subprocess.call(
|
||||
action_utils.run(
|
||||
['calibredb', '--with-library', library, 'list_categories'],
|
||||
stdout=subprocess.DEVNULL)
|
||||
check=False)
|
||||
|
||||
# Force systemd StateDirectory= logic to assign proper ownership to the
|
||||
# DynamicUser=
|
||||
|
||||
@ -29,9 +29,8 @@ def fixture_patch():
|
||||
path = pathlib.Path(args[0][2]) / 'metadata.db'
|
||||
path.touch()
|
||||
|
||||
with patch('subprocess.call') as subprocess_call, \
|
||||
patch('subprocess.run'), patch('shutil.chown'):
|
||||
subprocess_call.side_effect = side_effect
|
||||
with patch('subprocess.run') as subprocess_run, patch('shutil.chown'):
|
||||
subprocess_run.side_effect = side_effect
|
||||
yield
|
||||
|
||||
|
||||
|
||||
@ -109,23 +109,23 @@ def home_page_url2scid(url: str | None):
|
||||
|
||||
def _home_page_scid2url(shortcut_id: str) -> str | None:
|
||||
"""Return the url for the given home page shortcut ID."""
|
||||
url: str | None = '/plinth/'
|
||||
if shortcut_id == 'plinth':
|
||||
url = '/plinth/'
|
||||
pass
|
||||
elif shortcut_id == 'apache-default':
|
||||
url = None
|
||||
elif shortcut_id.startswith('uws-'):
|
||||
user = shortcut_id[4:]
|
||||
if user in get_users_with_website():
|
||||
url = uws_url_of_user(user)
|
||||
else:
|
||||
url = None
|
||||
else:
|
||||
shortcuts = frontpage.Shortcut.list()
|
||||
aux = [
|
||||
shortcut.url for shortcut in shortcuts
|
||||
if shortcut_id == shortcut.component_id
|
||||
]
|
||||
url = aux[0] if 1 == len(aux) else None
|
||||
if 1 == len(aux):
|
||||
url = aux[0]
|
||||
|
||||
return url
|
||||
|
||||
|
||||
@ -4,11 +4,13 @@ Tests for config module.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest.mock import MagicMock, patch
|
||||
import pathlib
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from plinth import __main__ as plinth_main
|
||||
from plinth import utils
|
||||
from plinth.modules.apache import uws_directory_of_user, uws_url_of_user
|
||||
from plinth.modules.config import (_home_page_scid2url, change_home_page,
|
||||
get_home_page, home_page_url2scid)
|
||||
@ -61,23 +63,14 @@ def test_homepage_mapping_skip_ci():
|
||||
|
||||
# AC: Return None if it doesn't:
|
||||
os.rmdir(uws_directory)
|
||||
assert _home_page_scid2url(uws_scid) is None
|
||||
assert _home_page_scid2url(uws_scid) == '/plinth/'
|
||||
|
||||
|
||||
class Dict2Obj:
|
||||
"""Mock object made out of any dict."""
|
||||
|
||||
def __init__(self, a_dict):
|
||||
self.__dict__ = a_dict
|
||||
|
||||
|
||||
@patch('plinth.frontpage.Shortcut.list',
|
||||
MagicMock(return_value=[
|
||||
Dict2Obj({
|
||||
'url': 'url/for/' + id,
|
||||
'component_id': id
|
||||
}) for id in ('a', 'b')
|
||||
]))
|
||||
@patch(
|
||||
'plinth.frontpage.Shortcut.list',
|
||||
Mock(return_value=[
|
||||
Mock(url='url/for/' + id, component_id=id) for id in ('a', 'b')
|
||||
]))
|
||||
@pytest.mark.usefixtures('needs_root')
|
||||
def test_homepage_field():
|
||||
"""Test homepage changes.
|
||||
@ -104,23 +97,14 @@ def test_homepage_field():
|
||||
Currently they share the same test case.
|
||||
- Search for another valid user apart from fbx.
|
||||
"""
|
||||
user = 'fbx'
|
||||
user = 'test_' + utils.random_string(size=12)
|
||||
uws_directory = uws_directory_of_user(user)
|
||||
uws_url = uws_url_of_user(user)
|
||||
uws_scid = home_page_url2scid(uws_url)
|
||||
|
||||
default_home_page = 'plinth'
|
||||
original_home_page = get_home_page() or default_home_page
|
||||
|
||||
# Check test's preconditions:
|
||||
if original_home_page not in (default_home_page, None):
|
||||
reason = "Unexpected home page {}.".format(original_home_page)
|
||||
pytest.skip(reason)
|
||||
|
||||
if os.path.exists(uws_directory):
|
||||
# Don't blindly remove a pre-existing directory. Just skip the test.
|
||||
reason = "UWS directory {} exists already.".format(uws_directory)
|
||||
pytest.skip(reason)
|
||||
change_home_page(default_home_page) # Set to known value explicitly
|
||||
|
||||
# AC: invalid changes fall back to default:
|
||||
for scid in ('uws-unexisting', uws_scid, 'missing_app'):
|
||||
@ -128,12 +112,7 @@ def test_homepage_field():
|
||||
assert get_home_page() == default_home_page
|
||||
|
||||
# AC: valid changes actually happen:
|
||||
try:
|
||||
os.mkdir(uws_directory)
|
||||
except Exception:
|
||||
reason = "Needs access to ~/ directory. " \
|
||||
+ "CI sandboxed workspace doesn't provide it."
|
||||
pytest.skip(reason)
|
||||
pathlib.Path(uws_directory).mkdir(parents=True)
|
||||
for scid in ('b', 'a', uws_scid, 'apache-default', 'plinth'):
|
||||
change_home_page(scid)
|
||||
assert get_home_page() == scid
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Set time zone with timedatectl."""
|
||||
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
|
||||
|
||||
@ -10,4 +9,4 @@ from plinth.actions import privileged
|
||||
def set_timezone(timezone: str):
|
||||
"""Set time zone with timedatectl."""
|
||||
command = ['timedatectl', 'set-timezone', timezone]
|
||||
subprocess.run(command, stdout=subprocess.DEVNULL, check=True)
|
||||
action_utils.run(command, check=True)
|
||||
|
||||
@ -86,8 +86,9 @@ class DiagnosticsApp(app_module.App):
|
||||
# Check periodically for low RAM space
|
||||
glib.schedule(3600, _warn_about_low_ram_space)
|
||||
|
||||
# Run diagnostics once a day
|
||||
glib.schedule(24 * 3600, _daily_diagnostics_run, in_thread=False)
|
||||
# Run diagnostics once a day or every 30 minutes in development mode.
|
||||
glib.schedule(24 * 3600, _daily_diagnostics_run, in_thread=False,
|
||||
develop_interval=1800)
|
||||
|
||||
def setup(self, old_version):
|
||||
"""Install and configure the app."""
|
||||
|
||||
@ -89,7 +89,7 @@ def setup(domain_name: str):
|
||||
_upgrade_config(domain_name)
|
||||
|
||||
try:
|
||||
subprocess.check_output(['ejabberdctl', 'restart'])
|
||||
action_utils.run(['ejabberdctl', 'restart'], check=True)
|
||||
except subprocess.CalledProcessError as err:
|
||||
logger.warn('Failed to restart ejabberd with new configuration: %s',
|
||||
err)
|
||||
@ -145,11 +145,11 @@ def pre_change_hostname(old_hostname: str, new_hostname: str):
|
||||
logger.info('ejabberdctl not found')
|
||||
return
|
||||
|
||||
subprocess.call(['ejabberdctl', 'backup', EJABBERD_BACKUP])
|
||||
subprocess.check_output([
|
||||
action_utils.run(['ejabberdctl', 'backup', EJABBERD_BACKUP], check=False)
|
||||
action_utils.run([
|
||||
'ejabberdctl', 'mnesia-change-nodename', 'ejabberd@' + old_hostname,
|
||||
'ejabberd@' + new_hostname, EJABBERD_BACKUP, EJABBERD_BACKUP_NEW
|
||||
])
|
||||
], check=True)
|
||||
os.remove(EJABBERD_BACKUP)
|
||||
|
||||
|
||||
@ -160,20 +160,20 @@ def change_hostname():
|
||||
return
|
||||
|
||||
action_utils.service_stop('ejabberd')
|
||||
subprocess.call(['pkill', '-u', 'ejabberd'])
|
||||
action_utils.run(['pkill', '-u', 'ejabberd'], check=False)
|
||||
|
||||
# Make sure there aren't files in the Mnesia spool dir
|
||||
os.makedirs('/var/lib/ejabberd/oldfiles', exist_ok=True)
|
||||
subprocess.call('mv /var/lib/ejabberd/*.* /var/lib/ejabberd/oldfiles/',
|
||||
shell=True)
|
||||
action_utils.run('mv /var/lib/ejabberd/*.* /var/lib/ejabberd/oldfiles/',
|
||||
shell=True, check=False)
|
||||
|
||||
action_utils.service_start('ejabberd')
|
||||
|
||||
# restore backup database
|
||||
if os.path.exists(EJABBERD_BACKUP_NEW):
|
||||
try:
|
||||
subprocess.check_output(
|
||||
['ejabberdctl', 'restore', EJABBERD_BACKUP_NEW])
|
||||
action_utils.run(['ejabberdctl', 'restore', EJABBERD_BACKUP_NEW],
|
||||
check=True)
|
||||
os.remove(EJABBERD_BACKUP_NEW)
|
||||
except subprocess.CalledProcessError as err:
|
||||
logger.error('Failed to restore ejabberd backup database: %s', err)
|
||||
@ -278,7 +278,7 @@ def mam(command: str) -> bool | None:
|
||||
yaml.dump(conf, file_handle)
|
||||
|
||||
if action_utils.service_is_running('ejabberd'):
|
||||
subprocess.call(['ejabberdctl', 'reload_config'])
|
||||
action_utils.run(['ejabberdctl', 'reload_config'], check=False)
|
||||
|
||||
return None
|
||||
|
||||
@ -359,14 +359,14 @@ def configure_turn(turn_server_config: dict[str, Any], managed: bool):
|
||||
Path(EJABBERD_MANAGED_COTURN).unlink(missing_ok=True)
|
||||
|
||||
if action_utils.service_is_running('ejabberd'):
|
||||
subprocess.call(['ejabberdctl', 'reload_config'])
|
||||
action_utils.run(['ejabberdctl', 'reload_config'], check=False)
|
||||
|
||||
|
||||
def _get_version():
|
||||
"""Get the current ejabberd version."""
|
||||
try:
|
||||
output = subprocess.check_output(['ejabberdctl',
|
||||
'status']).decode('utf-8')
|
||||
output = action_utils.run(['ejabberdctl', 'status'],
|
||||
check=True).stdout.decode('utf-8')
|
||||
except subprocess.CalledProcessError:
|
||||
return None
|
||||
|
||||
|
||||
@ -11,6 +11,8 @@ import re
|
||||
import subprocess
|
||||
from dataclasses import dataclass
|
||||
|
||||
from plinth import action_utils
|
||||
|
||||
|
||||
@dataclass
|
||||
class Service: # NOQA, pylint: disable=too-many-instance-attributes
|
||||
@ -109,7 +111,7 @@ def _run(args):
|
||||
Raise a RuntimeError on non-zero exit codes.
|
||||
"""
|
||||
try:
|
||||
result = subprocess.run(args, check=True, capture_output=True)
|
||||
result = action_utils.run(args, check=True)
|
||||
return result.stdout.decode()
|
||||
except subprocess.SubprocessError as subprocess_error:
|
||||
raise RuntimeError('Subprocess failed') from subprocess_error
|
||||
|
||||
@ -7,8 +7,8 @@ See: https://rspamd.com/doc/modules/dkim_signing.html
|
||||
import pathlib
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
from plinth.privileged import service as service_privileged
|
||||
|
||||
@ -30,9 +30,9 @@ def get_dkim_public_key(domain: str) -> str:
|
||||
"""Privileged action to get the public key from DKIM key."""
|
||||
_validate_domain_name(domain)
|
||||
key_file = _keys_dir / f'{domain}.dkim.key'
|
||||
output = subprocess.check_output(
|
||||
output = action_utils.run(
|
||||
['openssl', 'rsa', '-in',
|
||||
str(key_file), '-pubout'], stderr=subprocess.DEVNULL)
|
||||
str(key_file), '-pubout'], check=True).stdout
|
||||
return ''.join(output.decode().splitlines()[1:-1])
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ def setup_dkim(domain: str):
|
||||
|
||||
# Ed25519 is widely *not* accepted as of 2022-01. See:
|
||||
# https://serverfault.com/questions/1023674
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'rspamadm', 'dkim_keygen', '-t', 'rsa', '-b', '2048', '-s', 'dkim',
|
||||
'-d', domain, '-k', (str(key_file))
|
||||
], check=True)
|
||||
|
||||
@ -6,8 +6,7 @@ See:
|
||||
https://doc.dovecot.org/configuration_manual/authentication/user_databases_userdb/
|
||||
"""
|
||||
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
|
||||
|
||||
@ -19,4 +18,4 @@ def setup_home():
|
||||
Dovecot creates new directories with the same permissions as the parent
|
||||
directory. Ensure that 'others' can't access /var/mail/.
|
||||
"""
|
||||
subprocess.run(['chmod', 'o-rwx', '/var/mail'], check=True)
|
||||
action_utils.run(['chmod', 'o-rwx', '/var/mail'], check=True)
|
||||
|
||||
@ -10,8 +10,8 @@ For testing DKIM signatures: https://www.mail-tester.com/
|
||||
|
||||
import pathlib
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
from plinth.modules.email import postfix
|
||||
|
||||
@ -31,10 +31,11 @@ def setup_spam():
|
||||
|
||||
def _compile_sieve():
|
||||
"""Compile all .sieve script to binary format for performance."""
|
||||
sieve_dirs = ['/etc/dovecot/freedombox-sieve-after/',
|
||||
'/etc/dovecot/freedombox-sieve']
|
||||
sieve_dirs = [
|
||||
'/etc/dovecot/freedombox-sieve-after/', '/etc/dovecot/freedombox-sieve'
|
||||
]
|
||||
for sieve_dir in sieve_dirs:
|
||||
subprocess.run(['sievec', sieve_dir], check=True)
|
||||
action_utils.run(['sievec', sieve_dir], check=True)
|
||||
|
||||
|
||||
def _setup_rspamd():
|
||||
|
||||
@ -36,10 +36,10 @@ def _flush_iptables_rules():
|
||||
iptables_rules += rule_template.format(table=table)
|
||||
ip6tables_rules += rule_template.format(table=table)
|
||||
|
||||
subprocess.run(['iptables-restore'], input=iptables_rules.encode(),
|
||||
check=True)
|
||||
subprocess.run(['ip6tables-restore'], input=iptables_rules.encode(),
|
||||
check=True)
|
||||
action_utils.run(['iptables-restore'], input=iptables_rules.encode(),
|
||||
check=True)
|
||||
action_utils.run(['ip6tables-restore'], input=iptables_rules.encode(),
|
||||
check=True)
|
||||
|
||||
|
||||
def set_firewall_backend(backend):
|
||||
@ -67,8 +67,7 @@ def set_firewall_backend(backend):
|
||||
|
||||
def _run_firewall_cmd(args):
|
||||
"""Run firewall-cmd command, discard output and check return value."""
|
||||
subprocess.run(['firewall-cmd'] + args, stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL, check=True)
|
||||
action_utils.run(['firewall-cmd'] + args, check=True)
|
||||
|
||||
|
||||
def _setup_local_service_protection():
|
||||
@ -160,9 +159,8 @@ def _setup_inter_zone_forwarding():
|
||||
def setup():
|
||||
"""Perform basic firewalld setup."""
|
||||
action_utils.service_enable('firewalld')
|
||||
subprocess.run(['firewall-cmd', '--set-default-zone=external'],
|
||||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
|
||||
check=True)
|
||||
action_utils.run(['firewall-cmd', '--set-default-zone=external'],
|
||||
check=True)
|
||||
set_firewall_backend('nftables')
|
||||
|
||||
_setup_local_service_protection()
|
||||
@ -176,7 +174,8 @@ def get_config() -> FirewallConfig:
|
||||
config: FirewallConfig = {}
|
||||
|
||||
# Get the default zone.
|
||||
output = subprocess.check_output(['firewall-cmd', '--get-default-zone'])
|
||||
output = action_utils.run(['firewall-cmd', '--get-default-zone'],
|
||||
check=True).stdout
|
||||
config['default_zone'] = output.decode().strip()
|
||||
|
||||
# Load Augeas lens.
|
||||
@ -191,8 +190,9 @@ def get_config() -> FirewallConfig:
|
||||
config['backend'] = aug.get('FirewallBackend')
|
||||
|
||||
# Get the list of direct passthroughs.
|
||||
output = subprocess.check_output(
|
||||
['firewall-cmd', '--direct', '--get-all-passthroughs'])
|
||||
output = action_utils.run(
|
||||
['firewall-cmd', '--direct', '--get-all-passthroughs'],
|
||||
check=True).stdout
|
||||
config['passthroughs'] = output.decode().strip().split('\n')
|
||||
|
||||
return config
|
||||
|
||||
@ -34,7 +34,7 @@ class GitwebApp(app_module.App):
|
||||
|
||||
app_id = 'gitweb'
|
||||
|
||||
_version = 3
|
||||
_version = 4
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""Create components for the app."""
|
||||
|
||||
@ -4,14 +4,16 @@
|
||||
import configparser
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import time
|
||||
from typing import Any
|
||||
from urllib import parse
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
from plinth.actions import privileged, secret_str
|
||||
from plinth.modules.gitweb.forms import RepositoryValidator, get_name_from_url
|
||||
from plinth.modules.gitweb.manifest import GIT_REPO_PATH, REPO_DIR_OWNER
|
||||
|
||||
@ -27,7 +29,7 @@ def validate_repo_name(name: str) -> str:
|
||||
return name
|
||||
|
||||
|
||||
def validate_repo_url(url: str) -> str:
|
||||
def validate_repo_url(url: secret_str) -> secret_str:
|
||||
"""Validate a repository URL."""
|
||||
RepositoryValidator(input_should_be='url')(url)
|
||||
return url
|
||||
@ -35,33 +37,58 @@ def validate_repo_url(url: str) -> str:
|
||||
|
||||
@privileged
|
||||
def setup():
|
||||
"""Disable default Apache2 Gitweb configuration."""
|
||||
"""Configure Gitweb module."""
|
||||
# Disable default Apache2 Gitweb configuration.
|
||||
action_utils.webserver_disable('gitweb')
|
||||
if not _get_global_default_branch():
|
||||
_set_global_default_branch('main')
|
||||
|
||||
# Configure Git client.
|
||||
if not _get_git_global_config('init.defaultBranch'):
|
||||
_set_git_global_config('init.defaultBranch', 'main')
|
||||
if not _get_git_global_config('credential.helper'):
|
||||
_set_git_global_config('credential.helper', 'cache')
|
||||
|
||||
|
||||
def _get_global_default_branch():
|
||||
"""Get globally configured default branch name."""
|
||||
def _get_git_global_config(key: str) -> str | None:
|
||||
"""Return a value from Git global configuration."""
|
||||
try:
|
||||
default_branch = subprocess.check_output(
|
||||
['git', 'config', '--global', '--get',
|
||||
'init.defaultBranch']).decode().strip()
|
||||
value = action_utils.run(['git', 'config', '--global', '--get', key],
|
||||
check=True).stdout.decode().strip()
|
||||
except subprocess.CalledProcessError as exception:
|
||||
if exception.returncode == 1: # Default branch not configured
|
||||
if exception.returncode == 1: # Configuration option doesn't exist
|
||||
return None
|
||||
raise
|
||||
|
||||
return default_branch
|
||||
return value
|
||||
|
||||
|
||||
def _set_global_default_branch(name):
|
||||
"""Configure default branch name globally."""
|
||||
subprocess.check_call(
|
||||
['git', 'config', '--global', 'init.defaultBranch', name])
|
||||
def _set_git_global_config(key: str, value: str) -> None:
|
||||
"""Set a Git global configuration value."""
|
||||
action_utils.run(['git', 'config', '--global', key, value], check=True)
|
||||
|
||||
|
||||
def _clone_with_progress_report(url, repo_dir):
|
||||
def _setup_git_credentials(url: secret_str) -> str:
|
||||
"""Set up git credential helper and return URL without credentials."""
|
||||
url_parts = parse.urlsplit(url)
|
||||
safe_netloc = url_parts.netloc.split('@')[-1]
|
||||
safe_url = url_parts._replace(netloc=safe_netloc).geturl()
|
||||
username = url_parts.username or ''
|
||||
password = url_parts.password or ''
|
||||
|
||||
if username or password:
|
||||
# Feed credentials to Git credential helper
|
||||
input = (f'protocol={url_parts.scheme}\n'
|
||||
f'host={safe_netloc}\n'
|
||||
f'username={username}\n'
|
||||
f'password={password}\n\n')
|
||||
env = dict(os.environ, GIT_TERMINAL_PROMPT='0')
|
||||
action_utils.run(['git', 'credential', 'approve'],
|
||||
input=input.encode(), stdout=subprocess.DEVNULL,
|
||||
check=True, env=env)
|
||||
|
||||
return safe_url
|
||||
|
||||
|
||||
def _clone_with_progress_report(url: secret_str, repo_dir: pathlib.Path):
|
||||
"""Clone a repository and write progress info to the file."""
|
||||
starttime = time.time()
|
||||
status_file = repo_dir / 'clone_progress'
|
||||
@ -70,9 +97,12 @@ def _clone_with_progress_report(url, repo_dir):
|
||||
env = dict(os.environ, GIT_TERMINAL_PROMPT='0', LC_ALL='C',
|
||||
GIT_HTTP_LOW_SPEED_LIMIT='100', GIT_HTTP_LOW_SPEED_TIME='60')
|
||||
|
||||
safe_url = _setup_git_credentials(url)
|
||||
logger.info(f'Cloning Git repository {safe_url} ...')
|
||||
proc = subprocess.Popen(
|
||||
['git', 'clone', '--bare', '--progress', url,
|
||||
['git', 'clone', '--bare', '--progress', safe_url,
|
||||
str(repo_temp_dir)], stderr=subprocess.PIPE, text=True, env=env)
|
||||
assert proc.stderr is not None
|
||||
|
||||
# write clone progress to the file
|
||||
errors = []
|
||||
@ -108,7 +138,7 @@ def _clone_with_progress_report(url, repo_dir):
|
||||
raise RuntimeError('Git repository cloning failed.', errors)
|
||||
|
||||
|
||||
def _prepare_clone_repo(url: str, is_private: bool):
|
||||
def _prepare_clone_repo(url: secret_str, is_private: bool):
|
||||
"""Prepare cloning a repository."""
|
||||
repo_name = get_name_from_url(url)
|
||||
if not repo_name.endswith('.git'):
|
||||
@ -150,7 +180,8 @@ def _clone_status_line_to_percent(line):
|
||||
return None
|
||||
|
||||
|
||||
def _clone_repo(url: str, description: str, owner: str, keep_ownership: bool):
|
||||
def _clone_repo(url: secret_str, description: str, owner: str,
|
||||
keep_ownership: bool):
|
||||
"""Clone a repository."""
|
||||
repo = get_name_from_url(url)
|
||||
if not repo.endswith('.git'):
|
||||
@ -166,9 +197,9 @@ def _clone_repo(url: str, description: str, owner: str, keep_ownership: bool):
|
||||
|
||||
shutil.rmtree(repo_temp_path)
|
||||
if not keep_ownership:
|
||||
subprocess.check_call(
|
||||
action_utils.run(
|
||||
['chown', '-R', f'{REPO_DIR_OWNER}:{REPO_DIR_OWNER}', repo],
|
||||
cwd=GIT_REPO_PATH)
|
||||
cwd=GIT_REPO_PATH, check=True)
|
||||
|
||||
_set_repo_description(repo, description)
|
||||
_set_repo_owner(repo, owner)
|
||||
@ -178,12 +209,12 @@ def _create_repo(repo: str, description: str, owner: str, is_private: bool,
|
||||
keep_ownership: bool):
|
||||
"""Create an empty repository."""
|
||||
try:
|
||||
subprocess.check_call(['git', 'init', '-q', '--bare', repo],
|
||||
cwd=GIT_REPO_PATH)
|
||||
action_utils.run(['git', 'init', '-q', '--bare', repo],
|
||||
cwd=GIT_REPO_PATH, check=True)
|
||||
if not keep_ownership:
|
||||
subprocess.check_call(
|
||||
action_utils.run(
|
||||
['chown', '-R', f'{REPO_DIR_OWNER}:{REPO_DIR_OWNER}', repo],
|
||||
cwd=GIT_REPO_PATH)
|
||||
cwd=GIT_REPO_PATH, check=True)
|
||||
_set_repo_description(repo, description)
|
||||
_set_repo_owner(repo, owner)
|
||||
if is_private:
|
||||
@ -202,8 +233,7 @@ def _get_default_branch(repo):
|
||||
return action_utils.run_as_user(
|
||||
['git', '-C',
|
||||
str(repo_path), 'symbolic-ref', '--short', 'HEAD'],
|
||||
username=REPO_DIR_OWNER, check=True,
|
||||
stdout=subprocess.PIPE).stdout.decode().strip()
|
||||
username=REPO_DIR_OWNER, check=True).stdout.decode().strip()
|
||||
|
||||
|
||||
def _get_repo_description(repo):
|
||||
@ -271,8 +301,7 @@ def _get_branches(repo):
|
||||
"""Return list of the branches in the repository."""
|
||||
process = action_utils.run_as_user(
|
||||
['git', '-C', repo, 'branch', '--format=%(refname:short)'],
|
||||
cwd=GIT_REPO_PATH, username=REPO_DIR_OWNER, check=True,
|
||||
stdout=subprocess.PIPE)
|
||||
cwd=GIT_REPO_PATH, username=REPO_DIR_OWNER, check=True)
|
||||
|
||||
return process.stdout.decode().strip().split()
|
||||
|
||||
@ -345,7 +374,7 @@ def repo_info(name: str) -> dict[str, str]:
|
||||
|
||||
|
||||
@privileged
|
||||
def create_repo(url: str | None = None, name: str | None = None,
|
||||
def create_repo(url: secret_str | None = None, name: str | None = None,
|
||||
description: str = '', owner: str = '',
|
||||
keep_ownership: bool = False, is_private: bool = False,
|
||||
skip_prepare: bool = False, prepare_only: bool = False):
|
||||
@ -367,13 +396,14 @@ def create_repo(url: str | None = None, name: str | None = None,
|
||||
|
||||
|
||||
@privileged
|
||||
def repo_exists(url: str) -> bool:
|
||||
def repo_exists(url: secret_str) -> bool:
|
||||
"""Return whether remote repository exists."""
|
||||
url = validate_repo_url(url)
|
||||
safe_url = _setup_git_credentials(url)
|
||||
env = dict(os.environ, GIT_TERMINAL_PROMPT='0')
|
||||
try:
|
||||
subprocess.check_call(['git', 'ls-remote', url, 'HEAD'], timeout=10,
|
||||
env=env)
|
||||
action_utils.run(['git', 'ls-remote', safe_url, 'HEAD'], timeout=10,
|
||||
env=env, check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
return False
|
||||
|
||||
@ -2,6 +2,8 @@
|
||||
"""Test module for gitweb module operations."""
|
||||
|
||||
import pathlib
|
||||
import subprocess
|
||||
from unittest.mock import call, patch
|
||||
|
||||
import pytest
|
||||
from django.forms import ValidationError
|
||||
@ -121,3 +123,26 @@ def test_action_create_repo_with_invalid_urls(url):
|
||||
with pytest.raises(ValidationError):
|
||||
privileged.create_repo(url=url, description='', owner='',
|
||||
keep_ownership=True)
|
||||
|
||||
|
||||
@patch('plinth.action_utils.run')
|
||||
def test_setup_git_creentials(run):
|
||||
"""Test that setting up git credentials works."""
|
||||
url = 'https://user:pass@host.example/path?key=value'
|
||||
safe_url = privileged._setup_git_credentials(url)
|
||||
assert safe_url == 'https://host.example/path?key=value'
|
||||
|
||||
input_ = b'protocol=https\nhost=host.example\nusername=user\n' \
|
||||
b'password=pass\n\n'
|
||||
env = run.mock_calls[0].kwargs.pop('env')
|
||||
assert env['GIT_TERMINAL_PROMPT'] == '0'
|
||||
assert run.mock_calls == [
|
||||
call(['git', 'credential', 'approve'], input=input_,
|
||||
stdout=subprocess.DEVNULL, check=True)
|
||||
]
|
||||
|
||||
run.reset_mock()
|
||||
url = 'https://host2.example/path?key=value'
|
||||
safe_url = privileged._setup_git_credentials(url)
|
||||
assert safe_url == 'https://host2.example/path?key=value'
|
||||
run.assert_not_called()
|
||||
|
||||
@ -5,8 +5,8 @@ import os
|
||||
import pathlib
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged, secret_str
|
||||
|
||||
SETUP_WIKI = '/etc/ikiwiki/plinth-wiki.setup'
|
||||
@ -61,10 +61,9 @@ def create_wiki(wiki_name: str, admin_name: str, admin_password: secret_str):
|
||||
"""Create a wiki."""
|
||||
pw_bytes = admin_password.encode()
|
||||
input_ = pw_bytes + b'\n' + pw_bytes
|
||||
subprocess.run(['ikiwiki', '-setup', SETUP_WIKI, wiki_name, admin_name],
|
||||
stdout=subprocess.PIPE, input=input_,
|
||||
stderr=subprocess.PIPE,
|
||||
env=dict(os.environ, PERL_UNICODE='AS'), check=True)
|
||||
action_utils.run(['ikiwiki', '-setup', SETUP_WIKI, wiki_name, admin_name],
|
||||
input=input_, env=dict(os.environ,
|
||||
PERL_UNICODE='AS'), check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
@ -72,17 +71,15 @@ def create_blog(blog_name: str, admin_name: str, admin_password: secret_str):
|
||||
"""Create a blog."""
|
||||
pw_bytes = admin_password.encode()
|
||||
input_ = pw_bytes + b'\n' + pw_bytes
|
||||
subprocess.run(['ikiwiki', '-setup', SETUP_BLOG, blog_name, admin_name],
|
||||
stdout=subprocess.PIPE, input=input_,
|
||||
stderr=subprocess.PIPE, env=dict(os.environ,
|
||||
PERL_UNICODE='AS'))
|
||||
action_utils.run(['ikiwiki', '-setup', SETUP_BLOG, blog_name, admin_name],
|
||||
input=input_, env=dict(os.environ, PERL_UNICODE='AS'))
|
||||
|
||||
|
||||
@privileged
|
||||
def setup_site(site_name: str):
|
||||
"""Run setup for a site."""
|
||||
setup_path = os.path.join(WIKI_PATH, site_name + '.setup')
|
||||
subprocess.run(['ikiwiki', '-setup', setup_path], check=True)
|
||||
action_utils.run(['ikiwiki', '-setup', setup_path], check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
|
||||
@ -9,6 +9,7 @@ import shutil
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
|
||||
DATA_DIR = '/var/lib/infinoted'
|
||||
@ -105,7 +106,7 @@ def _kill_daemon():
|
||||
end_time = time.time() + 300
|
||||
while time.time() < end_time:
|
||||
try:
|
||||
subprocess.run(['infinoted', '--kill-daemon'], check=True)
|
||||
action_utils.run(['infinoted', '--kill-daemon'], check=True)
|
||||
break
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
@ -123,19 +124,19 @@ def setup():
|
||||
with open(SYSTEMD_SERVICE_PATH, 'w', encoding='utf-8') as file_handle:
|
||||
file_handle.write(SYSTEMD_SERVICE)
|
||||
|
||||
subprocess.check_call(['systemctl', 'daemon-reload'])
|
||||
action_utils.service_daemon_reload()
|
||||
|
||||
# Create infinoted group if needed.
|
||||
try:
|
||||
grp.getgrnam('infinoted')
|
||||
except KeyError:
|
||||
subprocess.run(['addgroup', '--system', 'infinoted'], check=True)
|
||||
action_utils.run(['addgroup', '--system', 'infinoted'], check=True)
|
||||
|
||||
# Create infinoted user if needed.
|
||||
try:
|
||||
pwd.getpwnam('infinoted')
|
||||
except KeyError:
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'adduser', '--system', '--ingroup', 'infinoted', '--home',
|
||||
DATA_DIR, '--gecos', 'Infinoted collaborative editing server',
|
||||
'infinoted'
|
||||
@ -151,7 +152,7 @@ def setup():
|
||||
try:
|
||||
# infinoted doesn't have a "create key and exit" mode. Run as
|
||||
# daemon so we can stop after.
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'infinoted', '--create-key', '--create-certificate',
|
||||
'--daemonize'
|
||||
], check=True)
|
||||
|
||||
@ -53,7 +53,8 @@ def add_package(file_name: str, temporary_file_path: str):
|
||||
|
||||
|
||||
def _kiwix_manage_add(zim_file: str):
|
||||
subprocess.check_call(['kiwix-manage', LIBRARY_FILE, 'add', zim_file])
|
||||
action_utils.run(['kiwix-manage', LIBRARY_FILE, 'add', zim_file],
|
||||
check=True)
|
||||
|
||||
# kiwix-serve doesn't read the library file unless it is restarted.
|
||||
action_utils.service_try_restart('kiwix-server-freedombox')
|
||||
@ -97,8 +98,8 @@ def delete_package(zim_id: str):
|
||||
if book.attrib['id'] != zim_id:
|
||||
continue
|
||||
|
||||
subprocess.check_call(
|
||||
['kiwix-manage', LIBRARY_FILE, 'remove', zim_id])
|
||||
action_utils.run(['kiwix-manage', LIBRARY_FILE, 'remove', zim_id],
|
||||
check=True)
|
||||
(KIWIX_HOME / book.attrib['path']).unlink()
|
||||
action_utils.service_try_restart('kiwix-server-freedombox')
|
||||
return
|
||||
|
||||
@ -8,7 +8,6 @@ import os
|
||||
import pathlib
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import Any
|
||||
|
||||
@ -28,8 +27,9 @@ WEB_ROOT_PATH = '/var/www/html'
|
||||
def _get_certificate_expiry(domain: str) -> str:
|
||||
"""Return the expiry date of a certificate."""
|
||||
certificate_file = os.path.join(le.LIVE_DIRECTORY, domain, 'cert.pem')
|
||||
output = subprocess.check_output(
|
||||
['openssl', 'x509', '-enddate', '-noout', '-in', certificate_file])
|
||||
output = action_utils.run(
|
||||
['openssl', 'x509', '-enddate', '-noout', '-in', certificate_file],
|
||||
check=True).stdout
|
||||
return output.decode().strip().split('=')[1]
|
||||
|
||||
|
||||
@ -41,7 +41,8 @@ def _get_modified_time(domain: str) -> int:
|
||||
|
||||
def _get_validity_status(domain: str) -> str:
|
||||
"""Return validity status of a certificate; valid, revoked, expired."""
|
||||
output = subprocess.check_output(['certbot', 'certificates', '-d', domain])
|
||||
output = action_utils.run(['certbot', 'certificates', '-d', domain],
|
||||
check=True).stdout
|
||||
line = output.decode(sys.stdout.encoding)
|
||||
|
||||
match = re.search(r'INVALID: (.*)\)', line)
|
||||
@ -115,7 +116,7 @@ def revoke(domain: str):
|
||||
if TEST_MODE:
|
||||
command.append('--staging')
|
||||
|
||||
subprocess.run(command, check=True)
|
||||
action_utils.run(command, check=True)
|
||||
|
||||
action_utils.webserver_disable(domain, kind='site')
|
||||
|
||||
@ -132,7 +133,7 @@ def obtain(domain: str):
|
||||
if TEST_MODE:
|
||||
command.append('--staging')
|
||||
|
||||
subprocess.run(command, check=True)
|
||||
action_utils.run(command, check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
@ -249,5 +250,5 @@ def _assert_managed_path(module, path):
|
||||
def delete(domain: str):
|
||||
"""Disable a domain and delete the certificate."""
|
||||
command = ['certbot', 'delete', '--non-interactive', '--cert-name', domain]
|
||||
subprocess.run(command, check=True)
|
||||
action_utils.run(command, check=True)
|
||||
action_utils.webserver_disable(domain, kind='site')
|
||||
|
||||
@ -7,6 +7,7 @@ import shutil
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged, secret_str
|
||||
from plinth.utils import generate_password
|
||||
|
||||
@ -26,8 +27,7 @@ def get_php_command():
|
||||
version = ''
|
||||
|
||||
try:
|
||||
process = subprocess.run(['dpkg', '-s', 'php'], stdout=subprocess.PIPE,
|
||||
check=True)
|
||||
process = action_utils.run(['dpkg', '-s', 'php'], check=True)
|
||||
for line in process.stdout.decode().splitlines():
|
||||
if line.startswith('Version:'):
|
||||
version = line.split(':')[-1].split('+')[0].strip()
|
||||
@ -51,14 +51,15 @@ def setup():
|
||||
with tempfile.NamedTemporaryFile() as password_file_handle:
|
||||
password_file_handle.write(password.encode())
|
||||
password_file_handle.flush()
|
||||
subprocess.check_call([
|
||||
action_utils.run([
|
||||
get_php_command(), install_script, '--confpath=/etc/mediawiki',
|
||||
'--dbtype=sqlite', '--dbpath=' + data_dir,
|
||||
'--scriptpath=/mediawiki', '--passfile',
|
||||
password_file_handle.name, 'Wiki', 'admin'
|
||||
])
|
||||
subprocess.run(['chmod', '-R', 'o-rwx', data_dir], check=True)
|
||||
subprocess.run(['chown', '-R', 'www-data:www-data', data_dir], check=True)
|
||||
], check=True)
|
||||
action_utils.run(['chmod', '-R', 'o-rwx', data_dir], check=True)
|
||||
action_utils.run(['chown', '-R', 'www-data:www-data', data_dir],
|
||||
check=True)
|
||||
|
||||
conf_file = pathlib.Path(CONF_FILE)
|
||||
if not conf_file.exists():
|
||||
@ -100,17 +101,17 @@ def change_password(username: str, password: secret_str):
|
||||
change_password_script = os.path.join(MAINTENANCE_SCRIPTS_DIR,
|
||||
'changePassword.php')
|
||||
|
||||
subprocess.check_call([
|
||||
action_utils.run([
|
||||
get_php_command(), change_password_script, '--user', username,
|
||||
'--password', password
|
||||
])
|
||||
], check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
def update():
|
||||
"""Run update.php maintenance script when version upgrades happen."""
|
||||
update_script = os.path.join(MAINTENANCE_SCRIPTS_DIR, 'update.php')
|
||||
subprocess.check_call([get_php_command(), update_script, '--quick'])
|
||||
action_utils.run([get_php_command(), update_script, '--quick'], check=True)
|
||||
|
||||
|
||||
def _update_setting(setting_name, setting_line):
|
||||
@ -178,7 +179,7 @@ def set_default_language(language: str):
|
||||
# languages.
|
||||
rebuild_messages_script = os.path.join(MAINTENANCE_SCRIPTS_DIR,
|
||||
'rebuildmessages.php')
|
||||
subprocess.check_call([get_php_command(), rebuild_messages_script])
|
||||
action_utils.run([get_php_command(), rebuild_messages_script], check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Configure minidlna server."""
|
||||
|
||||
import subprocess
|
||||
from os import chmod, fdopen, remove, stat
|
||||
from shutil import move
|
||||
from tempfile import mkstemp
|
||||
@ -51,7 +50,7 @@ def setup():
|
||||
encoding='utf-8') as conf:
|
||||
conf.write(SYSCTL_CONF)
|
||||
|
||||
subprocess.run(['systemctl', 'restart', 'systemd-sysctl'], check=True)
|
||||
action_utils.run(['systemctl', 'restart', 'systemd-sysctl'], check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
|
||||
@ -58,7 +58,12 @@ class MinifluxApp(app_module.App):
|
||||
login_required=True)
|
||||
self.add(shortcut)
|
||||
|
||||
packages = Packages('packages-miniflux', ['miniflux', 'postgresql'])
|
||||
# miniflux package does not depend on postgres. Install postgresql,
|
||||
# start it and only then install miniflux.
|
||||
packages = Packages('packages-miniflux-postgresql', ['postgresql'])
|
||||
self.add(packages)
|
||||
|
||||
packages = Packages('packages-miniflux', ['miniflux'])
|
||||
self.add(packages)
|
||||
|
||||
drop_in_configs = DropinConfigs(
|
||||
@ -74,7 +79,7 @@ class MinifluxApp(app_module.App):
|
||||
urls=['https://{host}/miniflux/'])
|
||||
self.add(webserver)
|
||||
|
||||
daemon = SharedDaemon('shared-daemon-miniflus-postgresql',
|
||||
daemon = SharedDaemon('shared-daemon-miniflux-postgresql',
|
||||
'postgresql')
|
||||
self.add(daemon)
|
||||
|
||||
@ -89,7 +94,17 @@ class MinifluxApp(app_module.App):
|
||||
def setup(self, old_version=None):
|
||||
"""Install and configure the app."""
|
||||
privileged.pre_setup()
|
||||
super().setup(old_version)
|
||||
|
||||
# Database needs to be running for successful initialization or upgrade
|
||||
# of miniflux database. 1. The app and database are being freshly
|
||||
# installed. 2. The app is being freshly installed, but database server
|
||||
# is already installed but disabled. 3. The app is being updated to new
|
||||
# version but is currently disabled (DB is installed but disabled or
|
||||
# enabled).
|
||||
with self.get_component(
|
||||
'shared-daemon-miniflux-postgresql').ensure_running():
|
||||
super().setup(old_version)
|
||||
|
||||
privileged.setup(old_version)
|
||||
if not old_version:
|
||||
self.enable()
|
||||
@ -97,7 +112,11 @@ class MinifluxApp(app_module.App):
|
||||
def uninstall(self):
|
||||
"""De-configure and uninstall the app."""
|
||||
privileged.uninstall()
|
||||
super().uninstall()
|
||||
with self.get_component(
|
||||
'shared-daemon-miniflux-postgresql').ensure_running():
|
||||
# Database needs to be running for successful removal miniflux
|
||||
# database.
|
||||
super().uninstall()
|
||||
|
||||
|
||||
class MinifluxBackupRestore(BackupRestore):
|
||||
|
||||
@ -123,8 +123,13 @@ def reset_user_password(username: str, password: secret_str):
|
||||
@privileged
|
||||
def uninstall():
|
||||
"""Ensure that the database is removed."""
|
||||
action_utils.debconf_set_selections(
|
||||
['miniflux miniflux/purge boolean true'])
|
||||
action_utils.debconf_set_selections([
|
||||
'miniflux miniflux/purge boolean true',
|
||||
'miniflux miniflux/dbconfig-install boolean true',
|
||||
'miniflux miniflux/dbconfig-reinstall boolean true'
|
||||
'miniflux miniflux/dbconfig-upgrade boolean true',
|
||||
'miniflux miniflux/dbconfig-remove boolean true',
|
||||
])
|
||||
|
||||
|
||||
def _get_database_config():
|
||||
|
||||
@ -4,7 +4,6 @@ Configure Mumble server.
|
||||
"""
|
||||
|
||||
import pathlib
|
||||
import subprocess
|
||||
|
||||
import augeas
|
||||
|
||||
@ -37,8 +36,8 @@ def check_setup() -> bool:
|
||||
@privileged
|
||||
def set_super_user_password(password: secret_str):
|
||||
"""Set the superuser password with murmurd command."""
|
||||
subprocess.run(['murmurd', '-readsupw'], input=password.encode(),
|
||||
stdout=subprocess.DEVNULL, check=False)
|
||||
action_utils.run(['murmurd', '-readsupw'], input=password.encode(),
|
||||
check=False)
|
||||
|
||||
|
||||
@privileged
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
"""Configure Names App."""
|
||||
|
||||
import pathlib
|
||||
import subprocess
|
||||
|
||||
import augeas
|
||||
|
||||
@ -22,7 +21,7 @@ HOSTS_LOCAL_IP = '127.0.1.1'
|
||||
@privileged
|
||||
def set_hostname(hostname: str):
|
||||
"""Set system hostname using hostnamectl."""
|
||||
subprocess.run(
|
||||
action_utils.run(
|
||||
['hostnamectl', 'set-hostname', '--transient', '--static', hostname],
|
||||
check=True)
|
||||
action_utils.service_restart('avahi-daemon')
|
||||
@ -83,7 +82,7 @@ def domain_delete_all():
|
||||
def install_resolved():
|
||||
"""Install systemd-resolved related packages."""
|
||||
packages = ['systemd-resolved', 'libnss-resolve']
|
||||
subprocess.run(['dpkg', '--configure', '-a'], check=False)
|
||||
action_utils.run(['dpkg', '--configure', '-a'], check=False)
|
||||
with action_utils.apt_hold_freedombox():
|
||||
action_utils.run_apt_command(['--fix-broken', 'install'])
|
||||
returncode = action_utils.run_apt_command(['install'] + packages)
|
||||
|
||||
@ -29,8 +29,9 @@ def _sort_interfaces(interfaces: list[str]) -> list[str]:
|
||||
|
||||
def _get_interfaces() -> dict[str, list[str]]:
|
||||
"""Return all network interfaces by their type."""
|
||||
output = subprocess.check_output(
|
||||
['nmcli', '--terse', '--fields', 'type,device', 'device'])
|
||||
output = action_utils.run(
|
||||
['nmcli', '--terse', '--fields', 'type,device', 'device'],
|
||||
check=True).stdout
|
||||
interfaces = collections.defaultdict(list)
|
||||
for line in output.decode().splitlines():
|
||||
type_, _, interface = line.partition(':')
|
||||
@ -45,14 +46,15 @@ def _get_interfaces() -> dict[str, list[str]]:
|
||||
def _add_connection(connection_name: str, interface: str,
|
||||
remaining_arguments: list[str]):
|
||||
"""Add an Ethernet/Wi-Fi connection of type regular or shared."""
|
||||
output = subprocess.check_output(
|
||||
['nmcli', '--terse', '--fields', 'name,device', 'con', 'show'])
|
||||
output = action_utils.run(
|
||||
['nmcli', '--terse', '--fields', 'name,device', 'con', 'show'],
|
||||
check=True).stdout
|
||||
lines = output.decode().splitlines()
|
||||
if f'{connection_name}:{interface}' in lines:
|
||||
logging.info('Connection %s already exists for device %s, not adding.',
|
||||
connection_name, interface)
|
||||
else:
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'nmcli', 'con', 'add', 'con-name', connection_name, 'ifname',
|
||||
interface
|
||||
] + remaining_arguments, check=True)
|
||||
@ -108,8 +110,9 @@ def _set_connection_properties(connection_name: str, properties: dict[str,
|
||||
str]):
|
||||
"""Configure property key/values on a connection."""
|
||||
for key, value in properties.items():
|
||||
subprocess.run(['nmcli', 'con', 'modify', connection_name, key, value],
|
||||
check=True)
|
||||
action_utils.run(
|
||||
['nmcli', 'con', 'modify', connection_name, key, value],
|
||||
check=True)
|
||||
|
||||
|
||||
def _configure_wireless_interface(interface: str):
|
||||
|
||||
@ -6,10 +6,10 @@ from unittest.mock import patch
|
||||
from .. import privileged
|
||||
|
||||
|
||||
@patch('subprocess.check_output')
|
||||
def test_get_interfaces(check_output):
|
||||
@patch('subprocess.run')
|
||||
def test_get_interfaces(run):
|
||||
"""Test returning list of network interfaces in sorted order."""
|
||||
check_output.return_value = '\n'.join([
|
||||
run.return_value.stdout = '\n'.join([
|
||||
'ethernet:ve-fbx-testing',
|
||||
'ethernet:enp39s0',
|
||||
'ethernet:enp32s1',
|
||||
|
||||
@ -73,13 +73,13 @@ def setup():
|
||||
|
||||
|
||||
def _run_in_container(
|
||||
*args, capture_output: bool = False, check: bool = True,
|
||||
*args, check: bool = True,
|
||||
env: dict[str, str] | None = None) -> subprocess.CompletedProcess:
|
||||
"""Run a command inside the container."""
|
||||
env_args = [f'--env={key}={value}' for key, value in (env or {}).items()]
|
||||
command = ['podman', 'exec', '--user', WWW_DATA_UID
|
||||
] + env_args + [CONTAINER_NAME] + list(args)
|
||||
return subprocess.run(command, capture_output=capture_output, check=check)
|
||||
return action_utils.run(command, check=check)
|
||||
|
||||
|
||||
def _run_occ(*args, **kwargs) -> subprocess.CompletedProcess:
|
||||
@ -109,8 +109,7 @@ def disable():
|
||||
def get_override_domain():
|
||||
"""Return the domain name that Nextcloud is configured to override with."""
|
||||
try:
|
||||
domain = _run_occ('config:system:get', 'overwritehost',
|
||||
capture_output=True)
|
||||
domain = _run_occ('config:system:get', 'overwritehost')
|
||||
return domain.stdout.decode().strip()
|
||||
except subprocess.CalledProcessError:
|
||||
return None
|
||||
@ -159,8 +158,7 @@ def get_default_phone_region():
|
||||
""""Get the value of default_phone_region."""
|
||||
try:
|
||||
default_phone_region = _run_occ('config:system:get',
|
||||
'default_phone_region',
|
||||
capture_output=True)
|
||||
'default_phone_region')
|
||||
return default_phone_region.stdout.decode().strip()
|
||||
except subprocess.CalledProcessError:
|
||||
return None
|
||||
@ -174,7 +172,7 @@ def set_default_phone_region(region: str):
|
||||
|
||||
def _database_query(query: str):
|
||||
"""Run a database query."""
|
||||
subprocess.run(['mysql'], input=query.encode(), check=True)
|
||||
action_utils.run(['mysql'], input=query.encode(), check=True)
|
||||
|
||||
|
||||
def _create_database():
|
||||
@ -239,14 +237,14 @@ def _nextcloud_wait_until_ready():
|
||||
# obtaining. We are unable to obtain the lock for 5 minutes, fail and stop
|
||||
# the setup process.
|
||||
lock_file = _data_path / 'nextcloud-init-sync.lock'
|
||||
subprocess.run(
|
||||
action_utils.run(
|
||||
['flock', '--exclusive', '--wait', '300', lock_file, 'echo'],
|
||||
check=True)
|
||||
|
||||
|
||||
def _nextcloud_get_status():
|
||||
"""Return Nextcloud status such installed, in maintenance, etc."""
|
||||
output = _run_occ('status', '--output=json', capture_output=True)
|
||||
output = _run_occ('status', '--output=json')
|
||||
return json.loads(output.stdout)
|
||||
|
||||
|
||||
@ -281,8 +279,7 @@ def _configure_ldap():
|
||||
# Check if LDAP has already been configured. This is necessary because
|
||||
# if the setup proccess is rerun when updating the FredomBox app another
|
||||
# redundant LDAP config would be created.
|
||||
output = _run_occ('ldap:test-config', 's01', capture_output=True,
|
||||
check=False)
|
||||
output = _run_occ('ldap:test-config', 's01', check=False)
|
||||
if 'Invalid configID' in output.stdout.decode():
|
||||
_run_occ('ldap:create-empty-config')
|
||||
|
||||
@ -362,7 +359,7 @@ def dump_database():
|
||||
|
||||
with _maintenance_mode():
|
||||
with DB_BACKUP_FILE.open('w', encoding='utf-8') as file_handle:
|
||||
subprocess.run([
|
||||
action_utils.run([
|
||||
'mysqldump', '--add-drop-database', '--add-drop-table',
|
||||
'--add-drop-trigger', '--single-transaction',
|
||||
'--default-character-set=utf8mb4', '--user', 'root',
|
||||
@ -374,11 +371,11 @@ def dump_database():
|
||||
def restore_database():
|
||||
"""Restore database from file."""
|
||||
with DB_BACKUP_FILE.open('r', encoding='utf-8') as file_handle:
|
||||
subprocess.run(['mysql', '--user', 'root'], stdin=file_handle,
|
||||
check=True)
|
||||
action_utils.run(['mysql', '--user', 'root'], stdin=file_handle,
|
||||
check=True)
|
||||
|
||||
subprocess.run(['redis-cli', '-n',
|
||||
str(REDIS_DB), 'FLUSHDB', 'SYNC'], check=False)
|
||||
action_utils.run(['redis-cli', '-n',
|
||||
str(REDIS_DB), 'FLUSHDB', 'SYNC'], check=False)
|
||||
|
||||
_set_database_privileges(_get_database_password())
|
||||
|
||||
@ -405,8 +402,7 @@ def _get_database_password():
|
||||
code = 'if (file_exists("/var/www/html/config/config.php")) {' \
|
||||
'include_once("/var/www/html/config/config.php");' \
|
||||
'print($CONFIG["dbpassword"] ?? ""); }'
|
||||
return _run_in_container('php', '-r', code,
|
||||
capture_output=True).stdout.decode().strip()
|
||||
return _run_in_container('php', '-r', code).stdout.decode().strip()
|
||||
|
||||
|
||||
def _create_redis_config():
|
||||
|
||||
@ -104,15 +104,15 @@ def _setup_firewall():
|
||||
'firewall-cmd', '--zone', 'internal',
|
||||
'--{}-interface'.format(operation), interface
|
||||
]
|
||||
subprocess.call(command)
|
||||
subprocess.call(command + ['--permanent'])
|
||||
action_utils.run(command, check=False)
|
||||
action_utils.run(command + ['--permanent'], check=False)
|
||||
|
||||
def _is_tunplus_enabled():
|
||||
"""Return whether tun+ interface is already added."""
|
||||
try:
|
||||
process = subprocess.run(
|
||||
process = action_utils.run(
|
||||
['firewall-cmd', '--zone', 'internal', '--list-interfaces'],
|
||||
stdout=subprocess.PIPE, check=True)
|
||||
check=True)
|
||||
return 'tun+' in process.stdout.decode().strip().split()
|
||||
except subprocess.CalledProcessError:
|
||||
return True # Safer
|
||||
@ -135,8 +135,8 @@ def _setup_firewall():
|
||||
|
||||
def _run_easy_rsa(args):
|
||||
"""Execute easy-rsa command with some default arguments."""
|
||||
return subprocess.run(['/usr/share/easy-rsa/easyrsa'] + args,
|
||||
cwd=KEYS_DIRECTORY, check=True)
|
||||
return action_utils.run(['/usr/share/easy-rsa/easyrsa'] + args,
|
||||
cwd=KEYS_DIRECTORY, check=True)
|
||||
|
||||
|
||||
def _write_easy_rsa_config():
|
||||
@ -162,9 +162,9 @@ def _is_renewable(cert_name):
|
||||
if not cert_path.exists():
|
||||
return False
|
||||
|
||||
process = subprocess.run(
|
||||
process = action_utils.run(
|
||||
['openssl', 'x509', '-noout', '-enddate', '-in',
|
||||
str(cert_path)], check=True, stdout=subprocess.PIPE)
|
||||
str(cert_path)], check=True)
|
||||
date_string = process.stdout.decode().strip().partition('=')[2]
|
||||
cert_expiry_time = datetime.datetime.strptime(date_string,
|
||||
'%b %d %H:%M:%S %Y GMT')
|
||||
|
||||
@ -1,18 +1,17 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Shutdown/restart the system."""
|
||||
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
|
||||
|
||||
@privileged
|
||||
def restart():
|
||||
"""Restart the system."""
|
||||
subprocess.call('reboot')
|
||||
action_utils.run('reboot', check=False)
|
||||
|
||||
|
||||
@privileged
|
||||
def shutdown():
|
||||
"""Shut down the system."""
|
||||
subprocess.call(['shutdown', 'now'])
|
||||
action_utils.run(['shutdown', 'now'], check=False)
|
||||
|
||||
@ -7,6 +7,7 @@ import pathlib
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.actions import privileged
|
||||
|
||||
DEFAULT_FILE = '/etc/default/samba'
|
||||
@ -51,12 +52,13 @@ CONF = r'''
|
||||
|
||||
def _close_share(share_name):
|
||||
"""Disconnect all samba users who are connected to the share."""
|
||||
subprocess.check_call(['smbcontrol', 'smbd', 'close-share', share_name])
|
||||
action_utils.run(['smbcontrol', 'smbd', 'close-share', share_name],
|
||||
check=True)
|
||||
|
||||
|
||||
def _conf_command(parameters, **kwargs):
|
||||
"""Run samba configuration registry command."""
|
||||
subprocess.check_call(['net', 'conf'] + parameters, **kwargs)
|
||||
action_utils.run(['net', 'conf'] + parameters, check=True, **kwargs)
|
||||
|
||||
|
||||
def _create_share(mount_point, share_type, windows_filesystem=False):
|
||||
@ -103,7 +105,7 @@ def _create_share_name(mount_point):
|
||||
def _define_open_share(name, path, windows_filesystem=False):
|
||||
"""Define an open samba share."""
|
||||
try:
|
||||
_conf_command(['delshare', name], stderr=subprocess.DEVNULL)
|
||||
_conf_command(['delshare', name])
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
_conf_command(['addshare', name, path, 'writeable=y', 'guest_ok=y'])
|
||||
@ -115,7 +117,7 @@ def _define_open_share(name, path, windows_filesystem=False):
|
||||
def _define_group_share(name, path, windows_filesystem=False):
|
||||
"""Define a group samba share."""
|
||||
try:
|
||||
_conf_command(['delshare', name], stderr=subprocess.DEVNULL)
|
||||
_conf_command(['delshare', name])
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
_conf_command(['addshare', name, path, 'writeable=y', 'guest_ok=n'])
|
||||
@ -128,7 +130,7 @@ def _define_group_share(name, path, windows_filesystem=False):
|
||||
def _define_homes_share(name, path):
|
||||
"""Define a samba share for private homes."""
|
||||
try:
|
||||
_conf_command(['delshare', name], stderr=subprocess.DEVNULL)
|
||||
_conf_command(['delshare', name])
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
userpath = os.path.join(path, '%u')
|
||||
@ -153,7 +155,7 @@ def _get_mount_point(path):
|
||||
def _get_shares() -> list[dict[str, str]]:
|
||||
"""Get shares."""
|
||||
shares = []
|
||||
output = subprocess.check_output(['net', 'conf', 'list'])
|
||||
output = action_utils.run(['net', 'conf', 'list'], check=True).stdout
|
||||
config = configparser.RawConfigParser()
|
||||
config.read_string(output.decode())
|
||||
for name in config.sections():
|
||||
@ -198,8 +200,8 @@ def _set_open_share_permissions(directory):
|
||||
file_path = os.path.join(root, file)
|
||||
shutil.chown(file_path, group='freedombox-share')
|
||||
os.chmod(file_path, 0o0664)
|
||||
subprocess.check_call(['setfacl', '-Rm', 'g::rwX', directory])
|
||||
subprocess.check_call(['setfacl', '-Rdm', 'g::rwX', directory])
|
||||
action_utils.run(['setfacl', '-Rm', 'g::rwX', directory], check=True)
|
||||
action_utils.run(['setfacl', '-Rdm', 'g::rwX', directory], check=True)
|
||||
|
||||
|
||||
def _use_config_file(conf_file):
|
||||
@ -229,8 +231,8 @@ def _set_share_permissions(directory):
|
||||
file_path = os.path.join(root, file)
|
||||
shutil.chown(file_path, group='freedombox-share')
|
||||
os.chmod(file_path, 0o0664)
|
||||
subprocess.check_call(['setfacl', '-Rm', 'g::rwX', directory])
|
||||
subprocess.check_call(['setfacl', '-Rdm', 'g::rwX', directory])
|
||||
action_utils.run(['setfacl', '-Rm', 'g::rwX', directory], check=True)
|
||||
action_utils.run(['setfacl', '-Rdm', 'g::rwX', directory], check=True)
|
||||
|
||||
|
||||
@privileged
|
||||
@ -270,7 +272,7 @@ def get_shares() -> list[dict[str, str]]:
|
||||
@privileged
|
||||
def get_users() -> list[str]:
|
||||
"""Get users from Samba database."""
|
||||
output = subprocess.check_output(['pdbedit', '-L']).decode()
|
||||
output = action_utils.run(['pdbedit', '-L'], check=True).stdout.decode()
|
||||
samba_users = [line.split(':')[0] for line in output.split()]
|
||||
return samba_users
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user