mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-13 10:30:16 +00:00
freedombox release 26.7.1 for unstable
[dgit distro=debian split] [dgit please-upload source=freedombox version=26.7.1] -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmnxOBIWHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICMwNEACZK3LjCtTKlC8Sx7y+aFPKlxVg QSR4QQ9MQUSglNemEGSD+ZXAtwQaTGWEaCC3HTeozYrjZM7JySYy3BNmvja6IZz2 e1IJWW79NK3YZaVpMHq4SZKhwdQ4TQpcnZSw5WlWMP11jrFCKhLVqqSWQKxHwPxr zJoql2+Y7MPWr0+l5z6NkBQaVtyMiWzW/YT/pkLd4JtfwMwfHqiJeDU2jWwNUdZO WJKEtMSzGbJNfEkFKM4SEwOKieKmylkrfbiandAhLDRyBA4gpCQu7PRFKIiJ/aIA 6TXqhuOk/t7hxjfNQDppg9Ve2OL3JU+NSO0LmeTy7qpryXX8qntAQpITYGrzv9iQ DL3UFD99w6eCuvtlr2o/okin7KwfgfXpOVNHLgHpB7LIQPEfJTpvCxHvGODEISrX q8nNiakNKnQUGTsPLAQcDeqAKH7HYTI9On3ubUQjuy62nXO6RiEn+5WfbX2oILxb rNL0A963ZJUZx0l0/oGKl8N09KBO0oiXIDZ2c20kMgXGesxBlBInHkr2H6CD5xq2 Wy+m4ll2i5zMtC122KiVw1ogI58KOzLkqSh8LhBslQshG9WinevHuias5vNtuK8o pdRpYq7Ko84tsTHbDYDZF0DwU3vXrETROq/V7uhalZ94AMCs9cNGvuWXSGVPONBZ nAbzRFkfhW0y0JwQ6A== =LXr+ -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmn0gZ8WHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICDumD/9TYgyu22gR+qg35HZ8ElIsHVX0 Mi50e5ILTJewMn3PzOWbm2bkmWe2pagXFQBDgnEA3feG6zFhIuqQpFn++uJWfT+B cxn1dWhqMGc791up7K/mfAcEGQkYVZoQ9xSmzEBhsDVctbjcIAnotfDgwaNp7KyV vxoOoGHQ1Nywdycm7aCNIPN+QI35C8/yUvDVEpOrbg5pdKhmXGd1iZqdXXc8RR9F L7DC9ZjuXNHtSlhnV1EpUCO622qOLds0vNFHFb26I9glA5q9stgIzMvtymrJJ5/9 TT5LvoKcRBOQHpTbJJHijHgulM+lvs4lCwyePVSIXsJzW5qOYSLAClEgOpS5pIzk hmgu5hO9hX3llL84RPOG0nxg082qwum563BdzebssnZ0/vEOsNENKmWOmw8T8xOK IYND5KrWaoHxCscQG4scTNIKjyM6A+sav6fDtOWpxqO51MOJJNLD9M4lSvi6RPa9 dCCjmXcXlGSRf9P/tC5cEgCy9nukgU3E/BSHF5CZiGbXv4g7AXf2K/fmlOlHrkH9 ye4tBGUbedGQ7bOtVYFVEW5UTPsKlPPKTM3OsxFBUF3UtiV8TS2mr6k+T+DO1Zb6 JQSNTu6kv4Wbsvn5z+ETiyHUP6OYEOJ2nIHYkIXBX7vmqhSeHSKQPYSmRXTgvn+N 1TX2/Ig5lLUsa2ZEwA== =yozD -----END PGP SIGNATURE----- Merge tag 'debian/26.7.1' into debian/trixie-backports freedombox release 26.7.1 for unstable
This commit is contained in:
commit
0401c558c2
49
debian/changelog
vendored
49
debian/changelog
vendored
@ -1,3 +1,52 @@
|
||||
freedombox (26.7.1) unstable; urgency=medium
|
||||
|
||||
[ Frederico Gomes ]
|
||||
* radicale: Enable lc_username for case-insensitive auth
|
||||
|
||||
[ Sunil Mohan Adapa ]
|
||||
* radicale, bepasty: Fix issue with failed diagnostic test
|
||||
* radicale: Fix issue with parsing new configuration file
|
||||
* radicale: tests: functional: Better checking for well-known URLs
|
||||
|
||||
[ James Valleroy ]
|
||||
* locale: Update translation strings
|
||||
* doc: Fetch latest manual
|
||||
|
||||
-- James Valleroy <jvalleroy@mailbox.org> Tue, 28 Apr 2026 18:26:38 -0400
|
||||
|
||||
freedombox (26.7) unstable; urgency=medium
|
||||
|
||||
[ Burak Yavuz ]
|
||||
* Translated using Weblate (Turkish)
|
||||
|
||||
[ Besnik Bleta ]
|
||||
* Translated using Weblate (Albanian)
|
||||
|
||||
[ 大王叫我来巡山 ]
|
||||
* Translated using Weblate (Chinese (Simplified Han script))
|
||||
|
||||
[ Dietmar ]
|
||||
* Translated using Weblate (German)
|
||||
* Translated using Weblate (Italian)
|
||||
|
||||
[ Jiří Podhorecký ]
|
||||
* Translated using Weblate (Czech)
|
||||
|
||||
[ bittin1ddc447d824349b2 ]
|
||||
* Translated using Weblate (Swedish)
|
||||
|
||||
[ Coucouf ]
|
||||
* Translated using Weblate (French)
|
||||
|
||||
[ Pierfrancesco Passerini ]
|
||||
* Translated using Weblate (Italian)
|
||||
|
||||
[ James Valleroy ]
|
||||
* debian: tests: Add test to access interface status
|
||||
* doc: Fetch latest manual
|
||||
|
||||
-- James Valleroy <jvalleroy@mailbox.org> Mon, 20 Apr 2026 20:25:51 -0400
|
||||
|
||||
freedombox (26.6~bpo13+1) trixie-backports; urgency=medium
|
||||
|
||||
* Rebuild for trixie-backports.
|
||||
|
||||
16
debian/tests/access-web-interface
vendored
Normal file
16
debian/tests/access-web-interface
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# Wait for FreedomBox setup to complete.
|
||||
sleep 30
|
||||
|
||||
journalctl --unit=plinth --unit=freedombox-privileged
|
||||
|
||||
# Get FreedomBox status
|
||||
curl --location --cookie "" --fail --write-out "%{response_code}" --insecure \
|
||||
--stderr - https://localhost/freedombox/status/
|
||||
|
||||
# Access FreedomBox interface
|
||||
curl --location --cookie "" --fail --write-out "%{response_code}" --insecure \
|
||||
--stderr - https://localhost/freedombox/
|
||||
10
debian/tests/control
vendored
10
debian/tests/control
vendored
@ -16,3 +16,13 @@ Restrictions: needs-root, breaks-testbed
|
||||
Test-Command: PYTHONPATH='/usr/lib/python3/dist-packages/' py.test-3 -p no:cacheprovider --cov=plinth --cov-report=html:debci/htmlcov --cov-report=term
|
||||
Depends: e2fsprogs, git, python3-pytest, python3-pytest-cov, python3-pytest-django, @
|
||||
Restrictions: breaks-testbed
|
||||
|
||||
#
|
||||
# Try to access the FreedomBox web interface.
|
||||
#
|
||||
# iptables package installs alternatives files, with iptables-nft as default alternative.
|
||||
# Without it, firewalld has this error: INVALID_IPV: 'ipv4' is not a valid backend or is unavailable
|
||||
#
|
||||
Tests: access-web-interface
|
||||
Depends: iptables, @
|
||||
Restrictions: needs-root, isolation-machine, breaks-testbed
|
||||
|
||||
@ -8,6 +8,18 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 26.7.1 (2026-04-28) ==
|
||||
|
||||
* radicale, bepasty: Fix issue with failed diagnostic test
|
||||
* radicale: Enable lc_username for case-insensitive auth
|
||||
* radicale: Fix issue with parsing new configuration file
|
||||
* radicale: tests: functional: Better checking for well-known URLs
|
||||
|
||||
== FreedomBox 26.7 (2026-04-20) ==
|
||||
|
||||
* debian: tests: Add test to access interface status
|
||||
* locale: Update translations for Albanian, Chinese (Simplified Han script), Czech, French, German, Italian, Swedish, Turkish
|
||||
|
||||
== FreedomBox 26.6 (2026-04-06) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
@ -8,6 +8,18 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 26.7.1 (2026-04-28) ==
|
||||
|
||||
* radicale, bepasty: Fix issue with failed diagnostic test
|
||||
* radicale: Enable lc_username for case-insensitive auth
|
||||
* radicale: Fix issue with parsing new configuration file
|
||||
* radicale: tests: functional: Better checking for well-known URLs
|
||||
|
||||
== FreedomBox 26.7 (2026-04-20) ==
|
||||
|
||||
* debian: tests: Add test to access interface status
|
||||
* locale: Update translations for Albanian, Chinese (Simplified Han script), Czech, French, German, Italian, Swedish, Turkish
|
||||
|
||||
== FreedomBox 26.6 (2026-04-06) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
@ -3,4 +3,4 @@
|
||||
Package init file.
|
||||
"""
|
||||
|
||||
__version__ = '26.6'
|
||||
__version__ = '26.7.1'
|
||||
|
||||
@ -120,14 +120,6 @@ def service_disable(service_name: str, check: bool = False):
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
|
||||
if service_name.endswith('.socket'):
|
||||
# Instead, may need to query the unit for associated .service file.
|
||||
base_name = service_name.rpartition('.')[0]
|
||||
try:
|
||||
service_stop(f'{base_name}.service', check=check)
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
|
||||
|
||||
def service_mask(service_name: str, check: bool = False):
|
||||
"""Mask a service"""
|
||||
@ -143,25 +135,62 @@ def service_start(service_name: str, check: bool = False):
|
||||
"""Start a service with systemd."""
|
||||
service_action(service_name, 'start', check=check)
|
||||
|
||||
# When starting a .socket unit, there is not need to start the .service
|
||||
# unit as it will be automatically started when a request is received on
|
||||
# the socket.
|
||||
|
||||
|
||||
def _get_service_unit(socket_name: str) -> str:
|
||||
"""Return the .service unit name for a .socket unit."""
|
||||
# Instead, may need to query the unit for associated .service file.
|
||||
base_name = socket_name.rpartition('.')[0]
|
||||
return f'{base_name}.service'
|
||||
|
||||
|
||||
def service_stop(service_name: str, check: bool = False):
|
||||
"""Stop a service with systemd."""
|
||||
service_action(service_name, 'stop', check=check)
|
||||
|
||||
# When stopping a .socket unit, most of the time, we must also stop
|
||||
# .service unit. This frees up resources when disabling the app. It also
|
||||
# stops using resources that are being backed up.
|
||||
if service_name.endswith('.socket'):
|
||||
service_action(_get_service_unit(service_name), 'stop', check=check)
|
||||
|
||||
|
||||
def service_restart(service_name: str, check: bool = False):
|
||||
"""Restart a service with systemd."""
|
||||
service_action(service_name, 'restart', check=check)
|
||||
if not service_name.endswith('.socket'):
|
||||
service_action(service_name, 'restart', check=check)
|
||||
else:
|
||||
# When restarting a .socket unit, most of the time, we actually want to
|
||||
# restart the corresponding .service unit. This reloads the
|
||||
# configuration changes as needed. To restart, all we need to do stop
|
||||
# the service. It will be automatically started again by .socket unit.
|
||||
service_action(_get_service_unit(service_name), 'stop', check=check)
|
||||
|
||||
|
||||
def service_try_restart(service_name: str, check: bool = False):
|
||||
"""Try to restart a service with systemd."""
|
||||
service_action(service_name, 'try-restart', check=check)
|
||||
if not service_name.endswith('.socket'):
|
||||
service_action(service_name, 'try-restart', check=check)
|
||||
else:
|
||||
# When try-restarting a .socket unit, most of the time, we actually
|
||||
# want to restart the corresponding .service unit. This reloads the
|
||||
# configuration changes as needed. To restart, all we need to do stop
|
||||
# the service. It will be automatically started again by .socket unit.
|
||||
service_action(_get_service_unit(service_name), 'stop', check=check)
|
||||
|
||||
|
||||
def service_reload(service_name: str, check: bool = False):
|
||||
"""Reload a service with systemd."""
|
||||
service_action(service_name, 'reload', check=check)
|
||||
if not service_name.endswith('.socket'):
|
||||
service_action(service_name, 'reload', check=check)
|
||||
else:
|
||||
# When reloading a .socket unit, most of the time, we actually want to
|
||||
# reload the corresponding .service unit. This reloads the
|
||||
# configuration changes as needed.
|
||||
service_action(_get_service_unit(service_name), 'reload', check=check)
|
||||
|
||||
|
||||
def service_try_reload_or_restart(service_name: str, check: bool = False):
|
||||
@ -169,7 +198,14 @@ def service_try_reload_or_restart(service_name: str, check: bool = False):
|
||||
|
||||
Do nothing if service is not running.
|
||||
"""
|
||||
service_action(service_name, 'try-reload-or-restart', check=check)
|
||||
if not service_name.endswith('.socket'):
|
||||
service_action(service_name, 'try-reload-or-restart', check=check)
|
||||
else:
|
||||
# When reloading a .socket unit, most of the time, we actually want to
|
||||
# reload the corresponding .service unit. This reloads the
|
||||
# configuration changes as needed.
|
||||
service_action(_get_service_unit(service_name),
|
||||
'try-reload-or-restart', check=check)
|
||||
|
||||
|
||||
def service_reset_failed(service_name: str, check: bool = False):
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6386,7 +6386,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6395,14 +6395,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6390,7 +6390,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6399,14 +6399,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -6340,7 +6340,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6349,14 +6349,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2025-12-17 07:00+0000\n"
|
||||
"Last-Translator: 109247019824 "
|
||||
"<109247019824@users.noreply.hosted.weblate.org>\n"
|
||||
@ -6686,7 +6686,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6695,14 +6695,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6409,7 +6409,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6418,14 +6418,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-02-06 23:02+0000\n"
|
||||
"Last-Translator: kosagi <marti.torra@natana.cat>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7170,7 +7170,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7179,14 +7179,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-08 18:48+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-09 10:09+0000\n"
|
||||
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
|
||||
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/cs/>\n"
|
||||
@ -7160,7 +7160,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7174,7 +7174,7 @@ msgstr ""
|
||||
"klientská aplikace</a>. K Radicale má přístup každý uživatel s přihlašovacím "
|
||||
"jménem {box_name}."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7184,7 +7184,7 @@ msgstr ""
|
||||
"nových kalendářů a adresářů kontaktů. Nepodporuje přidávání událostí či "
|
||||
"kontaktů, to je třeba dělat v tomu určeném klientovi."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9782,14 +9782,12 @@ msgstr "Upravit uživatele %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Přihlášení pomocí passkey se nezdařilo: "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Tato aplikace nepodporuje diagnostiku"
|
||||
msgstr "Prohlížeč nepodporuje přístupové klíče."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -9798,28 +9796,29 @@ msgstr "Přihlášení"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Přihlásit se pomocí přístupového klíče"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Aktualizovat nastavení"
|
||||
msgstr "Aktualizovat přístupový klíč"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Přidání přístupového klíče selhalo: "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Přístupové klíče"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"Práce s přístupovými klíči vyžaduje použití rozhraní JavaScript API "
|
||||
"prohlížeče. Chcete-li pokračovat, povolte ve svém prohlížeči podporu jazyka "
|
||||
"JavaScript."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -9830,47 +9829,46 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Přístupové klíče jsou způsob, jak ověřit identitu uživatele pomocí "
|
||||
"digitálních podpisů. Jsou bezpečnější alternativou k heslům. Tajné informace "
|
||||
"jsou uchovávány u uživatele v jeho telefonu, notebooku nebo hardwarovém "
|
||||
"tokenu a odemykají se pomocí PINu, otisku prstu nebo identifikace obličeje. "
|
||||
"Na serveru nejsou uloženy žádné tajné informace. Server zná pouze veřejné "
|
||||
"informace, které lze použít k ověření podpisů uživatele."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Přidat heslo"
|
||||
msgstr "Přidat přístupový klíč"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Doména"
|
||||
msgstr "Pro doménu"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Přidáno"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Naposledy skenováno: "
|
||||
msgstr "Naposledy použito"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "K uživatelskému účtu nebyly přidány žádné přístupové klíče."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "Smazat přístupový klíč <em class=\"passkey-name\"></em>?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
"K opětovnému přidání tohoto přístupového klíče budete potřebovat zařízení."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Smazat uživatele"
|
||||
msgstr "Smazat přístupový klíč"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -9886,6 +9884,8 @@ msgstr "Upravit uživatele %(username)s"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Pro lepší zabezpečení použijte <a href=\"%(passkeys_url)s\">přístupové "
|
||||
"klíče</a>."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -9951,20 +9951,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Heslo úspěšně změněno."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Sdílení s tímto názvem už existuje."
|
||||
msgstr "Přístupový klíč s tímto identifikátorem již existuje."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Upravit uživatele"
|
||||
msgstr "Upravit přístupový klíč"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "Použitý přístupový klíč není znám."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -10745,10 +10741,8 @@ msgid " System"
|
||||
msgstr " Systém"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Správa aliasů"
|
||||
msgstr "Správa přístupových klíčů"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
@ -10804,7 +10798,7 @@ msgstr "Mobilní"
|
||||
|
||||
#: plinth/templates/clients.html:82
|
||||
msgid "Android APK"
|
||||
msgstr ""
|
||||
msgstr "Android APK"
|
||||
|
||||
#: plinth/templates/clients.html:91
|
||||
msgid "Play Store"
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7365,7 +7365,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7385,14 +7385,14 @@ msgstr ""
|
||||
"carddav-clients\">understøttet klient-applikation</a>. Radicale kan tilgås "
|
||||
"af enhver bruger der har et log ind til {box_name}."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-29 11:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-09 10:09+0000\n"
|
||||
"Last-Translator: Dietmar <sagen@permondes.de>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/de/>\n"
|
||||
@ -7303,7 +7303,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7317,7 +7317,7 @@ msgstr ""
|
||||
"clients\">unterstützte Client Software</a> notwendig. Radicale kann von "
|
||||
"jedem Benutzer mit einem {box_name}-Konto verwendet werden."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7328,7 +7328,7 @@ msgstr ""
|
||||
"Kontaktdaten wird nicht unterstützt; dies muss über einen separaten Client "
|
||||
"erfolgen."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9996,14 +9996,12 @@ msgstr "Benutzer %(username)s bearbeiten"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Die Anmeldung mit dem Passkey ist fehlgeschlagen: "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Diese App unterstützt keine Diagnose"
|
||||
msgstr "Der Browser unterstützt keine Passkeys."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -10012,28 +10010,29 @@ msgstr "Anmelden"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Mit Passkey anmelden"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Übernehmen der Änderungen"
|
||||
msgstr "Passkey aktualisieren"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Hinzufügen des Passkeys ist fehlgeschlagen: "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Passkeys"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"Für die Verwendung von Passkeys ist die JavaScript-API des Browsers "
|
||||
"erforderlich. Bitte aktivieren Sie JavaScript in Ihrem Browser, um "
|
||||
"fortzufahren."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -10044,47 +10043,47 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Passkeys sind eine Methode zur Überprüfung der Benutzeridentität mithilfe "
|
||||
"digitaler Signaturen. Sie stellen eine sicherere Alternative zu Passwörtern "
|
||||
"dar. Die geheimen Informationen werden beim Benutzer auf seinem Smartphone, "
|
||||
"Laptop oder einem Hardware-Token gespeichert und mittels PIN, Fingerabdruck "
|
||||
"oder Gesichtserkennung entsperrt. Auf dem Server werden keine geheimen "
|
||||
"Informationen gespeichert. Der Server kennt lediglich die öffentlichen "
|
||||
"Informationen, die zur Überprüfung der Signaturen des Benutzers verwendet "
|
||||
"werden können."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Kennwort hinzufügen"
|
||||
msgstr "Passkey hinzufügen"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Domain"
|
||||
msgstr "Für Domäne"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Hinzugefügt"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Zuletzt gescannt: "
|
||||
msgstr "Zuletzt verwendet"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "Dem Benutzerkonto wurden keine Passkeys hinzugefügt."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "Passkey <em class=\"passkey-name\"></em> löschen?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Benutzer löschen"
|
||||
msgstr "Passkey löschen"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -10100,6 +10099,7 @@ msgstr "Benutzer <em>%(username)s</em> bearbeiten"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Verwenden Sie <a href=\"%(passkeys_url)s\">Passkeys</a> für mehr Sicherheit."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -10166,20 +10166,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Passwort erfolgreich geändert."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Eine Freigabe mit diesem Namen existiert bereits."
|
||||
msgstr "Ein Passkey mit dieser Kennung existiert bereits."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Benutzer bearbeiten"
|
||||
msgstr "Passkey bearbeiten"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "Der verwendete Passkey ist nicht bekannt."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -10342,10 +10338,8 @@ msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:33
|
||||
#, fuzzy
|
||||
#| msgid "Endpoint"
|
||||
msgid "Endpoint(s)"
|
||||
msgstr "Endpunkt"
|
||||
msgstr "Endpunkt(e)"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:41
|
||||
#, python-format
|
||||
@ -10988,10 +10982,8 @@ msgid " System"
|
||||
msgstr " System"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Aliase verwalten"
|
||||
msgstr "Passkeys verwalten"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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"
|
||||
@ -6341,7 +6341,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6350,14 +6350,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-02-22 13:17+0000\n"
|
||||
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
|
||||
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7441,7 +7441,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7460,7 +7460,7 @@ msgstr ""
|
||||
"clients/\">πελάτη</a> . Το Radicale μπορεί να προσεγγιστεί από οποιονδήποτε "
|
||||
"χρήστη με {box_name} πιστοποιητικά."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7471,7 +7471,7 @@ msgstr ""
|
||||
"γεγονότων ή επαφών, το οποίο πρέπει να γίνει χρησιμοποιώντας ένα ξεχωριστό "
|
||||
"πελάτη."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7381,7 +7381,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7401,7 +7401,7 @@ msgstr ""
|
||||
"supported-clients\">aplicación cliente soportada</a>. Cualquier persona "
|
||||
"autenticada en {box_name} puede acceder a Radicale."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7411,7 +7411,7 @@ msgstr ""
|
||||
"de nuevos calendarios y agendas. No soporta añadir eventos o contactos, que "
|
||||
"debe hacerse usando un cliente separado."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-01-09 20: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/"
|
||||
@ -6384,7 +6384,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6393,14 +6393,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7062,7 +7062,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7071,14 +7071,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth 0.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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-"
|
||||
@ -7390,7 +7390,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7399,14 +7399,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-29 11:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-16 15:09+0000\n"
|
||||
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/fr/>\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.17-dev\n"
|
||||
"X-Generator: Weblate 5.17.1-dev\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -7326,7 +7326,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7342,7 +7342,7 @@ msgstr ""
|
||||
"a>. Tous les utilisateur disposant d’un compte sur la {box_name} ont accès à "
|
||||
"Radicale."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7353,7 +7353,7 @@ msgstr ""
|
||||
"charge l’ajout d’événements ou de contacts, opérations qui doivent être "
|
||||
"réalisées avec un client dédié."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -10049,14 +10049,12 @@ msgstr "Paramètres du compte %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Échec de la connexion par clé d’accès : "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Cette application n’est pas compatible avec les tests de diagnostic"
|
||||
msgstr "Le navigateur n’est pas compatible avec les clés d’accès."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -10065,28 +10063,28 @@ msgstr "S’identifier"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Connexion avec une clé d’accès"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Appliquer les changements"
|
||||
msgstr "Mettre à jour la clé d’accès"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Échec d’ajout d’une clé d’accès : "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Clés d’accès"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"L’utilisation de clés d’accès nécessite l’utilisation de l’API Javascript du "
|
||||
"navigateur. Veuillez activer Javascript dans votre navigateur pour continuer."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -10097,47 +10095,48 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Les clés d’accès sont un moyen de vérifier l’identité de l’utilisateur au "
|
||||
"travers de signatures numériques. Elles présentent un alternative plus sure "
|
||||
"à l’usage des mots de passe. Les secrets sont conservés sur le téléphone, "
|
||||
"l’ordinateur ou le jeton d’authentification matériel et protégés par un code "
|
||||
"ou une empreinte biométrique. Aucun secret n’est conservé sur les serveur. "
|
||||
"Le serveur n’a besoin de connaître que les informations publiques permettant "
|
||||
"de vérifier la signature de l’utilisateurice."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Ajouter un mot de passe"
|
||||
msgstr "Ajouter une clé d’accès"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Domaine"
|
||||
msgstr "Pour le domaine"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Ajoutée"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Dernière analyse : "
|
||||
msgstr "Dernière utilisation"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "Aucune clé d’accès pour ce compte."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "Supprimer la clé d’accès <em class=\"passkey-name\"></em> ?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
"Vous aurez besoin de l’appareil contenant cette clé d’accès pour pouvoir "
|
||||
"l’ajouter à nouveau."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Supprimer l'utilisateur"
|
||||
msgstr "Supprimer la clé d’accès"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -10153,6 +10152,8 @@ msgstr "Modifier l’utilisateur <em>%(username)s</em>"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Utilisez une <a href=\"%(passkeys_url)s\">clé d’accès</a> pour une meilleure "
|
||||
"sécurité."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -10220,20 +10221,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Le mot de passe a été changé."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Un partage existe déjà avec ce nom."
|
||||
msgstr "Il y a déjà un clé d’accès avec cet identifiant."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Modification de l’utilisateur"
|
||||
msgstr "Modifier la clé d’accès"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "La clé d’accès utilisée est inconnue."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -11036,10 +11033,8 @@ msgid " System"
|
||||
msgstr " Système"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Configurer des alias"
|
||||
msgstr "Gérer les clés d’accès"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6385,7 +6385,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6394,14 +6394,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6776,7 +6776,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6785,14 +6785,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-03-31 06:09+0000\n"
|
||||
"Last-Translator: bsurajpatra <ankitsuraj1111@gmail.com>\n"
|
||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7329,7 +7329,7 @@ msgstr "क्वासेलड्रोइड"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7347,14 +7347,14 @@ msgstr ""
|
||||
"radicale.org/clients/\">समर्थित क्लाइंट एप्लिकेशन</a> कि जरुरत है. राडिकैल किसी "
|
||||
"{box_name} यूसर पहुंचा जा सकता है एक लॉगिन के साथ."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "राडिकैल"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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"
|
||||
@ -7496,7 +7496,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7517,7 +7517,7 @@ msgstr ""
|
||||
"alkalmazásra</a> is. A Radicale elérhető bármely felhasználó számára a "
|
||||
"{box_name} eszközön."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7527,7 +7527,7 @@ msgstr ""
|
||||
"címjegyzékek létrehozását támogatja. Nem támogatja az események vagy "
|
||||
"kapcsolatok hozzáadását, ezeket külön kliens segítségével kell elvégezni."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Indonesian (FreedomBox)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7047,7 +7047,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7056,14 +7056,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-31 06:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-18 21:09+0000\n"
|
||||
"Last-Translator: Pierfrancesco Passerini <p.passerini@gmail.com>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/it/>\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.17-dev\n"
|
||||
"X-Generator: Weblate 5.17.1-dev\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -7219,7 +7219,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7233,7 +7233,7 @@ msgstr ""
|
||||
"client supportata</a>. Ogni utente con un profilo {box_name} può accedere a "
|
||||
"Radicale."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7243,7 +7243,7 @@ msgstr ""
|
||||
"nuovi calendari e rubriche. Non supporta l'aggiunta di eventi o contatti, "
|
||||
"che dovranno essere gestiti tramite un client separato."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9876,10 +9876,8 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Questa applicazione non supporta la diagnostica"
|
||||
msgstr "Il browser non supporta le passkey."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -9891,10 +9889,8 @@ msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Aggiorna impostazioni"
|
||||
msgstr "Aggiorna Passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
@ -9923,26 +9919,20 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Aggiungi la password"
|
||||
msgstr "Aggiungi Passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Dominio"
|
||||
msgstr "Per Dominio"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Aggiunto"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Ultima scansione: "
|
||||
msgstr "Ultimo utilizzo"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
@ -9957,10 +9947,8 @@ msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Cancella l'utente"
|
||||
msgstr "Cancella Passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -10040,16 +10028,12 @@ msgid "Password changed successfully."
|
||||
msgstr "La password è stata aggiornata."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Una condivisione con questo nome esiste già."
|
||||
msgstr "Esiste già un Passkey con quell'identificatore."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Modifica utente"
|
||||
msgstr "Modifica Passkey"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
@ -10842,10 +10826,8 @@ msgid " System"
|
||||
msgstr " Sistema"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Gestire gli alias"
|
||||
msgstr "Gestire le Passkey"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2025-10-24 16:02+0000\n"
|
||||
"Last-Translator: Jun Nogata <nogajun@gmail.com>\n"
|
||||
"Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -6348,7 +6348,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6357,14 +6357,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6343,7 +6343,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6352,14 +6352,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6363,7 +6363,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6372,14 +6372,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6362,7 +6362,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6371,14 +6371,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -15,7 +15,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7433,7 +7433,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7451,7 +7451,7 @@ msgstr ""
|
||||
"href=\"http://radicale.org/clients/\">støttet klientprogram </a>. Radicale "
|
||||
"kan nås av alle brukere med {box_name}-innlogging."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7461,7 +7461,7 @@ msgstr ""
|
||||
"kalendre og adressebøker. Den tilbyr ikke å legge inn nye hendelser eller "
|
||||
"kontakter, det må gjøres med en egen klient."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7172,7 +7172,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7186,7 +7186,7 @@ msgstr ""
|
||||
"clienttoepassing</a> nodig. Radicale kan worden benaderd door elke "
|
||||
"{box_name} gebruiker."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7197,7 +7197,7 @@ msgstr ""
|
||||
"gebeurtenissen of contactpersonen, die moeten worden gedaan met behulp van "
|
||||
"een aparte client."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7012,7 +7012,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7021,14 +7021,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7266,7 +7266,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7280,7 +7280,7 @@ msgstr ""
|
||||
"radicale.org/master.html#supported-clients\"></a> . O Radicale pode "
|
||||
"ser acessado por qualquer usuário com um login {box_name} ."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7290,7 +7290,7 @@ msgstr ""
|
||||
"novos calendários e catálogos de endereços. Não permite adicionar eventos ou "
|
||||
"contatos, o que deve ser feito usando um cliente separado."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radical"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-03-15 18:09+0000\n"
|
||||
"Last-Translator: OwlGale <owlgale@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7224,7 +7224,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7238,7 +7238,7 @@ msgstr ""
|
||||
"clients\">поддерживаемое клиентское приложение</a>. Доступ к Radicale может "
|
||||
"получить любой пользователь с логином {box_name}."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7248,7 +7248,7 @@ msgstr ""
|
||||
"создание новых календарей и адресных книг. Он не поддерживает добавление "
|
||||
"событий или контактов, для этого требуется отдельный клиент."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6343,7 +6343,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6352,14 +6352,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6698,7 +6698,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6707,14 +6707,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-26 09:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-08 07:09+0000\n"
|
||||
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
|
||||
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/sq/>\n"
|
||||
@ -7237,7 +7237,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7252,7 +7252,7 @@ msgstr ""
|
||||
"Radicale mund të hyhet nga cilido përdorues me kredenciale hyrjeje në "
|
||||
"{box_name}."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7262,7 +7262,7 @@ msgstr ""
|
||||
"të ri dhe librash adresash. S’mbulon shtim veprimtarish ose kontaktesh, çka "
|
||||
"duhen bërë duke përdorur një tjetër klient."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9899,14 +9899,12 @@ msgstr "Përpunoni përdoruesin %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Hyrja me kyçkalim dështoi: "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Ky aplikacion s’mbulon diagnostikime"
|
||||
msgstr "Shfletuesi s’mbulon kyçkalime."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -9915,28 +9913,28 @@ msgstr "Hyrje"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Hyni me kyçkalim"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Përditësoni ujdisjen"
|
||||
msgstr "Përditësoni Kyçkalimin"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Shtimi i kyçkalimit dështoi: "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Kyçkalime"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"Puna me kyçkalime lyp përdorim të API-t Javascript të shfletuesit. Ju "
|
||||
"lutemi, që të vazhdohet, aktivizoni mbulim Javascript-i në shfletuesin tuaj."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -9947,47 +9945,46 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Kyçkalimet janë një mënyrë verifikimi identiteti përdoruesit duke përdorur "
|
||||
"nënshkrime dixhitale. Janë një alternativë më e siguruar se fjalëkalimet. "
|
||||
"Informacioni i fshehtë mbahet nga përdoruesi në telefonin e tij, portativin, "
|
||||
"ose token-in hardware dhe shkyçet duke përdorur një PIN, shenja gishtash ose "
|
||||
"“face ID”. S’ruhet të fshehta te shërbyesi. Shërbyesi njeh vetëm "
|
||||
"informacionin publik që mund të përdoret për të verifikuar nënshkrime të "
|
||||
"përdoruesit."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Shtoni fjalëkalim"
|
||||
msgstr "Shtoni kyçkalim"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Përkatësi"
|
||||
msgstr "Për Përkatësi"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "U shtua"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Skanuar së fundi më: "
|
||||
msgstr "Përdorur Së Fundi Më"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "Te llogari përdoruesi, s’u shtuan kyçkalime."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "Të fshihet kyçkalimi <em class=\"passkey-name\"></em>?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
msgstr "Që ta rishtoni, do t’ju duhet pajisja e këtij kyçkalimi."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Fshi përdorues"
|
||||
msgstr "Fshije kyçkalimin"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -10003,6 +10000,7 @@ msgstr "Përpunoni Përdoruesin <em>%(username)s</em>"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Për siguri më të mirë, përdorni <a href=\"%(passkeys_url)s\">kyçkalime</a>."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -10069,20 +10067,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Fjalëkalimi u ndryshua me sukses."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Ka tashmë një pjesë me këtë emër."
|
||||
msgstr "Ka tashmë një kyçkalim me atë identifikues."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Përpunoni Përdorues"
|
||||
msgstr "Përpunoni Kyçkalim"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "Kyçkalimi i përdorur s’njihet."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -10251,7 +10245,7 @@ msgstr "IP VPN-je %(box_name)s për shërbime"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:50
|
||||
msgid "Peers"
|
||||
msgstr ""
|
||||
msgstr "Ortakë"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:52
|
||||
msgid "Peers allowed to connect to this server:"
|
||||
@ -10873,10 +10867,8 @@ msgid " System"
|
||||
msgstr " Sistem"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Administroni Aliase"
|
||||
msgstr "Administroni kyçkalime"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6597,7 +6597,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6606,14 +6606,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,9 +7,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-11 22:09+0000\n"
|
||||
"Last-Translator: Daniel Wiik <d.wiik@outlook.com>\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-15 10:10+0000\n"
|
||||
"Last-Translator: bittin1ddc447d824349b2 <bittin@reimu.nl>\n"
|
||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/sv/>\n"
|
||||
"Language: sv\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.17-dev\n"
|
||||
"X-Generator: Weblate 5.17.1-dev\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -7176,7 +7176,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7190,7 +7190,7 @@ msgstr ""
|
||||
"användarklient</a>. Radikal kan nås av alla användare med en {box_name} "
|
||||
"inloggning."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7200,7 +7200,7 @@ msgstr ""
|
||||
"skapandet av nya kalendrar och adressböcker. Det stöder inte att lägga till "
|
||||
"händelser eller kontakter, som måste göras med hjälp av en separat klient."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9808,14 +9808,12 @@ msgstr "Redigera användare %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Inloggning med lösennyckel misslyckades: "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Den här appen stöder inte diagnostik"
|
||||
msgstr "Webbläsaren stöder inte lösennycklar."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -9824,28 +9822,28 @@ msgstr "Logga in"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Logga in med lösennyckel"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Uppdatera inställningar"
|
||||
msgstr "Uppdatera lösennyckel"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Att lägga till lösennyckel misslyckades: "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Lösennycklar"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"Att arbeta med lösennycklar kräver att du använder webbläsarens Javascript "
|
||||
"API. Vänligen aktivera Javascript stöd i din webbläsare för att fortsätta."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -9856,47 +9854,45 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Lösennycklar är sätt att verifiera användarens identitet med hjälp av "
|
||||
"digitala signaturer. De är ett säkrare alternativ till lösenord. Hemlig "
|
||||
"information hålls med användaren på sin telefon, bärbar dator eller en "
|
||||
"hårdvaru token och låst med en PIN, fingeravtryck eller ansikte ID. Inga "
|
||||
"hemligheter lagras på servern. Servern vet bara den offentliga informationen "
|
||||
"som kan användas för att verifiera användarens signaturer."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Lägg till lösenord"
|
||||
msgstr "Lägg till lösennyckel"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Domän"
|
||||
msgstr "För domän"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Tillagd"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Senast skannad: "
|
||||
msgstr "Senast använd"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "Inga lösennycklar har lagts till på användarkontot."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "Radera lösennyckel <em class=\"passkey-name\"></em>?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
msgstr "Du behöver denna lösennyckels enhet för att lägga till den igen."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Radera användare"
|
||||
msgstr "Radera lösennyckel"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -9912,6 +9908,7 @@ msgstr "Redigera användare <em>%(username)s</em>"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Använd <a href=\"%(passkeys_url)s\">lösennycklar</a> för bättre säkerhet."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -9977,20 +9974,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Lösenordet har ändrats."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Det finns redan en share med det här namnet."
|
||||
msgstr "Lösennyckel med den identifieraren finns redan."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Redigera användar"
|
||||
msgstr "Redigera Lösennyckel"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "Lösennyckel som används är inte känd."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -10777,10 +10770,8 @@ msgid " System"
|
||||
msgstr " System"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Hantera alias"
|
||||
msgstr "Hantera lösennycklar"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
@ -10836,7 +10827,7 @@ msgstr "Mobil"
|
||||
|
||||
#: plinth/templates/clients.html:82
|
||||
msgid "Android APK"
|
||||
msgstr ""
|
||||
msgstr "Android APK"
|
||||
|
||||
#: plinth/templates/clients.html:91
|
||||
msgid "Play Store"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-03-02 19:53+0000\n"
|
||||
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
|
||||
"Language-Team: Tamil <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7140,7 +7140,7 @@ msgstr "குவாசெல்ட்ராய்டு"
|
||||
msgid "IRC"
|
||||
msgstr "Irc"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7153,7 +7153,7 @@ msgstr ""
|
||||
"radicale.org/master.html#supported-comients\"> ஆதரிக்கப்பட்ட கிளையன்ட் பயன்பாடு </"
|
||||
"a> தேவை. {box_name} உள்நுழைவுடன் எந்த பயனரும் ராடிகலை அணுகலாம்."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7163,7 +7163,7 @@ msgstr ""
|
||||
"முகவரி புத்தகங்களை உருவாக்குவதை மட்டுமே ஆதரிக்கிறது. இது நிகழ்வுகள் அல்லது "
|
||||
"தொடர்புகளைச் சேர்ப்பதை ஆதரிக்காது, இது ஒரு தனி கிளையண்டைப் பயன்படுத்தி செய்யப்பட வேண்டும்."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "தீவிரமான"
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -7011,7 +7011,7 @@ msgstr "క్వాసెల్ డ్రొఇడ్"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7024,7 +7024,7 @@ msgstr ""
|
||||
"href=\"https://radicale.org/master.html#supported-clients\">మద్దతు ఉన్న క్లయింట్ "
|
||||
"అప్లికేషన్</a> అవసరం. {box_name} లాగిన్ ఉన్న ఏ యూజర్ అయినా Radicaleని యాక్సెస్ చేయవచ్చు."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7034,7 +7034,7 @@ msgstr ""
|
||||
"రూపొందించడానికి మాత్రమే మద్దతు ఇస్తుంది. ఈవెంట్లు లేదా పరిచయాలను జోడించడానికి ఇది మద్దతు ఇవ్వదు, ఇది "
|
||||
"ప్రత్యేక క్లయింట్ని ఉపయోగించి చేయాలి."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "రాడికేల్"
|
||||
|
||||
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-25 07:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-09 10:09+0000\n"
|
||||
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/tr/>\n"
|
||||
@ -7191,7 +7191,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7205,7 +7205,7 @@ msgstr ""
|
||||
"istemci uygulaması</a> gereklidir. Radicale'ye {box_name} oturum açma adı "
|
||||
"ile herhangi bir kullanıcı tarafından erişilebilir."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7215,7 +7215,7 @@ msgstr ""
|
||||
"temel bir web arayüzü sağlar. Ayrı bir istemci kullanılarak yapılması "
|
||||
"zorunlu olan olayların veya kişilerin eklenmesini desteklemez."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
@ -9835,14 +9835,12 @@ msgstr "%(username)s kullanıcısını düzenle"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:30
|
||||
msgid "Logging in with passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Geçiş anahtarıyla oturum açma başarısız oldu: "
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "Bu uygulama tanılamayı desteklemiyor"
|
||||
msgstr "Tarayıcı geçiş anahtarlarını desteklemiyor."
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -9851,28 +9849,29 @@ msgstr "Oturum aç"
|
||||
#: plinth/modules/users/templates/users_login.html:70
|
||||
#: plinth/modules/users/templates/users_login.html:72
|
||||
msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
msgstr "Geçiş anahtarıyla oturum aç"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Ayarlamayı güncelle"
|
||||
msgstr "Geçiş Anahtarını Güncelle"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
msgstr ""
|
||||
msgstr "Geçiş anahtarını ekleme başarısız oldu: "
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:48
|
||||
#: plinth/modules/users/views.py:314
|
||||
msgid "Passkeys"
|
||||
msgstr ""
|
||||
msgstr "Geçiş anahtarları"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:57
|
||||
msgid ""
|
||||
"Working with passkeys requires using browser's Javascript API. Please enable "
|
||||
"Javascript support in your browser to continue."
|
||||
msgstr ""
|
||||
"Geçiş anahtarlarıyla çalışmak, tarayıcının Javascript API'sinin "
|
||||
"kullanılmasını gerektirir. Devam etmek için lütfen tarayıcınızda Javascript "
|
||||
"desteğini etkinleştirin."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:66
|
||||
msgid ""
|
||||
@ -9883,47 +9882,46 @@ msgid ""
|
||||
"server knows only the public information that can used to verify user's "
|
||||
"signatures."
|
||||
msgstr ""
|
||||
"Geçiş anahtarları, dijital imzaları kullanarak kullanıcının kimliğini "
|
||||
"doğrulamasının bir yoludur. Parolalara göre daha güvenli bir "
|
||||
"alternatiftirdir. Gizli bilgiler kullanıcının telefonunda, dizüstü "
|
||||
"bilgisayarında veya donanım belirtecinde saklanır ve PIN, parmak izi veya "
|
||||
"yüz kimliği kullanılarak kilidi açılır. Sunucuda hiçbir gizli anahtar "
|
||||
"saklanmaz. Sunucu sadece kullanıcının imzalarını doğrulamak için "
|
||||
"kullanılabilecek genel bilgileri bilir."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Parola ekle"
|
||||
msgstr "Geçiş anahtarı ekle"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Etki alanı"
|
||||
msgstr "Etki Alanı İçin"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
msgstr "Eklenen"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "Son taranan: "
|
||||
msgstr "Son Kullanılan"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
msgstr ""
|
||||
msgstr "Kullanıcı hesabına eklenen geçiş anahtarları yok."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:135
|
||||
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
|
||||
msgstr ""
|
||||
msgstr "<em class=\"passkey-name\"></em> geçiş anahtarı silinsin mi?"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:145
|
||||
msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
msgstr "Tekrar eklemek için bu geçiş anahtarının cihazına ihtiyacınız olacak."
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Kullanıcıyı sil"
|
||||
msgstr "Geçiş anahtarını sil"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -9939,6 +9937,8 @@ msgstr "<em>%(username)s</em> Kullanıcısını Düzenleyin"
|
||||
#, python-format
|
||||
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
|
||||
msgstr ""
|
||||
"Daha iyi güvenlik için <a href=\"%(passkeys_url)s\">geçiş anahtarlarını</a> "
|
||||
"kullanın."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:29
|
||||
#, python-format
|
||||
@ -10005,20 +10005,16 @@ msgid "Password changed successfully."
|
||||
msgstr "Parola başarılı olarak değiştirildi."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Bu ada sahip bir paylaşım zaten var."
|
||||
msgstr "Bu tanımlayıcıya sahip geçiş anahtarı zaten var."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "Kullanıcıyı Düzenle"
|
||||
msgstr "Geçiş Anahtarını Düzenle"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
msgstr ""
|
||||
msgstr "Kullanılan geçiş anahtarı bilinmiyor."
|
||||
|
||||
#: plinth/modules/wireguard/__init__.py:20
|
||||
msgid "WireGuard is a fast, modern, secure VPN tunnel."
|
||||
@ -10802,10 +10798,8 @@ msgid " System"
|
||||
msgstr " Sistem"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Kod Adlarını Yönet"
|
||||
msgstr "Geçiş anahtarlarını yönet"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2025-12-17 07:00+0000\n"
|
||||
"Last-Translator: Максим Горпиніч <gorpinicmaksim0@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -7224,7 +7224,7 @@ msgstr "Quasseldroid"
|
||||
msgid "IRC"
|
||||
msgstr "IRC"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -7238,7 +7238,7 @@ msgstr ""
|
||||
"clients\">підтримувана клієнтська програма</a>. Radicale може отримати "
|
||||
"доступ будь-який користувач із логіном {box_name}."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
@ -7248,7 +7248,7 @@ msgstr ""
|
||||
"календарів та адресних книг. Він не підтримує додавання подій або контактів, "
|
||||
"для цього необхідно використовувати окремий клієнт."
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr "Radicale"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6774,7 +6774,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6783,14 +6783,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"PO-Revision-Date: 2026-03-04 05:09+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+0000\n"
|
||||
"PO-Revision-Date: 2026-04-08 07:09+0000\n"
|
||||
"Last-Translator: 大王叫我来巡山 "
|
||||
"<hamburger2048@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
|
||||
@ -6542,7 +6542,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6555,14 +6555,14 @@ msgstr ""
|
||||
"master.html#supported-clients\">支持的客户端应用程序</a>。任何拥有 "
|
||||
"{box_name} 登录名的用户都可以访问 Radicale。"
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
@ -8851,10 +8851,8 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:41
|
||||
#: plinth/modules/users/templates/users_passkeys.html:41
|
||||
#, fuzzy
|
||||
#| msgid "This app does not support diagnostics"
|
||||
msgid "Browser does not support passkeys."
|
||||
msgstr "此应用程序不支持诊断"
|
||||
msgstr "浏览器不支持 passkeys。"
|
||||
|
||||
#: plinth/modules/users/templates/users_login.html:57
|
||||
msgid "Login"
|
||||
@ -8866,10 +8864,8 @@ msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "更新安装程序"
|
||||
msgstr "更新 Passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
@ -8898,26 +8894,20 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "添加密码"
|
||||
msgstr "添加 passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "域名"
|
||||
msgstr "针对域名"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Last scanned: "
|
||||
msgid "Last Used"
|
||||
msgstr "上次扫描: "
|
||||
msgstr "上次使用"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
@ -8932,10 +8922,8 @@ msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "删除用户"
|
||||
msgstr "删除 passkey"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -9011,16 +8999,12 @@ msgid "Password changed successfully."
|
||||
msgstr "已成功更改密码。"
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "已存在同名共享。"
|
||||
msgstr "已存在该标识符的 Passkey。"
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
#, fuzzy
|
||||
#| msgid "Edit User"
|
||||
msgid "Edit Passkey"
|
||||
msgstr "编辑用户"
|
||||
msgstr "编辑 Passkey"
|
||||
|
||||
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
|
||||
msgid "Passkey used is not known."
|
||||
@ -9736,10 +9720,8 @@ msgid " System"
|
||||
msgstr " 系统"
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Aliases"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "管理别名"
|
||||
msgstr "管理 passkeys"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-04-07 00:12+0000\n"
|
||||
"POT-Creation-Date: 2026-04-28 22:01+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/"
|
||||
@ -6674,7 +6674,7 @@ msgstr ""
|
||||
msgid "IRC"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:27
|
||||
#: plinth/modules/radicale/__init__.py:26
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
|
||||
@ -6683,14 +6683,14 @@ msgid ""
|
||||
"a> is needed. Radicale can be accessed by any user with a {box_name} login."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:33
|
||||
#: plinth/modules/radicale/__init__.py:32
|
||||
msgid ""
|
||||
"Radicale provides a basic web interface, which only supports creating new "
|
||||
"calendars and addressbooks. It does not support adding events or contacts, "
|
||||
"which must be done using a separate client."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/radicale/__init__.py:55
|
||||
#: plinth/modules/radicale/__init__.py:52
|
||||
#: plinth/modules/radicale/manifest.py:74
|
||||
msgid "Radicale"
|
||||
msgstr ""
|
||||
|
||||
@ -5,7 +5,6 @@ FreedomBox app for radicale.
|
||||
|
||||
import logging
|
||||
|
||||
import augeas
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from plinth import app as app_module
|
||||
@ -37,15 +36,13 @@ _description = [
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
CONFIG_FILE = '/etc/radicale/config'
|
||||
|
||||
|
||||
class RadicaleApp(app_module.App):
|
||||
"""FreedomBox app for Radicale."""
|
||||
|
||||
app_id = 'radicale'
|
||||
|
||||
_version = 5
|
||||
_version = 6
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""Create components for the app."""
|
||||
@ -129,7 +126,7 @@ class RadicaleApp(app_module.App):
|
||||
if Version(package['new_version']) > Version('4~'):
|
||||
return False
|
||||
|
||||
rights = get_rights_value()
|
||||
rights = privileged.get_rights_value()
|
||||
install(['radicale'], force_configuration='new')
|
||||
privileged.setup()
|
||||
privileged.configure(rights)
|
||||
@ -140,28 +137,3 @@ class RadicaleApp(app_module.App):
|
||||
"""De-configure and uninstall the app."""
|
||||
super().uninstall()
|
||||
privileged.uninstall()
|
||||
|
||||
|
||||
def load_augeas():
|
||||
"""Prepares the augeas."""
|
||||
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
|
||||
augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||
|
||||
# INI file lens
|
||||
aug.set('/augeas/load/Puppet/lens', 'Puppet.lns')
|
||||
aug.set('/augeas/load/Puppet/incl[last() + 1]', CONFIG_FILE)
|
||||
|
||||
aug.load()
|
||||
return aug
|
||||
|
||||
|
||||
def get_rights_value():
|
||||
"""Returns the current Rights value."""
|
||||
aug = load_augeas()
|
||||
value = aug.get('/files' + CONFIG_FILE + '/rights/type')
|
||||
|
||||
if value == 'from_file':
|
||||
# Default rights file is equivalent to owner_only.
|
||||
value = 'owner_only'
|
||||
|
||||
return value
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
(* Radicale module for Augeas
|
||||
Based on Puppet lens.
|
||||
|
||||
Manage config file for http://radicale.org/
|
||||
/etc/radicale/config is a standard INI File.
|
||||
*)
|
||||
|
||||
|
||||
module Radicale =
|
||||
autoload xfm
|
||||
|
||||
(************************************************************************
|
||||
* INI File settings
|
||||
*
|
||||
* /etc/radicale/config only supports "#" as commentary and "=" as separator
|
||||
*************************************************************************)
|
||||
let comment = IniFile.comment "#" "#"
|
||||
let comment_re = /[#]/
|
||||
let sep = IniFile.sep "=" "="
|
||||
|
||||
|
||||
(************************************************************************
|
||||
* ENTRY
|
||||
* /etc/radicale/config uses standard INI File entries
|
||||
*************************************************************************)
|
||||
let entry = IniFile.entry_generic (Util.indent . key IniFile.entry_re) sep comment_re comment
|
||||
|
||||
|
||||
(************************************************************************
|
||||
* RECORD
|
||||
* /etc/radicale/config uses standard INI File records
|
||||
*************************************************************************)
|
||||
let title = IniFile.indented_title IniFile.record_re
|
||||
let record = IniFile.record title entry
|
||||
|
||||
|
||||
(************************************************************************
|
||||
* LENS & FILTER
|
||||
* /etc/radicale/config uses standard INI File records
|
||||
*************************************************************************)
|
||||
let lns = IniFile.lns record comment
|
||||
|
||||
let filter = (incl "/etc/radicale/config")
|
||||
|
||||
let xfm = transform lns filter
|
||||
@ -0,0 +1,81 @@
|
||||
module Test_radicale =
|
||||
|
||||
let conf = "
|
||||
[server]
|
||||
|
||||
[encoding]
|
||||
|
||||
[well-known]
|
||||
|
||||
[auth]
|
||||
|
||||
[git]
|
||||
|
||||
[rights]
|
||||
|
||||
[storage]
|
||||
|
||||
[logging]
|
||||
|
||||
[headers]
|
||||
Content-Security-Policy = default-src 'self'; object-src 'none'
|
||||
|
||||
"
|
||||
|
||||
test Radicale.lns get conf =
|
||||
{}
|
||||
{ "server"
|
||||
{} }
|
||||
{ "encoding"
|
||||
{} }
|
||||
{ "well-known"
|
||||
{} }
|
||||
{ "auth"
|
||||
{} }
|
||||
{ "git"
|
||||
{} }
|
||||
{ "rights"
|
||||
{} }
|
||||
{ "storage"
|
||||
{} }
|
||||
{ "logging"
|
||||
{} }
|
||||
{ "headers"
|
||||
{ "Content-Security-Policy" = "default-src 'self'; object-src 'none'" }
|
||||
{} }
|
||||
|
||||
test Radicale.lns put conf after
|
||||
set "server/hosts" "127.0.0.1:5232, [::1]:5232";
|
||||
set "server/base_prefix" "/radicale/";
|
||||
set "well-known/caldav" "/radicale/%(user)s/caldav/";
|
||||
set "well-known/cardav" "/radicale/%(user)s/carddav/";
|
||||
set "auth/type" "remote_user";
|
||||
set "rights/type" "owner_only";
|
||||
set "headers/Content-Security-Policy" "default-src 'self'; object-src 'none'"
|
||||
= "
|
||||
[server]
|
||||
|
||||
hosts=127.0.0.1:5232, [::1]:5232
|
||||
base_prefix=/radicale/
|
||||
[encoding]
|
||||
|
||||
[well-known]
|
||||
|
||||
caldav=/radicale/%(user)s/caldav/
|
||||
cardav=/radicale/%(user)s/carddav/
|
||||
[auth]
|
||||
|
||||
type=remote_user
|
||||
[git]
|
||||
|
||||
[rights]
|
||||
|
||||
type=owner_only
|
||||
[storage]
|
||||
|
||||
[logging]
|
||||
|
||||
[headers]
|
||||
Content-Security-Policy = default-src 'self'; object-src 'none'
|
||||
|
||||
"
|
||||
@ -24,6 +24,7 @@ def setup():
|
||||
"""
|
||||
aug = load_augeas()
|
||||
aug.set('auth/type', 'remote_user')
|
||||
aug.set('auth/lc_username', 'True')
|
||||
aug.save()
|
||||
# Service is started again by socket.
|
||||
action_utils.service_stop(SERVICE_NAME)
|
||||
@ -55,12 +56,24 @@ def load_augeas():
|
||||
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
|
||||
augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||
# INI file lens
|
||||
aug.transform('Puppet', CONFIG_FILE)
|
||||
aug.transform('Radicale', CONFIG_FILE)
|
||||
aug.set('/augeas/context', '/files' + CONFIG_FILE)
|
||||
aug.load()
|
||||
return aug
|
||||
|
||||
|
||||
def get_rights_value():
|
||||
"""Returns the current Rights value."""
|
||||
aug = load_augeas()
|
||||
value = aug.get('rights/type')
|
||||
|
||||
if value == 'from_file':
|
||||
# Default rights file is equivalent to owner_only.
|
||||
value = 'owner_only'
|
||||
|
||||
return value
|
||||
|
||||
|
||||
@privileged
|
||||
def uninstall():
|
||||
"""Remove all radicale collections."""
|
||||
|
||||
@ -83,21 +83,21 @@ def _set_access_rights(browser, access_rights_type):
|
||||
|
||||
def _calendar_is_available(browser):
|
||||
"""Return whether calendar is available at well-known URL."""
|
||||
conf = functional.config['DEFAULT']
|
||||
url = functional.base_url + '/.well-known/caldav'
|
||||
logging.captureWarnings(True)
|
||||
request = requests.get(url, auth=(conf['username'], conf['password']),
|
||||
verify=False)
|
||||
logging.captureWarnings(False)
|
||||
return request.status_code != 404
|
||||
return _well_known_available(browser, '/.well-known/caldav')
|
||||
|
||||
|
||||
def _addressbook_is_available(browser):
|
||||
"""Return whether addressbook is available at well-known URL."""
|
||||
return _well_known_available(browser, '/.well-known/carddav')
|
||||
|
||||
|
||||
def _well_known_available(browser, wellknown_url: str):
|
||||
"""Return whether a well-known URL redirects to radicale."""
|
||||
conf = functional.config['DEFAULT']
|
||||
url = functional.base_url + '/.well-known/carddav'
|
||||
url = functional.base_url + wellknown_url
|
||||
logging.captureWarnings(True)
|
||||
request = requests.get(url, auth=(conf['username'], conf['password']),
|
||||
verify=False)
|
||||
verify=False, allow_redirects=False)
|
||||
logging.captureWarnings(False)
|
||||
return request.status_code != 404
|
||||
return (request.status_code == 301
|
||||
and request.headers['Location'].endswith('/radicale/'))
|
||||
|
||||
@ -8,7 +8,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from plinth.views import AppView
|
||||
|
||||
from . import get_rights_value, privileged
|
||||
from . import privileged
|
||||
from .forms import RadicaleForm
|
||||
|
||||
|
||||
@ -20,13 +20,13 @@ class RadicaleAppView(AppView):
|
||||
def get_initial(self):
|
||||
"""Return the values to fill in the form."""
|
||||
initial = super().get_initial()
|
||||
initial['access_rights'] = get_rights_value()
|
||||
initial['access_rights'] = privileged.get_rights_value()
|
||||
return initial
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Change the access control of Radicale service."""
|
||||
data = form.cleaned_data
|
||||
if get_rights_value() != data['access_rights']:
|
||||
if privileged.get_rights_value() != data['access_rights']:
|
||||
privileged.configure(data['access_rights'])
|
||||
messages.success(self.request,
|
||||
_('Access rights configuration updated'))
|
||||
|
||||
@ -20,7 +20,8 @@ from plinth.action_utils import (get_addresses, get_hostname,
|
||||
service_try_reload_or_restart,
|
||||
service_try_restart, service_unmask, umask)
|
||||
|
||||
UNKNOWN = 'unknowndeamon'
|
||||
UNKNOWN = 'unknowndeamon.service'
|
||||
UNKNOWN_SOCKET = 'unknowndeamon.socket'
|
||||
|
||||
systemctl_path = pathlib.Path('/usr/bin/systemctl')
|
||||
systemd_installed = pytest.mark.skipif(not systemctl_path.exists(),
|
||||
@ -76,20 +77,101 @@ def test_service_enable_and_disable():
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_actions(mock):
|
||||
"""Trivial white box test for trivial implementations."""
|
||||
def test_service_start(mock):
|
||||
"""Test staring a service."""
|
||||
service_start(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'start', check=False)
|
||||
mock.mock_calls = [call(UNKNOWN, 'start', check=False)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_start(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'start', check=True)]
|
||||
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_stop(mock):
|
||||
"""Test stopping a service."""
|
||||
service_stop(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'stop', check=False)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'stop', check=False)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_stop(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'stop', check=True)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_stop(UNKNOWN_SOCKET)
|
||||
assert mock.mock_calls == [
|
||||
call(UNKNOWN_SOCKET, 'stop', check=False),
|
||||
call(UNKNOWN, 'stop', check=False)
|
||||
]
|
||||
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_restart(mock):
|
||||
"""Test restaring a service."""
|
||||
service_restart(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'restart', check=False)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'restart', check=False)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_restart(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'restart', check=True)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_restart(UNKNOWN_SOCKET)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'stop', check=False)]
|
||||
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_try_restart(mock):
|
||||
"""Test try-restaring a service."""
|
||||
service_try_restart(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'try-restart', check=False)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'try-restart', check=False)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_try_restart(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'try-restart', check=True)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_restart(UNKNOWN_SOCKET)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'stop', check=False)]
|
||||
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_reload(mock):
|
||||
"""Test reloading a service."""
|
||||
service_reload(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'reload', check=False)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'reload', check=False)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_reload(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'reload', check=True)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_reload(UNKNOWN_SOCKET)
|
||||
assert mock.mock_calls == [call(UNKNOWN, 'reload', check=False)]
|
||||
|
||||
|
||||
@patch('plinth.action_utils.service_action')
|
||||
@systemd_installed
|
||||
def test_service_try_reload_or_restart(mock):
|
||||
"""Test try-reload-or-restart on a service."""
|
||||
service_try_reload_or_restart(UNKNOWN)
|
||||
mock.assert_called_with(UNKNOWN, 'try-reload-or-restart', check=False)
|
||||
assert mock.mock_calls == [
|
||||
call(UNKNOWN, 'try-reload-or-restart', check=False)
|
||||
]
|
||||
|
||||
mock.reset_mock()
|
||||
service_try_reload_or_restart(UNKNOWN, check=True)
|
||||
mock.mock_calls = [call(UNKNOWN, 'try-reload-or-restart', check=True)]
|
||||
|
||||
mock.reset_mock()
|
||||
service_try_reload_or_restart(UNKNOWN_SOCKET)
|
||||
assert mock.mock_calls == [
|
||||
call(UNKNOWN, 'try-reload-or-restart', check=False)
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('needs_root')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user