freedombox release 26.6 for unstable

[dgit distro=debian split]
 [dgit please-upload source=freedombox version=26.6]
 -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmnUWw0WHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICFtdD/9BHHquoQcNXuHT162FGjYleuJN
 nM8tQnZ4x0Gj2pSMIUa+8QUXO6xS8swvZCajHLotgs20KUTDM9ti8cm2+wZFMTlL
 L1MENTDOoKfGSeNMNL5SHf/wNwJGuqpYWfbY7QrZQUd+F6XM3zvACq6tD8NU3NYE
 ardMTVZc6oXoTfXav3jliD9wxW2HT2ouyvm9US9kPOnIFNfbHKv+4vstC7UK2RvT
 iE+CiLJe1X1jQOwSe89ziMGbP2NIdCEhPFrwGXCfipXePpvkBA0kxbzPdSPchNDS
 NLWKJYR9+Su+tsxvgKornhHuKKFilOfG6k5h8z/y4Khm/rMncWSvyrB6kYdLrKNX
 jO96I7SHulQvgIl74+V4VXQNGLjvFLqiago+XBT/Jui7k/4pjUPxO5fNqoT4gmWk
 FEiOTrc7++RtfYyi3KpvRA4UI48EpRK5ff048Jnh93aD+ghm3+0Gv6QuhiIK6y6z
 Jts6mF98iI2BGNsFYdpChIRT0/atZwRczr8gUljX5FJM4FfNM5X1fUOee8Y7lahL
 1IDSMb+QjwhRkRIS75UAw5TRa1FsqlJIp+faKx8dFCCOvXxh3ADPUTR3SEPDHdiz
 kglrHBlFyZN2w7+4OQuKmde0wrS/qW8N/aNoncKFTD36JoKn87/wpFtujCyYm6t3
 qwN5EMgK8/TMPqg16g==
 =F+Ew
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmnZb5oWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICMj1EAC1yiknGtf3K/I4SQ1nb8SP16C7
 ZeSKl2TSnUlPr2qa77S95h5raRGLiTNUhZ9+MnJYvZYDgorBhh7GT4MME4YcT6Wu
 o6FENEMfjq7YgHSX7CPa6eni3lhJdwPsN0O24sYa9aGmBo8FC7xKmtjc2JAHsmCi
 yT5R81rGj9Gy7yV31n7mrTZcH2BxwEAXJnMilyIBSmoLoaLT7fnJ6Mg1wMPQ4UWL
 5uQ0R8nc9YEVuj+w2lX4Hwx0Exgu5MVHOdW/tXWTttnnD4JVmxzyZ0lfR7rtevC2
 3ejZk1VSzIlQWuLr12g4vGvPMW2p7zpoL6brGFFlRwXt4SdSx3ygbiu3SliklfVs
 Q74qlFaTO/Wns/xS7bYY9HchO4oFYw5oeJNK05F8Be1Xfy7F9hL15GJ8P9Q2O007
 27/nLngx/yqMywcivs/a1kknmawyc7iCh2TGkjrMWUNparvcbbWHxuUk4mqDx4C+
 +YDa48WS9TvQgEi8296da+WlKW81MWPBQQRhTui1aQA+/RMs+SjpvHxX813c6IkJ
 r3nwzDTJqx0j0HHdLPZztPkxq+dNapRDXK9JO6N2DljvwMmCp+v5Yf3a0pHOAEHj
 v2w7pqE3d8aHQMfQSRjBHvMVaa+QYCG8ycHdm2cjhBt+uyoKrmh112lTXiwqiPEx
 dEugCQKxXSJClzfoag==
 =mzFW
 -----END PGP SIGNATURE-----

Merge tag 'debian/26.6' into debian/trixie-backports

freedombox release 26.6 for unstable
This commit is contained in:
James Valleroy 2026-04-10 17:45:59 -04:00
commit f9ecccc181
69 changed files with 8040 additions and 1793 deletions

View File

@ -17,8 +17,6 @@ RestartSec=5
ExecReload=/bin/kill -HUP $MAINPID ExecReload=/bin/kill -HUP $MAINPID
User=plinth User=plinth
Group=plinth Group=plinth
StandardOutput=null
StandardError=null
NotifyAccess=main NotifyAccess=main
# Uploaded files in /var/tmp/ are shared with FreedomBox privileged service by # Uploaded files in /var/tmp/ are shared with FreedomBox privileged service by
# joining namespaces. # joining namespaces.

29
debian/changelog vendored
View File

@ -1,3 +1,32 @@
freedombox (26.6) unstable; urgency=medium
[ Coucouf ]
* Translated using Weblate (French)
[ Dietmar ]
* Translated using Weblate (Italian)
* Translated using Weblate (German)
[ Pierfrancesco Passerini ]
* Translated using Weblate (Italian)
[ bsurajpatra ]
* Translated using Weblate (Hindi)
[ Sunil Mohan Adapa ]
* service: Capture stdout/stderr when running as systemd unit
* views: Add a decorator to handle exceptions in JSON views
* d/control: Add fido2 library as dependency
* users: Add support for registering, editing, and deleting passkeys
* users: Add support for logging in with passkeys
* users: Add link to guide on passkeys
[ James Valleroy ]
* locale: Update translation strings
* doc: Fetch latest manual
-- James Valleroy <jvalleroy@mailbox.org> Mon, 06 Apr 2026 20:41:35 -0400
freedombox (26.5.1~bpo13+1) trixie-backports; urgency=medium freedombox (26.5.1~bpo13+1) trixie-backports; urgency=medium
* Rebuild for trixie-backports. * Rebuild for trixie-backports.

2
debian/control vendored
View File

@ -37,6 +37,7 @@ Build-Depends:
python3-django-ipware <!nocheck>, python3-django-ipware <!nocheck>,
python3-django-oauth-toolkit <!nocheck>, python3-django-oauth-toolkit <!nocheck>,
python3-django-stronghold <!nocheck>, python3-django-stronghold <!nocheck>,
python3-fido2 <!nocheck>,
python3-gi, python3-gi,
python3-markupsafe, python3-markupsafe,
python3-mypy <!nocheck>, python3-mypy <!nocheck>,
@ -110,6 +111,7 @@ Depends:
python3-django-ipware, python3-django-ipware,
python3-django-oauth-toolkit, python3-django-oauth-toolkit,
python3-django-stronghold, python3-django-stronghold,
python3-fido2,
python3-gi, python3-gi,
python3-markupsafe, python3-markupsafe,
python3-pampy, python3-pampy,

View File

@ -0,0 +1,117 @@
#language en
##TAG:TRANSLATION-HEADER-START
~- [[FreedomBox/Guide/Passkeys|English]] - [[DebianWiki/EditorGuide#translation|(+)]] -~
##TAG:TRANSLATION-HEADER-END
<<TableOfContents>>
## BEGIN_INCLUDE
== Use Passkeys to Improve Login Security ==
{{{#!wiki tip
Passkeys are strongly recommended over passwords.
}}}
'''Available since''': !FreedomBox 26.6
!FreedomBox allows users to login to their account with passkeys. Passkeys are way to verify user's identity using digital signatures. They are a more secure alternative to passwords. Secret information is kept with the user on their phone, laptop, or a hardware token and unlocked using a PIN, fingerprint, or face ID. No secrets are stored on the server. The server knows only the public information that can be used to verify user's signatures.
=== How do passkeys work? ===
After the user logs into their account, one or more passkeys can be added to the account from the 'Manage Passkeys' page. At the time of adding passkeys, the passkey hardware (or authenticator), will generate a public and private key pair that is tied to the domain and user account. The private key is kept in the hardware and public key is provided to the server. The server stores the public key along with user account. Later when a user is trying to log in to their account, the server sends a long randomly generated string to the authenticator called the challenge. The hardware digitally signs the challenge using the private key and sends it to the server. The server is able to verify that the signature is made by the holder of private key by just using the public key that it has (this is a feature of public/private key pairs). Once verified, the server logs into the user account associated with that public key.
During this process, the browser acts as a trusted intermediary between the passkey hardware and the server. It ensures that the user is verified by providing PIN, fingerprint, face ID, etc. It also ensures that a passkey is only used with the domain it is meant for.
=== Better security ===
Passkeys provide better security than passwords:
* '''Multi-factor authentication''': During registration of a passkey and during login, !FreedomBox requests that the browser verify the user. This means the user will need to unlock the authenticator device by providing a PIN, fingerprint, face ID, etc. This acts as one of the authentication factors: "something you know" or "something your are". Another authentication factor is "something that you have": the hardware that stores your passkey (such as Solokey, Nitrokey, or Yubikey) or a phone. Together, this is similar to using a password along with a second factor authentication. So, passkeys can replace two-factor authentication while being much more convenient and easier to use.
* '''No reuse''': Passkeys are never reused. For each domain a separate passkey is generated and used. Browsers ensure that passkey for a domain is never used with another domain. Unlike reused passwords, when a website or a service is compromised, adversaries can't use that to gain access to your account in different website or service. This also prevents phishing attacks were adversarial websites pretend to be legitimate ones.
* '''No secrets on the server''': The website allowing use of passkeys for login does not store any secret information. It only stores the public key part of the passkey. If this information is obtained by an adversary, they will not be able to login to the website. Only the private key stored on the authenticator device can be used to login to the website (since only a private key can create signatures needed for login process).
* '''No guessing''': The secret part of a passkey is much more impractical to guess compared to a password. There is no risk that someone will be able to guess your password and access your account. There is no risk that you might accidentally set a predictable password.
* '''Convenience''': Users don't need to remember username, email, or a secret to login to a website. They don't need to receive OTP via text or email, use TOTP app, or confirm login using a mobile app. After clicking on the 'Login with passkey' button, they unlock their authenticator using a PIN, fingerprint, or face ID. Then they physically tap on the authenticator (if necessary). The user is then logged in. There are fewer things to remember. Even the PIN for a hardware authenticator is typically easier to remember than a password. This convenience encourages users to use this mechanism, ultimately leading to better security.
=== Hardware Needed for Passkeys ===
{{{#!wiki tip
'''[[https://solokeys.com/|Solokeys]]''' are recommend for passkey storage by the !FreedomBox project.
* The [[https://github.com/solokeys/solo2|firmware]] (the OS for the hardware) is free software.
* The [[https://github.com/solokeys/solo2-hw|hardware]] designs are free too.
* The Solokeys team and the !FreedomBox team collaborate.
}}}
There are many ways to get started with passkeys:
* '''Separate passkey hardware''': The recommended way to store passkeys is on a specific hardware key. In this setup, the private key part of the passkey never leaves the hardware device. They are also typically built such that it is hard for an adversary with physical access the device to extract passkey from it. Another advantage of these devices is that the hardware can be used with all your existing devices such as phones, laptops, and desktops. These devices interact with phones and desktops using USB, Bluetooth, or NFC tap. In case of NFC, the device works with proximity from the phone without additional power. When using a separate hardware, however, you must have a backup way of logging into your account in the event that you loose the hardware device. This could be an additional passkey hardware or a password. See the section on backup below.
* '''Builtin passkey hardware''': When a separate hardware device is not available, specialized hardware, such as a TPM, built into the computer is preferable. This setup will still ensure that passkeys do not leave the hardware. One disadvantage of this approach is that the passkey only works with that device and you will need register each device you use separately.
* '''Password managers''': As a last resort, one could use password managers that support passkeys and work with your browser or OS. Android, iOS, and Windows offer such password managers. Passkeys stored in password managers are typically synchronized to the cloud and a breach of that service/account could result in compromise of all your accounts. However, they work across multiple devices and you typically don't have to worry about loosing a single hardware device.
=== Naming Your Passkey ===
In !FreedomBox, when a passkey is added to your account, it by default named as 'Key 1'. The next one will be named 'Key 2' and so on. However, it is good practice to name them such that you know which device they are stored on. For example, you can name them 'Key on Primary Solokey', 'Key on Android Phone', etc. If a device is lost, you can login to your account and remove that key from the list of passkeys associated with your account.
=== Multiple Domains ===
Each passkey is strictly tied to a domain and never used for another domain. This necessary to ensure that a malicious domain does not impersonate a legitimate domain. Hence, if your !FreedomBox is configured with multiple domains, then the browser and hardware authenticator device will treat them as separate accounts for the purpose of authentication with passkeys. This means you need to register separate passkeys for each of your domains.
For example, assume your !FreedomBox has two domains configured mydomain1.fbx.one and mydomain2.example. Visit mydomain1.fbx.one, log in to your account, and add a passkey. This passkey will be tied to this domain. When you are trying to log in, the passkey will work if you are accessing mydomain1.fbx.one but it won't work when accessing mydomain2.example. To make the second domain work, you need to add a second passkey while accessing your !FreedomBox with the domain name mydomain2.example. Two passkeys are then stored in your hardware token. First one will be tied to mydomain1.fbx.one and will only be used when accessing that domain. Second one will be tied to mydomain2.example and will only be used when accessing that domain.
=== Multiple User Accounts ===
When you use a passkey hardware for multiple user accounts on the same !FreedomBox, separate passkeys will be created for each of the accounts. Each passkey will be assigned the username of the account it is tied to. This information is stored in the passkey as well as the server. During login, the browser will prompt to select the user account you want to log into. If only a single passkey exists for a given domain name, then the selection dialog is not shown and user will login to the account corresponding to the passkey.
=== Backup for Passkey ===
In case the device storing your passkey is lost, you need alternate ways to login to you account:
1. You can register and maintain two passkeys on two separate devices. For example, your primary passkey could be on a Solokey hardware token and the second passkey could be on an Android phone or another Solokey hardware token. If one is lost, you can login with the other. This is the recommended approach.
1. !FreedomBox continues to support passwords even after passkeys are registered. So, if a passkey device is lost, you can login with a password.
1. If you forget your password and if your user account is not the only administrator account on the !FreedomBox, you can ask an administrator to reset your password. After that you can register a new passkey stored on a new device.
=== Supported Platforms ===
Passkeys are based on WebAuthn, a standard published by World Wide Web Consortium. So, !FreedomBox's implementation is expected to work wherever passkeys work. It has been tested as follows:
|| '''OS/Device''' || '''Browser''' || '''Authenticator''' || '''Result''' ||
|| GNU/Linux || Firefox || Solokeys || Pass ||
|| GNU/Linux || Firefox || Yubikey || Pass ||
|| GNU/Linux || Chromium || Solokeys || Pass ||
|| GNU/Linux || GNOME Web || - || Fail (Browser does not support Webauthn) ||
|| Windows || Firefox || Windows Hello || Pass ||
|| Windows || Firefox || Solokeys || Pass ||
|| Windows || Firefox || Android Phone || Pass ||
|| Windows || Chrome || Windows Hello || Pass ||
|| Windows || Chrome || Solokeys || Pass ||
|| Windows || Chrome || Android Phone || Pass ||
|| Windows || Edge || Windows Hello || Pass ||
|| Windows || Edge || Solokeys || Pass ||
|| Windows || Edge || Android Phone || Pass ||
|| Android || Firefox || Google Password Manager || Pass ||
|| Android || Firefox || Solokeys USB || Fail (Touch is not detected after PIN entry) ||
|| Android || Firefox || Solokeys NFC || Fail (Need to understand NFC setup) ||
|| Android || Firefox || Another device || Untested ||
|| Android || Chrome || Google Password Manager || Pass ||
|| Android || Chrome || Solokeys USB || Fail (Touch is not detected after PIN entry) ||
|| Android || Chrome || Solokeys NFC || Fail (Need to understand NFC setup) ||
|| Android || Chrome || Another device || Untested ||
## END_INCLUDE
Back to [[FreedomBox/Features|Features introduction]] or [[FreedomBox/Manual|manual]] pages.
<<Include(FreedomBox/Portal)>>
----
CategoryFreedomBox

View File

@ -8,6 +8,28 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 26.6 (2026-04-06) ==
=== Highlights ===
* users: Add support for logging in with passkeys
=== Other Changes ===
* d/control: Add fido2 library as dependency
* locale: Update translations for French, German, Hindi, Italian
* service: Capture stdout/stderr when running as systemd unit
* users: Add link to guide on passkeys
* users: Add support for registering, editing, and deleting passkeys
* views: Add a decorator to handle exceptions in JSON views
== FreedomBox 26.5.1 (2026-03-26) ==
* debian/control: Fix building with nocheck profile
* debian/copyright: Drop a removed file, correct path for another
* locale: Update translations for Albanian, Turkish
* web_server: Fix locating SVG icons on production setup
== FreedomBox 26.5 (2026-03-23) == == FreedomBox 26.5 (2026-03-23) ==
=== Highlights === === Highlights ===

View File

@ -8,25 +8,25 @@
== Users and Groups == == Users and Groups ==
You can grant access to your !FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups This app can be used to create, edit, and remove user accounts on !FreedomBox. Many apps with web interface in !FreedomBox support single sign-on using OpenID Connect. This means that if you are logged into !FreedomBox web interface, there is no need to login to the app separately. Other apps support using the !FreedomBox user accounts via LDAP. Finally, there are some apps that manage their own user accounts separate from the accounts you have in !FreedomBox.
Access to an app is allowed if the user accessing the app is part of the app's group. You can grant access to apps in !FreedomBox for specific users by adding them to the following groups:
* admin * admin
* bit-torrent * bit-torrent
* calibre * calibre
* ed2k
* feed-reader * feed-reader
* freedombox-share * freedombox-share
* freedombox-ssh
* git-access * git-access
* minidlna * kiwix
* syncthing * syncthing-access
* vpn
* web-search * web-search
* wiki * wiki
are supported.
The user will be able to log in to services that support single sign-on through LDAP, if they are in the appropriate group. Users in the admin group will be able to log in to all services. They can also log in to the system through SSH and have administrative privileges (sudo). A user's groups can also be changed later.
Users in the admin group will be able to log in to all services. They can also log in to the system through SSH and have administrative privileges (sudo). !FreedomBox supports logging in with passkeys. Passkeys are a secure alternative to passwords and are the recommended way of authenticating to !FreedomBox. Read more in the [[FreedomBox/Guide/Passkeys|FreedomBox's guide to passkeys]].
A user's groups can also be changed later.
It is also possible to set an SSH public key which will allow this user to securely log in to the system without using a password. You may enter multiple keys, one on each line. Blank lines and lines starting with # will be ignored. It is also possible to set an SSH public key which will allow this user to securely log in to the system without using a password. You may enter multiple keys, one on each line. Blank lines and lines starting with # will be ignored.

View File

@ -83,6 +83,7 @@
<<Include(FreedomBox/Manual/Users, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>> <<Include(FreedomBox/Manual/Users, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
= Guides = = Guides =
<<Include(FreedomBox/Guide/Passkeys, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
<<Include(FreedomBox/Guide/ExposeLocalService, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>> <<Include(FreedomBox/Guide/ExposeLocalService, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
= Hardware = = Hardware =

View File

@ -83,6 +83,7 @@
<<Include(FreedomBox/Manual/Users, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>> <<Include(FreedomBox/Manual/Users, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
= Guides = = Guides =
<<Include(FreedomBox/Guide/Passkeys, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
<<Include(FreedomBox/Guide/ExposeLocalService, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>> <<Include(FreedomBox/Guide/ExposeLocalService, , from="## BEGIN_INCLUDE", to="## END_INCLUDE")>>
= Hardware = = Hardware =

View File

@ -8,6 +8,28 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 26.6 (2026-04-06) ==
=== Highlights ===
* users: Add support for logging in with passkeys
=== Other Changes ===
* d/control: Add fido2 library as dependency
* locale: Update translations for French, German, Hindi, Italian
* service: Capture stdout/stderr when running as systemd unit
* users: Add link to guide on passkeys
* users: Add support for registering, editing, and deleting passkeys
* views: Add a decorator to handle exceptions in JSON views
== FreedomBox 26.5.1 (2026-03-26) ==
* debian/control: Fix building with nocheck profile
* debian/copyright: Drop a removed file, correct path for another
* locale: Update translations for Albanian, Turkish
* web_server: Fix locating SVG icons on production setup
== FreedomBox 26.5 (2026-03-23) == == FreedomBox 26.5 (2026-03-23) ==
=== Highlights === === Highlights ===

View File

@ -3,4 +3,4 @@
Package init file. Package init file.
""" """
__version__ = '26.5.1' __version__ = '26.6'

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-04-16 02:28+0000\n" "PO-Revision-Date: 2025-04-16 02:28+0000\n"
"Last-Translator: MohammedSaalif <2300031323@kluniversity.in>\n" "Last-Translator: MohammedSaalif <2300031323@kluniversity.in>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Arabic <https://hosted.weblate.org/projects/freedombox/"
@ -31,7 +31,7 @@ msgstr "تم إعداد التكوين الثابت {etc_path} بشكل صحيح
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "الخدمة {service_name} نشِطة" msgstr "الخدمة {service_name} نشِطة"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
#, fuzzy #, fuzzy
msgid "FreedomBox" msgid "FreedomBox"
msgstr "صندوق الحرية" msgstr "صندوق الحرية"
@ -347,6 +347,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1979,6 +1980,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3062,8 +3064,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "عن" msgstr "عن"
@ -3201,6 +3203,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3607,7 +3610,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5331,12 +5334,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6207,8 +6216,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8582,7 +8591,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8624,7 +8633,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8633,77 +8642,173 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Local Network Domain"
msgid "For Domain"
msgstr "مجال الشبكة المحلية"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9417,22 +9522,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9667,15 +9776,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2020-06-10 15:41+0000\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n"
"Last-Translator: aiman an <an1f3@hotmail.com>\n" "Last-Translator: aiman an <an1f3@hotmail.com>\n"
"Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/" "Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -323,6 +323,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "اسم" msgstr "اسم"
@ -1961,6 +1962,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3054,8 +3056,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3193,6 +3195,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3599,7 +3602,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5333,12 +5336,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6209,8 +6218,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8588,7 +8597,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8630,7 +8639,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8639,77 +8648,173 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Local Network Domain"
msgid "For Domain"
msgstr "عنوان الشبكة المحلية"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9423,22 +9528,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9673,15 +9782,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -317,6 +317,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1949,6 +1950,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3032,8 +3034,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3171,6 +3173,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3575,7 +3578,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5289,12 +5292,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6161,8 +6170,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8533,7 +8542,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8575,7 +8584,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8584,77 +8593,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9356,22 +9459,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9604,15 +9711,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-12-17 07:00+0000\n" "PO-Revision-Date: 2025-12-17 07:00+0000\n"
"Last-Translator: 109247019824 " "Last-Translator: 109247019824 "
"<109247019824@users.noreply.hosted.weblate.org>\n" "<109247019824@users.noreply.hosted.weblate.org>\n"
@ -30,7 +30,7 @@ msgstr "Статичните настройки {etc_path} са правилно
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Контейнерът {container_name} работи" msgstr "Контейнерът {container_name} работи"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -349,6 +349,7 @@ msgstr "Хранилище"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Наименование" msgstr "Наименование"
@ -2077,6 +2078,7 @@ msgstr "Адрес по IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Действия" msgstr "Действия"
@ -3209,8 +3211,8 @@ msgstr "Обратна връзка"
msgid "Contribute" msgid "Contribute"
msgstr "Допринасяне" msgstr "Допринасяне"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "За проекта" msgstr "За проекта"
@ -3349,6 +3351,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Научете повече…" msgstr "Научете повече…"
@ -3758,7 +3761,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5605,12 +5608,18 @@ msgstr "Редактиране на връзката"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Грешка:" msgstr "Грешка:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Затваряне" msgstr "Затваряне"
@ -6491,8 +6500,8 @@ msgstr "Рестартиране"
msgid "Shutdown" msgid "Shutdown"
msgstr "Изключване" msgstr "Изключване"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Рестартиране" msgstr "Рестартиране"
@ -9096,7 +9105,7 @@ msgstr "Запазване на парола"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Създаване на потребител" msgstr "Създаване на потребител"
@ -9147,7 +9156,7 @@ msgid "Skip this step"
msgstr "Пропускане на стъпката" msgstr "Пропускане на стъпката"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Поребители" msgstr "Поребители"
@ -9156,16 +9165,114 @@ msgstr "Поребители"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Промяна на потребителя %(username)s" msgstr "Промяна на потребителя %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Приложението не поддържа дисгностика"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Вход" msgstr "Вход"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Обновяване на настройки"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
#, fuzzy
#| msgid "Add Package"
msgid "Add passkey"
msgstr "Добавяне на пакет"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "Последна проверка: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Премахване на потребител"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Отказ"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Променяне на потребителя <em>%(username)s</em>" msgstr "Променяне на потребителя <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9174,19 +9281,19 @@ msgstr ""
"За да промените паролата, използвайте <a " "За да промените паролата, използвайте <a "
"href=\"%(change_password_url)s\">формуляра за промяна на парола</a>." "href=\"%(change_password_url)s\">формуляра за промяна на парола</a>."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Запазване на промените" msgstr "Запазване на промените"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
"Потвърждавате ли премахването на потребителя <em>%(username)s</em> и всички " "Потвърждавате ли премахването на потребителя <em>%(username)s</em> и всички "
"негови файлове?" "негови файлове?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9195,45 +9302,57 @@ msgstr ""
"домашната му папка. Ако желаете тези файлове да бъдат запазени, вместо да " "домашната му папка. Ако желаете тези файлове да бъдат запазени, вместо да "
"премахвате профила го изключете." "премахвате профила го изключете."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Премахване на файловете на %(username)s" msgstr "Премахване на файловете на %(username)s"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Отказ"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Изходът е успешен." msgstr "Изходът е успешен."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Потребителят %(username)s е създаден." msgstr "Потребителят %(username)s е създаден."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Потребителят %(username)s е променен." msgstr "Потребителят %(username)s е променен."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Промяна на потребител" msgstr "Промяна на потребител"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Потребителят %(username)s е премахнат." msgstr "Потребителят %(username)s е премахнат."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Промяна на парола" msgstr "Промяна на парола"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Паролата е променена." msgstr "Паролата е променена."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A wiki file with the given name already exists."
msgid "Passkey with that identifier already exists."
msgstr "В енциклопедията съществува файл с такова име."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Промяна на потребител"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9952,22 +10071,28 @@ msgid " System"
msgstr " Системни" msgstr " Системни"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Управление на псевдоними"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Промяна на парола" msgstr "Промяна на парола"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Изключване" msgstr "Изключване"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Изход" msgstr "Изход"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Избор на език" msgstr "Избор на език"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Вход" msgstr "Вход"
@ -10206,15 +10331,15 @@ msgstr ""
"Всички данни и настройки на приложението ще бъдат загубени. Приложението " "Всички данни и настройки на приложението ще бъдат загубени. Приложението "
"може да бъде инсталирано отново." "може да бъде инсталирано отново."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Тук" msgstr "Тук"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Настройките не са променени" msgstr "Настройките не са променени"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "преди премахване на {app_id}" msgstr "преди премахване на {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-04-01 03:02+0000\n" "PO-Revision-Date: 2025-04-01 03:02+0000\n"
"Last-Translator: MURALA SAI GANESH <saiganeshmurala@gmail.com>\n" "Last-Translator: MURALA SAI GANESH <saiganeshmurala@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Bengali <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "সেবা {service_name} চলছে" msgstr "সেবা {service_name} চলছে"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ফ্রিডমবক্স" msgstr "ফ্রিডমবক্স"
@ -323,6 +323,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "নাম" msgstr "নাম"
@ -1980,6 +1981,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "ক্রিয়া" msgstr "ক্রিয়া"
@ -3081,8 +3083,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "সম্পর্কে" msgstr "সম্পর্কে"
@ -3220,6 +3222,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3626,7 +3629,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5354,12 +5357,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6230,8 +6239,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8614,7 +8623,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8656,7 +8665,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8665,77 +8674,175 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "ডোমেন"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
msgid "Delete passkey"
msgstr "মুছো"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "বাতিল"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "বাতিল"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9438,22 +9545,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Enabled"
msgid "Manage passkeys"
msgstr "সক্রিয়"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9688,15 +9801,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "এখানে" msgstr "এখানে"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-02-06 23:02+0000\n" "PO-Revision-Date: 2026-02-06 23:02+0000\n"
"Last-Translator: kosagi <marti.torra@natana.cat>\n" "Last-Translator: kosagi <marti.torra@natana.cat>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Catalan <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "La configuració estàtica {etc_path} s'ha establert correctament"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "El contenidor {container_name} està en marxa" msgstr "El contenidor {container_name} està en marxa"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -351,6 +351,7 @@ msgstr "Repositori"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@ -2158,6 +2159,7 @@ msgstr "Adreça IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Accions" msgstr "Accions"
@ -3377,8 +3379,8 @@ msgstr "Enviar comentaris"
msgid "Contribute" msgid "Contribute"
msgstr "Contribueix" msgstr "Contribueix"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
@ -3554,6 +3556,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Aprèn-ne més..." msgstr "Aprèn-ne més..."
@ -4040,7 +4043,7 @@ msgstr "Videoconferència"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Informació de la llicència de JavaScript" msgstr "Informació de la llicència de JavaScript"
@ -6092,12 +6095,18 @@ msgstr "Edita la Connexió"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Error:" msgstr "Error:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Tanca" msgstr "Tanca"
@ -6991,8 +7000,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -9363,7 +9372,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9405,7 +9414,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9414,77 +9423,185 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Aquesta app no permet diagnòstics"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Actualitza la configuració"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Afegeix contrasenya"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domini"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Last update"
msgid "Last Used"
msgstr "Ultima actualització"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 %(name)s"
msgid "Delete passkey"
msgstr "Esborrar %(name)s"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A library with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Ja existeix una biblioteca amb aquest nom."
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10187,22 +10304,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Gestiona els alias"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10437,15 +10560,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-08 18:48+0000\n" "PO-Revision-Date: 2026-03-08 18:48+0000\n"
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n" "Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Statická konfigurace {etc_path} je nastavena správně"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Kontejner {container_name} je spuštěn" msgstr "Kontejner {container_name} je spuštěn"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -344,6 +344,7 @@ msgstr "Repozitář"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Název" msgstr "Název"
@ -2118,6 +2119,7 @@ msgstr "IP adresa"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Akce" msgstr "Akce"
@ -3326,8 +3328,8 @@ msgstr "Odeslat zpětnou vazbu"
msgid "Contribute" msgid "Contribute"
msgstr "Zapojit se" msgstr "Zapojit se"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "O projektu" msgstr "O projektu"
@ -3500,6 +3502,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Zjistit více…" msgstr "Zjistit více…"
@ -3975,7 +3978,7 @@ msgstr "Webové konference"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Licenční informace o JavaScriptu" msgstr "Licenční informace o JavaScriptu"
@ -5961,12 +5964,18 @@ msgstr "Upravit připojení"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Chyba:" msgstr "Chyba:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Zavřít" msgstr "Zavřít"
@ -6940,8 +6949,8 @@ msgstr "Restart"
msgid "Shutdown" msgid "Shutdown"
msgstr "Vypnout" msgstr "Vypnout"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Restartovat" msgstr "Restartovat"
@ -9712,7 +9721,7 @@ msgstr "Uložit heslo"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Vytvořit uživatele" msgstr "Vytvořit uživatele"
@ -9762,7 +9771,7 @@ msgid "Skip this step"
msgstr "Tento krok přeskočte" msgstr "Tento krok přeskočte"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Uživatelé" msgstr "Uživatelé"
@ -9771,16 +9780,114 @@ msgstr "Uživatelé"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Upravit uživatele %(username)s" msgstr "Upravit uživatele %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Tato aplikace nepodporuje diagnostiku"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Přihlášení" 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 ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Aktualizovat nastavení"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Přidat heslo"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Doména"
#: 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 "Naposledy skenováno: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Smazat uživatele"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Storno"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Upravit uživatele %(username)s" msgstr "Upravit uživatele %(username)s"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9789,17 +9896,17 @@ msgstr ""
"Pro změnu hesla použijte formulář <a href=\"%(change_password_url)s\">změna " "Pro změnu hesla použijte formulář <a href=\"%(change_password_url)s\">změna "
"hesla </a>." "hesla </a>."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Uložit změny" msgstr "Uložit změny"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Smazat uživatele <em>%(username)s</em> a všechny jeho soubory?" msgstr "Smazat uživatele <em>%(username)s</em> a všechny jeho soubory?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9808,45 +9915,57 @@ msgstr ""
"adresáře uživatele. Pokud si přejete tyto soubory zachovat, zakažte raději " "adresáře uživatele. Pokud si přejete tyto soubory zachovat, zakažte raději "
"uživatelský účet." "uživatelský účet."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Odstranit uživatele a soubory" msgstr "Odstranit uživatele a soubory"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Storno"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Odhlášení proběhlo úspěšně." msgstr "Odhlášení proběhlo úspěšně."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Uživatel %(username)s vytvořen." msgstr "Uživatel %(username)s vytvořen."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Uživatel %(username)s aktualizován." msgstr "Uživatel %(username)s aktualizován."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Upravit uživatele" msgstr "Upravit uživatele"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Uživatel %(username)s smazán." msgstr "Uživatel %(username)s smazán."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Změnit heslo" msgstr "Změnit heslo"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Heslo úspěšně změněno." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Upravit uživatele"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard je rychlý, moderní a bezpečný tunel VPN." msgstr "WireGuard je rychlý, moderní a bezpečný tunel VPN."
@ -10626,22 +10745,28 @@ msgid " System"
msgstr " Systém" msgstr " Systém"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Správa aliasů"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Změnit heslo" msgstr "Změnit heslo"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Vypnout" msgstr "Vypnout"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Odhlásit" msgstr "Odhlásit"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Vyberte jazyk" msgstr "Vyberte jazyk"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Přihlásit" msgstr "Přihlásit"
@ -10895,15 +11020,15 @@ msgstr ""
"Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze " "Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze "
"nainstalovat znovu." "nainstalovat znovu."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Zde" msgstr "Zde"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Nastavení se nezměnila" msgstr "Nastavení se nezměnila"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "před odinstalací {app_id}" msgstr "před odinstalací {app_id}"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/"
@ -32,7 +32,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Tjenesten {service_name} er aktiv" msgstr "Tjenesten {service_name} er aktiv"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -349,6 +349,7 @@ msgstr "Lager"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Navn" msgstr "Navn"
@ -2258,6 +2259,7 @@ msgstr "IP-adresse"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Handlinger" msgstr "Handlinger"
@ -3526,8 +3528,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Om" msgstr "Om"
@ -3688,6 +3690,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
#, fuzzy #, fuzzy
#| msgid "Learn more &raquo;" #| msgid "Learn more &raquo;"
@ -4129,7 +4132,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -6101,6 +6104,9 @@ msgstr "Rediger Forbindelse"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -6108,7 +6114,10 @@ msgid "Error:"
msgstr "fejl" msgstr "fejl"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -7143,8 +7152,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Sluk Nu" msgstr "Sluk Nu"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
#, fuzzy #, fuzzy
#| msgid "Restart Now" #| msgid "Restart Now"
msgid "Restart" msgid "Restart"
@ -9917,7 +9926,7 @@ msgstr "Gem Kodeord"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Opret Bruger" msgstr "Opret Bruger"
@ -9966,7 +9975,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Brugere" msgstr "Brugere"
@ -9975,16 +9984,114 @@ msgstr "Brugere"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Rediger Bruger %(username)s" msgstr "Rediger Bruger %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Denne applikation understøtter ikke diagnostik"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Log ind" msgstr "Log ind"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Opdater indstillinger"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Tilføj kodeord"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domæne"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create Connection"
msgid "Last Used"
msgstr "Opret Forbindelse"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Slet Bruger"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Annuller"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Rediger Bruger <em>%(username)s</em>" msgstr "Rediger Bruger <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9993,67 +10100,79 @@ msgstr ""
"Brug <a href='%(change_password_url)s'>siden til kodeordsændring </a> for at " "Brug <a href='%(change_password_url)s'>siden til kodeordsændring </a> for at "
"ændre kodeord." "ændre kodeord."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Gem Ændringer" msgstr "Gem Ændringer"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Slet bruger <strong>%(username)s</strong> permanent?" msgstr "Slet bruger <strong>%(username)s</strong> permanent?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Slet filer" msgstr "Slet filer"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Annuller"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Password changed successfully." #| msgid "Password changed successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Kodeord blev ændret." msgstr "Kodeord blev ændret."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Bruger %(username)s oprettet." msgstr "Bruger %(username)s oprettet."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Bruger %(username)s opdateret." msgstr "Bruger %(username)s opdateret."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Rediger Bruger" msgstr "Rediger Bruger"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Bruger %(username)s oprettet." msgstr "Bruger %(username)s oprettet."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Ændr kodeord" msgstr "Ændr kodeord"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Kodeord blev ændret." msgstr "Kodeord blev ændret."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "This service already exists"
msgid "Passkey with that identifier already exists."
msgstr "Denne tjeneste eksisterer allerede"
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Rediger Bruger"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10874,26 +10993,32 @@ msgid " System"
msgstr " System" msgstr " System"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage passkeys"
msgstr "Håndter samlinger"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Ændr kodeord" msgstr "Ændr kodeord"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
#, fuzzy #, fuzzy
#| msgid "Shut Down Now" #| msgid "Shut Down Now"
msgid "Shut down" msgid "Shut down"
msgstr "Sluk Nu" msgstr "Sluk Nu"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Log ud" msgstr "Log ud"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
#, fuzzy #, fuzzy
#| msgid "Language" #| msgid "Language"
msgid "Select language" msgid "Select language"
msgstr "Sprog" msgstr "Sprog"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Log ind" msgstr "Log ind"
@ -11155,15 +11280,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Indstilling uændret" msgstr "Indstilling uændret"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-22 23:09+0000\n" "PO-Revision-Date: 2026-03-29 11:09+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n" "Last-Translator: Dietmar <sagen@permondes.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/" "Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
"freedombox/de/>\n" "freedombox/de/>\n"
"Language: de\n" "Language: de\n"
@ -31,7 +31,7 @@ msgstr "Statische Konfiguration {etc_path} ist richtig eingerichtet"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Container {container_name} wird ausgeführt" msgstr "Container {container_name} wird ausgeführt"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -172,7 +172,7 @@ msgstr "{box_name} Weboberfläche (Plinth)"
#: plinth/modules/apache/__init__.py:129 #: plinth/modules/apache/__init__.py:129
msgid "Web app protected by FreedomBox" msgid "Web app protected by FreedomBox"
msgstr "" msgstr "Web-App geschützt durch FreedomBox"
#: plinth/modules/apache/components.py:234 #: plinth/modules/apache/components.py:234
#, python-brace-format #, python-brace-format
@ -352,6 +352,7 @@ msgstr "Paketquelle"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@ -415,10 +416,8 @@ msgid "Passphrase"
msgstr "Passwort" msgstr "Passwort"
#: plinth/modules/backups/forms.py:187 #: plinth/modules/backups/forms.py:187
#, fuzzy
#| msgid "Passphrase; Only needed when using encryption."
msgid "Only needed when using encryption." msgid "Only needed when using encryption."
msgstr "Passphrase; Nur notwendig, wenn Verschlüsselung genutzt wird." msgstr "Nur notwendig, wenn Verschlüsselung genutzt wird."
#: plinth/modules/backups/forms.py:190 #: plinth/modules/backups/forms.py:190
msgid "Confirm Passphrase" msgid "Confirm Passphrase"
@ -461,38 +460,31 @@ msgid "SSH Authentication Type"
msgstr "SSH-Authentifizierungstyp" msgstr "SSH-Authentifizierungstyp"
#: plinth/modules/backups/forms.py:256 #: plinth/modules/backups/forms.py:256
#, fuzzy
#| msgid "Authentication to remote server failed."
msgid "Choose how to authenticate to the remote SSH server." msgid "Choose how to authenticate to the remote SSH server."
msgstr "Authentifizierung am Server fehlgeschlagen." msgstr ""
"Wählen Sie aus, wie Sie sich beim entfernten SSH-Server authentifizieren "
"möchten."
#: plinth/modules/backups/forms.py:258 #: plinth/modules/backups/forms.py:258
#, fuzzy
#| msgid "needs authentication"
msgid "Key-based Authentication" msgid "Key-based Authentication"
msgstr "benötigt Authentifizierung" msgstr "Schlüsselbasierte Authentifizierung"
#: plinth/modules/backups/forms.py:259 #: plinth/modules/backups/forms.py:259
#, fuzzy
#| msgid "Disable password authentication"
msgid "Password-based Authentication" msgid "Password-based Authentication"
msgstr "Passwortauthentifizierung deaktivieren" msgstr "Passwortbasierte Authentifizierung"
#: plinth/modules/backups/forms.py:261 #: plinth/modules/backups/forms.py:261
msgid "SSH server password" msgid "SSH server password"
msgstr "SSH-Server-Passwort" msgstr "SSH-Server-Passwort"
#: plinth/modules/backups/forms.py:262 #: plinth/modules/backups/forms.py:262
#, fuzzy
#| msgid "Disable password authentication"
msgid "Required for password-based authentication." msgid "Required for password-based authentication."
msgstr "Passwortauthentifizierung deaktivieren" msgstr "Erforderlich für die passwortbasierte Authentifizierung."
#: plinth/modules/backups/forms.py:275 #: plinth/modules/backups/forms.py:275
#, fuzzy
#| msgid "Disable password authentication"
msgid "SSH password is needed for password-based authentication." msgid "SSH password is needed for password-based authentication."
msgstr "Passwortauthentifizierung deaktivieren" msgstr ""
"Für die passwortbasierte Authentifizierung ist ein SSH-Passwort erforderlich."
#: plinth/modules/backups/forms.py:292 #: plinth/modules/backups/forms.py:292
msgid "Remote backup repository already exists." msgid "Remote backup repository already exists."
@ -641,6 +633,9 @@ msgid ""
"list on the remote machine for %(box_name)s to be able to connect to the " "list on the remote machine for %(box_name)s to be able to connect to the "
"remote machine:" "remote machine:"
msgstr "" msgstr ""
"Der folgende öffentliche Schlüssel des SSH-Clients muss zur Liste der "
"autorisierten Schlüssel auf dem Remote-Rechner hinzugefügt werden, damit "
"%(box_name)s eine Verbindung zum Remote-Rechner herstellen kann:"
#: plinth/modules/backups/templates/backups_add_remote_repository.html:87 #: plinth/modules/backups/templates/backups_add_remote_repository.html:87
#, python-format #, python-format
@ -649,6 +644,10 @@ msgid ""
"successful, then the public key will be automatically added to the " "successful, then the public key will be automatically added to the "
"authorized keys list, so that future connections do not need the password." "authorized keys list, so that future connections do not need the password."
msgstr "" msgstr ""
"Der Dienst von %(box_name)s versucht, sich mit dem angegebenen Passwort "
"anzumelden. Gelingt dies, wird der öffentliche Schlüssel automatisch zur "
"Liste der autorisierten Schlüssel hinzugefügt, sodass für zukünftige "
"Verbindungen kein Passwort mehr erforderlich ist."
#: plinth/modules/backups/templates/backups_add_remote_repository.html:132 #: plinth/modules/backups/templates/backups_add_remote_repository.html:132
#: plinth/modules/backups/templates/backups_upload.html:29 #: plinth/modules/backups/templates/backups_upload.html:29
@ -832,10 +831,8 @@ msgid "Authentication to remote server failed."
msgstr "Authentifizierung am Server fehlgeschlagen." msgstr "Authentifizierung am Server fehlgeschlagen."
#: plinth/modules/backups/views.py:50 #: plinth/modules/backups/views.py:50
#, fuzzy
#| msgid "Error establishing connection to server: {}"
msgid "Error establishing connection to server: {} {} {}" msgid "Error establishing connection to server: {} {} {}"
msgstr "Fehler beim Verbinden mit Server: {}" msgstr "Fehler beim Verbinden mit Server: {} {} {}"
#: plinth/modules/backups/views.py:82 #: plinth/modules/backups/views.py:82
msgid "Backup schedule updated." msgid "Backup schedule updated."
@ -1485,14 +1482,7 @@ msgid "Webserver Home Page"
msgstr "Webserver-Startseite" msgstr "Webserver-Startseite"
#: plinth/modules/config/forms.py:37 #: plinth/modules/config/forms.py:37
#, fuzzy, python-brace-format #, python-brace-format
#| msgid ""
#| "Choose the default page that must be served when someone visits your "
#| "{box_name} on the web. A typical use case is to set your blog or wiki as "
#| "the home page when someone visits the domain name. Note that once the "
#| "home page is set to something other than {box_name} Service (Plinth), "
#| "your users must explicitly type /plinth or /freedombox to reach "
#| "{box_name} Service (Plinth)."
msgid "" msgid ""
"Choose the default page that must be served when someone visits your " "Choose the default page that must be served when someone visits your "
"{box_name} on the web. A typical use case is to set your blog or wiki as the " "{box_name} on the web. A typical use case is to set your blog or wiki as the "
@ -1504,8 +1494,8 @@ msgstr ""
"{box_name} im Web aufruft. Ein typischer Anwendungsfall ist ihren Blog oder " "{box_name} im Web aufruft. Ein typischer Anwendungsfall ist ihren Blog oder "
"Wiki als die Einstiegsseite einzustellen wenn jemand die Domain besucht. " "Wiki als die Einstiegsseite einzustellen wenn jemand die Domain besucht. "
"Beachten Sie, dass, wenn die Startseite auf etwas anderes als {box_name}-" "Beachten Sie, dass, wenn die Startseite auf etwas anderes als {box_name}-"
"Dienst (Plinth) eingestellt ist, die Benutzer explizit /plinth oder /" "Dienst (Plinth) eingestellt ist, die Benutzer explizit /freedombox eingeben "
"freedombox eingeben müssen um den {box_name}-Dienst (Plinth) zu erreichen." "müssen um den {box_name}-Dienst (Plinth) zu erreichen."
#: plinth/modules/config/forms.py:48 #: plinth/modules/config/forms.py:48
msgid "Show advanced apps and features" msgid "Show advanced apps and features"
@ -2176,6 +2166,7 @@ msgstr "IP-Adresse"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Aktionen" msgstr "Aktionen"
@ -2471,15 +2462,11 @@ msgstr ""
"werden automatisch erstellt und verweisen auf den ersten Admin-Benutzer." "werden automatisch erstellt und verweisen auf den ersten Admin-Benutzer."
#: plinth/modules/email/__init__.py:41 #: plinth/modules/email/__init__.py:41
#, fuzzy
#| msgid ""
#| "<a href=\"/plinth/apps/roundcube/\">Roundcube app</a> provides web "
#| "interface for users to access email."
msgid "" msgid ""
"<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web " "<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web "
"interface for users to access email." "interface for users to access email."
msgstr "" msgstr ""
"<a href=\"/plinth/apps/roundcube/\">Roundcube App</a> bietet eine " "<a href=\"/freedombox/apps/roundcube/\">Roundcube App</a> bietet eine "
"Weboberfläche für den Zugriff auf E-Mails." "Weboberfläche für den Zugriff auf E-Mails."
#: plinth/modules/email/__init__.py:43 #: plinth/modules/email/__init__.py:43
@ -3404,8 +3391,8 @@ msgstr "Feedback geben"
msgid "Contribute" msgid "Contribute"
msgstr "Mitwirken" msgstr "Mitwirken"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Info" msgstr "Info"
@ -3585,6 +3572,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Mehr erfahren …" msgstr "Mehr erfahren …"
@ -4073,7 +4061,7 @@ msgstr "Web-Konferenz"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript-Lizenzinformation" msgstr "JavaScript-Lizenzinformation"
@ -6098,12 +6086,18 @@ msgstr "Verbindung bearbeiten"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Fehler:" msgstr "Fehler:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
@ -6308,12 +6302,6 @@ msgstr ""
"weiterleitet, damit %(box_name)s die Dienste bereitstellt." "weiterleitet, damit %(box_name)s die Dienste bereitstellt."
#: plinth/modules/networks/templates/router_configuration_content.html:32 #: plinth/modules/networks/templates/router_configuration_content.html:32
#, fuzzy
#| msgid ""
#| "If you don't have control over your router, choose not to configure it. "
#| "To see options to overcome this limitation, choose 'I dont have a public "
#| "IP address' option in <a href=\"/plinth/sys/networks/internet-connection-"
#| "type/\">Internet connection type selection</a>."
msgid "" msgid ""
"If you don't have control over your router, choose not to configure it. To " "If you don't have control over your router, choose not to configure it. To "
"see options to overcome this limitation, choose 'I dont have a public IP " "see options to overcome this limitation, choose 'I dont have a public IP "
@ -6323,7 +6311,7 @@ msgstr ""
"Wenn Sie keine Kontrolle über Ihren Router haben, können Sie ihn nicht " "Wenn Sie keine Kontrolle über Ihren Router haben, können Sie ihn nicht "
"konfigurieren. Um Optionen zur Überwindung dieser Einschränkung zu sehen, " "konfigurieren. Um Optionen zur Überwindung dieser Einschränkung zu sehen, "
"wählen Sie die Option 'Ich habe keine öffentliche IP-Adresse' in <a href=\"/" "wählen Sie die Option 'Ich habe keine öffentliche IP-Adresse' in <a href=\"/"
"plinth/sys/networks/internet-connection-type/\">Auswahl des " "freedombox/sys/networks/internet-connection-type/\">Auswahl des "
"Internetverbindungstyps</a>." "Internetverbindungstyps</a>."
#: plinth/modules/networks/templates/router_configuration_content.html:39 #: plinth/modules/networks/templates/router_configuration_content.html:39
@ -6737,16 +6725,12 @@ msgid "OpenID Connect Provider"
msgstr "" msgstr ""
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14
#, fuzzy
#| msgid "Applications"
msgid "Application" msgid "Application"
msgstr "Anwendungen" msgstr "Anwendung"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22
#, fuzzy
#| msgid "Authorized SSH Keys"
msgid "Authorize App" msgid "Authorize App"
msgstr "Autorisierte SSH-Schlüssel" msgstr "App autorisieren"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37
#, python-format #, python-format
@ -6754,17 +6738,18 @@ msgid ""
"<strong>%(app)s</strong> wants to access your account <strong> %(username)s</" "<strong>%(app)s</strong> wants to access your account <strong> %(username)s</"
"strong>" "strong>"
msgstr "" msgstr ""
"<strong> %(app)s</strong> möchte auf Ihr Konto zugreifen <strong> "
"%(username)s</strong>"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52
#, fuzzy, python-format #, python-format
#| msgid "Authorized SSH Keys"
msgid "Authorize %(app)s" msgid "Authorize %(app)s"
msgstr "Autorisierte SSH-Schlüssel" msgstr "%(app)s autorisieren"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59
#, python-format #, python-format
msgid "Authorizing will redirect to %(url)s" msgid "Authorizing will redirect to %(url)s"
msgstr "" msgstr "Die Autorisierung führt zu einer Weiterleitung zu %(url)s"
#: plinth/modules/openvpn/__init__.py:20 #: plinth/modules/openvpn/__init__.py:20
#, python-brace-format #, python-brace-format
@ -7101,8 +7086,8 @@ msgstr "Neustart"
msgid "Shutdown" msgid "Shutdown"
msgstr "Herunterfahren" msgstr "Herunterfahren"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Neu starten" msgstr "Neu starten"
@ -8207,12 +8192,6 @@ msgstr ""
"automatisch bereinigt." "automatisch bereinigt."
#: plinth/modules/snapshot/__init__.py:25 #: plinth/modules/snapshot/__init__.py:25
#, fuzzy
#| msgid ""
#| "Snapshots currently work on btrfs file systems only and on the root "
#| "partition only. Snapshots are not a replacement for <a href=\"/plinth/sys/"
#| "backups\">backups</a> since they can only be stored on the same "
#| "partition. "
msgid "" msgid ""
"Snapshots currently work on btrfs file systems only and on the root " "Snapshots currently work on btrfs file systems only and on the root "
"partition only. Snapshots are not a replacement for <a href=\"/freedombox/" "partition only. Snapshots are not a replacement for <a href=\"/freedombox/"
@ -8221,8 +8200,8 @@ msgid ""
msgstr "" msgstr ""
"Schnappschüsse funktionieren derzeit ausschließlich auf Btrfs-Dateisystemen " "Schnappschüsse funktionieren derzeit ausschließlich auf Btrfs-Dateisystemen "
"und nur auf der Root-Partition. Schnappschüsse sind kein Ersatz für <a " "und nur auf der Root-Partition. Schnappschüsse sind kein Ersatz für <a "
"href=\"/plinth/sys/backups\">Datensicherungen</a>, da sie nur auf derselben " "href=\"/freedombox/sys/backups\">Datensicherungen</a>, da sie nur auf "
"Partition gespeichert werden können. " "derselben Partition gespeichert werden können. "
#: plinth/modules/snapshot/__init__.py:50 #: plinth/modules/snapshot/__init__.py:50
msgid "Storage Snapshots" msgid "Storage Snapshots"
@ -9955,7 +9934,7 @@ msgstr "Passwort speichern"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Benutzer anlegen" msgstr "Benutzer anlegen"
@ -10006,7 +9985,7 @@ msgid "Skip this step"
msgstr "Überspringen Sie diesen Schritt" msgstr "Überspringen Sie diesen Schritt"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Benutzer" msgstr "Benutzer"
@ -10015,16 +9994,114 @@ msgstr "Benutzer"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Benutzer %(username)s bearbeiten" msgstr "Benutzer %(username)s bearbeiten"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Diese App unterstützt keine Diagnose"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Anmelden" msgstr "Anmelden"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Übernehmen der Änderungen"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Kennwort hinzufügen"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domain"
#: 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 "Zuletzt gescannt: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Abbrechen"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Benutzer <em>%(username)s</em> bearbeiten" msgstr "Benutzer <em>%(username)s</em> bearbeiten"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10034,17 +10111,17 @@ msgstr ""
"href='%(change_password_url)s'>Passwortänderungsformular</a>, um das " "href='%(change_password_url)s'>Passwortänderungsformular</a>, um das "
"Passwort zu ändern." "Passwort zu ändern."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Änderungen speichern" msgstr "Änderungen speichern"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Benutzer <em>%(username)s</em> und alle Dateien des Benutzers löschen?" msgstr "Benutzer <em>%(username)s</em> und alle Dateien des Benutzers löschen?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -10053,45 +10130,57 @@ msgstr ""
"Verzeichnis des Benutzers entfernt. Wenn Sie diese Dateien behalten möchten, " "Verzeichnis des Benutzers entfernt. Wenn Sie diese Dateien behalten möchten, "
"deaktivieren Sie stattdessen das Benutzerkonto." "deaktivieren Sie stattdessen das Benutzerkonto."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Benutzer und Dateien löschen" msgstr "Benutzer und Dateien löschen"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Abbrechen"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Erfolgreich abgemeldet." msgstr "Erfolgreich abgemeldet."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Benutzer %(username)s angelegt." msgstr "Benutzer %(username)s angelegt."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Benutzer %(username)s geändert." msgstr "Benutzer %(username)s geändert."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Benutzer bearbeiten" msgstr "Benutzer bearbeiten"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Benutzer %(username)s gelöscht." msgstr "Benutzer %(username)s gelöscht."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Passwort ändern" msgstr "Passwort ändern"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Passwort erfolgreich geändert." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Benutzer bearbeiten"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard ist ein schneller, moderner, sicherer VPN-Tunnel." msgstr "WireGuard ist ein schneller, moderner, sicherer VPN-Tunnel."
@ -10123,14 +10212,12 @@ msgid "Invalid key."
msgstr "Ungültiger Schlüssel." msgstr "Ungültiger Schlüssel."
#: plinth/modules/wireguard/forms.py:63 #: plinth/modules/wireguard/forms.py:63
#, fuzzy
#| msgid "Enter a valid username."
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Einen gültigen Benutzernamen eingeben." msgstr "Eine gültige IPv4-Adresse eingeben."
#: plinth/modules/wireguard/forms.py:65 #: plinth/modules/wireguard/forms.py:65
msgid "Enter a valid network prefix or net mask." msgid "Enter a valid network prefix or net mask."
msgstr "" msgstr "Geben Sie ein gültiges Netzwerkpräfix oder eine gültige Netzmaske ein."
#: plinth/modules/wireguard/forms.py:71 #: plinth/modules/wireguard/forms.py:71
#: plinth/modules/wireguard/templates/wireguard.html:29 #: plinth/modules/wireguard/templates/wireguard.html:29
@ -10177,11 +10264,6 @@ msgid "Client IP address provided by server"
msgstr "Vom Server bereitgestellte Client-IP-Adresse" msgstr "Vom Server bereitgestellte Client-IP-Adresse"
#: plinth/modules/wireguard/forms.py:94 #: plinth/modules/wireguard/forms.py:94
#, fuzzy
#| msgid ""
#| "IP address assigned to this machine on the VPN after connecting to the "
#| "endpoint. This value is usually provided by the server operator. Example: "
#| "192.168.0.10."
msgid "" msgid ""
"IP address assigned to this machine on the VPN after connecting to the " "IP address assigned to this machine on the VPN after connecting to the "
"endpoint. This value is usually provided by the server operator. Example: " "endpoint. This value is usually provided by the server operator. Example: "
@ -10191,7 +10273,9 @@ msgid ""
msgstr "" msgstr ""
"IP-Adresse, die diesem Computer auf dem VPN zugewiesen ist, nachdem eine " "IP-Adresse, die diesem Computer auf dem VPN zugewiesen ist, nachdem eine "
"Verbindung mit dem Endpunkt hergestellt wurde. Dieser Wert wird in der Regel " "Verbindung mit dem Endpunkt hergestellt wurde. Dieser Wert wird in der Regel "
"vom Serverbetreiber bereitgestellt. Beispiel: 192.168.0.10." "vom Serverbetreiber bereitgestellt. Beispiel: 192.168.0.10. Sie können auch "
"das Netzwerk angeben. Dadurch können Sie auf Rechner im Netzwerk zugreifen. "
"Beispiele: 10.68.12.43/24 oder 10.68.12.43/255.255.255.0."
#: plinth/modules/wireguard/forms.py:102 #: plinth/modules/wireguard/forms.py:102
msgid "Private key of this machine" msgid "Private key of this machine"
@ -10245,10 +10329,9 @@ msgid "As a Server"
msgstr "Als Server" msgstr "Als Server"
#: plinth/modules/wireguard/templates/wireguard.html:17 #: plinth/modules/wireguard/templates/wireguard.html:17
#, fuzzy, python-format #, python-format
#| msgid "Endpoints for this %(box_name)s:"
msgid "Information for this %(box_name)s:" msgid "Information for this %(box_name)s:"
msgstr "Endpunkte für diese %(box_name)s:" msgstr "Informationen zu dieser %(box_name)s:"
#: plinth/modules/wireguard/templates/wireguard.html:25 #: plinth/modules/wireguard/templates/wireguard.html:25
msgid "Property" msgid "Property"
@ -10265,10 +10348,9 @@ msgid "Endpoint(s)"
msgstr "Endpunkt" msgstr "Endpunkt"
#: plinth/modules/wireguard/templates/wireguard.html:41 #: plinth/modules/wireguard/templates/wireguard.html:41
#, fuzzy, python-format #, python-format
#| msgid "To %(box_name)s Ports"
msgid "%(box_name)s VPN IP for services" msgid "%(box_name)s VPN IP for services"
msgstr "Zu %(box_name)s Ports" msgstr "VPN-IP von %(box_name)s für Dienste"
#: plinth/modules/wireguard/templates/wireguard.html:50 #: plinth/modules/wireguard/templates/wireguard.html:50
msgid "Peers" msgid "Peers"
@ -10304,10 +10386,8 @@ msgid "Add Allowed Client"
msgstr "Zulässige Clients hinzufügen" msgstr "Zulässige Clients hinzufügen"
#: plinth/modules/wireguard/templates/wireguard.html:97 #: plinth/modules/wireguard/templates/wireguard.html:97
#, fuzzy
#| msgid "WireGuard server started successfully."
msgid "WireGuard server not started yet." msgid "WireGuard server not started yet."
msgstr "Der WireGuard-Server wurde erfolgreich gestartet." msgstr "WireGuard-Server wurde noch nicht gestartet."
#: plinth/modules/wireguard/templates/wireguard.html:101 #: plinth/modules/wireguard/templates/wireguard.html:101
#: plinth/modules/wireguard/templates/wireguard.html:103 #: plinth/modules/wireguard/templates/wireguard.html:103
@ -10398,7 +10478,7 @@ msgstr "Öffentlicher Schlüssel des Servers:"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:46 #: plinth/modules/wireguard/templates/wireguard_show_client.html:46
msgid "Server VPN IP address for services:" msgid "Server VPN IP address for services:"
msgstr "" msgstr "VPN-IP-Adresse des Servers für Dienste:"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:58 #: plinth/modules/wireguard/templates/wireguard_show_client.html:58
#: plinth/modules/wireguard/templates/wireguard_show_server.html:64 #: plinth/modules/wireguard/templates/wireguard_show_server.html:64
@ -10442,6 +10522,7 @@ msgstr "IP-Adresse dieses Rechners:"
#: plinth/modules/wireguard/templates/wireguard_show_server.html:46 #: plinth/modules/wireguard/templates/wireguard_show_server.html:46
msgid "All outgoing traffic is sent using this connection:" msgid "All outgoing traffic is sent using this connection:"
msgstr "" msgstr ""
"Der gesamte ausgehende Datenverkehr wird über diese Verbindung gesendet:"
#: plinth/modules/wireguard/views.py:54 #: plinth/modules/wireguard/views.py:54
msgid "Added new client." msgid "Added new client."
@ -10708,20 +10789,20 @@ msgstr "Zeitüberschreitung beim Warten auf den Paket-Manager"
#: plinth/settings.py:181 #: plinth/settings.py:181
msgid "Uniquely identify your user account with username" msgid "Uniquely identify your user account with username"
msgstr "" msgstr ""
"Identifizieren Sie Ihr Benutzerkonto eindeutig anhand des Benutzernamens"
#: plinth/settings.py:183 #: plinth/settings.py:183
#, fuzzy
#| msgid "requesting address"
msgid "View email address" msgid "View email address"
msgstr "Adresse anfordern" msgstr "E-Mail-Adresse anzeigen"
#: plinth/settings.py:185 #: plinth/settings.py:185
msgid "View basic profile information (such as name and email)" msgid "View basic profile information (such as name and email)"
msgstr "" msgstr ""
"Grundlegende Profilinformationen anzeigen (z. B. Name und E-Mail-Adresse)"
#: plinth/settings.py:187 #: plinth/settings.py:187
msgid "View permissions that account has" msgid "View permissions that account has"
msgstr "" msgstr "Die Berechtigungen dieses Kontos anzeigen"
#: plinth/setup.py:44 #: plinth/setup.py:44
msgid "Installing app" msgid "Installing app"
@ -10907,22 +10988,28 @@ msgid " System"
msgstr " System" msgstr " System"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Aliase verwalten"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Passwort ändern" msgstr "Passwort ändern"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Herunterfahren" msgstr "Herunterfahren"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Abmelden" msgstr "Abmelden"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Sprache wählen" msgstr "Sprache wählen"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Anmelden" msgstr "Anmelden"
@ -11129,11 +11216,11 @@ msgstr "Alle Schlagwörter löschen"
#: plinth/templates/theme-menu.html:9 #: plinth/templates/theme-menu.html:9
msgid "Toggle theme (auto)" msgid "Toggle theme (auto)"
msgstr "" msgstr "Thema umschalten (automatisch)"
#: plinth/templates/theme-menu.html:17 #: plinth/templates/theme-menu.html:17
msgid "Toggle theme" msgid "Toggle theme"
msgstr "" msgstr "Thema umschalten"
#: plinth/templates/theme-menu.html:25 #: plinth/templates/theme-menu.html:25
msgid "Light" msgid "Light"
@ -11177,15 +11264,15 @@ msgstr ""
"Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann " "Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann "
"wieder frisch installiert werden." "wieder frisch installiert werden."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Hier" msgstr "Hier"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Einstellung unverändert" msgstr "Einstellung unverändert"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "vor der Deinstallation von {app_id}" msgstr "vor der Deinstallation von {app_id}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,7 +27,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "" msgstr ""
@ -318,6 +318,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1950,6 +1951,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3033,8 +3035,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3172,6 +3174,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3576,7 +3579,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5290,12 +5293,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6162,8 +6171,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8534,7 +8543,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8576,7 +8585,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8585,77 +8594,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9357,22 +9460,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9605,15 +9712,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-02-22 13:17+0000\n" "PO-Revision-Date: 2026-02-22 13:17+0000\n"
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n" "Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Το πρόγραμμα {container_name} είναι ενεργοποιημένο" msgstr "Το πρόγραμμα {container_name} είναι ενεργοποιημένο"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "Freedombox" msgstr "Freedombox"
@ -354,6 +354,7 @@ msgstr "Δημιουργία Αποθετηρίου"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Όνομα" msgstr "Όνομα"
@ -2282,6 +2283,7 @@ msgstr "Διεύθυνση IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Ενέργειες" msgstr "Ενέργειες"
@ -3520,8 +3522,8 @@ msgstr "Υποβάλετε σχόλια"
msgid "Contribute" msgid "Contribute"
msgstr "Συνεισφέρετε" msgstr "Συνεισφέρετε"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Σχετικά με" msgstr "Σχετικά με"
@ -3702,6 +3704,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Μάθε περισσότερα..." msgstr "Μάθε περισσότερα..."
@ -4168,7 +4171,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Πληροφορίες άδειας χρήσης JavaScript" msgstr "Πληροφορίες άδειας χρήσης JavaScript"
@ -6177,12 +6180,18 @@ msgstr "Επεξεργασία σύνδεσης"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -7214,8 +7223,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ" msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Κάνετε επανεκκίνηση" msgstr "Κάνετε επανεκκίνηση"
@ -10116,7 +10125,7 @@ msgstr "Αποθήκευση κωδικού πρόσβασης"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Δημιουργία χρήστη" msgstr "Δημιουργία χρήστη"
@ -10166,7 +10175,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Χρήστες" msgstr "Χρήστες"
@ -10175,17 +10184,115 @@ msgstr "Χρήστες"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Επεξεργασία χρήστη %(username)s" msgstr "Επεξεργασία χρήστη %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Αυτή η εφαρμογή δεν υποστηρίζει διαγνωστικά τεστ"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Σύνδεση" msgstr "Σύνδεση"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Ενημέρωση ρυθμίσεων"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
#, fuzzy
#| msgid "Show password"
msgid "Add passkey"
msgstr "Εμφάνιση κωδικού"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Όνομα διαδικτύου"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create Connection"
msgid "Last Used"
msgstr "Δημιουργία σύνδεσης"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Διαγραφή χρήστη"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Άκυρο"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Edit user %(username)s" #| msgid "Edit user %(username)s"
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Επεξεργασία χρήστη %(username)s" msgstr "Επεξεργασία χρήστη %(username)s"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10194,67 +10301,79 @@ msgstr ""
"Χρησιμοποιήστε τη <a href='%(change_password_url)s'> φόρμα αλλαγής κωδικού " "Χρησιμοποιήστε τη <a href='%(change_password_url)s'> φόρμα αλλαγής κωδικού "
"πρόσβασης </a> για να αλλάξετε τον κωδικό πρόσβασης." "πρόσβασης </a> για να αλλάξετε τον κωδικό πρόσβασης."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Αποθήκευση αλλαγών" msgstr "Αποθήκευση αλλαγών"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Να διαγραφεί οριστικά ο χρήστης <strong>%(username)s </strong>;" msgstr "Να διαγραφεί οριστικά ο χρήστης <strong>%(username)s </strong>;"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete User" #| msgid "Delete User"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Διαγραφή χρήστη" msgstr "Διαγραφή χρήστη"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Άκυρο"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Password changed successfully." #| msgid "Password changed successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία." msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Ο χρήστης %(username)s δημιουργήθηκε." msgstr "Ο χρήστης %(username)s δημιουργήθηκε."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "O χρήστης %(username)s ενημερώθηκε." msgstr "O χρήστης %(username)s ενημερώθηκε."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Επεξεργασία χρήστη" msgstr "Επεξεργασία χρήστη"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Ο χρήστης %(username)s δημιουργήθηκε." msgstr "Ο χρήστης %(username)s δημιουργήθηκε."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Αλλαγή κωδικού πρόσβασης" msgstr "Αλλαγή κωδικού πρόσβασης"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία." msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Υπάρχει ήδη ένα μέρισμα με αυτό το όνομα."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Επεξεργασία χρήστη"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -11095,22 +11214,28 @@ msgid " System"
msgstr " Σύστημα" msgstr " Σύστημα"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Repositories"
msgid "Manage passkeys"
msgstr "Διαχείριση αποθετηρίων"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Αλλαγή κωδικού πρόσβασης" msgstr "Αλλαγή κωδικού πρόσβασης"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ" msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Αποσύνδεση" msgstr "Αποσύνδεση"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Επιλογή γλώσσας" msgstr "Επιλογή γλώσσας"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Σύνδεση" msgstr "Σύνδεση"
@ -11387,15 +11512,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Οι ρυθμίσεις δεν άλλαξαν" msgstr "Οι ρυθμίσεις δεν άλλαξαν"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2024-11-01 17:00+0000\n" "PO-Revision-Date: 2024-11-01 17:00+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "La configuración fija {etc_path} está configurada correctamente"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{service_name} se está ejecutando" msgstr "{service_name} se está ejecutando"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -357,6 +357,7 @@ msgstr "Repositorio"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nombre" msgstr "Nombre"
@ -2229,6 +2230,7 @@ msgstr "Dirección IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Acciones" msgstr "Acciones"
@ -3456,8 +3458,8 @@ msgstr "Enviar Comentarios"
msgid "Contribute" msgid "Contribute"
msgstr "Contribuír" msgstr "Contribuír"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Acerca de" msgstr "Acerca de"
@ -3638,6 +3640,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Aprenda más..." msgstr "Aprenda más..."
@ -4104,7 +4107,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Información de licencia de JavaScript" msgstr "Información de licencia de JavaScript"
@ -6144,6 +6147,9 @@ msgstr "Editar conexión"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "Error" #| msgid "Error"
@ -6151,7 +6157,10 @@ msgid "Error:"
msgstr "Error" msgstr "Error"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
@ -7156,8 +7165,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Apagar" msgstr "Apagar"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
@ -10018,7 +10027,7 @@ msgstr "Guardar clave de acceso"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Crear usuaria/o" msgstr "Crear usuaria/o"
@ -10075,7 +10084,7 @@ msgid "Skip this step"
msgstr "Saltar este paso" msgstr "Saltar este paso"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Usuarias/os" msgstr "Usuarias/os"
@ -10084,16 +10093,114 @@ msgstr "Usuarias/os"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Editar el usuario %(username)s" msgstr "Editar el usuario %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Esta aplicación no soporta diagnósticos"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Inicio de sesión" msgstr "Inicio de sesión"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Actualizar configuración"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Añadir contraseña"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Dominio"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Last Connected Time"
msgid "Last Used"
msgstr "Última conexión"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Eliminar usuaria/o"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Cancelar"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Editar el usuario <em>%(username)s</em>" msgstr "Editar el usuario <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10102,65 +10209,77 @@ msgstr ""
"Use el <a href=\"%(change_password_url)s\">formulario para cambio de clave " "Use el <a href=\"%(change_password_url)s\">formulario para cambio de clave "
"de acceso</a> para cambiarla." "de acceso</a> para cambiarla."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Guardar cambios" msgstr "Guardar cambios"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "¿Eliminar usuaria/o <strong>%(username)s</strong> definitivamente?" msgstr "¿Eliminar usuaria/o <strong>%(username)s</strong> definitivamente?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Eliminar archivos" msgstr "Eliminar archivos"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Cancelar"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Desconectado con éxito." msgstr "Desconectado con éxito."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Se ha creado el o la usuaria %(username)s." msgstr "Se ha creado el o la usuaria %(username)s."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "El o la usuaria %(username)s se ha actualizado." msgstr "El o la usuaria %(username)s se ha actualizado."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Editar usuario" msgstr "Editar usuario"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Se ha creado el o la usuaria %(username)s." msgstr "Se ha creado el o la usuaria %(username)s."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Cambiar clave de acceso" msgstr "Cambiar clave de acceso"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Clave de acceso cambiada con éxito." msgstr "Clave de acceso cambiada con éxito."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Ya existe una compartición con este nombre."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Editar usuario"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WirGuard es un túnel VPN rápido, moderno y seguro." msgstr "WirGuard es un túnel VPN rápido, moderno y seguro."
@ -10986,22 +11105,28 @@ msgid " System"
msgstr " Sistema" msgstr " Sistema"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Administrar Alias"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Cambiar clave de acceso" msgstr "Cambiar clave de acceso"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Apagar" msgstr "Apagar"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Cerrar sesión" msgstr "Cerrar sesión"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Seleccionar idioma" msgstr "Seleccionar idioma"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
@ -11263,15 +11388,15 @@ msgstr ""
"Todos los datos de la aplicación y la configuración se perderán " "Todos los datos de la aplicación y la configuración se perderán "
"permanentemente. La aplicación se puede instalar de nuevo." "permanentemente. La aplicación se puede instalar de nuevo."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Configuración sin cambio" msgstr "Configuración sin cambio"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "antes de desinstalar {app_id}" msgstr "antes de desinstalar {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-01-09 20: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" "Last-Translator: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Staatiline seadistus asukohas „{etc_path}“ on korrektne"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{container_name} konteiner töötab" msgstr "{container_name} konteiner töötab"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -335,6 +335,7 @@ msgstr "Varukoopiate hoidla"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nimi" msgstr "Nimi"
@ -1991,6 +1992,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Tegevused" msgstr "Tegevused"
@ -3074,8 +3076,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "Tee kaastööd" msgstr "Tee kaastööd"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Rakenduse teave" msgstr "Rakenduse teave"
@ -3213,6 +3215,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3617,7 +3620,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5331,12 +5334,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6205,8 +6214,8 @@ msgstr "Käivita arvuti uuesti"
msgid "Shutdown" msgid "Shutdown"
msgstr "Lülita välja" msgstr "Lülita välja"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Käivita uuesti" msgstr "Käivita uuesti"
@ -8587,7 +8596,7 @@ msgstr "Salvesta salasõna"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Lisa kasutaja" msgstr "Lisa kasutaja"
@ -8632,7 +8641,7 @@ msgid "Skip this step"
msgstr "Jäta see samm vahele" msgstr "Jäta see samm vahele"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Kasutajad" msgstr "Kasutajad"
@ -8641,77 +8650,183 @@ msgstr "Kasutajad"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Muuda kasutajat %(username)s" msgstr "Muuda kasutajat %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Logi sisse" msgstr "Logi sisse"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Uuenda seadistust"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Lisa salasõna"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domeen"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create User"
msgid "Last Used"
msgstr "Lisa kasutaja"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Kustuta kasutaja"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Muuda kasutajat <em>%(username)s</em>" msgstr "Muuda kasutajat <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Väljalogimine õnnestus." msgstr "Väljalogimine õnnestus."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Muuda salasõna" msgstr "Muuda salasõna"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Salasõna muutmine õnnestus." msgstr "Salasõna muutmine õnnestus."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A library with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Sellise nimega raamatukogu on juba olemas."
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard on kiire, moodne ja turvaline VPN-tunnel." msgstr "WireGuard on kiire, moodne ja turvaline VPN-tunnel."
@ -9421,22 +9536,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Passwords"
msgid "Manage passkeys"
msgstr "Halda salasõnu"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9672,15 +9793,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "سرویس {service_name} در حال اجراست" msgstr "سرویس {service_name} در حال اجراست"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
#, fuzzy #, fuzzy
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -343,6 +343,7 @@ msgstr "مخزن"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "نام" msgstr "نام"
@ -2220,6 +2221,7 @@ msgstr "نشانی آی‌پی"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "کنش‌ها" msgstr "کنش‌ها"
@ -3412,8 +3414,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "درباره" msgstr "درباره"
@ -3572,6 +3574,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
#, fuzzy #, fuzzy
msgid "Learn more..." msgid "Learn more..."
@ -4009,7 +4012,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5918,12 +5921,18 @@ msgstr "ویرایش اتصال"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "بستن" msgstr "بستن"
@ -6875,8 +6884,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -9446,7 +9455,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9495,7 +9504,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9504,84 +9513,192 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "برای این واحد آزمون عیب‌یابی وجود ندارد"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "به‌روزرسانی وضعیت"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
#, fuzzy
#| msgid "Show password"
msgid "Add passkey"
msgstr "رمز را نشان بده"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "دامنه"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create Connection"
msgid "Last Used"
msgstr "ساختن اتصال"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
msgid "Delete passkey"
msgstr "پاک‌کردن"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "انصراف"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete Wiki or Blog <em>%(name)s</em>" #| msgid "Delete Wiki or Blog <em>%(name)s</em>"
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "پاک‌کردن ویکی یا وبلاگ <em>%(name)s</em>" msgstr "پاک‌کردن ویکی یا وبلاگ <em>%(name)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete Wiki or Blog <em>%(name)s</em>" #| msgid "Delete Wiki or Blog <em>%(name)s</em>"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "پاک‌کردن ویکی یا وبلاگ <em>%(name)s</em>" msgstr "پاک‌کردن ویکی یا وبلاگ <em>%(name)s</em>"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete" #| msgid "Delete"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "پاک‌کردن" msgstr "پاک‌کردن"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "انصراف"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Partition expanded successfully." #| msgid "Partition expanded successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "پارتیشن با موفقیت بزرگ شد." msgstr "پارتیشن با موفقیت بزرگ شد."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "{name} deleted." #| msgid "{name} deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "{name} پاک شد." msgstr "{name} پاک شد."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Shared"
msgid "Edit Passkey"
msgstr "مشترک"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10357,24 +10474,30 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Create Connection"
msgid "Manage passkeys"
msgstr "ساختن اتصال"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
#, fuzzy #, fuzzy
#| msgid "Language" #| msgid "Language"
msgid "Select language" msgid "Select language"
msgstr "زبان" msgstr "زبان"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10622,15 +10745,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Plinth 0.6\n" "Project-Id-Version: Plinth 0.6\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2016-01-31 22:24+0530\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n" "Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Plinth Developers <freedombox-" "Language-Team: Plinth Developers <freedombox-"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "SERVICE DISCOVERY SERVER IS RUNNING" msgstr "SERVICE DISCOVERY SERVER IS RUNNING"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FREEDOMBOX" msgstr "FREEDOMBOX"
@ -358,6 +358,7 @@ msgstr "CREATE USER"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "NAME" msgstr "NAME"
@ -2311,6 +2312,7 @@ msgstr "IP ADDRESS"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "ACTIONS" msgstr "ACTIONS"
@ -3568,8 +3570,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "ABOUT" msgstr "ABOUT"
@ -3729,6 +3731,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
#, fuzzy #, fuzzy
#| msgid "Learn more &raquo;" #| msgid "Learn more &raquo;"
@ -4161,7 +4164,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -6108,12 +6111,18 @@ msgstr "EDIT CONNECTION"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -7159,8 +7168,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "SHUT DOWN NOW" msgstr "SHUT DOWN NOW"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
#, fuzzy #, fuzzy
#| msgid "Restart Now" #| msgid "Restart Now"
msgid "Restart" msgid "Restart"
@ -9929,7 +9938,7 @@ msgstr "SAVE PASSWORD"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "CREATE USER" msgstr "CREATE USER"
@ -9978,7 +9987,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "USERS" msgstr "USERS"
@ -9987,16 +9996,114 @@ msgstr "USERS"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "EDIT USER %(username)s" msgstr "EDIT USER %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "THIS MODULE DOES NOT SUPPORT DIAGNOSTICS"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "LOGIN" msgstr "LOGIN"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "UPDATE SETUP"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
#, fuzzy
#| msgid "Show password"
msgid "Add passkey"
msgstr "SHOW PASSWORD"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "DOMAIN"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create Connection"
msgid "Last Used"
msgstr "CREATE CONNECTION"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "DELETE USER"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "CANCEL"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "EDIT USER <em>%(username)s</em>" msgstr "EDIT USER <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10005,67 +10112,79 @@ msgstr ""
"USE THE <a href='%(change_password_url)s'>CHANGE PASSWORD FORM </a> TO " "USE THE <a href='%(change_password_url)s'>CHANGE PASSWORD FORM </a> TO "
"CHANGE THE PASSWORD." "CHANGE THE PASSWORD."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "SAVE CHANGES" msgstr "SAVE CHANGES"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "DELETE USER <strong>%(username)s</stong> PERMANENTLY?" msgstr "DELETE USER <strong>%(username)s</stong> PERMANENTLY?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete User" #| msgid "Delete User"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "DELETE USER" msgstr "DELETE USER"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "CANCEL"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Password changed successfully." #| msgid "Password changed successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "PASSWORD CHANGED SUCCESSFULLY." msgstr "PASSWORD CHANGED SUCCESSFULLY."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "USER %(username)s CREATED." msgstr "USER %(username)s CREATED."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "USER %(username)s UPDATED." msgstr "USER %(username)s UPDATED."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "EDIT USER" msgstr "EDIT USER"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "USER %(username)s CREATED." msgstr "USER %(username)s CREATED."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "CHANGE PASSWORD" msgstr "CHANGE PASSWORD"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "PASSWORD CHANGED SUCCESSFULLY." msgstr "PASSWORD CHANGED SUCCESSFULLY."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "This service already exists"
msgid "Passkey with that identifier already exists."
msgstr "THIS SERVICE ALREADY EXISTS"
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "EDIT USER"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10893,26 +11012,32 @@ msgid " System"
msgstr "SYSTEM" msgstr "SYSTEM"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Create User"
msgid "Manage passkeys"
msgstr "CREATE USER"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "CHANGE PASSWORD" msgstr "CHANGE PASSWORD"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
#, fuzzy #, fuzzy
#| msgid "Shut Down Now" #| msgid "Shut Down Now"
msgid "Shut down" msgid "Shut down"
msgstr "SHUT DOWN NOW" msgstr "SHUT DOWN NOW"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "LOG OUT" msgstr "LOG OUT"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
#, fuzzy #, fuzzy
#| msgid "Language" #| msgid "Language"
msgid "Select language" msgid "Select language"
msgstr "LANGUAGE" msgstr "LANGUAGE"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "LOG IN" msgstr "LOG IN"
@ -11178,15 +11303,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "SETTING UNCHANGED" msgstr "SETTING UNCHANGED"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-02-18 15:09+0000\n" "PO-Revision-Date: 2026-03-29 11:09+0000\n"
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n" "Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/" "Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
"freedombox/fr/>\n" "freedombox/fr/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.16.1-dev\n" "X-Generator: Weblate 5.17-dev\n"
#: plinth/config.py:103 #: plinth/config.py:103
#, python-brace-format #, python-brace-format
@ -29,7 +29,7 @@ msgstr "La configuration statique {etc_path} est correctement configurée"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Le conteneur {container_name} est actif" msgstr "Le conteneur {container_name} est actif"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -169,7 +169,7 @@ msgstr "Interface web de la {box_name} (Plinth)"
#: plinth/modules/apache/__init__.py:129 #: plinth/modules/apache/__init__.py:129
msgid "Web app protected by FreedomBox" msgid "Web app protected by FreedomBox"
msgstr "" msgstr "Appli Web protégée par la FreedomBox"
#: plinth/modules/apache/components.py:234 #: plinth/modules/apache/components.py:234
#, python-brace-format #, python-brace-format
@ -350,6 +350,7 @@ msgstr "Dépôt"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@ -395,12 +396,12 @@ msgid ""
"\"Key in Repository\" means that a password-protected key is stored with the " "\"Key in Repository\" means that a password-protected key is stored with the "
"backup." "backup."
msgstr "" msgstr ""
"« Clef dans le dépôt » signifie que la clef de chiffrement de la sauvegarde, " "« Clé dans le dépôt » signifie que la clé de chiffrement de la sauvegarde, "
"protégée par un mot de passe, sera stockée à côté de la sauvegarde elle-même." "protégée par un mot de passe, sera stockée à côté de la sauvegarde elle-même."
#: plinth/modules/backups/forms.py:184 #: plinth/modules/backups/forms.py:184
msgid "Key in Repository" msgid "Key in Repository"
msgstr "Clef dans le dépôt" msgstr "Clé dans le dépôt"
#: plinth/modules/backups/forms.py:184 #: plinth/modules/backups/forms.py:184
#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:68 #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:68
@ -413,12 +414,8 @@ msgid "Passphrase"
msgstr "Phrase secrète" msgstr "Phrase secrète"
#: plinth/modules/backups/forms.py:187 #: plinth/modules/backups/forms.py:187
#, fuzzy
#| msgid "Passphrase; Only needed when using encryption."
msgid "Only needed when using encryption." msgid "Only needed when using encryption."
msgstr "" msgstr "Nécessaire uniquement dans le cas où le chiffrement est utilisé."
"Phrase secrète ; nécessaire uniquement dans le cas où le chiffrement est "
"utilisé."
#: plinth/modules/backups/forms.py:190 #: plinth/modules/backups/forms.py:190
msgid "Confirm Passphrase" msgid "Confirm Passphrase"
@ -457,44 +454,33 @@ msgstr ""
"chemin/vers/le/dépôt/</i>" "chemin/vers/le/dépôt/</i>"
#: plinth/modules/backups/forms.py:255 #: plinth/modules/backups/forms.py:255
#, fuzzy
#| msgid "Authentication Mode"
msgid "SSH Authentication Type" msgid "SSH Authentication Type"
msgstr "Mode Authentification" msgstr "Mode d’Auhentification SSH"
#: plinth/modules/backups/forms.py:256 #: plinth/modules/backups/forms.py:256
#, fuzzy
#| msgid "Authentication to remote server failed."
msgid "Choose how to authenticate to the remote SSH server." msgid "Choose how to authenticate to the remote SSH server."
msgstr "L’authentification sur le serveur distant a échoué." msgstr "Choisissez le mode d’authentification au serveur SSH distant."
#: plinth/modules/backups/forms.py:258 #: plinth/modules/backups/forms.py:258
#, fuzzy
#| msgid "needs authentication"
msgid "Key-based Authentication" msgid "Key-based Authentication"
msgstr "nécessite une authentification" msgstr "Authentification à base de clés"
#: plinth/modules/backups/forms.py:259 #: plinth/modules/backups/forms.py:259
#, fuzzy
#| msgid "Disable password authentication"
msgid "Password-based Authentication" msgid "Password-based Authentication"
msgstr "Désactiver l’authentification par mot de passe" msgstr "Authentification par mot de passe"
#: plinth/modules/backups/forms.py:261 #: plinth/modules/backups/forms.py:261
msgid "SSH server password" msgid "SSH server password"
msgstr "Mot de passe du serveur SSH" msgstr "Mot de passe du serveur SSH"
#: plinth/modules/backups/forms.py:262 #: plinth/modules/backups/forms.py:262
#, fuzzy
#| msgid "Disable password authentication"
msgid "Required for password-based authentication." msgid "Required for password-based authentication."
msgstr "Désactiver l’authentification par mot de passe" msgstr "Requis pour l’authentification par mot de passe."
#: plinth/modules/backups/forms.py:275 #: plinth/modules/backups/forms.py:275
#, fuzzy
#| msgid "Disable password authentication"
msgid "SSH password is needed for password-based authentication." msgid "SSH password is needed for password-based authentication."
msgstr "Désactiver l’authentification par mot de passe" msgstr ""
"Le mot de passe SSH est requis pour l’authentification par mot de passe."
#: plinth/modules/backups/forms.py:292 #: plinth/modules/backups/forms.py:292
msgid "Remote backup repository already exists." msgid "Remote backup repository already exists."
@ -641,6 +627,9 @@ msgid ""
"list on the remote machine for %(box_name)s to be able to connect to the " "list on the remote machine for %(box_name)s to be able to connect to the "
"remote machine:" "remote machine:"
msgstr "" msgstr ""
"La clé publique de client SSH qui suit doit être ajoutée à la liste des clés "
"autorisées sur la machine distante pour que la %(box_name)s puisse s’y "
"connecter :"
#: plinth/modules/backups/templates/backups_add_remote_repository.html:87 #: plinth/modules/backups/templates/backups_add_remote_repository.html:87
#, python-format #, python-format
@ -649,6 +638,10 @@ msgid ""
"successful, then the public key will be automatically added to the " "successful, then the public key will be automatically added to the "
"authorized keys list, so that future connections do not need the password." "authorized keys list, so that future connections do not need the password."
msgstr "" msgstr ""
"Le service %(box_name)s va maintenant tenter d’établir une connexion en "
"utilisant le mot de passe fourni. En cas de succès, la clé publique sera "
"automatiquement ajoutée à la liste des clés autorisées pour que les "
"connexions ultérieures puissent se faire sans redemander le mot de passe."
#: plinth/modules/backups/templates/backups_add_remote_repository.html:132 #: plinth/modules/backups/templates/backups_add_remote_repository.html:132
#: plinth/modules/backups/templates/backups_upload.html:29 #: plinth/modules/backups/templates/backups_upload.html:29
@ -830,10 +823,8 @@ msgid "Authentication to remote server failed."
msgstr "L’authentification sur le serveur distant a échoué." msgstr "L’authentification sur le serveur distant a échoué."
#: plinth/modules/backups/views.py:50 #: plinth/modules/backups/views.py:50
#, fuzzy
#| msgid "Error establishing connection to server: {}"
msgid "Error establishing connection to server: {} {} {}" msgid "Error establishing connection to server: {} {} {}"
msgstr "Erreur lors de la connexion au serveur : {}" msgstr "Erreur lors de la connexion au serveur : {} {} {}"
#: plinth/modules/backups/views.py:82 #: plinth/modules/backups/views.py:82
msgid "Backup schedule updated." msgid "Backup schedule updated."
@ -1487,14 +1478,7 @@ msgid "Webserver Home Page"
msgstr "Page d’accueil du serveur web" msgstr "Page d’accueil du serveur web"
#: plinth/modules/config/forms.py:37 #: plinth/modules/config/forms.py:37
#, fuzzy, python-brace-format #, python-brace-format
#| msgid ""
#| "Choose the default page that must be served when someone visits your "
#| "{box_name} on the web. A typical use case is to set your blog or wiki as "
#| "the home page when someone visits the domain name. Note that once the "
#| "home page is set to something other than {box_name} Service (Plinth), "
#| "your users must explicitly type /plinth or /freedombox to reach "
#| "{box_name} Service (Plinth)."
msgid "" msgid ""
"Choose the default page that must be served when someone visits your " "Choose the default page that must be served when someone visits your "
"{box_name} on the web. A typical use case is to set your blog or wiki as the " "{box_name} on the web. A typical use case is to set your blog or wiki as the "
@ -1507,8 +1491,8 @@ msgstr ""
"mettre votre blogue ou votre wiki en page d’accueil lorsqu’on se rend sur " "mettre votre blogue ou votre wiki en page d’accueil lorsqu’on se rend sur "
"votre nom de domaine. Veuillez noter qu’avec une page d’accueil autre que " "votre nom de domaine. Veuillez noter qu’avec une page d’accueil autre que "
"« Gestion de la {box_name} (Plinth) », vos utilisateurs devront " "« Gestion de la {box_name} (Plinth) », vos utilisateurs devront "
"explicitement ajouter le chemin /plinth ou /freedombox à l’adresse de la " "explicitement ajouter le chemin /freedombox pour accéder à l’interface "
"{box_name} pour accéder à la présente interface." "{box_name} (Plinth)."
#: plinth/modules/config/forms.py:48 #: plinth/modules/config/forms.py:48
msgid "Show advanced apps and features" msgid "Show advanced apps and features"
@ -2186,6 +2170,7 @@ msgstr "Adresse IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Actions" msgstr "Actions"
@ -2480,15 +2465,11 @@ msgstr ""
"automatiquement, pointant vers le premier compte administrateur." "automatiquement, pointant vers le premier compte administrateur."
#: plinth/modules/email/__init__.py:41 #: plinth/modules/email/__init__.py:41
#, fuzzy
#| msgid ""
#| "<a href=\"/plinth/apps/roundcube/\">Roundcube app</a> provides web "
#| "interface for users to access email."
msgid "" msgid ""
"<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web " "<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web "
"interface for users to access email." "interface for users to access email."
msgstr "" msgstr ""
"<a href=\"/plinth/apps/roundcube/\">L’appli Roundcube</a> propose une " "<a href=\"/freedombox/apps/roundcube/\">L’appli Roundcube</a> propose une "
"interface Web pour accéder à vos courriels." "interface Web pour accéder à vos courriels."
#: plinth/modules/email/__init__.py:43 #: plinth/modules/email/__init__.py:43
@ -3412,8 +3393,8 @@ msgstr "Partager vos impressions"
msgid "Contribute" msgid "Contribute"
msgstr "Participer" msgstr "Participer"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "À propos" msgstr "À propos"
@ -3597,6 +3578,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "En savoir plus…" msgstr "En savoir plus…"
@ -4087,7 +4069,7 @@ msgstr "Conférence Web"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Information de licence JavaScript" msgstr "Information de licence JavaScript"
@ -4809,7 +4791,7 @@ msgid ""
"instance of time." "instance of time."
msgstr "" msgstr ""
"Vous permet de modifier le nombre maximum de joueurs autorisés à se " "Vous permet de modifier le nombre maximum de joueurs autorisés à se "
"connecter à minetest à un instant donné." "connecter à minetest en même temps."
#: plinth/modules/minetest/forms.py:19 #: plinth/modules/minetest/forms.py:19
msgid "Enable creative mode" msgid "Enable creative mode"
@ -6122,12 +6104,18 @@ msgstr "Modifier la connexion"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Erreur :" msgstr "Erreur :"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
@ -6335,12 +6323,6 @@ msgstr ""
"%(box_name)s puisse fournir ses services." "%(box_name)s puisse fournir ses services."
#: plinth/modules/networks/templates/router_configuration_content.html:32 #: plinth/modules/networks/templates/router_configuration_content.html:32
#, fuzzy
#| msgid ""
#| "If you don't have control over your router, choose not to configure it. "
#| "To see options to overcome this limitation, choose 'I dont have a public "
#| "IP address' option in <a href=\"/plinth/sys/networks/internet-connection-"
#| "type/\">Internet connection type selection</a>."
msgid "" msgid ""
"If you don't have control over your router, choose not to configure it. To " "If you don't have control over your router, choose not to configure it. To "
"see options to overcome this limitation, choose 'I dont have a public IP " "see options to overcome this limitation, choose 'I dont have a public IP "
@ -6350,7 +6332,7 @@ msgstr ""
"Si vous n’avez pas le contrôle de votre routeur, choisissez l’option de ne " "Si vous n’avez pas le contrôle de votre routeur, choisissez l’option de ne "
"pas le configurer. Pour plus d’informations sur les manières de contourner " "pas le configurer. Pour plus d’informations sur les manières de contourner "
"cette limitation, choisissez l’option « Je n’ai d’adresse IP publique » dans " "cette limitation, choisissez l’option « Je n’ai d’adresse IP publique » dans "
"la sélection du <a href=\"/plinth/sys/networks/internet-connection-type/" "la sélection du <a href=\"/freedombox/sys/networks/internet-connection-type/"
"\">type de connexion à Internet</a>." "\">type de connexion à Internet</a>."
#: plinth/modules/networks/templates/router_configuration_content.html:39 #: plinth/modules/networks/templates/router_configuration_content.html:39
@ -6761,19 +6743,15 @@ msgstr ""
#: plinth/modules/oidc/__init__.py:56 #: plinth/modules/oidc/__init__.py:56
msgid "OpenID Connect Provider" msgid "OpenID Connect Provider"
msgstr "" msgstr "Fournisseur OpenID Connect"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14
#, fuzzy
#| msgid "Applications"
msgid "Application" msgid "Application"
msgstr "Applications" msgstr "Application"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22
#, fuzzy
#| msgid "Authorized SSH Keys"
msgid "Authorize App" msgid "Authorize App"
msgstr "Clés SSH autorisées" msgstr "Autoriser cette appli"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37
#, python-format #, python-format
@ -6781,17 +6759,18 @@ msgid ""
"<strong>%(app)s</strong> wants to access your account <strong> %(username)s</" "<strong>%(app)s</strong> wants to access your account <strong> %(username)s</"
"strong>" "strong>"
msgstr "" msgstr ""
"<strong>%(app)s</strong> veut accéder à votre compte <strong> %(username)s</"
"strong>"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52
#, fuzzy, python-format #, python-format
#| msgid "Authorized SSH Keys"
msgid "Authorize %(app)s" msgid "Authorize %(app)s"
msgstr "Clés SSH autorisées" msgstr "Autoriser %(app)s"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59
#, python-format #, python-format
msgid "Authorizing will redirect to %(url)s" msgid "Authorizing will redirect to %(url)s"
msgstr "" msgstr "L’autorisation entraînera une redirection vers %(url)s"
#: plinth/modules/openvpn/__init__.py:20 #: plinth/modules/openvpn/__init__.py:20
#, python-brace-format #, python-brace-format
@ -7130,8 +7109,8 @@ msgstr "Redémarrer"
msgid "Shutdown" msgid "Shutdown"
msgstr "Éteindre" msgstr "Éteindre"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Redémarrer" msgstr "Redémarrer"
@ -7937,7 +7916,7 @@ msgstr ""
#: plinth/modules/security/templates/security_report.html:45 #: plinth/modules/security/templates/security_report.html:45
msgid "App Name" msgid "App Name"
msgstr "Application" msgstr "Nom d’Appli"
#: plinth/modules/security/templates/security_report.html:46 #: plinth/modules/security/templates/security_report.html:46
msgid "Current Vulnerabilities" msgid "Current Vulnerabilities"
@ -8253,12 +8232,6 @@ msgstr ""
"paramétrage qui suit." "paramétrage qui suit."
#: plinth/modules/snapshot/__init__.py:25 #: plinth/modules/snapshot/__init__.py:25
#, fuzzy
#| msgid ""
#| "Snapshots currently work on btrfs file systems only and on the root "
#| "partition only. Snapshots are not a replacement for <a href=\"/plinth/sys/"
#| "backups\">backups</a> since they can only be stored on the same "
#| "partition. "
msgid "" msgid ""
"Snapshots currently work on btrfs file systems only and on the root " "Snapshots currently work on btrfs file systems only and on the root "
"partition only. Snapshots are not a replacement for <a href=\"/freedombox/" "partition only. Snapshots are not a replacement for <a href=\"/freedombox/"
@ -8266,9 +8239,10 @@ msgid ""
"partition. " "partition. "
msgstr "" msgstr ""
"Les instantanés ne fonctionnent actuellement que sur des systèmes de " "Les instantanés ne fonctionnent actuellement que sur des systèmes de "
"fichiers btrfs et sur la partition racine uniquement. Les instantanés ne " "fichiers btrfs et uniquement pour la partition racine. Les instantanés ne "
"peuvent pas remplacent pas les <a href=\"/plinth/sys/backups\">sauvegardes</" "peuvent pas remplacer une vraie <a href=\"/freedombox/sys/"
"a> car ils sont forcément conservés sur la même partition. " "backups\">sauvegarde</a> car ils sont forcément conservés sur la même "
"partition. "
#: plinth/modules/snapshot/__init__.py:50 #: plinth/modules/snapshot/__init__.py:50
msgid "Storage Snapshots" msgid "Storage Snapshots"
@ -9931,10 +9905,10 @@ msgid ""
"system without using a password. You may enter multiple keys, one on each " "system without using a password. You may enter multiple keys, one on each "
"line. Blank lines and lines starting with # will be ignored." "line. Blank lines and lines starting with # will be ignored."
msgstr "" msgstr ""
"L’ajout d’une clef publique SSH permettra à cet utilisateur d’ouvrir une " "L’ajout d’une clé publique SSH permettra à cet utilisateur d’ouvrir une "
"session sécurisée sans utiliser de mot de passe. Vous pouvez ajouter " "session sécurisée sans utiliser de mot de passe. Vous pouvez ajouter "
"plusieurs clefs, une sur chaque ligne. Les lignes vides et celles commençant " "plusieurs clés, une par ligne. Les lignes vides et celles commençant par # "
"par # sont ignorées." "sont ignorées."
#: plinth/modules/users/forms.py:273 #: plinth/modules/users/forms.py:273
msgid "Delete user" msgid "Delete user"
@ -9967,7 +9941,7 @@ msgstr "Échec de l’ajout de l’utilisateur au groupe."
#: plinth/modules/users/forms.py:369 #: plinth/modules/users/forms.py:369
msgid "Unable to set SSH keys." msgid "Unable to set SSH keys."
msgstr "Échec du paramétrage des clefs SSH." msgstr "Échec du paramétrage des clés SSH."
#: plinth/modules/users/forms.py:382 #: plinth/modules/users/forms.py:382
msgid "Failed to change user status." msgid "Failed to change user status."
@ -10011,7 +9985,7 @@ msgstr "Sauvegarder le mot de passe"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Créer un utilisateur" msgstr "Créer un utilisateur"
@ -10064,7 +10038,7 @@ msgid "Skip this step"
msgstr "Passer cette étape" msgstr "Passer cette étape"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Utilisateurs" msgstr "Utilisateurs"
@ -10073,16 +10047,114 @@ msgstr "Utilisateurs"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Paramètres du compte %(username)s" msgstr "Paramètres du compte %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Cette application n’est pas compatible avec les tests de diagnostic"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "S’identifier" 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 ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Appliquer les changements"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Ajouter un mot de passe"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domaine"
#: 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 "Dernière analyse : "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Supprimer l'utilisateur"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Annuler"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Modifier l’utilisateur <em>%(username)s</em>" msgstr "Modifier l’utilisateur <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10091,19 +10163,19 @@ msgstr ""
"Utiliser le <a href=\"%(change_password_url)s\">formulaire de changement de " "Utiliser le <a href=\"%(change_password_url)s\">formulaire de changement de "
"mot de passe</a> pour changer votre mot de passe." "mot de passe</a> pour changer votre mot de passe."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Appliquer les changements" msgstr "Appliquer les changements"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
"Supprimer l’utilisateur <em>%(username)s</em> et tous les fichiers de " "Supprimer l’utilisateur <em>%(username)s</em> et tous les fichiers de "
"l'utilisateur ?" "l'utilisateur ?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -10112,45 +10184,57 @@ msgstr ""
"répertoire personnel de l'utilisateur. Si vous voulez conserver ces " "répertoire personnel de l'utilisateur. Si vous voulez conserver ces "
"fichiers, désactivez plutôt le compte de l'utilisateur." "fichiers, désactivez plutôt le compte de l'utilisateur."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Supprimer l'utilisateur et les fichiers" msgstr "Supprimer l'utilisateur et les fichiers"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Annuler"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Déconnecté avec succès." msgstr "Déconnecté avec succès."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Utilisateur %(username)s créé." msgstr "Utilisateur %(username)s créé."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Utilisateur %(username)s mis à jour." msgstr "Utilisateur %(username)s mis à jour."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Modification de l’utilisateur" msgstr "Modification de l’utilisateur"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "L'utilisateur %(username)s supprimé." msgstr "L'utilisateur %(username)s supprimé."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Changer Mot de Passe" msgstr "Changer Mot de Passe"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Le mot de passe a été changé." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Modification de l’utilisateur"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard est un tunnel VPN rapide, moderne et sécurisé." msgstr "WireGuard est un tunnel VPN rapide, moderne et sécurisé."
@ -10161,9 +10245,9 @@ msgid ""
"It can be used to connect to a VPN provider which supports WireGuard, and to " "It can be used to connect to a VPN provider which supports WireGuard, and to "
"route all outgoing traffic from {box_name} through the VPN." "route all outgoing traffic from {box_name} through the VPN."
msgstr "" msgstr ""
"Il peut être utilisé pour se connecter à un fournisseur de réseau privé " "Vous pouvez l’utiliser avec un fournisseur de réseau privé virtuel VPN "
"virtuel VPN proposant un service WireGuard et router tout le trafic sortant " "proposant un service WireGuard pour router tout le trafic sortant de la "
"de la {box_name} à travers ce VPN." "{box_name} à travers ce VPN."
#: plinth/modules/wireguard/__init__.py:26 #: plinth/modules/wireguard/__init__.py:26
#, python-brace-format #, python-brace-format
@ -10172,7 +10256,7 @@ msgid ""
"travelling. While connected to a public Wi-Fi network, all traffic can be " "travelling. While connected to a public Wi-Fi network, all traffic can be "
"securely relayed through {box_name}." "securely relayed through {box_name}."
msgstr "" msgstr ""
"Une autre usage possible est de connecter un appareil mobile à votre " "Vous pouvez également l’utiliser pour connecter un appareil mobile à votre "
"{box_name} pendant un déplacement. Même si votre appareil est connecté à un " "{box_name} pendant un déplacement. Même si votre appareil est connecté à un "
"réseau Wi-Fi public, tout votre trafic sera alors relayé via votre " "réseau Wi-Fi public, tout votre trafic sera alors relayé via votre "
"{box_name} de manière sécurisée." "{box_name} de manière sécurisée."
@ -10182,14 +10266,12 @@ msgid "Invalid key."
msgstr "Clé invalide." msgstr "Clé invalide."
#: plinth/modules/wireguard/forms.py:63 #: plinth/modules/wireguard/forms.py:63
#, fuzzy
#| msgid "Enter a valid username."
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Entrez un nom d’utilisateur valide." msgstr "Veuillez saisir une adresse IPv4 valide."
#: plinth/modules/wireguard/forms.py:65 #: plinth/modules/wireguard/forms.py:65
msgid "Enter a valid network prefix or net mask." msgid "Enter a valid network prefix or net mask."
msgstr "" msgstr "Veuillez saisir un préfixe réseau ou un masque de sous-réseau valide."
#: plinth/modules/wireguard/forms.py:71 #: plinth/modules/wireguard/forms.py:71
#: plinth/modules/wireguard/templates/wireguard.html:29 #: plinth/modules/wireguard/templates/wireguard.html:29
@ -10236,11 +10318,6 @@ msgid "Client IP address provided by server"
msgstr "Adresse IP du client fournie par le serveur" msgstr "Adresse IP du client fournie par le serveur"
#: plinth/modules/wireguard/forms.py:94 #: plinth/modules/wireguard/forms.py:94
#, fuzzy
#| msgid ""
#| "IP address assigned to this machine on the VPN after connecting to the "
#| "endpoint. This value is usually provided by the server operator. Example: "
#| "192.168.0.10."
msgid "" msgid ""
"IP address assigned to this machine on the VPN after connecting to the " "IP address assigned to this machine on the VPN after connecting to the "
"endpoint. This value is usually provided by the server operator. Example: " "endpoint. This value is usually provided by the server operator. Example: "
@ -10250,7 +10327,9 @@ msgid ""
msgstr "" msgstr ""
"Adresse IP attribuée à cette machine sur le réseau privé virtuel VPN une " "Adresse IP attribuée à cette machine sur le réseau privé virtuel VPN une "
"fois connectée au serveur distant. Cette valeur est généralement fournie par " "fois connectée au serveur distant. Cette valeur est généralement fournie par "
"l’opérateur du serveur. Par exemple : 192.18.0.10." "l’opérateur du serveur. Par exemple : 192.18.0.10. Vous pouvez également "
"spécifier le réseau. Cela vous permettra d’atteindre les machines de ce "
"réseau. Par exemple : 10.68.12.43/24 ou 10.68.12.43/255.255.255.0."
#: plinth/modules/wireguard/forms.py:102 #: plinth/modules/wireguard/forms.py:102
msgid "Private key of this machine" msgid "Private key of this machine"
@ -10303,34 +10382,30 @@ msgid "As a Server"
msgstr "En tant que serveur" msgstr "En tant que serveur"
#: plinth/modules/wireguard/templates/wireguard.html:17 #: plinth/modules/wireguard/templates/wireguard.html:17
#, fuzzy, python-format #, python-format
#| msgid "Endpoints for this %(box_name)s:"
msgid "Information for this %(box_name)s:" msgid "Information for this %(box_name)s:"
msgstr "Points de terminaison de cette %(box_name)s :" msgstr "Informations de cette %(box_name)s :"
#: plinth/modules/wireguard/templates/wireguard.html:25 #: plinth/modules/wireguard/templates/wireguard.html:25
msgid "Property" msgid "Property"
msgstr "" msgstr "Propriété"
#: plinth/modules/wireguard/templates/wireguard.html:26 #: plinth/modules/wireguard/templates/wireguard.html:26
msgid "Value" msgid "Value"
msgstr "" msgstr "Valeur"
#: plinth/modules/wireguard/templates/wireguard.html:33 #: plinth/modules/wireguard/templates/wireguard.html:33
#, fuzzy
#| msgid "Endpoint"
msgid "Endpoint(s)" msgid "Endpoint(s)"
msgstr "Serveur distant" msgstr "Terminaison(s)"
#: plinth/modules/wireguard/templates/wireguard.html:41 #: plinth/modules/wireguard/templates/wireguard.html:41
#, fuzzy, python-format #, python-format
#| msgid "To %(box_name)s Ports"
msgid "%(box_name)s VPN IP for services" msgid "%(box_name)s VPN IP for services"
msgstr "Vers les ports %(box_name)s" msgstr "IP VPN de la %(box_name)s pour les services"
#: plinth/modules/wireguard/templates/wireguard.html:50 #: plinth/modules/wireguard/templates/wireguard.html:50
msgid "Peers" msgid "Peers"
msgstr "" msgstr "Pairs"
#: plinth/modules/wireguard/templates/wireguard.html:52 #: plinth/modules/wireguard/templates/wireguard.html:52
msgid "Peers allowed to connect to this server:" msgid "Peers allowed to connect to this server:"
@ -10362,10 +10437,8 @@ msgid "Add Allowed Client"
msgstr "Ajouter un client autorisé" msgstr "Ajouter un client autorisé"
#: plinth/modules/wireguard/templates/wireguard.html:97 #: plinth/modules/wireguard/templates/wireguard.html:97
#, fuzzy
#| msgid "WireGuard server started successfully."
msgid "WireGuard server not started yet." msgid "WireGuard server not started yet."
msgstr "Le serveur WireGuard a été démarré." msgstr "Le serveur WireGuard n’a pas encore démarré."
#: plinth/modules/wireguard/templates/wireguard.html:101 #: plinth/modules/wireguard/templates/wireguard.html:101
#: plinth/modules/wireguard/templates/wireguard.html:103 #: plinth/modules/wireguard/templates/wireguard.html:103
@ -10456,7 +10529,7 @@ msgstr "Clé publique du serveur :"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:46 #: plinth/modules/wireguard/templates/wireguard_show_client.html:46
msgid "Server VPN IP address for services:" msgid "Server VPN IP address for services:"
msgstr "" msgstr "Adresse IP VPN du serveur pour les services :"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:58 #: plinth/modules/wireguard/templates/wireguard_show_client.html:58
#: plinth/modules/wireguard/templates/wireguard_show_server.html:64 #: plinth/modules/wireguard/templates/wireguard_show_server.html:64
@ -10498,7 +10571,7 @@ msgstr "Adresse IP de cette machine :"
#: plinth/modules/wireguard/templates/wireguard_show_server.html:46 #: plinth/modules/wireguard/templates/wireguard_show_server.html:46
msgid "All outgoing traffic is sent using this connection:" msgid "All outgoing traffic is sent using this connection:"
msgstr "" msgstr "L’ensemble du trafic sortant est envoyé à travers cette connexion :"
#: plinth/modules/wireguard/views.py:54 #: plinth/modules/wireguard/views.py:54
msgid "Added new client." msgid "Added new client."
@ -10765,20 +10838,21 @@ msgstr "Aucune réponse du gestionnaire de paquets"
#: plinth/settings.py:181 #: plinth/settings.py:181
msgid "Uniquely identify your user account with username" msgid "Uniquely identify your user account with username"
msgstr "" msgstr ""
"Identifiez votre compte utilisateur de manière unique par un nom "
"d’utilisateur"
#: plinth/settings.py:183 #: plinth/settings.py:183
#, fuzzy
#| msgid "requesting address"
msgid "View email address" msgid "View email address"
msgstr "demande d’adresse en cours" msgstr "Voir l’adresse de courriel"
#: plinth/settings.py:185 #: plinth/settings.py:185
msgid "View basic profile information (such as name and email)" msgid "View basic profile information (such as name and email)"
msgstr "" msgstr ""
"Voir les informations de base du profil (telles que le nom et le courriel)"
#: plinth/settings.py:187 #: plinth/settings.py:187
msgid "View permissions that account has" msgid "View permissions that account has"
msgstr "" msgstr "Voir les permissions attribuées à ce compte"
#: plinth/setup.py:44 #: plinth/setup.py:44
msgid "Installing app" msgid "Installing app"
@ -10962,22 +11036,28 @@ msgid " System"
msgstr " Système" msgstr " Système"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Configurer des alias"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Changer le mot de passe" msgstr "Changer le mot de passe"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Éteindre" msgstr "Éteindre"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Se déconnecter" msgstr "Se déconnecter"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Choisir la langue" msgstr "Choisir la langue"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "S’identifier" msgstr "S’identifier"
@ -11015,7 +11095,7 @@ msgstr "Mobile"
#: plinth/templates/clients.html:82 #: plinth/templates/clients.html:82
msgid "Android APK" msgid "Android APK"
msgstr "" msgstr "APK pour Android"
#: plinth/templates/clients.html:91 #: plinth/templates/clients.html:91
msgid "Play Store" msgid "Play Store"
@ -11236,15 +11316,15 @@ msgstr ""
"L’ensemble données de l’appli et sa configuration seront définitivement " "L’ensemble données de l’appli et sa configuration seront définitivement "
"perdus. Un appli peut toujours être réinstallée de zéro." "perdus. Un appli peut toujours être réinstallée de zéro."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Ici" msgstr "Ici"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Paramètre inchangé" msgstr "Paramètre inchangé"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "avant la désinstallation de {app_id}" msgstr "avant la désinstallation de {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-12-30 10:51+0000\n" "PO-Revision-Date: 2022-12-30 10:51+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -326,6 +326,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1962,6 +1963,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3049,8 +3051,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Acerca de" msgstr "Acerca de"
@ -3188,6 +3190,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3596,7 +3599,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5324,12 +5327,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6204,8 +6213,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8595,7 +8604,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8637,7 +8646,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8646,77 +8655,173 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Manual"
msgid "Update Passkey"
msgstr "Manual"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9433,22 +9538,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9685,15 +9794,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""
@ -9734,11 +9843,6 @@ msgstr ""
#~ msgid "Server URL" #~ msgid "Server URL"
#~ msgstr "Servidor web" #~ msgstr "Servidor web"
#, fuzzy
#~| msgid "Manual"
#~ msgid "Updates"
#~ msgstr "Manual"
#, fuzzy #, fuzzy
#~| msgid "Manual" #~| msgid "Manual"
#~ msgctxt "Not automatically" #~ msgctxt "Not automatically"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ફ્રિડમબોક્ષ" msgstr "ફ્રિડમબોક્ષ"
@ -336,6 +336,7 @@ msgstr "દસ્તાવેજીકરણ"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -2147,6 +2148,7 @@ msgstr "GnuDIP સર્વર સરનામું"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3330,8 +3332,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "વિશે" msgstr "વિશે"
@ -3469,6 +3471,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3877,7 +3880,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5690,12 +5693,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6593,8 +6602,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -9056,7 +9065,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9098,7 +9107,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9107,77 +9116,181 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "આ વિભાગ તપાસનું સમર્થન નથી કરતો"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "સેટઅપ અપડેટ કરો"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
#, fuzzy
#| msgid "Show password"
msgid "Add passkey"
msgstr "પાસવર્ડ બતાવો"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain Name"
msgid "For Domain"
msgstr "ક્ષેત્રનું નામ"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Last update"
msgid "Last Used"
msgstr "છેલ્લો સુધારો"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9928,24 +10041,30 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Documentation"
msgid "Manage passkeys"
msgstr "દસ્તાવેજીકરણ"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
#, fuzzy #, fuzzy
#| msgid "Language" #| msgid "Language"
msgid "Select language" msgid "Select language"
msgstr "ભાષા" msgstr "ભાષા"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10193,15 +10312,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "સેટિંગ યથાવત" msgstr "સેટિંગ યથાવત"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-12-16 01:15+0000\n" "PO-Revision-Date: 2026-03-31 06:09+0000\n"
"Last-Translator: bsurajpatra <ankitsuraj1111@gmail.com>\n" "Last-Translator: bsurajpatra <ankitsuraj1111@gmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/"
"freedombox/hi/>\n" "freedombox/hi/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.15.1-dev\n" "X-Generator: Weblate 5.17-dev\n"
#: plinth/config.py:103 #: plinth/config.py:103
#, python-brace-format #, python-brace-format
@ -30,7 +30,7 @@ msgstr "स्थैतिक कॉन्फ़िगरेशन {etc_path}
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "सेवा {service_name} चल रहा है" msgstr "सेवा {service_name} चल रहा है"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "स्वतंत्रता बॉक्स" msgstr "स्वतंत्रता बॉक्स"
@ -345,6 +345,7 @@ msgstr "यूसर बनाये"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "नाम" msgstr "नाम"
@ -2256,6 +2257,7 @@ msgstr "आइपी एेड्रैस"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "एक्सआयन" msgstr "एक्सआयन"
@ -3536,8 +3538,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
#, fuzzy #, fuzzy
msgid "About" msgid "About"
@ -3692,6 +3694,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "और सीखिये..." msgstr "और सीखिये..."
@ -4134,7 +4137,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "जावास्क्रिप्ट लाइसेंस जानकारी" msgstr "जावास्क्रिप्ट लाइसेंस जानकारी"
@ -6077,12 +6080,18 @@ msgstr "कनेक्शन संपादित करें"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -7112,8 +7121,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "शट डाउन" msgstr "शट डाउन"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "रीस्टार्ट" msgstr "रीस्टार्ट"
@ -9935,7 +9944,7 @@ msgstr "पासवर्ड सहेजें"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "यूसर बनाये" msgstr "यूसर बनाये"
@ -9984,7 +9993,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "यूसरस" msgstr "यूसरस"
@ -9993,17 +10002,115 @@ msgstr "यूसरस"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "यूसर संपादित करें %(username)s" msgstr "यूसर संपादित करें %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "यह मॉड्यूल निदानिकी कि नहीं समर्थन करता है"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "लॉगिन" msgstr "लॉगिन"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "सेटअप अपडेट"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "पासवर्ड जोड़ें"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "कनेक्शन बनाएँ: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "यूसर हटाइये"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "कैंसिल"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Edit user %(username)s" #| msgid "Edit user %(username)s"
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "यूसर संपादित करें %(username)s" msgstr "यूसर संपादित करें %(username)s"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10012,67 +10119,79 @@ msgstr ""
"पासवर्ड बदलने के लिये <a href='%(change_password_url)s'> यइ पासवर्ड बदलना फोम्र </" "पासवर्ड बदलने के लिये <a href='%(change_password_url)s'> यइ पासवर्ड बदलना फोम्र </"
"a> का उपयोग करें." "a> का उपयोग करें."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "बदलाव संचयित कीजिये" msgstr "बदलाव संचयित कीजिये"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "यूसर <strong>%(username)s</strong> स्थाई रूप से हटाइये?" msgstr "यूसर <strong>%(username)s</strong> स्थाई रूप से हटाइये?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete User" #| msgid "Delete User"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "यूसर हटाइये" msgstr "यूसर हटाइये"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "कैंसिल"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Password changed successfully." #| msgid "Password changed successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "पासवर्ड सफलतापूर्वक बदल गया." msgstr "पासवर्ड सफलतापूर्वक बदल गया."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "युसर %(username)s बनाया." msgstr "युसर %(username)s बनाया."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "युसर %(username)s अपडेट किया." msgstr "युसर %(username)s अपडेट किया."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "यूसर संपादित करें" msgstr "यूसर संपादित करें"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "युसर %(username)s बनाया." msgstr "युसर %(username)s बनाया."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "पासवर्ड बदलिये" msgstr "पासवर्ड बदलिये"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "पासवर्ड सफलतापूर्वक बदल गया." msgstr "पासवर्ड सफलतापूर्वक बदल गया."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "इस नाम का एक शयर पहले से मौजूद है."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "यूसर संपादित करें"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10917,22 +11036,28 @@ msgid " System"
msgstr " सिस्टम" msgstr " सिस्टम"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Create User"
msgid "Manage passkeys"
msgstr "यूसर बनाये"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "पासवर्ड बदलें" msgstr "पासवर्ड बदलें"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "शट डाउन" msgstr "शट डाउन"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "लॉग आउट" msgstr "लॉग आउट"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "भाषा चुनें" msgstr "भाषा चुनें"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "लॉग इन" msgstr "लॉग इन"
@ -10970,7 +11095,7 @@ msgstr "मोबाइल"
#: plinth/templates/clients.html:82 #: plinth/templates/clients.html:82
msgid "Android APK" msgid "Android APK"
msgstr "" msgstr "एंड्रॉइड एपीके"
#: plinth/templates/clients.html:91 #: plinth/templates/clients.html:91
msgid "Play Store" msgid "Play Store"
@ -11201,15 +11326,15 @@ msgstr ""
"सभी ऐप डेटा और कॉन्फ़िगरेशन हमेशा के लिए खो जाएंगे। ऐप को फिर से नए सिरे से इंस्टॉल किया " "सभी ऐप डेटा और कॉन्फ़िगरेशन हमेशा के लिए खो जाएंगे। ऐप को फिर से नए सिरे से इंस्टॉल किया "
"जा सकता है।" "जा सकता है।"
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "यहाँ" msgstr "यहाँ"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "सेटिंग स्थिर है" msgstr "सेटिंग स्थिर है"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "{app_id} को अनइंस्टॉल करने से पहले" msgstr "{app_id} को अनइंस्टॉल करने से पहले"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-06-04 15:01+0000\n" "PO-Revision-Date: 2025-06-04 15:01+0000\n"
"Last-Translator: András Szűcs " "Last-Translator: András Szűcs "
"<andrascc86288f63c44cb5@users.noreply.hosted.weblate.org>\n" "<andrascc86288f63c44cb5@users.noreply.hosted.weblate.org>\n"
@ -31,7 +31,7 @@ msgstr "A statikus konfiguráció {etc_path} megfelelően van beállítva"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "A szolgáltatás fut: {service_name}" msgstr "A szolgáltatás fut: {service_name}"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -355,6 +355,7 @@ msgstr "Tároló"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Név" msgstr "Név"
@ -2259,6 +2260,7 @@ msgstr "IP-cím"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Műveletek" msgstr "Műveletek"
@ -3511,8 +3513,8 @@ msgstr "Visszajelzés küldése"
msgid "Contribute" msgid "Contribute"
msgstr "Hozzájárulás" msgstr "Hozzájárulás"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Névjegy" msgstr "Névjegy"
@ -3688,6 +3690,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Bővebben..." msgstr "Bővebben..."
@ -4152,7 +4155,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript licencinformáció" msgstr "JavaScript licencinformáció"
@ -6234,6 +6237,9 @@ msgstr "Kapcsolat szerkesztése"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -6241,7 +6247,10 @@ msgid "Error:"
msgstr "hiba" msgstr "hiba"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Bezárás" msgstr "Bezárás"
@ -7275,8 +7284,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Leállítás" msgstr "Leállítás"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Újraindítás" msgstr "Újraindítás"
@ -10125,7 +10134,7 @@ msgstr "Jelszó mentése"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Felhasználó létrehozása" msgstr "Felhasználó létrehozása"
@ -10182,7 +10191,7 @@ msgid "Skip this step"
msgstr "Lépés kihagyása" msgstr "Lépés kihagyása"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Felhasználók" msgstr "Felhasználók"
@ -10191,16 +10200,114 @@ msgstr "Felhasználók"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "%(username)s felhasználó szerkesztése" msgstr "%(username)s felhasználó szerkesztése"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Ez az alkalmazás nem támogatja a hibaellenőrzést"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Bejelentkezés" msgstr "Bejelentkezés"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Beállítások frissítése"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Jelszó hozzáadása"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domain"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Last Connected Time"
msgid "Last Used"
msgstr "Utolsó csatlakozási idő"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Felhasználó törlése"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Mégse"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "<em>%(username)s</em> felhasználó szerkesztése" msgstr "<em>%(username)s</em> felhasználó szerkesztése"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10209,65 +10316,77 @@ msgstr ""
"A jelszó a <a href=\"%(change_password_url)s\">jelszómódosítási űrlap</a> " "A jelszó a <a href=\"%(change_password_url)s\">jelszómódosítási űrlap</a> "
"kitöltésével változtatható meg." "kitöltésével változtatható meg."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Változtatások mentése" msgstr "Változtatások mentése"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "<strong>%(username)s</strong> nevű felhasználó végleges törlése?" msgstr "<strong>%(username)s</strong> nevű felhasználó végleges törlése?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Fájlok törlése" msgstr "Fájlok törlése"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Mégse"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Sikeres kijelentkezés." msgstr "Sikeres kijelentkezés."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "%(username)s nevű felhasználó létrehozva." msgstr "%(username)s nevű felhasználó létrehozva."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "%(username)s nevű felhasználó frissítve." msgstr "%(username)s nevű felhasználó frissítve."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Felhasználó szerkesztése" msgstr "Felhasználó szerkesztése"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "%(username)s nevű felhasználó létrehozva." msgstr "%(username)s nevű felhasználó létrehozva."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Jelszómódosítás" msgstr "Jelszómódosítás"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "A jelszó módosítása sikeres." msgstr "A jelszó módosítása sikeres."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Egy megosztás ezzel a névvel már létezik."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Felhasználó szerkesztése"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "A WireGuard egy gyors, modern, biztonságos VPN-alagút." msgstr "A WireGuard egy gyors, modern, biztonságos VPN-alagút."
@ -11114,22 +11233,28 @@ msgid " System"
msgstr " Rendszer" msgstr " Rendszer"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Álnevek kezelése"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Jelszómódosítás" msgstr "Jelszómódosítás"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Leállítás" msgstr "Leállítás"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Kijelentkezés" msgstr "Kijelentkezés"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Válassz nyelvet" msgstr "Válassz nyelvet"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Bejelentkezés" msgstr "Bejelentkezés"
@ -11401,15 +11526,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "A beállítás változatlan" msgstr "A beállítás változatlan"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Indonesian (FreedomBox)\n" "Project-Id-Version: Indonesian (FreedomBox)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/"
@ -25,7 +25,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Layanan {service_name} sedang berjalan" msgstr "Layanan {service_name} sedang berjalan"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -350,6 +350,7 @@ msgstr "Gudang"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nama" msgstr "Nama"
@ -2237,6 +2238,7 @@ msgstr "Alamat IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Aksi" msgstr "Aksi"
@ -3464,8 +3466,8 @@ msgstr "Berikan umpan balik"
msgid "Contribute" msgid "Contribute"
msgstr "Kontribusi" msgstr "Kontribusi"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Tentang" msgstr "Tentang"
@ -3638,6 +3640,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Belajarlah lagi..." msgstr "Belajarlah lagi..."
@ -4090,7 +4093,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Informasi Lisensi JavaScript" msgstr "Informasi Lisensi JavaScript"
@ -5960,6 +5963,9 @@ msgstr "Sunting Koneksi"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -5967,7 +5973,10 @@ msgid "Error:"
msgstr "kesalahan" msgstr "kesalahan"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Tutup" msgstr "Tutup"
@ -6860,8 +6869,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Matikan" msgstr "Matikan"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Mulai ulang" msgstr "Mulai ulang"
@ -9405,7 +9414,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9449,7 +9458,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9458,81 +9467,191 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Aplikasi ini tidak mendukung diagnostik"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Masuk" msgstr "Masuk"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Perbarui Pengaturan"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Tambahkan Kata Sandi"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domain"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Used"
msgid "Last Used"
msgstr "Digunakan"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 %(username)s"
msgid "Delete passkey"
msgstr "Pangkar %(username)s"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Batal"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Hapus Wiki atau Blog <em>%(username)s</em>" msgstr "Hapus Wiki atau Blog <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Edit User <em>%(username)s</em>" #| msgid "Edit User <em>%(username)s</em>"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Hapus Wiki atau Blog <em>%(username)s</em>" msgstr "Hapus Wiki atau Blog <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Hapus file" msgstr "Hapus file"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Batal"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User {user} deleted." #| msgid "User {user} deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Insan {user} dipangkar." msgstr "Insan {user} dipangkar."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A library with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Perpustakaan dengan nama ini sudah ada."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit Share"
msgid "Edit Passkey"
msgstr "Sunting Bagikan"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10312,22 +10431,28 @@ msgid " System"
msgstr " sistem" msgstr " sistem"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage passkeys"
msgstr "Kelola Perpustakaan"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Ganti kata sandi" msgstr "Ganti kata sandi"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Matikan" msgstr "Matikan"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Keluar" msgstr "Keluar"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Pilih bahasa" msgstr "Pilih bahasa"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Masuk" msgstr "Masuk"
@ -10583,15 +10708,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-02-06 23:01+0000\n" "PO-Revision-Date: 2026-03-31 06:09+0000\n"
"Last-Translator: Pierfrancesco Passerini <p.passerini@gmail.com>\n" "Last-Translator: Pierfrancesco Passerini <p.passerini@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/it/>\n" "freedombox/it/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.16-dev\n" "X-Generator: Weblate 5.17-dev\n"
#: plinth/config.py:103 #: plinth/config.py:103
#, python-brace-format #, python-brace-format
@ -29,7 +29,7 @@ msgstr "La configurazione statica {etc_path} è impostata correttamente"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Il contenitore {container_name} è in esecuzione" msgstr "Il contenitore {container_name} è in esecuzione"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -167,7 +167,7 @@ msgstr "{box_name} Interfaccia Web (Plinth)"
#: plinth/modules/apache/__init__.py:129 #: plinth/modules/apache/__init__.py:129
msgid "Web app protected by FreedomBox" msgid "Web app protected by FreedomBox"
msgstr "" msgstr "Web app protetta da FreedomBox"
#: plinth/modules/apache/components.py:234 #: plinth/modules/apache/components.py:234
#, python-brace-format #, python-brace-format
@ -345,6 +345,7 @@ msgstr "Deposito"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
@ -406,10 +407,8 @@ msgid "Passphrase"
msgstr "Passphrase" msgstr "Passphrase"
#: plinth/modules/backups/forms.py:187 #: plinth/modules/backups/forms.py:187
#, fuzzy
#| msgid "Passphrase; Only needed when using encryption."
msgid "Only needed when using encryption." msgid "Only needed when using encryption."
msgstr "Passphrase; Necessaria solo quando si utilizza la crittografia." msgstr "Necessaria solo quando si utilizza la crittografia."
#: plinth/modules/backups/forms.py:190 #: plinth/modules/backups/forms.py:190
msgid "Confirm Passphrase" msgid "Confirm Passphrase"
@ -448,44 +447,32 @@ msgstr ""
"repo/</i>" "repo/</i>"
#: plinth/modules/backups/forms.py:255 #: plinth/modules/backups/forms.py:255
#, fuzzy
#| msgid "Authentication Mode"
msgid "SSH Authentication Type" msgid "SSH Authentication Type"
msgstr "Modalità Autenticazione" msgstr "Tipo di autenticazione SSH"
#: plinth/modules/backups/forms.py:256 #: plinth/modules/backups/forms.py:256
#, fuzzy
#| msgid "Authentication to remote server failed."
msgid "Choose how to authenticate to the remote SSH server." msgid "Choose how to authenticate to the remote SSH server."
msgstr "Autenticazione al server remoto fallita." msgstr "Scegliere la modalità di autenticazione sul server SSH remoto."
#: plinth/modules/backups/forms.py:258 #: plinth/modules/backups/forms.py:258
#, fuzzy
#| msgid "needs authentication"
msgid "Key-based Authentication" msgid "Key-based Authentication"
msgstr "richiede autenticazione" msgstr "Autenticazione basata su chiave"
#: plinth/modules/backups/forms.py:259 #: plinth/modules/backups/forms.py:259
#, fuzzy
#| msgid "Disable password authentication"
msgid "Password-based Authentication" msgid "Password-based Authentication"
msgstr "Disabilita l'autenticazione con password" msgstr "Autenticazione basata su password"
#: plinth/modules/backups/forms.py:261 #: plinth/modules/backups/forms.py:261
msgid "SSH server password" msgid "SSH server password"
msgstr "Password server SSH" msgstr "Password server SSH"
#: plinth/modules/backups/forms.py:262 #: plinth/modules/backups/forms.py:262
#, fuzzy
#| msgid "Disable password authentication"
msgid "Required for password-based authentication." msgid "Required for password-based authentication."
msgstr "Disabilita l'autenticazione con password" msgstr "Richiesto per l'autenticazione basata su password."
#: plinth/modules/backups/forms.py:275 #: plinth/modules/backups/forms.py:275
#, fuzzy
#| msgid "Disable password authentication"
msgid "SSH password is needed for password-based authentication." msgid "SSH password is needed for password-based authentication."
msgstr "Disabilita l'autenticazione con password" msgstr "La password SSH è necessaria per l'autenticazione basata su password."
#: plinth/modules/backups/forms.py:292 #: plinth/modules/backups/forms.py:292
msgid "Remote backup repository already exists." msgid "Remote backup repository already exists."
@ -631,6 +618,9 @@ msgid ""
"list on the remote machine for %(box_name)s to be able to connect to the " "list on the remote machine for %(box_name)s to be able to connect to the "
"remote machine:" "remote machine:"
msgstr "" msgstr ""
"Per consentire a %(box_name)s di connettersi al computer remoto, è "
"necessario aggiungere la seguente chiave pubblica SSH all'elenco delle "
"chiavi autorizzate sul computer remoto:"
#: plinth/modules/backups/templates/backups_add_remote_repository.html:87 #: plinth/modules/backups/templates/backups_add_remote_repository.html:87
#, python-format #, python-format
@ -639,6 +629,10 @@ msgid ""
"successful, then the public key will be automatically added to the " "successful, then the public key will be automatically added to the "
"authorized keys list, so that future connections do not need the password." "authorized keys list, so that future connections do not need the password."
msgstr "" msgstr ""
"Il servizio %(box_name)s tenterà di connettersi utilizzando la password "
"fornita. In caso di esito positivo, la chiave pubblica verrà automaticamente "
"aggiunta all'elenco delle chiavi autorizzate, in modo che per le connessioni "
"future non sia più necessaria la password."
#: plinth/modules/backups/templates/backups_add_remote_repository.html:132 #: plinth/modules/backups/templates/backups_add_remote_repository.html:132
#: plinth/modules/backups/templates/backups_upload.html:29 #: plinth/modules/backups/templates/backups_upload.html:29
@ -817,10 +811,8 @@ msgid "Authentication to remote server failed."
msgstr "Autenticazione al server remoto fallita." msgstr "Autenticazione al server remoto fallita."
#: plinth/modules/backups/views.py:50 #: plinth/modules/backups/views.py:50
#, fuzzy
#| msgid "Error establishing connection to server: {}"
msgid "Error establishing connection to server: {} {} {}" msgid "Error establishing connection to server: {} {} {}"
msgstr "Errore di connessione al server: {}" msgstr "Errore di connessione al server: {} {} {}"
#: plinth/modules/backups/views.py:82 #: plinth/modules/backups/views.py:82
msgid "Backup schedule updated." msgid "Backup schedule updated."
@ -1464,14 +1456,7 @@ msgid "Webserver Home Page"
msgstr "Pagina iniziale del server web" msgstr "Pagina iniziale del server web"
#: plinth/modules/config/forms.py:37 #: plinth/modules/config/forms.py:37
#, fuzzy, python-brace-format #, python-brace-format
#| msgid ""
#| "Choose the default page that must be served when someone visits your "
#| "{box_name} on the web. A typical use case is to set your blog or wiki as "
#| "the home page when someone visits the domain name. Note that once the "
#| "home page is set to something other than {box_name} Service (Plinth), "
#| "your users must explicitly type /plinth or /freedombox to reach "
#| "{box_name} Service (Plinth)."
msgid "" msgid ""
"Choose the default page that must be served when someone visits your " "Choose the default page that must be served when someone visits your "
"{box_name} on the web. A typical use case is to set your blog or wiki as the " "{box_name} on the web. A typical use case is to set your blog or wiki as the "
@ -1484,7 +1469,7 @@ msgstr ""
"il tuo blog o wiki come pagina iniziale quando qualcuno visita il nome del " "il tuo blog o wiki come pagina iniziale quando qualcuno visita il nome del "
"dominio. Si noti che una volta che la home page è impostata su qualcosa di " "dominio. Si noti che una volta che la home page è impostata su qualcosa di "
"diverso da {box_name} Service (Plinth), i tuoi utenti devono esplicitamente " "diverso da {box_name} Service (Plinth), i tuoi utenti devono esplicitamente "
"digitare /plinth o /freedombox per raggiungere {box_name} Service (Plinth)." "digitare /freedombox per raggiungere {box_name} Service (Plinth)."
#: plinth/modules/config/forms.py:48 #: plinth/modules/config/forms.py:48
msgid "Show advanced apps and features" msgid "Show advanced apps and features"
@ -2145,6 +2130,7 @@ msgstr "Indirizzo IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Azioni" msgstr "Azioni"
@ -2435,15 +2421,11 @@ msgstr ""
"creati automaticamente e puntano al primo utente amministratore." "creati automaticamente e puntano al primo utente amministratore."
#: plinth/modules/email/__init__.py:41 #: plinth/modules/email/__init__.py:41
#, fuzzy
#| msgid ""
#| "<a href=\"/plinth/apps/roundcube/\">Roundcube app</a> provides web "
#| "interface for users to access email."
msgid "" msgid ""
"<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web " "<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> provides web "
"interface for users to access email." "interface for users to access email."
msgstr "" msgstr ""
"<a href=\"/plinth/apps/roundcube/\">Roundcube app</a> fornisce " "<a href=\"/freedombox/apps/roundcube/\">Roundcube app</a> fornisce "
"un'interfaccia web per l'accesso degli utenti all'email." "un'interfaccia web per l'accesso degli utenti all'email."
#: plinth/modules/email/__init__.py:43 #: plinth/modules/email/__init__.py:43
@ -3361,8 +3343,8 @@ msgstr "Invia feedback"
msgid "Contribute" msgid "Contribute"
msgstr "Collabora" msgstr "Collabora"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Informazioni" msgstr "Informazioni"
@ -3540,6 +3522,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Approfondisci..." msgstr "Approfondisci..."
@ -4019,7 +4002,7 @@ msgstr "Conferenza Web"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Informazioni sulla licenza JavaScript" msgstr "Informazioni sulla licenza JavaScript"
@ -6036,12 +6019,18 @@ msgstr "Modifica Concessione"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Errore:" msgstr "Errore:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Chiudi" msgstr "Chiudi"
@ -6242,12 +6231,6 @@ msgstr ""
"permettendogli di fornire i servizi." "permettendogli di fornire i servizi."
#: plinth/modules/networks/templates/router_configuration_content.html:32 #: plinth/modules/networks/templates/router_configuration_content.html:32
#, fuzzy
#| msgid ""
#| "If you don't have control over your router, choose not to configure it. "
#| "To see options to overcome this limitation, choose 'I dont have a public "
#| "IP address' option in <a href=\"/plinth/sys/networks/internet-connection-"
#| "type/\">Internet connection type selection</a>."
msgid "" msgid ""
"If you don't have control over your router, choose not to configure it. To " "If you don't have control over your router, choose not to configure it. To "
"see options to overcome this limitation, choose 'I dont have a public IP " "see options to overcome this limitation, choose 'I dont have a public IP "
@ -6256,9 +6239,9 @@ msgid ""
msgstr "" msgstr ""
"Se non hai il controllo del tuo router, scegli di non configurarlo. Per " "Se non hai il controllo del tuo router, scegli di non configurarlo. Per "
"visualizzare le opzioni capaci di superare questa limitazione, seleziona " "visualizzare le opzioni capaci di superare questa limitazione, seleziona "
"l’opzione “Non dispongo di un indirizzo IP pubblico” in <a href=\"/plinth/" "l’opzione “Non dispongo di un indirizzo IP pubblico” in <a href=\"/"
"sys/networks/internet-connection-type/\">selezione del tipo di connessione " "freedombox/sys/networks/internet-connection-type/\">selezione del tipo di "
"Internet</a>." "connessione Internet</a>."
#: plinth/modules/networks/templates/router_configuration_content.html:39 #: plinth/modules/networks/templates/router_configuration_content.html:39
msgid "Choose How You Wish to Configure Your Router" msgid "Choose How You Wish to Configure Your Router"
@ -6664,19 +6647,15 @@ msgstr ""
#: plinth/modules/oidc/__init__.py:56 #: plinth/modules/oidc/__init__.py:56
msgid "OpenID Connect Provider" msgid "OpenID Connect Provider"
msgstr "" msgstr "Fornitore OpenID Connect"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14
#, fuzzy
#| msgid "Application enabled"
msgid "Application" msgid "Application"
msgstr "Applicazione abilitata" msgstr "Applicazione"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22
#, fuzzy
#| msgid "Authorized SSH Keys"
msgid "Authorize App" msgid "Authorize App"
msgstr "Chiavi SSH autorizzate" msgstr "Autorizza App"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:37
#, python-format #, python-format
@ -6684,17 +6663,18 @@ msgid ""
"<strong>%(app)s</strong> wants to access your account <strong> %(username)s</" "<strong>%(app)s</strong> wants to access your account <strong> %(username)s</"
"strong>" "strong>"
msgstr "" msgstr ""
"<strong>%(app)s </strong> vuole accedere al tuo account <strong> "
"%(username)s</strong>"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:52
#, fuzzy, python-format #, python-format
#| msgid "Authorized SSH Keys"
msgid "Authorize %(app)s" msgid "Authorize %(app)s"
msgstr "Chiavi SSH autorizzate" msgstr "Autorizza %(app)s"
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:59
#, python-format #, python-format
msgid "Authorizing will redirect to %(url)s" msgid "Authorizing will redirect to %(url)s"
msgstr "" msgstr "Autorizzando sarai reindirizzato su %(url)s"
#: plinth/modules/openvpn/__init__.py:20 #: plinth/modules/openvpn/__init__.py:20
#, python-brace-format #, python-brace-format
@ -7025,8 +7005,8 @@ msgstr "Riavvia"
msgid "Shutdown" msgid "Shutdown"
msgstr "Spegni" msgstr "Spegni"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Riavvio" msgstr "Riavvio"
@ -8121,12 +8101,6 @@ msgstr ""
"indicate." "indicate."
#: plinth/modules/snapshot/__init__.py:25 #: plinth/modules/snapshot/__init__.py:25
#, fuzzy
#| msgid ""
#| "Snapshots currently work on btrfs file systems only and on the root "
#| "partition only. Snapshots are not a replacement for <a href=\"/plinth/sys/"
#| "backups\">backups</a> since they can only be stored on the same "
#| "partition. "
msgid "" msgid ""
"Snapshots currently work on btrfs file systems only and on the root " "Snapshots currently work on btrfs file systems only and on the root "
"partition only. Snapshots are not a replacement for <a href=\"/freedombox/" "partition only. Snapshots are not a replacement for <a href=\"/freedombox/"
@ -8134,7 +8108,7 @@ msgid ""
"partition. " "partition. "
msgstr "" msgstr ""
"Le istantanee, attualmente, funzionano solo sui filesystem btrfs e solo " "Le istantanee, attualmente, funzionano solo sui filesystem btrfs e solo "
"sulla partizione root. Non sostituiscono i <a href=\"/plinth/sys/" "sulla partizione root. Non sostituiscono i <a href=\"/freedombox/sys/"
"backups\">backup</a> poiché possono essere salvate solo sulla stessa " "backups\">backup</a> poiché possono essere salvate solo sulla stessa "
"partizione. " "partizione. "
@ -9837,7 +9811,7 @@ msgstr "Salva password"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Crea utente" msgstr "Crea utente"
@ -9887,7 +9861,7 @@ msgid "Skip this step"
msgstr "Salta questo passaggio" msgstr "Salta questo passaggio"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Utenti" msgstr "Utenti"
@ -9896,16 +9870,114 @@ msgstr "Utenti"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Modifica l'utente %(username)s" msgstr "Modifica l'utente %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Login" msgstr "Login"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
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"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Dominio"
#: 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 "Ultima scansione: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Cancella l'utente"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Cancella"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Modifica utente <em>%(username)s</em>" msgstr "Modifica utente <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9914,17 +9986,17 @@ msgstr ""
"Utilizzare il form <a href=\"%(change_password_url)s\">cambio password</a> " "Utilizzare il form <a href=\"%(change_password_url)s\">cambio password</a> "
"per modificare la password." "per modificare la password."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Applica cambiamenti" msgstr "Applica cambiamenti"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Cancellare l'utente <em>%(username)s</em> e tutti i suoi file?" msgstr "Cancellare l'utente <em>%(username)s</em> e tutti i suoi file?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9932,45 +10004,57 @@ msgstr ""
"L'eliminazione di un account utente rimuove anche la sua home directory. Se " "L'eliminazione di un account utente rimuove anche la sua home directory. Se "
"desideri conservare i suoi file, disabilita l'account anziché eliminarlo." "desideri conservare i suoi file, disabilita l'account anziché eliminarlo."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Cancellare utente e file" msgstr "Cancellare utente e file"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Cancella"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Disconnesso correttamente." msgstr "Disconnesso correttamente."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Utente %(username)s creato." msgstr "Utente %(username)s creato."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Utente %(username)s aggiornato." msgstr "Utente %(username)s aggiornato."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Modifica utente" msgstr "Modifica utente"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Utente %(username)s cancellato." msgstr "Utente %(username)s cancellato."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Cambia password" msgstr "Cambia password"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "La password è stata aggiornata." 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à."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Modifica utente"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard è un tunnel VPN veloce, moderno e sicuro." msgstr "WireGuard è un tunnel VPN veloce, moderno e sicuro."
@ -10001,14 +10085,12 @@ msgid "Invalid key."
msgstr "Chiave non valida." msgstr "Chiave non valida."
#: plinth/modules/wireguard/forms.py:63 #: plinth/modules/wireguard/forms.py:63
#, fuzzy
#| msgid "Enter a valid username."
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Inserisci un nome utente valido." msgstr "Inserisci un indirizzo IPv4 valido."
#: plinth/modules/wireguard/forms.py:65 #: plinth/modules/wireguard/forms.py:65
msgid "Enter a valid network prefix or net mask." msgid "Enter a valid network prefix or net mask."
msgstr "" msgstr "Inserisci un prefisso di rete od una netmask validi."
#: plinth/modules/wireguard/forms.py:71 #: plinth/modules/wireguard/forms.py:71
#: plinth/modules/wireguard/templates/wireguard.html:29 #: plinth/modules/wireguard/templates/wireguard.html:29
@ -10055,11 +10137,6 @@ msgid "Client IP address provided by server"
msgstr "Indirizzo IP client fornito dal server" msgstr "Indirizzo IP client fornito dal server"
#: plinth/modules/wireguard/forms.py:94 #: plinth/modules/wireguard/forms.py:94
#, fuzzy
#| msgid ""
#| "IP address assigned to this machine on the VPN after connecting to the "
#| "endpoint. This value is usually provided by the server operator. Example: "
#| "192.168.0.10."
msgid "" msgid ""
"IP address assigned to this machine on the VPN after connecting to the " "IP address assigned to this machine on the VPN after connecting to the "
"endpoint. This value is usually provided by the server operator. Example: " "endpoint. This value is usually provided by the server operator. Example: "
@ -10069,7 +10146,9 @@ msgid ""
msgstr "" msgstr ""
"Indirizzo IP assegnato a questa macchina sulla VPN dopo la connessione " "Indirizzo IP assegnato a questa macchina sulla VPN dopo la connessione "
"all'endpoint. Questo valore è generalmente fornito dal gestore del server. " "all'endpoint. Questo valore è generalmente fornito dal gestore del server. "
"Esempio: 192.168.0.10" "Esempio: 192.168.0.10. È inoltre possibile specificare la rete. Ciò "
"consentirà di raggiungere le macchine nella rete. Esempi: 10.68.12.43/24 o "
"10.68.12.43/255.255.255.0."
#: plinth/modules/wireguard/forms.py:102 #: plinth/modules/wireguard/forms.py:102
msgid "Private key of this machine" msgid "Private key of this machine"
@ -10120,34 +10199,30 @@ msgid "As a Server"
msgstr "Come server" msgstr "Come server"
#: plinth/modules/wireguard/templates/wireguard.html:17 #: plinth/modules/wireguard/templates/wireguard.html:17
#, fuzzy, python-format #, python-format
#| msgid "Endpoints for this %(box_name)s:"
msgid "Information for this %(box_name)s:" msgid "Information for this %(box_name)s:"
msgstr "Punti di accesso per %(box_name)s:" msgstr "Informazioni su %(box_name)s:"
#: plinth/modules/wireguard/templates/wireguard.html:25 #: plinth/modules/wireguard/templates/wireguard.html:25
msgid "Property" msgid "Property"
msgstr "" msgstr "Proprietà"
#: plinth/modules/wireguard/templates/wireguard.html:26 #: plinth/modules/wireguard/templates/wireguard.html:26
msgid "Value" msgid "Value"
msgstr "" msgstr "Valore"
#: plinth/modules/wireguard/templates/wireguard.html:33 #: plinth/modules/wireguard/templates/wireguard.html:33
#, fuzzy
#| msgid "Endpoint"
msgid "Endpoint(s)" msgid "Endpoint(s)"
msgstr "Endpoint" msgstr "Endpoint"
#: plinth/modules/wireguard/templates/wireguard.html:41 #: plinth/modules/wireguard/templates/wireguard.html:41
#, fuzzy, python-format #, python-format
#| msgid "To %(box_name)s Ports"
msgid "%(box_name)s VPN IP for services" msgid "%(box_name)s VPN IP for services"
msgstr "Alla porta %(box_name)s" msgstr "VPN IP per i servizi %(box_name)s"
#: plinth/modules/wireguard/templates/wireguard.html:50 #: plinth/modules/wireguard/templates/wireguard.html:50
msgid "Peers" msgid "Peers"
msgstr "" msgstr "Nodi"
#: plinth/modules/wireguard/templates/wireguard.html:52 #: plinth/modules/wireguard/templates/wireguard.html:52
msgid "Peers allowed to connect to this server:" msgid "Peers allowed to connect to this server:"
@ -10177,10 +10252,8 @@ msgid "Add Allowed Client"
msgstr "Aggiungi client autorizzato" msgstr "Aggiungi client autorizzato"
#: plinth/modules/wireguard/templates/wireguard.html:97 #: plinth/modules/wireguard/templates/wireguard.html:97
#, fuzzy
#| msgid "WireGuard server started successfully."
msgid "WireGuard server not started yet." msgid "WireGuard server not started yet."
msgstr "Il server WireGuard è stato correttamente avviato." msgstr "Il server WireGuard non è stato ancora avviato."
#: plinth/modules/wireguard/templates/wireguard.html:101 #: plinth/modules/wireguard/templates/wireguard.html:101
#: plinth/modules/wireguard/templates/wireguard.html:103 #: plinth/modules/wireguard/templates/wireguard.html:103
@ -10271,7 +10344,7 @@ msgstr "Chiave pubblica del server:"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:46 #: plinth/modules/wireguard/templates/wireguard_show_client.html:46
msgid "Server VPN IP address for services:" msgid "Server VPN IP address for services:"
msgstr "" msgstr "Indirizzo IP VPN server per i servizi:"
#: plinth/modules/wireguard/templates/wireguard_show_client.html:58 #: plinth/modules/wireguard/templates/wireguard_show_client.html:58
#: plinth/modules/wireguard/templates/wireguard_show_server.html:64 #: plinth/modules/wireguard/templates/wireguard_show_server.html:64
@ -10313,7 +10386,7 @@ msgstr "Indirizzo IP di questa macchina:"
#: plinth/modules/wireguard/templates/wireguard_show_server.html:46 #: plinth/modules/wireguard/templates/wireguard_show_server.html:46
msgid "All outgoing traffic is sent using this connection:" msgid "All outgoing traffic is sent using this connection:"
msgstr "" msgstr "Tutto il traffico in uscita utilizza questo collegamento:"
#: plinth/modules/wireguard/views.py:54 #: plinth/modules/wireguard/views.py:54
msgid "Added new client." msgid "Added new client."
@ -10575,21 +10648,19 @@ msgstr "Timeout in attesa del gestore di pacchetti"
#: plinth/settings.py:181 #: plinth/settings.py:181
msgid "Uniquely identify your user account with username" msgid "Uniquely identify your user account with username"
msgstr "" msgstr "Identifica univocamente il tuo account con il nome utente"
#: plinth/settings.py:183 #: plinth/settings.py:183
#, fuzzy
#| msgid "requesting address"
msgid "View email address" msgid "View email address"
msgstr "acquisizione indirizzo in corso" msgstr "Visualizza indirizzo email"
#: plinth/settings.py:185 #: plinth/settings.py:185
msgid "View basic profile information (such as name and email)" msgid "View basic profile information (such as name and email)"
msgstr "" msgstr "Visualizza le informazioni base del profilo (come nome ed email)"
#: plinth/settings.py:187 #: plinth/settings.py:187
msgid "View permissions that account has" msgid "View permissions that account has"
msgstr "" msgstr "Visualizza le autorizzazioni dell'account"
#: plinth/setup.py:44 #: plinth/setup.py:44
msgid "Installing app" msgid "Installing app"
@ -10771,22 +10842,28 @@ msgid " System"
msgstr " Sistema" msgstr " Sistema"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Gestire gli alias"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Cambia password" msgstr "Cambia password"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Spegni" msgstr "Spegni"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Esci" msgstr "Esci"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Seleziona la lingua" msgstr "Seleziona la lingua"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Accedi" msgstr "Accedi"
@ -10824,7 +10901,7 @@ msgstr "Mobile"
#: plinth/templates/clients.html:82 #: plinth/templates/clients.html:82
msgid "Android APK" msgid "Android APK"
msgstr "" msgstr "Android APK"
#: plinth/templates/clients.html:91 #: plinth/templates/clients.html:91
msgid "Play Store" msgid "Play Store"
@ -11040,15 +11117,15 @@ msgstr ""
"Tutti i dati e le configurazioni dell'app verranno rimossi definitivamente. " "Tutti i dati e le configurazioni dell'app verranno rimossi definitivamente. "
"L'app potrà essere reinstallata da zero." "L'app potrà essere reinstallata da zero."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Qui" msgstr "Qui"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Impostazioni invariate" msgstr "Impostazioni invariate"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "Prima della disinstallazione di {app_id}" msgstr "Prima della disinstallazione di {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-10-24 16:02+0000\n" "PO-Revision-Date: 2025-10-24 16:02+0000\n"
"Last-Translator: Jun Nogata <nogajun@gmail.com>\n" "Last-Translator: Jun Nogata <nogajun@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Japanese <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "サービス {service_name} は動作中です" msgstr "サービス {service_name} は動作中です"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -321,6 +321,7 @@ msgstr "リポジトリ"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "名前" msgstr "名前"
@ -1955,6 +1956,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3038,8 +3040,8 @@ msgstr "フィードバックを送る"
msgid "Contribute" msgid "Contribute"
msgstr "協力する" msgstr "協力する"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "詳細" msgstr "詳細"
@ -3177,6 +3179,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3583,7 +3586,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5297,12 +5300,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6169,8 +6178,8 @@ msgstr "再起動"
msgid "Shutdown" msgid "Shutdown"
msgstr "シャットダウン" msgstr "シャットダウン"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "再起動" msgstr "再起動"
@ -8541,7 +8550,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "ユーザーを作成" msgstr "ユーザーを作成"
@ -8583,7 +8592,7 @@ msgid "Skip this step"
msgstr "この手順をスキップ" msgstr "この手順をスキップ"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "ユーザー" msgstr "ユーザー"
@ -8592,77 +8601,177 @@ msgstr "ユーザー"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Local Network Domain"
msgid "For Domain"
msgstr "ローカルネットワーク ドメイン"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create User"
msgid "Last Used"
msgstr "ユーザーを作成"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "キャンセル"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "変更を保存" msgstr "変更を保存"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "キャンセル"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "ユーザーを編集" msgstr "ユーザーを編集"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "パスワードを変更" msgstr "パスワードを変更"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "ユーザーを編集"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9364,22 +9473,28 @@ msgid " System"
msgstr " システム" msgstr " システム"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Change password"
msgid "Manage passkeys"
msgstr "パスワードを変更"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "パスワードを変更" msgstr "パスワードを変更"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "シャットダウン" msgstr "シャットダウン"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "ログアウト" msgstr "ログアウト"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9612,15 +9727,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2020-07-16 16:41+0000\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n"
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n" "Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
"Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್" msgstr "ಫ್ರೀಡಂಬಾಕ್ಸ್"
@ -320,6 +320,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1952,6 +1953,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3035,8 +3037,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "ಬಗ್ಗೆ" msgstr "ಬಗ್ಗೆ"
@ -3174,6 +3176,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3578,7 +3581,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5292,12 +5295,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6164,8 +6173,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8538,7 +8547,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8580,7 +8589,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8589,77 +8598,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9361,22 +9464,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9609,15 +9716,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Lithuanian <https://hosted.weblate.org/projects/freedombox/"
@ -31,7 +31,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -322,6 +322,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1958,6 +1959,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3047,8 +3049,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Apie" msgstr "Apie"
@ -3186,6 +3188,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3590,7 +3593,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5312,12 +5315,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6184,8 +6193,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8562,7 +8571,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8604,7 +8613,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8613,77 +8622,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9385,22 +9488,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9633,15 +9740,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Latvian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -321,6 +321,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1957,6 +1958,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3046,8 +3048,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3185,6 +3187,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3589,7 +3592,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5311,12 +5314,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6183,8 +6192,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8561,7 +8570,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8603,7 +8612,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8612,77 +8621,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9384,22 +9487,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9632,15 +9739,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -15,7 +15,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2024-10-27 23:30+0000\n" "PO-Revision-Date: 2024-10-27 23:30+0000\n"
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n" "Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@ -38,7 +38,7 @@ msgstr "Statisk oppsett {etc_path} er korrekt satt opp"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Tjenesten {service_name} kjører" msgstr "Tjenesten {service_name} kjører"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -355,6 +355,7 @@ msgstr "Kodelager"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Navn" msgstr "Navn"
@ -2256,6 +2257,7 @@ msgstr "IP-adresse"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Handlinger" msgstr "Handlinger"
@ -3511,8 +3513,8 @@ msgstr "Send inn tilbakemeldinger"
msgid "Contribute" msgid "Contribute"
msgstr "Bidra" msgstr "Bidra"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Om" msgstr "Om"
@ -3686,6 +3688,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Lær mer…" msgstr "Lær mer…"
@ -4140,7 +4143,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript lisensinformasjon" msgstr "JavaScript lisensinformasjon"
@ -6159,6 +6162,9 @@ msgstr "Endre oppkobling"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -6166,7 +6172,10 @@ msgid "Error:"
msgstr "feil" msgstr "feil"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Lukk" msgstr "Lukk"
@ -7213,8 +7222,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Slå av" msgstr "Slå av"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Omstart" msgstr "Omstart"
@ -10023,7 +10032,7 @@ msgstr "Lagre passord"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Opprett bruker" msgstr "Opprett bruker"
@ -10068,7 +10077,7 @@ msgid "Skip this step"
msgstr "Hopp over dette steget" msgstr "Hopp over dette steget"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Brukere" msgstr "Brukere"
@ -10077,16 +10086,114 @@ msgstr "Brukere"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Endre bruker %(username)s" msgstr "Endre bruker %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "Denne modulen støtter ikke diagnostikk"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Login" msgstr "Login"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Oppdater oppsett"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Legg til passord"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domene"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Create Connection"
msgid "Last Used"
msgstr "Lage forbindelse"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Slett bruker"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Kanseller"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Rediger bruker <em>%(username)s</em>" msgstr "Rediger bruker <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -10095,67 +10202,79 @@ msgstr ""
"Bruk <a href=\"%(change_password_url)s\">passordsendringsskjemaet</a> for å " "Bruk <a href=\"%(change_password_url)s\">passordsendringsskjemaet</a> for å "
"endre passordet." "endre passordet."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Lagre endringer" msgstr "Lagre endringer"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Delete user <strong>%(username)s</strong> permanently?" #| msgid "Delete user <strong>%(username)s</strong> permanently?"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Slett bruker <strong>%(username)s</strong> for godt?" msgstr "Slett bruker <strong>%(username)s</strong> for godt?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Slett filer" msgstr "Slett filer"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Kanseller"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Password changed successfully." #| msgid "Password changed successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Vellykket passordbytte." msgstr "Vellykket passordbytte."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Bruker %(username)s opprettet." msgstr "Bruker %(username)s opprettet."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Oppdaterte bruker %(username)s." msgstr "Oppdaterte bruker %(username)s."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Rediger bruker" msgstr "Rediger bruker"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "User %(username)s created." #| msgid "User %(username)s created."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Bruker %(username)s opprettet." msgstr "Bruker %(username)s opprettet."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Endre passord" msgstr "Endre passord"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Vellykket passordbytte." msgstr "Vellykket passordbytte."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "En deling ved dette navnet finnes allerede."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Rediger bruker"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard er en rask, moderne og sikker VPN-tunnel." msgstr "WireGuard er en rask, moderne og sikker VPN-tunnel."
@ -10992,22 +11111,28 @@ msgid " System"
msgstr " System" msgstr " System"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage passkeys"
msgstr "Håndter biblioteker"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Endre passord" msgstr "Endre passord"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Slå av" msgstr "Slå av"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Logg ut" msgstr "Logg ut"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Velg språk" msgstr "Velg språk"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Logg inn" msgstr "Logg inn"
@ -11274,15 +11399,15 @@ msgstr ""
"All programdata og oppsett blir permanent borte. Programmet kan installeres " "All programdata og oppsett blir permanent borte. Programmet kan installeres "
"på nytt igjen." "på nytt igjen."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Oppsett uendret" msgstr "Oppsett uendret"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "før avinstallering av {app_id}" msgstr "før avinstallering av {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-09-17 09:01+0000\n" "PO-Revision-Date: 2025-09-17 09:01+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/"
@ -31,7 +31,7 @@ msgstr "Statische configuratie {etc_path} is correct ingesteld"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Container {container_name} wordt uitgevoerd" msgstr "Container {container_name} wordt uitgevoerd"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -349,6 +349,7 @@ msgstr "Repository"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Naam" msgstr "Naam"
@ -2153,6 +2154,7 @@ msgstr "IP Adres"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Acties" msgstr "Acties"
@ -3350,8 +3352,8 @@ msgstr "Feedback indienen"
msgid "Contribute" msgid "Contribute"
msgstr "Bijdragen" msgstr "Bijdragen"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Over ons" msgstr "Over ons"
@ -3531,6 +3533,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Lees meer..." msgstr "Lees meer..."
@ -3984,7 +3987,7 @@ msgstr "Web Conferentie"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript licentie-informatie" msgstr "JavaScript licentie-informatie"
@ -5977,12 +5980,18 @@ msgstr "Wijzig verbinding"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Foutmelding:" msgstr "Foutmelding:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Sluiten" msgstr "Sluiten"
@ -6959,8 +6968,8 @@ msgstr "Herstart"
msgid "Shutdown" msgid "Shutdown"
msgstr "Uitschakelen" msgstr "Uitschakelen"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Herstarten" msgstr "Herstarten"
@ -9696,7 +9705,7 @@ msgstr "Wachtwoord Opslaan"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Nieuwe gebruiker registreren" msgstr "Nieuwe gebruiker registreren"
@ -9747,7 +9756,7 @@ msgid "Skip this step"
msgstr "Deze stap overslaan" msgstr "Deze stap overslaan"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Gebruikers" msgstr "Gebruikers"
@ -9756,16 +9765,114 @@ msgstr "Gebruikers"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Gebruiker %(username)s wijzigen" msgstr "Gebruiker %(username)s wijzigen"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Deze toepassing heeft geen diagnosetests"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Aanmelding" msgstr "Aanmelding"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Instelling bijwerken"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Wachtwoord toevoegen"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domein"
#: 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 "Laatst gescand: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Gebruiker verwijderen"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Annuleer"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Gebruiker <em>%(username)s</em> wijzigen" msgstr "Gebruiker <em>%(username)s</em> wijzigen"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9774,61 +9881,73 @@ msgstr ""
"Gebruik het <a href='%(change_password_url)s'>wachtwoord wijzigingsformulier " "Gebruik het <a href='%(change_password_url)s'>wachtwoord wijzigingsformulier "
"</a> om het wachtwoord te veranderen." "</a> om het wachtwoord te veranderen."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Wijzigingen opslaan" msgstr "Wijzigingen opslaan"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Gebruiker <em>%(username)s</em> en al diens bestanden verwijderen?" msgstr "Gebruiker <em>%(username)s</em> en al diens bestanden verwijderen?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Gebruikers en bestanden verwijderen" msgstr "Gebruikers en bestanden verwijderen"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Annuleer"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Succesvol uitgelogd." msgstr "Succesvol uitgelogd."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Gebruiker %(username)s aangemaakt." msgstr "Gebruiker %(username)s aangemaakt."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Gebruiker %(username)s bijgewerkt." msgstr "Gebruiker %(username)s bijgewerkt."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Gebruiker wijzigen" msgstr "Gebruiker wijzigen"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Gebruiker %(username)s verwijderd." msgstr "Gebruiker %(username)s verwijderd."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Wijzig wachtwoord" msgstr "Wijzig wachtwoord"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Wachtwoord succesvol gewijzigd." msgstr "Wachtwoord succesvol gewijzigd."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Er bestaat al een gedeelde map met deze naam."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Gebruiker wijzigen"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard is een snelle, moderne en veilige VPN-tunnel." msgstr "WireGuard is een snelle, moderne en veilige VPN-tunnel."
@ -10649,22 +10768,28 @@ msgid " System"
msgstr " Systeem" msgstr " Systeem"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Aliassen beheren"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Wijzig wachtwoord" msgstr "Wijzig wachtwoord"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Uitschakelen" msgstr "Uitschakelen"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Afmelden" msgstr "Afmelden"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Selecteer taal" msgstr "Selecteer taal"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Aanmelden" msgstr "Aanmelden"
@ -10923,15 +11048,15 @@ msgstr ""
"Alle toepassings-gegevens en configuratie gaan permanent verloren. de " "Alle toepassings-gegevens en configuratie gaan permanent verloren. de "
"toepassing kan opnieuw vers worden geïnstalleerd." "toepassing kan opnieuw vers worden geïnstalleerd."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Hier" msgstr "Hier"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Instelling onveranderd" msgstr "Instelling onveranderd"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "voor het verwijderen van {app_id}" msgstr "voor het verwijderen van {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2024-07-13 12:09+0000\n" "PO-Revision-Date: 2024-07-13 12:09+0000\n"
"Last-Translator: Monika <adamdomenek@protonmail.com>\n" "Last-Translator: Monika <adamdomenek@protonmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/"
@ -31,7 +31,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Usługa {service_name} jest uruchomiona" msgstr "Usługa {service_name} jest uruchomiona"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -339,6 +339,7 @@ msgstr "Repozytorium"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nazwa" msgstr "Nazwa"
@ -2241,6 +2242,7 @@ msgstr "Adresy IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Akcje" msgstr "Akcje"
@ -3482,8 +3484,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "O FreedomBox" msgstr "O FreedomBox"
@ -3634,6 +3636,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Dowiedz się więcej..." msgstr "Dowiedz się więcej..."
@ -4050,7 +4053,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Informacje o licencji JavaScript" msgstr "Informacje o licencji JavaScript"
@ -5906,6 +5909,9 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -5913,7 +5919,10 @@ msgid "Error:"
msgstr "błąd" msgstr "błąd"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6820,8 +6829,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "Wyłącz" msgstr "Wyłącz"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Uruchom ponownie" msgstr "Uruchom ponownie"
@ -9381,7 +9390,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9428,7 +9437,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9437,83 +9446,191 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
#, fuzzy
#| msgid "This module does not support diagnostics"
msgid "Browser does not support passkeys."
msgstr "Ten moduł nie obsługuje diagnostyki"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Aktualizuj ustawienia"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Dodaj hasło"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domena"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Used"
msgid "Last Used"
msgstr "W użyciu"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
msgid "Delete passkey"
msgstr "Usuń"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Anuluj"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Edytuj Użytkownika <em>%(username)s</em>" msgstr "Edytuj Użytkownika <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Edit User <em>%(username)s</em>" #| msgid "Edit User <em>%(username)s</em>"
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Edytuj Użytkownika <em>%(username)s</em>" msgstr "Edytuj Użytkownika <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Usuń pliki" msgstr "Usuń pliki"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Anuluj"
#: plinth/modules/users/views.py:87
#, fuzzy #, fuzzy
#| msgid "Partition expanded successfully." #| msgid "Partition expanded successfully."
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Partycja rozszerzona." msgstr "Partycja rozszerzona."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "{name} deleted." #| msgid "{name} deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Usunięto {name}." msgstr "Usunięto {name}."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "Remote backup repository already exists."
msgid "Passkey with that identifier already exists."
msgstr "Zdalne repozytorium już istnieje."
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -10327,24 +10444,30 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Create Repository"
msgid "Manage passkeys"
msgstr "Utwórz repozytorium"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Zmień hasło" msgstr "Zmień hasło"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Wyłącz" msgstr "Wyłącz"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Wyloguj się" msgstr "Wyloguj się"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
#, fuzzy #, fuzzy
#| msgid "Language" #| msgid "Language"
msgid "Select language" msgid "Select language"
msgstr "Język" msgstr "Język"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Zaloguj się" msgstr "Zaloguj się"
@ -10603,15 +10726,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Ustawienie bez zmian" msgstr "Ustawienie bez zmian"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-04-09 22:41+0000\n" "PO-Revision-Date: 2025-04-09 22:41+0000\n"
"Last-Translator: tuliogit <wikigeolog@gmx.com>\n" "Last-Translator: tuliogit <wikigeolog@gmx.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Configuração estática {etc_path} está estabelecida propriamente"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "O serviço {service_name} está em execução" msgstr "O serviço {service_name} está em execução"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "Freedombox" msgstr "Freedombox"
@ -353,6 +353,7 @@ msgstr "Repositório"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
@ -2183,6 +2184,7 @@ msgstr "Endereço IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Ações" msgstr "Ações"
@ -3406,8 +3408,8 @@ msgstr "Enviar feedback"
msgid "Contribute" msgid "Contribute"
msgstr "Contribuir" msgstr "Contribuir"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
@ -3583,6 +3585,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Saber mais..." msgstr "Saber mais..."
@ -4048,7 +4051,7 @@ msgstr "Conferência web"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Informações sobre a licença JavaScript" msgstr "Informações sobre a licença JavaScript"
@ -6052,12 +6055,18 @@ msgstr "Editar ligação"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Erro:" msgstr "Erro:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Fechar" msgstr "Fechar"
@ -7041,8 +7050,8 @@ msgstr "Reinício"
msgid "Shutdown" msgid "Shutdown"
msgstr "Desligar" msgstr "Desligar"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
@ -9874,7 +9883,7 @@ msgstr "Salvar senha"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Criar utilizador" msgstr "Criar utilizador"
@ -9930,7 +9939,7 @@ msgid "Skip this step"
msgstr "Pular esta etapa" msgstr "Pular esta etapa"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Usuários" msgstr "Usuários"
@ -9939,16 +9948,114 @@ msgstr "Usuários"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Editar utilizador %(username)s" msgstr "Editar utilizador %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Este aplicativo não oferece suporte a diagnósticos"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Iniciar sessão" msgstr "Iniciar sessão"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Atualizar configuração"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Adicionar senha"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domínio"
#: 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 "Última digitalização: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Excluir usuário"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Cancelar"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Editar utilizador <em>%(username)s</em>" msgstr "Editar utilizador <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9957,19 +10064,19 @@ msgstr ""
"Use o <a href=\"%(change_password_url)s\">formulário de alteração de senha</" "Use o <a href=\"%(change_password_url)s\">formulário de alteração de senha</"
"a> para alterar a senha." "a> para alterar a senha."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Salvar alterações" msgstr "Salvar alterações"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
"Excluir o usuário &lt;em&gt;%(username)s&lt;/em&gt; e todos os arquivos do " "Excluir o usuário &lt;em&gt;%(username)s&lt;/em&gt; e todos os arquivos do "
"usuário?" "usuário?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9978,45 +10085,57 @@ msgstr ""
"inicial do usuário. Se desejar manter esses arquivos, desative a conta de " "inicial do usuário. Se desejar manter esses arquivos, desative a conta de "
"usuário." "usuário."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Excluir usuário e arquivos" msgstr "Excluir usuário e arquivos"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Cancelar"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Sessão terminada com sucesso." msgstr "Sessão terminada com sucesso."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Usuário %(username)s criado." msgstr "Usuário %(username)s criado."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Usuário %(username)s atualizado." msgstr "Usuário %(username)s atualizado."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Editar usuário" msgstr "Editar usuário"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Usuário %(username)s excluído." msgstr "Usuário %(username)s excluído."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Alterar a senha" msgstr "Alterar a senha"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Senha alterada com sucesso." msgstr "Senha alterada com sucesso."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Já existe um compartilhamento com esse nome."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Editar usuário"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "O WireGuard é um túnel VPN rápido, moderno e seguro." msgstr "O WireGuard é um túnel VPN rápido, moderno e seguro."
@ -10829,22 +10948,28 @@ msgid " System"
msgstr " Sistema" msgstr " Sistema"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Gerenciar aliases"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Alterar palavra-passe" msgstr "Alterar palavra-passe"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Desligar" msgstr "Desligar"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Terminar sessão" msgstr "Terminar sessão"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Selecionar idioma" msgstr "Selecionar idioma"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Iniciar sessão" msgstr "Iniciar sessão"
@ -11103,15 +11228,15 @@ msgstr ""
"Todos os dados e configurações do aplicativo serão perdidos permanentemente. " "Todos os dados e configurações do aplicativo serão perdidos permanentemente. "
"O aplicativo poderá ser instalado novamente." "O aplicativo poderá ser instalado novamente."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Aqui" msgstr "Aqui"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Definição inalterada" msgstr "Definição inalterada"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "antes da desinstalação do {app_id}" msgstr "antes da desinstalação do {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-15 18:09+0000\n" "PO-Revision-Date: 2026-03-15 18:09+0000\n"
"Last-Translator: OwlGale <owlgale@users.noreply.hosted.weblate.org>\n" "Last-Translator: OwlGale <owlgale@users.noreply.hosted.weblate.org>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Статическая конфигурация {etc_path} правил
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Контейнер {container_name} запущен" msgstr "Контейнер {container_name} запущен"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -351,6 +351,7 @@ msgstr "Репозиторий"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Имя" msgstr "Имя"
@ -2144,6 +2145,7 @@ msgstr "IP-адреса"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Действия" msgstr "Действия"
@ -3360,8 +3362,8 @@ msgstr "Отправить отзыв"
msgid "Contribute" msgid "Contribute"
msgstr "Помочь проекту" msgstr "Помочь проекту"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "О проекте" msgstr "О проекте"
@ -3536,6 +3538,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Подробнее..." msgstr "Подробнее..."
@ -4015,7 +4018,7 @@ msgstr "Веб-конференция"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Информация о лицензии JavaScript" msgstr "Информация о лицензии JavaScript"
@ -6013,12 +6016,18 @@ msgstr "Редактирование подключения"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Ошибка:" msgstr "Ошибка:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Закрыть" msgstr "Закрыть"
@ -7001,8 +7010,8 @@ msgstr "Перезагрузка"
msgid "Shutdown" msgid "Shutdown"
msgstr "Выключить" msgstr "Выключить"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Перезапустить" msgstr "Перезапустить"
@ -9811,7 +9820,7 @@ msgstr "Сохранить пароль"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Создать пользователя" msgstr "Создать пользователя"
@ -9862,7 +9871,7 @@ msgid "Skip this step"
msgstr "Пропустить этот шаг" msgstr "Пропустить этот шаг"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Пользователи" msgstr "Пользователи"
@ -9871,16 +9880,114 @@ msgstr "Пользователи"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Редактирование пользователя %(username)s" msgstr "Редактирование пользователя %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Это приложение не поддерживает диагностику"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Войти" msgstr "Войти"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Обновить настройки"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Добавить пароль"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "Последнее сканирование: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Удалить пользователя"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Отмена"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Редактировать пользователя <em>%(username)s</em>" msgstr "Редактировать пользователя <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9889,17 +9996,17 @@ msgstr ""
"Для смены пароля используйте форму <a " "Для смены пароля используйте форму <a "
"href=\"%(change_password_url)s\">Изменить пароль</a>." "href=\"%(change_password_url)s\">Изменить пароль</a>."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Сохранить изменения" msgstr "Сохранить изменения"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Удалить пользователя <em>%(username)s</em> и все его файлы?" msgstr "Удалить пользователя <em>%(username)s</em> и все его файлы?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9908,45 +10015,57 @@ msgstr ""
"домашнего каталога. Если вы хотите сохранить эти файлы, отключите учетную " "домашнего каталога. Если вы хотите сохранить эти файлы, отключите учетную "
"запись пользователя." "запись пользователя."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Удаление пользователя и файлов" msgstr "Удаление пользователя и файлов"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Отмена"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Выход выполнен успешно." msgstr "Выход выполнен успешно."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Пользователь %(username)s создан." msgstr "Пользователь %(username)s создан."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Пользователь %(username)s обновлен." msgstr "Пользователь %(username)s обновлен."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Редактирование пользователя" msgstr "Редактирование пользователя"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Пользователь %(username)s удален." msgstr "Пользователь %(username)s удален."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Изменить пароль" msgstr "Изменить пароль"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Пароль успешно изменён." msgstr "Пароль успешно изменён."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Общий ресурс с таким именем уже существует."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Редактирование пользователя"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard - это быстрый, современный и безопасный VPN-туннель." msgstr "WireGuard - это быстрый, современный и безопасный VPN-туннель."
@ -10751,22 +10870,28 @@ msgid " System"
msgstr " Система" msgstr " Система"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Управление псевдонимами"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Изменить пароль" msgstr "Изменить пароль"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Завершить работу" msgstr "Завершить работу"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Выход" msgstr "Выход"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Выбрать язык" msgstr "Выбрать язык"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Войти" msgstr "Войти"
@ -11020,15 +11145,15 @@ msgstr ""
"Все данные и настройки приложения будут безвозвратно утеряны. Приложение " "Все данные и настройки приложения будут безвозвратно утеряны. Приложение "
"можно установить заново." "можно установить заново."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Здесь" msgstr "Здесь"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Настройки без изменений" msgstr "Настройки без изменений"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "перед удалением {app_id}" msgstr "перед удалением {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2021-04-27 13:32+0000\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n"
"Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n" "Last-Translator: HelaBasa <R45XvezA@protonmail.ch>\n"
"Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Sinhala <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ෆ්‍රීඩම්බොක්ස්" msgstr "ෆ්‍රීඩම්බොක්ස්"
@ -320,6 +320,7 @@ msgstr ""
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1952,6 +1953,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3035,8 +3037,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "පිළිබඳව" msgstr "පිළිබඳව"
@ -3174,6 +3176,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3578,7 +3581,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5292,12 +5295,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6164,8 +6173,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8536,7 +8545,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8578,7 +8587,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8587,77 +8596,171 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
msgid "For Domain"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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
msgid "Delete passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9359,22 +9462,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9607,15 +9714,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:19+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "" msgstr ""
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -342,6 +342,7 @@ msgstr "Ustvari novo skladišče"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Ime" msgstr "Ime"
@ -2136,6 +2137,7 @@ msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3293,8 +3295,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3432,6 +3434,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3839,7 +3842,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5621,12 +5624,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6517,8 +6526,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8976,7 +8985,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9018,7 +9027,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9027,80 +9036,180 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain Name"
msgid "For Domain"
msgstr "Ime domene"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 Archive"
msgid "Delete passkey"
msgstr "Izbriši arhiv"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Prekliči"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete Archive" #| msgid "Delete Archive"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Izbriši arhiv" msgstr "Izbriši arhiv"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Prekliči"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "Archive deleted." #| msgid "Archive deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Arhiv je izbrisan." msgstr "Arhiv je izbrisan."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "Create remote backup repository"
msgid "Passkey with that identifier already exists."
msgstr "Ustvari oddaljeno skladišče za rezervne kopije"
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9853,22 +9962,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Create new repository"
msgid "Manage passkeys"
msgstr "Ustvari novo skladišče"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10108,15 +10223,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-26 09:09+0000\n" "PO-Revision-Date: 2026-03-26 09:09+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n" "Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Formësimi statik {etc_path} është ujdisur si duhet"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Kontejneri {container_name} po xhiron" msgstr "Kontejneri {container_name} po xhiron"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -347,6 +347,7 @@ msgstr "Depo"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Emër" msgstr "Emër"
@ -2138,6 +2139,7 @@ msgstr "Adresë IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Veprime" msgstr "Veprime"
@ -3354,8 +3356,8 @@ msgstr "Parashtroni Përshtypjet"
msgid "Contribute" msgid "Contribute"
msgstr "Jepni Ndihmesë" msgstr "Jepni Ndihmesë"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Mbi" msgstr "Mbi"
@ -3533,6 +3535,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Mësoni më tepër…" msgstr "Mësoni më tepër…"
@ -4020,7 +4023,7 @@ msgstr "Konferencë Web"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Hollësi licence JavaScript" msgstr "Hollësi licence JavaScript"
@ -6027,12 +6030,18 @@ msgstr "Përpunoni Lidhje"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Gabim:" msgstr "Gabim:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Mbylle" msgstr "Mbylle"
@ -7011,8 +7020,8 @@ msgstr "Rinisu"
msgid "Shutdown" msgid "Shutdown"
msgstr "Fike" msgstr "Fike"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Rinise" msgstr "Rinise"
@ -9827,7 +9836,7 @@ msgstr "Ruaje Fjalëkalimin"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Krijoni Përdorues" msgstr "Krijoni Përdorues"
@ -9879,7 +9888,7 @@ msgid "Skip this step"
msgstr "Anashkalojeni këtë hap" msgstr "Anashkalojeni këtë hap"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Përdorues" msgstr "Përdorues"
@ -9888,16 +9897,114 @@ msgstr "Përdorues"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Përpunoni përdoruesin %(username)s" msgstr "Përpunoni përdoruesin %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Ky aplikacion s’mbulon diagnostikime"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Hyrje" msgstr "Hyrje"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Përditësoni ujdisjen"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Shtoni fjalëkalim"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Përkatësi"
#: 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 "Skanuar së fundi më: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Fshi përdorues"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Anuloje"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Përpunoni Përdoruesin <em>%(username)s</em>" msgstr "Përpunoni Përdoruesin <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9907,17 +10014,17 @@ msgstr ""
"href=\"%(change_password_url)s\">formularin e ndryshimit të fjalëkalimeve</" "href=\"%(change_password_url)s\">formularin e ndryshimit të fjalëkalimeve</"
"a>." "a>."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Ruaji Ndryshimet" msgstr "Ruaji Ndryshimet"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Të fshihet përdoruesi %(username)s dhe krejt kartelat e përdoruesit?" msgstr "Të fshihet përdoruesi %(username)s dhe krejt kartelat e përdoruesit?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9926,45 +10033,57 @@ msgstr ""
"të përdoruesit. Nëse dëshironi t’i mbani këto kartela, më mirë çaktivizoni " "të përdoruesit. Nëse dëshironi t’i mbani këto kartela, më mirë çaktivizoni "
"llogarinë e përdoruesit." "llogarinë e përdoruesit."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Fshini përdorues dhe kartela" msgstr "Fshini përdorues dhe kartela"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Anuloje"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "U dol me sukses." msgstr "U dol me sukses."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Përdoruesi %(username)s u krijua." msgstr "Përdoruesi %(username)s u krijua."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Përdoruesi %(username)s u përditësua." msgstr "Përdoruesi %(username)s u përditësua."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Përpunoni Përdorues" msgstr "Përpunoni Përdorues"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Përdoruesi %(username)s u fshi." msgstr "Përdoruesi %(username)s u fshi."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Ndryshoni Fjalëkalimin" msgstr "Ndryshoni Fjalëkalimin"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Fjalëkalimi u ndryshua me sukses." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Përpunoni Përdorues"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard-i është një tunel VPN i shpejtë, modern, i sigurt." msgstr "WireGuard-i është një tunel VPN i shpejtë, modern, i sigurt."
@ -10754,22 +10873,28 @@ msgid " System"
msgstr " Sistem" msgstr " Sistem"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Administroni Aliase"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Ndryshoni fjalëkalimin" msgstr "Ndryshoni fjalëkalimin"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Fike" msgstr "Fike"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Dil" msgstr "Dil"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Përzgjidhni gjuhën" msgstr "Përzgjidhni gjuhën"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Hyni" msgstr "Hyni"
@ -11022,15 +11147,15 @@ msgstr ""
"Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. " "Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. "
"Aplikacioni mund të instalohet sërish nga e para." "Aplikacioni mund të instalohet sërish nga e para."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Këtu" msgstr "Këtu"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Rregullim i pandryshuar" msgstr "Rregullim i pandryshuar"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "para çinstalimit të {app_id}" msgstr "para çinstalimit të {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2022-09-14 17:20+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n"
"Last-Translator: ikmaak <info@ikmaak.nl>\n" "Last-Translator: ikmaak <info@ikmaak.nl>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/"
@ -31,7 +31,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Servis {service_name} je pokrenut" msgstr "Servis {service_name} je pokrenut"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "KutijaSlobode" msgstr "KutijaSlobode"
@ -342,6 +342,7 @@ msgstr "Kreirajte repozitorij"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Ime" msgstr "Ime"
@ -2089,6 +2090,7 @@ msgstr "IP adrese"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3207,8 +3209,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3348,6 +3350,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3756,7 +3759,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5526,12 +5529,18 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "" msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6416,8 +6425,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8847,7 +8856,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8889,7 +8898,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8898,79 +8907,177 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_login.html:41
#: plinth/modules/users/templates/users_passkeys.html:41
msgid "Browser does not support passkeys."
msgstr ""
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:83
#: plinth/modules/users/templates/users_passkeys.html:85
msgid "Add passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain Names"
msgid "For Domain"
msgstr "Domeni"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 Archive"
msgid "Delete passkey"
msgstr "Izbriši arhivu"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete Archive" #| msgid "Delete Archive"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Izbriši arhivu" msgstr "Izbriši arhivu"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
msgid "Passkey with that identifier already exists."
msgstr ""
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9684,22 +9791,26 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
msgid "Manage passkeys"
msgstr ""
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -9938,15 +10049,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-11 22:09+0000\n" "PO-Revision-Date: 2026-03-11 22:09+0000\n"
"Last-Translator: Daniel Wiik <d.wiik@outlook.com>\n" "Last-Translator: Daniel Wiik <d.wiik@outlook.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "Statisk konfiguration {etc_path} är inställd korrekt"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Tjänsten {container_name} körs" msgstr "Tjänsten {container_name} körs"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -345,6 +345,7 @@ msgstr "Databasen"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Namn" msgstr "Namn"
@ -2125,6 +2126,7 @@ msgstr "IP Adress"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Åtgärder" msgstr "Åtgärder"
@ -3330,8 +3332,8 @@ msgstr "Skicka feedback"
msgid "Contribute" msgid "Contribute"
msgstr "Bidrar" msgstr "Bidrar"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Om" msgstr "Om"
@ -3507,6 +3509,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Läs mer..." msgstr "Läs mer..."
@ -3984,7 +3987,7 @@ msgstr "Webbkonferens"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript-licensinformation" msgstr "JavaScript-licensinformation"
@ -5973,12 +5976,18 @@ msgstr "Redigera Anslutning"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Fel:" msgstr "Fel:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Stäng" msgstr "Stäng"
@ -6954,8 +6963,8 @@ msgstr "Omstart"
msgid "Shutdown" msgid "Shutdown"
msgstr "Avstängning" msgstr "Avstängning"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Starta om" msgstr "Starta om"
@ -9738,7 +9747,7 @@ msgstr "Spara lösenord"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Skapa användare" msgstr "Skapa användare"
@ -9788,7 +9797,7 @@ msgid "Skip this step"
msgstr "Hoppa över det här steget" msgstr "Hoppa över det här steget"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Användare" msgstr "Användare"
@ -9797,16 +9806,114 @@ msgstr "Användare"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Redigera användare %(username)s" msgstr "Redigera användare %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Den här appen stöder inte diagnostik"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Logga in" 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 ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Uppdatera inställningar"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Lägg till lösenord"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Domän"
#: 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 "Senast skannad: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Radera användare"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Avbryt"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Redigera användare <em>%(username)s</em>" msgstr "Redigera användare <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9815,17 +9922,17 @@ msgstr ""
"Använd <a href=\"%(change_password_url)s\">ändra lösenord </a> för att ändra " "Använd <a href=\"%(change_password_url)s\">ändra lösenord </a> för att ändra "
"lösenordet." "lösenordet."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Spara ändringar" msgstr "Spara ändringar"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Ta bort användaren <em>%(username)s</em> och alla användarens filer?" msgstr "Ta bort användaren <em>%(username)s</em> och alla användarens filer?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9834,45 +9941,57 @@ msgstr ""
"hemkatalog. Om du vill behålla dessa filer, inaktivera användarkontot " "hemkatalog. Om du vill behålla dessa filer, inaktivera användarkontot "
"istället." "istället."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Ta bort användare och filer" msgstr "Ta bort användare och filer"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Avbryt"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Du har loggat ut framgångsrikt." msgstr "Du har loggat ut framgångsrikt."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Användaren %(username)s skapades." msgstr "Användaren %(username)s skapades."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Användaren %(username)s har uppdaterats." msgstr "Användaren %(username)s har uppdaterats."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Redigera användar" msgstr "Redigera användar"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Användare %(username)s raderades." msgstr "Användare %(username)s raderades."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Ändra lösenord" msgstr "Ändra lösenord"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Lösenordet har ändrats." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Redigera användar"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard är en snabb, modern, säker VPN-tunnel." msgstr "WireGuard är en snabb, modern, säker VPN-tunnel."
@ -10658,22 +10777,28 @@ msgid " System"
msgstr " System" msgstr " System"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Hantera alias"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Ändra lösenord" msgstr "Ändra lösenord"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Stänga ner" msgstr "Stänga ner"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Logga ut" msgstr "Logga ut"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Välj språk" msgstr "Välj språk"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Logga in" msgstr "Logga in"
@ -10928,15 +11053,15 @@ msgstr ""
"All appdata och konfiguration kommer att gå förlorad permanent. Appen kan " "All appdata och konfiguration kommer att gå förlorad permanent. Appen kan "
"installeras på nytt igen." "installeras på nytt igen."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Här" msgstr "Här"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Instänllningar oförändrade" msgstr "Instänllningar oförändrade"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "innan du avinstallerar {app_id}" msgstr "innan du avinstallerar {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-02 19:53+0000\n" "PO-Revision-Date: 2026-03-02 19:53+0000\n"
"Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n" "Last-Translator: James Valleroy <jvalleroy@mailbox.org>\n"
"Language-Team: Tamil <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Tamil <https://hosted.weblate.org/projects/freedombox/"
@ -29,7 +29,7 @@ msgstr "நிலையான உள்ளமைவு {etc_path} சரிய
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "கொள்கலன் {container_name} இயங்குகிறது" msgstr "கொள்கலன் {container_name} இயங்குகிறது"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "கட்டற்றபெட்டி" msgstr "கட்டற்றபெட்டி"
@ -346,6 +346,7 @@ msgstr "களஞ்சியம்"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "பெயர்" msgstr "பெயர்"
@ -2128,6 +2129,7 @@ msgstr "ஐபி முகவரி"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "செயல்கள்" msgstr "செயல்கள்"
@ -3331,8 +3333,8 @@ msgstr "கருத்துக்களை சமர்ப்பிக்க
msgid "Contribute" msgid "Contribute"
msgstr "பங்களிப்பு" msgstr "பங்களிப்பு"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "பற்றி" msgstr "பற்றி"
@ -3505,6 +3507,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "மேலும் அறிக ..." msgstr "மேலும் அறிக ..."
@ -3977,7 +3980,7 @@ msgstr "வலை மாநாடு"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "சாவாச்கிரிப்ட் உரிம செய்தி" msgstr "சாவாச்கிரிப்ட் உரிம செய்தி"
@ -5943,12 +5946,18 @@ msgstr "இணைப்பைத் திருத்து"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "பிழை:" msgstr "பிழை:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "மூடு" msgstr "மூடு"
@ -6921,8 +6930,8 @@ msgstr "மறுதொடக்கம் செய்யுங்கள்"
msgid "Shutdown" msgid "Shutdown"
msgstr "பணிநிறுத்தம்" msgstr "பணிநிறுத்தம்"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "மறுதொடக்கம்" msgstr "மறுதொடக்கம்"
@ -9684,7 +9693,7 @@ msgstr "கடவுச்சொல்லைச் சேமிக்கவு
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "பயனரை உருவாக்கு" msgstr "பயனரை உருவாக்கு"
@ -9734,7 +9743,7 @@ msgid "Skip this step"
msgstr "இந்த படியைத் தவிர்க்கவும்" msgstr "இந்த படியைத் தவிர்க்கவும்"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "பயனர்கள்" msgstr "பயனர்கள்"
@ -9743,16 +9752,114 @@ msgstr "பயனர்கள்"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "பயனர் %(username)s திருத்து" msgstr "பயனர் %(username)s திருத்து"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "இந்த பயன்பாடு கண்டறிதலை ஆதரிக்கவில்லை"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "புகுபதிவு" msgstr "புகுபதிவு"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "புதுப்பிப்பு அமைவு"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "கடவுச்சொல்லைச் சேர்க்கவும்"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "கடைசியாக ச்கேன்: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "பயனரை நீக்கு"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "ரத்துசெய்"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "பயனர் <em>%(username)s </em> ஐத் திருத்தவும்" msgstr "பயனர் <em>%(username)s </em> ஐத் திருத்தவும்"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9761,17 +9868,17 @@ msgstr ""
"கடவுச்சொல்லை மாற்ற <a href=\"%(change_password_url)s\"> கடவுச்சொல் படிவத்தை " "கடவுச்சொல்லை மாற்ற <a href=\"%(change_password_url)s\"> கடவுச்சொல் படிவத்தை "
"மாற்றவும் </a> ஐப் பயன்படுத்தவும்." "மாற்றவும் </a> ஐப் பயன்படுத்தவும்."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "மாற்றங்களைச் சேமிக்கவும்" msgstr "மாற்றங்களைச் சேமிக்கவும்"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "பயனர் <em>%(username)s </em> மற்றும் பயனரின் அனைத்து கோப்புகளையும் நீக்கு?" msgstr "பயனர் <em>%(username)s </em> மற்றும் பயனரின் அனைத்து கோப்புகளையும் நீக்கு?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9779,45 +9886,57 @@ msgstr ""
"ஒரு பயனர் கணக்கை நீக்குவது பயனரின் வீட்டு அடைவு அனைத்து கோப்புகளையும் நீக்குகிறது. இந்த " "ஒரு பயனர் கணக்கை நீக்குவது பயனரின் வீட்டு அடைவு அனைத்து கோப்புகளையும் நீக்குகிறது. இந்த "
"கோப்புகளை வைத்திருக்க விரும்பினால், அதற்கு பதிலாக பயனர் கணக்கை முடக்கவும்." "கோப்புகளை வைத்திருக்க விரும்பினால், அதற்கு பதிலாக பயனர் கணக்கை முடக்கவும்."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "பயனர் மற்றும் கோப்புகளை நீக்கவும்" msgstr "பயனர் மற்றும் கோப்புகளை நீக்கவும்"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "ரத்துசெய்"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "வெற்றிகரமாக உள்நுழைந்தது." msgstr "வெற்றிகரமாக உள்நுழைந்தது."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "பயனர் %(username)s உருவாக்கப்பட்டது." msgstr "பயனர் %(username)s உருவாக்கப்பட்டது."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "பயனர் %(username)s புதுப்பிக்கப்பட்டன." msgstr "பயனர் %(username)s புதுப்பிக்கப்பட்டன."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "பயனரைத் திருத்து" msgstr "பயனரைத் திருத்து"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "பயனர் %(username)s நீக்கப்பட்டன." msgstr "பயனர் %(username)s நீக்கப்பட்டன."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "கடவுச்சொல்லை மாற்றவும்" msgstr "கடவுச்சொல்லை மாற்றவும்"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது." msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "இந்த பெயருடன் ஒரு பங்கு ஏற்கனவே உள்ளது."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "பயனரைத் திருத்து"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "வயர்கார்ட் ஒரு வேகமான, நவீன, பாதுகாப்பான விபிஎன் சுரங்கப்பாதை." msgstr "வயர்கார்ட் ஒரு வேகமான, நவீன, பாதுகாப்பான விபிஎன் சுரங்கப்பாதை."
@ -10607,22 +10726,28 @@ msgid " System"
msgstr " அமைப்பு" msgstr " அமைப்பு"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "மாற்றுப்பெயர்களை நிர்வகிக்கவும்"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "கடவுச்சொல்லை மாற்றவும்" msgstr "கடவுச்சொல்லை மாற்றவும்"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "மூடு" msgstr "மூடு"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "விடுபதிகை" msgstr "விடுபதிகை"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "மொழியைத் தேர்ந்தெடுக்கவும்" msgstr "மொழியைத் தேர்ந்தெடுக்கவும்"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "புகுபதிகை" msgstr "புகுபதிகை"
@ -10872,15 +10997,15 @@ msgstr ""
"அனைத்து பயன்பாட்டு தரவு மற்றும் உள்ளமைவும் நிரந்தரமாக இழக்கப்படும். பயன்பாடு மீண்டும் " "அனைத்து பயன்பாட்டு தரவு மற்றும் உள்ளமைவும் நிரந்தரமாக இழக்கப்படும். பயன்பாடு மீண்டும் "
"புதிதாக நிறுவப்படலாம்." "புதிதாக நிறுவப்படலாம்."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "இங்கே" msgstr "இங்கே"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "மாறாமல் அமைத்தல்" msgstr "மாறாமல் அமைத்தல்"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "{app_id} ஐ நிறுவல் நீக்குவதற்கு முன்" msgstr "{app_id} ஐ நிறுவல் நீக்குவதற்கு முன்"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: FreedomBox UI\n" "Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-05-14 17:03+0000\n" "PO-Revision-Date: 2025-05-14 17:03+0000\n"
"Last-Translator: Sripath Roy Koganti <sripathroy@swecha.net>\n" "Last-Translator: Sripath Roy Koganti <sripathroy@swecha.net>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/"
@ -32,7 +32,7 @@ msgstr "స్టాటిక్ కాన్ఫిగరేషన్ {etc_path}
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{service_name} సేవ అమలులో ఉంది" msgstr "{service_name} సేవ అమలులో ఉంది"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "ఫ్రీడమ్‌బాక్స్" msgstr "ఫ్రీడమ్‌బాక్స్"
@ -346,6 +346,7 @@ msgstr "రిపోజిటరీ"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "పేరు" msgstr "పేరు"
@ -2129,6 +2130,7 @@ msgstr "IP చిరునామా"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "చర్యలు" msgstr "చర్యలు"
@ -3307,8 +3309,8 @@ msgstr "అభిప్రాయాన్ని సమర్పించండ
msgid "Contribute" msgid "Contribute"
msgstr "దోహదం చేయండి" msgstr "దోహదం చేయండి"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "గురించి" msgstr "గురించి"
@ -3475,6 +3477,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "మరింత తెలుసుకోండి.." msgstr "మరింత తెలుసుకోండి.."
@ -3930,7 +3933,7 @@ msgstr "వెబ్ కాన్ఫరెన్స్"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం" msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం"
@ -5843,12 +5846,18 @@ msgstr "అనుసంధానాన్ని సవరించండి"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "లోపం:" msgstr "లోపం:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "దగ్గరగా" msgstr "దగ్గరగా"
@ -6799,8 +6808,8 @@ msgstr "రీబూట్ చేయండి"
msgid "Shutdown" msgid "Shutdown"
msgstr "షట్డౌన్" msgstr "షట్డౌన్"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "పునఃప్రారంభించండి" msgstr "పునఃప్రారంభించండి"
@ -9499,7 +9508,7 @@ msgstr "పాస్‌వర్డ్‌ను సేవ్ చేయి"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "వినియోగదారుని సృష్టించు" msgstr "వినియోగదారుని సృష్టించు"
@ -9553,7 +9562,7 @@ msgid "Skip this step"
msgstr "ఈ దశను దాటవేయి" msgstr "ఈ దశను దాటవేయి"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "వినియోగదారులు" msgstr "వినియోగదారులు"
@ -9562,16 +9571,114 @@ msgstr "వినియోగదారులు"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "%(username)s వినియోగదారుని మార్చు" msgstr "%(username)s వినియోగదారుని మార్చు"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "ఈ యాప్ డయాగ్నస్టిక్స్‌కు మద్దతు ఇవ్వదు"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "ప్రవేశించు" msgstr "ప్రవేశించు"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "అమరికను నవీకరించు"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "రహస్యపదం జోడించండి"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "చివరిగా స్కాన్ చేయబడినది "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "వినియోగదారుని తొలగించు"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "రద్దుచేయి"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "వినియోగదారు%(username)sని సవరించండి" msgstr "వినియోగదారు%(username)sని సవరించండి"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9580,17 +9687,17 @@ msgstr ""
"పాస్వర్డ్ను మార్చడానికి <a href=\"%(change_password_url)s\">పాస్వర్డ్ మాచ్రు ఫారం</a>ని " "పాస్వర్డ్ను మార్చడానికి <a href=\"%(change_password_url)s\">పాస్వర్డ్ మాచ్రు ఫారం</a>ని "
"ఉపయోగించండి." "ఉపయోగించండి."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "మార్పులను భద్రపరుచు" msgstr "మార్పులను భద్రపరుచు"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "%(username)s వినియోగదారుని శాశ్వతంగా తొలగించు?" msgstr "%(username)s వినియోగదారుని శాశ్వతంగా తొలగించు?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9598,45 +9705,57 @@ msgstr ""
"వినియోగదారు ఖాతాను తొలగించడం వలన వినియోగదారు హోమ్ డైరెక్టరీలోని అన్ని ఫైల్‌లు కూడా తొలగించబడతాయి. మీరు ఈ " "వినియోగదారు ఖాతాను తొలగించడం వలన వినియోగదారు హోమ్ డైరెక్టరీలోని అన్ని ఫైల్‌లు కూడా తొలగించబడతాయి. మీరు ఈ "
"ఫైల్‌లను ఉంచాలనుకుంటే, బదులుగా వినియోగదారు ఖాతాను నిలిపివేయండి." "ఫైల్‌లను ఉంచాలనుకుంటే, బదులుగా వినియోగదారు ఖాతాను నిలిపివేయండి."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "వినియోగదారు మరియు ఫైల్‌లను తొలగించండి" msgstr "వినియోగదారు మరియు ఫైల్‌లను తొలగించండి"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "రద్దుచేయి"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "విజయవంతంగా లాగ్ అవుట్ చేయబడింది." msgstr "విజయవంతంగా లాగ్ అవుట్ చేయబడింది."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "వినియోగదారి %(username)s సృష్టించబడ్డారు." msgstr "వినియోగదారి %(username)s సృష్టించబడ్డారు."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "వినియోగదారి %(username)s నావీకరించబడ్డాడు." msgstr "వినియోగదారి %(username)s నావీకరించబడ్డాడు."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "వినియోగదారి మార్పు" msgstr "వినియోగదారి మార్పు"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "వినియోగదారు %(username)s తొలగించబడ్డారు." msgstr "వినియోగదారు %(username)s తొలగించబడ్డారు."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "పాస్‌వర్డ్ మార్చు" msgstr "పాస్‌వర్డ్ మార్చు"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "పాస్‌వర్డ్ విజయవంతంగా మార్చబడినది." msgstr "పాస్‌వర్డ్ విజయవంతంగా మార్చబడినది."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "ఈ పేరుతో ఒక వాటా ఇప్పటికే ఉంది."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "వినియోగదారి మార్పు"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "వైర్‌గార్డ్ వేగవంతమైన, ఆధునిక, సురక్షితమైన వపన్ సొరంగం." msgstr "వైర్‌గార్డ్ వేగవంతమైన, ఆధునిక, సురక్షితమైన వపన్ సొరంగం."
@ -10427,22 +10546,28 @@ msgid " System"
msgstr " కార్యవ్యవస్థ" msgstr " కార్యవ్యవస్థ"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "మారుపేర్లను నిర్వహించండి"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "పాస్స్ వర్ద మార్చుము" msgstr "పాస్స్ వర్ద మార్చుము"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "మూసివేయి" msgstr "మూసివేయి"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "నిష్క్రమించు" msgstr "నిష్క్రమించు"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "బాషను ఎంచుకోండి" msgstr "బాషను ఎంచుకోండి"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "లోనికి ప్రవేశించండి" msgstr "లోనికి ప్రవేశించండి"
@ -10696,15 +10821,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "మొత్తం యాప్ డేటా మరియు కాన్ఫిగరేషన్ శాశ్వతంగా పోతాయి. యాప్ను మళ్లీ తాజాగా ఇన్‌స్టాల్ చేయవచ్చు." msgstr "మొత్తం యాప్ డేటా మరియు కాన్ఫిగరేషన్ శాశ్వతంగా పోతాయి. యాప్ను మళ్లీ తాజాగా ఇన్‌స్టాల్ చేయవచ్చు."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "ఇక్కడ" msgstr "ఇక్కడ"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "మారకుండా అమర్చుతోంది" msgstr "మారకుండా అమర్చుతోంది"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "{app_id} ని అన్ఇన్‌స్టాల్ చేయడానికి ముందు" msgstr "{app_id} ని అన్ఇన్‌స్టాల్ చేయడానికి ముందు"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-25 07:09+0000\n" "PO-Revision-Date: 2026-03-25 07:09+0000\n"
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n" "Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
@ -28,7 +28,7 @@ msgstr "Sabit yapılandırma {etc_path} düzgün bir şekilde ayarlanmış"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{container_name} kapsayıcısı çalışıyor" msgstr "{container_name} kapsayıcısı çalışıyor"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -343,6 +343,7 @@ msgstr "Depo"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Ad" msgstr "Ad"
@ -2120,6 +2121,7 @@ msgstr "IP Adresi"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Eylemler" msgstr "Eylemler"
@ -3336,8 +3338,8 @@ msgstr "Geri Bildirim Gönder"
msgid "Contribute" msgid "Contribute"
msgstr "Katkıda Bulun" msgstr "Katkıda Bulun"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Hakkında" msgstr "Hakkında"
@ -3511,6 +3513,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Daha fazla bilgi edinin..." msgstr "Daha fazla bilgi edinin..."
@ -3990,7 +3993,7 @@ msgstr "Web görüşme"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "JavaScript lisans bilgileri" msgstr "JavaScript lisans bilgileri"
@ -5991,12 +5994,18 @@ msgstr "Bağlantıyı Düzenle"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Hata:" msgstr "Hata:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Kapat" msgstr "Kapat"
@ -6968,8 +6977,8 @@ msgstr "Baştan başlat"
msgid "Shutdown" msgid "Shutdown"
msgstr "Kapat" msgstr "Kapat"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Yeniden başlat" msgstr "Yeniden başlat"
@ -9765,7 +9774,7 @@ msgstr "Parolayı Kaydet"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Kullanıcı Oluştur" msgstr "Kullanıcı Oluştur"
@ -9815,7 +9824,7 @@ msgid "Skip this step"
msgstr "Bu adımı atla" msgstr "Bu adımı atla"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Kullanıcılar" msgstr "Kullanıcılar"
@ -9824,16 +9833,114 @@ msgstr "Kullanıcılar"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "%(username)s kullanıcısını düzenle" msgstr "%(username)s kullanıcısını düzenle"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Bu uygulama tanılamayı desteklemiyor"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Oturum aç" 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 ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Ayarlamayı güncelle"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Parola ekle"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "Etki alanı"
#: 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 "Son taranan: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Kullanıcıyı sil"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "İptal"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "<em>%(username)s</em> Kullanıcısını Düzenleyin" msgstr "<em>%(username)s</em> Kullanıcısını Düzenleyin"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9842,18 +9949,18 @@ msgstr ""
"Parolayı değiştirmek için <a href='%(change_password_url)s'>parola " "Parolayı değiştirmek için <a href='%(change_password_url)s'>parola "
"değiştirme formunu</a> kullanın." "değiştirme formunu</a> kullanın."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Değişiklikleri Kaydet" msgstr "Değişiklikleri Kaydet"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
"<em>%(username)s</em> kullanıcısı ve kullanıcının tüm dosyaları silinsin mi?" "<em>%(username)s</em> kullanıcısı ve kullanıcının tüm dosyaları silinsin mi?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9862,45 +9969,57 @@ msgstr ""
"tüm dosyaları da kaldırır. Eğer bu dosyaları saklamak istiyorsanız, bunun " "tüm dosyaları da kaldırır. Eğer bu dosyaları saklamak istiyorsanız, bunun "
"yerine kullanıcı hesabını etkisizleştirin." "yerine kullanıcı hesabını etkisizleştirin."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Kullanıcı ve dosyaları sil" msgstr "Kullanıcı ve dosyaları sil"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "İptal"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Başarılı olarak oturumu kapatıldı." msgstr "Başarılı olarak oturumu kapatıldı."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "%(username)s kullanıcısı oluşturuldu." msgstr "%(username)s kullanıcısı oluşturuldu."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "%(username)s kullanıcısı güncellendi." msgstr "%(username)s kullanıcısı güncellendi."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Kullanıcıyı Düzenle" msgstr "Kullanıcıyı Düzenle"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "%(username)s kullanıcısı silindi." msgstr "%(username)s kullanıcısı silindi."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Parolayı Değiştir" msgstr "Parolayı Değiştir"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Parola başarılı olarak değiştirildi." 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."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Kullanıcıyı Düzenle"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard hızlı, modern ve güvenli bir VPN tünelidir." msgstr "WireGuard hızlı, modern ve güvenli bir VPN tünelidir."
@ -10683,22 +10802,28 @@ msgid " System"
msgstr " Sistem" msgstr " Sistem"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Kod Adlarını Yönet"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Parolayı değiştir" msgstr "Parolayı değiştir"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Kapat" msgstr "Kapat"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Oturumu kapat" msgstr "Oturumu kapat"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Dil seçin" msgstr "Dil seçin"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Oturum aç" msgstr "Oturum aç"
@ -10952,15 +11077,15 @@ msgstr ""
"Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. " "Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. "
"Uygulama tekrar yeni olarak yüklenebilir." "Uygulama tekrar yeni olarak yüklenebilir."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "Burada" msgstr "Burada"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Ayar değişmedi" msgstr "Ayar değişmedi"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "{app_id} kaldırılmadan önce" msgstr "{app_id} kaldırılmadan önce"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-12-17 07:00+0000\n" "PO-Revision-Date: 2025-12-17 07:00+0000\n"
"Last-Translator: Максим Горпиніч <gorpinicmaksim0@gmail.com>\n" "Last-Translator: Максим Горпиніч <gorpinicmaksim0@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr "Статична конфігурація {etc_path} налаштова
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Контейнер {container_name} працює" msgstr "Контейнер {container_name} працює"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -349,6 +349,7 @@ msgstr "Репозиторій"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Назва" msgstr "Назва"
@ -2146,6 +2147,7 @@ msgstr "IP-адреса"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "Дії" msgstr "Дії"
@ -3362,8 +3364,8 @@ msgstr "Надіслати відгук"
msgid "Contribute" msgid "Contribute"
msgstr "Співпрацювати" msgstr "Співпрацювати"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "Про FreedomBox" msgstr "Про FreedomBox"
@ -3537,6 +3539,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "Дізнатися більше..." msgstr "Дізнатися більше..."
@ -4018,7 +4021,7 @@ msgstr "Веб-конференція"
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "Інформація про ліцензію JavaScript" msgstr "Інформація про ліцензію JavaScript"
@ -6014,12 +6017,18 @@ msgstr "Змінити зʼєднання"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "Помилка:" msgstr "Помилка:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "Закрити" msgstr "Закрити"
@ -7002,8 +7011,8 @@ msgstr "Перезавантаження"
msgid "Shutdown" msgid "Shutdown"
msgstr "Вимкнення" msgstr "Вимкнення"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "Перезапустити" msgstr "Перезапустити"
@ -9792,7 +9801,7 @@ msgstr "Зберегти пароль"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "Створити користувача" msgstr "Створити користувача"
@ -9843,7 +9852,7 @@ msgid "Skip this step"
msgstr "Пропустити цей крок" msgstr "Пропустити цей крок"
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "Користувачі" msgstr "Користувачі"
@ -9852,16 +9861,114 @@ msgstr "Користувачі"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "Зміни користувача %(username)s" msgstr "Зміни користувача %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Цей застосунок не підтримує діагностику"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "Вхід" msgstr "Вхід"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Оновити налаштування"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Додати пароль"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "Останнє сканування: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "Видалити користувача"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "Скасувати"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "Зміни користувача <em>%(username)s</em>" msgstr "Зміни користувача <em>%(username)s</em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
@ -9870,17 +9977,17 @@ msgstr ""
"Щоб змінити пароль використовуйте <a href=\"%(change_password_url)s\">форму " "Щоб змінити пароль використовуйте <a href=\"%(change_password_url)s\">форму "
"зміни пароля</a>." "зміни пароля</a>."
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "Зберегти зміни" msgstr "Зберегти зміни"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "Видалити користувача <em>%(username)s</em> і всі файли користувача?" msgstr "Видалити користувача <em>%(username)s</em> і всі файли користувача?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
@ -9889,45 +9996,57 @@ msgstr ""
"каталогу користувача. Якщо ви хочете зберегти ці файли, замість цього " "каталогу користувача. Якщо ви хочете зберегти ці файли, замість цього "
"вимкніть обліковий запис користувача." "вимкніть обліковий запис користувача."
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Видалити користувача та файли" msgstr "Видалити користувача та файли"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "Скасувати"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "Вийшли успішно." msgstr "Вийшли успішно."
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "Створено користувача %(username)s." msgstr "Створено користувача %(username)s."
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "Користувача %(username)s оновлено." msgstr "Користувача %(username)s оновлено."
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "Зміни користувача" msgstr "Зміни користувача"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Користувача %(username)s видалено." msgstr "Користувача %(username)s видалено."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "Зберегти пароль" msgstr "Зберегти пароль"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Пароль змінено успішно." msgstr "Пароль змінено успішно."
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Ділянка з такою назвою вже існує."
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "Зміни користувача"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "WireGuard — це швидкий, сучасний, безпечний тунель VPN." msgstr "WireGuard — це швидкий, сучасний, безпечний тунель VPN."
@ -10725,22 +10844,28 @@ msgid " System"
msgstr " Система" msgstr " Система"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "Керування псевдонімами"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "Змінити пароль" msgstr "Змінити пароль"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "Вимкнути" msgstr "Вимкнути"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "Вийти" msgstr "Вийти"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "Вибрати мову" msgstr "Вибрати мову"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "Увійти" msgstr "Увійти"
@ -10993,15 +11118,15 @@ msgstr ""
"Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна " "Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна "
"встановити начисто ще раз." "встановити начисто ще раз."
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "тут" msgstr "тут"
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "Налаштування не змінено" msgstr "Налаштування не змінено"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "перед видаленням {app_id}" msgstr "перед видаленням {app_id}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2021-07-28 08:34+0000\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n"
"Last-Translator: bruh <quangtrung02hn16@gmail.com>\n" "Last-Translator: bruh <quangtrung02hn16@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/freedombox/"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "Dịch vụ {service_name} đang chạy" msgstr "Dịch vụ {service_name} đang chạy"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -353,6 +353,7 @@ msgstr "Kho"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "Tên" msgstr "Tên"
@ -2225,6 +2226,7 @@ msgstr "Địa chỉ IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3370,8 +3372,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "" msgstr ""
@ -3511,6 +3513,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3919,7 +3922,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5707,6 +5710,9 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -5714,7 +5720,10 @@ msgid "Error:"
msgstr "lỗi" msgstr "lỗi"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6591,8 +6600,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -9015,7 +9024,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -9057,7 +9066,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -9066,80 +9075,186 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "Ứng dụng này không hỗ trợ chẩn đoán"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "Cập nhật thiết lập"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "Thêm mật khẩu"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "TLS domain"
msgid "For Domain"
msgstr "Miền TLS"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
msgid "Last Used"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
msgid "Delete passkey"
msgstr "Xoá"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "Xoá tệp" msgstr "Xoá tệp"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "{name} deleted." #| msgid "{name} deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "Đã xoá {name}." msgstr "Đã xoá {name}."
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A library with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "Một thư viện có tên này đã tồn tại."
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9856,22 +9971,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage passkeys"
msgstr "Quản lý thư viện"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10113,15 +10234,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Plinth\n" "Project-Id-Version: Plinth\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2026-03-04 05:09+0000\n" "PO-Revision-Date: 2026-03-04 05:09+0000\n"
"Last-Translator: 大王叫我来巡山 " "Last-Translator: 大王叫我来巡山 "
"<hamburger2048@users.noreply.hosted.weblate.org>\n" "<hamburger2048@users.noreply.hosted.weblate.org>\n"
@ -30,7 +30,7 @@ msgstr ""
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{container_name} 容器正在运行" msgstr "{container_name} 容器正在运行"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "FreedomBox" msgstr "FreedomBox"
@ -332,6 +332,7 @@ msgstr "存储库"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "名称" msgstr "名称"
@ -2031,6 +2032,7 @@ msgstr "IP 地址"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "行动" msgstr "行动"
@ -3136,8 +3138,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "贡献" msgstr "贡献"
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "关于" msgstr "关于"
@ -3286,6 +3288,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "了解更多……" msgstr "了解更多……"
@ -3706,7 +3709,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5457,12 +5460,18 @@ msgstr "编辑连接"
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
msgid "Error:" msgid "Error:"
msgstr "错误:" msgstr "错误:"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6349,8 +6358,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "关闭" msgstr "关闭"
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "重新启动" msgstr "重新启动"
@ -8783,7 +8792,7 @@ msgstr "保存密码"
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "创建用户" msgstr "创建用户"
@ -8827,7 +8836,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "用户" msgstr "用户"
@ -8836,77 +8845,187 @@ msgstr "用户"
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "编辑用户 %(username)s" msgstr "编辑用户 %(username)s"
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "此应用程序不支持诊断"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "登录" msgstr "登录"
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
#, fuzzy
#| msgid "Update setup"
msgid "Update Passkey"
msgstr "更新安装程序"
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "添加密码"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
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 "上次扫描: "
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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 "删除用户"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr "取消"
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "编辑用户 <em>%(username)s<em></em></em>" msgstr "编辑用户 <em>%(username)s<em></em></em>"
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "使用 <a href=\"%(change_password_url)s\">更改密码表单</a> 更改密码。" msgstr "使用 <a href=\"%(change_password_url)s\">更改密码表单</a> 更改密码。"
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "保存更改" msgstr "保存更改"
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "删除用户 <em>%(username)s</em> 及该用户所有文件?" msgstr "删除用户 <em>%(username)s</em> 及该用户所有文件?"
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
msgid "Delete user and files" msgid "Delete user and files"
msgstr "删除用户和文件" msgstr "删除用户和文件"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr "取消"
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "已成功退出登录。" msgstr "已成功退出登录。"
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "用户 %(username)s 已创建。" msgstr "用户 %(username)s 已创建。"
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "用户 %(username)s 已更新。" msgstr "用户 %(username)s 已更新。"
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "编辑用户" msgstr "编辑用户"
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, python-format #, python-format
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "用户 %(username)s 已被删除。" msgstr "用户 %(username)s 已被删除。"
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "更改密码" msgstr "更改密码"
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "已成功更改密码。" msgstr "已成功更改密码。"
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A share with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "已存在同名共享。"
#: plinth/modules/users/views.py:431
#, fuzzy
#| msgid "Edit User"
msgid "Edit Passkey"
msgstr "编辑用户"
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9617,22 +9736,28 @@ msgid " System"
msgstr " 系统" msgstr " 系统"
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "管理别名"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "更改密码" msgstr "更改密码"
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "关闭" msgstr "关闭"
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "登出" msgstr "登出"
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "选择语言" msgstr "选择语言"
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "登录" msgstr "登录"
@ -9868,15 +9993,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "设置未改变" msgstr "设置未改变"
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-24 00:03+0000\n" "POT-Creation-Date: 2026-04-07 00:12+0000\n"
"PO-Revision-Date: 2025-02-07 12:01+0000\n" "PO-Revision-Date: 2025-02-07 12:01+0000\n"
"Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n" "Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/" "Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/"
@ -30,7 +30,7 @@ msgstr "靜態配置 {etc_path} 已正確設置"
msgid "Container {container_name} is running" msgid "Container {container_name} is running"
msgstr "{service_name} 服務執行中" msgstr "{service_name} 服務執行中"
#: plinth/context_processors.py:21 plinth/views.py:175 #: plinth/context_processors.py:21 plinth/views.py:180
msgid "FreedomBox" msgid "FreedomBox"
msgstr "自由盒子" msgstr "自由盒子"
@ -335,6 +335,7 @@ msgstr "儲存庫"
#: plinth/modules/networks/templates/connection_show.html:76 #: plinth/modules/networks/templates/connection_show.html:76
#: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/samba/templates/samba.html:66
#: plinth/modules/sharing/templates/sharing.html:33 #: plinth/modules/sharing/templates/sharing.html:33
#: plinth/modules/users/templates/users_passkeys.html:92
msgid "Name" msgid "Name"
msgstr "名稱" msgstr "名稱"
@ -2116,6 +2117,7 @@ msgstr "IP 地址"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:30 #: plinth/modules/dynamicdns/templates/dynamicdns.html:30
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:29 #: plinth/modules/storage/templates/storage.html:29
#: plinth/modules/users/templates/users_passkeys.html:96
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -3273,8 +3275,8 @@ msgstr ""
msgid "Contribute" msgid "Contribute"
msgstr "" msgstr ""
#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:222 #: plinth/modules/help/__init__.py:53 plinth/templates/base.html:229
#: plinth/templates/base.html:225 plinth/templates/help-menu.html:47 #: plinth/templates/base.html:232 plinth/templates/help-menu.html:47
#: plinth/templates/help-menu.html:48 plinth/templates/index.html:96 #: plinth/templates/help-menu.html:48 plinth/templates/index.html:96
msgid "About" msgid "About"
msgstr "關於" msgstr "關於"
@ -3414,6 +3416,7 @@ msgstr ""
#: plinth/modules/help/templates/help_contribute.html:43 #: plinth/modules/help/templates/help_contribute.html:43
#: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_restart.html:27
#: plinth/modules/power/templates/power_shutdown.html:26 #: plinth/modules/power/templates/power_shutdown.html:26
#: plinth/modules/users/templates/users_passkeys.html:77
#: plinth/templates/app-header.html:67 #: plinth/templates/app-header.html:67
msgid "Learn more..." msgid "Learn more..."
msgstr "" msgstr ""
@ -3822,7 +3825,7 @@ msgstr ""
#: plinth/modules/janus/templates/janus_video_room.html:192 #: plinth/modules/janus/templates/janus_video_room.html:192
#: plinth/modules/jsxc/templates/jsxc_launch.html:117 #: plinth/modules/jsxc/templates/jsxc_launch.html:117
#: plinth/templates/base.html:282 #: plinth/templates/base.html:289
msgid "JavaScript license information" msgid "JavaScript license information"
msgstr "" msgstr ""
@ -5607,6 +5610,9 @@ msgstr ""
#: plinth/modules/networks/templates/connections_fields.html:14 #: plinth/modules/networks/templates/connections_fields.html:14
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64 #: plinth/modules/oidc/templates/oauth2_provider/authorize.html:64
#: plinth/modules/users/templates/users_login.html:26
#: plinth/modules/users/templates/users_passkeys.html:26
#: plinth/modules/users/templates/users_passkeys.html:54
#: plinth/templates/messages.html:15 #: plinth/templates/messages.html:15
#, fuzzy #, fuzzy
#| msgid "error" #| msgid "error"
@ -5614,7 +5620,10 @@ msgid "Error:"
msgstr "錯誤" msgstr "錯誤"
#: plinth/modules/networks/templates/connections_fields.html:21 #: plinth/modules/networks/templates/connections_fields.html:21
#: plinth/modules/users/templates/users_update.html:50 #: plinth/modules/users/templates/users_login.html:33
#: plinth/modules/users/templates/users_passkeys.html:33
#: plinth/modules/users/templates/users_passkeys.html:140
#: plinth/modules/users/templates/users_update.html:55
#: plinth/templates/messages.html:31 #: plinth/templates/messages.html:31
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -6491,8 +6500,8 @@ msgstr ""
msgid "Shutdown" msgid "Shutdown"
msgstr "" msgstr ""
#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:187 #: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:194
#: plinth/templates/base.html:188 #: plinth/templates/base.html:195
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
@ -8916,7 +8925,7 @@ msgstr ""
#: plinth/modules/users/templates/users_create.html:19 #: plinth/modules/users/templates/users_create.html:19
#: plinth/modules/users/templates/users_list.html:16 #: plinth/modules/users/templates/users_list.html:16
#: plinth/modules/users/templates/users_list.html:18 #: plinth/modules/users/templates/users_list.html:18
#: plinth/modules/users/views.py:109 #: plinth/modules/users/views.py:134
msgid "Create User" msgid "Create User"
msgstr "" msgstr ""
@ -8958,7 +8967,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_list.html:12 #: plinth/modules/users/templates/users_list.html:12
#: plinth/modules/users/views.py:127 #: plinth/modules/users/views.py:152
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -8967,80 +8976,186 @@ msgstr ""
msgid "Edit user %(username)s" msgid "Edit user %(username)s"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:23 #: plinth/modules/users/templates/users_login.html:30
msgid "Logging in with passkey failed: "
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 "此應用程式不支援診斷"
#: plinth/modules/users/templates/users_login.html:57
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_login.html:70
#: plinth/modules/users/templates/users_login.html:72
msgid "Log in with passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkey_edit.html:19
msgid "Update Passkey"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:30
msgid "Adding passkey failed: "
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:48
#: plinth/modules/users/views.py:314
msgid "Passkeys"
msgstr ""
#: 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 ""
#: plinth/modules/users/templates/users_passkeys.html:66
msgid ""
"Passkeys are way to verify user's identity using digital signatures. They "
"are a more secure alternative to passwords. Secret information is kept with "
"the user on their phone, laptop, or a hardware token and unlocked using a "
"PIN, fingerprint, or face ID. No secrets are stored on the server. The "
"server knows only the public information that can used to verify user's "
"signatures."
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 "新增密碼"
#: plinth/modules/users/templates/users_passkeys.html:93
#, fuzzy
#| msgid "Domain"
msgid "For Domain"
msgstr "域"
#: plinth/modules/users/templates/users_passkeys.html:94
msgid "Added"
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:95
#, fuzzy
#| msgid "Last update"
msgid "Last Used"
msgstr "最後更新"
#: plinth/modules/users/templates/users_passkeys.html:126
msgid "No passkeys added to user account."
msgstr ""
#: plinth/modules/users/templates/users_passkeys.html:135
msgid "Delete passkey <em class=\"passkey-name\"></em>?"
msgstr ""
#: 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"
msgid "Delete passkey"
msgstr "刪除"
#: plinth/modules/users/templates/users_passkeys.html:155
#: plinth/modules/users/templates/users_update.html:72
msgid "Cancel"
msgstr ""
#: plinth/modules/users/templates/users_update.html:16 #: plinth/modules/users/templates/users_update.html:16
#, python-format #, python-format
msgid "Edit User <em>%(username)s</em>" msgid "Edit User <em>%(username)s</em>"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:24 #: plinth/modules/users/templates/users_update.html:23
#, python-format
msgid "Use <a href=\"%(passkeys_url)s\">passkeys</a> for better security."
msgstr ""
#: plinth/modules/users/templates/users_update.html:29
#, python-format #, python-format
msgid "" msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to " "Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password." "change the password."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:36 #: plinth/modules/users/templates/users_update.html:41
#: plinth/templates/language-selection.html:17 #: plinth/templates/language-selection.html:17
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:45 #: plinth/modules/users/templates/users_update.html:50
#, python-format #, python-format
msgid "Delete user <em>%(username)s</em> and all the user's files?" msgid "Delete user <em>%(username)s</em> and all the user's files?"
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:55 #: plinth/modules/users/templates/users_update.html:60
msgid "" msgid ""
"Deleting a user account also removes all the files user's home directory. If " "Deleting a user account also removes all the files user's home directory. If "
"you wish to keep these files, disable the user account instead." "you wish to keep these files, disable the user account instead."
msgstr "" msgstr ""
#: plinth/modules/users/templates/users_update.html:64 #: plinth/modules/users/templates/users_update.html:69
#, fuzzy #, fuzzy
#| msgid "Delete files" #| msgid "Delete files"
msgid "Delete user and files" msgid "Delete user and files"
msgstr "刪除檔案" msgstr "刪除檔案"
#: plinth/modules/users/templates/users_update.html:67 #: plinth/modules/users/views.py:112
msgid "Cancel"
msgstr ""
#: plinth/modules/users/views.py:87
msgid "Logged out successfully." msgid "Logged out successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:107 #: plinth/modules/users/views.py:132
#, python-format #, python-format
msgid "User %(username)s created." msgid "User %(username)s created."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:138 #: plinth/modules/users/views.py:163
#, python-format #, python-format
msgid "User %(username)s updated." msgid "User %(username)s updated."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:139 #: plinth/modules/users/views.py:164
msgid "Edit User" msgid "Edit User"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:177 #: plinth/modules/users/views.py:202
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "{name} deleted." #| msgid "{name} deleted."
msgid "User %(username)s deleted." msgid "User %(username)s deleted."
msgstr "{name} 已刪除。" msgstr "{name} 已刪除。"
#: plinth/modules/users/views.py:196 #: plinth/modules/users/views.py:221
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
#: plinth/modules/users/views.py:197 #: plinth/modules/users/views.py:222
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "" msgstr ""
#: plinth/modules/users/views.py:420
#, fuzzy
#| msgid "A library with this name already exists."
msgid "Passkey with that identifier already exists."
msgstr "已存在同樣名稱的圖書館。"
#: plinth/modules/users/views.py:431
msgid "Edit Passkey"
msgstr ""
#: plinth/modules/users/views.py:518 plinth/modules/users/views.py:542
msgid "Passkey used is not known."
msgstr ""
#: plinth/modules/wireguard/__init__.py:20 #: plinth/modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel." msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr "" msgstr ""
@ -9755,22 +9870,28 @@ msgid " System"
msgstr "" msgstr ""
#: plinth/templates/base.html:179 plinth/templates/base.html:180 #: plinth/templates/base.html:179 plinth/templates/base.html:180
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage passkeys"
msgstr "別名"
#: plinth/templates/base.html:186 plinth/templates/base.html:187
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: plinth/templates/base.html:193 plinth/templates/base.html:194 #: plinth/templates/base.html:200 plinth/templates/base.html:201
msgid "Shut down" msgid "Shut down"
msgstr "" msgstr ""
#: plinth/templates/base.html:204 plinth/templates/base.html:242 #: plinth/templates/base.html:211 plinth/templates/base.html:249
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: plinth/templates/base.html:213 plinth/templates/base.html:216 #: plinth/templates/base.html:220 plinth/templates/base.html:223
msgid "Select language" msgid "Select language"
msgstr "" msgstr ""
#: plinth/templates/base.html:231 plinth/templates/base.html:233 #: plinth/templates/base.html:238 plinth/templates/base.html:240
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@ -10013,15 +10134,15 @@ msgid ""
"installed freshly again." "installed freshly again."
msgstr "" msgstr ""
#: plinth/views.py:89 #: plinth/views.py:94
msgid "Here" msgid "Here"
msgstr "" msgstr ""
#: plinth/views.py:431 #: plinth/views.py:436
msgid "Setting unchanged" msgid "Setting unchanged"
msgstr "" msgstr ""
#: plinth/views.py:654 #: plinth/views.py:659
#, python-brace-format #, python-brace-format
msgid "before uninstall of {app_id}" msgid "before uninstall of {app_id}"
msgstr "" msgstr ""

View File

@ -5,6 +5,7 @@ Setup logging for the application.
import logging import logging
import logging.config import logging.config
import sys
import typing import typing
import warnings import warnings
@ -158,5 +159,11 @@ def get_configuration():
} }
} }
} }
if not sys.stdin.isatty():
# If running on a console, say due to user manually starting it, then
# log everything to console. However, if we are running as a systemd
# unit then no need to log to console. This allows us to capture
# stdout/stderr in systemd unit without repeating the log messages.
configuration['root']['handlers'].remove('console')
return configuration return configuration

View File

@ -0,0 +1,46 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# Generated by Django 4.2.28 on 2026-03-19 23:52
#
"""
Django migration for adding the user's passkey model.
"""
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('plinth', '0005_storednotification'),
]
operations = [
migrations.CreateModel(
name='UserPasskey',
fields=[
('id',
models.AutoField(auto_created=True, primary_key=True,
serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=256, null=True,
blank=True)),
('domain', models.CharField(max_length=256)),
('created_time', models.DateTimeField(auto_now_add=True)),
('last_used_time', models.DateTimeField(auto_now=True)),
('signature_counter', models.IntegerField(default=0)),
('registration_flags', models.IntegerField()),
('extensions', models.JSONField(null=True, blank=True)),
('aaguid', models.UUIDField(null=True, blank=True)),
('credential_id', models.BinaryField(unique=True)),
('public_key', models.BinaryField()),
('user',
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
related_name='passkeys',
to=settings.AUTH_USER_MODEL)),
],
),
]

View File

@ -44,6 +44,28 @@ class UserProfile(models.Model):
language = models.CharField(max_length=32, null=True, default=None) language = models.CharField(max_length=32, null=True, default=None)
class UserPasskey(models.Model):
"""Model to store passkeys for a user account."""
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE, related_name='passkeys')
# Relying Party information
name = models.CharField(max_length=256, null=True, blank=True)
domain = models.CharField(max_length=256)
created_time = models.DateTimeField(auto_now_add=True)
last_used_time = models.DateTimeField(auto_now=True)
# Authenticator data
signature_counter = models.IntegerField(default=0)
registration_flags = models.IntegerField()
extensions = models.JSONField(null=True, blank=True)
# Credential data
aaguid = models.UUIDField(null=True, blank=True)
credential_id = models.BinaryField(unique=True)
public_key = models.BinaryField()
@receiver(models.signals.post_save, sender=User) @receiver(models.signals.post_save, sender=User)
def _on_user_post_save(sender, instance, **kwargs): def _on_user_post_save(sender, instance, **kwargs):
"""When the user model is saved, user profile too.""" """When the user model is saved, user profile too."""

View File

@ -36,7 +36,7 @@ class AuthenticationForm(DjangoAuthenticationForm):
self.fields['username'].widget.attrs.update({ self.fields['username'].widget.attrs.update({
'autofocus': 'autofocus', 'autofocus': 'autofocus',
'autocapitalize': 'none', 'autocapitalize': 'none',
'autocomplete': 'username' 'autocomplete': 'username webauthn'
}) })

View File

@ -0,0 +1,324 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
/**
* @licstart The following is the entire license notice for the JavaScript
* code in this page.
*
* This file is part of FreedomBox.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice for the JavaScript code
* in this page.
*/
/*
* Decode a given base64 encoded (in web-mode) string to a binary array.
*/
function base64WebDecode(base64WebString) {
let base64String = base64WebString
.replaceAll('-', '+')
.replaceAll('_', '/');
const padding = base64String.length % 4;
if (padding != 0) {
base64String += '='.repeat(4 - padding);
}
const binaryString = atob(base64String);
const binaryArray = new Uint8Array(binaryString.length);
for (let i = 0; i < binaryString.length; i++) {
binaryArray[i] = binaryString.charCodeAt(i);
}
return binaryArray;
}
/*
* Show an error as an bootstrap alert message and print to browser debug
* console.
*/
function handleError(error_string, exception) {
console.log(error_string, exception);
const template = document.getElementById('passkey-message-template');
template.querySelector('.message').innerText = exception.toString();
const messages = document.getElementById('passkey-messages');
messages.insertAdjacentHTML('beforeEnd', template.innerHTML);
}
/*
* Make a window.fetch() request and handle some common errors.
*/
async function jsonFetch(relative_url, options, operation) {
let response, json = null;
const consoleError = 'Could not perform operation: ' + operation;
try {
const url = new URL(relative_url, window.location.href);
response = await window.fetch(url, options);
json = await response.json();
} catch (error) {
handleError(consoleError, error);
return null;
}
if (response.ok && json) {
return json;
}
if (json && json['error_string']) {
handleError(consoleError, json['error_string']);
} else {
handleError(consoleError, `${response.status}: ${response.statusText}`);
}
return null;
}
/*
* Add a passkey. First send a request to the server to begin passkey creation
* and get challenge and creation options. Then request the browser to talk to
* the authenticator to create a passkey. Finally, pass the public key of the
* newly create passkey along with creation results to the server.
*/
async function addPasskey(csrfToken) {
console.log('Adding passkey');
if (!window.PublicKeyCredential) {
const message = document.getElementById(
'browser-does-not-support-passkeys').innerText.trim();
handleError('Browser does not support passkeys', message);
return;
}
//
// Request challenge and options from server.
//
let options = await jsonFetch('add-begin/', {
'method': 'POST',
body: new URLSearchParams({'csrfmiddlewaretoken': csrfToken})
}, 'initiate passkey registration');
if (!options) {
return;
}
options['publicKey']['user']['id'] = base64WebDecode(
options['publicKey']['user']['id']);
options['publicKey']['challenge'] = base64WebDecode(
options['publicKey']['challenge']);
//
// Create new key pair on the authenticator (via the browser).
//
let credential;
try {
credential = await navigator.credentials.create(
{'publicKey': options['publicKey']});
} catch (error) {
handleError('Passkey registration failed.', error);
return;
}
//
// Send the public key and authenticator response to the server for
// verification and storage.
//
let completeResponse = await jsonFetch('add-complete/', {
'method': 'POST',
'headers': {
'Content-Type': 'application/json',
'X-CSRFToken': csrfToken
},
'body': JSON.stringify(credential),
}, 'passkey registration');
if (!completeResponse) {
return;
}
console.log('Passkey registration succeeded.');
window.location.reload();
};
/*
* Show a confirmation dialog to the user to delete a passkey.
*/
function onPasskeyDeleteClicked(event) {
const modalElement = document.getElementById('passkey-delete-confirm-dialog');
const modal = new bootstrap.Modal(modalElement);
const passkeyElement = event.target.closest('.passkey');
const nameElements = modalElement.querySelectorAll('.passkey-name');
nameElements.forEach((element) => {
element.innerText = passkeyElement.dataset.passkeyName;
});
modalElement.dataset.passkeyId = passkeyElement.dataset.passkeyId;
event.preventDefault();
modal.show();
}
/*
* Send request to the server to delete a passkey by submitting a form (and
* refreshing the page).
*/
function onPasskeyDeleteConfirmed(event) {
const modelElement = document.getElementById('passkey-delete-confirm-dialog');
const passkeyId = modelElement.dataset.passkeyId;
const form = document.querySelector(
`[data-passkey-id="${passkeyId}"] .form-passkey-delete`);
form.submit();
}
/*
* Attach event handler to 'Add Passkey', 'Delete Passkey', and 'Confirm Delete'
* buttons. Retrieve CSRF token and pass it along.
*/
document.addEventListener('DOMContentLoaded', () => {
const addPasskeyButton = document.getElementById('add-passkey');
if (!addPasskeyButton) {
// Not part of the Manage Passkeys page.
return;
}
const csrfToken = document.getElementsByName('csrfmiddlewaretoken')[0].value;
addPasskeyButton.addEventListener('click', async (event) => {
event.preventDefault();
await addPasskey(csrfToken);
});
const deleteButtons = document.querySelectorAll(
'.passkey-delete-button');
deleteButtons.forEach((element) => {
element.addEventListener('click', onPasskeyDeleteClicked);
});
const confirmDeleteButton = document.querySelector(
'#passkey-delete-confirm-dialog .confirm');
confirmDeleteButton.addEventListener('click', onPasskeyDeleteConfirmed);
});
let passkeyLoginAbortController = null;
/*
* Login with a passkey. First send a request to the server to begin logging in
* with passkey and get challenge and login operation options. Then request the
* browser to talk to the authenticator to sign the challenge with a passkey.
* Finally, pass the challenge signed with a known passkey along with other
* results to the server.
*/
async function loginWithPasskey(conditionalMediation, csrfToken, next) {
console.log('Signing in with a passkey. Conditional mediation: ',
conditionalMediation);
if (!window.PublicKeyCredential) {
if (!conditionalMediation) {
const message = document.getElementById(
'browser-does-not-support-passkeys').innerText.trim();
handleError('Browser does not support passkeys', message);
}
return;
}
//
// Request challenge and options from server.
//
const options = await jsonFetch('passkey-begin/', {
'method': 'POST',
body: new URLSearchParams({'csrfmiddlewaretoken': csrfToken})
}, 'initiate passkey login');
if (!options) {
return;
}
options['publicKey']['challenge'] = base64WebDecode(
options['publicKey']['challenge']);
// Abort a previous login operation (such as conditional mediation operation
// if it is running). Firefox automatically does this but Chrome does not.
if (passkeyLoginAbortController) {
console.log('Explicitly aborting previous passkey login operation.');
passkeyLoginAbortController.abort();
}
passkeyLoginAbortController = new AbortController();
//
// Sign the server challenge with passkey stored in authenticator (via the
// browser).
//
let credential;
try {
const getOptions = {
'publicKey': options['publicKey'],
'signal': passkeyLoginAbortController.signal
};
if (conditionalMediation) {
getOptions['mediation'] = 'conditional';
}
credential = await navigator.credentials.get(getOptions);
} catch (error) {
if (conditionalMediation && error.name == 'AbortError') {
// When user clicks on 'Log in with passkey', the process initiated
// with conditional mediation will be aborted.
console.log('Log in initiated with button, ' +
'conditional mediation aborted.');
return;
}
if (!conditionalMediation) {
// Don't show error message or retry.
handleError('Login with passkey failed.', error);
}
return;
}
// Send the signature and the authenticator response to the server to
// complete the login process.
let completeResponse = await jsonFetch('passkey-complete/', {
'method': 'POST',
'headers': {
'Content-Type': 'application/json',
'X-CSRFToken': csrfToken
},
'body': JSON.stringify(credential),
}, 'login with passkey');
if (!completeResponse) {
return;
}
console.log('Login with passkey succeeded.');
window.location.href = next;
}
/*
* Attach an click event listener to 'Log in with passkey' button.
*/
document.addEventListener('DOMContentLoaded', async () => {
const loginWithPasskeyButton = document.getElementById('login-with-passkey');
if (!loginWithPasskeyButton) {
// Not part of login page.
return;
}
const csrfToken = document.getElementsByName('csrfmiddlewaretoken')[0].value;
const next = document.getElementsByName('next')[0].value;
loginWithPasskeyButton.addEventListener('click', async (event) => {
event.preventDefault();
await loginWithPasskey(false, csrfToken, next);
});
// Login with conditional mediation. This means that user will see a
// 'passkey' option with autofill in the username field. The login method
// will be wait in the navigator.credentials.get() call until user selects
// that option. Don't await.
loginWithPasskey(true, csrfToken, next);
});

View File

@ -0,0 +1,7 @@
/*
# SPDX-License-Identifier: AGPL-3.0-or-later
*/
.operations form {
display: inline;
}

View File

@ -5,12 +5,46 @@
{% load bootstrap %} {% load bootstrap %}
{% load i18n %} {% load i18n %}
{% load static %}
{% load extras %}
{% block breadcrumbs %} {% block breadcrumbs %}
{% endblock %} {% endblock %}
{% block page_js %}
<script type="text/javascript" src="{% static 'users/passkeys.js' %}" defer></script>
{% endblock %}
{% block content %} {% block content %}
<div id="passkey-message-template" class="d-none">
<div class="alert alert-danger alert-dismissible
d-flex align-items-center fade show"
role="alert">
<div class="me-2">
{% icon 'exclamation-triangle' %}
<span class="visually-hidden">{% trans "Error:" %}</span>
</div>
<div>
{% trans "Logging in with passkey failed: " %}
<span class="message"></span>
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="{% trans "Close" %}">
</button>
</div>
</div>
</div>
<div id="localized-strings" class="d-none">
<div id="browser-does-not-support-passkeys">
{% trans "Browser does not support passkeys." %}
</div>
</div>
<div id="passkey-messages">
</div>
<form class="form form-login" method="post"> <form class="form form-login" method="post">
<div class="row"> <div class="row">
@ -28,4 +62,16 @@
<input type="hidden" name="next" value="{{ next }}" /> <input type="hidden" name="next" value="{{ next }}" />
</form> </form>
<div class="row text-center">
<div class="col col-md-4 offset-md-4">
<hr>
<a id="login-with-passkey" href="#" class="btn btn-default" role="button"
title="{% trans 'Log in with passkey' %}">
{% icon 'key' %}
{% trans 'Log in with passkey' %}
</a>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -0,0 +1,22 @@
{% extends "base.html" %}
{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{% load bootstrap %}
{% load i18n %}
{% block content %}
<h2>{{ title }}</h2>
<form class="form form-edit-passkey" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<input type="submit" class="btn btn-primary"
value="{% trans "Update Passkey" %}"/>
</form>
{% endblock %}

View File

@ -0,0 +1,162 @@
{% extends "base.html" %}
{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{% load static %}
{% load i18n %}
{% load extras %}
{% block page_js %}
<script type="text/javascript" src="{% static 'users/passkeys.js' %}" defer></script>
{% endblock %}
{% block page_head %}
<link type="text/css" rel="stylesheet" href="{% static 'users/users.css' %}">
{% endblock %}
{% block content %}
<div id="passkey-message-template" class="d-none">
<div class="alert alert-danger alert-dismissible
d-flex align-items-center fade show"
role="alert">
<div class="me-2">
{% icon 'exclamation-triangle' %}
<span class="visually-hidden">{% trans "Error:" %}</span>
</div>
<div>
{% trans "Adding passkey failed: " %}
<span class="message"></span>
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="{% trans "Close" %}">
</button>
</div>
</div>
</div>
<div id="localized-strings" class="d-none">
<div id="browser-does-not-support-passkeys">
{% trans "Browser does not support passkeys." %}
</div>
</div>
<div id="passkey-messages">
</div>
<h2>{% trans "Passkeys" %}</h2>
<noscript>
<div class="alert alert-danger d-flex align-items-center" role="alert">
<div class="me-2">
<span class="fa fa-exclamation-triangle" aria-hidden="true"></span>
<span class="visually-hidden">{% trans "Error:" %}</span>
</div>
<div>
{% blocktrans trimmed %}
Working with passkeys requires using browser's Javascript API. Please
enable Javascript support in your browser to continue.
{% endblocktrans %}
</div>
</div>
</noscript>
<p>
{% blocktrans trimmed %}
Passkeys are way to verify user's identity using digital signatures.
They are a more secure alternative to passwords. Secret information is
kept with the user on their phone, laptop, or a hardware token and
unlocked using a PIN, fingerprint, or face ID. No secrets are stored on
the server. The server knows only the public information that can used to
verify user's signatures.
{% endblocktrans %}
</p>
<p class="manual-page">
<a href="{% url 'help:manual-page' lang='-' page='Passkeys' %}">
{% trans 'Learn more...' %}
</a>
</p>
<p>
{% csrf_token %}
<a id="add-passkey" href="#" class="btn btn-primary" role="button"
title="{% trans 'Add passkey' %}">
{% icon "plus" %}
{% trans 'Add passkey' %}
</a>
</p>
{% if object_list %}
<div class="table-responsive">
<table class="table">
<thead>
<th>{% trans "Name" %}</th>
<th>{% trans "For Domain" %}</th>
<th>{% trans "Added" %}</th>
<th>{% trans "Last Used" %}</th>
<th>{% trans "Actions" %}</th>
</thead>
<tbody>
{% for passkey in object_list %}
<tr class="passkey" data-passkey-name="{{ passkey.name }}"
data-passkey-id="{{ passkey.id }}">
<td>{{ passkey.name }}</td>
<td>{{ passkey.domain }}</td>
<td>{{ passkey.created_time }}</td>
<td>{{ passkey.last_used_time }}</td>
<td class="operations">
<a class="btn btn-sm btn-default" role="button"
href="{% url 'users:passkey_edit' passkey.user.username passkey.id %}">
{% icon "pencil-square-o" %}
</a>
<form class="form form-passkey-delete" method="post"
action="{% url 'users:passkey_delete' passkey.user.username passkey.id %}">
{% csrf_token %}
<button class="btn btn-sm btn-default passkey-delete-button"
type="submit">
{% icon "trash-o" %}
</button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<p>{% trans "No passkeys added to user account." %}
{% endif %}
<div id="passkey-delete-confirm-dialog" class="modal" tabindex="-1"
role="dialog">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
{% blocktrans trimmed with username=object.username %}
Delete passkey <em class="passkey-name"></em>?
{% endblocktrans %}
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"
aria-label="{% trans 'Close' %}">
</button>
</div>
<div class="modal-body">
<p>
{% blocktrans trimmed %}
You will need this passkey's device to add it back again.
{% endblocktrans %}
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger confirm">
{% trans "Delete passkey" %}
</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
{% trans "Cancel" %}
</button>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -19,6 +19,11 @@
</h3> </h3>
<p> <p>
{% url 'users:passkeys' object.username as passkeys_url %}
{% blocktrans trimmed %}
Use <a href="{{ passkeys_url }}">passkeys</a> for better security.
{% endblocktrans %}
{% url 'users:change_password' object.username as change_password_url %} {% url 'users:change_password' object.username as change_password_url %}
{% blocktrans trimmed %} {% blocktrans trimmed %}

View File

@ -18,6 +18,26 @@ urlpatterns = [
re_path(r'^sys/users/(?P<slug>[\w.@+-]+)/change_password/$', re_path(r'^sys/users/(?P<slug>[\w.@+-]+)/change_password/$',
non_admin_view(views.UserChangePassword.as_view()), non_admin_view(views.UserChangePassword.as_view()),
name='change_password'), name='change_password'),
re_path(r'^sys/users/(?P<username>[\w.@+-]+)/passkeys/$',
non_admin_view(views.PasskeysList.as_view()), name='passkeys'),
re_path(r'^sys/users/(?P<username>[\w.@+-]+)/passkeys/add-begin/$',
non_admin_view(views.passkey_add_begin), name='passkey_add_begin'),
re_path(r'^sys/users/(?P<username>[\w.@+-]+)/passkeys/add-complete/$',
non_admin_view(views.passkey_add_complete),
name='passkey_add_complete'),
re_path(
r'^sys/users/(?P<username>[\w.@+-]+)/passkeys/'
r'(?P<passkey_id>[\d]+)/edit/$',
non_admin_view(views.PasskeyEdit.as_view()), name='passkey_edit'),
re_path(r'^accounts/login/passkey-begin/$',
public(views.passkey_login_begin), name='passkey_login_begin'),
re_path(r'^accounts/login/passkey-complete/$',
public(views.passkey_login_complete),
name='passkey_login_complete'),
re_path(
r'^sys/users/(?P<username>[\w.@+-]+)/passkeys/'
r'(?P<passkey_id>[\d]+)/delete/$',
non_admin_view(views.PasskeyDelete.as_view()), name='passkey_delete'),
re_path(r'^accounts/login/$', public(views.LoginView.as_view()), re_path(r'^accounts/login/$', public(views.LoginView.as_view()),
name='login'), name='login'),
re_path(r'^accounts/logout/$', public(views.logout), name='logout'), re_path(r'^accounts/logout/$', public(views.logout), name='logout'),

View File

@ -1,33 +1,58 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
"""Django views for user app.""" """Django views for user app."""
import functools
import importlib.metadata
import json
import logging
import re
import uuid
import axes.utils import axes.utils
import django.views.generic import django.views.generic
import fido2.cbor
import fido2.features
import fido2.utils
from django import shortcuts from django import shortcuts
from django.contrib import messages from django.contrib import messages
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout from django.contrib.auth import logout as auth_logout
from django.contrib.auth import update_session_auth_hash from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.auth.views import LoginView as DjangoLoginView from django.contrib.auth.views import LoginView as DjangoLoginView
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect from django.db import IntegrityError
from django.http import HttpResponseRedirect, JsonResponse
from django.urls import reverse, reverse_lazy from django.urls import reverse, reverse_lazy
from django.utils.decorators import method_decorator
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy from django.utils.translation import gettext_lazy
from django.views.decorators.http import require_POST from django.views.decorators.http import require_POST
from django.views.generic.edit import CreateView, FormView, UpdateView from django.views.generic.edit import (CreateView, DeleteView, FormView,
UpdateView)
from fido2 import webauthn
from fido2.server import Fido2Server
from fido2.webauthn import AttestedCredentialData, AuthenticationResponse
import plinth.modules.ssh.privileged as ssh_privileged import plinth.modules.ssh.privileged as ssh_privileged
from plinth import translation from plinth import translation
from plinth.models import UserPasskey
from plinth.modules import first_boot from plinth.modules import first_boot
from plinth.utils import is_user_admin from plinth.utils import is_user_admin
from plinth.views import AppView from plinth.version import Version
from plinth.views import AppView, json_exception
from . import privileged from . import privileged
from .forms import (AuthenticationForm, CaptchaForm, CreateUserForm, from .forms import (AuthenticationForm, CaptchaForm, CreateUserForm,
FirstBootForm, UserChangePasswordForm, UserUpdateForm) FirstBootForm, UserChangePasswordForm, UserUpdateForm)
# Enable fido2 basic features
if Version(importlib.metadata.version('fido2')) < Version('2.0.0'):
fido2.features.webauthn_json_mapping.enabled = True # type: ignore
logger = logging.getLogger(__name__)
class LoginView(DjangoLoginView): class LoginView(DjangoLoginView):
"""View to login to FreedomBox and set language preference.""" """View to login to FreedomBox and set language preference."""
@ -257,3 +282,293 @@ class FirstBootView(django.views.generic.CreateView):
def get_success_url(self): def get_success_url(self):
"""Return the next first boot step after valid form submission.""" """Return the next first boot step after valid form submission."""
return reverse(first_boot.next_step()) return reverse(first_boot.next_step())
def get_fido2_server(domain: str) -> Fido2Server:
"""Return an instance of a Fido2Server."""
relying_party = webauthn.PublicKeyCredentialRpEntity(
id=domain, name='FreedomBox')
return Fido2Server(relying_party)
def require_owner_or_admin(view_func):
"""Decorator to check if the view is called by owner or admin."""
@functools.wraps(view_func)
def _wrapped_view(request, *args, **kwargs):
"""Wrap a view method and check ownership is valid."""
if (kwargs['username'] != request.user.get_username()
and not is_user_admin(request)):
raise PermissionDenied
return view_func(request, *args, **kwargs)
return _wrapped_view
@method_decorator(require_owner_or_admin, name='dispatch')
class PasskeysList(ContextMixin, django.views.generic.ListView):
"""View to show a list of current passkeys for the user."""
model = UserPasskey
template_name = 'users_passkeys.html'
title = gettext_lazy('Passkeys')
def get_queryset(self):
"""Show only list of passkeys for this user."""
return self.model.objects.filter(
user__username=self.kwargs['username']).order_by('created_time')
@json_exception
@require_owner_or_admin
@require_POST
def passkey_add_begin(request, username):
"""Verify passkey registration and add passkey to user's account."""
user = User.objects.get(username=username)
# Domain
domain = request.get_host().partition(':')[0]
# User
username = user.get_username()
user_entity = webauthn.PublicKeyCredentialUserEntity(
id=user.id, name=username, display_name=username)
# Begin registration
server = get_fido2_server(domain)
create_options, state = server.register_begin(
user_entity,
user_verification=webauthn.UserVerificationRequirement.REQUIRED,
resident_key_requirement=webauthn.ResidentKeyRequirement.PREFERRED)
logger.info('Passkey creation began for user - %s (%s)', username, user.id)
request.session['fido2_server_state'] = state
return JsonResponse(dict(create_options))
def _passkey_get_next_name(user):
"""Return a suitable name for the next passkey of the given user."""
number = 1
for passkey in user.passkeys.all():
match = re.match(r'^Key (\d+)$', passkey.name)
if match:
number = max(number, int(match[1]) + 1)
return f'Key {number}'
@json_exception
@require_owner_or_admin
@require_POST
def passkey_add_complete(request, username):
"""Verify passkey registration and add passkey to user's account."""
def _response(result: bool, error_string: str):
"""Return a JsonResponse object."""
status = 200
if not result:
status = 400
logger.error('Error completing passkey registration: %s',
error_string)
return JsonResponse({
'result': result,
'error_string': error_string
}, status=status)
user = User.objects.get(username=username)
try:
response = json.loads(request.body)
except json.decoder.JSONDecodeError as exception:
return _response(False, str(exception))
# Domain
domain = request.get_host().partition(':')[0]
# State
state = request.session.get('fido2_server_state')
# Complete registration
server = get_fido2_server(domain)
try:
authenticator_data = server.register_complete(state, response)
logger.info('Passkey creation completed for user - %s (%s)',
user.get_username(), user.id)
assert authenticator_data.is_user_present()
assert authenticator_data.is_user_verified()
logger.info('Passkey user is present and verified.')
except Exception as exception:
return _response(False, str(exception))
try:
credential_data = authenticator_data.credential_data
UserPasskey.objects.create(
user=user,
name=_passkey_get_next_name(user),
domain=domain,
signature_counter=authenticator_data.counter,
registration_flags=authenticator_data.flags,
extensions=authenticator_data.extensions,
aaguid=uuid.UUID(f'urn:uuid:{credential_data.aaguid}'),
credential_id=credential_data.credential_id,
public_key=fido2.cbor.encode(credential_data.public_key),
)
except IntegrityError:
return _response(False,
_('Passkey with that identifier already exists.'))
return _response(True, None)
@method_decorator(require_owner_or_admin, name='dispatch')
class PasskeyEdit(ContextMixin, UpdateView):
"""View to allow editing a passkey's name."""
model = UserPasskey
fields = ['name']
pk_url_kwarg = 'passkey_id'
title = _('Edit Passkey')
def get_template_names(self):
"""Return the template name to use."""
return ['users_passkey_edit.html']
def get_success_url(self):
"""Return the URL to visit if form edit succeeds."""
return reverse('users:passkeys', args=[self.kwargs['username']])
@method_decorator(require_owner_or_admin, name='dispatch')
@method_decorator(require_POST, name='dispatch')
class PasskeyDelete(DeleteView):
"""View to delete a passkey."""
model = UserPasskey
pk_url_kwarg = 'passkey_id'
def get_success_url(self):
"""Return the URL to visit if form edit succeeds."""
return reverse('users:passkeys', args=[self.kwargs['username']])
@json_exception
@require_POST
def passkey_login_begin(request):
"""Begin the process of logging-in with passwords."""
# Domain
domain = request.get_host().partition(':')[0]
# Begin Authentication
server = get_fido2_server(domain)
request_options, state = server.authenticate_begin(
credentials=None,
user_verification=fido2.webauthn.UserVerificationRequirement.REQUIRED,
challenge=None)
logger.info('Passkey login begins')
request.session['fido2_server_state'] = state
return JsonResponse(dict(request_options))
@json_exception
@require_POST
def passkey_login_complete(request):
"""Complete the process of logging-in with passwords."""
def _response(result: bool, error_string: str):
"""Return a JsonResponse object."""
status = 200
if not result:
status = 400
logger.error('Error completing passkey login: %s', error_string)
return JsonResponse({
'result': result,
'error_string': error_string
}, status=status)
try:
response = json.loads(request.body)
except json.decoder.JSONDecodeError as exception:
return _response(False, str(exception))
# Domain
domain = request.get_host().partition(':')[0]
# State
state = request.session.get('fido2_server_state')
# Complete Authentication
server = get_fido2_server(domain)
try:
authentication_repsonse = AuthenticationResponse.from_dict(response)
if hasattr(authentication_repsonse, 'raw_id'):
# Library python3-fido2 >= 2.0.0
credential_id = authentication_repsonse.raw_id
else:
# Library python3-fido2 < 2.0.0
credential_id = authentication_repsonse.id
selected_passkeys = UserPasskey.objects.filter(
credential_id=credential_id)
if not len(selected_passkeys):
return _response(False, _('Passkey used is not known.'))
selected_passkey = selected_passkeys[0]
credentials = [
AttestedCredentialData.create(
aaguid=selected_passkey.aaguid.bytes,
credential_id=selected_passkey.credential_id,
public_key=fido2.cbor.decode(selected_passkey.public_key))
]
credential_data = server.authenticate_complete(
state=state, credentials=credentials,
response=authentication_repsonse)
except Exception as exception:
return _response(False, str(exception))
try:
passkeys = UserPasskey.objects.filter(
credential_id=credential_data.credential_id,
public_key=fido2.cbor.encode(credential_data.public_key))
except Exception as exception:
return _response(False, str(exception))
if not len(passkeys):
return _response(False, _('Passkey used is not known.'))
assert len(passkeys) == 1 # credential_id is a unique field.
passkey = passkeys[0]
# Detect cloned passkeys using signature counter.
# See: https://www.w3.org/TR/webauthn/#signature-counter
authenticator_data = authentication_repsonse.response.authenticator_data
signature_counter = authenticator_data.counter
if (passkey.signature_counter and signature_counter
and signature_counter <= passkey.signature_counter):
# TODO: Notify user of a cloned passkey
logger.warning(
'Potentially cloned passkey detected. Passkey ID in DB - %s, '
'credential ID - %s, signature counters - %s <= %s', passkey.id,
fido2.utils.websafe_encode(passkey.credential_id),
signature_counter, passkey.signature_counter)
passkey.signature_counter = signature_counter
passkey.save() # Update the last used time
# Needed by login(), stored in session, and used for permission checks.
passkey.user.backend = 'django.contrib.auth.backends.ModelBackend'
# Perform user login into Django
auth_login(request, passkey.user)
response = _response(True, None)
if request.user.is_authenticated:
translation.set_language(request, response,
request.user.userprofile.language)
return response

View File

@ -173,6 +173,13 @@
{% trans "Edit" %} {% trans "Edit" %}
</a> </a>
</li> </li>
<li>
<a id="id_manage_passkeys_menu" class="dropdown-item"
href="{% url 'users:passkeys' request.user.username %}"
title="{% trans "Manage passkeys" %}">
{% trans "Manage passkeys" %}
</a>
</li>
<li> <li>
<a id="id_change_password_menu" class="dropdown-item" <a id="id_change_password_menu" class="dropdown-item"
href="{% url 'users:change_password' request.user.username %}" href="{% url 'users:change_password' request.user.username %}"

View File

@ -3,10 +3,13 @@
Tests for common FreedomBox views. Tests for common FreedomBox views.
""" """
import json
import pytest import pytest
from django.http import JsonResponse
from django.urls import resolve from django.urls import resolve
from plinth.views import get_breadcrumbs, is_safe_url from plinth.views import get_breadcrumbs, is_safe_url, json_exception
def test_get_breadcrumbs(rf, test_menu): def test_get_breadcrumbs(rf, test_menu):
@ -82,3 +85,31 @@ def test_is_safe_url_valid_url(url):
def test_is_safe_url_invalid_url(url): def test_is_safe_url_invalid_url(url):
"""Test invalid URLs for safe URL checks.""" """Test invalid URLs for safe URL checks."""
assert not is_safe_url(url) assert not is_safe_url(url)
def test_json_exception(rf):
"""Test handling exceptions in JSON views."""
@json_exception
def error_view(request):
raise Exception('exception-message')
assert error_view.__name__ == 'error_view'
request = rf.get('')
response = error_view(request)
assert response.status_code == 500
json_content = json.loads(response.content)
assert not json_content['result']
assert json_content['error_name'] == 'Exception'
assert json_content['error_string'] == 'exception-message'
def success_view(request):
return JsonResponse({'result': True, 'error_string': None})
request = rf.get('')
response = success_view(request)
assert response.status_code == 200
json_content = json.loads(response.content)
assert json_content['result']
assert json_content['error_string'] is None

View File

@ -3,10 +3,13 @@
Main FreedomBox views. Main FreedomBox views.
""" """
import functools
import logging
import random import random
import time import time
import traceback import traceback
import urllib.parse import urllib.parse
from collections.abc import Callable
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
@ -33,6 +36,8 @@ from plinth.translation import get_language_from_request, set_language
from . import forms, frontpage, operation, setup from . import forms, frontpage, operation, setup
logger = logging.getLogger(__name__)
REDIRECT_FIELD_NAME = 'next' REDIRECT_FIELD_NAME = 'next'
@ -683,6 +688,7 @@ class AppLogsView(TemplateView):
def notification_dismiss(request, id): def notification_dismiss(request, id):
"""Dismiss a notification.""" """Dismiss a notification."""
from django.http import HttpResponse from django.http import HttpResponse
from .notification import Notification from .notification import Notification
notes = Notification.list(key=id, user=request.user) notes = Notification.list(key=id, user=request.user)
if notes: if notes:
@ -697,3 +703,24 @@ def notification_dismiss(request, id):
return response return response
return HttpResponseRedirect(_get_redirect_url_from_param(request)) return HttpResponseRedirect(_get_redirect_url_from_param(request))
def json_exception(view_func: Callable):
"""View decorator to return an view exception in JSON format."""
@functools.wraps(view_func)
def wrapper(*args, **kwargs):
"""Wrapper over view function to handle exceptions."""
try:
return view_func(*args, **kwargs)
except Exception as exception:
logger.exception('Error running view %s - %s', view_func.__name__,
exception)
return JsonResponse(
{
'result': False,
'error_name': type(exception).__name__,
'error_string': str(exception)
}, status=500) # Internal server error
return wrapper

View File

@ -67,6 +67,7 @@ dependencies = [
"django-bootstrap-form", "django-bootstrap-form",
"django-simple-captcha", "django-simple-captcha",
"django-stronghold >= 0.3.0", "django-stronghold >= 0.3.0",
"fido2 >= 1.2.0",
"psutil", "psutil",
"python-apt", "python-apt",
"python-augeas", "python-augeas",