feat: ask which lock screen to use on hyprland and niri

This commit is contained in:
Felitendo committed 2026-09-26 19:37:06 +02:00
1 parent 5699158bb1
commit 1da82f21fc
34 files changed
+5319 -1609

No files matched your search

+10 -1
View File
@@ -160,6 +160,8 @@ if(FU_BUILD_AGENT)
src/agent/sessionlock.cpp src/agent/sessionlock.cpp
src/agent/lockscreencontroller.cpp src/agent/lockscreencontroller.cpp
src/agent/wallpaper.cpp src/agent/wallpaper.cpp
src/agent/locktext.cpp
src/agent/lockpreview.cpp
src/agent/enrollcontroller.cpp src/agent/enrollcontroller.cpp
) )
target_include_directories(face-unlock-agent PRIVATE src/agent) target_include_directories(face-unlock-agent PRIVATE src/agent)
@@ -176,7 +178,7 @@ if(FU_BUILD_AGENT)
# see each other (and the Theme singleton) without importing anything. # see each other (and the Theme singleton) without importing anything.
# Under /qt/qml, which the engine searches, or an installed agent finds no # Under /qt/qml, which the engine searches, or an installed agent finds no
# types (the build directory only works by its FaceUnlock/qmldir). # types (the build directory only works by its FaceUnlock/qmldir).
set(FU_QML_FILES Theme FaceGlyph LockGlyph Checkmark Bubble TickRing Enroll PillButton LockScreen) set(FU_QML_FILES Theme FaceGlyph LockGlyph Checkmark Bubble TickRing Enroll PillButton LockScreen LockChoice LockPreview)
foreach(f ${FU_QML_FILES}) foreach(f ${FU_QML_FILES})
set_source_files_properties(src/agent/qml/${f}.qml PROPERTIES QT_RESOURCE_ALIAS ${f}.qml) set_source_files_properties(src/agent/qml/${f}.qml PROPERTIES QT_RESOURCE_ALIAS ${f}.qml)
endforeach() endforeach()
@@ -199,6 +201,8 @@ if(FU_BUILD_AGENT)
src/agent/qml/Enroll.qml src/agent/qml/Enroll.qml
src/agent/qml/PillButton.qml src/agent/qml/PillButton.qml
src/agent/qml/LockScreen.qml src/agent/qml/LockScreen.qml
src/agent/qml/LockChoice.qml
src/agent/qml/LockPreview.qml
) )
target_link_libraries(face-unlock-agent PRIVATE target_link_libraries(face-unlock-agent PRIVATE
@@ -242,6 +246,11 @@ if(FU_BUILD_TESTS)
target_link_libraries(test_wallpaper PRIVATE Qt6::Core) target_link_libraries(test_wallpaper PRIVATE Qt6::Core)
add_test(NAME wallpaper COMMAND test_wallpaper) add_test(NAME wallpaper COMMAND test_wallpaper)
add_executable(test_lockpreview tests/test_lockpreview.cpp src/agent/lockpreview.cpp)
target_include_directories(test_lockpreview PRIVATE src/agent)
target_link_libraries(test_lockpreview PRIVATE Qt6::Gui KF6::I18n)
add_test(NAME lockpreview COMMAND test_lockpreview)
add_executable(test_lockers tests/test_lockers.cpp src/agent/lockers.cpp) add_executable(test_lockers tests/test_lockers.cpp src/agent/lockers.cpp)
target_include_directories(test_lockers PRIVATE src/agent) target_include_directories(test_lockers PRIVATE src/agent)
target_link_libraries(test_lockers PRIVATE Qt6::Core) target_link_libraries(test_lockers PRIVATE Qt6::Core)
+22 -12
View File
@@ -74,23 +74,33 @@ desktops, on Wayland:
|---|---|---|---| |---|---|---|---|
| KDE Plasma 6 | ✅ | ✅ | ✅ above the lock screen too | | KDE Plasma 6 | ✅ | ✅ | ✅ above the lock screen too |
| GNOME | ✅ | ✅ | ✅ above the lock screen too | | GNOME | ✅ | ✅ | ✅ above the lock screen too |
| Hyprland | ✅ hyprlock, swaylock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too | | Hyprland | ✅ hyprlock, swaylock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too, as a line of text in hyprlock |
| Niri | ✅ swaylock, hyprlock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too | | Niri | ✅ swaylock, hyprlock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too, as a line of text in hyprlock |
On GNOME a small GNOME extension draws the bubble. Turning face unlock on On GNOME a small GNOME extension draws the bubble. Turning face unlock on
switches it on; right after installing, log out and back in once. switches it on; right after installing, log out and back in once.
On Hyprland and Niri the lock screen is a program of your choice, and only it On Hyprland and Niri the lock screen is a program of your choice. When you
can open itself. So face-unlock goes into its password check, as with sudo: turn face unlock on, a window shows your screen both ways and asks which you
press Enter on the empty password field to scan. hyprlock and swaylock also want: face-unlock's lock screen with your wallpaper, or yours, rebuilt from its
scan by themselves when you come back, and so does gtklock after 4.0.0 (the config. You can change it later under **Settings**.
first to open from outside). Those lock screens cover the bubble, which shows
the tick once they are gone. gtklock shows face unlock's messages.
For the bubble on the lock screen, use face-unlock's own: `face-unlock lock`. <p align="center">
It shows the wallpaper of your desktop (from swaybg, awww, hyprpaper or <img src="res/screenshots/lock-choice.png" alt="The window that asks which lock screen to use: face-unlock's with the bubble on the left, the user's own hyprlock with a line of text at the top on the right" width="560">
wpaperd). Under **Settings** you can pick a picture instead, or a folder to take </p>
one from at random, blurred if you like.
- **face-unlock's lock screen**, with the bubble, the time and the wallpaper of
your desktop (from swaybg, awww, hyprpaper or wpaperd). You lock with
`face-unlock lock`, and the menu shows where to put that. Under **Settings**
you can pick a picture instead, or a folder to take one from at random,
blurred if you like.
- **Keep your lock screen.** Only it can open itself, so face-unlock goes into
its password check, as with sudo: press Enter on the empty password field to
scan. hyprlock and swaylock also scan by themselves when you come back, and
so does gtklock after 4.0.0 (the first to open from outside). They cover the
bubble, but hyprlock shows what face unlock is doing as a line of text at the
top (face-unlock adds that line to your `hyprlock.conf`), and gtklock shows
its messages. swaylock and waylock have no way to show them.
Admin prompts and setting up a face need a polkit agent there (for example Admin prompts and setting up a face need a polkit agent there (for example
hyprpolkitagent). Hyprland without uwsm does not start the part that watches hyprpolkitagent). Hyprland without uwsm does not start the part that watches
+17 -2
View File
@@ -247,8 +247,16 @@ so does the bubble, above the lock screen too.
sets *LockedHint*), scans when somebody comes back, and opens them with sets *LockedHint*), scans when somebody comes back, and opens them with
SIGUSR1. It only does so once the lock screen handles SIGUSR1: before SIGUSR1. It only does so once the lock screen handles SIGUSR1: before
it has locked, the signal would kill it. Those lock screens cover the it has locked, the signal would kill it. Those lock screens cover the
bubble, which shows the tick once they are gone. gtklock shows the bubble. hyprlock shows it as a line of text instead: a label in
messages of the PAM module. _~/.config/hypr/hyprlock.conf_ (a *source* line under a face-unlock
comment) reads what the agent writes, and SIGUSR2 makes hyprlock read
it again. gtklock shows the messages of the PAM module; swaylock and
waylock show none.
*enable* asks once in a window which way to go: face-unlock's lock
screen, or the user's own with that line of text. The window shows the
screen both ways, the user's own rebuilt from the config of hyprlock or
swaylock. *Which lock screen* under *Settings* opens it again.
For the bubble on the lock screen there is face-unlock's own: *lock*. For the bubble on the lock screen there is face-unlock's own: *lock*.
It shows the time, a password field (PAM service _face-unlock-lock_ It shows the time, a password field (PAM service _face-unlock-lock_
@@ -336,6 +344,13 @@ _$XDG_RUNTIME_DIR/face-unlock/agent.socket_
_$XDG_RUNTIME_DIR/face-unlock/locked_ _$XDG_RUNTIME_DIR/face-unlock/locked_
There while face-unlock's own lock screen is up. There while face-unlock's own lock screen is up.
_$XDG_RUNTIME_DIR/face-unlock/lock-text_
What hyprlock shows at the top when the user keeps their own lock
screen.
_~/.config/face-unlock/hyprlock.conf_
The label for that, which _~/.config/hypr/hyprlock.conf_ sources.
_/usr/share/gnome-shell/extensions/face-unlock@loonixtools.github.io/_ _/usr/share/gnome-shell/extensions/face-unlock@loonixtools.github.io/_
The GNOME Shell extension that draws the bubble on GNOME. The GNOME Shell extension that draws the bubble on GNOME.
+257 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.0\n" "Project-Id-Version: face-unlock 1.0.0\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-23 22:32+0200\n" "PO-Revision-Date: 2026-09-23 22:32+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: German\n" "Language-Team: German\n"
@@ -59,8 +59,9 @@ msgstr "Es wurde kein Gesicht hinzugefügt."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Richte zuerst dein Gesicht ein." msgstr "Richte zuerst dein Gesicht ein."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Einstellung konnte nicht gespeichert werden." msgstr "Einstellung konnte nicht gespeichert werden."
@@ -84,7 +85,16 @@ msgstr ""
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Melde dich einmal ab und wieder an: dann zeigt GNOME die Bubble auch." msgstr "Melde dich einmal ab und wieder an: dann zeigt GNOME die Bubble auch."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Wähle deinen Sperrbildschirm im Fenster."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
"Kein Sperrbildschirm gewählt. Das geht später auch unter Einstellungen."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -93,102 +103,102 @@ msgstr ""
"Der Sperrbildschirm (%s) nimmt dein Gesicht auch. Scannt er nicht, wenn du " "Der Sperrbildschirm (%s) nimmt dein Gesicht auch. Scannt er nicht, wenn du "
"zurückkommst, drück Enter im leeren Passwortfeld." "zurückkommst, drück Enter im leeren Passwortfeld."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Die Gesichtsentsperrung ist an. Sperre den Bildschirm und schau ihn an, um " "Die Gesichtsentsperrung ist an. Sperre den Bildschirm und schau ihn an, um "
"es auszuprobieren." "es auszuprobieren."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Sie kann auch sudo und Admin-Abfragen übernehmen. Siehe Einstellungen." msgstr "Sie kann auch sudo und Admin-Abfragen übernehmen. Siehe Einstellungen."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Die Gesichtsentsperrung ist aus. Deine Gesichter bleiben erhalten; löschen " "Die Gesichtsentsperrung ist aus. Deine Gesichter bleiben erhalten; löschen "
"kannst du sie unter Gesichter." "kannst du sie unter Gesichter."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Es ist noch kein Gesicht eingerichtet." msgstr "Es ist noch kein Gesicht eingerichtet."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "an" msgstr "an"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "aus" msgstr "aus"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s Aufnahmen, %s dazugelernt" msgstr "%s Aufnahmen, %s dazugelernt"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Welches Gesicht? Die IDs zeigt `%s faces`." msgstr "Welches Gesicht? Die IDs zeigt `%s faces`."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Gelöscht." msgstr "Gelöscht."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Aufruf: face-unlock [Befehl]" msgstr "Aufruf: face-unlock [Befehl]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Befehle:" msgstr "Befehle:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Gesichtsentsperrung einschalten" msgstr "Gesichtsentsperrung einschalten"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Ausschalten (Gesichter bleiben erhalten)" msgstr "Ausschalten (Gesichter bleiben erhalten)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Gesicht hinzufügen" msgstr "Gesicht hinzufügen"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Gesichter auflisten" msgstr "Gesichter auflisten"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Ein Gesicht löschen" msgstr "Ein Gesicht löschen"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "In die Kamera schauen und sehen, was sie sieht" msgstr "In die Kamera schauen und sehen, was sie sieht"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Bildschirm sperren" msgstr "Bildschirm sperren"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Anzeigen, was eingeschaltet ist" msgstr "Anzeigen, was eingeschaltet ist"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Diese Hilfe anzeigen" msgstr "Diese Hilfe anzeigen"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Die Version anzeigen" msgstr "Die Version anzeigen"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Ohne Befehl wird ein interaktives Menü angezeigt." msgstr "Ohne Befehl wird ein interaktives Menü angezeigt."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -196,42 +206,42 @@ msgstr ""
"Starte das als dein eigener Benutzer, nicht als root. Wenn nötig, wird nach " "Starte das als dein eigener Benutzer, nicht als root. Wenn nötig, wird nach "
"deinem Passwort gefragt." "deinem Passwort gefragt."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Unbekannter Befehl: %s" msgstr "Unbekannter Befehl: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "nie" msgstr "nie"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "gerade eben" msgstr "gerade eben"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "vor 1 Minute" msgstr "vor 1 Minute"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "vor %d Minuten" msgstr "vor %d Minuten"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "vor 1 Stunde" msgstr "vor 1 Stunde"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "vor %d Stunden" msgstr "vor %d Stunden"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "vor 1 Tag" msgstr "vor 1 Tag"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "vor %d Tagen" msgstr "vor %d Tagen"
@@ -271,7 +281,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Die Kamera konnte nicht benutzt werden." msgstr "Die Kamera konnte nicht benutzt werden."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Die Erkennungsmodelle fehlen. Installiere das Paket neu." msgstr "Die Erkennungsmodelle fehlen. Installiere das Paket neu."
@@ -375,11 +385,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[j/N]" msgstr "[j/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "AN" msgstr "AN"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "AUS" msgstr "AUS"
@@ -420,85 +430,93 @@ msgstr "langsam"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s Sekunden" msgstr "%s Sekunden"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automatisch" msgstr "automatisch"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "deiner"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Gesichtsentsperrung" msgstr "Gesichtsentsperrung"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Dienst" msgstr "Dienst"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "läuft nicht" msgstr "läuft nicht"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Die Gesichtsentsperrung erneut einzuschalten startet ihn." msgstr "Die Gesichtsentsperrung erneut einzuschalten startet ihn."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Gesichter" msgstr "Gesichter"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "noch keins eingerichtet" msgstr "noch keins eingerichtet"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "alle ausgeschaltet" msgstr "alle ausgeschaltet"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "keine gefunden" msgstr "keine gefunden"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Kamera" msgstr "Kamera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Sperrbildschirm" msgstr "Sperrbildschirm"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Admin-Abfragen" msgstr "Admin-Abfragen"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Sperrbildschirme" msgstr "Sperrbildschirme"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Foto-Prüfung" msgstr "Foto-Prüfung"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Pausiert" msgstr "Pausiert"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "noch %d Minuten, oder bis das Passwort benutzt wird" msgstr "noch %d Minuten, oder bis das Passwort benutzt wird"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Letzte Entsperrung" msgstr "Letzte Entsperrung"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "Der Sperrbildschirm-Dienst läuft nicht." msgstr "Der Sperrbildschirm-Dienst läuft nicht."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -506,7 +524,7 @@ msgstr ""
"Unter GNOME zeigt eine kleine GNOME-Erweiterung die Bubble. Beim Einschalten " "Unter GNOME zeigt eine kleine GNOME-Erweiterung die Bubble. Beim Einschalten "
"der Gesichtsentsperrung wird sie mit eingeschaltet." "der Gesichtsentsperrung wird sie mit eingeschaltet."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -516,7 +534,7 @@ msgstr ""
"unlock zurückkommst (`face-unlock lock`, mit der Bubble), und öffnet sie. " "unlock zurückkommst (`face-unlock lock`, mit der Bubble), und öffnet sie. "
"Andere Sperrbildschirme scannen mit Enter." "Andere Sperrbildschirme scannen mit Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -524,7 +542,7 @@ msgstr ""
"Entsperrt den Sperrbildschirm, wenn er dein Gesicht sieht. Aus: Dort geht " "Entsperrt den Sperrbildschirm, wenn er dein Gesicht sieht. Aus: Dort geht "
"nur dein Passwort." "nur dein Passwort."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -532,7 +550,7 @@ msgstr ""
"Scannt, wenn du auf dem Sperrbildschirm eine Taste drückst oder die Maus " "Scannt, wenn du auf dem Sperrbildschirm eine Taste drückst oder die Maus "
"bewegst, und wenn der Computer aufwacht." "bewegst, und wenn der Computer aufwacht."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -540,7 +558,7 @@ msgstr ""
"Scannt, sobald der Bildschirm gesperrt wird. Normalerweise aus: Sperrst du " "Scannt, sobald der Bildschirm gesperrt wird. Normalerweise aus: Sperrst du "
"selbst, würde er gleich wieder entsperren." "selbst, würde er gleich wieder entsperren."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -548,7 +566,17 @@ msgstr ""
"sudo nimmt dein Gesicht statt des Passworts. Passt es nicht, tippst du wie " "sudo nimmt dein Gesicht statt des Passworts. Passt es nicht, tippst du wie "
"gewohnt dein Passwort." "gewohnt dein Passwort."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"Der Sperrbildschirm von face-unlock zeigt die Bubble, und du sperrst mit "
"`face-unlock lock`. Oder behalte deinen: hyprlock zeigt dann oben eine "
"Textzeile. Enter öffnet die Auswahl."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -558,11 +586,11 @@ msgstr ""
"Leer: das von deinem Desktop. Oder eine Datei, ein Ordner, aus dem zufällig " "Leer: das von deinem Desktop. Oder eine Datei, ein Ordner, aus dem zufällig "
"eins genommen wird, oder `none`. Enter zum Eintippen." "eins genommen wird, oder `none`. Enter zum Eintippen."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Zeichnet das Bild hinter dem Sperrbildschirm von face-unlock weich." msgstr "Zeichnet das Bild hinter dem Sperrbildschirm von face-unlock weich."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -571,7 +599,7 @@ msgstr ""
"Der Sperrbildschirm nimmt dein Gesicht in seiner Passwortprüfung. Drück " "Der Sperrbildschirm nimmt dein Gesicht in seiner Passwortprüfung. Drück "
"Enter im leeren Feld für einen Scan. Hier gefunden: %s." "Enter im leeren Feld für einen Scan. Hier gefunden: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -579,18 +607,18 @@ msgstr ""
"Die Passwort-Fenster deines Desktops und von Apps, zum Beispiel beim " "Die Passwort-Fenster deines Desktops und von Apps, zum Beispiel beim "
"Installieren. Passt das Gesicht nicht, tippst du dein Passwort." "Installieren. Passt das Gesicht nicht, tippst du dein Passwort."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Du musst blinzeln oder den Kopf leicht drehen. Das hält auch ausgedruckte " "Du musst blinzeln oder den Kopf leicht drehen. Das hält auch ausgedruckte "
"Fotos auf." "Fotos auf."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Keine Prüfung. Nur zum Ausprobieren einer Kamera." msgstr "Keine Prüfung. Nur zum Ausprobieren einer Kamera."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -598,22 +626,22 @@ msgstr ""
"Hält Fotos auf Handy, Tablet oder Hochglanzpapier auf. Blinzeln ist nicht " "Hält Fotos auf Handy, Tablet oder Hochglanzpapier auf. Blinzeln ist nicht "
"nötig. Ein matter Ausdruck kann durchkommen." "nötig. Ein matter Ausdruck kann durchkommen."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Seltener Verwechslungen, aber mit Brille oder bei schlechtem Licht erkennt " "Seltener Verwechslungen, aber mit Brille oder bei schlechtem Licht erkennt "
"es dich vielleicht nicht." "es dich vielleicht nicht."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Erkennt dich leichter, aber auch jemanden, der dir sehr ähnlich sieht." msgstr "Erkennt dich leichter, aber auch jemanden, der dir sehr ähnlich sieht."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "Der Standard. Passt für die meisten." msgstr "Der Standard. Passt für die meisten."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -621,7 +649,7 @@ msgstr ""
"Deine Augen müssen offen sein und auf den Bildschirm schauen. So entsperrt " "Deine Augen müssen offen sein und auf den Bildschirm schauen. So entsperrt "
"es nicht, wenn du wegschaust oder schläfst." "es nicht, wenn du wegschaust oder schläfst."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -630,11 +658,11 @@ msgstr ""
"neu einrichten. Eine Infrarot-Kamera braucht ihr Licht (linux-enable-ir-" "neu einrichten. Eine Infrarot-Kamera braucht ihr Licht (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Wie lange die Kamera nach deinem Gesicht sucht, bevor sie aufgibt." msgstr "Wie lange die Kamera nach deinem Gesicht sucht, bevor sie aufgibt."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -642,7 +670,7 @@ msgstr ""
"Nach einem sicheren Treffer merkt es sich, wie du gerade aussiehst. So musst " "Nach einem sicheren Treffer merkt es sich, wie du gerade aussiehst. So musst "
"du nach neuer Frisur oder Brille nichts neu einrichten." "du nach neuer Frisur oder Brille nichts neu einrichten."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -650,99 +678,99 @@ msgstr ""
"Kein Scan bei zugeklapptem Laptop, zum Beispiel am Schreibtisch mit externem " "Kein Scan bei zugeklapptem Laptop, zum Beispiel am Schreibtisch mit externem "
"Bildschirm." "Bildschirm."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Die Bubble oben am Bildschirm zeigt, was die Kamera gerade macht." msgstr "Die Bubble oben am Bildschirm zeigt, was die Kamera gerade macht."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Eine kleine Pille mit einem Schloss, das aufgeht." msgstr "Eine kleine Pille mit einem Schloss, das aufgeht."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "" msgstr ""
"Eine Insel mit einem Gesicht, das sich umschaut, danach Ringe und ein Haken." "Eine Insel mit einem Gesicht, das sich umschaut, danach Ringe und ein Haken."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Wie schnell sich die Bubble bewegt." msgstr "Wie schnell sich die Bubble bewegt."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Zeigt die Bubble auch, wenn sudo oder eine Admin-Abfrage dein Gesicht scannt." "Zeigt die Bubble auch, wenn sudo oder eine Admin-Abfrage dein Gesicht scannt."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automatisch (%s)" msgstr "automatisch (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(Infrarot)" msgstr "(Infrarot)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(nicht angeschlossen)" msgstr "(nicht angeschlossen)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "wie Desktop" msgstr "wie Desktop"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "keins" msgstr "keins"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Bild oder Ordner:" msgstr "Bild oder Ordner:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Nicht gefunden: %s" msgstr "Nicht gefunden: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ auswählen ←→ oder Leertaste: ändern q: zurück" msgstr "↑↓ auswählen ←→ oder Leertaste: ändern q: zurück"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "für alle Nutzer, fragt nach deinem Passwort" msgstr "für alle Nutzer, fragt nach deinem Passwort"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Hoch/Runter: wählen, Leertaste: an/aus, r: umbenennen, d: löschen, a: " "Hoch/Runter: wählen, Leertaste: an/aus, r: umbenennen, d: löschen, a: "
"hinzufügen, q: zurück" "hinzufügen, q: zurück"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Es ist noch kein Gesicht eingerichtet. Drück a, um eins hinzuzufügen." msgstr "Es ist noch kein Gesicht eingerichtet. Drück a, um eins hinzuzufügen."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Neuer Name:" msgstr "Neuer Name:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "„%s“ löschen?" msgstr "„%s“ löschen?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Gesichtsentsperrung ein- oder ausschalten" msgstr "Gesichtsentsperrung ein- oder ausschalten"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Ausprobieren" msgstr "Ausprobieren"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Beenden" msgstr "Beenden"
@@ -791,6 +819,53 @@ msgstr ""
"Hyprland startet den Sperrbildschirm-Dienst nicht von selbst. Füge das in %s " "Hyprland startet den Sperrbildschirm-Dienst nicht von selbst. Füge das in %s "
"ein:" "ein:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Um damit zu sperren, trag das in %s ein und setze %s in %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Um damit zu sperren, trag das bei den binds in %s ein und nutze %s in "
"swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Um damit zu sperren, starte %s dort, wo jetzt dein Sperrbildschirm startet."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Du sperrst jetzt mit dem Sperrbildschirm von face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock zeigt oben, was face unlock gerade tut, ab dem nächsten Sperren."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Konnte die Zeile nicht in %s eintragen."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Dein Sperrbildschirm bleibt, wie er ist. Drück Enter im leeren Passwortfeld, "
"um zu scannen."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock hat keine %s, also kann es den Text nicht zeigen."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Mit dem Gesicht entsperren" msgstr "Mit dem Gesicht entsperren"
@@ -803,6 +878,10 @@ msgstr "Scannen, wenn du zurückkommst"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Gleich nach dem Sperren scannen" msgstr "Gleich nach dem Sperren scannen"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Welcher Sperrbildschirm"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Hintergrundbild" msgstr "Hintergrundbild"
@@ -972,34 +1051,47 @@ msgstr ""
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Das Gesicht konnte nicht hinzugefügt werden (%1)." msgstr "Das Gesicht konnte nicht hinzugefügt werden (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Suche dein Gesicht…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Falsches Passwort" msgstr "Falsches Passwort"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Gesicht erkannt"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Gesichtsentsperrung für Sperrbildschirm, sudo und Admin-Abfragen" msgstr "Gesichtsentsperrung für Sperrbildschirm, sudo und Admin-Abfragen"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Ein Gesicht einrichten." msgstr "Ein Gesicht einrichten."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Wie das neue Gesicht heißen soll." msgstr "Wie das neue Gesicht heißen soll."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Den Bildschirm sperren." msgstr "Den Bildschirm sperren."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Die Animationen der Bubble einmal abspielen." msgstr "Die Animationen der Bubble einmal abspielen."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Bubble-Stil für die Demo: full oder minimal." msgstr "Bubble-Stil für die Demo: full oder minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Fragt, welcher Sperrbildschirm genutzt wird, und gibt die Antwort aus."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Schau zum Entsperren in die Kamera." msgstr "Schau zum Entsperren in die Kamera."
@@ -1058,7 +1150,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Name (optional)" msgstr "Name (optional)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
@@ -1078,14 +1170,66 @@ msgstr "Los geht's"
msgid "Done" msgid "Done"
msgstr "Fertig" msgstr "Fertig"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Sperrbildschirm wählen"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Dein Sperrbildschirm"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Dein Desktop überlässt den Sperrbildschirm einem Programm deiner Wahl. "
"Wähle, wie face unlock dort auftaucht. Du kannst das später unter "
"Einstellungen ändern."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Sperrbildschirm von face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"Die Bubble oben, die Uhrzeit und dein Hintergrundbild. Dein Tastenkürzel und "
"das Sperren bei Inaktivität rufen dann face-unlock lock auf."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Deinen Sperrbildschirm behalten"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Er bleibt, wie er ist. hyprlock zeigt oben eine Textzeile statt der Bubble. "
"Enter im leeren Passwortfeld scannt."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Er bleibt, wie er ist, ohne Bubble. Enter im leeren Passwortfeld scannt."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Weiter"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Passwort" msgstr "Passwort"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Schau in die Kamera oder tippe dein Passwort" msgstr "Schau in die Kamera oder tippe dein Passwort"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Tippe dein Passwort" msgstr "Tippe dein Passwort"
+258 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
@@ -58,8 +58,9 @@ msgstr "No se añadió ninguna cara."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Primero, configura tu cara." msgstr "Primero, configura tu cara."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "No se pudo guardar el ajuste." msgstr "No se pudo guardar el ajuste."
@@ -83,7 +84,16 @@ msgstr ""
"Cierra la sesión y vuelve a entrar una vez: entonces GNOME también muestra " "Cierra la sesión y vuelve a entrar una vez: entonces GNOME también muestra "
"la burbuja." "la burbuja."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Elige tu pantalla de bloqueo en la ventana."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
"No se eligió ninguna pantalla de bloqueo. Puedes hacerlo luego en Ajustes."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -92,104 +102,104 @@ msgstr ""
"La pantalla de bloqueo (%s) también acepta tu cara. Si no escanea cuando " "La pantalla de bloqueo (%s) también acepta tu cara. Si no escanea cuando "
"vuelves, pulsa Intro en el campo de contraseña vacío." "vuelves, pulsa Intro en el campo de contraseña vacío."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"El desbloqueo facial está activado. Bloquea la pantalla y mírala para " "El desbloqueo facial está activado. Bloquea la pantalla y mírala para "
"probarlo." "probarlo."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
"También funciona con sudo y las solicitudes de administrador. Consulta " "También funciona con sudo y las solicitudes de administrador. Consulta "
"Ajustes." "Ajustes."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"El desbloqueo facial está desactivado. Tus caras se conservan; bórralas en " "El desbloqueo facial está desactivado. Tus caras se conservan; bórralas en "
"Caras." "Caras."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Todavía no hay ninguna cara configurada." msgstr "Todavía no hay ninguna cara configurada."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "activado" msgstr "activado"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "desactivado" msgstr "desactivado"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s muestras, %s aprendidas" msgstr "%s muestras, %s aprendidas"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "¿Qué cara? Consulta `%s faces` para ver los ID." msgstr "¿Qué cara? Consulta `%s faces` para ver los ID."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Borrado." msgstr "Borrado."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]" msgstr "Uso: face-unlock [comando]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Comandos:" msgstr "Comandos:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Activar el desbloqueo facial" msgstr "Activar el desbloqueo facial"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Desactivarlo (las caras se conservan)" msgstr "Desactivarlo (las caras se conservan)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Añadir una cara" msgstr "Añadir una cara"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Listar las caras" msgstr "Listar las caras"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Borrar una cara" msgstr "Borrar una cara"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Mirar a la cámara y ver lo que ve" msgstr "Mirar a la cámara y ver lo que ve"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Bloquear la pantalla" msgstr "Bloquear la pantalla"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Mostrar qué está activado" msgstr "Mostrar qué está activado"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Mostrar esta ayuda" msgstr "Mostrar esta ayuda"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Mostrar la versión" msgstr "Mostrar la versión"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Sin comando se muestra un menú interactivo." msgstr "Sin comando se muestra un menú interactivo."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -197,42 +207,42 @@ msgstr ""
"Ejecuta esto con tu propio usuario, no como root. Pide tu contraseña cuando " "Ejecuta esto con tu propio usuario, no como root. Pide tu contraseña cuando "
"la necesita." "la necesita."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Comando desconocido: %s" msgstr "Comando desconocido: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "nunca" msgstr "nunca"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "ahora mismo" msgstr "ahora mismo"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "hace 1 minuto" msgstr "hace 1 minuto"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "hace %d minutos" msgstr "hace %d minutos"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "hace 1 hora" msgstr "hace 1 hora"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "hace %d horas" msgstr "hace %d horas"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "hace 1 día" msgstr "hace 1 día"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "hace %d días" msgstr "hace %d días"
@@ -272,7 +282,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "No se pudo usar la cámara." msgstr "No se pudo usar la cámara."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Faltan los modelos de reconocimiento. Reinstala el paquete." msgstr "Faltan los modelos de reconocimiento. Reinstala el paquete."
@@ -376,11 +386,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[s/N]" msgstr "[s/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "ACTIVADO" msgstr "ACTIVADO"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "DESACTIVADO" msgstr "DESACTIVADO"
@@ -421,85 +431,93 @@ msgstr "lenta"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s segundos" msgstr "%s segundos"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automática" msgstr "automática"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "la de face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "la tuya"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Desbloqueo facial" msgstr "Desbloqueo facial"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Servicio" msgstr "Servicio"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "detenido" msgstr "detenido"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Al volver a activar el desbloqueo facial, se inicia." msgstr "Al volver a activar el desbloqueo facial, se inicia."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Caras" msgstr "Caras"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "ninguna configurada aún" msgstr "ninguna configurada aún"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "todas desactivadas" msgstr "todas desactivadas"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "ninguna encontrada" msgstr "ninguna encontrada"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Cámara" msgstr "Cámara"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Pantalla de bloqueo" msgstr "Pantalla de bloqueo"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Solicitudes de administrador" msgstr "Solicitudes de administrador"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Pantallas de bloqueo" msgstr "Pantallas de bloqueo"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Detección de fotos" msgstr "Detección de fotos"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "En pausa" msgstr "En pausa"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "%d minutos más, o hasta que se use la contraseña" msgstr "%d minutos más, o hasta que se use la contraseña"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Último desbloqueo" msgstr "Último desbloqueo"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "El agente de la pantalla de bloqueo no se está ejecutando." msgstr "El agente de la pantalla de bloqueo no se está ejecutando."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -507,7 +525,7 @@ msgstr ""
"En GNOME, una pequeña extensión de GNOME muestra la burbuja. Al activar el " "En GNOME, una pequeña extensión de GNOME muestra la burbuja. Al activar el "
"desbloqueo facial se activa también." "desbloqueo facial se activa también."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -517,7 +535,7 @@ msgstr ""
"de face-unlock (`face-unlock lock`, con la burbuja) y los abre. Las demás " "de face-unlock (`face-unlock lock`, con la burbuja) y los abre. Las demás "
"pantallas de bloqueo escanean con Intro." "pantallas de bloqueo escanean con Intro."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -525,7 +543,7 @@ msgstr ""
"Desbloquea la pantalla de bloqueo cuando ve tu cara. Desactivado: ahí solo " "Desbloquea la pantalla de bloqueo cuando ve tu cara. Desactivado: ahí solo "
"sirve tu contraseña." "sirve tu contraseña."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -533,7 +551,7 @@ msgstr ""
"Escanea cuando pulsas una tecla o mueves el ratón en la pantalla de bloqueo, " "Escanea cuando pulsas una tecla o mueves el ratón en la pantalla de bloqueo, "
"y cuando el equipo se despierta." "y cuando el equipo se despierta."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -541,7 +559,7 @@ msgstr ""
"Escanea en cuanto se bloquea la pantalla. Desactivado por defecto: si la " "Escanea en cuanto se bloquea la pantalla. Desactivado por defecto: si la "
"bloqueas tú, se desbloquearía enseguida." "bloqueas tú, se desbloquearía enseguida."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -549,7 +567,17 @@ msgstr ""
"sudo usa tu cara en lugar de la contraseña. Si no coincide, escribes la " "sudo usa tu cara en lugar de la contraseña. Si no coincide, escribes la "
"contraseña como siempre." "contraseña como siempre."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"La pantalla de bloqueo de face-unlock muestra la burbuja, y bloqueas con "
"`face-unlock lock`. O quédate con la tuya: hyprlock muestra entonces una "
"línea de texto arriba. Intro abre la elección."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -559,11 +587,11 @@ msgstr ""
"lock`). Vacío: la de tu escritorio. O un archivo, una carpeta de la que se " "lock`). Vacío: la de tu escritorio. O un archivo, una carpeta de la que se "
"elige una al azar, o `none`. Intro para escribirla." "elige una al azar, o `none`. Intro para escribirla."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Desenfoca la imagen detrás de la pantalla de bloqueo de face-unlock." msgstr "Desenfoca la imagen detrás de la pantalla de bloqueo de face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -572,7 +600,7 @@ msgstr ""
"La pantalla de bloqueo acepta tu cara en su comprobación de contraseña. " "La pantalla de bloqueo acepta tu cara en su comprobación de contraseña. "
"Pulsa Intro en el campo vacío para escanear. Encontradas aquí: %s." "Pulsa Intro en el campo vacío para escanear. Encontradas aquí: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -580,18 +608,18 @@ msgstr ""
"Las ventanas de contraseña de tu escritorio y de las aplicaciones, por " "Las ventanas de contraseña de tu escritorio y de las aplicaciones, por "
"ejemplo al instalar software. Si no coincide, escribes la contraseña." "ejemplo al instalar software. Si no coincide, escribes la contraseña."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Tienes que parpadear o girar un poco la cabeza. Esto también frena las fotos " "Tienes que parpadear o girar un poco la cabeza. Esto también frena las fotos "
"impresas." "impresas."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Sin comprobación. Solo para probar una cámara." msgstr "Sin comprobación. Solo para probar una cámara."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -599,24 +627,24 @@ msgstr ""
"Frena fotos en un móvil, una tableta o papel brillante. No hace falta " "Frena fotos en un móvil, una tableta o papel brillante. No hace falta "
"parpadear. Una foto impresa en papel mate puede pasar." "parpadear. Una foto impresa en papel mate puede pasar."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Menos coincidencias erróneas, pero puede que no te reconozca con gafas o con " "Menos coincidencias erróneas, pero puede que no te reconozca con gafas o con "
"poca luz." "poca luz."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "" msgstr ""
"Te reconoce con más facilidad, pero también a alguien que se parezca mucho a " "Te reconoce con más facilidad, pero también a alguien que se parezca mucho a "
"ti." "ti."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "El valor por defecto. Adecuado para la mayoría." msgstr "El valor por defecto. Adecuado para la mayoría."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -624,7 +652,7 @@ msgstr ""
"Tus ojos tienen que estar abiertos y mirando a la pantalla. Así no se " "Tus ojos tienen que estar abiertos y mirando a la pantalla. Así no se "
"desbloquea mientras miras a otro lado o duermes." "desbloquea mientras miras a otro lado o duermes."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -633,11 +661,11 @@ msgstr ""
"tu cara. Una cámara infrarroja necesita su luz encendida (linux-enable-ir-" "tu cara. Una cámara infrarroja necesita su luz encendida (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Cuánto tiempo busca la cámara tu cara antes de rendirse." msgstr "Cuánto tiempo busca la cámara tu cara antes de rendirse."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -645,7 +673,7 @@ msgstr ""
"Tras una coincidencia segura, recuerda tu aspecto actual. Así, un corte de " "Tras una coincidencia segura, recuerda tu aspecto actual. Así, un corte de "
"pelo nuevo o unas gafas no piden configurar de nuevo." "pelo nuevo o unas gafas no piden configurar de nuevo."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -653,102 +681,102 @@ msgstr ""
"Sin escaneo mientras el portátil está cerrado, por ejemplo en un escritorio " "Sin escaneo mientras el portátil está cerrado, por ejemplo en un escritorio "
"con una pantalla externa." "con una pantalla externa."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "" msgstr ""
"La burbuja en la parte superior de la pantalla muestra lo que hace la cámara." "La burbuja en la parte superior de la pantalla muestra lo que hace la cámara."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Una pequeña pastilla con un candado que se abre." msgstr "Una pequeña pastilla con un candado que se abre."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "" msgstr ""
"Una isla con una cara que mira alrededor, luego anillos y una marca de " "Una isla con una cara que mira alrededor, luego anillos y una marca de "
"verificación." "verificación."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "La velocidad a la que se mueve la burbuja." msgstr "La velocidad a la que se mueve la burbuja."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Muestra la burbuja también cuando sudo o una solicitud de administrador " "Muestra la burbuja también cuando sudo o una solicitud de administrador "
"escanea tu cara." "escanea tu cara."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automática (%s)" msgstr "automática (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(infrarroja)" msgstr "(infrarroja)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(no conectada)" msgstr "(no conectada)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "como el escritorio" msgstr "como el escritorio"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "ninguna" msgstr "ninguna"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Imagen o carpeta:" msgstr "Imagen o carpeta:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "No encontrado: %s" msgstr "No encontrado: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Ajustes" msgstr "Ajustes"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ elegir ←→ o Espacio: cambiar q: volver" msgstr "↑↓ elegir ←→ o Espacio: cambiar q: volver"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "para todos los usuarios, pide tu contraseña" msgstr "para todos los usuarios, pide tu contraseña"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Arriba/Abajo: elegir, Espacio: activar/desactivar, r: renombrar, d: borrar, " "Arriba/Abajo: elegir, Espacio: activar/desactivar, r: renombrar, d: borrar, "
"a: añadir, q: volver" "a: añadir, q: volver"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Todavía no hay ninguna cara configurada. Pulsa a para añadir una." msgstr "Todavía no hay ninguna cara configurada. Pulsa a para añadir una."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Nuevo nombre:" msgstr "Nuevo nombre:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "¿Borrar «%s»?" msgstr "¿Borrar «%s»?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Activar o desactivar el desbloqueo facial" msgstr "Activar o desactivar el desbloqueo facial"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Probarlo" msgstr "Probarlo"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Salir" msgstr "Salir"
@@ -796,6 +824,54 @@ msgstr ""
"Hyprland no inicia por sí solo el agente de la pantalla de bloqueo. Añade " "Hyprland no inicia por sí solo el agente de la pantalla de bloqueo. Añade "
"esto a %s:" "esto a %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Para bloquear con ella, añade esto a %s y pon %s en %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Para bloquear con ella, añade esto a los binds de %s y usa %s en swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Para bloquear con ella, ejecuta %s donde ahora se inicia tu pantalla de "
"bloqueo."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Ahora bloqueas con la pantalla de bloqueo de face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock muestra arriba lo que hace face unlock, a partir del próximo "
"bloqueo."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "No se pudo añadir la línea a %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Tu pantalla de bloqueo se queda como está. Pulsa Intro en el campo de "
"contraseña vacío para escanear."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock no tiene %s, así que no puede mostrar el texto."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Desbloquear con tu cara" msgstr "Desbloquear con tu cara"
@@ -808,6 +884,10 @@ msgstr "Escanear cuando vuelvas"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Escanear justo después de bloquear" msgstr "Escanear justo después de bloquear"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Qué pantalla de bloqueo"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Fondo de pantalla" msgstr "Fondo de pantalla"
@@ -975,36 +1055,49 @@ msgstr ""
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "No se pudo añadir la cara (%1)." msgstr "No se pudo añadir la cara (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Buscando tu cara…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Contraseña incorrecta" msgstr "Contraseña incorrecta"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Cara reconocida"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Desbloqueo facial para la pantalla de bloqueo, sudo y las solicitudes de " "Desbloqueo facial para la pantalla de bloqueo, sudo y las solicitudes de "
"administrador" "administrador"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Configurar una cara." msgstr "Configurar una cara."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Cómo llamar a la nueva cara." msgstr "Cómo llamar a la nueva cara."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Bloquear la pantalla." msgstr "Bloquear la pantalla."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Reproducir una vez las animaciones de la burbuja." msgstr "Reproducir una vez las animaciones de la burbuja."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Estilo de burbuja para la demo: full o minimal." msgstr "Estilo de burbuja para la demo: full o minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Pregunta qué pantalla de bloqueo usar e imprime la respuesta."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Mira a la cámara para desbloquear." msgstr "Mira a la cámara para desbloquear."
@@ -1063,7 +1156,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Nombre (opcional)" msgstr "Nombre (opcional)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@@ -1083,14 +1176,66 @@ msgstr "Empezar"
msgid "Done" msgid "Done"
msgstr "Hecho" msgstr "Hecho"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Elige tu pantalla de bloqueo"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Tu pantalla de bloqueo"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Tu escritorio deja la pantalla de bloqueo a un programa que tú eliges. Elige "
"cómo aparece face unlock ahí. Puedes cambiarlo luego en Ajustes."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Pantalla de bloqueo de face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"La burbuja arriba, la hora y tu fondo de pantalla. Tu atajo y el bloqueo por "
"inactividad ejecutan entonces face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Mantener tu pantalla de bloqueo"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Se queda como está. hyprlock muestra una línea de texto arriba en lugar de "
"la burbuja. Intro en el campo de contraseña vacío escanea."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Se queda como está, sin la burbuja. Intro en el campo de contraseña vacío "
"escanea."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Continuar"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Contraseña" msgstr "Contraseña"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Mira a la cámara o escribe tu contraseña" msgstr "Mira a la cámara o escribe tu contraseña"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Escribe tu contraseña" msgstr "Escribe tu contraseña"
+239 -113
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\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"
@@ -54,8 +54,9 @@ msgstr ""
msgid "First, set up your face." msgid "First, set up your face."
msgstr "" msgstr ""
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "" msgstr ""
@@ -75,146 +76,154 @@ msgstr ""
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "" msgstr ""
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr ""
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
"back, press Enter on the empty password field." "back, press Enter on the empty password field."
msgstr "" msgstr ""
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "" msgstr ""
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "" msgstr ""
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "" msgstr ""
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "" msgstr ""
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "" msgstr ""
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "" msgstr ""
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "" msgstr ""
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "" msgstr ""
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "" msgstr ""
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "" msgstr ""
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "" msgstr ""
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "" msgstr ""
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "" msgstr ""
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "" msgstr ""
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "" msgstr ""
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "" msgstr ""
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "" msgstr ""
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "" msgstr ""
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "" msgstr ""
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
msgstr "" msgstr ""
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "" msgstr ""
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "" msgstr ""
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "" msgstr ""
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "" msgstr ""
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "" msgstr ""
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "" msgstr ""
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "" msgstr ""
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "" msgstr ""
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "" msgstr ""
@@ -252,7 +261,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "" msgstr ""
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "" msgstr ""
@@ -354,11 +363,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "" msgstr ""
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "" msgstr ""
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "" msgstr ""
@@ -399,290 +408,305 @@ msgstr ""
msgid "%s seconds" msgid "%s seconds"
msgstr "" msgstr ""
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "" msgstr ""
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr ""
#: src/lib/menu.sh:204
msgid "yours"
msgstr ""
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "" msgstr ""
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "" msgstr ""
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "" msgstr ""
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "" msgstr ""
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "" msgstr ""
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "" msgstr ""
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "" msgstr ""
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "" msgstr ""
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "" msgstr ""
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "" msgstr ""
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "" msgstr ""
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "" msgstr ""
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "" msgstr ""
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "" msgstr ""
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "" msgstr ""
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "" msgstr ""
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "" msgstr ""
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
msgstr "" msgstr ""
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
"screens scan on Enter." "screens scan on Enter."
msgstr "" msgstr ""
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
msgstr "" msgstr ""
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
msgstr "" msgstr ""
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
msgstr "" msgstr ""
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
msgstr "" msgstr ""
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
"random, or `none`. Enter to type it." "random, or `none`. Enter to type it."
msgstr "" msgstr ""
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "" msgstr ""
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
"empty field to scan. Found here: %s." "empty field to scan. Found here: %s."
msgstr "" msgstr ""
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
msgstr "" msgstr ""
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "" msgstr ""
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
msgstr "" msgstr ""
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "" msgstr ""
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "" msgstr ""
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
msgstr "" msgstr ""
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
msgstr "" msgstr ""
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "" msgstr ""
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
msgstr "" msgstr ""
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
msgstr "" msgstr ""
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "" msgstr ""
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "" msgstr ""
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "" msgstr ""
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "" msgstr ""
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "" msgstr ""
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "" msgstr ""
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "" msgstr ""
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "" msgstr ""
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "" msgstr ""
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "" msgstr ""
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "" msgstr ""
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "" msgstr ""
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "" msgstr ""
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "" msgstr ""
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "" msgstr ""
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "" msgstr ""
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "" msgstr ""
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "" msgstr ""
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
@@ -726,6 +750,47 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:" "Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "" msgstr ""
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr ""
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr ""
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr ""
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr ""
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "" msgstr ""
@@ -738,6 +803,10 @@ msgstr ""
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "" msgstr ""
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr ""
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "" msgstr ""
@@ -902,34 +971,47 @@ msgstr ""
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "" msgstr ""
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr ""
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "" msgstr ""
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr ""
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "" msgstr ""
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "" msgstr ""
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "" msgstr ""
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "" msgstr ""
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "" msgstr ""
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr ""
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "" msgstr ""
@@ -982,7 +1064,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "" msgstr ""
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -1002,14 +1084,58 @@ msgstr ""
msgid "Done" msgid "Done"
msgstr "" msgstr ""
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr ""
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr ""
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr ""
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr ""
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr ""
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "" msgstr ""
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "" msgstr ""
+262 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: French\n" "Language-Team: French\n"
@@ -60,8 +60,9 @@ msgstr "Aucun visage n'a été ajouté."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Configurez d'abord votre visage." msgstr "Configurez d'abord votre visage."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Impossible d'enregistrer le réglage." msgstr "Impossible d'enregistrer le réglage."
@@ -85,7 +86,17 @@ msgstr ""
"Déconnectez-vous puis reconnectez-vous une fois : GNOME affichera alors " "Déconnectez-vous puis reconnectez-vous une fois : GNOME affichera alors "
"aussi la bulle." "aussi la bulle."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Choisissez votre écran de verrouillage dans la fenêtre."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
"Aucun écran de verrouillage choisi. Vous pouvez le faire plus tard dans "
"Réglages."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -94,104 +105,104 @@ msgstr ""
"L'écran de verrouillage (%s) accepte aussi votre visage. S'il ne scanne pas " "L'écran de verrouillage (%s) accepte aussi votre visage. S'il ne scanne pas "
"à votre retour, appuyez sur Entrée dans le champ du mot de passe vide." "à votre retour, appuyez sur Entrée dans le champ du mot de passe vide."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Le déverrouillage facial est activé. Verrouillez l'écran et regardez-le pour " "Le déverrouillage facial est activé. Verrouillez l'écran et regardez-le pour "
"essayer." "essayer."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
"Il fonctionne aussi pour sudo et les demandes d'administration. Voir " "Il fonctionne aussi pour sudo et les demandes d'administration. Voir "
"Réglages." "Réglages."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Le déverrouillage facial est désactivé. Vos visages sont conservés ; " "Le déverrouillage facial est désactivé. Vos visages sont conservés ; "
"supprimez-les dans Visages." "supprimez-les dans Visages."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Aucun visage n'est encore configuré." msgstr "Aucun visage n'est encore configuré."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "activé" msgstr "activé"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "désactivé" msgstr "désactivé"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s échantillons, %s appris" msgstr "%s échantillons, %s appris"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Quel visage ? Voir `%s faces` pour les identifiants." msgstr "Quel visage ? Voir `%s faces` pour les identifiants."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Supprimé." msgstr "Supprimé."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Utilisation : face-unlock [commande]" msgstr "Utilisation : face-unlock [commande]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Commandes :" msgstr "Commandes :"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Activer le déverrouillage facial" msgstr "Activer le déverrouillage facial"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Le désactiver (les visages sont conservés)" msgstr "Le désactiver (les visages sont conservés)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Ajouter un visage" msgstr "Ajouter un visage"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Lister les visages" msgstr "Lister les visages"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Supprimer un visage" msgstr "Supprimer un visage"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Regarder la caméra et voir ce qu'elle voit" msgstr "Regarder la caméra et voir ce qu'elle voit"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Verrouiller l'écran" msgstr "Verrouiller l'écran"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Afficher ce qui est activé" msgstr "Afficher ce qui est activé"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Afficher cette aide" msgstr "Afficher cette aide"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Afficher la version" msgstr "Afficher la version"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Sans commande, un menu interactif s'affiche." msgstr "Sans commande, un menu interactif s'affiche."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -199,42 +210,42 @@ msgstr ""
"Lancez ceci avec votre propre utilisateur, pas en root. Le mot de passe est " "Lancez ceci avec votre propre utilisateur, pas en root. Le mot de passe est "
"demandé quand il le faut." "demandé quand il le faut."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Commande inconnue : %s" msgstr "Commande inconnue : %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "jamais" msgstr "jamais"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "à l'instant" msgstr "à l'instant"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "il y a 1 minute" msgstr "il y a 1 minute"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "il y a %d minutes" msgstr "il y a %d minutes"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "il y a 1 heure" msgstr "il y a 1 heure"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "il y a %d heures" msgstr "il y a %d heures"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "il y a 1 jour" msgstr "il y a 1 jour"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "il y a %d jours" msgstr "il y a %d jours"
@@ -274,7 +285,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "La caméra n'a pas pu être utilisée." msgstr "La caméra n'a pas pu être utilisée."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Les modèles de reconnaissance sont absents. Réinstallez le paquet." msgstr "Les modèles de reconnaissance sont absents. Réinstallez le paquet."
@@ -380,11 +391,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[o/N]" msgstr "[o/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "ACTIVÉ" msgstr "ACTIVÉ"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "DÉSACTIVÉ" msgstr "DÉSACTIVÉ"
@@ -425,85 +436,93 @@ msgstr "lent"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s secondes" msgstr "%s secondes"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automatique" msgstr "automatique"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "celui de face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "le vôtre"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Déverrouillage facial" msgstr "Déverrouillage facial"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Service" msgstr "Service"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "arrêté" msgstr "arrêté"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Réactiver le déverrouillage facial le démarre." msgstr "Réactiver le déverrouillage facial le démarre."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Visages" msgstr "Visages"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "aucun configuré pour l'instant" msgstr "aucun configuré pour l'instant"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "tous désactivés" msgstr "tous désactivés"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "aucune trouvée" msgstr "aucune trouvée"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Caméra" msgstr "Caméra"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Écran de verrouillage" msgstr "Écran de verrouillage"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Demandes d'administration" msgstr "Demandes d'administration"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Écrans de verrouillage" msgstr "Écrans de verrouillage"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Contrôle anti-photo" msgstr "Contrôle anti-photo"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "En pause" msgstr "En pause"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "encore %d minutes, ou jusqu'à l'utilisation du mot de passe" msgstr "encore %d minutes, ou jusqu'à l'utilisation du mot de passe"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Dernier déverrouillage" msgstr "Dernier déverrouillage"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "L'agent de l'écran de verrouillage ne tourne pas." msgstr "L'agent de l'écran de verrouillage ne tourne pas."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -511,7 +530,7 @@ msgstr ""
"Sous GNOME, une petite extension GNOME affiche la bulle. Activer le " "Sous GNOME, une petite extension GNOME affiche la bulle. Activer le "
"déverrouillage facial l'active aussi." "déverrouillage facial l'active aussi."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -521,7 +540,7 @@ msgstr ""
"de face-unlock (`face-unlock lock`, avec la bulle) et les ouvre. Les autres " "de face-unlock (`face-unlock lock`, avec la bulle) et les ouvre. Les autres "
"écrans de verrouillage scannent avec Entrée." "écrans de verrouillage scannent avec Entrée."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -529,7 +548,7 @@ msgstr ""
"Déverrouille l'écran de verrouillage quand il voit votre visage. Désactivé : " "Déverrouille l'écran de verrouillage quand il voit votre visage. Désactivé : "
"seul votre mot de passe fonctionne." "seul votre mot de passe fonctionne."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -537,7 +556,7 @@ msgstr ""
"Scanne quand vous appuyez sur une touche ou bougez la souris sur l'écran de " "Scanne quand vous appuyez sur une touche ou bougez la souris sur l'écran de "
"verrouillage, et au réveil de l'ordinateur." "verrouillage, et au réveil de l'ordinateur."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -545,7 +564,7 @@ msgstr ""
"Scanne dès que l'écran se verrouille. Désactivé par défaut : si vous " "Scanne dès que l'écran se verrouille. Désactivé par défaut : si vous "
"verrouillez vous-même, il se déverrouillerait aussitôt." "verrouillez vous-même, il se déverrouillerait aussitôt."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -553,7 +572,17 @@ msgstr ""
"sudo prend votre visage au lieu du mot de passe. Sinon, vous tapez le mot de " "sudo prend votre visage au lieu du mot de passe. Sinon, vous tapez le mot de "
"passe comme d'habitude." "passe comme d'habitude."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"L'écran de verrouillage de face-unlock affiche la bulle, et vous verrouillez "
"avec `face-unlock lock`. Ou gardez le vôtre : hyprlock affiche alors une "
"ligne de texte en haut. Entrée ouvre le choix."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -563,11 +592,11 @@ msgstr ""
"lock`). Vide : celle de votre bureau. Ou un fichier, un dossier où en " "lock`). Vide : celle de votre bureau. Ou un fichier, un dossier où en "
"prendre une au hasard, ou `none`. Entrée pour la saisir." "prendre une au hasard, ou `none`. Entrée pour la saisir."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Floute l'image derrière l'écran de verrouillage de face-unlock." msgstr "Floute l'image derrière l'écran de verrouillage de face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -576,7 +605,7 @@ msgstr ""
"L'écran de verrouillage accepte votre visage dans sa vérification du mot de " "L'écran de verrouillage accepte votre visage dans sa vérification du mot de "
"passe. Appuyez sur Entrée dans le champ vide pour scanner. Trouvés ici : %s." "passe. Appuyez sur Entrée dans le champ vide pour scanner. Trouvés ici : %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -584,18 +613,18 @@ msgstr ""
"Les fenêtres de mot de passe de votre bureau et des applications, par " "Les fenêtres de mot de passe de votre bureau et des applications, par "
"exemple pour installer un logiciel. Sinon, vous tapez le mot de passe." "exemple pour installer un logiciel. Sinon, vous tapez le mot de passe."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Vous devez cligner des yeux ou tourner un peu la tête. Cela bloque aussi les " "Vous devez cligner des yeux ou tourner un peu la tête. Cela bloque aussi les "
"photos imprimées." "photos imprimées."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Aucun contrôle. Seulement pour essayer une caméra." msgstr "Aucun contrôle. Seulement pour essayer une caméra."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -603,24 +632,24 @@ msgstr ""
"Bloque les photos sur un téléphone, une tablette ou du papier brillant. Pas " "Bloque les photos sur un téléphone, une tablette ou du papier brillant. Pas "
"besoin de cligner des yeux. Une photo imprimée mate peut passer." "besoin de cligner des yeux. Une photo imprimée mate peut passer."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Moins d'erreurs de correspondance, mais il peut ne pas vous reconnaître avec " "Moins d'erreurs de correspondance, mais il peut ne pas vous reconnaître avec "
"des lunettes ou sous une mauvaise lumière." "des lunettes ou sous une mauvaise lumière."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "" msgstr ""
"Vous reconnaît plus facilement, mais aussi quelqu'un qui vous ressemble " "Vous reconnaît plus facilement, mais aussi quelqu'un qui vous ressemble "
"beaucoup." "beaucoup."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "La valeur par défaut. Convient à la plupart des gens." msgstr "La valeur par défaut. Convient à la plupart des gens."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -628,7 +657,7 @@ msgstr ""
"Vos yeux doivent être ouverts et tournés vers l'écran. Ainsi, rien ne se " "Vos yeux doivent être ouverts et tournés vers l'écran. Ainsi, rien ne se "
"déverrouille quand vous regardez ailleurs ou dormez." "déverrouille quand vous regardez ailleurs ou dormez."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -637,11 +666,11 @@ msgstr ""
"reconfigurez votre visage. Une caméra infrarouge doit avoir sa lumière " "reconfigurez votre visage. Une caméra infrarouge doit avoir sa lumière "
"allumée (linux-enable-ir-emitter)." "allumée (linux-enable-ir-emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Combien de temps la caméra cherche votre visage avant d'abandonner." msgstr "Combien de temps la caméra cherche votre visage avant d'abandonner."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -650,7 +679,7 @@ msgstr ""
"nouvelle coupe ou des lunettes ne demandent donc pas de nouvelle " "nouvelle coupe ou des lunettes ne demandent donc pas de nouvelle "
"configuration." "configuration."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -658,101 +687,101 @@ msgstr ""
"Pas de scan quand le portable est fermé, par exemple à un bureau avec un " "Pas de scan quand le portable est fermé, par exemple à un bureau avec un "
"écran externe." "écran externe."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "La bulle en haut de l'écran montre ce que fait la caméra." msgstr "La bulle en haut de l'écran montre ce que fait la caméra."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Une petite pilule avec un cadenas qui s'ouvre." msgstr "Une petite pilule avec un cadenas qui s'ouvre."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "" msgstr ""
"Un îlot avec un visage qui regarde autour de lui, puis des anneaux et une " "Un îlot avec un visage qui regarde autour de lui, puis des anneaux et une "
"coche." "coche."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "La vitesse à laquelle la bulle bouge." msgstr "La vitesse à laquelle la bulle bouge."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Affiche aussi la bulle quand sudo ou une demande d'administration scanne " "Affiche aussi la bulle quand sudo ou une demande d'administration scanne "
"votre visage." "votre visage."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automatique (%s)" msgstr "automatique (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(infrarouge)" msgstr "(infrarouge)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(non branchée)" msgstr "(non branchée)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "comme le bureau" msgstr "comme le bureau"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "aucun" msgstr "aucun"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Image ou dossier :" msgstr "Image ou dossier :"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Introuvable : %s" msgstr "Introuvable : %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Réglages" msgstr "Réglages"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ choisir ←→ ou Espace : changer q : retour" msgstr "↑↓ choisir ←→ ou Espace : changer q : retour"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "pour tous, demande votre mot de passe" msgstr "pour tous, demande votre mot de passe"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Haut/Bas : choisir, Espace : activer/désactiver, r : renommer, d : " "Haut/Bas : choisir, Espace : activer/désactiver, r : renommer, d : "
"supprimer, a : ajouter, q : retour" "supprimer, a : ajouter, q : retour"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Aucun visage n'est encore configuré. Appuyez sur a pour en ajouter un." msgstr "Aucun visage n'est encore configuré. Appuyez sur a pour en ajouter un."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Nouveau nom :" msgstr "Nouveau nom :"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Supprimer « %s » ?" msgstr "Supprimer « %s » ?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Activer ou désactiver le déverrouillage facial" msgstr "Activer ou désactiver le déverrouillage facial"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Essayer" msgstr "Essayer"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Quitter" msgstr "Quitter"
@@ -801,6 +830,56 @@ msgstr ""
"Hyprland ne démarre pas l'agent de l'écran de verrouillage tout seul. " "Hyprland ne démarre pas l'agent de l'écran de verrouillage tout seul. "
"Ajoutez ceci à %s :" "Ajoutez ceci à %s :"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Pour verrouiller avec, ajoutez ceci à %s, et mettez %s dans %s :"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Pour verrouiller avec, ajoutez ceci aux binds de %s, et utilisez %s dans "
"swayidle :"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Pour verrouiller avec, lancez %s là où votre écran de verrouillage démarre "
"aujourd'hui."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr ""
"Vous verrouillez maintenant avec l'écran de verrouillage de face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock affiche en haut ce que fait face unlock, dès le prochain "
"verrouillage."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Impossible d'ajouter la ligne à %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Votre écran de verrouillage reste tel quel. Appuyez sur Entrée dans le champ "
"de mot de passe vide pour scanner."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock n'a pas de %s, il ne peut donc pas afficher le texte."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Déverrouiller avec votre visage" msgstr "Déverrouiller avec votre visage"
@@ -813,6 +892,10 @@ msgstr "Scanner à votre retour"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Scanner juste après le verrouillage" msgstr "Scanner juste après le verrouillage"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Quel écran de verrouillage"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Fond d'écran" msgstr "Fond d'écran"
@@ -980,36 +1063,49 @@ msgstr "La caméra est occupée par un autre scan. Réessayez dans un instant."
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Le visage n'a pas pu être ajouté (%1)." msgstr "Le visage n'a pas pu être ajouté (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Recherche de votre visage…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Mot de passe incorrect" msgstr "Mot de passe incorrect"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Visage reconnu"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Déverrouillage facial pour l'écran de verrouillage, sudo et les demandes " "Déverrouillage facial pour l'écran de verrouillage, sudo et les demandes "
"d'administration" "d'administration"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Configurer un visage." msgstr "Configurer un visage."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Le nom du nouveau visage." msgstr "Le nom du nouveau visage."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Verrouiller l'écran." msgstr "Verrouiller l'écran."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Jouer une fois les animations de la bulle." msgstr "Jouer une fois les animations de la bulle."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Style de bulle pour la démo : full ou minimal." msgstr "Style de bulle pour la démo : full ou minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Demande quel écran de verrouillage utiliser et affiche la réponse."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Regardez la caméra pour déverrouiller." msgstr "Regardez la caméra pour déverrouiller."
@@ -1069,7 +1165,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Nom (facultatif)" msgstr "Nom (facultatif)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
@@ -1089,14 +1185,67 @@ msgstr "Commencer"
msgid "Done" msgid "Done"
msgstr "Terminé" msgstr "Terminé"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Choisir votre écran de verrouillage"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Votre écran de verrouillage"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Votre bureau confie l'écran de verrouillage à un programme de votre choix. "
"Choisissez comment face unlock y apparaît. Vous pourrez le changer plus tard "
"dans Réglages."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Écran de verrouillage de face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"La bulle en haut, l'heure et votre fond d'écran. Votre raccourci et le "
"verrouillage automatique lancent alors face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Garder votre écran de verrouillage"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Il reste tel quel. hyprlock affiche une ligne de texte en haut au lieu de la "
"bulle. Entrée dans le champ de mot de passe vide lance un scan."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Il reste tel quel, sans la bulle. Entrée dans le champ de mot de passe vide "
"lance un scan."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Continuer"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Regardez la caméra ou tapez votre mot de passe" msgstr "Regardez la caméra ou tapez votre mot de passe"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Tapez votre mot de passe" msgstr "Tapez votre mot de passe"
+256 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
@@ -58,8 +58,9 @@ msgstr "Nessun volto aggiunto."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Per prima cosa, configura il tuo volto." msgstr "Per prima cosa, configura il tuo volto."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Impossibile salvare l'impostazione." msgstr "Impossibile salvare l'impostazione."
@@ -81,7 +82,16 @@ msgstr "Impossibile attivare l'estensione di GNOME che mostra la bolla."
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Esci e rientra una volta: poi GNOME mostra anche la bolla." msgstr "Esci e rientra una volta: poi GNOME mostra anche la bolla."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Scegli la tua schermata di blocco nella finestra."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
"Nessuna schermata di blocco scelta. Puoi farlo più tardi in Impostazioni."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,102 +100,102 @@ msgstr ""
"Anche la schermata di blocco (%s) accetta il tuo volto. Se non scansiona " "Anche la schermata di blocco (%s) accetta il tuo volto. Se non scansiona "
"quando torni, premi Invio nel campo password vuoto." "quando torni, premi Invio nel campo password vuoto."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Lo sblocco con il volto è attivo. Blocca lo schermo e guardalo per provarlo." "Lo sblocco con il volto è attivo. Blocca lo schermo e guardalo per provarlo."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
"Funziona anche con sudo e le richieste di amministratore. Vedi Impostazioni." "Funziona anche con sudo e le richieste di amministratore. Vedi Impostazioni."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Lo sblocco con il volto è disattivato. I tuoi volti restano salvati; " "Lo sblocco con il volto è disattivato. I tuoi volti restano salvati; "
"eliminali in Volti." "eliminali in Volti."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Nessun volto ancora configurato." msgstr "Nessun volto ancora configurato."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "attivo" msgstr "attivo"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "disattivo" msgstr "disattivo"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s campioni, %s appresi" msgstr "%s campioni, %s appresi"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Quale volto? Vedi `%s faces` per gli ID." msgstr "Quale volto? Vedi `%s faces` per gli ID."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Eliminato." msgstr "Eliminato."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]" msgstr "Uso: face-unlock [comando]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Comandi:" msgstr "Comandi:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Attiva lo sblocco con il volto" msgstr "Attiva lo sblocco con il volto"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Disattivalo (i volti restano salvati)" msgstr "Disattivalo (i volti restano salvati)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Aggiungi un volto" msgstr "Aggiungi un volto"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Elenca i volti" msgstr "Elenca i volti"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Elimina un volto" msgstr "Elimina un volto"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Guarda la fotocamera e vedi cosa vede" msgstr "Guarda la fotocamera e vedi cosa vede"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Blocca lo schermo" msgstr "Blocca lo schermo"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Mostra cosa è attivo" msgstr "Mostra cosa è attivo"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Mostra questo aiuto" msgstr "Mostra questo aiuto"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Mostra la versione" msgstr "Mostra la versione"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Senza comando viene mostrato un menu interattivo." msgstr "Senza comando viene mostrato un menu interattivo."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -193,42 +203,42 @@ msgstr ""
"Esegui questo con il tuo utente, non come root. Chiede la password quando " "Esegui questo con il tuo utente, non come root. Chiede la password quando "
"serve." "serve."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Comando sconosciuto: %s" msgstr "Comando sconosciuto: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "mai" msgstr "mai"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "proprio ora" msgstr "proprio ora"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 minuto fa" msgstr "1 minuto fa"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d minuti fa" msgstr "%d minuti fa"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 ora fa" msgstr "1 ora fa"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d ore fa" msgstr "%d ore fa"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 giorno fa" msgstr "1 giorno fa"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d giorni fa" msgstr "%d giorni fa"
@@ -268,7 +278,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Impossibile usare la fotocamera." msgstr "Impossibile usare la fotocamera."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Mancano i modelli di riconoscimento. Reinstalla il pacchetto." msgstr "Mancano i modelli di riconoscimento. Reinstalla il pacchetto."
@@ -373,11 +383,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[s/N]" msgstr "[s/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "ATTIVO" msgstr "ATTIVO"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "DISATTIVO" msgstr "DISATTIVO"
@@ -418,85 +428,93 @@ msgstr "lenta"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s secondi" msgstr "%s secondi"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automatica" msgstr "automatica"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "quella di face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "la tua"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Sblocco con il volto" msgstr "Sblocco con il volto"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Servizio" msgstr "Servizio"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "non in esecuzione" msgstr "non in esecuzione"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Riattivare lo sblocco con il volto lo avvia." msgstr "Riattivare lo sblocco con il volto lo avvia."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Volti" msgstr "Volti"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "nessuno configurato" msgstr "nessuno configurato"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "tutti disattivati" msgstr "tutti disattivati"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "nessuna trovata" msgstr "nessuna trovata"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Fotocamera" msgstr "Fotocamera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Schermata di blocco" msgstr "Schermata di blocco"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Richieste di amministratore" msgstr "Richieste di amministratore"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Schermate di blocco" msgstr "Schermate di blocco"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Controllo foto" msgstr "Controllo foto"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "In pausa" msgstr "In pausa"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "ancora per %d minuti, o finché non si usa la password" msgstr "ancora per %d minuti, o finché non si usa la password"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Ultimo sblocco" msgstr "Ultimo sblocco"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "L'agente della schermata di blocco non è in esecuzione." msgstr "L'agente della schermata di blocco non è in esecuzione."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -504,7 +522,7 @@ msgstr ""
"Su GNOME una piccola estensione di GNOME mostra la bolla. Attivando lo " "Su GNOME una piccola estensione di GNOME mostra la bolla. Attivando lo "
"sblocco con il volto si attiva anche lei." "sblocco con il volto si attiva anche lei."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +532,7 @@ msgstr ""
"face-unlock (`face-unlock lock`, con la bolla) e li apre. Le altre schermate " "face-unlock (`face-unlock lock`, con la bolla) e li apre. Le altre schermate "
"di blocco scansionano con Invio." "di blocco scansionano con Invio."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -522,7 +540,7 @@ msgstr ""
"Sblocca la schermata di blocco quando vede il tuo volto. Disattivo: lì " "Sblocca la schermata di blocco quando vede il tuo volto. Disattivo: lì "
"funziona solo la password." "funziona solo la password."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -530,7 +548,7 @@ msgstr ""
"Esegue la scansione quando premi un tasto o muovi il mouse sulla schermata " "Esegue la scansione quando premi un tasto o muovi il mouse sulla schermata "
"di blocco, e quando il computer si riattiva." "di blocco, e quando il computer si riattiva."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -538,7 +556,7 @@ msgstr ""
"Esegue la scansione appena lo schermo si blocca. Disattivo di norma: se lo " "Esegue la scansione appena lo schermo si blocca. Disattivo di norma: se lo "
"blocchi tu, si sbloccherebbe subito." "blocchi tu, si sbloccherebbe subito."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -546,7 +564,17 @@ msgstr ""
"sudo usa il tuo volto al posto della password. Se non corrisponde, digiti la " "sudo usa il tuo volto al posto della password. Se non corrisponde, digiti la "
"password come al solito." "password come al solito."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"La schermata di blocco di face-unlock mostra la bolla, e blocchi con `face-"
"unlock lock`. Oppure tieni la tua: hyprlock mostra allora una riga di testo "
"in alto. Invio apre la scelta."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +584,11 @@ msgstr ""
"lock`). Vuoto: quella del tuo desktop. Oppure un file, una cartella da cui " "lock`). Vuoto: quella del tuo desktop. Oppure un file, una cartella da cui "
"prenderne una a caso, o `none`. Invio per scriverla." "prenderne una a caso, o `none`. Invio per scriverla."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Sfoca l'immagine dietro la schermata di blocco di face-unlock." msgstr "Sfoca l'immagine dietro la schermata di blocco di face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +597,7 @@ msgstr ""
"La schermata di blocco accetta il tuo volto nel controllo della password. " "La schermata di blocco accetta il tuo volto nel controllo della password. "
"Premi Invio nel campo vuoto per scansionare. Trovate qui: %s." "Premi Invio nel campo vuoto per scansionare. Trovate qui: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -577,18 +605,18 @@ msgstr ""
"Le finestre della password del tuo desktop e delle app, per esempio quando " "Le finestre della password del tuo desktop e delle app, per esempio quando "
"installi software. Se non corrisponde, digiti la password." "installi software. Se non corrisponde, digiti la password."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Devi sbattere le palpebre o girare un po' la testa. Questo ferma anche le " "Devi sbattere le palpebre o girare un po' la testa. Questo ferma anche le "
"foto stampate." "foto stampate."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Nessun controllo. Solo per provare una fotocamera." msgstr "Nessun controllo. Solo per provare una fotocamera."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -596,22 +624,22 @@ msgstr ""
"Ferma le foto su un telefono, un tablet o carta lucida. Non serve sbattere " "Ferma le foto su un telefono, un tablet o carta lucida. Non serve sbattere "
"le palpebre. Una foto stampata opaca può passare." "le palpebre. Una foto stampata opaca può passare."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Meno scambi di persona, ma potrebbe non riconoscerti con gli occhiali o con " "Meno scambi di persona, ma potrebbe non riconoscerti con gli occhiali o con "
"poca luce." "poca luce."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Ti riconosce più facilmente, ma anche qualcuno che ti somiglia molto." msgstr "Ti riconosce più facilmente, ma anche qualcuno che ti somiglia molto."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "Il valore predefinito. Va bene per la maggior parte delle persone." msgstr "Il valore predefinito. Va bene per la maggior parte delle persone."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -619,7 +647,7 @@ msgstr ""
"I tuoi occhi devono essere aperti e rivolti allo schermo. Così non si " "I tuoi occhi devono essere aperti e rivolti allo schermo. Così non si "
"sblocca mentre guardi altrove o dormi." "sblocca mentre guardi altrove o dormi."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +656,11 @@ msgstr ""
"nuovo il tuo volto. Una fotocamera a infrarossi ha bisogno della sua luce " "nuovo il tuo volto. Una fotocamera a infrarossi ha bisogno della sua luce "
"(linux-enable-ir-emitter)." "(linux-enable-ir-emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Per quanto tempo la fotocamera cerca il tuo volto prima di arrendersi." msgstr "Per quanto tempo la fotocamera cerca il tuo volto prima di arrendersi."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -641,7 +669,7 @@ msgstr ""
"nuovo taglio di capelli o gli occhiali non richiedono una nuova " "nuovo taglio di capelli o gli occhiali non richiedono una nuova "
"configurazione." "configurazione."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -649,99 +677,99 @@ msgstr ""
"Nessuna scansione quando il portatile è chiuso, per esempio alla scrivania " "Nessuna scansione quando il portatile è chiuso, per esempio alla scrivania "
"con uno schermo esterno." "con uno schermo esterno."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "La bolla in cima allo schermo mostra cosa sta facendo la fotocamera." msgstr "La bolla in cima allo schermo mostra cosa sta facendo la fotocamera."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Una piccola pillola con un lucchetto che si apre." msgstr "Una piccola pillola con un lucchetto che si apre."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Un'isola con un volto che si guarda intorno, poi anelli e una spunta." msgstr "Un'isola con un volto che si guarda intorno, poi anelli e una spunta."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Quanto velocemente si muove la bolla." msgstr "Quanto velocemente si muove la bolla."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Mostra la bolla anche quando sudo o una richiesta di amministratore " "Mostra la bolla anche quando sudo o una richiesta di amministratore "
"scansiona il tuo volto." "scansiona il tuo volto."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automatica (%s)" msgstr "automatica (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(infrarossi)" msgstr "(infrarossi)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(non collegata)" msgstr "(non collegata)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "come il desktop" msgstr "come il desktop"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "nessuno" msgstr "nessuno"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Immagine o cartella:" msgstr "Immagine o cartella:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Non trovato: %s" msgstr "Non trovato: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Impostazioni" msgstr "Impostazioni"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ scegli ←→ o Spazio: cambia q: indietro" msgstr "↑↓ scegli ←→ o Spazio: cambia q: indietro"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "per tutti gli utenti, chiede la tua password" msgstr "per tutti gli utenti, chiede la tua password"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Su/Giù: scegli, Spazio: attiva/disattiva, r: rinomina, d: elimina, a: " "Su/Giù: scegli, Spazio: attiva/disattiva, r: rinomina, d: elimina, a: "
"aggiungi, q: indietro" "aggiungi, q: indietro"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Nessun volto ancora configurato. Premi a per aggiungerne uno." msgstr "Nessun volto ancora configurato. Premi a per aggiungerne uno."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Nuovo nome:" msgstr "Nuovo nome:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Eliminare «%s»?" msgstr "Eliminare «%s»?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Attiva o disattiva lo sblocco con il volto" msgstr "Attiva o disattiva lo sblocco con il volto"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Provalo" msgstr "Provalo"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Esci" msgstr "Esci"
@@ -790,6 +818,52 @@ msgstr ""
"Hyprland non avvia da solo l'agente della schermata di blocco. Aggiungi " "Hyprland non avvia da solo l'agente della schermata di blocco. Aggiungi "
"questo a %s:" "questo a %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Per bloccare con essa, aggiungi questo a %s e imposta %s in %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Per bloccare con essa, aggiungi questo ai binds in %s e usa %s in swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Per bloccare con essa, esegui %s dove ora parte la tua schermata di blocco."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Ora blocchi con la schermata di blocco di face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock mostra in alto cosa sta facendo face unlock, dal prossimo blocco."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Impossibile aggiungere la riga a %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"La tua schermata di blocco resta com'è. Premi Invio nel campo password vuoto "
"per la scansione."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock non ha %s, quindi non può mostrare il testo."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Sblocca con il volto" msgstr "Sblocca con il volto"
@@ -802,6 +876,10 @@ msgstr "Scansiona quando torni"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Scansiona subito dopo il blocco" msgstr "Scansiona subito dopo il blocco"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Quale schermata di blocco"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Sfondo" msgstr "Sfondo"
@@ -969,36 +1047,49 @@ msgstr ""
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Impossibile aggiungere il volto (%1)." msgstr "Impossibile aggiungere il volto (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Cerco il tuo volto…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Password errata" msgstr "Password errata"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Volto riconosciuto"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Sblocco con il volto per la schermata di blocco, sudo e le richieste di " "Sblocco con il volto per la schermata di blocco, sudo e le richieste di "
"amministratore" "amministratore"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Configura un volto." msgstr "Configura un volto."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Come chiamare il nuovo volto." msgstr "Come chiamare il nuovo volto."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Blocca lo schermo." msgstr "Blocca lo schermo."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Riproduci una volta le animazioni della bolla." msgstr "Riproduci una volta le animazioni della bolla."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Stile della bolla per la demo: full o minimal." msgstr "Stile della bolla per la demo: full o minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Chiede quale schermata di blocco usare e stampa la risposta."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Guarda la fotocamera per sbloccare." msgstr "Guarda la fotocamera per sbloccare."
@@ -1058,7 +1149,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Nome (facoltativo)" msgstr "Nome (facoltativo)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
@@ -1078,14 +1169,66 @@ msgstr "Iniziamo"
msgid "Done" msgid "Done"
msgstr "Fatto" msgstr "Fatto"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Scegli la schermata di blocco"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "La tua schermata di blocco"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Il tuo desktop lascia la schermata di blocco a un programma a tua scelta. "
"Scegli come appare face unlock lì. Puoi cambiarlo più tardi in Impostazioni."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Schermata di blocco di face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"La bolla in alto, l'ora e il tuo sfondo. La tua scorciatoia e il blocco per "
"inattività eseguono poi face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Tieni la tua schermata di blocco"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Resta com'è. hyprlock mostra una riga di testo in alto al posto della bolla. "
"Invio nel campo password vuoto avvia la scansione."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Resta com'è, senza la bolla. Invio nel campo password vuoto avvia la "
"scansione."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Continua"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Guarda la fotocamera o digita la password" msgstr "Guarda la fotocamera o digita la password"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Digita la password" msgstr "Digita la password"
+255 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Japanese\n" "Language-Team: Japanese\n"
@@ -57,8 +57,9 @@ msgstr "顔は追加されませんでした。"
msgid "First, set up your face." msgid "First, set up your face."
msgstr "まず顔を登録してください。" msgstr "まず顔を登録してください。"
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "設定を保存できませんでした。" msgstr "設定を保存できませんでした。"
@@ -81,7 +82,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "" msgstr ""
"一度ログアウトしてログインし直してください。GNOME でもバブルが表示されます。" "一度ログアウトしてログインし直してください。GNOME でもバブルが表示されます。"
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "ウィンドウでロック画面を選んでください。"
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "ロック画面が選ばれていません。あとで設定から選べます。"
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,98 +99,98 @@ msgstr ""
"ロック画面(%s)でも顔が使えます。戻ってきたときにスキャンしない場合は、空の" "ロック画面(%s)でも顔が使えます。戻ってきたときにスキャンしない場合は、空の"
"パスワード欄で Enter を押してください。" "パスワード欄で Enter を押してください。"
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "顔認証はオンです。画面をロックして、画面を見て試してください。" msgstr "顔認証はオンです。画面をロックして、画面を見て試してください。"
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo や管理者の認証にも使えます。「設定」を参照してください。" msgstr "sudo や管理者の認証にも使えます。「設定」を参照してください。"
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "顔認証はオフです。顔データは残っています。「顔」から削除できます。" msgstr "顔認証はオフです。顔データは残っています。「顔」から削除できます。"
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "まだ顔が登録されていません。" msgstr "まだ顔が登録されていません。"
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "オン" msgstr "オン"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "オフ" msgstr "オフ"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "サンプル %s 件、学習 %s 件" msgstr "サンプル %s 件、学習 %s 件"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "どの顔ですか? ID は `%s faces` で確認できます。" msgstr "どの顔ですか? ID は `%s faces` で確認できます。"
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "削除しました。" msgstr "削除しました。"
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "使い方: face-unlock [コマンド]" msgstr "使い方: face-unlock [コマンド]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "コマンド:" msgstr "コマンド:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "顔認証をオンにする" msgstr "顔認証をオンにする"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "オフにする(顔データは残ります)" msgstr "オフにする(顔データは残ります)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "顔を追加" msgstr "顔を追加"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "顔の一覧" msgstr "顔の一覧"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "顔を削除" msgstr "顔を削除"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "カメラを見て、カメラに映るものを確認する" msgstr "カメラを見て、カメラに映るものを確認する"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "画面をロック" msgstr "画面をロック"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "オンになっている機能を表示" msgstr "オンになっている機能を表示"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "このヘルプを表示" msgstr "このヘルプを表示"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "バージョンを表示" msgstr "バージョンを表示"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "コマンドなしで起動すると、対話式メニューが表示されます。" msgstr "コマンドなしで起動すると、対話式メニューが表示されます。"
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -189,42 +198,42 @@ msgstr ""
"root ではなく、自分のユーザーで実行してください。必要なときはパスワードを尋ね" "root ではなく、自分のユーザーで実行してください。必要なときはパスワードを尋ね"
"ます。" "ます。"
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "不明なコマンド: %s" msgstr "不明なコマンド: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "なし" msgstr "なし"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "たった今" msgstr "たった今"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 分前" msgstr "1 分前"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d 分前" msgstr "%d 分前"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 時間前" msgstr "1 時間前"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d 時間前" msgstr "%d 時間前"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 日前" msgstr "1 日前"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d 日前" msgstr "%d 日前"
@@ -264,7 +273,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "カメラを使用できませんでした。" msgstr "カメラを使用できませんでした。"
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "認識モデルがありません。パッケージを再インストールしてください。" msgstr "認識モデルがありません。パッケージを再インストールしてください。"
@@ -368,11 +377,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[y/N]" msgstr "[y/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "オン" msgstr "オン"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "オフ" msgstr "オフ"
@@ -413,85 +422,93 @@ msgstr "遅い"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s 秒" msgstr "%s 秒"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "自動" msgstr "自動"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "今のもの"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "顔認証" msgstr "顔認証"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "サービス" msgstr "サービス"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "停止中" msgstr "停止中"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "顔認証をもう一度オンにすると起動します。" msgstr "顔認証をもう一度オンにすると起動します。"
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "顔" msgstr "顔"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "まだ登録なし" msgstr "まだ登録なし"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "すべてオフ" msgstr "すべてオフ"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "見つかりません" msgstr "見つかりません"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "カメラ" msgstr "カメラ"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "ロック画面" msgstr "ロック画面"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "管理者の認証" msgstr "管理者の認証"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "ロック画面" msgstr "ロック画面"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "写真チェック" msgstr "写真チェック"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "一時停止中" msgstr "一時停止中"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "あと %d 分、またはパスワードが使われるまで" msgstr "あと %d 分、またはパスワードが使われるまで"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "最後のロック解除" msgstr "最後のロック解除"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "ロック画面エージェントが動いていません。" msgstr "ロック画面エージェントが動いていません。"
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -499,7 +516,7 @@ msgstr ""
"GNOME では小さな GNOME 拡張機能がバブルを表示します。顔認証をオンにすると一緒" "GNOME では小さな GNOME 拡張機能がバブルを表示します。顔認証をオンにすると一緒"
"に有効になります。" "に有効になります。"
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -509,7 +526,7 @@ msgstr ""
"き)に戻ってきたときにスキャンして開きます。ほかのロック画面は Enter でスキャ" "き)に戻ってきたときにスキャンして開きます。ほかのロック画面は Enter でスキャ"
"ンします。" "ンします。"
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -517,7 +534,7 @@ msgstr ""
"顔を認識するとロック画面を解除します。オフ: ロック画面ではパスワードだけが使" "顔を認識するとロック画面を解除します。オフ: ロック画面ではパスワードだけが使"
"えます。" "えます。"
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -525,7 +542,7 @@ msgstr ""
"ロック画面でキーを押すかマウスを動かしたとき、そしてコンピューターがスリープ" "ロック画面でキーを押すかマウスを動かしたとき、そしてコンピューターがスリープ"
"から復帰したときにスキャンします。" "から復帰したときにスキャンします。"
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -533,7 +550,7 @@ msgstr ""
"画面がロックされるとすぐにスキャンします。既定はオフ: 自分でロックすると、す" "画面がロックされるとすぐにスキャンします。既定はオフ: 自分でロックすると、す"
"ぐに解除されてしまうためです。" "ぐに解除されてしまうためです。"
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -541,7 +558,17 @@ msgstr ""
"sudo でパスワードの代わりに顔を使います。一致しなければ、いつも通りパスワード" "sudo でパスワードの代わりに顔を使います。一致しなければ、いつも通りパスワード"
"を入力します。" "を入力します。"
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"face-unlock のロック画面はバブルを表示し、`face-unlock lock` でロックします。"
"今のロック画面を使い続けることもできます: その場合 hyprlock が上部に一行のテ"
"キストを表示します。Enter で選択画面を開きます。"
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -550,11 +577,11 @@ msgstr ""
"face-unlock のロック画面(`face-unlock lock`)の背景画像。空欄: デスクトップ" "face-unlock のロック画面(`face-unlock lock`)の背景画像。空欄: デスクトップ"
"と同じ画像。またはファイル、ランダムに選ぶフォルダー、`none`。Enter で入力。" "と同じ画像。またはファイル、ランダムに選ぶフォルダー、`none`。Enter で入力。"
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock のロック画面の背景画像をぼかします。" msgstr "face-unlock のロック画面の背景画像をぼかします。"
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -563,7 +590,7 @@ msgstr ""
"ロック画面のパスワード確認で顔が使えます。空の欄で Enter を押すとスキャンしま" "ロック画面のパスワード確認で顔が使えます。空の欄で Enter を押すとスキャンしま"
"す。見つかったもの: %s。" "す。見つかったもの: %s。"
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -571,16 +598,16 @@ msgstr ""
"デスクトップやアプリのパスワード画面です(ソフトウェアのインストール時な" "デスクトップやアプリのパスワード画面です(ソフトウェアのインストール時な"
"ど)。一致しなければパスワードを入力します。" "ど)。一致しなければパスワードを入力します。"
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "まばたきするか、少し顔を動かす必要があります。印刷した写真も防げます。" msgstr "まばたきするか、少し顔を動かす必要があります。印刷した写真も防げます。"
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "チェックしません。カメラを試すときだけ使ってください。" msgstr "チェックしません。カメラを試すときだけ使ってください。"
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -588,22 +615,22 @@ msgstr ""
"スマホ、タブレット、光沢紙に映った写真を防ぎます。まばたきは不要です。つや消" "スマホ、タブレット、光沢紙に映った写真を防ぎます。まばたきは不要です。つや消"
"しの印刷写真は通ることがあります。" "しの印刷写真は通ることがあります。"
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"誤認識は減りますが、眼鏡をかけているときや暗いときに認識されないことがありま" "誤認識は減りますが、眼鏡をかけているときや暗いときに認識されないことがありま"
"す。" "す。"
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "認識されやすくなりますが、あなたによく似た人も認識されやすくなります。" msgstr "認識されやすくなりますが、あなたによく似た人も認識されやすくなります。"
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "既定値です。ほとんどの人に適しています。" msgstr "既定値です。ほとんどの人に適しています。"
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -611,7 +638,7 @@ msgstr ""
"目を開けて画面を見ている必要があります。よそ見や居眠りの間にロック解除されま" "目を開けて画面を見ている必要があります。よそ見や居眠りの間にロック解除されま"
"せん。" "せん。"
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -619,11 +646,11 @@ msgstr ""
"「自動」は最初の通常のカメラを使います。変更したら顔を登録し直してください。" "「自動」は最初の通常のカメラを使います。変更したら顔を登録し直してください。"
"赤外線カメラはライトをオンにする必要があります(linux-enable-ir-emitter)。" "赤外線カメラはライトをオンにする必要があります(linux-enable-ir-emitter)。"
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "カメラが顔を探してからあきらめるまでの時間です。" msgstr "カメラが顔を探してからあきらめるまでの時間です。"
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -631,7 +658,7 @@ msgstr ""
"確実に一致したとき、今の見た目を覚えます。髪型を変えたり眼鏡をかけたりして" "確実に一致したとき、今の見た目を覚えます。髪型を変えたり眼鏡をかけたりして"
"も、登録し直す必要はありません。" "も、登録し直す必要はありません。"
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -639,96 +666,96 @@ msgstr ""
"ノートパソコンを閉じているときはスキャンしません。外部モニターにつないで机で" "ノートパソコンを閉じているときはスキャンしません。外部モニターにつないで机で"
"使う場合などです。" "使う場合などです。"
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "画面上部のバブルに、カメラの状態が表示されます。" msgstr "画面上部のバブルに、カメラの状態が表示されます。"
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "鍵が開く小さなピルです。" msgstr "鍵が開く小さなピルです。"
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "あたりを見回す顔のアイランド。そのあとリングとチェックマークが出ます。" msgstr "あたりを見回す顔のアイランド。そのあとリングとチェックマークが出ます。"
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "バブルが動く速さです。" msgstr "バブルが動く速さです。"
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo や管理者の認証で顔をスキャンするときにもバブルを表示します。" msgstr "sudo や管理者の認証で顔をスキャンするときにもバブルを表示します。"
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "自動(%s)" msgstr "自動(%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(赤外線)" msgstr "(赤外線)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(未接続)" msgstr "(未接続)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "デスクトップと同じ" msgstr "デスクトップと同じ"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "なし" msgstr "なし"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "画像またはフォルダー:" msgstr "画像またはフォルダー:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "見つかりません: %s" msgstr "見つかりません: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "設定" msgstr "設定"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 選択 ←→ またはスペース: 変更 q: 戻る" msgstr "↑↓ 選択 ←→ またはスペース: 変更 q: 戻る"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "全ユーザー共通、パスワードが必要" msgstr "全ユーザー共通、パスワードが必要"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"上/下: 選択、スペース: オン/オフ、r: 名前を変更、d: 削除、a: 追加、q: 戻る" "上/下: 選択、スペース: オン/オフ、r: 名前を変更、d: 削除、a: 追加、q: 戻る"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "まだ顔が登録されていません。a を押して追加してください。" msgstr "まだ顔が登録されていません。a を押して追加してください。"
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "新しい名前:" msgstr "新しい名前:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "「%s」を削除しますか?" msgstr "「%s」を削除しますか?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "顔認証のオン/オフ" msgstr "顔認証のオン/オフ"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "試す" msgstr "試す"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "終了" msgstr "終了"
@@ -775,6 +802,52 @@ msgstr ""
"Hyprland はロック画面エージェントを自動では起動しません。%s に次を追加してく" "Hyprland はロック画面エージェントを自動では起動しません。%s に次を追加してく"
"ださい:" "ださい:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "これでロックするには、%s にこれを追加し、%s を %s に書いてください:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"これでロックするには、%s の binds にこれを追加し、swayidle で %s を使ってくだ"
"さい:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"これでロックするには、今ロック画面を起動している場所で %s を実行してくださ"
"い。"
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "これから face-unlock のロック画面でロックします。"
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr "次回のロックから、hyprlock が上部に face unlock の状態を表示します。"
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "%s に行を追加できませんでした。"
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"ロック画面はそのままです。空のパスワード欄で Enter を押すとスキャンします。"
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock に %s がないため、テキストを表示できません。"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "顔でロック解除" msgstr "顔でロック解除"
@@ -787,6 +860,10 @@ msgstr "戻ってきたらスキャン"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "ロック直後にスキャン" msgstr "ロック直後にスキャン"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "使うロック画面"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "壁紙" msgstr "壁紙"
@@ -951,34 +1028,47 @@ msgstr "カメラは別のスキャン中です。少ししてからもう一度
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "顔を追加できませんでした(%1)。" msgstr "顔を追加できませんでした(%1)。"
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "顔を探しています…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "パスワードが違います" msgstr "パスワードが違います"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "顔を認識しました"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "ロック画面、sudo、管理者の認証のための顔認証" msgstr "ロック画面、sudo、管理者の認証のための顔認証"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "顔を登録します。" msgstr "顔を登録します。"
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "新しい顔の名前。" msgstr "新しい顔の名前。"
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "画面をロックします。" msgstr "画面をロックします。"
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "バブルのアニメーションを一度再生します。" msgstr "バブルのアニメーションを一度再生します。"
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "デモのバブルスタイル: full または minimal。" msgstr "デモのバブルスタイル: full または minimal。"
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "使うロック画面を尋ね、答えを出力します。"
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "カメラを見てロックを解除してください。" msgstr "カメラを見てロックを解除してください。"
@@ -1037,7 +1127,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "名前(任意)" msgstr "名前(任意)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "キャンセル" msgstr "キャンセル"
@@ -1057,14 +1147,66 @@ msgstr "はじめる"
msgid "Done" msgid "Done"
msgstr "完了" msgstr "完了"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "ロック画面を選ぶ"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "ロック画面"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"このデスクトップでは、ロック画面は自分で選んだプログラムです。そこで face "
"unlock をどう表示するか選んでください。あとで設定から変更できます。"
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "face-unlock のロック画面"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"上部のバブル、時計、壁紙。ショートカットと自動ロックで face-unlock lock を実"
"行します。"
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "今のロック画面を使う"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"そのまま使えます。hyprlock はバブルの代わりに上部に一行のテキストを表示しま"
"す。空のパスワード欄で Enter を押すとスキャンします。"
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"そのまま使えます。バブルはありません。空のパスワード欄で Enter を押すとスキャ"
"ンします。"
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "続ける"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "パスワード" msgstr "パスワード"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "カメラを見るか、パスワードを入力してください" msgstr "カメラを見るか、パスワードを入力してください"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "パスワードを入力してください" msgstr "パスワードを入力してください"
+252 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Korean\n" "Language-Team: Korean\n"
@@ -57,8 +57,9 @@ msgstr "얼굴이 추가되지 않았습니다."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "먼저 얼굴을 등록하세요." msgstr "먼저 얼굴을 등록하세요."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "설정을 저장하지 못했습니다." msgstr "설정을 저장하지 못했습니다."
@@ -79,7 +80,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "" msgstr ""
"한 번 로그아웃했다가 다시 로그인하세요. 그러면 GNOME에서도 버블이 보입니다." "한 번 로그아웃했다가 다시 로그인하세요. 그러면 GNOME에서도 버블이 보입니다."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "창에서 잠금 화면을 고르세요."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "잠금 화면을 고르지 않았습니다. 나중에 설정에서 고를 수 있습니다."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -88,142 +97,142 @@ msgstr ""
"잠금 화면(%s)에서도 얼굴을 쓸 수 있습니다. 돌아왔을 때 스캔하지 않으면 빈 비" "잠금 화면(%s)에서도 얼굴을 쓸 수 있습니다. 돌아왔을 때 스캔하지 않으면 빈 비"
"밀번호 칸에서 Enter를 누르세요." "밀번호 칸에서 Enter를 누르세요."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"얼굴 잠금 해제가 켜졌습니다. 화면을 잠그고 화면을 바라보며 사용해 보세요." "얼굴 잠금 해제가 켜졌습니다. 화면을 잠그고 화면을 바라보며 사용해 보세요."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo와 관리자 인증 창에서도 쓸 수 있습니다. 설정을 참고하세요." msgstr "sudo와 관리자 인증 창에서도 쓸 수 있습니다. 설정을 참고하세요."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"얼굴 잠금 해제가 꺼졌습니다. 얼굴 데이터는 남아 있으며, 얼굴 메뉴에서 삭제할 " "얼굴 잠금 해제가 꺼졌습니다. 얼굴 데이터는 남아 있으며, 얼굴 메뉴에서 삭제할 "
"수 있습니다." "수 있습니다."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "아직 등록된 얼굴이 없습니다." msgstr "아직 등록된 얼굴이 없습니다."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "켜짐" msgstr "켜짐"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "꺼짐" msgstr "꺼짐"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "샘플 %s개, 학습 %s개" msgstr "샘플 %s개, 학습 %s개"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "어떤 얼굴인가요? ID는 `%s faces`에서 확인하세요." msgstr "어떤 얼굴인가요? ID는 `%s faces`에서 확인하세요."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "삭제했습니다." msgstr "삭제했습니다."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "사용법: face-unlock [명령]" msgstr "사용법: face-unlock [명령]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "명령:" msgstr "명령:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "얼굴 잠금 해제 켜기" msgstr "얼굴 잠금 해제 켜기"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "끄기 (얼굴 데이터는 유지)" msgstr "끄기 (얼굴 데이터는 유지)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "얼굴 추가" msgstr "얼굴 추가"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "얼굴 목록" msgstr "얼굴 목록"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "얼굴 삭제" msgstr "얼굴 삭제"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "카메라를 보고 카메라에 보이는 것을 확인" msgstr "카메라를 보고 카메라에 보이는 것을 확인"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "화면 잠그기" msgstr "화면 잠그기"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "켜져 있는 기능 보기" msgstr "켜져 있는 기능 보기"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "이 도움말 보기" msgstr "이 도움말 보기"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "버전 보기" msgstr "버전 보기"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "명령 없이 실행하면 대화형 메뉴가 나옵니다." msgstr "명령 없이 실행하면 대화형 메뉴가 나옵니다."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
msgstr "root가 아닌 본인 사용자로 실행하세요. 필요하면 비밀번호를 묻습니다." msgstr "root가 아닌 본인 사용자로 실행하세요. 필요하면 비밀번호를 묻습니다."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "알 수 없는 명령: %s" msgstr "알 수 없는 명령: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "없음" msgstr "없음"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "방금" msgstr "방금"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1분 전" msgstr "1분 전"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d분 전" msgstr "%d분 전"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1시간 전" msgstr "1시간 전"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d시간 전" msgstr "%d시간 전"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1일 전" msgstr "1일 전"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d일 전" msgstr "%d일 전"
@@ -263,7 +272,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "카메라를 사용할 수 없었습니다." msgstr "카메라를 사용할 수 없었습니다."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "인식 모델이 없습니다. 패키지를 다시 설치하세요." msgstr "인식 모델이 없습니다. 패키지를 다시 설치하세요."
@@ -367,11 +376,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[y/N]" msgstr "[y/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "켜짐" msgstr "켜짐"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "꺼짐" msgstr "꺼짐"
@@ -412,85 +421,93 @@ msgstr "느리게"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s초" msgstr "%s초"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "자동" msgstr "자동"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "지금 쓰는 것"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "얼굴 잠금 해제" msgstr "얼굴 잠금 해제"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "서비스" msgstr "서비스"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "실행 중 아님" msgstr "실행 중 아님"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "얼굴 잠금 해제를 다시 켜면 시작됩니다." msgstr "얼굴 잠금 해제를 다시 켜면 시작됩니다."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "얼굴" msgstr "얼굴"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "아직 없음" msgstr "아직 없음"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "모두 꺼짐" msgstr "모두 꺼짐"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "찾을 수 없음" msgstr "찾을 수 없음"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "카메라" msgstr "카메라"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "잠금 화면" msgstr "잠금 화면"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "관리자 인증 창" msgstr "관리자 인증 창"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "잠금 화면" msgstr "잠금 화면"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "사진 검사" msgstr "사진 검사"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "일시 중지됨" msgstr "일시 중지됨"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "%d분 더, 또는 비밀번호를 사용할 때까지" msgstr "%d분 더, 또는 비밀번호를 사용할 때까지"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "마지막 잠금 해제" msgstr "마지막 잠금 해제"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "잠금 화면 에이전트가 실행 중이 아닙니다." msgstr "잠금 화면 에이전트가 실행 중이 아닙니다."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -498,7 +515,7 @@ msgstr ""
"GNOME에서는 작은 GNOME 확장이 버블을 보여 줍니다. 얼굴 잠금 해제를 켜면 함께 " "GNOME에서는 작은 GNOME 확장이 버블을 보여 줍니다. 얼굴 잠금 해제를 켜면 함께 "
"켜집니다." "켜집니다."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -507,14 +524,14 @@ msgstr ""
"hyprlock, swaylock 또는 face-unlock 자체 잠금 화면(`face-unlock lock`, 버블 " "hyprlock, swaylock 또는 face-unlock 자체 잠금 화면(`face-unlock lock`, 버블 "
"포함)으로 돌아오면 스캔해서 엽니다. 다른 잠금 화면은 Enter로 스캔합니다." "포함)으로 돌아오면 스캔해서 엽니다. 다른 잠금 화면은 Enter로 스캔합니다."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
msgstr "" msgstr ""
"얼굴을 보면 잠금 화면을 해제합니다. 꺼짐: 잠금 화면에서는 비밀번호만 됩니다." "얼굴을 보면 잠금 화면을 해제합니다. 꺼짐: 잠금 화면에서는 비밀번호만 됩니다."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -522,7 +539,7 @@ msgstr ""
"잠금 화면에서 키를 누르거나 마우스를 움직일 때, 그리고 컴퓨터가 깨어날 때 스" "잠금 화면에서 키를 누르거나 마우스를 움직일 때, 그리고 컴퓨터가 깨어날 때 스"
"캔합니다." "캔합니다."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -530,7 +547,7 @@ msgstr ""
"화면이 잠기자마자 스캔합니다. 기본값은 꺼짐: 직접 잠그면 곧바로 다시 풀려 버" "화면이 잠기자마자 스캔합니다. 기본값은 꺼짐: 직접 잠그면 곧바로 다시 풀려 버"
"리기 때문입니다." "리기 때문입니다."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -538,7 +555,17 @@ msgstr ""
"sudo가 비밀번호 대신 얼굴을 사용합니다. 일치하지 않으면 평소처럼 비밀번호를 " "sudo가 비밀번호 대신 얼굴을 사용합니다. 일치하지 않으면 평소처럼 비밀번호를 "
"입력합니다." "입력합니다."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"face-unlock 잠금 화면은 버블을 보여 주며, `face-unlock lock`으로 잠급니다. 지"
"금 잠금 화면을 그대로 쓸 수도 있습니다: 그러면 hyprlock이 위쪽에 한 줄의 글"
"을 보여 줍니다. Enter로 선택 창을 엽니다."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -547,11 +574,11 @@ msgstr ""
"face-unlock 잠금 화면(`face-unlock lock`)의 배경 그림. 비워 두면 바탕 화면의 " "face-unlock 잠금 화면(`face-unlock lock`)의 배경 그림. 비워 두면 바탕 화면의 "
"그림. 또는 파일, 무작위로 고를 폴더, `none`. Enter로 입력." "그림. 또는 파일, 무작위로 고를 폴더, `none`. Enter로 입력."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock 잠금 화면의 배경 그림을 흐리게 합니다." msgstr "face-unlock 잠금 화면의 배경 그림을 흐리게 합니다."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -560,7 +587,7 @@ msgstr ""
"잠금 화면의 비밀번호 확인에서 얼굴을 받습니다. 빈 칸에서 Enter를 누르면 스캔" "잠금 화면의 비밀번호 확인에서 얼굴을 받습니다. 빈 칸에서 Enter를 누르면 스캔"
"합니다. 찾은 것: %s." "합니다. 찾은 것: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -568,16 +595,16 @@ msgstr ""
"데스크톱과 앱의 비밀번호 창입니다. 예를 들어 소프트웨어를 설치할 때입니다. 일" "데스크톱과 앱의 비밀번호 창입니다. 예를 들어 소프트웨어를 설치할 때입니다. 일"
"치하지 않으면 비밀번호를 입력합니다." "치하지 않으면 비밀번호를 입력합니다."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "눈을 깜빡이거나 고개를 살짝 돌려야 합니다. 인쇄한 사진도 막아 줍니다." msgstr "눈을 깜빡이거나 고개를 살짝 돌려야 합니다. 인쇄한 사진도 막아 줍니다."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "검사하지 않습니다. 카메라를 시험할 때만 쓰세요." msgstr "검사하지 않습니다. 카메라를 시험할 때만 쓰세요."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -585,22 +612,22 @@ msgstr ""
"휴대폰, 태블릿, 광택지에 있는 사진을 막습니다. 눈을 깜빡일 필요는 없습니다. " "휴대폰, 태블릿, 광택지에 있는 사진을 막습니다. 눈을 깜빡일 필요는 없습니다. "
"무광 인쇄 사진은 통과할 수 있습니다." "무광 인쇄 사진은 통과할 수 있습니다."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"잘못 일치하는 경우가 줄지만, 안경을 쓰거나 조명이 나쁘면 알아보지 못할 수 있" "잘못 일치하는 경우가 줄지만, 안경을 쓰거나 조명이 나쁘면 알아보지 못할 수 있"
"습니다." "습니다."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "더 쉽게 알아보지만, 당신과 많이 닮은 사람도 알아볼 수 있습니다." msgstr "더 쉽게 알아보지만, 당신과 많이 닮은 사람도 알아볼 수 있습니다."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "기본값입니다. 대부분의 사람에게 알맞습니다." msgstr "기본값입니다. 대부분의 사람에게 알맞습니다."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -608,7 +635,7 @@ msgstr ""
"눈을 뜨고 화면을 보고 있어야 합니다. 그래서 다른 곳을 보거나 자는 동안에는 풀" "눈을 뜨고 화면을 보고 있어야 합니다. 그래서 다른 곳을 보거나 자는 동안에는 풀"
"리지 않습니다." "리지 않습니다."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -616,11 +643,11 @@ msgstr ""
"자동은 첫 번째 일반 카메라를 사용합니다. 바꾼 뒤에는 얼굴을 다시 등록하세요. " "자동은 첫 번째 일반 카메라를 사용합니다. 바꾼 뒤에는 얼굴을 다시 등록하세요. "
"적외선 카메라는 조명을 켜야 합니다 (linux-enable-ir-emitter)." "적외선 카메라는 조명을 켜야 합니다 (linux-enable-ir-emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "카메라가 포기하기 전까지 얼굴을 찾는 시간입니다." msgstr "카메라가 포기하기 전까지 얼굴을 찾는 시간입니다."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -628,7 +655,7 @@ msgstr ""
"확실히 일치하면 지금 모습을 기억합니다. 그래서 머리 모양이 바뀌거나 안경을 써" "확실히 일치하면 지금 모습을 기억합니다. 그래서 머리 모양이 바뀌거나 안경을 써"
"도 다시 등록할 필요가 없습니다." "도 다시 등록할 필요가 없습니다."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -636,96 +663,96 @@ msgstr ""
"노트북을 덮었을 때는 스캔하지 않습니다. 예를 들어 외부 모니터를 연결해 책상에" "노트북을 덮었을 때는 스캔하지 않습니다. 예를 들어 외부 모니터를 연결해 책상에"
"서 쓸 때입니다." "서 쓸 때입니다."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "화면 위쪽의 버블이 카메라가 하는 일을 보여 줍니다." msgstr "화면 위쪽의 버블이 카메라가 하는 일을 보여 줍니다."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "자물쇠가 열리는 작은 알약입니다." msgstr "자물쇠가 열리는 작은 알약입니다."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "주위를 둘러보는 얼굴이 있는 아일랜드, 그다음 링과 체크 표시입니다." msgstr "주위를 둘러보는 얼굴이 있는 아일랜드, 그다음 링과 체크 표시입니다."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "버블이 움직이는 속도입니다." msgstr "버블이 움직이는 속도입니다."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo나 관리자 인증 창이 얼굴을 스캔할 때도 버블을 보여 줍니다." msgstr "sudo나 관리자 인증 창이 얼굴을 스캔할 때도 버블을 보여 줍니다."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "자동 (%s)" msgstr "자동 (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(적외선)" msgstr "(적외선)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(연결 안 됨)" msgstr "(연결 안 됨)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "바탕 화면과 같음" msgstr "바탕 화면과 같음"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "없음" msgstr "없음"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "그림 또는 폴더:" msgstr "그림 또는 폴더:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "찾을 수 없음: %s" msgstr "찾을 수 없음: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "설정" msgstr "설정"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 선택 ←→ 또는 스페이스: 변경 q: 뒤로" msgstr "↑↓ 선택 ←→ 또는 스페이스: 변경 q: 뒤로"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "모든 사용자에게 적용, 비밀번호 필요" msgstr "모든 사용자에게 적용, 비밀번호 필요"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"위/아래: 선택, 스페이스: 켜기/끄기, r: 이름 바꾸기, d: 삭제, a: 추가, q: 뒤로" "위/아래: 선택, 스페이스: 켜기/끄기, r: 이름 바꾸기, d: 삭제, a: 추가, q: 뒤로"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "아직 등록된 얼굴이 없습니다. a를 눌러 추가하세요." msgstr "아직 등록된 얼굴이 없습니다. a를 눌러 추가하세요."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "새 이름:" msgstr "새 이름:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "\"%s\" 항목을 삭제할까요?" msgstr "\"%s\" 항목을 삭제할까요?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "얼굴 잠금 해제 켜기/끄기" msgstr "얼굴 잠금 해제 켜기/끄기"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "사용해 보기" msgstr "사용해 보기"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "끝내기" msgstr "끝내기"
@@ -773,6 +800,50 @@ msgstr ""
"Hyprland는 잠금 화면 에이전트를 스스로 시작하지 않습니다. %s에 다음을 추가하" "Hyprland는 잠금 화면 에이전트를 스스로 시작하지 않습니다. %s에 다음을 추가하"
"세요:" "세요:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "이것으로 잠그려면 %s에 이것을 추가하고, %s을(를) %s에 설정하세요:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"이것으로 잠그려면 %s의 binds에 이것을 추가하고, swayidle에서 %s을(를) 쓰세요:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"이것으로 잠그려면 지금 잠금 화면을 시작하는 곳에서 %s을(를) 실행하세요."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "이제 face-unlock 잠금 화면으로 잠급니다."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr "다음 잠금부터 hyprlock이 위쪽에 face unlock이 하는 일을 보여 줍니다."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "%s에 줄을 추가할 수 없습니다."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"잠금 화면은 그대로입니다. 빈 비밀번호 칸에서 Enter를 누르면 스캔합니다."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock에 %s이(가) 없어 글을 보여 줄 수 없습니다."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "얼굴로 잠금 해제" msgstr "얼굴로 잠금 해제"
@@ -785,6 +856,10 @@ msgstr "돌아오면 스캔"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "잠근 직후 스캔" msgstr "잠근 직후 스캔"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "사용할 잠금 화면"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "배경 화면" msgstr "배경 화면"
@@ -950,34 +1025,47 @@ msgstr "카메라가 다른 스캔으로 사용 중입니다. 잠시 후 다시
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "얼굴을 추가하지 못했습니다 (%1)." msgstr "얼굴을 추가하지 못했습니다 (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "얼굴을 찾는 중…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "비밀번호가 틀렸습니다" msgstr "비밀번호가 틀렸습니다"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "얼굴 인식됨"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "잠금 화면, sudo, 관리자 인증 창을 위한 얼굴 잠금 해제" msgstr "잠금 화면, sudo, 관리자 인증 창을 위한 얼굴 잠금 해제"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "얼굴을 등록합니다." msgstr "얼굴을 등록합니다."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "새 얼굴의 이름." msgstr "새 얼굴의 이름."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "화면을 잠급니다." msgstr "화면을 잠급니다."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "버블 애니메이션을 한 번 재생합니다." msgstr "버블 애니메이션을 한 번 재생합니다."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "데모용 버블 스타일: full 또는 minimal." msgstr "데모용 버블 스타일: full 또는 minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "사용할 잠금 화면을 묻고 답을 출력합니다."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "잠금을 해제하려면 카메라를 보세요." msgstr "잠금을 해제하려면 카메라를 보세요."
@@ -1035,7 +1123,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "이름 (선택)" msgstr "이름 (선택)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "취소" msgstr "취소"
@@ -1055,14 +1143,65 @@ msgstr "시작하기"
msgid "Done" msgid "Done"
msgstr "완료" msgstr "완료"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "잠금 화면 고르기"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "잠금 화면"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"이 데스크톱은 잠금 화면을 직접 고른 프로그램에 맡깁니다. 그곳에서 face unlock"
"이 어떻게 보일지 고르세요. 나중에 설정에서 바꿀 수 있습니다."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "face-unlock 잠금 화면"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"위쪽의 버블, 시계, 배경 화면. 단축키와 자동 잠금이 face-unlock lock을 실행합"
"니다."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "지금 잠금 화면 유지"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"그대로 둡니다. hyprlock이 버블 대신 위쪽에 한 줄의 글을 보여 줍니다. 빈 비밀"
"번호 칸에서 Enter를 누르면 스캔합니다."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"그대로 둡니다. 버블은 없습니다. 빈 비밀번호 칸에서 Enter를 누르면 스캔합니다."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "계속"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "비밀번호" msgstr "비밀번호"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "카메라를 보거나 비밀번호를 입력하세요" msgstr "카메라를 보거나 비밀번호를 입력하세요"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "비밀번호를 입력하세요" msgstr "비밀번호를 입력하세요"
+258 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
@@ -58,8 +58,9 @@ msgstr "Er is geen gezicht toegevoegd."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Stel eerst je gezicht in." msgstr "Stel eerst je gezicht in."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Kon de instelling niet opslaan." msgstr "Kon de instelling niet opslaan."
@@ -81,7 +82,15 @@ msgstr "Kon de GNOME-extensie die de bubbel toont niet inschakelen."
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Meld je één keer af en weer aan: dan toont GNOME de bubbel ook." msgstr "Meld je één keer af en weer aan: dan toont GNOME de bubbel ook."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Kies je vergrendelscherm in het venster."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "Geen vergrendelscherm gekozen. Dat kan later ook onder Instellingen."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,102 +99,102 @@ msgstr ""
"Het vergrendelscherm (%s) neemt je gezicht ook. Scant het niet als je " "Het vergrendelscherm (%s) neemt je gezicht ook. Scant het niet als je "
"terugkomt, druk dan op Enter in het lege wachtwoordveld." "terugkomt, druk dan op Enter in het lege wachtwoordveld."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Gezichtsontgrendeling staat aan. Vergrendel het scherm en kijk ernaar om het " "Gezichtsontgrendeling staat aan. Vergrendel het scherm en kijk ernaar om het "
"te proberen." "te proberen."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Het werkt ook voor sudo en beheerdersvragen. Zie Instellingen." msgstr "Het werkt ook voor sudo en beheerdersvragen. Zie Instellingen."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Gezichtsontgrendeling staat uit. Je gezichten blijven bewaard; verwijder ze " "Gezichtsontgrendeling staat uit. Je gezichten blijven bewaard; verwijder ze "
"onder Gezichten." "onder Gezichten."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Er is nog geen gezicht ingesteld." msgstr "Er is nog geen gezicht ingesteld."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "aan" msgstr "aan"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "uit" msgstr "uit"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s opnames, %s bijgeleerd" msgstr "%s opnames, %s bijgeleerd"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Welk gezicht? Zie `%s faces` voor de ID's." msgstr "Welk gezicht? Zie `%s faces` voor de ID's."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Verwijderd." msgstr "Verwijderd."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Gebruik: face-unlock [opdracht]" msgstr "Gebruik: face-unlock [opdracht]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Opdrachten:" msgstr "Opdrachten:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Gezichtsontgrendeling aanzetten" msgstr "Gezichtsontgrendeling aanzetten"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Uitzetten (gezichten blijven bewaard)" msgstr "Uitzetten (gezichten blijven bewaard)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Een gezicht toevoegen" msgstr "Een gezicht toevoegen"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "De gezichten tonen" msgstr "De gezichten tonen"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Een gezicht verwijderen" msgstr "Een gezicht verwijderen"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "In de camera kijken en zien wat hij ziet" msgstr "In de camera kijken en zien wat hij ziet"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Scherm vergrendelen" msgstr "Scherm vergrendelen"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Tonen wat er aan staat" msgstr "Tonen wat er aan staat"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Deze hulp tonen" msgstr "Deze hulp tonen"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "De versie tonen" msgstr "De versie tonen"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Zonder opdracht verschijnt een interactief menu." msgstr "Zonder opdracht verschijnt een interactief menu."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -193,42 +202,42 @@ msgstr ""
"Voer dit uit als je eigen gebruiker, niet als root. Het vraagt om je " "Voer dit uit als je eigen gebruiker, niet als root. Het vraagt om je "
"wachtwoord als dat nodig is." "wachtwoord als dat nodig is."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Onbekende opdracht: %s" msgstr "Onbekende opdracht: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "nooit" msgstr "nooit"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "zojuist" msgstr "zojuist"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 minuut geleden" msgstr "1 minuut geleden"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d minuten geleden" msgstr "%d minuten geleden"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 uur geleden" msgstr "1 uur geleden"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d uur geleden" msgstr "%d uur geleden"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 dag geleden" msgstr "1 dag geleden"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d dagen geleden" msgstr "%d dagen geleden"
@@ -268,7 +277,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "De camera kon niet worden gebruikt." msgstr "De camera kon niet worden gebruikt."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "De herkenningsmodellen ontbreken. Installeer het pakket opnieuw." msgstr "De herkenningsmodellen ontbreken. Installeer het pakket opnieuw."
@@ -372,11 +381,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[j/N]" msgstr "[j/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "AAN" msgstr "AAN"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "UIT" msgstr "UIT"
@@ -417,85 +426,93 @@ msgstr "langzaam"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s seconden" msgstr "%s seconden"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automatisch" msgstr "automatisch"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "die van face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "de jouwe"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Gezichtsontgrendeling" msgstr "Gezichtsontgrendeling"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Dienst" msgstr "Dienst"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "draait niet" msgstr "draait niet"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Gezichtsontgrendeling opnieuw aanzetten start hem." msgstr "Gezichtsontgrendeling opnieuw aanzetten start hem."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Gezichten" msgstr "Gezichten"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "nog geen ingesteld" msgstr "nog geen ingesteld"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "allemaal uit" msgstr "allemaal uit"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "geen gevonden" msgstr "geen gevonden"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Camera" msgstr "Camera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Vergrendelscherm" msgstr "Vergrendelscherm"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Beheerdersvragen" msgstr "Beheerdersvragen"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Vergrendelschermen" msgstr "Vergrendelschermen"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Fotocontrole" msgstr "Fotocontrole"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Gepauzeerd" msgstr "Gepauzeerd"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "nog %d minuten, of tot het wachtwoord wordt gebruikt" msgstr "nog %d minuten, of tot het wachtwoord wordt gebruikt"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Laatste ontgrendeling" msgstr "Laatste ontgrendeling"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "De agent voor het vergrendelscherm draait niet." msgstr "De agent voor het vergrendelscherm draait niet."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -503,7 +520,7 @@ msgstr ""
"Op GNOME toont een kleine GNOME-extensie de bubbel. Als je " "Op GNOME toont een kleine GNOME-extensie de bubbel. Als je "
"gezichtsontgrendeling inschakelt, gaat die ook aan." "gezichtsontgrendeling inschakelt, gaat die ook aan."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -513,7 +530,7 @@ msgstr ""
"van face-unlock (`face-unlock lock`, met de bubbel) en opent ze. Andere " "van face-unlock (`face-unlock lock`, met de bubbel) en opent ze. Andere "
"vergrendelschermen scannen met Enter." "vergrendelschermen scannen met Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -521,7 +538,7 @@ msgstr ""
"Ontgrendelt het vergrendelscherm als het je gezicht ziet. Uit: daar werkt " "Ontgrendelt het vergrendelscherm als het je gezicht ziet. Uit: daar werkt "
"alleen je wachtwoord." "alleen je wachtwoord."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -529,7 +546,7 @@ msgstr ""
"Scant als je op het vergrendelscherm een toets indrukt of de muis beweegt, " "Scant als je op het vergrendelscherm een toets indrukt of de muis beweegt, "
"en als de computer ontwaakt." "en als de computer ontwaakt."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -537,7 +554,7 @@ msgstr ""
"Scant zodra het scherm vergrendelt. Standaard uit: vergrendel je zelf, dan " "Scant zodra het scherm vergrendelt. Standaard uit: vergrendel je zelf, dan "
"zou het meteen weer ontgrendelen." "zou het meteen weer ontgrendelen."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -545,7 +562,17 @@ msgstr ""
"sudo neemt je gezicht in plaats van het wachtwoord. Geen match: je typt " "sudo neemt je gezicht in plaats van het wachtwoord. Geen match: je typt "
"zoals gewoonlijk je wachtwoord." "zoals gewoonlijk je wachtwoord."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"Het vergrendelscherm van face-unlock toont de bubbel, en je vergrendelt met "
"`face-unlock lock`. Of houd de jouwe: hyprlock toont dan bovenaan een regel "
"tekst. Enter opent de keuze."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -555,11 +582,11 @@ msgstr ""
"lock`). Leeg: die van je bureaublad. Of een bestand, een map waaruit er " "lock`). Leeg: die van je bureaublad. Of een bestand, een map waaruit er "
"willekeurig een wordt gekozen, of `none`. Enter om te typen." "willekeurig een wordt gekozen, of `none`. Enter om te typen."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Vervaagt de afbeelding achter het vergrendelscherm van face-unlock." msgstr "Vervaagt de afbeelding achter het vergrendelscherm van face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -568,7 +595,7 @@ msgstr ""
"Het vergrendelscherm neemt je gezicht in zijn wachtwoordcontrole. Druk op " "Het vergrendelscherm neemt je gezicht in zijn wachtwoordcontrole. Druk op "
"Enter in het lege veld om te scannen. Hier gevonden: %s." "Enter in het lege veld om te scannen. Hier gevonden: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -576,18 +603,18 @@ msgstr ""
"De wachtwoordvensters van je bureaublad en apps, bijvoorbeeld bij het " "De wachtwoordvensters van je bureaublad en apps, bijvoorbeeld bij het "
"installeren van software. Geen match: je typt je wachtwoord." "installeren van software. Geen match: je typt je wachtwoord."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Je moet knipperen of je hoofd een beetje draaien. Dat houdt ook geprinte " "Je moet knipperen of je hoofd een beetje draaien. Dat houdt ook geprinte "
"foto's tegen." "foto's tegen."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Helemaal geen controle. Alleen om een camera uit te proberen." msgstr "Helemaal geen controle. Alleen om een camera uit te proberen."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -595,22 +622,22 @@ msgstr ""
"Houdt foto's op een telefoon, tablet of glanzend papier tegen. Knipperen is " "Houdt foto's op een telefoon, tablet of glanzend papier tegen. Knipperen is "
"niet nodig. Een matte geprinte foto kan erdoor komen." "niet nodig. Een matte geprinte foto kan erdoor komen."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Minder verwisselingen, maar met een bril of bij slecht licht herkent het je " "Minder verwisselingen, maar met een bril of bij slecht licht herkent het je "
"misschien niet." "misschien niet."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Herkent je makkelijker, maar ook iemand die veel op je lijkt." msgstr "Herkent je makkelijker, maar ook iemand die veel op je lijkt."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "De standaard. Goed voor de meeste mensen." msgstr "De standaard. Goed voor de meeste mensen."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -618,7 +645,7 @@ msgstr ""
"Je ogen moeten open zijn en naar het scherm kijken. Zo ontgrendelt het niet " "Je ogen moeten open zijn en naar het scherm kijken. Zo ontgrendelt het niet "
"als je wegkijkt of slaapt." "als je wegkijkt of slaapt."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -627,11 +654,11 @@ msgstr ""
"opnieuw in. Een infraroodcamera heeft zijn lampje nodig (linux-enable-ir-" "opnieuw in. Een infraroodcamera heeft zijn lampje nodig (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Hoe lang de camera naar je gezicht zoekt voordat hij opgeeft." msgstr "Hoe lang de camera naar je gezicht zoekt voordat hij opgeeft."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -639,7 +666,7 @@ msgstr ""
"Na een zekere match onthoudt het hoe je er nu uitziet. Een nieuw kapsel of " "Na een zekere match onthoudt het hoe je er nu uitziet. Een nieuw kapsel of "
"een bril vraagt dus niet om opnieuw instellen." "een bril vraagt dus niet om opnieuw instellen."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -647,97 +674,97 @@ msgstr ""
"Geen scan als de laptop dicht is, bijvoorbeeld aan een bureau met een extern " "Geen scan als de laptop dicht is, bijvoorbeeld aan een bureau met een extern "
"scherm." "scherm."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "De bubbel boven aan het scherm laat zien wat de camera doet." msgstr "De bubbel boven aan het scherm laat zien wat de camera doet."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Een kleine pil met een slot dat opengaat." msgstr "Een kleine pil met een slot dat opengaat."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Een eiland met een gezicht dat rondkijkt, daarna ringen en een vinkje." msgstr "Een eiland met een gezicht dat rondkijkt, daarna ringen en een vinkje."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Hoe snel de bubbel beweegt." msgstr "Hoe snel de bubbel beweegt."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "Toont de bubbel ook als sudo of een beheerdersvraag je gezicht scant." msgstr "Toont de bubbel ook als sudo of een beheerdersvraag je gezicht scant."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automatisch (%s)" msgstr "automatisch (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(infrarood)" msgstr "(infrarood)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(niet aangesloten)" msgstr "(niet aangesloten)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "zoals bureaublad" msgstr "zoals bureaublad"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "geen" msgstr "geen"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Afbeelding of map:" msgstr "Afbeelding of map:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Niet gevonden: %s" msgstr "Niet gevonden: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Instellingen" msgstr "Instellingen"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ kiezen ←→ of Spatie: wijzigen q: terug" msgstr "↑↓ kiezen ←→ of Spatie: wijzigen q: terug"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "voor alle gebruikers, vraagt om je wachtwoord" msgstr "voor alle gebruikers, vraagt om je wachtwoord"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Omhoog/Omlaag: kiezen, Spatie: aan/uit, r: hernoemen, d: verwijderen, a: " "Omhoog/Omlaag: kiezen, Spatie: aan/uit, r: hernoemen, d: verwijderen, a: "
"toevoegen, q: terug" "toevoegen, q: terug"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Er is nog geen gezicht ingesteld. Druk op a om er een toe te voegen." msgstr "Er is nog geen gezicht ingesteld. Druk op a om er een toe te voegen."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Nieuwe naam:" msgstr "Nieuwe naam:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "“%s” verwijderen?" msgstr "“%s” verwijderen?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Gezichtsontgrendeling aan- of uitzetten" msgstr "Gezichtsontgrendeling aan- of uitzetten"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Uitproberen" msgstr "Uitproberen"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Afsluiten" msgstr "Afsluiten"
@@ -787,6 +814,54 @@ msgstr ""
"Hyprland start de agent voor het vergrendelscherm niet zelf. Voeg dit toe " "Hyprland start de agent voor het vergrendelscherm niet zelf. Voeg dit toe "
"aan %s:" "aan %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Om ermee te vergrendelen, voeg dit toe aan %s en zet %s in %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Om ermee te vergrendelen, voeg dit toe aan de binds in %s en gebruik %s in "
"swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Om ermee te vergrendelen, start %s waar je vergrendelscherm nu wordt gestart."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Je vergrendelt nu met het vergrendelscherm van face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock toont bovenaan wat face unlock doet, vanaf de volgende keer "
"vergrendelen."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Kon de regel niet aan %s toevoegen."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Je vergrendelscherm blijft zoals het is. Druk op Enter in het lege "
"wachtwoordveld om te scannen."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock heeft geen %s, dus het kan de tekst niet tonen."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Ontgrendelen met je gezicht" msgstr "Ontgrendelen met je gezicht"
@@ -799,6 +874,10 @@ msgstr "Scannen als je terugkomt"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Scannen direct na vergrendelen" msgstr "Scannen direct na vergrendelen"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Welk vergrendelscherm"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Achtergrond" msgstr "Achtergrond"
@@ -966,35 +1045,48 @@ msgstr "De camera is bezig met een andere scan. Probeer het zo opnieuw."
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Het gezicht kon niet worden toegevoegd (%1)." msgstr "Het gezicht kon niet worden toegevoegd (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Zoekt je gezicht…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Verkeerd wachtwoord" msgstr "Verkeerd wachtwoord"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Gezicht herkend"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Gezichtsontgrendeling voor het vergrendelscherm, sudo en beheerdersvragen" "Gezichtsontgrendeling voor het vergrendelscherm, sudo en beheerdersvragen"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Een gezicht instellen." msgstr "Een gezicht instellen."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Hoe het nieuwe gezicht moet heten." msgstr "Hoe het nieuwe gezicht moet heten."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Het scherm vergrendelen." msgstr "Het scherm vergrendelen."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "De animaties van de bubbel één keer afspelen." msgstr "De animaties van de bubbel één keer afspelen."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Bubbelstijl voor de demo: full of minimal." msgstr "Bubbelstijl voor de demo: full of minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Vraagt welk vergrendelscherm te gebruiken en print het antwoord."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Kijk in de camera om te ontgrendelen." msgstr "Kijk in de camera om te ontgrendelen."
@@ -1053,7 +1145,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Naam (optioneel)" msgstr "Naam (optioneel)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
@@ -1073,14 +1165,67 @@ msgstr "Aan de slag"
msgid "Done" msgid "Done"
msgstr "Klaar" msgstr "Klaar"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Kies je vergrendelscherm"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Je vergrendelscherm"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Je bureaublad laat het vergrendelscherm over aan een programma naar keuze. "
"Kies hoe face unlock daar verschijnt. Je kunt dit later onder Instellingen "
"wijzigen."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Vergrendelscherm van face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"De bubbel bovenaan, de tijd en je achtergrond. Je sneltoets en vergrendelen "
"bij inactiviteit starten dan face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Je eigen vergrendelscherm houden"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Het blijft zoals het is. hyprlock toont bovenaan een regel tekst in plaats "
"van de bubbel. Enter in het lege wachtwoordveld scant."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Het blijft zoals het is, zonder bubbel. Enter in het lege wachtwoordveld "
"scant."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Doorgaan"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Wachtwoord" msgstr "Wachtwoord"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Kijk naar de camera of typ je wachtwoord" msgstr "Kijk naar de camera of typ je wachtwoord"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Typ je wachtwoord" msgstr "Typ je wachtwoord"
+251 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
@@ -59,8 +59,9 @@ msgstr "Nie dodano żadnej twarzy."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Najpierw skonfiguruj swoją twarz." msgstr "Najpierw skonfiguruj swoją twarz."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Nie udało się zapisać ustawienia." msgstr "Nie udało się zapisać ustawienia."
@@ -82,7 +83,15 @@ msgstr "Nie udało się włączyć rozszerzenia GNOME, które pokazuje dymek."
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Wyloguj się i zaloguj ponownie raz: wtedy GNOME też pokaże dymek." msgstr "Wyloguj się i zaloguj ponownie raz: wtedy GNOME też pokaże dymek."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Wybierz ekran blokady w oknie."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "Nie wybrano ekranu blokady. Możesz to zrobić później w Ustawieniach."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,102 +100,102 @@ msgstr ""
"Ekran blokady (%s) też przyjmuje twarz. Jeśli nie skanuje, gdy wracasz, " "Ekran blokady (%s) też przyjmuje twarz. Jeśli nie skanuje, gdy wracasz, "
"naciśnij Enter w pustym polu hasła." "naciśnij Enter w pustym polu hasła."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Odblokowywanie twarzą jest włączone. Zablokuj ekran i spójrz na niego, aby " "Odblokowywanie twarzą jest włączone. Zablokuj ekran i spójrz na niego, aby "
"wypróbować." "wypróbować."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Działa też dla sudo i okien administratora. Zobacz Ustawienia." msgstr "Działa też dla sudo i okien administratora. Zobacz Ustawienia."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Odblokowywanie twarzą jest wyłączone. Twoje twarze zostają zachowane; " "Odblokowywanie twarzą jest wyłączone. Twoje twarze zostają zachowane; "
"usuniesz je w Twarzach." "usuniesz je w Twarzach."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Nie skonfigurowano jeszcze żadnej twarzy." msgstr "Nie skonfigurowano jeszcze żadnej twarzy."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "wł." msgstr "wł."
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "wył." msgstr "wył."
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "próbki: %s, wyuczone: %s" msgstr "próbki: %s, wyuczone: %s"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Która twarz? Identyfikatory pokazuje `%s faces`." msgstr "Która twarz? Identyfikatory pokazuje `%s faces`."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Usunięto." msgstr "Usunięto."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Użycie: face-unlock [polecenie]" msgstr "Użycie: face-unlock [polecenie]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Polecenia:" msgstr "Polecenia:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Włącz odblokowywanie twarzą" msgstr "Włącz odblokowywanie twarzą"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Wyłącz je (twarze zostają zachowane)" msgstr "Wyłącz je (twarze zostają zachowane)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Dodaj twarz" msgstr "Dodaj twarz"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Pokaż listę twarzy" msgstr "Pokaż listę twarzy"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Usuń twarz" msgstr "Usuń twarz"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Spójrz w kamerę i zobacz, co widzi" msgstr "Spójrz w kamerę i zobacz, co widzi"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Zablokuj ekran" msgstr "Zablokuj ekran"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Pokaż, co jest włączone" msgstr "Pokaż, co jest włączone"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Pokaż tę pomoc" msgstr "Pokaż tę pomoc"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Pokaż wersję" msgstr "Pokaż wersję"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Bez polecenia wyświetla się interaktywne menu." msgstr "Bez polecenia wyświetla się interaktywne menu."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -194,42 +203,42 @@ msgstr ""
"Uruchom to jako swój użytkownik, nie jako root. Hasło zostanie zapytane, gdy " "Uruchom to jako swój użytkownik, nie jako root. Hasło zostanie zapytane, gdy "
"będzie potrzebne." "będzie potrzebne."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Nieznane polecenie: %s" msgstr "Nieznane polecenie: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "nigdy" msgstr "nigdy"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "przed chwilą" msgstr "przed chwilą"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 minutę temu" msgstr "1 minutę temu"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d min temu" msgstr "%d min temu"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 godzinę temu" msgstr "1 godzinę temu"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d godz. temu" msgstr "%d godz. temu"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 dzień temu" msgstr "1 dzień temu"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d dni temu" msgstr "%d dni temu"
@@ -269,7 +278,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Nie udało się użyć kamery." msgstr "Nie udało się użyć kamery."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Brakuje modeli rozpoznawania. Zainstaluj pakiet ponownie." msgstr "Brakuje modeli rozpoznawania. Zainstaluj pakiet ponownie."
@@ -373,11 +382,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[t/N]" msgstr "[t/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "WŁ." msgstr "WŁ."
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "WYŁ." msgstr "WYŁ."
@@ -418,85 +427,93 @@ msgstr "wolna"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s s" msgstr "%s s"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automatyczna" msgstr "automatyczna"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "twój"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Odblokowywanie twarzą" msgstr "Odblokowywanie twarzą"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Usługa" msgstr "Usługa"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "nie działa" msgstr "nie działa"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Ponowne włączenie odblokowywania twarzą ją uruchomi." msgstr "Ponowne włączenie odblokowywania twarzą ją uruchomi."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Twarze" msgstr "Twarze"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "jeszcze żadnej" msgstr "jeszcze żadnej"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "wszystkie wyłączone" msgstr "wszystkie wyłączone"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "nie znaleziono" msgstr "nie znaleziono"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Kamera" msgstr "Kamera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Ekran blokady" msgstr "Ekran blokady"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Okna administratora" msgstr "Okna administratora"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Ekrany blokady" msgstr "Ekrany blokady"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Wykrywanie zdjęć" msgstr "Wykrywanie zdjęć"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Wstrzymane" msgstr "Wstrzymane"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "jeszcze %d min lub do użycia hasła" msgstr "jeszcze %d min lub do użycia hasła"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Ostatnie odblokowanie" msgstr "Ostatnie odblokowanie"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "Agent ekranu blokady nie działa." msgstr "Agent ekranu blokady nie działa."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -504,7 +521,7 @@ msgstr ""
"W GNOME dymek pokazuje małe rozszerzenie GNOME. Włączenie odblokowywania " "W GNOME dymek pokazuje małe rozszerzenie GNOME. Włączenie odblokowywania "
"twarzą włącza też je." "twarzą włącza też je."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +531,7 @@ msgstr ""
"unlock (`face-unlock lock`, z dymkiem), i je otwiera. Inne ekrany blokady " "unlock (`face-unlock lock`, z dymkiem), i je otwiera. Inne ekrany blokady "
"skanują po Enter." "skanują po Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -522,7 +539,7 @@ msgstr ""
"Odblokowuje ekran blokady, gdy widzi twoją twarz. Wyłączone: działa tam " "Odblokowuje ekran blokady, gdy widzi twoją twarz. Wyłączone: działa tam "
"tylko hasło." "tylko hasło."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -530,7 +547,7 @@ msgstr ""
"Skanuje, gdy naciśniesz klawisz lub poruszysz myszą na ekranie blokady, oraz " "Skanuje, gdy naciśniesz klawisz lub poruszysz myszą na ekranie blokady, oraz "
"gdy komputer się wybudzi." "gdy komputer się wybudzi."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -538,7 +555,7 @@ msgstr ""
"Skanuje od razu po zablokowaniu ekranu. Domyślnie wyłączone: gdy zablokujesz " "Skanuje od razu po zablokowaniu ekranu. Domyślnie wyłączone: gdy zablokujesz "
"sam, od razu by się odblokował." "sam, od razu by się odblokował."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -546,7 +563,17 @@ msgstr ""
"sudo przyjmuje twarz zamiast hasła. Gdy nie pasuje, wpisujesz hasło jak " "sudo przyjmuje twarz zamiast hasła. Gdy nie pasuje, wpisujesz hasło jak "
"zwykle." "zwykle."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"Ekran blokady face-unlock pokazuje dymek, a blokujesz go przez `face-unlock "
"lock`. Albo zostaw swój: hyprlock pokaże wtedy u góry linię tekstu. Enter "
"otwiera wybór."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +583,11 @@ msgstr ""
"pulpitu. Albo plik, folder, z którego losowany jest obraz, albo `none`. " "pulpitu. Albo plik, folder, z którego losowany jest obraz, albo `none`. "
"Enter, aby wpisać." "Enter, aby wpisać."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Rozmywa obraz za ekranem blokady face-unlock." msgstr "Rozmywa obraz za ekranem blokady face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +596,7 @@ msgstr ""
"Ekran blokady przyjmuje twarz przy sprawdzaniu hasła. Naciśnij Enter w " "Ekran blokady przyjmuje twarz przy sprawdzaniu hasła. Naciśnij Enter w "
"pustym polu, aby skanować. Znalezione tutaj: %s." "pustym polu, aby skanować. Znalezione tutaj: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -577,18 +604,18 @@ msgstr ""
"Okna haseł pulpitu i aplikacji, na przykład przy instalowaniu programów. Gdy " "Okna haseł pulpitu i aplikacji, na przykład przy instalowaniu programów. Gdy "
"twarz nie pasuje, wpisujesz hasło." "twarz nie pasuje, wpisujesz hasło."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Musisz mrugnąć albo lekko obrócić głowę. To zatrzymuje też wydrukowane " "Musisz mrugnąć albo lekko obrócić głowę. To zatrzymuje też wydrukowane "
"zdjęcia." "zdjęcia."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Bez żadnej kontroli. Tylko do wypróbowania kamery." msgstr "Bez żadnej kontroli. Tylko do wypróbowania kamery."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Zatrzymuje zdjęcia na telefonie, tablecie lub błyszczącym papierze. Nie " "Zatrzymuje zdjęcia na telefonie, tablecie lub błyszczącym papierze. Nie "
"trzeba mrugać. Matowy wydruk może przejść." "trzeba mrugać. Matowy wydruk może przejść."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Mniej pomyłek, ale może cię nie rozpoznać w okularach albo przy słabym " "Mniej pomyłek, ale może cię nie rozpoznać w okularach albo przy słabym "
"świetle." "świetle."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Łatwiej cię rozpoznaje, ale też kogoś bardzo do ciebie podobnego." msgstr "Łatwiej cię rozpoznaje, ale też kogoś bardzo do ciebie podobnego."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "Domyślna. Pasuje większości osób." msgstr "Domyślna. Pasuje większości osób."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Twoje oczy muszą być otwarte i patrzeć na ekran. Dzięki temu nie odblokuje, " "Twoje oczy muszą być otwarte i patrzeć na ekran. Dzięki temu nie odblokuje, "
"gdy patrzysz w bok lub śpisz." "gdy patrzysz w bok lub śpisz."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"nowa. Kamera na podczerwień potrzebuje włączonego światła (linux-enable-ir-" "nowa. Kamera na podczerwień potrzebuje włączonego światła (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Jak długo kamera szuka twojej twarzy, zanim się podda." msgstr "Jak długo kamera szuka twojej twarzy, zanim się podda."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"Po pewnym dopasowaniu zapamiętuje, jak teraz wyglądasz. Nowa fryzura czy " "Po pewnym dopasowaniu zapamiętuje, jak teraz wyglądasz. Nowa fryzura czy "
"okulary nie wymagają więc ponownej konfiguracji." "okulary nie wymagają więc ponownej konfiguracji."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -648,98 +675,98 @@ msgstr ""
"Bez skanowania, gdy laptop jest zamknięty, na przykład przy biurku z " "Bez skanowania, gdy laptop jest zamknięty, na przykład przy biurku z "
"zewnętrznym ekranem." "zewnętrznym ekranem."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Dymek u góry ekranu pokazuje, co robi kamera." msgstr "Dymek u góry ekranu pokazuje, co robi kamera."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Mała pigułka z kłódką, która się otwiera." msgstr "Mała pigułka z kłódką, która się otwiera."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Wyspa z twarzą, która się rozgląda, potem pierścienie i ptaszek." msgstr "Wyspa z twarzą, która się rozgląda, potem pierścienie i ptaszek."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Jak szybko porusza się dymek." msgstr "Jak szybko porusza się dymek."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Pokazuje dymek także wtedy, gdy sudo lub okno administratora skanuje twarz." "Pokazuje dymek także wtedy, gdy sudo lub okno administratora skanuje twarz."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automatyczna (%s)" msgstr "automatyczna (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(podczerwień)" msgstr "(podczerwień)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(niepodłączona)" msgstr "(niepodłączona)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "jak na pulpicie" msgstr "jak na pulpicie"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "brak" msgstr "brak"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Obraz lub folder:" msgstr "Obraz lub folder:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Nie znaleziono: %s" msgstr "Nie znaleziono: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Ustawienia" msgstr "Ustawienia"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ wybierz ←→ lub Spacja: zmień q: wstecz" msgstr "↑↓ wybierz ←→ lub Spacja: zmień q: wstecz"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "dla wszystkich użytkowników, pyta o hasło" msgstr "dla wszystkich użytkowników, pyta o hasło"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Góra/Dół: wybierz, Spacja: wł./wył., r: zmień nazwę, d: usuń, a: dodaj, q: " "Góra/Dół: wybierz, Spacja: wł./wył., r: zmień nazwę, d: usuń, a: dodaj, q: "
"wstecz" "wstecz"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Nie skonfigurowano jeszcze żadnej twarzy. Naciśnij a, aby dodać." msgstr "Nie skonfigurowano jeszcze żadnej twarzy. Naciśnij a, aby dodać."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Nowa nazwa:" msgstr "Nowa nazwa:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Usunąć „%s”?" msgstr "Usunąć „%s”?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Włącz lub wyłącz odblokowywanie twarzą" msgstr "Włącz lub wyłącz odblokowywanie twarzą"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Wypróbuj" msgstr "Wypróbuj"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Zakończ" msgstr "Zakończ"
@@ -784,6 +811,50 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:" "Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland nie uruchamia sam agenta ekranu blokady. Dodaj to do %s:" msgstr "Hyprland nie uruchamia sam agenta ekranu blokady. Dodaj to do %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Aby nim blokować, dodaj to do %s i ustaw %s w %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr "Aby nim blokować, dodaj to do binds w %s i użyj %s w swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Aby nim blokować, uruchamiaj %s tam, gdzie teraz startuje twój ekran blokady."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Teraz blokujesz ekranem blokady face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr "hyprlock pokaże u góry, co robi face unlock, od następnej blokady."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Nie udało się dodać linii do %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Twój ekran blokady zostaje bez zmian. Naciśnij Enter w pustym polu hasła, "
"aby skanować."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock nie ma %s, więc nie może pokazać tekstu."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Odblokowuj twarzą" msgstr "Odblokowuj twarzą"
@@ -796,6 +867,10 @@ msgstr "Skanuj, gdy wracasz"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Skanuj zaraz po zablokowaniu" msgstr "Skanuj zaraz po zablokowaniu"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Który ekran blokady"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Tapeta" msgstr "Tapeta"
@@ -962,34 +1037,47 @@ msgstr "Kamera jest zajęta innym skanowaniem. Spróbuj ponownie za chwilę."
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Nie udało się dodać twarzy (%1)." msgstr "Nie udało się dodać twarzy (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Szukam twojej twarzy…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Złe hasło" msgstr "Złe hasło"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Rozpoznano twarz"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Odblokowywanie twarzą dla ekranu blokady, sudo i okien administratora" msgstr "Odblokowywanie twarzą dla ekranu blokady, sudo i okien administratora"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Skonfiguruj twarz." msgstr "Skonfiguruj twarz."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Jak nazwać nową twarz." msgstr "Jak nazwać nową twarz."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Zablokuj ekran." msgstr "Zablokuj ekran."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Odtwórz raz animacje dymka." msgstr "Odtwórz raz animacje dymka."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Styl dymka w demo: full lub minimal." msgstr "Styl dymka w demo: full lub minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Pyta, którego ekranu blokady użyć, i wypisuje odpowiedź."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Spójrz w kamerę, aby odblokować." msgstr "Spójrz w kamerę, aby odblokować."
@@ -1048,7 +1136,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Nazwa (opcjonalnie)" msgstr "Nazwa (opcjonalnie)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
@@ -1068,14 +1156,64 @@ msgstr "Zaczynamy"
msgid "Done" msgid "Done"
msgstr "Gotowe" msgstr "Gotowe"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Wybierz ekran blokady"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Twój ekran blokady"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Twój pulpit zostawia ekran blokady programowi, który wybierasz. Wybierz, jak "
"face unlock ma się tam pokazywać. Możesz to zmienić później w Ustawieniach."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Ekran blokady face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"Dymek u góry, godzina i twoja tapeta. Twój skrót i blokada po bezczynności "
"uruchamiają wtedy face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Zostaw swój ekran blokady"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Zostaje bez zmian. hyprlock pokazuje u góry linię tekstu zamiast dymka. "
"Enter w pustym polu hasła skanuje."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr "Zostaje bez zmian, bez dymka. Enter w pustym polu hasła skanuje."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Dalej"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Hasło" msgstr "Hasło"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Spójrz w kamerę albo wpisz hasło" msgstr "Spójrz w kamerę albo wpisz hasło"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Wpisz hasło" msgstr "Wpisz hasło"
+258 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Brazilian Portuguese\n" "Language-Team: Brazilian Portuguese\n"
@@ -58,8 +58,9 @@ msgstr "Nenhum rosto foi adicionado."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Primeiro, configure o seu rosto." msgstr "Primeiro, configure o seu rosto."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Não foi possível salvar a configuração." msgstr "Não foi possível salvar a configuração."
@@ -81,7 +82,17 @@ msgstr "Não foi possível ativar a extensão do GNOME que mostra a bolha."
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Saia e entre de novo uma vez: aí o GNOME também mostra a bolha." msgstr "Saia e entre de novo uma vez: aí o GNOME também mostra a bolha."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Escolha sua tela de bloqueio na janela."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr ""
"Nenhuma tela de bloqueio escolhida. Você pode fazer isso depois em "
"Configurações."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,103 +101,103 @@ msgstr ""
"A tela de bloqueio (%s) também aceita seu rosto. Se ela não escanear quando " "A tela de bloqueio (%s) também aceita seu rosto. Se ela não escanear quando "
"você voltar, pressione Enter no campo de senha vazio." "você voltar, pressione Enter no campo de senha vazio."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"O desbloqueio facial está ativado. Bloqueie a tela e olhe para ela para " "O desbloqueio facial está ativado. Bloqueie a tela e olhe para ela para "
"testar." "testar."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
"Ele também funciona com sudo e pedidos de administrador. Veja Configurações." "Ele também funciona com sudo e pedidos de administrador. Veja Configurações."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"O desbloqueio facial está desativado. Seus rostos são mantidos; apague-os em " "O desbloqueio facial está desativado. Seus rostos são mantidos; apague-os em "
"Rostos." "Rostos."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Nenhum rosto configurado ainda." msgstr "Nenhum rosto configurado ainda."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "ativado" msgstr "ativado"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "desativado" msgstr "desativado"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s amostras, %s aprendidas" msgstr "%s amostras, %s aprendidas"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Qual rosto? Veja `%s faces` para os IDs." msgstr "Qual rosto? Veja `%s faces` para os IDs."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Apagado." msgstr "Apagado."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]" msgstr "Uso: face-unlock [comando]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Comandos:" msgstr "Comandos:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Ativar o desbloqueio facial" msgstr "Ativar o desbloqueio facial"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Desativar (os rostos são mantidos)" msgstr "Desativar (os rostos são mantidos)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Adicionar um rosto" msgstr "Adicionar um rosto"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Listar os rostos" msgstr "Listar os rostos"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Apagar um rosto" msgstr "Apagar um rosto"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Olhar para a câmera e ver o que ela vê" msgstr "Olhar para a câmera e ver o que ela vê"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Bloquear a tela" msgstr "Bloquear a tela"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Mostrar o que está ativado" msgstr "Mostrar o que está ativado"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Mostrar esta ajuda" msgstr "Mostrar esta ajuda"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Mostrar a versão" msgstr "Mostrar a versão"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Sem comando, um menu interativo é exibido." msgstr "Sem comando, um menu interativo é exibido."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -194,42 +205,42 @@ msgstr ""
"Execute isto com o seu próprio usuário, não como root. Ele pede a sua senha " "Execute isto com o seu próprio usuário, não como root. Ele pede a sua senha "
"quando precisa." "quando precisa."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Comando desconhecido: %s" msgstr "Comando desconhecido: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "nunca" msgstr "nunca"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "agora mesmo" msgstr "agora mesmo"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "há 1 minuto" msgstr "há 1 minuto"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "há %d minutos" msgstr "há %d minutos"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "há 1 hora" msgstr "há 1 hora"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "há %d horas" msgstr "há %d horas"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "há 1 dia" msgstr "há 1 dia"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "há %d dias" msgstr "há %d dias"
@@ -269,7 +280,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Não foi possível usar a câmera." msgstr "Não foi possível usar a câmera."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Os modelos de reconhecimento estão faltando. Reinstale o pacote." msgstr "Os modelos de reconhecimento estão faltando. Reinstale o pacote."
@@ -373,11 +384,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[s/N]" msgstr "[s/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "ATIVADO" msgstr "ATIVADO"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "DESATIVADO" msgstr "DESATIVADO"
@@ -418,85 +429,93 @@ msgstr "lenta"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s segundos" msgstr "%s segundos"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "automática" msgstr "automática"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "a do face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "a sua"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Desbloqueio facial" msgstr "Desbloqueio facial"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Serviço" msgstr "Serviço"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "parado" msgstr "parado"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Ativar o desbloqueio facial de novo o inicia." msgstr "Ativar o desbloqueio facial de novo o inicia."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Rostos" msgstr "Rostos"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "nenhum configurado ainda" msgstr "nenhum configurado ainda"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "todos desativados" msgstr "todos desativados"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "nenhuma encontrada" msgstr "nenhuma encontrada"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Câmera" msgstr "Câmera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Tela de bloqueio" msgstr "Tela de bloqueio"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Pedidos de administrador" msgstr "Pedidos de administrador"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Telas de bloqueio" msgstr "Telas de bloqueio"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Detecção de foto" msgstr "Detecção de foto"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Pausado" msgstr "Pausado"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "por mais %d minutos, ou até a senha ser usada" msgstr "por mais %d minutos, ou até a senha ser usada"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Último desbloqueio" msgstr "Último desbloqueio"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "O agente da tela de bloqueio não está em execução." msgstr "O agente da tela de bloqueio não está em execução."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -504,7 +523,7 @@ msgstr ""
"No GNOME, uma pequena extensão do GNOME mostra a bolha. Ativar o desbloqueio " "No GNOME, uma pequena extensão do GNOME mostra a bolha. Ativar o desbloqueio "
"facial também a ativa." "facial também a ativa."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +533,7 @@ msgstr ""
"face-unlock (`face-unlock lock`, com a bolha) e os abre. As outras telas de " "face-unlock (`face-unlock lock`, com a bolha) e os abre. As outras telas de "
"bloqueio escaneiam com Enter." "bloqueio escaneiam com Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -522,7 +541,7 @@ msgstr ""
"Desbloqueia a tela de bloqueio quando vê o seu rosto. Desativado: lá só a " "Desbloqueia a tela de bloqueio quando vê o seu rosto. Desativado: lá só a "
"sua senha funciona." "sua senha funciona."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -530,7 +549,7 @@ msgstr ""
"Faz a leitura quando você aperta uma tecla ou mexe o mouse na tela de " "Faz a leitura quando você aperta uma tecla ou mexe o mouse na tela de "
"bloqueio, e quando o computador acorda." "bloqueio, e quando o computador acorda."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -538,7 +557,7 @@ msgstr ""
"Faz a leitura assim que a tela é bloqueada. Desativado por padrão: se você " "Faz a leitura assim que a tela é bloqueada. Desativado por padrão: se você "
"mesmo bloquear, ela desbloquearia logo em seguida." "mesmo bloquear, ela desbloquearia logo em seguida."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -546,7 +565,17 @@ msgstr ""
"O sudo usa o seu rosto em vez da senha. Se não corresponder, você digita a " "O sudo usa o seu rosto em vez da senha. Se não corresponder, você digita a "
"senha como sempre." "senha como sempre."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"A tela de bloqueio do face-unlock mostra a bolha, e você bloqueia com `face-"
"unlock lock`. Ou mantenha a sua: o hyprlock então mostra uma linha de texto "
"no topo. Enter abre a escolha."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +585,11 @@ msgstr ""
"Vazio: a da sua área de trabalho. Ou um arquivo, uma pasta da qual uma é " "Vazio: a da sua área de trabalho. Ou um arquivo, uma pasta da qual uma é "
"escolhida ao acaso, ou `none`. Enter para digitar." "escolhida ao acaso, ou `none`. Enter para digitar."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Desfoca a imagem atrás da tela de bloqueio do face-unlock." msgstr "Desfoca a imagem atrás da tela de bloqueio do face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +598,7 @@ msgstr ""
"A tela de bloqueio aceita seu rosto na verificação de senha. Pressione Enter " "A tela de bloqueio aceita seu rosto na verificação de senha. Pressione Enter "
"no campo vazio para escanear. Encontradas aqui: %s." "no campo vazio para escanear. Encontradas aqui: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -577,18 +606,18 @@ msgstr ""
"As janelas de senha da sua área de trabalho e dos apps, por exemplo ao " "As janelas de senha da sua área de trabalho e dos apps, por exemplo ao "
"instalar programas. Se não corresponder, você digita a senha." "instalar programas. Se não corresponder, você digita a senha."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Você precisa piscar ou virar um pouco a cabeça. Isso também barra fotos " "Você precisa piscar ou virar um pouco a cabeça. Isso também barra fotos "
"impressas." "impressas."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Nenhuma verificação. Só para testar uma câmera." msgstr "Nenhuma verificação. Só para testar uma câmera."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -596,23 +625,23 @@ msgstr ""
"Barra fotos em celular, tablet ou papel brilhante. Não é preciso piscar. Uma " "Barra fotos em celular, tablet ou papel brilhante. Não é preciso piscar. Uma "
"foto impressa em papel fosco pode passar." "foto impressa em papel fosco pode passar."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Menos confusões, mas talvez não reconheça você de óculos ou com pouca luz." "Menos confusões, mas talvez não reconheça você de óculos ou com pouca luz."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "" msgstr ""
"Reconhece você com mais facilidade, mas também alguém muito parecido com " "Reconhece você com mais facilidade, mas também alguém muito parecido com "
"você." "você."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "O padrão. Serve para a maioria das pessoas." msgstr "O padrão. Serve para a maioria das pessoas."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -620,7 +649,7 @@ msgstr ""
"Seus olhos precisam estar abertos e voltados para a tela. Assim não " "Seus olhos precisam estar abertos e voltados para a tela. Assim não "
"desbloqueia enquanto você olha para outro lado ou dorme." "desbloqueia enquanto você olha para outro lado ou dorme."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -629,11 +658,11 @@ msgstr ""
"rosto de novo. Uma câmera infravermelha precisa da luz ligada (linux-enable-" "rosto de novo. Uma câmera infravermelha precisa da luz ligada (linux-enable-"
"ir-emitter)." "ir-emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Quanto tempo a câmera procura o seu rosto antes de desistir." msgstr "Quanto tempo a câmera procura o seu rosto antes de desistir."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -641,7 +670,7 @@ msgstr ""
"Após uma correspondência segura, ele guarda a sua aparência atual. Assim, um " "Após uma correspondência segura, ele guarda a sua aparência atual. Assim, um "
"corte de cabelo novo ou óculos não exigem nova configuração." "corte de cabelo novo ou óculos não exigem nova configuração."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -649,99 +678,99 @@ msgstr ""
"Nenhuma leitura com o notebook fechado, por exemplo numa mesa com uma tela " "Nenhuma leitura com o notebook fechado, por exemplo numa mesa com uma tela "
"externa." "externa."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "A bolha no topo da tela mostra o que a câmera está fazendo." msgstr "A bolha no topo da tela mostra o que a câmera está fazendo."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Uma pequena pílula com um cadeado que se abre." msgstr "Uma pequena pílula com um cadeado que se abre."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Uma ilha com um rosto que olha em volta, depois anéis e um visto." msgstr "Uma ilha com um rosto que olha em volta, depois anéis e um visto."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "A velocidade com que a bolha se move." msgstr "A velocidade com que a bolha se move."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Mostra a bolha também quando o sudo ou um pedido de administrador lê o seu " "Mostra a bolha também quando o sudo ou um pedido de administrador lê o seu "
"rosto." "rosto."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "automática (%s)" msgstr "automática (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(infravermelha)" msgstr "(infravermelha)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(não conectada)" msgstr "(não conectada)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "igual à área de trabalho" msgstr "igual à área de trabalho"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "nenhum" msgstr "nenhum"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Imagem ou pasta:" msgstr "Imagem ou pasta:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Não encontrado: %s" msgstr "Não encontrado: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Configurações" msgstr "Configurações"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ escolher ←→ ou Espaço: mudar q: voltar" msgstr "↑↓ escolher ←→ ou Espaço: mudar q: voltar"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "para todos os usuários, pede a sua senha" msgstr "para todos os usuários, pede a sua senha"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Cima/Baixo: escolher, Espaço: ativar/desativar, r: renomear, d: apagar, a: " "Cima/Baixo: escolher, Espaço: ativar/desativar, r: renomear, d: apagar, a: "
"adicionar, q: voltar" "adicionar, q: voltar"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Nenhum rosto configurado ainda. Aperte a para adicionar um." msgstr "Nenhum rosto configurado ainda. Aperte a para adicionar um."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Novo nome:" msgstr "Novo nome:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Apagar \"%s\"?" msgstr "Apagar \"%s\"?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Ativar ou desativar o desbloqueio facial" msgstr "Ativar ou desativar o desbloqueio facial"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Testar" msgstr "Testar"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Sair" msgstr "Sair"
@@ -789,6 +818,53 @@ msgstr ""
"O Hyprland não inicia o agente da tela de bloqueio sozinho. Adicione isto a " "O Hyprland não inicia o agente da tela de bloqueio sozinho. Adicione isto a "
"%s:" "%s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Para bloquear com ela, adicione isto a %s e defina %s em %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Para bloquear com ela, adicione isto aos binds em %s e use %s no swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Para bloquear com ela, rode %s onde sua tela de bloqueio é iniciada hoje."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Agora você bloqueia com a tela de bloqueio do face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"O hyprlock mostra no topo o que o face unlock está fazendo, a partir do "
"próximo bloqueio."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Não foi possível adicionar a linha a %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Sua tela de bloqueio fica como está. Pressione Enter no campo de senha vazio "
"para escanear."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "O hyprlock não tem %s, então não pode mostrar o texto."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Desbloquear com o rosto" msgstr "Desbloquear com o rosto"
@@ -801,6 +877,10 @@ msgstr "Ler quando você voltar"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Ler logo após bloquear" msgstr "Ler logo após bloquear"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Qual tela de bloqueio"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Papel de parede" msgstr "Papel de parede"
@@ -968,36 +1048,49 @@ msgstr "A câmera está ocupada com outra leitura. Tente de novo em instantes."
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Não foi possível adicionar o rosto (%1)." msgstr "Não foi possível adicionar o rosto (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Procurando seu rosto…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Senha incorreta" msgstr "Senha incorreta"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Rosto reconhecido"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Desbloqueio facial para a tela de bloqueio, o sudo e os pedidos de " "Desbloqueio facial para a tela de bloqueio, o sudo e os pedidos de "
"administrador" "administrador"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Configurar um rosto." msgstr "Configurar um rosto."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Como chamar o novo rosto." msgstr "Como chamar o novo rosto."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Bloquear a tela." msgstr "Bloquear a tela."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Reproduzir as animações da bolha uma vez." msgstr "Reproduzir as animações da bolha uma vez."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Estilo da bolha para a demonstração: full ou minimal." msgstr "Estilo da bolha para a demonstração: full ou minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Pergunta qual tela de bloqueio usar e imprime a resposta."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Olhe para a câmera para desbloquear." msgstr "Olhe para a câmera para desbloquear."
@@ -1055,7 +1148,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Nome (opcional)" msgstr "Nome (opcional)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@@ -1075,14 +1168,66 @@ msgstr "Começar"
msgid "Done" msgid "Done"
msgstr "Concluído" msgstr "Concluído"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Escolha sua tela de bloqueio"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Sua tela de bloqueio"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Sua área de trabalho deixa a tela de bloqueio para um programa da sua "
"escolha. Escolha como o face unlock aparece lá. Você pode mudar isso depois "
"em Configurações."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Tela de bloqueio do face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"A bolha no topo, a hora e seu papel de parede. Seu atalho e o bloqueio por "
"inatividade passam a rodar face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Manter sua tela de bloqueio"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Ela fica como está. O hyprlock mostra uma linha de texto no topo em vez da "
"bolha. Enter no campo de senha vazio escaneia."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Ela fica como está, sem a bolha. Enter no campo de senha vazio escaneia."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Continuar"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Senha" msgstr "Senha"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Olhe para a câmera ou digite sua senha" msgstr "Olhe para a câmera ou digite sua senha"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Digite sua senha" msgstr "Digite sua senha"
+257 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Russian\n" "Language-Team: Russian\n"
@@ -59,8 +59,9 @@ msgstr "Лицо не добавлено."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Сначала настройте своё лицо." msgstr "Сначала настройте своё лицо."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Не удалось сохранить настройку." msgstr "Не удалось сохранить настройку."
@@ -82,7 +83,15 @@ msgstr "Не удалось включить расширение GNOME, кот
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Выйдите и войдите снова один раз: тогда GNOME тоже покажет пузырь." msgstr "Выйдите и войдите снова один раз: тогда GNOME тоже покажет пузырь."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Выберите экран блокировки в окне."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "Экран блокировки не выбран. Это можно сделать позже в Настройках."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,102 +100,102 @@ msgstr ""
"Экран блокировки (%s) тоже принимает ваше лицо. Если он не сканирует, когда " "Экран блокировки (%s) тоже принимает ваше лицо. Если он не сканирует, когда "
"вы возвращаетесь, нажмите Enter в пустом поле пароля." "вы возвращаетесь, нажмите Enter в пустом поле пароля."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Разблокировка по лицу включена. Заблокируйте экран и посмотрите на него, " "Разблокировка по лицу включена. Заблокируйте экран и посмотрите на него, "
"чтобы попробовать." "чтобы попробовать."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Она работает и для sudo, и для запросов администратора. См. Настройки." msgstr "Она работает и для sudo, и для запросов администратора. См. Настройки."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Разблокировка по лицу выключена. Ваши лица сохранены; удалить их можно в " "Разблокировка по лицу выключена. Ваши лица сохранены; удалить их можно в "
"разделе Лица." "разделе Лица."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Ещё не настроено ни одного лица." msgstr "Ещё не настроено ни одного лица."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "вкл." msgstr "вкл."
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "выкл." msgstr "выкл."
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "образцов: %s, выучено: %s" msgstr "образцов: %s, выучено: %s"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Какое лицо? Номера показывает `%s faces`." msgstr "Какое лицо? Номера показывает `%s faces`."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Удалено." msgstr "Удалено."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Использование: face-unlock [команда]" msgstr "Использование: face-unlock [команда]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Команды:" msgstr "Команды:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Включить разблокировку по лицу" msgstr "Включить разблокировку по лицу"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Выключить её (лица сохраняются)" msgstr "Выключить её (лица сохраняются)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Добавить лицо" msgstr "Добавить лицо"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Показать список лиц" msgstr "Показать список лиц"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Удалить лицо" msgstr "Удалить лицо"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Посмотреть в камеру и увидеть, что она видит" msgstr "Посмотреть в камеру и увидеть, что она видит"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Заблокировать экран" msgstr "Заблокировать экран"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Показать, что включено" msgstr "Показать, что включено"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Показать эту справку" msgstr "Показать эту справку"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Показать версию" msgstr "Показать версию"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Без команды открывается интерактивное меню." msgstr "Без команды открывается интерактивное меню."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -194,42 +203,42 @@ msgstr ""
"Запускайте это от своего пользователя, не от root. Пароль будет запрошен, " "Запускайте это от своего пользователя, не от root. Пароль будет запрошен, "
"когда он понадобится." "когда он понадобится."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Неизвестная команда: %s" msgstr "Неизвестная команда: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "никогда" msgstr "никогда"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "только что" msgstr "только что"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 минуту назад" msgstr "1 минуту назад"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d мин назад" msgstr "%d мин назад"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 час назад" msgstr "1 час назад"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d ч назад" msgstr "%d ч назад"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 день назад" msgstr "1 день назад"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d дн. назад" msgstr "%d дн. назад"
@@ -269,7 +278,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Не удалось использовать камеру." msgstr "Не удалось использовать камеру."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Нет моделей распознавания. Переустановите пакет." msgstr "Нет моделей распознавания. Переустановите пакет."
@@ -373,11 +382,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[д/Н]" msgstr "[д/Н]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "ВКЛ" msgstr "ВКЛ"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "ВЫКЛ" msgstr "ВЫКЛ"
@@ -418,85 +427,93 @@ msgstr "медленная"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s с" msgstr "%s с"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "автоматически" msgstr "автоматически"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "ваш"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Разблокировка по лицу" msgstr "Разблокировка по лицу"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Служба" msgstr "Служба"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "не запущена" msgstr "не запущена"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Повторное включение разблокировки по лицу запустит её." msgstr "Повторное включение разблокировки по лицу запустит её."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Лица" msgstr "Лица"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "пока не настроены" msgstr "пока не настроены"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "все выключены" msgstr "все выключены"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "не найдена" msgstr "не найдена"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Камера" msgstr "Камера"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Экран блокировки" msgstr "Экран блокировки"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Запросы администратора" msgstr "Запросы администратора"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Экраны блокировки" msgstr "Экраны блокировки"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Проверка на фото" msgstr "Проверка на фото"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Приостановлено" msgstr "Приостановлено"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "ещё %d мин или до ввода пароля" msgstr "ещё %d мин или до ввода пароля"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Последняя разблокировка" msgstr "Последняя разблокировка"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "Агент экрана блокировки не запущен." msgstr "Агент экрана блокировки не запущен."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -504,7 +521,7 @@ msgstr ""
"В GNOME пузырь показывает небольшое расширение GNOME. Оно включается вместе " "В GNOME пузырь показывает небольшое расширение GNOME. Оно включается вместе "
"с разблокировкой по лицу." "с разблокировкой по лицу."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +531,7 @@ msgstr ""
"блокировки face-unlock (`face-unlock lock`, с пузырём), и открывает их. " "блокировки face-unlock (`face-unlock lock`, с пузырём), и открывает их. "
"Другие экраны блокировки сканируют по Enter." "Другие экраны блокировки сканируют по Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -522,7 +539,7 @@ msgstr ""
"Снимает блокировку экрана, когда видит ваше лицо. Выкл.: там работает только " "Снимает блокировку экрана, когда видит ваше лицо. Выкл.: там работает только "
"пароль." "пароль."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -530,7 +547,7 @@ msgstr ""
"Сканирует, когда вы нажимаете клавишу или двигаете мышь на экране " "Сканирует, когда вы нажимаете клавишу или двигаете мышь на экране "
"блокировки, и когда компьютер просыпается." "блокировки, и когда компьютер просыпается."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -538,7 +555,7 @@ msgstr ""
"Сканирует сразу после блокировки экрана. По умолчанию выкл.: если вы " "Сканирует сразу после блокировки экрана. По умолчанию выкл.: если вы "
"блокируете сами, он тут же разблокировался бы." "блокируете сами, он тут же разблокировался бы."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -546,7 +563,17 @@ msgstr ""
"sudo принимает ваше лицо вместо пароля. Не совпало: вы вводите пароль как " "sudo принимает ваше лицо вместо пароля. Не совпало: вы вводите пароль как "
"обычно." "обычно."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"Экран блокировки face-unlock показывает пузырь, а блокировать нужно командой "
"`face-unlock lock`. Или оставьте свой: тогда hyprlock покажет сверху строку "
"текста. Enter открывает выбор."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +583,11 @@ msgstr ""
"что на рабочем столе. Или файл, папка, из которой берётся случайная, или " "что на рабочем столе. Или файл, папка, из которой берётся случайная, или "
"`none`. Нажмите Enter, чтобы ввести." "`none`. Нажмите Enter, чтобы ввести."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Размывает картинку за экраном блокировки face-unlock." msgstr "Размывает картинку за экраном блокировки face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +596,7 @@ msgstr ""
"Экран блокировки принимает ваше лицо при проверке пароля. Нажмите Enter в " "Экран блокировки принимает ваше лицо при проверке пароля. Нажмите Enter в "
"пустом поле, чтобы сканировать. Найдено здесь: %s." "пустом поле, чтобы сканировать. Найдено здесь: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -577,18 +604,18 @@ msgstr ""
"Окна ввода пароля рабочего стола и приложений, например при установке " "Окна ввода пароля рабочего стола и приложений, например при установке "
"программ. Не совпало: вы вводите пароль." "программ. Не совпало: вы вводите пароль."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Нужно моргнуть или слегка повернуть голову. Это также останавливает " "Нужно моргнуть или слегка повернуть голову. Это также останавливает "
"распечатанные фото." "распечатанные фото."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Никакой проверки. Только чтобы опробовать камеру." msgstr "Никакой проверки. Только чтобы опробовать камеру."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Останавливает фото на телефоне, планшете или глянцевой бумаге. Моргать не " "Останавливает фото на телефоне, планшете или глянцевой бумаге. Моргать не "
"нужно. Матовое распечатанное фото может пройти." "нужно. Матовое распечатанное фото может пройти."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Меньше ошибочных совпадений, но может не узнать вас в очках или при плохом " "Меньше ошибочных совпадений, но может не узнать вас в очках или при плохом "
"свете." "свете."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Узнаёт вас легче, но и того, кто очень на вас похож." msgstr "Узнаёт вас легче, но и того, кто очень на вас похож."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "По умолчанию. Подходит большинству." msgstr "По умолчанию. Подходит большинству."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Ваши глаза должны быть открыты и смотреть на экран. Так он не " "Ваши глаза должны быть открыты и смотреть на экран. Так он не "
"разблокируется, пока вы смотрите в сторону или спите." "разблокируется, пока вы смотрите в сторону или спите."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"заново. Инфракрасной камере нужна включённая подсветка (linux-enable-ir-" "заново. Инфракрасной камере нужна включённая подсветка (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Как долго камера ищет ваше лицо, прежде чем сдаться." msgstr "Как долго камера ищет ваше лицо, прежде чем сдаться."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"После уверенного совпадения запоминает, как вы выглядите сейчас. Новая " "После уверенного совпадения запоминает, как вы выглядите сейчас. Новая "
"стрижка или очки не требуют новой настройки." "стрижка или очки не требуют новой настройки."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -648,99 +675,99 @@ msgstr ""
"Без сканирования, когда ноутбук закрыт, например за столом с внешним " "Без сканирования, когда ноутбук закрыт, например за столом с внешним "
"монитором." "монитором."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Пузырь вверху экрана показывает, что делает камера." msgstr "Пузырь вверху экрана показывает, что делает камера."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Маленькая таблетка с замком, который открывается." msgstr "Маленькая таблетка с замком, который открывается."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Остров с лицом, которое оглядывается, затем кольца и галочка." msgstr "Остров с лицом, которое оглядывается, затем кольца и галочка."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Как быстро движется пузырь." msgstr "Как быстро движется пузырь."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Показывает пузырь и тогда, когда sudo или запрос администратора сканирует " "Показывает пузырь и тогда, когда sudo или запрос администратора сканирует "
"ваше лицо." "ваше лицо."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "автоматически (%s)" msgstr "автоматически (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(инфракрасная)" msgstr "(инфракрасная)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(не подключена)" msgstr "(не подключена)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "как на рабочем столе" msgstr "как на рабочем столе"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "нет" msgstr "нет"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Картинка или папка:" msgstr "Картинка или папка:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Не найдено: %s" msgstr "Не найдено: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Настройки" msgstr "Настройки"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ выбор ←→ или Пробел: изменить q: назад" msgstr "↑↓ выбор ←→ или Пробел: изменить q: назад"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "для всех пользователей, запрашивает пароль" msgstr "для всех пользователей, запрашивает пароль"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Вверх/Вниз: выбор, Пробел: вкл./выкл., r: переименовать, d: удалить, a: " "Вверх/Вниз: выбор, Пробел: вкл./выкл., r: переименовать, d: удалить, a: "
"добавить, q: назад" "добавить, q: назад"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Ещё не настроено ни одного лица. Нажмите a, чтобы добавить." msgstr "Ещё не настроено ни одного лица. Нажмите a, чтобы добавить."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Новое имя:" msgstr "Новое имя:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Удалить «%s»?" msgstr "Удалить «%s»?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Включить или выключить разблокировку по лицу" msgstr "Включить или выключить разблокировку по лицу"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Попробовать" msgstr "Попробовать"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Выход" msgstr "Выход"
@@ -786,6 +813,53 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:" "Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland сам не запускает агент экрана блокировки. Добавьте это в %s:" msgstr "Hyprland сам не запускает агент экрана блокировки. Добавьте это в %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Чтобы блокировать им, добавьте это в %s и укажите %s в %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Чтобы блокировать им, добавьте это в binds в %s и используйте %s в swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Чтобы блокировать им, запускайте %s там, где сейчас запускается ваш экран "
"блокировки."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Теперь вы блокируете экраном блокировки face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"hyprlock покажет сверху, что делает face unlock, со следующей блокировки."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Не удалось добавить строку в %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Ваш экран блокировки остаётся как есть. Нажмите Enter в пустом поле пароля, "
"чтобы сканировать."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "У hyprlock нет %s, поэтому он не может показать текст."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Разблокировать по лицу" msgstr "Разблокировать по лицу"
@@ -798,6 +872,10 @@ msgstr "Сканировать при возвращении"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Сканировать сразу после блокировки" msgstr "Сканировать сразу после блокировки"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Какой экран блокировки"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Обои" msgstr "Обои"
@@ -965,35 +1043,48 @@ msgstr "Камера занята другим сканированием. По
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Не удалось добавить лицо (%1)." msgstr "Не удалось добавить лицо (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Ищу ваше лицо…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Неверный пароль" msgstr "Неверный пароль"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Лицо распознано"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Разблокировка по лицу для экрана блокировки, sudo и запросов администратора" "Разблокировка по лицу для экрана блокировки, sudo и запросов администратора"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Настроить лицо." msgstr "Настроить лицо."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Как назвать новое лицо." msgstr "Как назвать новое лицо."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Заблокировать экран." msgstr "Заблокировать экран."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Один раз проиграть анимации пузыря." msgstr "Один раз проиграть анимации пузыря."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Стиль пузыря для демо: full или minimal." msgstr "Стиль пузыря для демо: full или minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Спрашивает, какой экран блокировки использовать, и выводит ответ."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Посмотрите в камеру, чтобы разблокировать." msgstr "Посмотрите в камеру, чтобы разблокировать."
@@ -1053,7 +1144,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Имя (необязательно)" msgstr "Имя (необязательно)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
@@ -1073,14 +1164,67 @@ msgstr "Начать"
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Выбор экрана блокировки"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Ваш экран блокировки"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Ваш рабочий стол оставляет экран блокировки программе на ваш выбор. "
"Выберите, как там будет выглядеть face unlock. Это можно изменить позже в "
"Настройках."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Экран блокировки face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"Пузырь сверху, время и ваши обои. Ваше сочетание клавиш и блокировка по "
"бездействию тогда запускают face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Оставить свой экран блокировки"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Он остаётся как есть. hyprlock показывает сверху строку текста вместо "
"пузыря. Enter в пустом поле пароля запускает сканирование."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Он остаётся как есть, без пузыря. Enter в пустом поле пароля запускает "
"сканирование."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Продолжить"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Посмотрите в камеру или введите пароль" msgstr "Посмотрите в камеру или введите пароль"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Введите пароль" msgstr "Введите пароль"
+260 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Turkish\n" "Language-Team: Turkish\n"
@@ -57,8 +57,9 @@ msgstr "Hiç yüz eklenmedi."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Önce yüzünüzü kurun." msgstr "Önce yüzünüzü kurun."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Ayar kaydedilemedi." msgstr "Ayar kaydedilemedi."
@@ -80,7 +81,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "" msgstr ""
"Bir kez oturumu kapatıp yeniden açın: o zaman GNOME de baloncuğu gösterir." "Bir kez oturumu kapatıp yeniden açın: o zaman GNOME de baloncuğu gösterir."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Pencerede kilit ekranınızı seçin."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "Kilit ekranı seçilmedi. Bunu daha sonra Ayarlar'dan yapabilirsiniz."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -89,100 +98,100 @@ msgstr ""
"Kilit ekranı (%s) da yüzünüzü kabul eder. Döndüğünüzde taramazsa boş parola " "Kilit ekranı (%s) da yüzünüzü kabul eder. Döndüğünüzde taramazsa boş parola "
"alanında Enter'a basın." "alanında Enter'a basın."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "Yüzle kilit açma açık. Denemek için ekranı kilitleyin ve ona bakın." msgstr "Yüzle kilit açma açık. Denemek için ekranı kilitleyin ve ona bakın."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo ve yönetici istemlerinde de çalışabilir. Ayarlar'a bakın." msgstr "sudo ve yönetici istemlerinde de çalışabilir. Ayarlar'a bakın."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Yüzle kilit açma kapalı. Yüzleriniz saklanıyor; Yüzler bölümünden " "Yüzle kilit açma kapalı. Yüzleriniz saklanıyor; Yüzler bölümünden "
"silebilirsiniz." "silebilirsiniz."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Henüz hiç yüz kurulmadı." msgstr "Henüz hiç yüz kurulmadı."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "açık" msgstr "açık"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "kapalı" msgstr "kapalı"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s örnek, %s öğrenilen" msgstr "%s örnek, %s öğrenilen"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Hangi yüz? Kimlikler için `%s faces` komutuna bakın." msgstr "Hangi yüz? Kimlikler için `%s faces` komutuna bakın."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Silindi." msgstr "Silindi."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Kullanım: face-unlock [komut]" msgstr "Kullanım: face-unlock [komut]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Komutlar:" msgstr "Komutlar:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Yüzle kilit açmayı aç" msgstr "Yüzle kilit açmayı aç"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Kapat (yüzler saklanır)" msgstr "Kapat (yüzler saklanır)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Yüz ekle" msgstr "Yüz ekle"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Yüzleri listele" msgstr "Yüzleri listele"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Bir yüzü sil" msgstr "Bir yüzü sil"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Kameraya bak ve onun ne gördüğünü gör" msgstr "Kameraya bak ve onun ne gördüğünü gör"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Ekranı kilitle" msgstr "Ekranı kilitle"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Neyin açık olduğunu göster" msgstr "Neyin açık olduğunu göster"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Bu yardımı göster" msgstr "Bu yardımı göster"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Sürümü göster" msgstr "Sürümü göster"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Komut verilmezse etkileşimli bir menü gösterilir." msgstr "Komut verilmezse etkileşimli bir menü gösterilir."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -190,42 +199,42 @@ msgstr ""
"Bunu root olarak değil, kendi kullanıcınızla çalıştırın. Gerektiğinde " "Bunu root olarak değil, kendi kullanıcınızla çalıştırın. Gerektiğinde "
"parolanızı sorar." "parolanızı sorar."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Bilinmeyen komut: %s" msgstr "Bilinmeyen komut: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "hiçbir zaman" msgstr "hiçbir zaman"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "az önce" msgstr "az önce"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 dakika önce" msgstr "1 dakika önce"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d dakika önce" msgstr "%d dakika önce"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 saat önce" msgstr "1 saat önce"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d saat önce" msgstr "%d saat önce"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 gün önce" msgstr "1 gün önce"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d gün önce" msgstr "%d gün önce"
@@ -265,7 +274,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Kamera kullanılamadı." msgstr "Kamera kullanılamadı."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Tanıma modelleri eksik. Paketi yeniden kurun." msgstr "Tanıma modelleri eksik. Paketi yeniden kurun."
@@ -369,11 +378,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[e/H]" msgstr "[e/H]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "AÇIK" msgstr "AÇIK"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "KAPALI" msgstr "KAPALI"
@@ -414,85 +423,93 @@ msgstr "yavaş"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s saniye" msgstr "%s saniye"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "otomatik" msgstr "otomatik"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "sizinki"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Yüzle kilit açma" msgstr "Yüzle kilit açma"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Hizmet" msgstr "Hizmet"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "çalışmıyor" msgstr "çalışmıyor"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Yüzle kilit açmayı yeniden açmak onu başlatır." msgstr "Yüzle kilit açmayı yeniden açmak onu başlatır."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Yüzler" msgstr "Yüzler"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "henüz kurulmadı" msgstr "henüz kurulmadı"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "hepsi kapalı" msgstr "hepsi kapalı"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "bulunamadı" msgstr "bulunamadı"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Kamera" msgstr "Kamera"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Kilit ekranı" msgstr "Kilit ekranı"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Yönetici istemleri" msgstr "Yönetici istemleri"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Kilit ekranları" msgstr "Kilit ekranları"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Fotoğraf denetimi" msgstr "Fotoğraf denetimi"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Duraklatıldı" msgstr "Duraklatıldı"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "%d dakika daha ya da parola kullanılana kadar" msgstr "%d dakika daha ya da parola kullanılana kadar"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Son kilit açma" msgstr "Son kilit açma"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "Kilit ekranı aracısı çalışmıyor." msgstr "Kilit ekranı aracısı çalışmıyor."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -500,7 +517,7 @@ msgstr ""
"GNOME'da baloncuğu küçük bir GNOME uzantısı gösterir. Yüzle kilit açmayı " "GNOME'da baloncuğu küçük bir GNOME uzantısı gösterir. Yüzle kilit açmayı "
"açınca o da açılır." "açınca o da açılır."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -510,7 +527,7 @@ msgstr ""
"unlock lock`, baloncukla) döndüğünüzde tarar ve onları açar. Diğer kilit " "unlock lock`, baloncukla) döndüğünüzde tarar ve onları açar. Diğer kilit "
"ekranları Enter ile tarar." "ekranları Enter ile tarar."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -518,7 +535,7 @@ msgstr ""
"Yüzünüzü görünce kilit ekranını açar. Kapalı: orada yalnızca parolanız " "Yüzünüzü görünce kilit ekranını açar. Kapalı: orada yalnızca parolanız "
"çalışır." "çalışır."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -526,7 +543,7 @@ msgstr ""
"Kilit ekranında bir tuşa bastığınızda ya da fareyi oynattığınızda ve " "Kilit ekranında bir tuşa bastığınızda ya da fareyi oynattığınızda ve "
"bilgisayar uyandığında tarar." "bilgisayar uyandığında tarar."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -534,7 +551,7 @@ msgstr ""
"Ekran kilitlenir kilitlenmez tarar. Varsayılan olarak kapalı: kendiniz " "Ekran kilitlenir kilitlenmez tarar. Varsayılan olarak kapalı: kendiniz "
"kilitlerseniz hemen yeniden açılırdı." "kilitlerseniz hemen yeniden açılırdı."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -542,7 +559,17 @@ msgstr ""
"sudo parola yerine yüzünüzü kullanır. Eşleşmezse parolayı her zamanki gibi " "sudo parola yerine yüzünüzü kullanır. Eşleşmezse parolayı her zamanki gibi "
"yazarsınız." "yazarsınız."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"face-unlock'un kilit ekranı baloncuğu gösterir ve `face-unlock lock` ile "
"kilitlersiniz. Ya da kendinizinkini koruyun: hyprlock o zaman üstte bir "
"satır metin gösterir. Enter seçimi açar."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -552,11 +579,11 @@ msgstr ""
"masaüstünüzdeki resim. Ya da bir dosya, rastgele seçilecek bir klasör veya " "masaüstünüzdeki resim. Ya da bir dosya, rastgele seçilecek bir klasör veya "
"`none`. Yazmak için Enter." "`none`. Yazmak için Enter."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock kilit ekranının arkasındaki resmi bulanıklaştırır." msgstr "face-unlock kilit ekranının arkasındaki resmi bulanıklaştırır."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -565,7 +592,7 @@ msgstr ""
"Kilit ekranı parola denetiminde yüzünüzü kabul eder. Taramak için boş alanda " "Kilit ekranı parola denetiminde yüzünüzü kabul eder. Taramak için boş alanda "
"Enter'a basın. Burada bulunanlar: %s." "Enter'a basın. Burada bulunanlar: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -573,18 +600,18 @@ msgstr ""
"Masaüstünüzün ve uygulamaların parola pencereleri, örneğin yazılım kurarken. " "Masaüstünüzün ve uygulamaların parola pencereleri, örneğin yazılım kurarken. "
"Eşleşmezse parolayı yazarsınız." "Eşleşmezse parolayı yazarsınız."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Göz kırpmanız ya da başınızı biraz çevirmeniz gerekir. Bu, basılı " "Göz kırpmanız ya da başınızı biraz çevirmeniz gerekir. Bu, basılı "
"fotoğrafları da durdurur." "fotoğrafları da durdurur."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Hiç denetim yok. Yalnızca bir kamerayı denemek için." msgstr "Hiç denetim yok. Yalnızca bir kamerayı denemek için."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -592,21 +619,21 @@ msgstr ""
"Telefon, tablet ya da parlak kâğıttaki fotoğrafları durdurur. Göz kırpmanız " "Telefon, tablet ya da parlak kâğıttaki fotoğrafları durdurur. Göz kırpmanız "
"gerekmez. Mat basılı bir fotoğraf geçebilir." "gerekmez. Mat basılı bir fotoğraf geçebilir."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Daha az yanlış eşleşme, ama gözlükle ya da kötü ışıkta sizi tanımayabilir." "Daha az yanlış eşleşme, ama gözlükle ya da kötü ışıkta sizi tanımayabilir."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Sizi daha kolay tanır, ama size çok benzeyen birini de." msgstr "Sizi daha kolay tanır, ama size çok benzeyen birini de."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "Varsayılan. Çoğu kişi için uygun." msgstr "Varsayılan. Çoğu kişi için uygun."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -614,7 +641,7 @@ msgstr ""
"Gözleriniz açık ve ekrana dönük olmalı. Böylece başka yere bakarken ya da " "Gözleriniz açık ve ekrana dönük olmalı. Böylece başka yere bakarken ya da "
"uyurken kilit açılmaz." "uyurken kilit açılmaz."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -623,11 +650,11 @@ msgstr ""
"kurun. Kızılötesi kameranın ışığının açık olması gerekir (linux-enable-ir-" "kurun. Kızılötesi kameranın ışığının açık olması gerekir (linux-enable-ir-"
"emitter)." "emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Kameranın vazgeçmeden önce yüzünüzü ne kadar aradığı." msgstr "Kameranın vazgeçmeden önce yüzünüzü ne kadar aradığı."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -635,105 +662,105 @@ msgstr ""
"Kesin bir eşleşmeden sonra şu anki görünüşünüzü hatırlar. Böylece yeni saç " "Kesin bir eşleşmeden sonra şu anki görünüşünüzü hatırlar. Böylece yeni saç "
"kesimi ya da gözlük yeniden kurulum gerektirmez." "kesimi ya da gözlük yeniden kurulum gerektirmez."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
msgstr "Dizüstü kapalıyken tarama yok, örneğin harici ekranlı bir masada." msgstr "Dizüstü kapalıyken tarama yok, örneğin harici ekranlı bir masada."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Ekranın üstündeki baloncuk kameranın ne yaptığını gösterir." msgstr "Ekranın üstündeki baloncuk kameranın ne yaptığını gösterir."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Açılan bir kilidi olan küçük bir hap." msgstr "Açılan bir kilidi olan küçük bir hap."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "" msgstr ""
"Etrafına bakan bir yüzü olan bir ada, ardından halkalar ve bir onay işareti." "Etrafına bakan bir yüzü olan bir ada, ardından halkalar ve bir onay işareti."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Baloncuğun ne kadar hızlı hareket ettiği." msgstr "Baloncuğun ne kadar hızlı hareket ettiği."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"sudo ya da bir yönetici istemi yüzünüzü taradığında da baloncuğu gösterir." "sudo ya da bir yönetici istemi yüzünüzü taradığında da baloncuğu gösterir."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "otomatik (%s)" msgstr "otomatik (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(kızılötesi)" msgstr "(kızılötesi)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(bağlı değil)" msgstr "(bağlı değil)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "masaüstüyle aynı" msgstr "masaüstüyle aynı"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "yok" msgstr "yok"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Resim ya da klasör:" msgstr "Resim ya da klasör:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Bulunamadı: %s" msgstr "Bulunamadı: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Ayarlar" msgstr "Ayarlar"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ seç ←→ ya da Boşluk: değiştir q: geri" msgstr "↑↓ seç ←→ ya da Boşluk: değiştir q: geri"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "tüm kullanıcılar için, parolanızı sorar" msgstr "tüm kullanıcılar için, parolanızı sorar"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Yukarı/Aşağı: seç, Boşluk: aç/kapat, r: yeniden adlandır, d: sil, a: ekle, " "Yukarı/Aşağı: seç, Boşluk: aç/kapat, r: yeniden adlandır, d: sil, a: ekle, "
"q: geri" "q: geri"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Henüz hiç yüz kurulmadı. Eklemek için a tuşuna basın." msgstr "Henüz hiç yüz kurulmadı. Eklemek için a tuşuna basın."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Yeni ad:" msgstr "Yeni ad:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "\"%s\" silinsin mi?" msgstr "\"%s\" silinsin mi?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Yüzle kilit açmayı aç ya da kapat" msgstr "Yüzle kilit açmayı aç ya da kapat"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Dene" msgstr "Dene"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Çık" msgstr "Çık"
@@ -781,6 +808,57 @@ msgstr ""
"Hyprland kilit ekranı aracısını kendiliğinden başlatmaz. Bunu %s dosyasına " "Hyprland kilit ekranı aracısını kendiliğinden başlatmaz. Bunu %s dosyasına "
"ekleyin:" "ekleyin:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr ""
"Onunla kilitlemek için bunu %s dosyasına ekleyin ve %s ayarını %s içine "
"yazın:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Onunla kilitlemek için bunu %s içindeki binds'a ekleyin ve swayidle'da %s "
"kullanın:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Onunla kilitlemek için kilit ekranınızın şu an başlatıldığı yerde %s "
"çalıştırın."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Artık face-unlock'un kilit ekranıyla kilitliyorsunuz."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr ""
"Bir sonraki kilitlemeden itibaren hyprlock, face unlock'un ne yaptığını "
"üstte gösterir."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Satır %s dosyasına eklenemedi."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Kilit ekranınız olduğu gibi kalır. Taramak için boş parola alanında Enter'a "
"basın."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock'un %s dosyası yok, bu yüzden metni gösteremez."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Yüzünüzle kilidi açın" msgstr "Yüzünüzle kilidi açın"
@@ -793,6 +871,10 @@ msgstr "Geri döndüğünüzde tara"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Kilitledikten hemen sonra tara" msgstr "Kilitledikten hemen sonra tara"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Hangi kilit ekranı"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Duvar kâğıdı" msgstr "Duvar kâğıdı"
@@ -957,34 +1039,47 @@ msgstr "Kamera başka bir taramayla meşgul. Birazdan yeniden deneyin."
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Yüz eklenemedi (%1)." msgstr "Yüz eklenemedi (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Yüzünüz aranıyor…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Yanlış parola" msgstr "Yanlış parola"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Yüz tanındı"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Kilit ekranı, sudo ve yönetici istemleri için yüzle kilit açma" msgstr "Kilit ekranı, sudo ve yönetici istemleri için yüzle kilit açma"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Bir yüz kur." msgstr "Bir yüz kur."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Yeni yüzün adı." msgstr "Yeni yüzün adı."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Ekranı kilitle." msgstr "Ekranı kilitle."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Baloncuğun animasyonlarını bir kez oynat." msgstr "Baloncuğun animasyonlarını bir kez oynat."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Demo için baloncuk stili: full ya da minimal." msgstr "Demo için baloncuk stili: full ya da minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Hangi kilit ekranının kullanılacağını sorar ve cevabı yazdırır."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Kilidi açmak için kameraya bakın." msgstr "Kilidi açmak için kameraya bakın."
@@ -1043,7 +1138,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Ad (isteğe bağlı)" msgstr "Ad (isteğe bağlı)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "İptal" msgstr "İptal"
@@ -1063,14 +1158,66 @@ msgstr "Başlayalım"
msgid "Done" msgid "Done"
msgstr "Bitti" msgstr "Bitti"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Kilit ekranınızı seçin"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Kilit ekranınız"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Masaüstünüz kilit ekranını seçtiğiniz bir programa bırakır. face unlock'un "
"orada nasıl görüneceğini seçin. Bunu daha sonra Ayarlar'dan "
"değiştirebilirsiniz."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "face-unlock'un kilit ekranı"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"Üstte baloncuk, saat ve duvar kağıdınız. Kısayolunuz ve boşta kilitleme o "
"zaman face-unlock lock çalıştırır."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Kilit ekranınızı koruyun"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Olduğu gibi kalır. hyprlock baloncuk yerine üstte bir satır metin gösterir. "
"Boş parola alanında Enter tarama yapar."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Olduğu gibi kalır, baloncuk olmadan. Boş parola alanında Enter tarama yapar."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Devam"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Parola" msgstr "Parola"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Kameraya bakın ya da parolanızı yazın" msgstr "Kameraya bakın ya da parolanızı yazın"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Parolanızı yazın" msgstr "Parolanızı yazın"
+255 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Ukrainian\n" "Language-Team: Ukrainian\n"
@@ -59,8 +59,9 @@ msgstr "Обличчя не додано."
msgid "First, set up your face." msgid "First, set up your face."
msgstr "Спершу налаштуйте своє обличчя." msgstr "Спершу налаштуйте своє обличчя."
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "Не вдалося зберегти налаштування." msgstr "Не вдалося зберегти налаштування."
@@ -82,7 +83,15 @@ msgstr "Не вдалося увімкнути розширення GNOME, як
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Вийдіть і увійдіть знову один раз: тоді GNOME теж покаже бульбашку." msgstr "Вийдіть і увійдіть знову один раз: тоді GNOME теж покаже бульбашку."
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "Виберіть екран блокування у вікні."
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "Екран блокування не вибрано. Це можна зробити пізніше в Налаштуваннях."
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,103 +100,103 @@ msgstr ""
"Екран блокування (%s) теж приймає ваше обличчя. Якщо він не сканує, коли ви " "Екран блокування (%s) теж приймає ваше обличчя. Якщо він не сканує, коли ви "
"повертаєтеся, натисніть Enter у порожньому полі пароля." "повертаєтеся, натисніть Enter у порожньому полі пароля."
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "" msgstr ""
"Розблокування обличчям увімкнено. Заблокуйте екран і подивіться на нього, " "Розблокування обличчям увімкнено. Заблокуйте екран і подивіться на нього, "
"щоб спробувати." "щоб спробувати."
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "" msgstr ""
"Воно працює і для sudo, і для запитів адміністратора. Див. Налаштування." "Воно працює і для sudo, і для запитів адміністратора. Див. Налаштування."
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "" msgstr ""
"Розблокування обличчям вимкнено. Ваші обличчя збережено; видалити їх можна в " "Розблокування обличчям вимкнено. Ваші обличчя збережено; видалити їх можна в "
"розділі Обличчя." "розділі Обличчя."
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "Ще не налаштовано жодного обличчя." msgstr "Ще не налаштовано жодного обличчя."
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "увімк." msgstr "увімк."
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "вимк." msgstr "вимк."
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "зразків: %s, вивчено: %s" msgstr "зразків: %s, вивчено: %s"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "Яке обличчя? Номери показує `%s faces`." msgstr "Яке обличчя? Номери показує `%s faces`."
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "Видалено." msgstr "Видалено."
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "Використання: face-unlock [команда]" msgstr "Використання: face-unlock [команда]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "Команди:" msgstr "Команди:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "Увімкнути розблокування обличчям" msgstr "Увімкнути розблокування обличчям"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "Вимкнути його (обличчя зберігаються)" msgstr "Вимкнути його (обличчя зберігаються)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "Додати обличчя" msgstr "Додати обличчя"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "Показати список облич" msgstr "Показати список облич"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "Видалити обличчя" msgstr "Видалити обличчя"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "Подивитися в камеру і побачити, що вона бачить" msgstr "Подивитися в камеру і побачити, що вона бачить"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "Заблокувати екран" msgstr "Заблокувати екран"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "Показати, що увімкнено" msgstr "Показати, що увімкнено"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "Показати цю довідку" msgstr "Показати цю довідку"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "Показати версію" msgstr "Показати версію"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "Без команди відкривається інтерактивне меню." msgstr "Без команди відкривається інтерактивне меню."
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
@@ -195,42 +204,42 @@ msgstr ""
"Запускайте це від свого користувача, не від root. Пароль буде запитано, коли " "Запускайте це від свого користувача, не від root. Пароль буде запитано, коли "
"він знадобиться." "він знадобиться."
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "Невідома команда: %s" msgstr "Невідома команда: %s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "ніколи" msgstr "ніколи"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "щойно" msgstr "щойно"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 хвилину тому" msgstr "1 хвилину тому"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d хв тому" msgstr "%d хв тому"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 годину тому" msgstr "1 годину тому"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d год тому" msgstr "%d год тому"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 день тому" msgstr "1 день тому"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d дн. тому" msgstr "%d дн. тому"
@@ -270,7 +279,7 @@ msgstr ""
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "Не вдалося використати камеру." msgstr "Не вдалося використати камеру."
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "Немає моделей розпізнавання. Перевстановіть пакунок." msgstr "Немає моделей розпізнавання. Перевстановіть пакунок."
@@ -374,11 +383,11 @@ msgstr ""
msgid "[y/N]" msgid "[y/N]"
msgstr "[т/Н]" msgstr "[т/Н]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "УВІМК" msgstr "УВІМК"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "ВИМК" msgstr "ВИМК"
@@ -419,85 +428,93 @@ msgstr "повільна"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s с" msgstr "%s с"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "автоматично" msgstr "автоматично"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "ваш"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "Розблокування обличчям" msgstr "Розблокування обличчям"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "Служба" msgstr "Служба"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "не запущена" msgstr "не запущена"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "Повторне ввімкнення розблокування обличчям запустить її." msgstr "Повторне ввімкнення розблокування обличчям запустить її."
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "Обличчя" msgstr "Обличчя"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "ще не налаштовано" msgstr "ще не налаштовано"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "усі вимкнено" msgstr "усі вимкнено"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "не знайдено" msgstr "не знайдено"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "Камера" msgstr "Камера"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "Екран блокування" msgstr "Екран блокування"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "Запити адміністратора" msgstr "Запити адміністратора"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "Екрани блокування" msgstr "Екрани блокування"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "Перевірка на фото" msgstr "Перевірка на фото"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "Призупинено" msgstr "Призупинено"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "ще %d хв або до введення пароля" msgstr "ще %d хв або до введення пароля"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "Останнє розблокування" msgstr "Останнє розблокування"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "Агент екрана блокування не запущено." msgstr "Агент екрана блокування не запущено."
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
@@ -505,7 +522,7 @@ msgstr ""
"У GNOME бульбашку показує невелике розширення GNOME. Воно вмикається разом " "У GNOME бульбашку показує невелике розширення GNOME. Воно вмикається разом "
"із розблокуванням обличчям." "із розблокуванням обличчям."
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -515,7 +532,7 @@ msgstr ""
"блокування face-unlock (`face-unlock lock`, з бульбашкою), і відкриває їх. " "блокування face-unlock (`face-unlock lock`, з бульбашкою), і відкриває їх. "
"Інші екрани блокування сканують за Enter." "Інші екрани блокування сканують за Enter."
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
@@ -523,7 +540,7 @@ msgstr ""
"Розблоковує екран блокування, коли бачить ваше обличчя. Вимк.: там працює " "Розблоковує екран блокування, коли бачить ваше обличчя. Вимк.: там працює "
"лише пароль." "лише пароль."
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
@@ -531,7 +548,7 @@ msgstr ""
"Сканує, коли ви натискаєте клавішу або рухаєте мишею на екрані блокування, і " "Сканує, коли ви натискаєте клавішу або рухаєте мишею на екрані блокування, і "
"коли комп'ютер прокидається." "коли комп'ютер прокидається."
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
@@ -539,7 +556,7 @@ msgstr ""
"Сканує одразу після блокування екрана. Типово вимк.: якщо ви блокуєте самі, " "Сканує одразу після блокування екрана. Типово вимк.: якщо ви блокуєте самі, "
"він одразу б розблокувався." "він одразу б розблокувався."
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
@@ -547,7 +564,17 @@ msgstr ""
"sudo приймає ваше обличчя замість пароля. Не збіглося: ви вводите пароль як " "sudo приймає ваше обличчя замість пароля. Не збіглося: ви вводите пароль як "
"зазвичай." "зазвичай."
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"Екран блокування face-unlock показує бульбашку, а блокувати потрібно "
"командою `face-unlock lock`. Або залиште свій: тоді hyprlock покаже вгорі "
"рядок тексту. Enter відкриває вибір."
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -557,11 +584,11 @@ msgstr ""
"те, що на робочому столі. Або файл, тека, з якої береться випадкове, або " "те, що на робочому столі. Або файл, тека, з якої береться випадкове, або "
"`none`. Натисніть Enter, щоб ввести." "`none`. Натисніть Enter, щоб ввести."
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Розмиває зображення за екраном блокування face-unlock." msgstr "Розмиває зображення за екраном блокування face-unlock."
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -570,7 +597,7 @@ msgstr ""
"Екран блокування приймає ваше обличчя під час перевірки пароля. Натисніть " "Екран блокування приймає ваше обличчя під час перевірки пароля. Натисніть "
"Enter у порожньому полі, щоб сканувати. Знайдено тут: %s." "Enter у порожньому полі, щоб сканувати. Знайдено тут: %s."
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
@@ -578,17 +605,17 @@ msgstr ""
"Вікна введення пароля робочого столу і програм, наприклад під час " "Вікна введення пароля робочого столу і програм, наприклад під час "
"встановлення програм. Не збіглося: ви вводите пароль." "встановлення програм. Не збіглося: ви вводите пароль."
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "" msgstr ""
"Треба кліпнути або трохи повернути голову. Це також зупиняє надруковані фото." "Треба кліпнути або трохи повернути голову. Це також зупиняє надруковані фото."
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "Жодної перевірки. Лише щоб випробувати камеру." msgstr "Жодної перевірки. Лише щоб випробувати камеру."
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Зупиняє фото на телефоні, планшеті чи глянцевому папері. Кліпати не треба. " "Зупиняє фото на телефоні, планшеті чи глянцевому папері. Кліпати не треба. "
"Матове надруковане фото може пройти." "Матове надруковане фото може пройти."
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "" msgstr ""
"Менше хибних збігів, але може не впізнати вас в окулярах або при поганому " "Менше хибних збігів, але може не впізнати вас в окулярах або при поганому "
"світлі." "світлі."
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Впізнає вас легше, але й того, хто дуже на вас схожий." msgstr "Впізнає вас легше, але й того, хто дуже на вас схожий."
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "Типове значення. Підходить більшості." msgstr "Типове значення. Підходить більшості."
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Ваші очі мають бути розплющені й дивитися на екран. Так він не " "Ваші очі мають бути розплющені й дивитися на екран. Так він не "
"розблокується, коли ви дивитеся вбік або спите." "розблокується, коли ви дивитеся вбік або спите."
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"знову. Інфрачервоній камері потрібне ввімкнене підсвічування (linux-enable-" "знову. Інфрачервоній камері потрібне ввімкнене підсвічування (linux-enable-"
"ir-emitter)." "ir-emitter)."
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "Як довго камера шукає ваше обличчя, перш ніж здатися." msgstr "Як довго камера шукає ваше обличчя, перш ніж здатися."
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"Після впевненого збігу запам'ятовує, як ви виглядаєте зараз. Нова зачіска чи " "Після впевненого збігу запам'ятовує, як ви виглядаєте зараз. Нова зачіска чи "
"окуляри не потребують нового налаштування." "окуляри не потребують нового налаштування."
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
@@ -648,99 +675,99 @@ msgstr ""
"Без сканування, коли ноутбук закрито, наприклад за столом із зовнішнім " "Без сканування, коли ноутбук закрито, наприклад за столом із зовнішнім "
"монітором." "монітором."
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Бульбашка вгорі екрана показує, що робить камера." msgstr "Бульбашка вгорі екрана показує, що робить камера."
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "Маленька пігулка із замком, що відкривається." msgstr "Маленька пігулка із замком, що відкривається."
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "Острів з обличчям, яке озирається, потім кільця і галочка." msgstr "Острів з обличчям, яке озирається, потім кільця і галочка."
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "Як швидко рухається бульбашка." msgstr "Як швидко рухається бульбашка."
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "" msgstr ""
"Показує бульбашку й тоді, коли sudo або запит адміністратора сканує ваше " "Показує бульбашку й тоді, коли sudo або запит адміністратора сканує ваше "
"обличчя." "обличчя."
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "автоматично (%s)" msgstr "автоматично (%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(інфрачервона)" msgstr "(інфрачервона)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(не під'єднана)" msgstr "(не під'єднана)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "як на робочому столі" msgstr "як на робочому столі"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "немає" msgstr "немає"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "Зображення або тека:" msgstr "Зображення або тека:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "Не знайдено: %s" msgstr "Не знайдено: %s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "Налаштування" msgstr "Налаштування"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ вибір ←→ або Пробіл: змінити q: назад" msgstr "↑↓ вибір ←→ або Пробіл: змінити q: назад"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "для всіх користувачів, запитує пароль" msgstr "для всіх користувачів, запитує пароль"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "" msgstr ""
"Вгору/Вниз: вибір, Пробіл: увімк./вимк., r: перейменувати, d: видалити, a: " "Вгору/Вниз: вибір, Пробіл: увімк./вимк., r: перейменувати, d: видалити, a: "
"додати, q: назад" "додати, q: назад"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "Ще не налаштовано жодного обличчя. Натисніть a, щоб додати." msgstr "Ще не налаштовано жодного обличчя. Натисніть a, щоб додати."
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "Нова назва:" msgstr "Нова назва:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "Видалити «%s»?" msgstr "Видалити «%s»?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "Увімкнути або вимкнути розблокування обличчям" msgstr "Увімкнути або вимкнути розблокування обличчям"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "Спробувати" msgstr "Спробувати"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "Вийти" msgstr "Вийти"
@@ -786,6 +813,52 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:" "Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland сам не запускає агент екрана блокування. Додайте це до %s:" msgstr "Hyprland сам не запускає агент екрана блокування. Додайте це до %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "Щоб блокувати ним, додайте це до %s і вкажіть %s у %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr ""
"Щоб блокувати ним, додайте це до binds у %s і використовуйте %s у swayidle:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr ""
"Щоб блокувати ним, запускайте %s там, де зараз запускається ваш екран "
"блокування."
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "Тепер ви блокуєте екраном блокування face-unlock."
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr "hyprlock покаже вгорі, що робить face unlock, з наступного блокування."
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "Не вдалося додати рядок до %s."
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr ""
"Ваш екран блокування залишається як є. Натисніть Enter у порожньому полі "
"пароля, щоб сканувати."
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "У hyprlock немає %s, тому він не може показати текст."
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "Розблоковувати обличчям" msgstr "Розблоковувати обличчям"
@@ -798,6 +871,10 @@ msgstr "Сканувати, коли ви повертаєтеся"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "Сканувати одразу після блокування" msgstr "Сканувати одразу після блокування"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "Який екран блокування"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "Шпалери" msgstr "Шпалери"
@@ -964,35 +1041,48 @@ msgstr "Камера зайнята іншим скануванням. Спро
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "Не вдалося додати обличчя (%1)." msgstr "Не вдалося додати обличчя (%1)."
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "Шукаю ваше обличчя…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "Неправильний пароль" msgstr "Неправильний пароль"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "Обличчя розпізнано"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "" msgstr ""
"Розблокування обличчям для екрана блокування, sudo і запитів адміністратора" "Розблокування обличчям для екрана блокування, sudo і запитів адміністратора"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "Налаштувати обличчя." msgstr "Налаштувати обличчя."
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "Як назвати нове обличчя." msgstr "Як назвати нове обличчя."
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "Заблокувати екран." msgstr "Заблокувати екран."
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "Один раз програти анімації бульбашки." msgstr "Один раз програти анімації бульбашки."
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "Стиль бульбашки для демо: full або minimal." msgstr "Стиль бульбашки для демо: full або minimal."
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "Питає, який екран блокування використовувати, і виводить відповідь."
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "Подивіться в камеру, щоб розблокувати." msgstr "Подивіться в камеру, щоб розблокувати."
@@ -1052,7 +1142,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "Назва (необов'язково)" msgstr "Назва (необов'язково)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "Скасувати" msgstr "Скасувати"
@@ -1072,14 +1162,66 @@ msgstr "Почати"
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "Вибір екрана блокування"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "Ваш екран блокування"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"Ваша стільниця залишає екран блокування програмі на ваш вибір. Виберіть, як "
"там виглядатиме face unlock. Це можна змінити пізніше в Налаштуваннях."
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "Екран блокування face-unlock"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"Бульбашка вгорі, час і ваші шпалери. Ваше сполучення клавіш і блокування "
"через бездіяльність тоді запускають face-unlock lock."
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "Залишити свій екран блокування"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"Він залишається як є. hyprlock показує вгорі рядок тексту замість бульбашки. "
"Enter у порожньому полі пароля запускає сканування."
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr ""
"Він залишається як є, без бульбашки. Enter у порожньому полі пароля запускає "
"сканування."
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "Продовжити"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "Подивіться в камеру або введіть пароль" msgstr "Подивіться в камеру або введіть пароль"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "Введіть пароль" msgstr "Введіть пароль"
+246 -113
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n" "Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n" "Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
"POT-Creation-Date: 2026-09-26 19:35+0200\n" "POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n" "PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n" "Last-Translator: Felitendo\n"
"Language-Team: Chinese (simplified)\n" "Language-Team: Chinese (simplified)\n"
@@ -53,8 +53,9 @@ msgstr "没有添加人脸。"
msgid "First, set up your face." msgid "First, set up your face."
msgstr "请先设置你的人脸。" msgstr "请先设置你的人脸。"
#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500 #: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512 #: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting." msgid "Could not save the setting."
msgstr "无法保存设置。" msgstr "无法保存设置。"
@@ -74,7 +75,15 @@ msgstr "无法启用显示气泡的 GNOME 扩展。"
msgid "Log out and back in once: then GNOME shows the bubble too." msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "请注销并重新登录一次:之后 GNOME 也会显示气泡。" msgstr "请注销并重新登录一次:之后 GNOME 也会显示气泡。"
#: src/face-unlock:129 #: src/face-unlock:131
msgid "Pick your lock screen in the window."
msgstr "请在窗口中选择锁屏。"
#: src/face-unlock:132
msgid "No lock screen picked. You can do it later under Settings."
msgstr "未选择锁屏。之后可以在设置中选择。"
#: src/face-unlock:135
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come " "The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -82,139 +91,139 @@ msgid ""
msgstr "" msgstr ""
"锁屏(%s)也接受你的人脸。如果你回来时它没有扫描,请在空的密码框中按 Enter。" "锁屏(%s)也接受你的人脸。如果你回来时它没有扫描,请在空的密码框中按 Enter。"
#: src/face-unlock:132 #: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try." msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "人脸解锁已开启。锁定屏幕并看着它来试试。" msgstr "人脸解锁已开启。锁定屏幕并看着它来试试。"
#: src/face-unlock:134 #: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings." msgid "It can do sudo and admin prompts too. See Settings."
msgstr "它也可以用于 sudo 和管理员授权。见“设置”。" msgstr "它也可以用于 sudo 和管理员授权。见“设置”。"
#: src/face-unlock:150 #: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces." msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "人脸解锁已关闭。你的人脸会保留;可在“人脸”中删除。" msgstr "人脸解锁已关闭。你的人脸会保留;可在“人脸”中删除。"
#: src/face-unlock:164 src/lib/daemon.sh:109 #: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet." msgid "No face is set up yet."
msgstr "尚未设置任何人脸。" msgstr "尚未设置任何人脸。"
#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664 #: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on" msgid "on"
msgstr "开" msgstr "开"
#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192 #: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
#: src/lib/menu.sh:665 #: src/lib/menu.sh:686
msgid "off" msgid "off"
msgstr "关" msgstr "关"
#: src/face-unlock:170 src/lib/menu.sh:682 #: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format #, sh-printf-format
msgid "%s samples, %s learned" msgid "%s samples, %s learned"
msgstr "%s 个样本,已学习 %s 个" msgstr "%s 个样本,已学习 %s 个"
#: src/face-unlock:176 #: src/face-unlock:182
#, sh-printf-format #, sh-printf-format
msgid "Which face? See `%s faces` for the ids." msgid "Which face? See `%s faces` for the ids."
msgstr "哪张人脸?用 `%s faces` 查看 ID。" msgstr "哪张人脸?用 `%s faces` 查看 ID。"
#: src/face-unlock:180 #: src/face-unlock:186
msgid "Deleted." msgid "Deleted."
msgstr "已删除。" msgstr "已删除。"
#: src/face-unlock:191 #: src/face-unlock:197
msgid "Usage: face-unlock [command]" msgid "Usage: face-unlock [command]"
msgstr "用法:face-unlock [命令]" msgstr "用法:face-unlock [命令]"
#: src/face-unlock:193 #: src/face-unlock:199
msgid "Commands:" msgid "Commands:"
msgstr "命令:" msgstr "命令:"
#: src/face-unlock:194 #: src/face-unlock:200
msgid "Turn face unlock on" msgid "Turn face unlock on"
msgstr "开启人脸解锁" msgstr "开启人脸解锁"
#: src/face-unlock:195 #: src/face-unlock:201
msgid "Turn it off (faces are kept)" msgid "Turn it off (faces are kept)"
msgstr "关闭(保留人脸)" msgstr "关闭(保留人脸)"
#: src/face-unlock:196 src/lib/menu.sh:748 #: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face" msgid "Add a face"
msgstr "添加人脸" msgstr "添加人脸"
#: src/face-unlock:197 #: src/face-unlock:203
msgid "List the faces" msgid "List the faces"
msgstr "列出人脸" msgstr "列出人脸"
#: src/face-unlock:198 #: src/face-unlock:204
msgid "Delete a face" msgid "Delete a face"
msgstr "删除人脸" msgstr "删除人脸"
#: src/face-unlock:199 #: src/face-unlock:205
msgid "Look at the camera and see what it sees" msgid "Look at the camera and see what it sees"
msgstr "看着摄像头,查看它看到的画面" msgstr "看着摄像头,查看它看到的画面"
#: src/face-unlock:200 #: src/face-unlock:206
msgid "Lock the screen" msgid "Lock the screen"
msgstr "锁定屏幕" msgstr "锁定屏幕"
#: src/face-unlock:201 #: src/face-unlock:207
msgid "Show what is on" msgid "Show what is on"
msgstr "显示已开启的功能" msgstr "显示已开启的功能"
#: src/face-unlock:202 #: src/face-unlock:208
msgid "Show this help" msgid "Show this help"
msgstr "显示此帮助" msgstr "显示此帮助"
#: src/face-unlock:203 #: src/face-unlock:209
msgid "Show the version" msgid "Show the version"
msgstr "显示版本" msgstr "显示版本"
#: src/face-unlock:205 #: src/face-unlock:211
msgid "Without a command an interactive menu is shown." msgid "Without a command an interactive menu is shown."
msgstr "不带命令时显示交互式菜单。" msgstr "不带命令时显示交互式菜单。"
#: src/face-unlock:224 #: src/face-unlock:230
msgid "" msgid ""
"Run this as your own user, not as root. It asks for your password when it " "Run this as your own user, not as root. It asks for your password when it "
"needs to." "needs to."
msgstr "请以你自己的用户运行,不要用 root。需要时会询问你的密码。" msgstr "请以你自己的用户运行,不要用 root。需要时会询问你的密码。"
#: src/face-unlock:247 src/lib/system.sh:101 #: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format #, sh-printf-format
msgid "Unknown command: %s" msgid "Unknown command: %s"
msgstr "未知命令:%s" msgstr "未知命令:%s"
#: src/lib/common.sh:171 #: src/lib/common.sh:173
msgid "never" msgid "never"
msgstr "从未" msgstr "从未"
#: src/lib/common.sh:181 #: src/lib/common.sh:183
msgid "just now" msgid "just now"
msgstr "刚刚" msgstr "刚刚"
#: src/lib/common.sh:183 #: src/lib/common.sh:185
msgid "1 minute ago" msgid "1 minute ago"
msgstr "1 分钟前" msgstr "1 分钟前"
#: src/lib/common.sh:186 #: src/lib/common.sh:188
#, sh-printf-format #, sh-printf-format
msgid "%d minutes ago" msgid "%d minutes ago"
msgstr "%d 分钟前" msgstr "%d 分钟前"
#: src/lib/common.sh:188 #: src/lib/common.sh:190
msgid "1 hour ago" msgid "1 hour ago"
msgstr "1 小时前" msgstr "1 小时前"
#: src/lib/common.sh:191 #: src/lib/common.sh:193
#, sh-printf-format #, sh-printf-format
msgid "%d hours ago" msgid "%d hours ago"
msgstr "%d 小时前" msgstr "%d 小时前"
#: src/lib/common.sh:193 #: src/lib/common.sh:195
msgid "1 day ago" msgid "1 day ago"
msgstr "1 天前" msgstr "1 天前"
#: src/lib/common.sh:196 #: src/lib/common.sh:198
#, sh-printf-format #, sh-printf-format
msgid "%d days ago" msgid "%d days ago"
msgstr "%d 天前" msgstr "%d 天前"
@@ -252,7 +261,7 @@ msgstr "尝试次数过多,人脸解锁已暂停。请用密码解锁一次。
msgid "The camera could not be used." msgid "The camera could not be used."
msgstr "无法使用摄像头。" msgstr "无法使用摄像头。"
#: src/lib/daemon.sh:111 src/lib/menu.sh:265 #: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package." msgid "The recognition models are missing. Reinstall the package."
msgstr "缺少识别模型。请重新安装软件包。" msgstr "缺少识别模型。请重新安装软件包。"
@@ -354,11 +363,11 @@ msgstr "尝试次数过多。人脸解锁已暂停,直到你用密码解锁。
msgid "[y/N]" msgid "[y/N]"
msgstr "[y/N]" msgstr "[y/N]"
#: src/lib/menu.sh:172 src/lib/menu.sh:566 #: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON" msgid "ON"
msgstr "开启" msgstr "开启"
#: src/lib/menu.sh:174 src/lib/menu.sh:567 #: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF" msgid "OFF"
msgstr "关闭" msgstr "关闭"
@@ -399,92 +408,100 @@ msgstr "慢"
msgid "%s seconds" msgid "%s seconds"
msgstr "%s 秒" msgstr "%s 秒"
#: src/lib/menu.sh:202 src/lib/menu.sh:447 #: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic" msgid "automatic"
msgstr "自动" msgstr "自动"
#: src/lib/menu.sh:219 #: src/lib/menu.sh:203
msgid "face-unlock's"
msgstr "face-unlock 的"
#: src/lib/menu.sh:204
msgid "yours"
msgstr "你自己的"
#: src/lib/menu.sh:221
msgid "Face unlock" msgid "Face unlock"
msgstr "人脸解锁" msgstr "人脸解锁"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "Service" msgid "Service"
msgstr "服务" msgstr "服务"
#: src/lib/menu.sh:223 #: src/lib/menu.sh:225
msgid "not running" msgid "not running"
msgstr "未运行" msgstr "未运行"
#: src/lib/menu.sh:225 #: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it." msgid "Turning face unlock on again starts it."
msgstr "重新开启人脸解锁即可启动它。" msgstr "重新开启人脸解锁即可启动它。"
#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660 #: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
#: src/lib/menu.sh:749 #: src/lib/menu.sh:770
msgid "Faces" msgid "Faces"
msgstr "人脸" msgstr "人脸"
#: src/lib/menu.sh:236 #: src/lib/menu.sh:238
msgid "none set up yet" msgid "none set up yet"
msgstr "尚未设置" msgstr "尚未设置"
#: src/lib/menu.sh:238 #: src/lib/menu.sh:240
msgid "all turned off" msgid "all turned off"
msgstr "全部关闭" msgstr "全部关闭"
#: src/lib/menu.sh:244 #: src/lib/menu.sh:246
msgid "none found" msgid "none found"
msgstr "未找到" msgstr "未找到"
#: src/lib/menu.sh:246 src/lib/menu.sh #: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera" msgid "Camera"
msgstr "摄像头" msgstr "摄像头"
#: src/lib/menu.sh:248 src/lib/menu.sh #: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen" msgid "Lock screen"
msgstr "锁屏" msgstr "锁屏"
#: src/lib/menu.sh:252 #: src/lib/menu.sh:254
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: src/lib/menu.sh:253 src/lib/menu.sh #: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts" msgid "Admin prompts"
msgstr "管理员授权" msgstr "管理员授权"
#: src/lib/menu.sh:255 src/lib/menu.sh #: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens" msgid "Lock screens"
msgstr "锁屏" msgstr "锁屏"
#: src/lib/menu.sh:257 src/lib/menu.sh #: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check" msgid "Photo check"
msgstr "照片检测" msgstr "照片检测"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
msgid "Paused" msgid "Paused"
msgstr "已暂停" msgstr "已暂停"
#: src/lib/menu.sh:260 #: src/lib/menu.sh:262
#, sh-printf-format #, sh-printf-format
msgid "for %d more minutes, or until the password is used" msgid "for %d more minutes, or until the password is used"
msgstr "还有 %d 分钟,或直到使用密码" msgstr "还有 %d 分钟,或直到使用密码"
#: src/lib/menu.sh:262 #: src/lib/menu.sh:264
msgid "Last unlock" msgid "Last unlock"
msgstr "上次解锁" msgstr "上次解锁"
#: src/lib/menu.sh:268 #: src/lib/menu.sh:270
msgid "The lock screen agent is not running." msgid "The lock screen agent is not running."
msgstr "锁屏代理没有运行。" msgstr "锁屏代理没有运行。"
#: src/lib/menu.sh:318 #: src/lib/menu.sh:322
msgid "" msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on " "On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on." "switches it on."
msgstr "" msgstr ""
"在 GNOME 上,由一个小的 GNOME 扩展显示气泡。开启人脸解锁时会一并开启它。" "在 GNOME 上,由一个小的 GNOME 扩展显示气泡。开启人脸解锁时会一并开启它。"
#: src/lib/menu.sh:322 #: src/lib/menu.sh:326
msgid "" msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock " "Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock " "screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -493,31 +510,40 @@ msgstr ""
"回到 hyprlock、swaylock 或 face-unlock 自带的锁屏(`face-unlock lock`,带气" "回到 hyprlock、swaylock 或 face-unlock 自带的锁屏(`face-unlock lock`,带气"
"泡)时扫描并打开它们。其他锁屏按 Enter 扫描。" "泡)时扫描并打开它们。其他锁屏按 Enter 扫描。"
#: src/lib/menu.sh:327 #: src/lib/menu.sh:331
msgid "" msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password " "Unlocks the lock screen when it sees your face. Off: only your password "
"works there." "works there."
msgstr "看到你的脸时解锁锁屏。关闭:锁屏只能用密码。" msgstr "看到你的脸时解锁锁屏。关闭:锁屏只能用密码。"
#: src/lib/menu.sh:328 #: src/lib/menu.sh:332
msgid "" msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when " "Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up." "the computer wakes up."
msgstr "在锁屏上按键或移动鼠标时,以及电脑唤醒时扫描。" msgstr "在锁屏上按键或移动鼠标时,以及电脑唤醒时扫描。"
#: src/lib/menu.sh:329 #: src/lib/menu.sh:333
msgid "" msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, " "Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away." "it would unlock again right away."
msgstr "屏幕一锁定就扫描。默认关闭:如果是你自己锁的屏,它会马上又解锁。" msgstr "屏幕一锁定就扫描。默认关闭:如果是你自己锁的屏,它会马上又解锁。"
#: src/lib/menu.sh:330 #: src/lib/menu.sh:334
msgid "" msgid ""
"sudo takes your face instead of the password. No match: you type the " "sudo takes your face instead of the password. No match: you type the "
"password as usual." "password as usual."
msgstr "sudo 用你的脸代替密码。不匹配时,照常输入密码。" msgstr "sudo 用你的脸代替密码。不匹配时,照常输入密码。"
#: src/lib/menu.sh:331 #: src/lib/menu.sh:335
msgid ""
"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
"opens the choice."
msgstr ""
"face-unlock 的锁屏会显示气泡,用 `face-unlock lock` 锁屏。也可以保留你自己"
"的:hyprlock 会在顶部显示一行文字。按 Enter 打开选择。"
#: src/lib/menu.sh:336
msgid "" msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). " "The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at " "Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -526,11 +552,11 @@ msgstr ""
"face-unlock 锁屏(`face-unlock lock`)背后的图片。留空:用桌面的图片。或者一" "face-unlock 锁屏(`face-unlock lock`)背后的图片。留空:用桌面的图片。或者一"
"个文件、从中随机挑选的文件夹,或 `none`。按 Enter 输入。" "个文件、从中随机挑选的文件夹,或 `none`。按 Enter 输入。"
#: src/lib/menu.sh:332 #: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen." msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "模糊 face-unlock 锁屏背后的图片。" msgstr "模糊 face-unlock 锁屏背后的图片。"
#: src/lib/menu.sh:333 #: src/lib/menu.sh:338
#, sh-printf-format #, sh-printf-format
msgid "" msgid ""
"The lock screen takes your face in its password check. Press Enter on the " "The lock screen takes your face in its password check. Press Enter on the "
@@ -538,47 +564,47 @@ msgid ""
msgstr "" msgstr ""
"锁屏在检查密码时也接受你的人脸。在空白框中按 Enter 即可扫描。此处找到:%s。" "锁屏在检查密码时也接受你的人脸。在空白框中按 Enter 即可扫描。此处找到:%s。"
#: src/lib/menu.sh:334 #: src/lib/menu.sh:339
msgid "" msgid ""
"The password windows of your desktop and apps, for example when you install " "The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password." "software. No match: you type the password."
msgstr "桌面和应用的密码窗口,例如安装软件时。不匹配时,输入密码即可。" msgstr "桌面和应用的密码窗口,例如安装软件时。不匹配时,输入密码即可。"
#: src/lib/menu.sh:335 #: src/lib/menu.sh:340
msgid "" msgid ""
"You have to blink or turn your head a little. This also stops printed photos." "You have to blink or turn your head a little. This also stops printed photos."
msgstr "你需要眨眼或稍微转头。这也能挡住打印的照片。" msgstr "你需要眨眼或稍微转头。这也能挡住打印的照片。"
#: src/lib/menu.sh:336 #: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera." msgid "No check at all. Only for trying out a camera."
msgstr "完全不检测。仅用于试用摄像头。" msgstr "完全不检测。仅用于试用摄像头。"
#: src/lib/menu.sh:337 #: src/lib/menu.sh:342
msgid "" msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. " "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through." "A matte printed photo can get through."
msgstr "挡住手机、平板或光面纸上的照片。无需眨眼。哑光纸打印的照片可能会通过。" msgstr "挡住手机、平板或光面纸上的照片。无需眨眼。哑光纸打印的照片可能会通过。"
#: src/lib/menu.sh:338 #: src/lib/menu.sh:343
msgid "" msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light." "Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "误认更少,但戴眼镜或光线不好时可能认不出你。" msgstr "误认更少,但戴眼镜或光线不好时可能认不出你。"
#: src/lib/menu.sh:339 #: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you." msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "更容易认出你,但也更容易认出和你长得很像的人。" msgstr "更容易认出你,但也更容易认出和你长得很像的人。"
#: src/lib/menu.sh:340 #: src/lib/menu.sh:345
msgid "The default. Right for most people." msgid "The default. Right for most people."
msgstr "默认值。适合大多数人。" msgstr "默认值。适合大多数人。"
#: src/lib/menu.sh:341 #: src/lib/menu.sh:346
msgid "" msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you " "Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep." "look away or sleep."
msgstr "你的眼睛必须睁开并看着屏幕。这样你看向别处或睡着时不会解锁。" msgstr "你的眼睛必须睁开并看着屏幕。这样你看向别处或睡着时不会解锁。"
#: src/lib/menu.sh:342 #: src/lib/menu.sh:347
msgid "" msgid ""
"Automatic takes the first normal camera. After a change, set up your face " "Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)." "again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -586,111 +612,111 @@ msgstr ""
"“自动”会使用第一个普通摄像头。更换后请重新设置人脸。红外摄像头需要打开它的补" "“自动”会使用第一个普通摄像头。更换后请重新设置人脸。红外摄像头需要打开它的补"
"光灯(linux-enable-ir-emitter)。" "光灯(linux-enable-ir-emitter)。"
#: src/lib/menu.sh:343 #: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up." msgid "How long the camera looks for your face before it gives up."
msgstr "摄像头寻找你的脸多久后放弃。" msgstr "摄像头寻找你的脸多久后放弃。"
#: src/lib/menu.sh:344 #: src/lib/menu.sh:349
msgid "" msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses " "After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup." "need no new setup."
msgstr "确定匹配后,会记住你现在的样子。所以换了发型或戴上眼镜也无需重新设置。" msgstr "确定匹配后,会记住你现在的样子。所以换了发型或戴上眼镜也无需重新设置。"
#: src/lib/menu.sh:345 #: src/lib/menu.sh:350
msgid "" msgid ""
"No scan while the laptop is closed, for example at a desk with an external " "No scan while the laptop is closed, for example at a desk with an external "
"screen." "screen."
msgstr "笔记本合上时不扫描,例如在接了外接显示器的桌前。" msgstr "笔记本合上时不扫描,例如在接了外接显示器的桌前。"
#: src/lib/menu.sh:346 #: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing." msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "屏幕顶部的气泡显示摄像头正在做什么。" msgstr "屏幕顶部的气泡显示摄像头正在做什么。"
#: src/lib/menu.sh:347 #: src/lib/menu.sh:352
msgid "A small pill with a lock that opens." msgid "A small pill with a lock that opens."
msgstr "一个带锁的小药丸,锁会打开。" msgstr "一个带锁的小药丸,锁会打开。"
#: src/lib/menu.sh:348 #: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick." msgid "An island with a face that looks around, then rings and a tick."
msgstr "一个岛,里面有一张四处张望的脸,然后是圆环和一个对勾。" msgstr "一个岛,里面有一张四处张望的脸,然后是圆环和一个对勾。"
#: src/lib/menu.sh:349 #: src/lib/menu.sh:354
msgid "How fast the bubble moves." msgid "How fast the bubble moves."
msgstr "气泡移动的速度。" msgstr "气泡移动的速度。"
#: src/lib/menu.sh:350 #: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too." msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo 或管理员授权扫描你的脸时也显示气泡。" msgstr "sudo 或管理员授权扫描你的脸时也显示气泡。"
#: src/lib/menu.sh:443 #: src/lib/menu.sh:448
#, sh-printf-format #, sh-printf-format
msgid "automatic (%s)" msgid "automatic (%s)"
msgstr "自动(%s)" msgstr "自动(%s)"
#: src/lib/menu.sh:453 #: src/lib/menu.sh:458
msgid "(infrared)" msgid "(infrared)"
msgstr "(红外)" msgstr "(红外)"
#: src/lib/menu.sh:457 #: src/lib/menu.sh:462
msgid "(not connected)" msgid "(not connected)"
msgstr "(未连接)" msgstr "(未连接)"
#: src/lib/menu.sh:466 #: src/lib/menu.sh:471
msgid "same as desktop" msgid "same as desktop"
msgstr "与桌面相同" msgstr "与桌面相同"
#: src/lib/menu.sh:470 #: src/lib/menu.sh:475
msgid "none" msgid "none"
msgstr "无" msgstr "无"
#: src/lib/menu.sh:487 #: src/lib/menu.sh:504
msgid "Picture or folder:" msgid "Picture or folder:"
msgstr "图片或文件夹:" msgstr "图片或文件夹:"
#: src/lib/menu.sh:492 #: src/lib/menu.sh:509
#, sh-printf-format #, sh-printf-format
msgid "Not found: %s" msgid "Not found: %s"
msgstr "未找到:%s" msgstr "未找到:%s"
#: src/lib/menu.sh:563 src/lib/menu.sh:750 #: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings" msgid "Settings"
msgstr "设置" msgstr "设置"
#: src/lib/menu.sh:564 #: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back" msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 选择 ←→ 或空格:更改 q:返回" msgstr "↑↓ 选择 ←→ 或空格:更改 q:返回"
#: src/lib/menu.sh:565 #: src/lib/menu.sh:582
msgid "for all users, asks for your password" msgid "for all users, asks for your password"
msgstr "对所有用户生效,需要你的密码" msgstr "对所有用户生效,需要你的密码"
#. TRANSLATORS: keep the letters, they are the keys. #. TRANSLATORS: keep the letters, they are the keys.
#: src/lib/menu.sh:662 #: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back" msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "上/下:选择,空格:开/关,r:重命名,d:删除,a:添加,q:返回" msgstr "上/下:选择,空格:开/关,r:重命名,d:删除,a:添加,q:返回"
#: src/lib/menu.sh:663 #: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one." msgid "No face is set up yet. Press a to add one."
msgstr "尚未设置任何人脸。按 a 添加。" msgstr "尚未设置任何人脸。按 a 添加。"
#: src/lib/menu.sh:709 #: src/lib/menu.sh:730
msgid "New name:" msgid "New name:"
msgstr "新名称:" msgstr "新名称:"
#: src/lib/menu.sh:716 #: src/lib/menu.sh:737
#, sh-printf-format #, sh-printf-format
msgid "Delete \"%s\"?" msgid "Delete \"%s\"?"
msgstr "删除“%s”?" msgstr "删除“%s”?"
#: src/lib/menu.sh:747 #: src/lib/menu.sh:768
msgid "Turn face unlock on or off" msgid "Turn face unlock on or off"
msgstr "开启或关闭人脸解锁" msgstr "开启或关闭人脸解锁"
#: src/lib/menu.sh:751 #: src/lib/menu.sh:772
msgid "Try it" msgid "Try it"
msgstr "试一试" msgstr "试一试"
#: src/lib/menu.sh:752 #: src/lib/menu.sh:773
msgid "Quit" msgid "Quit"
msgstr "退出" msgstr "退出"
@@ -734,6 +760,47 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:" "Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland 不会自动启动锁屏代理。请把以下内容加入 %s:" msgstr "Hyprland 不会自动启动锁屏代理。请把以下内容加入 %s:"
#: src/lib/system.sh:267 src/lib/system.sh:270
#, sh-printf-format
msgid "To lock with it, add this to %s, and set %s in %s:"
msgstr "要用它锁屏,请把这行加入 %s,并把 %s 写进 %s:"
#: src/lib/system.sh:275
#, sh-printf-format
msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
msgstr "要用它锁屏,请把这行加入 %s 的 binds,并在 swayidle 中使用 %s:"
#: src/lib/system.sh:279
#, sh-printf-format
msgid "To lock with it, run %s where your lock screen is started now."
msgstr "要用它锁屏,请在现在启动锁屏的地方运行 %s。"
#: src/lib/system.sh:292
msgid "You lock with face-unlock's lock screen now."
msgstr "现在用 face-unlock 的锁屏锁定。"
#: src/lib/system.sh:299
msgid ""
"hyprlock shows what face unlock is doing at the top, from the next time it "
"locks."
msgstr "从下次锁屏起,hyprlock 会在顶部显示 face unlock 正在做什么。"
#: src/lib/system.sh:300
#, sh-printf-format
msgid "Could not add the line to %s."
msgstr "无法把这行加入 %s。"
#: src/lib/system.sh:301
msgid ""
"Your lock screen stays as it is. Press Enter on the empty password field to "
"scan."
msgstr "你的锁屏保持不变。在空密码框中按 Enter 即可扫描。"
#: src/lib/system.sh:302
#, sh-printf-format
msgid "hyprlock has no %s, so it cannot show the text."
msgstr "hyprlock 没有 %s,所以无法显示文字。"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Unlock with your face" msgid "Unlock with your face"
msgstr "用人脸解锁" msgstr "用人脸解锁"
@@ -746,6 +813,10 @@ msgstr "你回来时扫描"
msgid "Scan right after locking" msgid "Scan right after locking"
msgstr "锁定后立即扫描" msgstr "锁定后立即扫描"
#: src/lib/menu.sh
msgid "Which lock screen"
msgstr "使用哪个锁屏"
#: src/lib/menu.sh #: src/lib/menu.sh
msgid "Wallpaper" msgid "Wallpaper"
msgstr "壁纸" msgstr "壁纸"
@@ -910,34 +981,47 @@ msgstr "摄像头正忙于另一次扫描。请稍后重试。"
msgid "The face could not be added (%1)." msgid "The face could not be added (%1)."
msgstr "无法添加人脸(%1)。" msgstr "无法添加人脸(%1)。"
#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
#: src/agent/locktext.cpp:45
msgid "Looking for your face…"
msgstr "正在寻找你的脸…"
#: src/agent/lockscreencontroller.cpp:172 #: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password" msgid "Wrong password"
msgstr "密码错误" msgstr "密码错误"
#: src/agent/main.cpp:185 #: src/agent/locktext.cpp:48
msgid "Face recognized"
msgstr "已识别面容"
#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts" msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "用于锁屏、sudo 和管理员授权的人脸解锁" msgstr "用于锁屏、sudo 和管理员授权的人脸解锁"
#: src/agent/main.cpp:188 #: src/agent/main.cpp:247
msgid "Set up a face." msgid "Set up a face."
msgstr "设置一张人脸。" msgstr "设置一张人脸。"
#: src/agent/main.cpp:189 #: src/agent/main.cpp:248
msgid "What to call the new face." msgid "What to call the new face."
msgstr "新人脸的名称。" msgstr "新人脸的名称。"
#: src/agent/main.cpp:190 #: src/agent/main.cpp:249
msgid "Lock the screen." msgid "Lock the screen."
msgstr "锁定屏幕。" msgstr "锁定屏幕。"
#: src/agent/main.cpp:191 #: src/agent/main.cpp:250
msgid "Play the bubble's animations once." msgid "Play the bubble's animations once."
msgstr "播放一次气泡动画。" msgstr "播放一次气泡动画。"
#: src/agent/main.cpp:193 #: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal." msgid "Bubble style for the demo: full or minimal."
msgstr "演示用的气泡样式:full 或 minimal。" msgstr "演示用的气泡样式:full 或 minimal。"
#: src/agent/main.cpp:253
msgid "Ask which lock screen to use, and print the answer."
msgstr "询问使用哪个锁屏,并输出答案。"
#: src/pam/pam_face_unlock.c:356 #: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock." msgid "Look at the camera to unlock."
msgstr "看着摄像头来解锁。" msgstr "看着摄像头来解锁。"
@@ -993,7 +1077,7 @@ msgstr ""
msgid "Name (optional)" msgid "Name (optional)"
msgstr "名称(可选)" msgstr "名称(可选)"
#: src/agent/qml/Enroll.qml:177 #: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
@@ -1013,14 +1097,63 @@ msgstr "开始"
msgid "Done" msgid "Done"
msgstr "完成" msgstr "完成"
#: src/agent/qml/LockScreen.qml:171 #: src/agent/qml/LockChoice.qml:52
msgid "Choose your lock screen"
msgstr "选择锁屏"
#: src/agent/qml/LockChoice.qml:198
msgid "Your lock screen"
msgstr "你的锁屏"
#: src/agent/qml/LockChoice.qml:209
msgid ""
"Your desktop leaves the lock screen to a program of your choice. Pick how "
"face unlock shows up there. You can change it later under Settings."
msgstr ""
"你的桌面把锁屏交给你选择的程序。请选择 face unlock 在那里如何显示。之后可以在"
"设置中更改。"
#: src/agent/qml/LockChoice.qml:232
msgid "face-unlock's lock screen"
msgstr "face-unlock 的锁屏"
#: src/agent/qml/LockChoice.qml:233
msgid ""
"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
"lock then run face-unlock lock."
msgstr ""
"顶部的气泡、时间和你的壁纸。你的快捷键和空闲锁屏会运行 face-unlock lock。"
#: src/agent/qml/LockChoice.qml:240
msgid "Keep your lock screen"
msgstr "保留你的锁屏"
#: src/agent/qml/LockChoice.qml:242
msgid ""
"It stays as it is. hyprlock shows a line of text at the top instead of the "
"bubble. Enter on the empty password field scans."
msgstr ""
"保持不变。hyprlock 会在顶部显示一行文字,代替气泡。在空密码框中按 Enter 即可"
"扫描。"
#: src/agent/qml/LockChoice.qml:243
msgid ""
"It stays as it is, without the bubble. Enter on the empty password field "
"scans."
msgstr "保持不变,没有气泡。在空密码框中按 Enter 即可扫描。"
#: src/agent/qml/LockChoice.qml:260
msgid "Continue"
msgstr "继续"
#: src/agent/qml/LockScreen.qml:180
msgid "Password" msgid "Password"
msgstr "密码" msgstr "密码"
#: src/agent/qml/LockScreen.qml:185 #: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password" msgid "Look at the camera or type your password"
msgstr "看向摄像头或输入密码" msgstr "看向摄像头或输入密码"
#: src/agent/qml/LockScreen.qml:186 #: src/agent/qml/LockScreen.qml:195
msgid "Type your password" msgid "Type your password"
msgstr "输入密码" msgstr "输入密码"
Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

+2 -1
View File
@@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
// The lock screens that are programs of their own and take signals from // The lock screens that are programs of their own and take signals from
// outside: hyprlock, swaylock and gtklock open on SIGUSR1. // outside: hyprlock, swaylock and gtklock open on SIGUSR1, hyprlock reads
// its labels again on SIGUSR2.
#pragma once #pragma once
+647
View File
@@ -0,0 +1,647 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#include "lockpreview.h"
#include <KLocalizedString>
#include <QDateTime>
#include <QDir>
#include <QElapsedTimer>
#include <QFile>
#include <QFileInfo>
#include <QHash>
#include <QProcess>
#include <QRegularExpression>
#include <QPointF>
#include <QStandardPaths>
#include <QTime>
#include <QVariantMap>
#include <algorithm>
#include <pwd.h>
#include <unistd.h>
namespace
{
QString readFile(const QString &path)
{
QFile f(path);
return f.open(QIODevice::ReadOnly | QIODevice::Text) ? QString::fromUtf8(f.readAll()) : QString();
}
QString expandHome(const QString &path)
{
return path == u"~" ? QDir::homePath() : path.startsWith(u"~/") ? QDir::homePath() + path.mid(1) : path;
}
QString configHome()
{
return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
}
// The first file of name under the user's and then the system's config
// directories, as hyprlock and swaylock look for theirs.
QString findConfig(const QString &name)
{
QStringList dirs{configHome()};
dirs += QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation);
for (const QString &dir : std::as_const(dirs)) {
if (QFileInfo::exists(dir + u'/' + name)) {
return dir + u'/' + name;
}
}
return {};
}
bool truthy(const QString &value)
{
return value == u"1" || value.compare(u"true", Qt::CaseInsensitive) == 0 || value.compare(u"yes", Qt::CaseInsensitive) == 0
|| value.compare(u"on", Qt::CaseInsensitive) == 0;
}
// ---------------------------------------------------------------------------
// hyprlang, as far as a lock screen's config needs it
struct Section {
QString name;
QHash<QString, QString> values;
};
// Sections, $variables, source = (with ~ and wildcards, relative to the
// file), and # comments, where ## stands for a #.
class Hyprlang
{
public:
void parse(const QString &path, int depth = 0);
QList<Section> sections;
private:
QString expand(const QString &value) const;
QHash<QString, QString> m_vars;
QList<qsizetype> m_open;
};
QString stripComment(const QString &line)
{
QString out;
for (qsizetype i = 0; i < line.size(); ++i) {
if (line.at(i) == u'#') {
if (i + 1 < line.size() && line.at(i + 1) == u'#') {
out += u'#';
++i;
continue;
}
break;
}
out += line.at(i);
}
return out.trimmed();
}
void Hyprlang::parse(const QString &path, int depth)
{
if (depth > 8) {
return;
}
const QString dir = QFileInfo(path).absolutePath();
const QStringList lines = readFile(path).split(u'\n');
for (const QString &raw : lines) {
const QString line = stripComment(raw);
if (line.isEmpty()) {
continue;
}
if (line == u"}") {
if (!m_open.isEmpty()) {
m_open.removeLast();
}
continue;
}
if (line.endsWith(u'{')) {
sections.append({line.chopped(1).trimmed(), {}});
m_open.append(sections.size() - 1);
continue;
}
const qsizetype eq = line.indexOf(u'=');
if (eq < 0) {
continue;
}
const QString key = line.left(eq).trimmed();
const QString value = expand(line.mid(eq + 1).trimmed());
if (key.startsWith(u'$')) {
m_vars.insert(key.mid(1), value);
} else if (key == u"source" && m_open.isEmpty()) {
const QFileInfo pattern(QDir(dir).absoluteFilePath(expandHome(value)));
const QStringList matches = QDir(pattern.absolutePath()).entryList({pattern.fileName()}, QDir::Files, QDir::Name);
for (const QString &match : matches) {
parse(pattern.absolutePath() + u'/' + match, depth + 1);
}
} else if (!m_open.isEmpty()) {
sections[m_open.last()].values.insert(key, value);
}
}
}
QString Hyprlang::expand(const QString &value) const
{
if (!value.contains(u'$') || m_vars.isEmpty()) {
return value;
}
// Longest first, so $font does not eat the start of $fontsize.
QStringList names = m_vars.keys();
std::sort(names.begin(), names.end(), [](const QString &a, const QString &b) {
return a.size() > b.size();
});
QString out = value;
for (const QString &name : std::as_const(names)) {
out.replace(u'$' + name, m_vars.value(name));
}
return out;
}
// ---------------------------------------------------------------------------
// Values
// "rgba(a, b) rgba(c) 45deg": the colours and the angle.
QVariantMap gradient(const QString &value)
{
QVariantList colors;
double angle = 0;
QString token;
int depth = 0;
const auto flush = [&] {
const QString t = token.trimmed();
token.clear();
if (t.endsWith(u"deg")) {
angle = t.chopped(3).toDouble();
} else if (const QColor c = LockPreview::color(t); c.isValid()) {
colors.append(c);
}
};
for (const QChar ch : value) {
if (ch == u'(') {
++depth;
} else if (ch == u')') {
--depth;
}
if (ch.isSpace() && depth == 0) {
flush();
} else {
token += ch;
}
}
flush();
return {{QStringLiteral("colors"), colors}, {QStringLiteral("angle"), angle}};
}
// "x, y", each in pixels or percent of the screen.
QPointF layout(const QString &value, const QSizeF &screen)
{
const QStringList parts = value.split(u',');
const auto one = [](const QString &part, qreal whole) {
const QString s = part.trimmed();
return s.endsWith(u'%') ? s.chopped(1).toDouble() / 100.0 * whole : s.toDouble();
};
return {one(parts.value(0), screen.width()), one(parts.value(1), screen.height())};
}
// A Pango font description ("Noto Sans Light 12") as family, weight and
// slant.
void font(const QString &description, QVariantMap &into)
{
static const QHash<QString, int> weights{
{QStringLiteral("thin"), 100}, {QStringLiteral("ultra-light"), 200}, {QStringLiteral("extra-light"), 200},
{QStringLiteral("ultralight"), 200}, {QStringLiteral("extralight"), 200}, {QStringLiteral("light"), 300},
{QStringLiteral("semi-light"), 350}, {QStringLiteral("book"), 380}, {QStringLiteral("regular"), 400},
{QStringLiteral("normal"), 400}, {QStringLiteral("medium"), 500}, {QStringLiteral("semi-bold"), 600},
{QStringLiteral("semibold"), 600}, {QStringLiteral("demi-bold"), 600}, {QStringLiteral("demibold"), 600},
{QStringLiteral("bold"), 700}, {QStringLiteral("ultra-bold"), 800}, {QStringLiteral("extra-bold"), 800},
{QStringLiteral("extrabold"), 800}, {QStringLiteral("heavy"), 900}, {QStringLiteral("black"), 900},
};
QStringList words = description.section(u',', 0, 0).split(u' ', Qt::SkipEmptyParts);
int weight = 400;
bool italic = false;
while (words.size() > 1) {
const QString word = words.last().toLower();
bool number = false;
word.toDouble(&number);
if (number) {
words.removeLast();
} else if (word == u"italic" || word == u"oblique") {
italic = true;
words.removeLast();
} else if (weights.contains(word)) {
weight = weights.value(word);
words.removeLast();
} else {
break;
}
}
into.insert(QStringLiteral("family"), words.isEmpty() ? QStringLiteral("Sans") : words.join(u' '));
into.insert(QStringLiteral("weight"), weight);
into.insert(QStringLiteral("italic"), italic);
}
// Pango markup as Qt's StyledText: span becomes font, b and i, the rest of
// Pango's tags go and their text stays.
QString styled(const QString &markup)
{
static const QRegularExpression tag(QStringLiteral("<(/?)([a-zA-Z]+)([^>]*)>"));
static const QRegularExpression attribute(QStringLiteral("([a-z_]+)\\s*=\\s*[\"']([^\"']*)[\"']"));
QString out;
QStringList closers;
qsizetype last = 0;
auto it = tag.globalMatch(markup);
while (it.hasNext()) {
const auto m = it.next();
out += markup.mid(last, m.capturedStart() - last);
last = m.capturedEnd();
const bool closing = !m.captured(1).isEmpty();
const QString name = m.captured(2).toLower();
if (name == u"span") {
if (closing) {
out += closers.isEmpty() ? QString() : closers.takeLast();
continue;
}
QString open;
QString close;
QString fontAttrs;
auto attrs = attribute.globalMatch(m.captured(3));
while (attrs.hasNext()) {
const auto a = attrs.next();
const QString key = a.captured(1);
QString value = a.captured(2);
if (key == u"foreground" || key == u"fgcolor" || key == u"color") {
// Pango's #RRGGBBAA is Qt's #AARRGGBB.
if (value.startsWith(u'#') && value.size() == 9) {
value = u'#' + value.mid(7, 2) + value.mid(1, 6);
}
fontAttrs += QStringLiteral(" color=\"%1\"").arg(value);
} else if (key == u"font_family" || key == u"face") {
fontAttrs += QStringLiteral(" face=\"%1\"").arg(value);
} else if ((key == u"weight" || key == u"font_weight") && (value.contains(u"bold") || value.contains(u"heavy") || value.toInt() >= 600)) {
open += QStringLiteral("<b>");
close.prepend(QStringLiteral("</b>"));
} else if ((key == u"style" || key == u"font_style") && value == u"italic") {
open += QStringLiteral("<i>");
close.prepend(QStringLiteral("</i>"));
}
}
if (!fontAttrs.isEmpty()) {
open.prepend(QStringLiteral("<font%1>").arg(fontAttrs));
close += QStringLiteral("</font>");
}
out += open;
closers.append(close);
} else if (name == u"b" || name == u"i" || name == u"u") {
out += m.captured(0);
}
}
out += markup.mid(last);
out.replace(u'\n', QStringLiteral("<br>"));
return out;
}
// What a command prints, or nothing when it takes too long.
QString run(const QString &command, QElapsedTimer &budget)
{
// A config full of slow commands (weather, music) must not keep the
// window from opening.
if (budget.elapsed() > 2000) {
return {};
}
QProcess process;
process.start(QStringLiteral("/bin/sh"), {QStringLiteral("-c"), command});
if (!process.waitForFinished(700)) {
process.kill();
process.waitForFinished(100);
return {};
}
return QString::fromUtf8(process.readAllStandardOutput());
}
// A label's text as hyprlock would show it right after locking.
QString labelText(QString text, bool trim, QElapsedTimer &budget)
{
const passwd *pw = getpwuid(getuid());
text.replace(QStringLiteral("$DESC"), pw ? QString::fromLocal8Bit(pw->pw_gecos) : QString());
text.replace(QStringLiteral("$USER"), pw ? QString::fromLocal8Bit(pw->pw_name) : QString());
text.replace(QStringLiteral("<br/>"), QStringLiteral("\n"));
const QTime now = QTime::currentTime();
text.replace(QStringLiteral("$TIME12"), now.toString(QStringLiteral("hh:mm AP")));
text.replace(QStringLiteral("$TIME"), now.toString(QStringLiteral("HH:mm")));
static const QRegularExpression layoutVar(QStringLiteral("\\$LAYOUT(\\[([^\\]]*)\\])?"));
auto layouts = layoutVar.globalMatch(text);
while (layouts.hasNext()) {
const auto m = layouts.next();
const QString first = m.captured(2).section(u',', 0, 0).trimmed();
text.replace(m.captured(0), first.isEmpty() ? QStringLiteral("en") : first);
}
// What only a lock screen that runs knows: nothing has failed yet.
static const QRegularExpression runtime(QStringLiteral("\\$(ATTEMPTS(\\[[^\\]]*\\])?|PAMFAIL|FPRINTFAIL|FPRINTPROMPT|FAIL)"));
text.remove(runtime);
text.replace(QStringLiteral("$PAMPROMPT"), QStringLiteral("Password:"));
if (text.startsWith(u"cmd[") && text.contains(u']')) {
const QString command = text.mid(text.indexOf(u']') + 1);
// face-unlock's own line, as it reads during a scan.
text = command.contains(u"face-unlock/lock-text") ? i18n("Looking for your face…").toHtmlEscaped() : run(command, budget);
}
return trim ? text.trimmed() : text;
}
void place(const Section &s, const QString &position, const QSizeF &screen, QVariantMap &into)
{
const QPointF pos = layout(s.values.value(QStringLiteral("position"), position), screen);
into.insert(QStringLiteral("x"), pos.x());
into.insert(QStringLiteral("y"), pos.y());
into.insert(QStringLiteral("halign"), s.values.value(QStringLiteral("halign"), QStringLiteral("center")));
into.insert(QStringLiteral("valign"), s.values.value(QStringLiteral("valign"), QStringLiteral("center")));
into.insert(QStringLiteral("rotate"), s.values.value(QStringLiteral("rotate"), QStringLiteral("0")).toDouble());
}
QColor colorOr(const QString &value, const QColor &fallback)
{
const QColor c = LockPreview::color(value);
return c.isValid() ? c : fallback;
}
// swaylock's colours: RRGGBB or RRGGBBAA, without a #.
QColor hexColor(const QString &value, const QColor &fallback)
{
QString v = value.trimmed();
if (v.startsWith(u'#')) {
v = v.mid(1);
}
bool ok = false;
const uint n = v.toUInt(&ok, 16);
if (!ok || (v.size() != 6 && v.size() != 8)) {
return fallback;
}
return v.size() == 6 ? QColor((n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff) : QColor((n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff);
}
QVariantMap wallpaperOnly(const QUrl &wallpaper)
{
return {{QStringLiteral("type"), QStringLiteral("background")},
{QStringLiteral("color"), QColor(0x11, 0x11, 0x11)},
{QStringLiteral("source"), wallpaper},
{QStringLiteral("fill"), QStringLiteral("fill")},
{QStringLiteral("blur"), 0.0},
{QStringLiteral("dim"), 0.0}};
}
} // namespace
QColor LockPreview::color(const QString &value)
{
const QString v = value.trimmed();
static const QRegularExpression call(QStringLiteral("^(rgba?)\\((.*)\\)$"));
const auto m = call.match(v);
if (m.hasMatch()) {
const QString inner = m.captured(2).trimmed();
const QStringList parts = inner.split(u',');
if (parts.size() >= 3) {
QColor c(parts.at(0).trimmed().toInt(), parts.at(1).trimmed().toInt(), parts.at(2).trimmed().toInt());
if (parts.size() >= 4) {
c.setAlphaF(std::clamp(parts.at(3).trimmed().toDouble(), 0.0, 1.0));
}
return c;
}
return hexColor(inner, {});
}
bool ok = false;
const qulonglong n = v.startsWith(u"0x", Qt::CaseInsensitive) ? v.mid(2).toULongLong(&ok, 16) : v.toULongLong(&ok, 10);
if (!ok) {
return {};
}
return QColor(int((n >> 16) & 0xff), int((n >> 8) & 0xff), int(n & 0xff), int((n >> 24) & 0xff));
}
QString LockPreview::locker()
{
static const QStringList names{QStringLiteral("hyprlock"), QStringLiteral("swaylock"), QStringLiteral("gtklock"), QStringLiteral("waylock")};
// Where a lock screen is started from: the idle daemons first, then the
// keys. The first one named there, outside comments.
static const QStringList places{QStringLiteral("hypr/hypridle.conf"), QStringLiteral("swayidle/config"), QStringLiteral("niri/config.kdl"),
QStringLiteral("hypr/hyprland.lua"), QStringLiteral("hypr/hyprland.conf")};
for (const QString &place : places) {
for (const QString &line : readFile(configHome() + u'/' + place).split(u'\n')) {
const QString code = line.trimmed();
if (code.startsWith(u'#') || code.startsWith(u"//") || code.startsWith(u"--")) {
continue;
}
qsizetype first = -1;
QString found;
for (const QString &name : names) {
const qsizetype at = code.indexOf(name);
if (at >= 0 && (first < 0 || at < first)) {
first = at;
found = name;
}
}
if (!found.isEmpty()) {
return found;
}
}
}
// Started some other way (a script of its own): one that is set up.
if (!QStandardPaths::findExecutable(QStringLiteral("hyprlock")).isEmpty() && !findConfig(QStringLiteral("hypr/hyprlock.conf")).isEmpty()) {
return QStringLiteral("hyprlock");
}
for (const QString &name : names) {
if (!QStandardPaths::findExecutable(name).isEmpty()) {
return name;
}
}
return {};
}
QVariantList LockPreview::hyprlock(const QString &configPath, const QSizeF &screen, const QString &output, const QUrl &wallpaper)
{
Hyprlang config;
config.parse(configPath);
bool trim = true;
for (const Section &s : std::as_const(config.sections)) {
if (s.name == u"general" && s.values.contains(QStringLiteral("text_trim"))) {
trim = truthy(s.values.value(QStringLiteral("text_trim")));
}
}
QElapsedTimer budget;
budget.start();
QList<QPair<int, QVariantMap>> placed;
bool ourLine = false;
bool background = false;
for (const Section &s : std::as_const(config.sections)) {
const auto value = [&s](const char *key, const char *fallback) {
return s.values.value(QString::fromLatin1(key), QString::fromLatin1(fallback));
};
const QString monitor = value("monitor", "");
if (!monitor.isEmpty() && monitor != output && !monitor.startsWith(u"desc:")) {
continue;
}
QVariantMap w;
int z = value("zindex", "0").toInt();
if (s.name == u"background") {
background = true;
z = value("zindex", "-1").toInt();
const QString path = value("path", "");
const int passes = value("blur_passes", "0").toInt();
w = wallpaperOnly(path == u"screenshot" ? wallpaper : path.isEmpty() ? QUrl() : QUrl::fromLocalFile(expandHome(path)));
w.insert(QStringLiteral("color"), colorOr(value("color", ""), QColor(0x11, 0x11, 0x11)));
w.insert(QStringLiteral("blur"), passes > 0 ? std::min(1.0, passes * value("blur_size", "8").toDouble() / 24.0) : 0.0);
// hyprlock's blur also darkens, by its brightness.
w.insert(QStringLiteral("dim"), passes > 0 ? std::clamp(1.0 - value("brightness", "0.8172").toDouble(), 0.0, 1.0) : 0.0);
} else if (s.name == u"label") {
const QString text = value("text", "Sample Text");
ourLine = ourLine || text.contains(u"face-unlock/lock-text");
w.insert(QStringLiteral("type"), QStringLiteral("label"));
w.insert(QStringLiteral("text"), styled(labelText(text, trim, budget)));
font(value("font_family", "Sans"), w);
w.insert(QStringLiteral("size"), value("font_size", "16").toDouble());
w.insert(QStringLiteral("color"), colorOr(value("color", ""), Qt::white));
w.insert(QStringLiteral("align"), value("text_align", "center"));
w.insert(QStringLiteral("shadow"), value("shadow_passes", "0").toInt() > 0);
w.insert(QStringLiteral("shadowSize"), value("shadow_size", "3").toDouble());
w.insert(QStringLiteral("shadowColor"), colorOr(value("shadow_color", ""), Qt::black));
place(s, QStringLiteral("0,0"), screen, w);
} else if (s.name == u"input-field") {
const QPointF size = layout(value("size", "400,90"), screen);
w.insert(QStringLiteral("type"), QStringLiteral("input"));
w.insert(QStringLiteral("width"), size.x());
w.insert(QStringLiteral("height"), size.y());
w.insert(QStringLiteral("thickness"), value("outline_thickness", "4").toDouble());
w.insert(QStringLiteral("outer"), gradient(value("outer_color", "0xFF111111")));
w.insert(QStringLiteral("inner"), colorOr(value("inner_color", ""), QColor(0xdd, 0xdd, 0xdd)));
w.insert(QStringLiteral("fontColor"), colorOr(value("font_color", ""), Qt::black));
font(value("font_family", "Sans"), w);
w.insert(QStringLiteral("placeholder"), styled(labelText(value("placeholder_text", "<i>Input Password</i>"), trim, budget)));
w.insert(QStringLiteral("rounding"), value("rounding", "-1").toDouble());
place(s, QStringLiteral("0,0"), screen, w);
} else if (s.name == u"shape") {
const QPointF size = layout(value("size", "100,100"), screen);
w.insert(QStringLiteral("type"), QStringLiteral("shape"));
w.insert(QStringLiteral("width"), size.x());
w.insert(QStringLiteral("height"), size.y());
w.insert(QStringLiteral("color"), colorOr(value("color", ""), QColor(0x11, 0x11, 0x11)));
w.insert(QStringLiteral("rounding"), value("rounding", "0").toDouble());
w.insert(QStringLiteral("borderSize"), value("border_size", "0").toDouble());
w.insert(QStringLiteral("border"), gradient(value("border_color", "0xFF00CFE6")));
place(s, QStringLiteral("0,0"), screen, w);
} else if (s.name == u"image") {
const QString path = value("path", "");
if (path.isEmpty()) {
continue;
}
w.insert(QStringLiteral("type"), QStringLiteral("image"));
w.insert(QStringLiteral("source"), QUrl::fromLocalFile(expandHome(path)));
w.insert(QStringLiteral("size"), value("size", "150").toDouble());
w.insert(QStringLiteral("rounding"), value("rounding", "-1").toDouble());
w.insert(QStringLiteral("borderSize"), value("border_size", "4").toDouble());
w.insert(QStringLiteral("border"), gradient(value("border_color", "0xFFDDDDDD")));
place(s, QStringLiteral("0,0"), screen, w);
} else {
continue;
}
placed.append({z, w});
}
if (!background) {
QVariantMap w = wallpaperOnly({});
placed.append({-1, w});
}
// face-unlock's line, as the menu puts it in (fu_hyprlock_text_on),
// for those who have not picked it yet.
if (!ourLine) {
QVariantMap w{{QStringLiteral("type"), QStringLiteral("label")},
{QStringLiteral("text"), i18n("Looking for your face…").toHtmlEscaped()},
{QStringLiteral("size"), 20.0},
{QStringLiteral("color"), QColor(255, 255, 255, 242)},
{QStringLiteral("align"), QStringLiteral("center")},
{QStringLiteral("shadow"), true},
{QStringLiteral("shadowSize"), 3.0},
{QStringLiteral("shadowColor"), QColor(Qt::black)},
{QStringLiteral("x"), 0.0},
{QStringLiteral("y"), -48.0},
{QStringLiteral("halign"), QStringLiteral("center")},
{QStringLiteral("valign"), QStringLiteral("top")},
{QStringLiteral("rotate"), 0.0}};
font(QStringLiteral("Sans"), w);
placed.append({10, w});
}
std::stable_sort(placed.begin(), placed.end(), [](const auto &a, const auto &b) {
return a.first < b.first;
});
QVariantList widgets;
for (const auto &p : std::as_const(placed)) {
widgets.append(p.second);
}
return widgets;
}
QVariantList LockPreview::swaylock(const QString &configPath, const QUrl &wallpaper)
{
// One option per line, as on the command line without the dashes.
QHash<QString, QString> o;
for (const QString &raw : readFile(configPath).split(u'\n')) {
const QString line = raw.trimmed();
if (line.isEmpty() || line.startsWith(u'#')) {
continue;
}
o.insert(line.section(u'=', 0, 0).trimmed(), line.contains(u'=') ? line.section(u'=', 1).trimmed() : QString());
}
// An image may name its output first: [[<output>]:]<path>.
QString image = o.value(QStringLiteral("image"));
if (image.contains(u':') && !image.startsWith(u'/') && !image.startsWith(u'~')) {
image = image.section(u':', 1);
}
QVariantMap bg = wallpaperOnly(o.contains(QStringLiteral("screenshots")) ? wallpaper
: image.isEmpty() ? QUrl()
: QUrl::fromLocalFile(expandHome(image)));
bg.insert(QStringLiteral("color"), hexColor(o.value(QStringLiteral("color")), Qt::white));
bg.insert(QStringLiteral("fill"), o.value(QStringLiteral("scaling"), QStringLiteral("fill")));
// swaylock-effects: effect-blur=<radius>x<times>.
const QString blur = o.value(QStringLiteral("effect-blur"));
if (!blur.isEmpty()) {
bg.insert(QStringLiteral("blur"), std::min(1.0, blur.section(u'x', 0, 0).toDouble() * blur.section(u'x', 1, 1).toDouble() / 24.0));
}
QVariantList widgets{bg};
// The ring shows only while typing, unless it is asked to stay.
const bool clock = o.contains(QStringLiteral("clock"));
if (o.contains(QStringLiteral("indicator")) || o.contains(QStringLiteral("indicator-idle-visible")) || clock) {
const QDateTime now = QDateTime::currentDateTime();
widgets.append(QVariantMap{
{QStringLiteral("type"), QStringLiteral("ring")},
{QStringLiteral("radius"), o.value(QStringLiteral("indicator-radius"), QStringLiteral("50")).toDouble()},
{QStringLiteral("thickness"), o.value(QStringLiteral("indicator-thickness"), QStringLiteral("10")).toDouble()},
{QStringLiteral("inside"), hexColor(o.value(QStringLiteral("inside-color")), QColor(0, 0, 0, 0xc0))},
{QStringLiteral("ring"), hexColor(o.value(QStringLiteral("ring-color")), QColor(0x33, 0x7d, 0x00))},
{QStringLiteral("textColor"), hexColor(o.value(QStringLiteral("text-color")), QColor(0xe5, 0xa4, 0x45))},
{QStringLiteral("text"), clock ? now.toString(QStringLiteral("HH:mm")) + u'\n' + now.toString(QStringLiteral("yyyy-MM-dd")) : QString()},
});
}
return widgets;
}
QVariantList LockPreview::widgets(const QString &locker, const QSizeF &screen, const QString &output, const QUrl &wallpaper)
{
if (locker == u"hyprlock") {
const QString path = findConfig(QStringLiteral("hypr/hyprlock.conf"));
if (!path.isEmpty()) {
return hyprlock(path, screen, output, wallpaper);
}
} else if (locker == u"swaylock") {
QString path = findConfig(QStringLiteral("swaylock/config"));
if (path.isEmpty() && QFileInfo::exists(QDir::homePath() + QStringLiteral("/.swaylock/config"))) {
path = QDir::homePath() + QStringLiteral("/.swaylock/config");
}
return swaylock(path, wallpaper);
}
// Something this does not know how to draw: the desktop's picture.
return {wallpaperOnly(wallpaper)};
}
+37
View File
@@ -0,0 +1,37 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// The user's own lock screen, rebuilt for its picture in the window that asks
// which lock screen to use (LockChoice.qml): what hyprlock draws from its
// config, with face-unlock's line at the top, or swaylock's background and
// ring. A screenshot would take locking the screen. LockPreview.qml draws
// what this returns.
//
// hyprlock places a widget from the corner or middle its halign and valign
// name, with y upwards, and takes font sizes as points. Colours and sizes
// here are hyprlang's: rgba(r, g, b, a), rgba(RRGGBBAA), 0xAARRGGBB, and
// "x, y" in pixels or percent of the screen.
#pragma once
#include <QColor>
#include <QSizeF>
#include <QString>
#include <QUrl>
#include <QVariantList>
namespace LockPreview
{
// The lock screen the user starts: the one their idle daemon or key runs,
// else one that is installed. hyprlock, swaylock, another name, or empty.
QString locker();
// That lock screen's widgets, bottom first, as maps for LockPreview.qml.
// output names the screen, for widgets meant for one monitor; wallpaper is
// the desktop's picture, for a background that is a screenshot.
QVariantList widgets(const QString &locker, const QSizeF &screen, const QString &output, const QUrl &wallpaper);
// The pieces, apart for the tests.
QVariantList hyprlock(const QString &configPath, const QSizeF &screen, const QString &output, const QUrl &wallpaper);
QVariantList swaylock(const QString &configPath, const QUrl &wallpaper);
QColor color(const QString &value);
}
+86
View File
@@ -0,0 +1,86 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#include "locktext.h"
#include "bubblecontroller.h"
#include "lockers.h"
#include "userconfig.h"
#include <KLocalizedString>
#include <QDir>
#include <QFile>
#include <QFileInfo>
#include <QSaveFile>
#include <QStandardPaths>
#include <QTimer>
#include <csignal>
LockText::LockText(BubbleController *bubble, UserConfig *config, QObject *parent)
: QObject(parent)
, m_bubble(bubble)
, m_config(config)
{
connect(m_bubble, &BubbleController::phaseChanged, this, &LockText::update);
connect(m_bubble, &BubbleController::messageChanged, this, &LockText::update);
connect(m_config, &UserConfig::changed, this, &LockText::update);
// Nothing left over from an agent before this one.
write({});
}
LockText::~LockText()
{
QFile::remove(path());
}
QString LockText::path()
{
return QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation) + QStringLiteral("/face-unlock/lock-text");
}
QString LockText::text(const QString &phase, const QString &message)
{
if (phase == u"scanning") {
return message.isEmpty() ? i18n("Looking for your face…") : message;
}
if (phase == u"success") {
return i18n("Face recognized");
}
// failure and lockout say why; hidden says nothing.
return phase == u"hidden" ? QString() : message;
}
void LockText::update()
{
const bool on = m_config->lockScreenStyle() == u"yours";
const QString now = on ? text(m_bubble->phase(), m_bubble->message()) : QString();
if (now != m_text) {
write(now);
// Left alone by those who did not pick it: their hyprlock has no
// label to read it.
m_tries = 0;
refresh();
}
}
void LockText::refresh()
{
// A hyprlock that is only starting reads the file once it is up, but
// may have read it just before this changed: asked again then.
if (Lockers::signal(SIGUSR2, "hyprlock") > 0 && ++m_tries < 20) {
QTimer::singleShot(250, this, &LockText::refresh);
}
}
void LockText::write(const QString &text)
{
m_text = text;
QDir().mkpath(QFileInfo(path()).absolutePath());
QSaveFile file(path());
// hyprlock reads labels as Pango markup.
if (file.open(QIODevice::WriteOnly)) {
file.write(text.toHtmlEscaped().toUtf8());
file.commit();
}
}
+37
View File
@@ -0,0 +1,37 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// The bubble as a line of text, for a lock screen that covers it: hyprlock.
// When the user keeps their own lock screen (LockScreenStyle=yours), the
// menu puts a label into hyprlock's config that shows the file at path()
// (see src/lib/system.sh). This writes what the bubble shows into it, and
// SIGUSR2 makes hyprlock read it again.
#pragma once
#include <QObject>
#include <QString>
class BubbleController;
class UserConfig;
class LockText : public QObject
{
Q_OBJECT
public:
LockText(BubbleController *bubble, UserConfig *config, QObject *parent = nullptr);
~LockText() override;
static QString path();
// The line for a phase and message of the bubble.
static QString text(const QString &phase, const QString &message);
private:
void update();
void refresh();
void write(const QString &text);
BubbleController *m_bubble;
UserConfig *m_config;
QString m_text;
int m_tries = 0;
};
+70 -1
View File
@@ -10,6 +10,9 @@
// Niri), else through logind with the desktop's // Niri), else through logind with the desktop's
// --demo play the bubble's animations once, for trying out a // --demo play the bubble's animations once, for trying out a
// style (--bubble-style minimal) and for screenshots // style (--bubble-style minimal) and for screenshots
// --choose-lock-screen
// open the window that asks which lock screen to use
// where it is a program of its own, and print the answer
#include "agentsocket.h" #include "agentsocket.h"
#include "bubblecontroller.h" #include "bubblecontroller.h"
@@ -17,9 +20,12 @@
#include "bubblewindow.h" #include "bubblewindow.h"
#include "enrollcontroller.h" #include "enrollcontroller.h"
#include "lockcontroller.h" #include "lockcontroller.h"
#include "lockpreview.h"
#include "lockscreencontroller.h" #include "lockscreencontroller.h"
#include "locktext.h"
#include "sessionlock.h" #include "sessionlock.h"
#include "userconfig.h" #include "userconfig.h"
#include "wallpaper.h"
#include "wayland.h" #include "wayland.h"
#include "buildconfig.h" #include "buildconfig.h"
@@ -34,8 +40,11 @@
#include <QGuiApplication> #include <QGuiApplication>
#include <QQmlApplicationEngine> #include <QQmlApplicationEngine>
#include <QQmlEngine> #include <QQmlEngine>
#include <QScreen>
#include <QTimer> #include <QTimer>
#include <QWindow>
#include <cstdio>
#include <cstring> #include <cstring>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/un.h> #include <sys/un.h>
@@ -66,6 +75,56 @@ int runEnroll(QGuiApplication &app, const QString &name)
return controller.state() == u"done" ? 0 : code; return controller.state() == u"done" ? 0 : code;
} }
// The window of --choose-lock-screen. Prints "own" or "yours" for the menu,
// which carries it out.
int runChooseLockScreen(QGuiApplication &app)
{
app.setQuitOnLastWindowClosed(true);
UserConfig config;
// Both choices show this screen as it would look: face-unlock's lock
// screen as it is, with a scan going on, and the user's own rebuilt.
const QScreen *screen = QGuiApplication::primaryScreen();
const QString output = screen ? screen->name() : QString();
const QSize size = screen ? screen->size() : QSize(1920, 1080);
const QUrl desktop = Wallpaper::pick(Wallpaper::forLock({}), output);
const QUrl ownWallpaper = config.lockWallpaper().isEmpty() ? desktop : Wallpaper::pick(Wallpaper::forLock(config.lockWallpaper()), output);
const QString locker = LockPreview::locker();
LockScreenController lock;
lock.setBlur(config.lockBlur());
BubbleController bubble(&config);
bubble.scanStarted();
// A scan that goes on: the bubble closes by itself after a while.
QTimer rescan;
QObject::connect(&rescan, &QTimer::timeout, &bubble, &BubbleController::scanStarted);
rescan.start(20000);
QQmlApplicationEngine engine;
KLocalization::setupLocalizedContext(&engine);
engine.setInitialProperties({{QStringLiteral("current"), config.lockScreenStyle()},
{QStringLiteral("locker"), locker},
{QStringLiteral("widgets"), LockPreview::widgets(locker, size, output, desktop)},
{QStringLiteral("screenSize"), size},
{QStringLiteral("ownWallpaper"), ownWallpaper},
{QStringLiteral("lock"), QVariant::fromValue(&lock)},
{QStringLiteral("bubble"), QVariant::fromValue(&bubble)}});
engine.loadFromModule(QStringLiteral("FaceUnlock"), QStringLiteral("LockChoice"));
auto *window = engine.rootObjects().isEmpty() ? nullptr : qobject_cast<QWindow *>(engine.rootObjects().constFirst());
if (!window) {
return 2;
}
// Shown only now, at the size its texts need (see LockChoice.qml).
window->show();
app.exec();
const QString answer = window->property("answer").toString();
if (answer.isEmpty()) {
return 1;
}
std::printf("%s\n", qPrintable(answer));
return 0;
}
// Where --lock tells the command that ran it that the screen is locked, when // Where --lock tells the command that ran it that the screen is locked, when
// it forked to stay behind as the lock screen. -1: it did not. // it forked to stay behind as the lock screen. -1: it did not.
int readyFd = -1; int readyFd = -1;
@@ -191,9 +250,14 @@ int main(int argc, char **argv)
const QCommandLineOption demoOpt(QStringLiteral("demo"), i18n("Play the bubble's animations once.")); const QCommandLineOption demoOpt(QStringLiteral("demo"), i18n("Play the bubble's animations once."));
// Not "--style": QGuiApplication takes that one for itself. // Not "--style": QGuiApplication takes that one for itself.
const QCommandLineOption styleOpt(QStringLiteral("bubble-style"), i18n("Bubble style for the demo: full or minimal."), QStringLiteral("style")); const QCommandLineOption styleOpt(QStringLiteral("bubble-style"), i18n("Bubble style for the demo: full or minimal."), QStringLiteral("style"));
parser.addOptions({enrollOpt, nameOpt, lockOpt, demoOpt, styleOpt}); const QCommandLineOption chooseOpt(QStringLiteral("choose-lock-screen"), i18n("Ask which lock screen to use, and print the answer."));
parser.addOptions({enrollOpt, nameOpt, lockOpt, demoOpt, styleOpt, chooseOpt});
parser.process(app); parser.process(app);
if (parser.isSet(chooseOpt)) {
return runChooseLockScreen(app);
}
if (parser.isSet(enrollOpt)) { if (parser.isSet(enrollOpt)) {
QString name = parser.value(nameOpt); QString name = parser.value(nameOpt);
if (name.isEmpty()) { if (name.isEmpty()) {
@@ -264,6 +328,11 @@ int main(int argc, char **argv)
QObject::connect(lock, &SessionLock::confirmed, &socket, &AgentSocket::confirmLock); QObject::connect(lock, &SessionLock::confirmed, &socket, &AgentSocket::confirmLock);
} }
LockController lock(&bubble, &config, sessionLock.get(), &screen); LockController lock(&bubble, &config, sessionLock.get(), &screen);
// hyprlock covers the bubble: it can show it as a line of text instead.
std::unique_ptr<LockText> text;
if (sessionLock && !lockNow) {
text = std::make_unique<LockText>(&bubble, &config);
}
if (lockNow) { if (lockNow) {
// No agent was running, so this one is only here for the lock. It // No agent was running, so this one is only here for the lock. It
+264
View File
@@ -0,0 +1,264 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// Where the lock screen is a program of the user's (Hyprland, Niri): lock
// with face-unlock's own, with the bubble, or keep that program, which then
// shows a line of text (hyprlock). Each choice shows the user's screen as it
// would look: face-unlock's lock screen live, and their own rebuilt from its
// config (see LockPreview). The pick goes back to the menu, which carries
// it out.
import QtQuick
import QtQuick.Effects
import QtQuick.Window
import FaceUnlock
Window {
id: window
// "own", "yours", or empty when there is none yet.
required property string current
// The user's lock screen (see LockPreview::locker) and what it shows.
required property string locker
required property var widgets
// The screen the pictures show, and the parts of face-unlock's own.
required property size screenSize
required property url ownWallpaper
required property var lock
required property var bubble
// What was picked, empty when the window was closed.
property string answer: ""
property string selected: current
function pick() {
if (selected.length > 0) {
answer = selected
close()
}
}
// One fixed size, so tiling compositors float it (see Enroll). The
// height follows the texts, whose length depends on the language. It
// is taken from them rather than from the Row and Column, which only lay
// out once the window shows, and the agent shows it after that.
readonly property int fitHeight: Math.ceil(36 + heading.height + 10 + intro.height + 28 + Math.max(own.needed, yours.needed) + 94)
width: 800
height: fitHeight
minimumWidth: 800
maximumWidth: 800
minimumHeight: fitHeight
maximumHeight: fitHeight
visible: false
color: Theme.panel
title: i18n("Choose your lock screen")
Component {
id: ownScene
LockScreen {
lock: window.lock
bubble: window.bubble
primary: true
wallpaper: window.ownWallpaper
interactive: false
}
}
Component {
id: yoursScene
LockPreview {
widgets: window.widgets
}
}
// One of the two: the screen, a radio button with the name, what it means.
component Choice: Rectangle {
id: card
required property string style
required property Component scene
required property string name
required property string about
readonly property bool chosen: window.selected === style
// The height its text needs; both take the larger one.
readonly property real needed: body.y + body.height + 20
width: 364
radius: 18
color: area.containsMouse && !chosen ? Qt.lighter(Theme.surface, 1.25) : Theme.surface
border.width: 2
border.color: chosen ? Theme.accent : "transparent"
Behavior on border.color { ColorAnimation { duration: 150 } }
Behavior on color { ColorAnimation { duration: 120 } }
// The whole screen, made small: filling the picture, cut at the
// sides or at the top and bottom.
Item {
id: picture
x: 14
y: 14
width: parent.width - 28
height: Math.round(width * 10 / 16)
clip: true
layer.enabled: true
layer.effect: MultiEffect {
maskEnabled: true
maskSource: mask
}
Loader {
sourceComponent: card.scene
width: window.screenSize.width
height: window.screenSize.height
transformOrigin: Item.TopLeft
scale: Math.max(picture.width / width, picture.height / height)
x: (picture.width - width * scale) / 2
y: (picture.height - height * scale) / 2
}
}
Rectangle {
id: mask
width: picture.width
height: picture.height
radius: 10
visible: false
layer.enabled: true
}
// A radio button: a ring, filled when picked.
Rectangle {
id: radio
x: 18
y: title.y + 3
width: 18
height: 18
radius: 9
color: "transparent"
border.width: 2
border.color: card.chosen ? Theme.accent : Theme.textSecondary
Rectangle {
anchors.centerIn: parent
width: 8
height: 8
radius: 4
color: Theme.accent
visible: card.chosen
}
}
Text {
id: title
anchors.top: picture.bottom
anchors.topMargin: 16
x: radio.x + radio.width + 10
width: parent.width - x - 18
wrapMode: Text.WordWrap
color: Theme.textPrimary
font.pixelSize: 16
font.weight: Font.DemiBold
text: card.name
}
Text {
id: body
anchors.top: title.bottom
anchors.topMargin: 8
x: 18
width: parent.width - 36
wrapMode: Text.WordWrap
color: Theme.textDetail
font.pixelSize: 13
lineHeight: 1.15
text: card.about
}
MouseArea {
id: area
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: window.selected = card.style
onDoubleClicked: {
window.selected = card.style
window.pick()
}
}
}
Column {
id: head
anchors.top: parent.top
anchors.topMargin: 36
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 96
spacing: 10
Text {
id: heading
width: parent.width
horizontalAlignment: Text.AlignHCenter
color: Theme.textPrimary
font.pixelSize: 26
font.weight: Font.Bold
text: i18n("Your lock screen")
}
Text {
id: intro
width: parent.width
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
color: Theme.textSecondary
font.pixelSize: 13
font.weight: Font.Medium
lineHeight: 1.15
text: i18n("Your desktop leaves the lock screen to a program of your choice. Pick how face unlock shows up there. You can change it later under Settings.")
}
}
Row {
id: cards
anchors.top: head.bottom
anchors.topMargin: 28
anchors.horizontalCenter: parent.horizontalCenter
spacing: 24
focus: true
Keys.onLeftPressed: window.selected = "own"
Keys.onRightPressed: window.selected = "yours"
Keys.onReturnPressed: window.pick()
Keys.onEnterPressed: window.pick()
Keys.onEscapePressed: window.close()
Choice {
id: own
height: Math.max(own.needed, yours.needed)
style: "own"
scene: ownScene
name: i18n("face-unlock's lock screen")
about: i18n("The bubble at the top, the time and your wallpaper. Your shortcut and idle lock then run face-unlock lock.")
}
Choice {
id: yours
height: own.height
style: "yours"
scene: yoursScene
name: i18n("Keep your lock screen")
about: window.locker === "hyprlock"
? i18n("It stays as it is. hyprlock shows a line of text at the top instead of the bubble. Enter on the empty password field scans.")
: i18n("It stays as it is, without the bubble. Enter on the empty password field scans.")
}
}
Row {
anchors.bottom: parent.bottom
anchors.bottomMargin: 32
anchors.horizontalCenter: parent.horizontalCenter
spacing: 12
PillButton {
primary: false
text: i18n("Cancel")
onClicked: window.close()
}
PillButton {
enabled: window.selected.length > 0
text: i18n("Continue")
onClicked: window.pick()
}
}
}
+249
View File
@@ -0,0 +1,249 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// The user's own lock screen, drawn from what LockPreview (C++) read out of
// its config, at the size of the screen. Whoever shows it scales it down.
// Placement as in hyprlock: from the side or middle halign and valign name,
// x to the right and y upwards. One Repeater per kind of widget, stacked in
// the order hyprlock draws them.
import QtQuick
import QtQuick.Effects
Item {
id: root
required property var widgets
readonly property var numbered: widgets.map((w, i) => Object.assign({order: i}, w))
function only(type) {
return numbered.filter(w => w.type === type)
}
function alignX(halign, size, offset) {
return halign === "center" ? (width - size) / 2 + offset
: halign === "right" ? width - size + offset
: offset
}
function alignY(valign, size, offset) {
const up = valign === "center" ? (height - size) / 2 + offset
: valign === "top" ? height - size + offset
: offset
return height - up - size
}
clip: true
Repeater {
model: root.only("background")
Item {
id: back
required property var modelData
readonly property var w: modelData
z: w.order
width: root.width
height: root.height
Rectangle {
anchors.fill: parent
color: back.w.color
}
Image {
// Past the edges when blurred: the blur would pull in the
// nothing beyond them and darken the rim.
anchors.fill: parent
anchors.margins: back.w.blur > 0 ? -Math.round(64 * back.w.blur) : 0
visible: back.w.fill !== "solid_color"
source: back.w.source
asynchronous: true
sourceSize: Qt.size(root.width, root.height)
fillMode: back.w.fill === "fit" ? Image.PreserveAspectFit
: back.w.fill === "stretch" ? Image.Stretch
: back.w.fill === "center" ? Image.Pad
: back.w.fill === "tile" ? Image.Tile
: Image.PreserveAspectCrop
layer.enabled: back.w.blur > 0
layer.effect: MultiEffect {
blurEnabled: true
blur: 1
blurMax: Math.round(64 * back.w.blur)
}
}
Rectangle {
anchors.fill: parent
color: "black"
opacity: back.w.dim
}
}
}
Repeater {
model: root.only("label")
Text {
id: line
required property var modelData
readonly property var w: modelData
z: w.order
x: root.alignX(w.halign, width, w.x)
y: root.alignY(w.valign, height, w.y)
rotation: w.rotate
text: w.text
textFormat: Text.StyledText
color: w.color
font.family: w.family
font.weight: w.weight
font.italic: w.italic
font.pointSize: w.size
horizontalAlignment: w.align === "left" ? Text.AlignLeft : w.align === "right" ? Text.AlignRight : Text.AlignHCenter
layer.enabled: w.shadow
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: line.w.shadowColor
shadowBlur: Math.min(1, line.w.shadowSize / 8)
shadowHorizontalOffset: 0
shadowVerticalOffset: 0
}
}
}
Repeater {
model: root.only("input")
// The outline is the outer colour around the inner one. A gradient
// outline needs an opaque inside, which leaves it showing only at
// the edge.
Rectangle {
id: field
required property var modelData
readonly property var w: modelData
readonly property var outer: w.outer.colors
readonly property bool blend: outer.length > 1 && w.inner.a >= 0.99
z: w.order
x: root.alignX(w.halign, width, w.x)
y: root.alignY(w.valign, height, w.y)
rotation: w.rotate
width: w.width
height: w.height
radius: w.rounding < 0 ? height / 2 : Math.min(w.rounding, height / 2)
color: blend ? "transparent" : w.inner
border.width: blend ? 0 : w.thickness
border.color: outer.length > 0 ? outer[0] : "transparent"
gradient: blend ? outline : null
Gradient {
id: outline
orientation: Math.abs(Math.cos(field.w.outer.angle * Math.PI / 180)) >= Math.abs(Math.sin(field.w.outer.angle * Math.PI / 180))
? Gradient.Horizontal : Gradient.Vertical
GradientStop { position: 0; color: field.outer.length > 0 ? field.outer[0] : "transparent" }
GradientStop { position: 1; color: field.outer.length > 0 ? field.outer[field.outer.length - 1] : "transparent" }
}
Rectangle {
visible: field.blend
anchors.fill: parent
anchors.margins: field.w.thickness
radius: Math.max(0, field.radius - field.w.thickness)
color: field.w.inner
}
Text {
anchors.centerIn: parent
text: field.w.placeholder
textFormat: Text.StyledText
color: field.w.fontColor
font.family: field.w.family
font.weight: field.w.weight
font.italic: field.w.italic
font.pointSize: Math.max(1, field.height / 4)
}
}
}
Repeater {
model: root.only("shape")
Rectangle {
required property var modelData
readonly property var w: modelData
z: w.order
x: root.alignX(w.halign, width, w.x)
y: root.alignY(w.valign, height, w.y)
rotation: w.rotate
width: w.width
height: w.height
radius: w.rounding < 0 ? Math.min(width, height) / 2 : Math.min(w.rounding, Math.min(width, height) / 2)
color: w.color
border.width: w.borderSize
border.color: w.border.colors.length > 0 ? w.border.colors[0] : "transparent"
}
}
Repeater {
model: root.only("image")
Item {
id: frame
required property var modelData
readonly property var w: modelData
readonly property real round: w.rounding < 0 ? width / 2 : Math.min(w.rounding, width / 2)
z: w.order
x: root.alignX(w.halign, width, w.x)
y: root.alignY(w.valign, height, w.y)
rotation: w.rotate
width: w.size + 2 * w.borderSize
height: width
Rectangle {
anchors.fill: parent
radius: frame.round
color: frame.w.border.colors.length > 0 ? frame.w.border.colors[0] : "transparent"
}
Image {
id: photo
anchors.fill: parent
anchors.margins: frame.w.borderSize
source: frame.w.source
fillMode: Image.PreserveAspectCrop
asynchronous: true
layer.enabled: true
layer.effect: MultiEffect {
maskEnabled: true
maskSource: photoMask
}
}
Rectangle {
id: photoMask
width: photo.width
height: photo.height
radius: Math.max(0, frame.round - frame.w.borderSize)
visible: false
layer.enabled: true
}
}
}
Repeater {
model: root.only("ring")
// swaylock's indicator, in the middle.
Rectangle {
id: circle
required property var modelData
readonly property var w: modelData
z: w.order
anchors.centerIn: parent
width: 2 * w.radius + 2 * w.thickness
height: width
radius: width / 2
color: w.inside
border.width: w.thickness
border.color: w.ring
Text {
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
text: circle.w.text
color: circle.w.textColor
font.pixelSize: circle.w.radius / 3
}
}
}
}
+11 -2
View File
@@ -15,6 +15,9 @@ Item {
required property var bubble required property var bubble
required property bool primary required property bool primary
required property url wallpaper required property url wallpaper
// Off for the picture in the window that asks which lock screen to use:
// nothing to type into, no keys taken.
property bool interactive: true
property date now: new Date() property date now: new Date()
Timer { Timer {
@@ -71,6 +74,7 @@ Item {
// keys into the password. // keys into the password.
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
enabled: root.interactive
hoverEnabled: true hoverEnabled: true
acceptedButtons: Qt.AllButtons acceptedButtons: Qt.AllButtons
onPositionChanged: root.lock.activity() onPositionChanged: root.lock.activity()
@@ -150,7 +154,8 @@ Item {
selectionColor: Theme.accent selectionColor: Theme.accent
font.pixelSize: 15 font.pixelSize: 15
clip: true clip: true
focus: true focus: root.interactive
enabled: root.interactive
// The dots show how far it is; a blinking bar in the middle // The dots show how far it is; a blinking bar in the middle
// of the empty field only cuts the word in it in two. // of the empty field only cuts the word in it in two.
cursorDelegate: Item {} cursorDelegate: Item {}
@@ -162,7 +167,11 @@ Item {
root.lock.activity() root.lock.activity()
event.accepted = false event.accepted = false
} }
Component.onCompleted: forceActiveFocus() Component.onCompleted: {
if (root.interactive) {
forceActiveFocus()
}
}
} }
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent
+1
View File
@@ -32,6 +32,7 @@ void UserConfig::load()
m_enabled = kv.boolean(QStringLiteral("Enabled"), false); m_enabled = kv.boolean(QStringLiteral("Enabled"), false);
m_lockWallpaper = kv.value(QStringLiteral("LockWallpaper")); m_lockWallpaper = kv.value(QStringLiteral("LockWallpaper"));
m_lockBlur = kv.boolean(QStringLiteral("LockBlur"), false); m_lockBlur = kv.boolean(QStringLiteral("LockBlur"), false);
m_lockScreenStyle = kv.value(QStringLiteral("LockScreenStyle"));
m_lockScreen = kv.boolean(QStringLiteral("LockScreen"), true); m_lockScreen = kv.boolean(QStringLiteral("LockScreen"), true);
m_scanOnWake = kv.boolean(QStringLiteral("ScanOnWake"), true); m_scanOnWake = kv.boolean(QStringLiteral("ScanOnWake"), true);
m_scanOnLock = kv.boolean(QStringLiteral("ScanOnLock"), false); m_scanOnLock = kv.boolean(QStringLiteral("ScanOnLock"), false);
+9
View File
@@ -29,6 +29,14 @@ public:
{ {
return m_lockWallpaper; return m_lockWallpaper;
} }
// Where the lock screen is a program of the user's (Hyprland, Niri):
// "own" to lock with face-unlock's, "yours" to keep that program, which
// then shows the bubble as a line of text (see LockText). Empty until
// the user picked one.
QString lockScreenStyle() const
{
return m_lockScreenStyle;
}
bool lockBlur() const bool lockBlur() const
{ {
return m_lockBlur; return m_lockBlur;
@@ -90,6 +98,7 @@ private:
QFileSystemWatcher m_watcher; QFileSystemWatcher m_watcher;
bool m_enabled = false; bool m_enabled = false;
QString m_lockWallpaper; QString m_lockWallpaper;
QString m_lockScreenStyle;
bool m_lockBlur = false; bool m_lockBlur = false;
bool m_lockScreen = true; bool m_lockScreen = true;
bool m_scanOnWake = true; bool m_scanOnWake = true;
+7 -1
View File
@@ -125,7 +125,13 @@ fu_do_enable() {
esac esac
;; ;;
esac esac
if fu_pam_lockers_here && fu_pam_lockers_enabled; then # Where the lock screen is a program of its own: face-unlock's, with the
# bubble, or that program with a line of text. Asked once.
if fu_own_lock_here && [[ -n ${WAYLAND_DISPLAY:-} && -z $(fu_config_get LockScreenStyle) ]]; then
fu_say " $(fu_msg "Pick your lock screen in the window.")"
fu_lock_choose || fu_note "$(fu_msg "No lock screen picked. You can do it later under Settings.")"
fi
if fu_pam_lockers_here && fu_pam_lockers_enabled && [[ $(fu_config_get LockScreenStyle) != own ]]; then
fu_note "$(fu_msg "The lock screen (%s) takes your face too. If it does not scan when you come back, press Enter on the empty password field." "$(fu_pam_lockers_list)")" fu_note "$(fu_msg "The lock screen (%s) takes your face too. If it does not scan when you come back, press Enter on the empty password field." "$(fu_pam_lockers_list)")"
fi fi
+2
View File
@@ -156,6 +156,8 @@ fu_head() { printf '\n%s%s%s\n\n' "$FU_C_BOLD$FU_C_BLUE" "$*" "$FU_C_RESET"; }
fu_ok() { FU_UI_NOTICES+=("$FU_C_GREEN✔$FU_C_RESET $*"); printf '%s✔%s %s\n' "$FU_C_GREEN" "$FU_C_RESET" "$*"; } fu_ok() { FU_UI_NOTICES+=("$FU_C_GREEN✔$FU_C_RESET $*"); printf '%s✔%s %s\n' "$FU_C_GREEN" "$FU_C_RESET" "$*"; }
fu_bad() { FU_UI_NOTICES+=("$FU_C_RED✘$FU_C_RESET $*"); printf '%s✘%s %s\n' "$FU_C_RED" "$FU_C_RESET" "$*" >&2; } fu_bad() { FU_UI_NOTICES+=("$FU_C_RED✘$FU_C_RESET $*"); printf '%s✘%s %s\n' "$FU_C_RED" "$FU_C_RESET" "$*" >&2; }
fu_note() { FU_UI_NOTICES+=("$FU_C_DIM•$FU_C_RESET $*"); printf '%s•%s %s\n' "$FU_C_DIM" "$FU_C_RESET" "$*"; } fu_note() { FU_UI_NOTICES+=("$FU_C_DIM•$FU_C_RESET $*"); printf '%s•%s %s\n' "$FU_C_DIM" "$FU_C_RESET" "$*"; }
# A line of config to copy, under a note.
fu_code() { FU_UI_NOTICES+=(" $*"); printf ' %s\n' "$*"; }
fu_have() { command -v "$1" > /dev/null 2>&1; } fu_have() { command -v "$1" > /dev/null 2>&1; }
+28 -7
View File
@@ -200,6 +200,8 @@ fu_value_label() {
AnimationSpeed:slow) fu_msg "slow" ;; AnimationSpeed:slow) fu_msg "slow" ;;
ScanSeconds:*) fu_msg "%s seconds" "$2" ;; ScanSeconds:*) fu_msg "%s seconds" "$2" ;;
Camera:auto) fu_msg "automatic" ;; Camera:auto) fu_msg "automatic" ;;
LockScreenStyle:own) fu_msg "face-unlock's" ;;
LockScreenStyle:*) fu_msg "yours" ;;
*) printf '%s' "$2" ;; *) printf '%s' "$2" ;;
esac esac
} }
@@ -277,10 +279,11 @@ fu_ui_status() {
# scope user (this user's file), sys (the system file, through sudo), # scope user (this user's file), sys (the system file, through sudo),
# pam (the service of that name, through sudo), or group for a # pam (the service of that name, through sudo), or group for a
# heading, with only the label after it # heading, with only the label after it
# type bool, choice (steps through the choices), camera, or path (typed # type bool, choice (steps through the choices), camera, path (typed
# in; empty for the desktop's picture) # in; empty for the desktop's picture), or lockstyle (the window
# needs a bool setting this one does nothing without; it is dimmed while # with the two lock screens, see fu_lock_choose)
# that is off # needs a bool setting this one does nothing without, or Key=value; it is
# dimmed while that is not so
# only lockers: only where the lock screen is a program of its own with a # only lockers: only where the lock screen is a program of its own with a
# PAM file (Hyprland, Niri), see fu_pam_lockers_here; ownlock: only # PAM file (Hyprland, Niri), see fu_pam_lockers_here; ownlock: only
# where face-unlock's own lock screen can be used # where face-unlock's own lock screen can be used
@@ -289,8 +292,9 @@ FU_SETTINGS=(
"user|LockScreen|bool|yes|Unlock with your face" "user|LockScreen|bool|yes|Unlock with your face"
"user|ScanOnWake|bool|yes|Scan when you come back||LockScreen" "user|ScanOnWake|bool|yes|Scan when you come back||LockScreen"
"user|ScanOnLock|bool|no|Scan right after locking||LockScreen" "user|ScanOnLock|bool|no|Scan right after locking||LockScreen"
"user|LockWallpaper|path||Wallpaper|||ownlock" "user|LockScreenStyle|lockstyle|yours|Which lock screen|||ownlock"
"user|LockBlur|bool|no|Blur the wallpaper|||ownlock" "user|LockWallpaper|path||Wallpaper||LockScreenStyle=own|ownlock"
"user|LockBlur|bool|no|Blur the wallpaper||LockScreenStyle=own|ownlock"
"group|Password prompts" "group|Password prompts"
"pam|sudo|bool|no|sudo in a terminal" "pam|sudo|bool|no|sudo in a terminal"
"pam|polkit-1|bool|no|Admin prompts" "pam|polkit-1|bool|no|Admin prompts"
@@ -328,6 +332,7 @@ fu_setting_help() {
ScanOnWake:*) fu_msg "Scans when you press a key or move the mouse on the lock screen, and when the computer wakes up." ;; ScanOnWake:*) fu_msg "Scans when you press a key or move the mouse on the lock screen, and when the computer wakes up." ;;
ScanOnLock:*) fu_msg "Scans as soon as the screen locks. Off by default: if you lock it yourself, it would unlock again right away." ;; ScanOnLock:*) fu_msg "Scans as soon as the screen locks. Off by default: if you lock it yourself, it would unlock again right away." ;;
sudo:*) fu_msg "sudo takes your face instead of the password. No match: you type the password as usual." ;; sudo:*) fu_msg "sudo takes your face instead of the password. No match: you type the password as usual." ;;
LockScreenStyle:*) fu_msg "face-unlock's lock screen shows the bubble, and you lock with \`face-unlock lock\`. Or keep yours: hyprlock then shows a line of text at the top. Enter opens the choice." ;;
LockWallpaper:*) fu_msg "The picture behind face-unlock's own lock screen (\`face-unlock lock\`). Empty: the one on your desktop. Or a file, a folder to take one from at random, or \`none\`. Enter to type it." ;; LockWallpaper:*) fu_msg "The picture behind face-unlock's own lock screen (\`face-unlock lock\`). Empty: the one on your desktop. Or a file, a folder to take one from at random, or \`none\`. Enter to type it." ;;
LockBlur:*) fu_msg "Blurs the picture behind face-unlock's own lock screen." ;; LockBlur:*) fu_msg "Blurs the picture behind face-unlock's own lock screen." ;;
lockscreens:*) fu_msg "The lock screen takes your face in its password check. Press Enter on the empty field to scan. Found here: %s." "$(fu_pam_lockers_list)" ;; lockscreens:*) fu_msg "The lock screen takes your face in its password check. Press Enter on the empty field to scan. Found here: %s." "$(fu_pam_lockers_list)" ;;
@@ -483,6 +488,18 @@ _fu_setting_change() {
bool) if fu_is_true "$current"; then next=no; else next=yes; fi ;; bool) if fu_is_true "$current"; then next=no; else next=yes; fi ;;
choice) next="$(_fu_next_choice "$current" "$options" "$step")" ;; choice) next="$(_fu_next_choice "$current" "$options" "$step")" ;;
camera) next="$(_fu_next_camera "$current" "$step")" ;; camera) next="$(_fu_next_camera "$current" "$step")" ;;
lockstyle)
# The window with the pictures where there is a screen for it,
# else the other one of the two.
if [[ -n ${WAYLAND_DISPLAY:-} ]]; then
fu_ui_cooked fu_lock_choose
elif [[ $current == own ]]; then
fu_lock_style_set yours
else
fu_lock_style_set own
fi
return 0
;;
path) path)
printf '\n %s ' "$(fu_msg "Picture or folder:")" printf '\n %s ' "$(fu_msg "Picture or folder:")"
fu_ui_read_line "$current" || return 0 fu_ui_read_line "$current" || return 0
@@ -612,7 +629,11 @@ fu_ui_settings() {
before="${FU_C_BLUE}◂${FU_C_RESET} " after=" ${FU_C_BLUE}▸${FU_C_RESET}" before="${FU_C_BLUE}◂${FU_C_RESET} " after=" ${FU_C_BLUE}▸${FU_C_RESET}"
fi fi
dim='' dim=''
[[ -n ${needs[i]} ]] && ! fu_is_true "${current[${needs[i]}]}" && dim="$FU_C_DIM" case "${needs[i]}" in
'') ;;
*=*) [[ ${current[${needs[i]%%=*}]} == "${needs[i]#*=}" ]] || dim="$FU_C_DIM" ;;
*) fu_is_true "${current[${needs[i]}]}" || dim="$FU_C_DIM" ;;
esac
pad=$(( width + 2 - widths[i] )) pad=$(( width + 2 - widths[i] ))
if (( i == selected )); then marker="${FU_C_BLUE}▸${FU_C_RESET} "; else marker=' '; fi if (( i == selected )); then marker="${FU_C_BLUE}▸${FU_C_RESET} "; else marker=' '; fi
printf -v row ' %s%s%s%s%*s%s%s%s' "$marker" "$dim" "${labels[i]}" "$FU_C_RESET" "$pad" '' "$before" "$dim$shown$FU_C_RESET" "$after" printf -v row ' %s%s%s%s%*s%s%s%s' "$marker" "$dim" "${labels[i]}" "$FU_C_RESET" "$pad" '' "$before" "$dim$shown$FU_C_RESET" "$after"
+123
View File
@@ -193,6 +193,129 @@ fu_gnome_extension_disable() {
gsettings set org.gnome.shell enabled-extensions "$list" > /dev/null 2>&1 || true gsettings set org.gnome.shell enabled-extensions "$list" > /dev/null 2>&1 || true
} }
# ---------------------------------------------------------------------------
# The lock screen where it is a program of its own (Hyprland, Niri)
# ---------------------------------------------------------------------------
# Either face-unlock's (`face-unlock lock`, with the bubble), or the user's
# own program. hyprlock then shows what the bubble would as a line of text: a
# label in its config reads a file the agent writes (see
# src/agent/locktext.h). Asked once in a window, and under Settings.
FU_HYPRLOCK_SNIPPET="$FU_XDG_CONFIG/$FU_NAME/hyprlock.conf"
FU_HYPRLOCK_MARK="# $FU_NAME: what face unlock is doing, at the top"
fu_own_lock_here() {
[[ $FU_DESKTOP != plasma && $FU_DESKTOP != gnome ]]
}
# fu_hyprlock_text_on
# 0 done, 1 could not write, 2 no hyprlock, 3 hyprlock has no config here.
fu_hyprlock_text_on() {
local conf="$FU_XDG_CONFIG/hypr/hyprlock.conf"
fu_have hyprlock || return 2
[[ -f $conf ]] || return 3
mkdir -p "${FU_HYPRLOCK_SNIPPET%/*}" || return 1
cat > "$FU_HYPRLOCK_SNIPPET" <<- EOF || return 1
# Written by $FU_NAME: what face unlock is doing, as a line at the top of
# hyprlock. Picking $FU_NAME's lock screen in its menu takes it out again.
label {
monitor =
text = cmd[update:0:1] cat "\$XDG_RUNTIME_DIR/$FU_NAME/lock-text" 2>/dev/null
color = rgba(255, 255, 255, 0.95)
font_size = 20
shadow_passes = 2
shadow_size = 3
halign = center
valign = top
position = 0, -48
zindex = 10
}
EOF
grep -qxF "$FU_HYPRLOCK_MARK" "$conf" && return 0
# With ~ where it can, like a hand-written config. hyprlock expands it.
local snippet="$FU_HYPRLOCK_SNIPPET"
# shellcheck disable=SC2088 # for hyprlock, not for the shell
[[ $snippet == "$HOME"/* ]] && snippet="~/${snippet#"$HOME"/}"
printf '\n%s\nsource = %s\n' "$FU_HYPRLOCK_MARK" "$snippet" >> "$conf" || return 1
}
# fu_hyprlock_text_off
# The mark, the source line under it, and the empty lines before it. Written
# back in place, so a hyprlock.conf that is a link to a dotfile stays one.
fu_hyprlock_text_off() {
local conf="$FU_XDG_CONFIG/hypr/hyprlock.conf" content
rm -f "$FU_HYPRLOCK_SNIPPET"
[[ -f $conf ]] && grep -qxF "$FU_HYPRLOCK_MARK" "$conf" || return 0
content="$(awk -v mark="$FU_HYPRLOCK_MARK" '
$0 == mark { held = ""; skip = 1; next }
skip && /^[[:space:]]*source[[:space:]]*=/ { skip = 0; next }
{ skip = 0 }
/^[[:space:]]*$/ { held = held $0 "\n"; next }
{ printf "%s", held; held = ""; print }
' "$conf")" || return 1
printf '%s\n' "$content" > "$conf"
}
# fu_own_lock_hint
# Where face-unlock's lock screen has to be started from: the user's key and
# idle lock, which are theirs to change.
fu_own_lock_hint() {
# shellcheck disable=SC2088 # shown to the user, not a path to open
case "$FU_DESKTOP" in
hyprland)
if [[ -f $FU_XDG_CONFIG/hypr/hyprland.lua ]]; then
fu_note "$(fu_msg "To lock with it, add this to %s, and set %s in %s:" "~/.config/hypr/hyprland.lua" "lock_cmd = $FU_NAME lock" "hypridle.conf")"
fu_code "hl.bind(\"SUPER + L\", hl.dsp.exec_cmd(\"$FU_NAME lock\"))"
else
fu_note "$(fu_msg "To lock with it, add this to %s, and set %s in %s:" "~/.config/hypr/hyprland.conf" "lock_cmd = $FU_NAME lock" "hypridle.conf")"
fu_code "bind = SUPER, L, exec, $FU_NAME lock"
fi
;;
niri)
fu_note "$(fu_msg "To lock with it, add this to the binds in %s, and use %s in swayidle:" "~/.config/niri/config.kdl" "$FU_NAME lock")"
fu_code "Mod+Alt+L { spawn \"$FU_NAME\" \"lock\"; }"
;;
*)
fu_note "$(fu_msg "To lock with it, run %s where your lock screen is started now." "$FU_NAME lock")"
;;
esac
}
# fu_lock_style_set <own|yours>
fu_lock_style_set() {
# shellcheck disable=SC2088 # shown to the user, not a path to open
local conf="~/.config/hypr/hyprlock.conf"
case "$1" in
own)
fu_config_set LockScreenStyle own || { fu_bad "$(fu_msg "Could not save the setting.")"; return 1; }
fu_hyprlock_text_off
fu_ok "$(fu_msg "You lock with face-unlock's lock screen now.")"
fu_own_lock_hint
;;
yours)
fu_config_set LockScreenStyle yours || { fu_bad "$(fu_msg "Could not save the setting.")"; return 1; }
fu_hyprlock_text_on
case $? in
0) fu_ok "$(fu_msg "hyprlock shows what face unlock is doing at the top, from the next time it locks.")" ;;
1) fu_bad "$(fu_msg "Could not add the line to %s." "$conf")" ;;
2) fu_ok "$(fu_msg "Your lock screen stays as it is. Press Enter on the empty password field to scan.")" ;;
3) fu_note "$(fu_msg "hyprlock has no %s, so it cannot show the text." "$conf")" ;;
esac
;;
*) return 1 ;;
esac
}
# fu_lock_choose
# Asks in a window which lock screen to use, and carries it out. 1 when the
# window was closed or cannot open.
fu_lock_choose() {
local choice
[[ -n ${WAYLAND_DISPLAY:-} ]] || return 1
choice="$("$FU_AGENT" --choose-lock-screen 2> /dev/null)" || return 1
fu_lock_style_set "$choice"
}
fu_agent_disable() { fu_agent_disable() {
systemctl --user disable --now "$FU_UNIT_AGENT" > /dev/null 2>&1 || true systemctl --user disable --now "$FU_UNIT_AGENT" > /dev/null 2>&1 || true
} }
+133
View File
@@ -0,0 +1,133 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// The user's own lock screen as the window that asks which one to use shows
// it: hyprlock's and swaylock's configs read the way they read them.
#include "lockpreview.h"
#include <QDir>
#include <QFile>
#include <QTemporaryDir>
#include <QVariantMap>
#include <cstdio>
namespace
{
int failures = 0;
void check(bool ok, const char *what)
{
std::printf("%s %s\n", ok ? "ok " : "FAIL", what);
if (!ok) {
++failures;
}
}
void write(const QString &path, const QByteArray &text)
{
QDir().mkpath(path.section(u'/', 0, -2));
QFile f(path);
if (f.open(QIODevice::WriteOnly)) {
f.write(text);
}
}
QList<QVariantMap> ofType(const QVariantList &widgets, const QString &type)
{
QList<QVariantMap> found;
for (const QVariant &w : widgets) {
if (w.toMap().value(QStringLiteral("type")).toString() == type) {
found.append(w.toMap());
}
}
return found;
}
} // namespace
int main()
{
using LockPreview::color;
check(color(QStringLiteral("rgba(255, 128, 0, 0.5)")).rgba() == QColor(255, 128, 0, 128).rgba(), "rgba() with numbers");
check(color(QStringLiteral("rgba(33ccffee)")) == QColor(0x33, 0xcc, 0xff, 0xee), "rgba() in hex");
check(color(QStringLiteral("rgb(10, 20, 30)")) == QColor(10, 20, 30), "rgb() with numbers");
check(color(QStringLiteral("0x80112233")) == QColor(0x11, 0x22, 0x33, 0x80), "0xAARRGGBB");
check(!color(QStringLiteral("blue-ish")).isValid(), "and nothing for a word");
QTemporaryDir dir;
const QString conf = dir.filePath(QStringLiteral("hyprlock.conf"));
write(conf, R"(
$font = Noto Sans Light
$white = rgba(255, 255, 255, 1.0)
background {
monitor =
path = screenshot
blur_passes = 2
}
label {
monitor =
text = cmd[update:1000] echo "Hi ##1" # a comment
font_family = $font
font_size = 30
color = $white
position = 0, 10%
halign = center
valign = top
}
label {
monitor = HDMI-A-9
text = only on another screen
}
source = ./more/*.conf
)");
write(dir.filePath(QStringLiteral("more/field.conf")), R"(
input-field {
size = 20%, 50
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
zindex = 5
}
)");
const QUrl desktop = QUrl::fromLocalFile(QStringLiteral("/w/desktop.jpg"));
const QVariantList widgets = LockPreview::hyprlock(conf, QSizeF(1000, 500), QStringLiteral("eDP-1"), desktop);
const auto backgrounds = ofType(widgets, QStringLiteral("background"));
check(backgrounds.size() == 1 && backgrounds.first().value(QStringLiteral("source")).toUrl() == desktop, "a screenshot background shows the desktop's picture");
check(backgrounds.first().value(QStringLiteral("blur")).toDouble() > 0, "and is blurred");
const auto labels = ofType(widgets, QStringLiteral("label"));
check(labels.size() == 2, "the label for another screen is left out, face-unlock's line is added");
const QVariantMap hi = labels.value(0);
check(hi.value(QStringLiteral("text")).toString() == u"Hi #1", "a command's output, ## as #, the comment gone");
check(hi.value(QStringLiteral("family")).toString() == u"Noto Sans" && hi.value(QStringLiteral("weight")).toInt() == 300, "a variable, and the font's style word as weight");
check(hi.value(QStringLiteral("color")).value<QColor>() == QColor(Qt::white), "a colour through a variable");
check(qFuzzyCompare(hi.value(QStringLiteral("y")).toDouble(), 50.0), "a position in percent of the screen");
check(labels.value(1).value(QStringLiteral("valign")).toString() == u"top", "face-unlock's line at the top");
const auto fields = ofType(widgets, QStringLiteral("input"));
check(fields.size() == 1, "a sourced file is read");
check(qFuzzyCompare(fields.value(0).value(QStringLiteral("width")).toDouble(), 200.0), "a size in percent");
const QVariantMap outer = fields.value(0).value(QStringLiteral("outer")).toMap();
check(outer.value(QStringLiteral("colors")).toList().size() == 2 && qFuzzyCompare(outer.value(QStringLiteral("angle")).toDouble(), 45.0), "a gradient");
check(widgets.last().toMap().value(QStringLiteral("type")).toString() == u"label", "drawn by zindex, the line on top");
// Once the menu has put the line in, it is not there twice.
write(conf, "label {\n text = cmd[update:0:1] cat \"$XDG_RUNTIME_DIR/face-unlock/lock-text\"\n}\n");
const auto ours = ofType(LockPreview::hyprlock(conf, QSizeF(1000, 500), QString(), desktop), QStringLiteral("label"));
check(ours.size() == 1 && !ours.first().value(QStringLiteral("text")).toString().isEmpty(), "face-unlock's line once, saying what it would");
const QString sway = dir.filePath(QStringLiteral("swaylock"));
write(sway, "# comment\nimage=eDP-1:~/pic.png\ncolor=102030\nindicator-idle-visible\nindicator-radius=80\n");
const QVariantList swaylock = LockPreview::swaylock(sway, desktop);
const QVariantMap back = swaylock.value(0).toMap();
check(back.value(QStringLiteral("source")).toUrl() == QUrl::fromLocalFile(QDir::homePath() + QStringLiteral("/pic.png")), "swaylock: the image, without its output");
check(back.value(QStringLiteral("color")).value<QColor>() == QColor(0x10, 0x20, 0x30), "swaylock: the colour");
check(ofType(swaylock, QStringLiteral("ring")).value(0).value(QStringLiteral("radius")).toDouble() == 80, "swaylock: the ring when it stays visible");
check(LockPreview::swaylock(QString(), desktop).value(0).toMap().value(QStringLiteral("color")).value<QColor>() == QColor(Qt::white), "swaylock without a config: white");
std::printf("\n%s\n", failures ? "SOME CHECKS FAILED" : "all checks passed");
return failures ? 1 : 0;
}