{"ca":{"9router-control":{"add_model":{"back":"Torna al combo","empty":"No hi ha models disponibles.","no_match":"Cap model coincideix amb la teva cerca.","search":"Cerca models...","title":"Afegeix model"},"create":{"back":"Enrere","cancel":"Cancel·la","kind_label":"Tipus","models_hint":"Un model per línia, en ordre de reserva (per exemple, cc/claude-opus-4-7).","models_label":"Models","models_placeholder":"cc/claude-opus-4-7\nglm/glm-5.1","name_label":"Nom","name_placeholder":"p. ex. la-meva-reserva","submit":"Crea","title":"Combo nou"},"detail":{"add_model":"Afegeix model","back":"Torna als combos","delete":"Esborra el combo","delete_confirm":"Esborrar aquest combo?","delete_no":"Cancel·la","delete_yes":"Sí, esborra'l","drag_hint":"Arrossega un model per reordenar-lo","kind_label":"Tipus","models_count":"{count} model(s)","models_title":"Cadena de models","move_down":"Mou avall","move_up":"Mou amunt","no_models":"Aquest combo encara no té models.","refresh":"Actualitza","remove_model":"Elimina el model","rename":"Reanomena","rename_cancel":"Cancel·la","rename_placeholder":"Nom nou...","rename_save":"Desa"},"error":{"add_model_failed":"No s'ha pogut afegir el model","auth_required":"Cal autenticació","bad_response":"Resposta inesperada de 9Router","connection_failed":"No s'ha pogut connectar a 9Router","create_failed":"No s'ha pogut crear el combo","delete_failed":"No s'ha pogut esborrar el combo","dismiss":"Descarta","http_status":"HTTP {status}","invalid_name":"El nom només pot contenir lletres, números, -, _ i .","kind_failed":"No s'ha pogut actualitzar el tipus","login_failed":"No s'ha pogut iniciar la sessió","need_name_models":"Cal un nom i almenys un model.","need_password":"Introdueix la teva contrasenya.","remove_model_failed":"No s'ha pogut eliminar el model","rename_failed":"No s'ha pogut reanomenar el combo","reorder_failed":"No s'han pogut reordenar els models"},"kind":{"fallback":"Reserva","fusion":"Fusió","none":"Cap","round_robin":"Round-robin"},"list":{"delete":"Esborra el combo","delete_cancel":"Cancel·la","delete_confirm":"Confirma l'esborrat","empty":"Encara no hi ha combos. Crea'n un per començar.","kind":"Tipus: {kind}","new_combo":"Combo nou","no_match":"Cap combo coincideix amb la teva cerca.","open":"Obre el combo","refresh":"Actualitza","search":"Cerca combos...","title":"9Router — Combos"},"login":{"hint":"El panell requereix autenticació. Introdueix la contrasenya de 9Router per continuar.","password_placeholder":"Contrasenya...","submit":"Inicia sessió","title":"Inici de sessió de 9Router"},"settings":{"data_dir":{"description":"Directori de dades de 9Router (es fa servir per calcular el token de CLI quan el panell requereix inici de sessió). Per defecte: ~/.9router.","label":"Directori de dades"},"debug_logging":{"description":"Mostra missatges de depuració al registre de Noctalia.","label":"Registre de depuració"},"language":{"description":"Idioma de la interfície d'aquest connector. 'Auto' segueix l'idioma de la shell de Noctalia.","label":"Idioma","options":{"auto":"Auto (segueix la shell)","en":"English","vi":"Tiếng Việt"}},"server_host":{"description":"Nom de l'amfitrió del panell de 9Router. Per defecte: 127.0.0.1.","label":"Amfitrió del servidor"},"server_port":{"description":"Port del panell de 9Router. Per defecte: 20128.","label":"Port del servidor"}},"state":{"combos":"{count} combo(s)","tip":{"auth_required":"9Router: cal iniciar la sessió","offline":"9Router: sense connexió","online":"9Router: connectat"}}},"hyprland-visual-editor":{"panel":{"animations":"Animacions","apply":"Aplica","apply_hint":"Tria un preset i prem Aplica per aplicar-lo a l'instant","borders":"Vores","count_animations":"animacions","count_borders":"vores","count_shaders":"shaders","credits":"Basat en el widget original de XimoCP · portat a Luau per Hermy i Linux Fertxo","current_preset":"Preset aplicat actualment","disabled":"HVE desactivat","effects":"Efectes","enable_warning":"Activa l'interruptor per aplicar canvis","enabled":"HVE activat","home":"Inici","no_presets":"No hi ha presets — executa scan.sh","none":"Cap","presets_available":"presets disponibles"},"settings":{"active_anim_file":{"label":"Animació activa"},"active_border_file":{"label":"Vora activa"},"active_shader_file":{"label":"Shader actiu"},"is_system_active":{"description":"Interruptor mestre que activa els efectes de Hyprland Visual Editor.","label":"Sistema actiu"}},"widget":{"tooltip":"Hyprland Visual Editor — obrir el panel"}},"yt-music":{"settings":{"debug_logging":{"description":"Escriviu registres detallats al fitxer de registre del connector per ajudar a solucionar problemes.","label":"Registre de depuració"}}}},"de":{"anilist":{"panel":{"close":"Schließen","close_preview":"Vorschau schließen","connect":"Mit AniList verbinden","cover_preview":"Cover anzeigen","decrement":"Vorherige Folge/Kapitel","download_cover":"Cover herunterladen","download_cover_failed":"Das Coverbild konnte nicht gespeichert werden.","download_cover_success":"Cover wurde unter {path} gespeichert","download_cover_unavailable":"Installiere zenity oder kdialog um einen Speicherort auszuwählen","empty":"Keine Einträge in dieser Liste","error":"Fehler: {message}","filter_all":"Alle","filter_completed":"Abgeschlossen","filter_current":"Ansehen","filter_dropped":"Abgebrochen","filter_paused":"Pausiert","filter_planning":"Geplant","filter_planning_manga":"Geplant zu lesen","filter_reading":"Lesen","filter_rereading":"Erneut lesen","filter_rewatching":"Wiederholen","increment":"Nächste Folge/Kapitel","loading":"Listen werden geladen...","loading_more":"Lade mehr Einträge...","loading_progress":"Listen werden geladen... {anime} Anime, {manga} Manga","logged_in_as":"Angemeldet als {name}","login_help":"Gib deine Client ID und dein Client Secret in den Plugin Einstellungen ein und klicke auf Verbinden. Dein Browser wird geöffnet, du autorisierst AniList und das Plugin schließt die Anmeldung ab. ","login_title":"Bei AniList anmelden","login_waiting":"Warten auf Browser-Anmeldung…","logout":"Abmelden","mark_complete":"Abschließen","next_episode":"Folge {episode} in Kürze","open_anilist":"Auf AniList öffnen","progress_anime":"Folge {current}/{total}","progress_anime_unknown":"Folge {current}","progress_manga":"Kapitel {current}/{total}","progress_manga_unknown":"Kapitel {current}","refresh":"Liste neu laden","refreshing":"Wird aktualisiert…","settings":"Plugin Einstellungen","tab_anime":"Anime","tab_manga":"Manga","title":"AniList (Inoffiziell)","updating":"Aktualisiere..."},"service":{"empty_response":"AniList hat eine leere Antwort zurückgegeben","invalid_response":"AniList hat eine unlesbare Antwort zurückgegeben","invalid_token":"Ungültiger oder abgelaufener Zugriffstoken","mutation_failed":"Update fehlgeschlagen","network_error":"AniList konnte nicht erreicht werden","not_configured":"Lege AniList Client ID und Client Secret in den Plugin Einstellungen fest","oauth_busy":"Der Anmeldevorgang läuft bereits","oauth_failed":"Browser Login fehlgeschlagen","oauth_unavailable":"Der lokale Anmelde-Helper konnte nicht gestartet werden. Ist Python 3 installiert?"},"settings":{"access_token":{"description":"Überspringe die Browser-Anmeldung wenn du bereits einen Bearer Token hast. Normalerweise leer lassen","label":"Zugriffs Token (optional)"},"client_id":{"description":"Deine AniList Entwickler App Client ID (anilist.co/settings/developer). Weiterleitungs-URL muss http://127.0.0.1:7823/callback sein","label":"Client ID"},"client_secret":{"description":"das Client Secret von der gleichen AniList App. Gib es niemals öffentlich weiter — jeder Nutzer sollte seine eigene App nutzen","label":"Client Secret"},"count_mode":{"description":"Welche Zahl soll neben dem Bar-Symbol angezeigt werden?","label":"Anzahl","options":{"completed":"Abgeschlossen {anime}","current":"Ansehen (Anime am Schauen)","in_progress":"Am Schauen/Lesen (Anime + Manga)","planning":"Geplant (Anime)","total":"Gesamt (Alle Anime)"}},"glyph":{"label":"Bar-Symbol"}},"widget":{"tooltip_completed":"{count} Anime angeschlossen","tooltip_current":"{count} Anime am Schauen","tooltip_empty":"AniList — Bibliothek öffnen","tooltip_error":"AniList — {error}","tooltip_in_progress":"{count} Am Schauen (Anime + Manga)","tooltip_loading":"AniList — Wird geladen...","tooltip_oauth":"AniList — Warte auf Browser-Login...","tooltip_planning":"{count} Anime geplant","tooltip_total":"{count} Anime auf deiner Liste"}},"arch-updater":{"action_back":"Zurück","action_check":"Updates prüfen","action_dismiss":"Verwerfen","action_open_log":"Log öffnen","action_open_news":"News öffnen","action_polkit_install":"Ask once","action_run_terminal":"In Terminal erneut versuchen","action_update":"Aktualisieren","activity":{"days_ago":{"one":"vor 1 Tag","other":"vor {count} Tagen"},"hours_ago":{"one":"vor 1 Stunde","other":"vor {count} Stunden"},"just_now":"gerade eben","minutes_ago":{"one":"vor 1 Minute","other":"vor {count} Minuten"},"never_updated":"Noch nie aktualisiert","pending_at":{"one":"1 ausstehendes Update","other":"{count} ausstehende Updates"},"title":"Aktivität","updated":"Aktualisiert","updated_days_ago":{"one":"Vor 1 Tag aktualisiert","other":"Vor {count} Tagen aktualisiert"},"updated_today":"Heute aktualisiert"},"caption_checked":"geprüft {time}","caption_ignored":{"one":"1 Paket ignoriert","other":"{count} Pakete ignoriert"},"changelog_empty":"Kein Changelog verfügbar","changelog_title":"Was ist neu","err_check_timeout":"Zeitüberschreitung beim Prüfen auf Updates","err_no_checkupdates":"checkupdates nicht gefunden, pacman-contrib installieren und PATH prüfen","err_no_pkexec":"pkexec nicht gefunden, Polkit ist nicht installiert","err_no_terminal":"Kein Terminal-Emulator gefunden, in den Plugin-Einstellungen festlegen","err_no_xdg_open":"xdg-open nicht gefunden, Paketseite kann nicht geöffnet werden","err_polkit_install":"Polkit regeln können nicht installiert werden, Details im Systemlog prüfen","err_run_failed":"Update fehlgeschlagen (exit {code}), versuche es erneut im Terminal oder prüfe die Log-Datei","err_spawn":"checkupdates konnte nicht gestartet werden","err_terminal_closed":"Das Terminal-Fenster wurde geschlossen, bevor das Update fertig war. Versuche es erneut im Terminal oder prüfe die Log-Datei","history_rollback_tag":"Rollback","history_title":"Verlauf aktualisieren","hover_hint":"Zeigt beim Überfahren eines Pakets die vollständigen Versionen","ignored_tag_settings":"einstellungen","ignored_tag_system":"pacman.conf","ignored_tip_settings":"durch die Ignorierliste in den Plugin-Einstellungen ignoriert, zum bearbeiten klicken.","ignored_tip_system":"durch IgnorePkg in pacman.conf ignoriert, zum bearbeiten klicken.","ignored_title":"Ignorierte Pakete","launcher":{"check_subtitle":"Pacman, AUR und Flatpak auf Updates prüfen","news_subtitle":"Arch-Linux-News-Seite öffnen","update_subtitle":"Terminal öffnen und Update ausführen"},"log_title":"Update-Log","log_waiting":"Warte auf die polkiit password prompt und auf die erste Log-Ausgabe…","more_packages":"+{count} weitere","news_unread":{"one":"1 ungelesener Arch-News-Beitrag: „{title}“","other":"{count} ungelesene Arch-News-Beiträge, zuletzt: „{title}“"},"notify_updates":{"one":"1 Paket zu aktualisieren","other":"{count} Pakete zu aktualisieren"},"reboot_recommended":"Neustart empfohlen, der laufende Kernel ist nicht mehr installiert","run":{"press_key":"Beliebige Taste zum Schließen drücken"},"settings":{"activity_history_length":{"description":"Wie viele der letzten Prüfungen für das Aktivitätsdiagramm aufbewahrt werden.","label":"Länge des Aktivitätsverlaufs"},"assume_yes":{"description":"Übergibt --noconfirm / -y, damit Paketmanager nicht nach Bestätigung fragen. Aus bedeutet, du bestätigst jedes Paket im Terminal-Fenster selbst.","label":"Automatisch mit Ja bestätigen"},"aur_check_cmd":{"description":"Wird nur verwendet, wenn oben „Eigener Befehl“ gewählt ist. Muss pro Paket eine Zeile im Format 'name oldver -> newver' ausgeben, wie 'yay -Qua' es tut.","label":"Eigener AUR-Prüfbefehl"},"aur_helper":{"description":"Welcher AUR-Helfer AUR-Pakete prüft und aktualisiert. „Automatisch erkennen“ versucht zuerst yay, dann paru. „Eigener Befehl“ verwendet den unten angegebenen Prüfbefehl.","label":"AUR-Helfer","options":{"auto":"Automatisch erkennen (yay, dann paru)","custom":"Eigener Befehl","off":"Aus, nur Pacman","paru":"paru","yay":"yay"}},"auto_check_hours":{"description":"Prüft automatisch alle N Stunden auf Updates. 0 (Standard) prüft nie von selbst.","label":"Intervall für automatische Prüfung (Stunden)"},"check_arch_news":{"description":"Ruft den Arch-Linux-News-Feed ab und markiert ungelesene Beiträge im Panel.","label":"Arch-Linux-News prüfen"},"check_reboot_needed":{"description":"Prüft, ob die Dateien des aktuell laufenden Kernels noch vorhanden sind. Fehlen sie, wurde ein neuerer Kernel installiert, und erst ein Neustart wechselt darauf.","label":"Auf nötigen Neustart prüfen"},"flatpak_enabled":{"description":"Prüft zusätzlich (und führt beim Aktualisieren) 'flatpak update' aus. Wird automatisch übersprungen, wenn Flatpak nicht installiert ist.","label":"Flatpak einbeziehen"},"glyph":{"description":"Das für das Widget in der Bar angezeigte Symbol.","label":"Bar-Symbol"},"hide_on_empty":{"description":"Blendet das Widget vollständig aus, wenn keine Updates ausstehen und kein Neustart empfohlen wird. Aus (Standard) zeigt das Symbol immer.","label":"Ausblenden, wenn nichts anliegt"},"hide_polkit_hint":{"description":"Blendet den Hinweis aus, polkit zu installieren.","label":"Hinweis zu Polkit ausblenden"},"ignore_packages":{"description":"Paketnamen, die aus der Zählung ausgeschlossen und beim Update zusätzlich als --ignore übergeben werden, ergänzend zu pacman.confs eigenem IgnorePkg.","label":"Pakete ignorieren"},"notify_on_updates":{"description":"Sendet eine Desktop-Benachrichtigung, wenn eine Prüfung aktualisierbare Pakete findet.","label":"Bei gefundenen Updates benachrichtigen"},"rollback_auto_ignore":{"description":"Ignoriert Pakete automatisch, die nach einem Rollback noch installiert sind, bis sie wieder aktualisiert werden.","label":"Pakete nach einem Rollback ignorieren"},"show_activity_graph":{"description":"Zeichnet die Anzahl ausstehender Updates über die letzten Prüfungen sowie den letzten Update-Zeitpunkt auf und zeigt sie als kleines Diagramm im Panel. Deaktiviert stoppt auch die Aufzeichnung.","label":"Aktivitätsdiagramm anzeigen"},"show_changelog_after_update":{"description":"Öffnet den Changelog im Panel automatisch, sobald ein Update erfolgreich abgeschlossen wurde.","label":"Changelog nach dem Update anzeigen"},"show_count":{"description":"Zeigt die Anzahl ausstehender Updates neben dem Bar-Symbol.","label":"Anzahl der Updates anzeigen"},"show_download_size":{"description":"Schätzt die gesamte Downloadgröße der ausstehenden Pacman-Pakete mit 'pacman -Si'. AUR- und Flatpak-Größen sind nicht enthalten.","label":"Downloadgröße anzeigen"},"terminal":{"description":"Terminal-Befehl für den Update-Lauf, z. B. kitty oder ghostty. Leer (Standard) verwendet Noctalias eigene Terminal-Erkennung ($TERMINAL, dann die gängigen Emulatoren).","label":"Terminal"},"update_cmd":{"description":"Vollständige Überschreibung des im Terminal ausgeführten Befehls beim Aktualisieren. Leer (Standard) baut ihn aus AUR-Helfer, Ignorierliste, Flatpak und „Automatisch mit Ja bestätigen“ oben zusammen.","label":"Eigener Update-Befehl"},"update_mode":{"description":"Wie Updates installiert werden. Hintergrund (nicht interaktiv) verwendet den AUR-Helfer und --noconfirm, Terminal öffnet ein Terminal-Fenster, in dem du die Updates selbst bestätigen kannst.","label":"Update modus","options":{"background":"Im hintergrund (nicht interaktiv & RISKANT)","terminal":"In einem Terminal-Fenster"}}},"size_gib":"≈ {value} GiB Downloadgröße","size_mib":"≈ {value} MiB Downloadgröße","source":{"aur":"AUR","aur_named":"AUR ({helper})","flatpak":"Flatpak","pacman":"Pacman"},"status_checking":"Prüfe auf Updates…","status_checking_step":"Prüfe {step}…","status_clean":"System ist aktuell","status_error":"Prüfung fehlgeschlagen","status_idle":"Noch nicht geprüft","status_missing":"checkupdates fehlt, pacman-contrib installieren","status_ready":{"one":"1 Paket zu aktualisieren","other":"{count} Pakete zu aktualisieren"},"status_rolling_back":"Rollback läuft…","status_running":"Update läuft in einem Terminal…","status_running_terminal":"Update läuft in einem Terminal-Fenster…","tip_changelog":"Zeigt, was sich in den einzelnen Versionen geändert hat","tip_check":"Jetzt auf Updates prüfen","tip_close":"Schließen","tip_copy":"Name und Versionen kopieren","tip_history_segment":"klicke, um die Pakete anzuzeigen","tip_open_page":"Paketseite öffnen","tip_polkit_install":"Polkit-Regeln installieren, damit Updates im Hintergrund laufen","tip_rollback":"Rollback zurück zur version {version}, zusammen mit abhängigen Paketen.","tip_rollback_run":"alle Pakete auf die Versionen zurücksetzen, die vor dem Rollback installiert waren","tip_run_terminal":"Öffnet ein Terminal-Fenster, in dem du die Updates selbst bestätigen kannst","tip_update":"Update in einem Terminal-Fenster ausführen","tip_update_terminal":"in einem terminal-Fenster ausführen, in dem prompts und die PKGBUILD ausgabe angezeigt werden","title":"Arch Updater","tooltip_checked":"Geprüft","tooltip_hints":"Klick: Panel · rechts: jetzt prüfen","tooltip_news":"Arch News","tooltip_news_value":{"one":"1 ungelesen","other":"{count} ungelesen"},"tooltip_pending":"Ausstehend","tooltip_reboot_key":"Neustart","tooltip_reboot_value":"empfohlen","tooltip_status":"Status","up_to_date":"Aktuell: {sources}"},"calculator":{"bar":{"tooltip":"Rechner"},"panel":{"copied":"Kopiert: {value}","copy":"Ergebnis kopieren","deg":"GRAD","placeholder":"Ausdruck eingeben, Enter drücken","rad":"RAD","title":"Rechner"},"settings":{"angle_unit":{"description":"Einheit, die die trigonometrischen Funktionen verwenden.","label":"Winkeleinheit","options":{"deg":"Grad","rad":"Bogenmaß"}},"max_bar_length":{"description":"Längere Ergebnisse werden in der Leiste mit Auslassungspunkten gekürzt.","label":"Maximale Länge in der Leiste"},"precision":{"description":"Maximale Anzahl Nachkommastellen bei der Ergebnisformatierung.","label":"Dezimalgenauigkeit"},"show_bar_value":{"description":"Zeigt das letzte Ergebnis neben dem Rechner-Symbol an.","label":"Wert in der Leiste anzeigen"}},"state":{"error":"Fehler"}},"cmd-runner":{"notify":{"error":"Befehl '{name}' fehlgeschlagen (Exit Code {code}).","success":"Befehl '{name}' erfolgreich ausgeführt."},"panel":{"add_button":"Neuer Befehl","cancel_button":"Abbrechen","cmd_label":"CLI Befehl","delete":"Löschen","edit":"Bearbeiten","logs":"Log","name_label":"Befehlsname","no_commands":"Keine Befehle vorhanden.","run_button":"Ausführen","running":"Läuft...","save_button":"Speichern","subtitle":"Befehle per Knopfdruck lautlos im Hintergrund ausführen","sudo_label":"Sudo (root) erforderlich","sudo_pass_label":"Sudo-Passwort (einmalig)","title":"Command Runner"},"settings":{"show_label":{"description":"Blendet den Text 'Befehle' neben dem Icon in der Top-Bar ein","label":"Text-Label in der Bar anzeigen"},"show_toast":{"description":"Zeigt eine Toast-Meldung bei Abschluss oder Fehler eines Befehls an","label":"Benachrichtigungen anzeigen"}},"title":"Command Runner","widget":{"label":"Befehle","tooltip":"Command Runner - CLI-Befehle im Hintergrund ausführen"}},"ideapad-conservation-mode":{"error":{"device_not_found":"Die ideapad_acpi conservation_mode sysfs-Datei wurde auf diesem Gerät nicht gefunden.","read_failed":"Der aktuelle conservation_mode-Status konnte nicht gelesen werden.","write_failed":"Schreiben von conservation_mode fehlgeschlagen ({error}); das Plugin-Verzeichnis zum Ausführen des Setups konnte nicht gefunden werden.","write_failed_manual":"Schreiben von conservation_mode fehlgeschlagen ({error}). Führe scripts/setup-permissions.sh manuell mit sudo aus und melde dich dann ab und wieder an."},"notify":{"disabled":"Deaktiviert – laden bis 100%","enabled":"Aktiviert – laden begrenzt für Akkugesundheit","setup_needed":"Einmalige Einrichtung erforderlich. Überprüfe das gerade geöffnete Terminalfenster."},"shortcut":{"label":"Erhaltung","na":"Erhaltung N/V"},"title":"Erhaltungsmodus"},"nextboot-selector":{"notification":{"failed_to_set_next_boot":"Der nächste Systemstart konnte nicht festgelegt werden","timed_out":"Zeitüberschreitung"},"panel":{"reset":"Zurücksetzen","title":"Auswahl für den nächsten Startvorgang"},"setting":{"close_on_select":{"description":"Ob das Fenster nach der Auswahl eines Eintrags geschlossen werden soll","label":"Schließen wenn  ausgewählt"},"excluded_keywords":{"description":"Schlüsselwörter zum Ausschluss von Einträgen (Groß-/Kleinschreibung wird nicht berücksichtigt)","label":"Ausgeschlossene Schlüsselwörter"},"privilege_command":{"description":"Befehl zum Erhöhen der Berechtigungen des efibootmgr Befehls","label":"Privilege-Befehl"},"reboot_command":{"description":"Befehl, der ausgeführt werden soll, wenn „Neustart bei Auswahl“ aktiviert ist","label":"Befehl zum Neustart"},"reboot_on_select":{"description":"Ob nach der Auswahl eines Eintrags automatisch ein Neustart erfolgen soll","label":"Neustart bei Auswahl"}}},"noctwhspr":{"settings":{"root":{"description":"Verzeichnis, in dem hyprwhspr installiert ist. Behalte die Standardeinstellung bei, es sei denn, hyprwhspr befindet sich unter einem nicht standardmäßigen Präfix","label":"hyprwhspr Installationsverzeichnis"}},"title":"noctwhspr"},"portctl":{"categories":{"cloud":"Cloud","containers":"Container","databases":"Datenbanken","development":"Entwicklung","other":"Andere","servers":"Server"},"panel":{"cancel":"Abbrechen","kill":"Beenden","kill_confirm":"{name} beenden?","killing":"{name} wird beendet…","no_ports":"Keine lauschenden Ports","no_results":"Keine Ergebnisse für \"{query}\"","pid_copied":"PID {pid} kopiert","search_placeholder":"Suche Port, Prozess, PID…","tcp":"TCP","udp":"UDP"},"service":{"kill_failed":"PID {pid} konnte nicht beendet werden","ss_not_found":"ss (iproute2) nicht gefunden — Installiere das iproute2 Paket","terminated":"Prozess {pid} wurde beendet"},"settings":{"glyph":{"description":"In der Leiste angezeigtes Symbol","label":"Symbol"},"hide_system_ports":{"description":"Ports unterhalb von 1024 ausblenden (privilegierte/Root-Ports)","label":"System Ports ausblenden"},"hide_unknown_ports":{"description":"Ports ausblenden, auf deren Prozessinformationen nicht zugegriffen werden kann (z. B. rootlessport, root-eigene Prozesse ohne sudo)","label":"Unbekannte Ports ausblenden"},"ignore_list":{"description":"Durch Kommas getrennte Teilzeichenfolgen von Prozessnamen, die ausgeblendet werden sollen (z. B. discord,chrome,steam)","label":"Prozesse ignorieren"},"ignore_ports":{"description":"Durch Kommas getrennte Portnummern, die ausgeblendet werden sollen (z.B. 37700,6463)","label":"Ports ignorieren"},"refresh_interval":{"description":"Sekunden zwischen den Port-Scans","label":"Aktualisierungsintervall"}},"title":"Portctl"},"prismlauncher-instances":{"no_instances":{"subtitle":"Filter: ","title":"Keine Instanzen gefunden"},"settings":{"launcher_exec_command":{"description":"Starte Prismlauncher oder einen Fork deiner Wahl","label":"Prism-Ausführungsdatei"},"prismlauncher_path":{"description":"Pfad zu PrismLauncher","label":"PrismLauncher Pfad"}}},"profile-switcher":{"common":{"add":"Hinzufügen","cancel":"Abbrechen","create":"Erstellen","load":"Laden","loading":"Wird geladen...","manual":"Manuell","next":"Weiter","no_schedule":"Kein Zeitplan","plugin_name":"Profilumschalter","previous":"Zurück","profiles":"Profile","refresh":"Aktualisieren","save":"Speichern"},"editor":{"add_monitor_override":"Monitor-Ausnahme hinzufügen","auto":"Automatisch","automatic":"Automatisch","back_to_profiles":"Zurück zu den Profilen","builtin":"Integriert","builtin_palette":"Integrierte Palette","community":"Community","community_palette":"Community-Palette","community_palette_id":"Community-Paletten-ID","community_palettes_not_loaded":"Community-Paletten nicht geladen","connector_placeholder":"DP-1","could_not_load_palettes":"Paletten konnten nicht geladen werden: {error}","could_not_read_directory":"Verzeichnis konnte nicht gelesen werden: {error}","create_apply":"Erstellen & Anwenden","current_community_palette":"Aktuelle Community-Palette","custom":"Benutzerdefiniert","custom_palette":"Benutzerdefinierte Palette","dark":"Dunkel","default":"Standard","default_wallpaper":"Standard-Hintergrund","edit_profile":"{name} bearbeiten","filename":"Datei: ~/.config/noctalia/profiles/{id}.toml","friday":"Fr","from":"Von","general":"ALLGEMEIN","light":"Hell","loading_community_palettes":"Community-Paletten werden geladen...","manual":"Manuell","manual_description":"Dieses Profil wird niemals automatisch durch den Zeitplan aktiviert.","manual_profile":"Manuelles Profil","monday":"Mo","name":"Name","new_profile":"Neues Profil","no_custom_palettes":"Keine benutzerdefinierten Paletten gefunden","no_images_found":"Keine Bilder im Verzeichnis gefunden","no_profile_selected":"Kein Profil ausgewählt","no_wallpaper_directory":"Kein Hintergrund-Verzeichnis konfiguriert","no_wallpaper_selected":"Kein Hintergrund ausgewählt","open_from_selector":"Öffne den Editor über die Profilauswahl.","page":"Seite {page} / {pages}","palette":"PALETTE","palettes_loaded":"{count} Paletten geladen","profile_id":"Profil-ID","profile_id_placeholder":"home / work / gaming","profile_name_placeholder":"Profilname","range":"{start}-{end} von {total}","remove_monitor":"{monitor} entfernen","saturday":"Sa","save_apply":"Speichern & Anwenden","scan":"Einlesen","schedule":"ZEITPLAN","select_community_palette":"Community-Palette auswählen","select_custom_palette":"Benutzerdefinierte Palette auswählen","select_palette":"Palette auswählen","select_scheme":"Schema auswählen","sunday":"So","theme_mode":"THEME-MODUS","thursday":"Do","tuesday":"Di","until":"Bis","wallpaper":"Hintergrund","wallpaper_count":"{count} Hintergründe","wallpaper_directory":"Hintergrund-Verzeichnis","wallpaper_directory_placeholder":"/pfad/zu/hintergruenden","wallpaper_for_monitor":"Hintergrund für {monitor}","wallpaper_not_found":"Hintergrund nicht gefunden","wallpaper_scheme":"Hintergrund-Schema","wallpaper_section":"HINTERGRUND","wednesday":"Mi","zero_wallpapers":"0 Hintergründe"},"error":{"connector_empty":"Monitor-Anschluss ist leer","default_wallpaper_not_found":"Standard-Hintergrund nicht gefunden:\n{path}","missing_profile_id":"Profil-ID fehlt","monitor_wallpaper_not_found":"Hintergrund für {monitor} nicht gefunden:\n{path}","profile_does_not_exist":"Profil existiert nicht","profile_exists":"Profil existiert bereits: {id}","profile_id_invalid":"Die Profil-ID darf nur Buchstaben, Zahlen, _ oder - enthalten","profile_not_found":"Profil nicht gefunden: {id}","save_profile":"Profil konnte nicht gespeichert werden: {error}","unknown_command":"Unbekannter Befehl: {command}"},"message":{"active":"Aktiv: {id}","applied":"{name} angewendet","created":"{name} erstellt","no_active_profile":"Kein aktives Profil","saved":"{name} gespeichert"},"panel":{"active_profile":"Aktives Profil: {name}","create_profile":"Profil erstellen","no_active_profile":"Kein aktives Profil","no_profiles":"Keine Profile vorhanden","subtitle":"Hintergrund · Palette · Theme","title":"Darstellungsprofile"}},"proton-pass":{"copied-password":"Passwort in die Zwischenablage kopiert","failed-list-vaults":"Auflistung der Tresore fehlgeschlagen. Bist du bei pass-cli angemeldet?","item-not-found":"Eintrag nicht gefunden","loading-items":"Lade Einträge…","loading-vaults":"Tresore werden geladen…"},"razer":{"settings":{"low_battery_threshold":{"description":"Akkustand in Prozent, ab dem eine Warnbenachrichtigung gesendet wird","label":"Warnschwelle für niedrigen Akkustand (%)"},"show_percentage":{"description":"Prozentzahl neben dem Gerätesymbol in der Leiste anzeigen","label":"Akkustand in Prozent anzeigen"},"sync_theme_color":{"description":"Razer-LED-Farben automatisch an Noctalias aktive Akzentfarbe anpassen","label":"RGB mit Theme synchronisieren"}},"ui":{"brightness":"LED-Helligkeit","custom_color_placeholder":"Hex-Farbe (z. B. #FF0055)","custom_dpi_placeholder":"Eigene DPI (z. B. 1500)","daemon_not_running":"OpenRazer-Daemon läuft nicht","lighting_effect":"Beleuchtungseffekt","no_devices":"Keine Razer-Geräte gefunden","no_devices_hint":"Schließe eine unterstützte Razer-Maus, Tastatur oder ein Headset an.","off":"Aus","panel_title":"Razer Control Center","picker":"Farbauswahl","razer_green":"Razer-Grün","refresh":"Aktualisieren","sensitivity":"Empfindlichkeit (DPI)","set":"Übernehmen","spectrum":"Spektrum","start_daemon":"Daemon starten","start_daemon_hint":"Starte den Daemon mit:\nsystemctl --user start openrazer-daemon","theme_fallback":"Theme-Farbe nicht verfügbar, Standard Razer-Grün verwendet","theme_role":"Farbrolle","theme_sync":"Theme-Sync","theme_synced":"Theme-Rolle gesetzt auf: ","wired":"Kabelgebunden"}},"sharednd":{"notify":{"no_niri_body":"Das sieht nach einer niri-Sitzung aus (NIRI_SOCKET ist gesetzt), aber die niri-Binärdatei befindet sich nicht im PATH, sodass die Bildschirmfreigabe nicht erkannt werden kann.","no_niri_title":"ShareDND: niri nicht gefunden"},"settings":{"always_off_after":{"description":"Deaktiviere Nicht stören, wenn die Freigabe endet, auch wenn diese Funktion bereits vor Beginn der Freigabe aktiviert war. Im deaktivierten Zustand wird DND nur dann deaktiviert, wenn dieses Plugin es aktiviert hat.","label":"Immer DND nach dem Teilen deaktivieren"},"only_active":{"description":"Es werden nur Screencasts gezählt, die aktiv gestreamt werden. Ist diese Funktion deaktiviert, bleibt Nicht stören bei jeder geöffneten Screencast-Sitzung aktiviert (auch wenn diese angehalten ist oder nichts anzeigt).","label":"Nur aktive Streams"}},"title":"ShareDND"},"shelly":{"bar":{"click_handler":{"error":{"missing_cli":"Shelly CLI ist nicht installiert. Bitte installiere es, um diese Funktion nutzen zu können.","missing_gui":"Shelly GUI ist nicht installiert. Bitte installiere es, um diese Funktion nutzen zu können."}},"text":{"error":"?","updates":{"one":"{count} Update","other":"{count} Updates"}},"tooltip":{"aur_title":"AUR","error":{"decode_json":"Decodierung der Ausgabe von `shelly check-updates --json` fehlgeschlagen"},"flatpak_title":"Flatpak","no_updates":"System ist auf dem neuesten Stand","packages_title":"Pakete"}},"notify":{"new_updates":{"description":"Für dein System sind {count} neue Updates verfügbar.","title":"Neue Updates verfügbar"}},"settings":{"bar_font_size":{"description":"Die Schriftgröße des Leistentextes.","label":"Schriftgröße der Leiste"},"bar_label":{"description":"Bezeichnung, die in der Leiste angezeigt werden soll.","label":"Leistenbezeichnung","options":{"count_and_label":"Zählen und beschriften (z.B. 5 Aktualisierungen)","count_only":"Nur zählen (z.B. 5)"}},"click_action":{"description":"Was passiert, wenn man auf die Leiste klickt","label":"Klick Aktion","options":{"none":"Nichts","open_gui":"Öffne Shelly GUI","open_updater":"Starte Update in Terminal"}},"color":{"description":"Die Farbe des Textes in der Leiste","label":"Farbe"},"glyph":{"description":"Das von dem Label angezeigte Symbol","label":"Symbol"},"glyph_color":{"description":"Die Farbe des Symbols","label":"Symbol Farbe"},"glyph_size":{"description":"Die Größe des Symbols","label":"Symbol Größe"},"hide_when_up_to_date":{"description":"Ob die Leiste ausgeblendet werden soll, wenn keine Aktualisierungen verfügbar sind","label":"Ausblenden wenn auf dem neuesten Stand"},"interval":{"description":"Wie oft der Dienst im Hintergrund nach Updates sucht","label":"Aktualisierungsintervall in Sekunden"},"notify":{"description":"Ob bei verfügbaren Updates eine Benachrichtigung angezeigt werden soll","label":"Benachrichtigen"}},"title":"Shelly"},"todo":{"clear_done_confirm":"Alle erledigten Einträge löschen?","clear_done_no":"Abbrechen","clear_done_yes":"Löschen","empty":"Noch keine Aufgaben – mit + hinzufügen","placeholder":"Neue Aufgabe…","prio_important":"Wichtig","prio_low":"Niedrig","prio_medium":"Mittel","save_failed":"Das Speichern der Aufgabenliste ist fehlgeschlagen","settings":{"glyph":{"description":"Das Symbol, das für das To Do Widget in der Leiste angezeigt wird.","label":"Leisten-Symbol"},"todo_folder":{"description":"Ordner, in dem die Aufgabenliste (todo.json) gespeichert ist. Standardmäßig ist dies ~/Documents/Todo","label":"To Do Ordner"}},"sort_manual":"Manuell","sort_priority":"Priorität","tip_add":"Aufgabe hinzufügen","tip_clear_done":"Alle erledigten Aufgaben löschen","tip_close":"Schließen","tip_commit":"Speichern (Enter)","tip_delete":"Aufgabe löschen","tip_done":"Als erledigt markieren","tip_edit":"Bearbeiten","tip_grip":"Zum Neuanordnen ziehen","tip_grip_drop":"Klicke einen anderen Griff an, um hier abzusetzen, oder diesen hier, um den Vorgang abzubrechen","tip_settings":"Plugin Einstellungen","tip_sort":"Modus wechseln","tip_undone":"Als Aufgabe markieren","title":"To Do","tooltip":"To Do — {count} zu erledigen"},"um5606_fan_state":{"settings":{"poll_interval":{"description":"Abfrageintervall in ms","label":"Abfrageintervall"},"show_label":{"label":"Label anzeigen"}},"title":"ASUS UM5606 Fan State"},"upbeat":{"settings":{"beat_display":{"description":"Internet-Zeitformat umschalten (.beats)","label":".beats anzeigen"},"show_centibeats":{"description":"Anzeige der Subbeats ein-/ausschalten (.xx)","label":"Subbeats anzeigen"},"time_format_toggle":{"description":"24-Stunden-Anzeige","label":"24-Stunden-Anzeige umschalten"}}},"web-launcher":{"notify":{"message":"Öffne {name}","title":"Websites"},"settings":{"command":{"description":"Befehl zum Starten der Website. Beispiel: \"firefox --new-window\"","label":"Befehl"},"icon_provider":{"description":"Icon Downloadquelle","direct":"Website-eigenes favicon.ico","duckduckgo":"DuckDuckGo","google":"Google","label":"Icon Anbieter"},"links":{"description":"Format: Name|https://url","label":"Links"},"notify":{"description":"Beim Öffnen des Links benachrichtigen","label":"Benachrichtigen"}}},"zed-provider":{"database-empty":"Die Zed-Datenbank ist leer oder wurde nicht gefunden","filter-empty":"Filter: \"{filter}\"","loading":"Wird geladen…","loading-subtitle":"Lese Zed-Projekte","no-projects-found":"Keine Projekte gefunden","settings":{"db_path":{"description":"Pfad zu Zed's db.sqlite Datei","label":"Zed-Datenbankpfad"},"max_results":{"description":"Maximale Anzahl der anzuzeigenden Projekte","label":"Maximale Ergebnisse"},"new_window":{"description":"Ausgewähltes Projekt in einem neuen Zed-Fenster öffnen.","label":"In neuem Fenster öffnen"}}}},"en":{"9router-control":{"add_model":{"back":"Back to combo","empty":"No models available.","no_match":"No models match your search.","search":"Search models…","title":"Add Model"},"create":{"back":"Back","cancel":"Cancel","kind_label":"Kind","models_hint":"One model per line, in fallback order (e.g. cc/claude-opus-4-7).","models_label":"Models","models_placeholder":"cc/claude-opus-4-7\nglm/glm-5.1","name_label":"Name","name_placeholder":"e.g. my-fallback","submit":"Create","title":"New Combo"},"detail":{"add_model":"Add model","back":"Back to combos","delete":"Delete combo","delete_confirm":"Delete this combo?","delete_no":"Cancel","delete_yes":"Yes, delete","drag_hint":"Drag a model to reorder","kind_label":"Kind","models_count":"{count} model(s)","models_title":"Model Chain","move_down":"Move down","move_up":"Move up","no_models":"This combo has no models yet.","refresh":"Refresh","remove_model":"Remove model","rename":"Rename","rename_cancel":"Cancel","rename_placeholder":"New name…","rename_save":"Save"},"error":{"add_model_failed":"Failed to add model","auth_required":"Authentication required","bad_response":"Unexpected response from 9Router","connection_failed":"Could not connect to 9Router","create_failed":"Failed to create combo","delete_failed":"Failed to delete combo","dismiss":"Dismiss","http_status":"HTTP {status}","invalid_name":"Name can only contain letters, numbers, -, _ and .","kind_failed":"Failed to update kind","login_failed":"Login failed","need_name_models":"A name and at least one model are required.","need_password":"Please enter your password.","remove_model_failed":"Failed to remove model","rename_failed":"Failed to rename combo","reorder_failed":"Failed to reorder models"},"kind":{"fallback":"Fallback","fusion":"Fusion","none":"None","round_robin":"Round-robin"},"list":{"delete":"Delete combo","delete_cancel":"Cancel","delete_confirm":"Confirm delete","empty":"No combos yet. Create one to get started.","kind":"Kind: {kind}","new_combo":"New Combo","no_match":"No combos match your search.","open":"Open combo","refresh":"Refresh","search":"Search combos…","title":"9Router — Combos"},"login":{"hint":"The dashboard requires authentication. Enter your 9Router password to continue.","password_placeholder":"Password…","submit":"Log in","title":"9Router Login"},"settings":{"data_dir":{"description":"9Router data directory (used to compute the CLI token when the dashboard requires login). Default: ~/.9router.","label":"Data Directory"},"debug_logging":{"description":"Print debug messages to the Noctalia log.","label":"Debug Logging"},"language":{"description":"Language for this plugin's UI. 'Auto' follows the Noctalia shell language.","label":"Language","options":{"auto":"Auto (follow shell)","en":"English","vi":"Tiếng Việt"}},"server_host":{"description":"Hostname of the 9Router dashboard. Default: 127.0.0.1.","label":"Server Host"},"server_port":{"description":"Port of the 9Router dashboard. Default: 20128.","label":"Server Port"}},"state":{"combos":"{count} combo(s)","tip":{"auth_required":"9Router: login required","offline":"9Router: offline","online":"9Router: connected"}}},"9router-monitor":{"panel":{"active_now":"ACTIVE NOW","apply_reconnect":"Apply & reconnect","cached_tokens":"Cached","cached_tokens_label":"Cached Tokens","completion_tokens":"Completion tokens","connecting_to":"Connecting to {url}…","connection":"CONNECTION","cost":"Cost","dashboard_login":"DASHBOARD LOGIN","est_cost":"Est. Cost","est_cost_sub":"Estimated, not actual billing","hide_password":"Hide","host":"Host","invalid_host":"Please enter a valid hostname or IP (no http:// or path).","invalid_port":"Port must be a number between 1 and 65535.","login_description":"Session expired or authentication required. Enter your 9Router dashboard password to sign in.","logout":"Log out","models_usage":"MODEL USAGE","no_models_period":"No model usage recorded in this period.","no_quotas":"No quota data found for any provider.","no_recent":"No requests recorded yet. Send a prompt through 9Router and it will appear here.","open_dashboard":"Open dashboard","output_tokens":"Output Tokens","overview":"OVERVIEW","password_placeholder":"Dashboard password","port":"Port","prompt_tokens":"Prompt tokens","quota_remaining":"{pct}% remaining","quota_resets_at":"resets {date}","quota_resets_in":"resets in {time}","quota_tracker":"PROVIDER QUOTAS","quota_used":"{used} / {total} used","recent_models":"RECENT MODELS","recent_requests":"RECENT REQUESTS","refresh":"Refresh","remember_password":"Save password in system keyring","show_password":"Show","sign_in":"Sign in","signing_in":"Signing in…","title":"9Router","total_input_tokens":"Total Input Tokens","total_requests":"Total Requests","unlimited":"Unlimited","updated_at":"Updated {time} · {url}"},"period":{"24h":"24h","30d":"30d","60d":"60d","7d":"7d","today":"Today"},"settings":{"auth_mode":{"description":"Choose between automatic local CLI token or dashboard password.","label":"Authentication mode","options":{"cli_token":"CLI Token (Local secrets)","password":"Dashboard password"}},"base_url":{"description":"Full base URL of the 9Router server.","label":"Base URL"},"busy_hold_seconds":{"description":"How long to keep the active glow after a request finishes.","label":"Active hold duration (s)"},"cli_token_path":{"description":"Path to folder containing machine-id and auth/cli-secret (default ~/.9router).","label":"CLI secrets directory"},"dashboard_password":{"description":"Password used to authenticate with 9Router dashboard.","label":"Dashboard password"},"refresh_seconds":{"description":"How often to poll for status updates if the stream disconnects.","label":"Heartbeat refresh interval (s)"},"remember_password":{"description":"Store dashboard password in login keyring for automatic re-login.","label":"Remember dashboard password"},"show_model_label":{"description":"Show model text in the bar pill. If off, only shows the status glyph.","label":"Show model name in bar"}},"status":{"connecting":"CONNECTING…","idle":"IDLE","login_needed":"login needed","no_requests":"No requests yet","offline":"OFFLINE","request_in_flight":"REQUEST IN FLIGHT","session_expired":"SESSION EXPIRED","working":"working…"},"tab":{"activity":"Activity","models":"Models","quotas":"Quota Tracker"},"time":{"days_ago":"{count}d ago","hours_ago":"{count}h ago","just_now":"just now","minutes_ago":"{count}m ago","seconds_ago":"{count}s ago"},"tooltip":{"expired":"9Router session expired — click to log in","in_flight":"Request in flight","last_model":"Last model","offline":"9Router is offline"}},"agent-glow":{"panel":{"idle":"No agents working right now"},"settings":{"activity_threshold":{"description":"Only for agent types without session data (not opencode/claude): count the family as working while its process tree burns this much CPU. 100% = one full core.","label":"CPU fallback threshold (% of one core)"},"agents":{"description":"Comma-separated process name fragments to watch (match is OR). E.g. opencode,claude,codex,gemini,aider,goose.","label":"Agent processes"},"heartbeat_timeout":{"description":"Agent hooks report activity directly; a family stays lit this long after its last report. Covers quiet gaps between bursts.","label":"Heartbeat memory (seconds)"},"notify":{"description":"Show a notification when agents start or stop working.","label":"Notify on change"},"poll_interval":{"description":"How often to sample agent CPU activity. Lower reacts faster, higher uses less CPU.","label":"Poll interval (seconds)"},"pulse":{"description":"How fast the desktop glow breathes while agents work.","label":"Pulse speed","options":{"fast":"Fast","normal":"Normal","slow":"Slow"}},"session_timeout":{"description":"A session counts as working while its transcript or database entry was touched within this long. Based on real agent data, not CPU.","label":"Session freshness (seconds)"},"show_when_idle":{"description":"Keep a dim indicator in the bar when no agents run. When off, the bar tile only appears while agents work.","label":"Show in bar when idle"}},"started":"Agents are working — wallpaper is live","stopped":"All agents idle","title":"Agent Glow","tooltip":{"idle":"No agents working","working":"Agents working"}},"agentik":{"settings":{"chat_enabled":{"description":"Continue or safely fork OMP sessions, or start full sessions in any supported installed harness from the Agentik panel and optional desktop widget.","label":"Enable coding session chat"},"display_label":{"description":"What to show as the primary label for each session in the panel: the project directory, the agent-chosen session name, or the active model (name only, without the provider).","label":"Primary label","option_agent":"Agent name","option_model":"Model name","option_project":"Project"},"excluded_projects":{"description":"Comma-separated project directory names or full paths to omit from Agentik monitoring and chat.","label":"Excluded projects"},"filter_attention":{"description":"Show only sessions that are waiting or blocked.","label":"Needs attention only"},"high_contrast":{"description":"Use stronger session backgrounds and primary text contrast.","label":"Increase contrast"},"notification_cooldown_seconds":{"description":"Minimum time between Agentik attention notifications.","label":"Notification cooldown (seconds)"},"notification_privacy":{"description":"Keep notification bodies free of project and task names; show only the attention state.","label":"Privacy notifications"},"notify_attention":{"description":"Notify only when a known active agent changes to waiting or blocked. Disabled by default.","label":"Notify on attention needed"},"presentation_mode":{"description":"Slow orb motion and session rotation, show longer labels, and use high-contrast presentation styling.","label":"Presentation mode"},"reduce_motion":{"description":"Use static orb frames and reveal live assistant text immediately.","label":"Reduce motion"},"show_attention":{"description":"Show the active, waiting, or blocked state beside each session in the panel.","label":"Show attention state"},"show_count":{"description":"Show the ordinal number of the active agent currently displayed by this bar widget.","label":"Show displayed-agent number"},"show_intent":{"description":"Show the state inferred from active OMP agents' current tool intents in the bar.","label":"Show intent state"},"show_task":{"description":"Show the current OMP todo item for each session in the panel.","label":"Show current task"},"sort_mode":{"description":"Order panel sessions by running time or attention-first (blocked, then waiting).","label":"Sort order","option_attention":"Attention first","option_duration":"Running time"}},"ui":{"active_agents":{"one":"1 active agent","other":"{count} active agents"},"activity_empty":"No recorded tool operations","activity_title":"Live tool activity","attach_files":"Attach files","attach_screenshot":"Attach screenshot","attachments_unavailable":"Attachments are not supported by this session","attention_active":"Active","attention_blocked":"Blocked","attention_blocked_group":"Blocked · {count}","attention_copy_task":"Copy task","attention_counts":"{blocked} blocked · {waiting} waiting","attention_inbox":"Attention","attention_last_activity":"Last activity at {time}","attention_open_session":"Open session","attention_open_session_help":"Open the owning session. Terminal-owned sessions remain read-only here.","attention_recent_activity":"Recent activity","attention_required":"Attention required","attention_target":"Selected attention session","attention_waiting":"Waiting","attention_waiting_group":"Waiting · {count}","blocked_count":{"one":"1 blocked","other":"{count} blocked"},"chat_assistant":"Assistant","chat_cancel":"Cancel","chat_close":"Close chat","chat_code":"Code","chat_collapse_output":"Collapse output","chat_copy_code":"Copy code","chat_copy_output":"Copy complete output","chat_empty":"Send a message to this full coding session. Its harness-native tools, rules, skills, extensions, model, and history are active.","chat_error":"Coding session bridge returned an invalid response","chat_error_detail":"Session error: {error}","chat_event":"Event","chat_event_session_exit":"Session ended","chat_event_thinking":"Thinking","chat_event_todo":"Task update","chat_event_todo_update":"Todo update","chat_event_tool_call":"Tool call · {tool}","chat_event_tool_output":"Tool output · {tool}","chat_event_tool_start":"Tool started · {tool}","chat_expand_output":"Expand output","chat_find_sessions_placeholder":"Find recent sessions","chat_fork_active":"Active elsewhere · fork on send","chat_fork_snapshot":"Fork snapshot on send","chat_harness":"Harness","chat_loading":"Loading coding sessions...","chat_loading_conversation":"Loading conversation...","chat_model":"Model","chat_model_placeholder":"Type a model name","chat_model_suggestions":"Suggestions","chat_new":"New session","chat_no_sessions":"No OMP sessions found","chat_open":"Chat","chat_open_terminal":"Open in terminal","chat_picker_help":"Continue a finished OMP session, safely fork one that is active elsewhere, or choose an installed harness and model for a new project session.","chat_placeholder":"Message this coding session...","chat_project_placeholder":"Project directory","chat_ready":"Ready to continue","chat_recent":"Recent OMP sessions","chat_send":"Send","chat_session":"Coding session","chat_show_earlier":"Show {count} earlier events","chat_start":"Start","chat_switch":"Switch session","chat_terminal_active":"Terminal owns this session. Conversation refreshes here; exit the terminal before replying in this panel.","chat_thinking":"Coding session running...","chat_title":"Coding session","chat_unavailable":"Not safely resumable","chat_you":"You","choice_needed":"Choice needed","collapse_group":"Collapse {project}","copy_choice":"Copy choice: {choice}","copy_custom_response":"Copy a custom response prefix","copy_proposal":"Copy {choice}","copy_proposal_help":"Copy “{choice}” only; paste it in the owning session to respond. Nothing is sent or approved here.","custom_response":"Custom","done":"Done","exited_ago":"exited {time} ago","expand_group":"Expand {project}","focus_session":"Focus owning terminal","harness_auth_local":"Authenticate using the harness CLI","harness_unavailable":"Not installed","health_not_ready":"No supported coding-agent harness is available","health_ready":"Available harnesses: {harnesses}","health_title_action":"Setup needed","health_title_ready":"Agent runtime ready","idle":"idle {time}","monitor_error":"Monitoring failed — displayed sessions may be outdated","monitor_last_success":"Last successful refresh {time} ago","monitor_pending":"Monitoring: waiting for first refresh","monitor_stale":"Monitoring stale — displayed sessions may be outdated","more":{"one":" (+1 more)","other":" (+{count} more)"},"no_attention_sessions":"No sessions need attention","no_sessions":"No active agents","open_agentik":"Open Agentik","open_project":"Open project directory","pin_session":"Pin session to pill","pinned_session":"Pinned session","quota_empty":"No subscription quotas are available","quota_loading":"Loading subscription quotas...","quota_provider":"Provider","quota_refresh":"Refresh subscription quotas","quota_remaining":"{remaining} remaining","quota_resets":"resets {time}","quota_title":"Subscription quotas","quota_unknown":"Unknown","quota_usage":"Usage","recent_activity_read_only":"Read-only recent activity. No response or approval is sent from this view.","recent_outcomes":"Recent outcomes","recent_outcomes_empty":"No recent completed, failed, or cancelled sessions.","recent_outcomes_retention":"Latest 8 outcomes from the last 10 minutes. Transcripts are read-only.","remove_attachment":"Remove attachment","request_acknowledged":"Response delivered to harness","request_cancel":"Cancel request","request_choose":"Choose an answer","request_decline":"Decline","request_invalid":"Invalid value for {field}","request_no":"No","request_required":"{field} is required","request_submit":"Send answer","request_submitting":"Sending response...","request_waiting_ack":"Response queued · awaiting delivery","request_yes":"Yes","session_timeline":"started {started} ago · last activity {activity} ago","sessions":"Sessions","state_breathing":"Pausing","state_composing":"Creating","state_connecting":"Connecting","state_description":"{harness} · {state} · {activity}","state_done":"Finished","state_listening":"Awaiting input","state_searching":"Searching","state_shaping":"Planning","state_solving":"Verifying","state_weaving":"Integrating","state_working":"Working","status_cancelled":"Cancelled","status_completed":"Completed","status_failed":"Failed","status_running":"Running","toast_attention":{"one":"Agentik: 1 agent needs attention","other":"Agentik: {count} agents need attention"},"toast_blocked":"Agentik: blocked","toast_waiting":"Agentik: waiting for input","todo_progress":"{completed} of {total} tasks complete","transcript_back":"Back to sessions","unpin_session":"Unpin session","waiting_count":{"one":"1 waiting","other":"{count} waiting"}}},"agy":{"bar":{"tooltip":"Antigravity Agent CLI (Click: project | Right-click: home)"},"settings":{"project_dir":{"description":"Default workspace directory to open when clicking the widget.","label":"Project directory"},"show_label":{"description":"Show the AGY text label next to the icon in the bar.","label":"Show label in bar"}}},"ai-usagebar":{"settings":{"account":{"description":"Optional named account label from ai-usagebar. Leave empty for the default account. Ignored when the provider is Automatic.","label":"Account label"},"color_by_usage":{"description":"Tints the reading as the quota gets tight. Off keeps the capsule in the bar's own colour.","label":"Color by usage"},"extras":{"description":"The time left in the window, how far the spend is from the clock, both, or neither.","label":"Extra reading","option":{"both":"Both","countdown":"Time until reset","none":"Neither","pace":"Pace against the clock"}},"glyph_position":{"description":"Which side of the reading the icon sits on.","label":"Icon position","option":{"after":"After","before":"Before"}},"provider_limit":{"description":"How many providers one capsule shows, busiest first, with a +N for the rest. Only applies when the provider is Automatic.","label":"Providers in the capsule"},"refresh_minutes":{"description":"How often the CLI is asked for fresh usage. Countdowns tick locally between calls.","label":"Refresh interval (minutes)"},"show_glyph":{"description":"The provider's icon. Off leaves the reading on its own.","label":"Show icon"},"show_name":{"description":"Adds the product name next to the percentage, so two capsules do not look alike.","label":"Show provider name"},"show_value":{"description":"The percentage as text. Off leaves the gauge to say it.","label":"Show value"},"style":{"description":"How this capsule looks in the bar.","label":"Style","option":{"gauge":"Gauge and percentage","label":"Name, gauge and percentage","meter":"Segments","pill":"Percentage"}},"vendor":{"description":"Which plan this capsule tracks. Add the widget twice to watch two.","label":"Provider","option":{"anthropic":"Claude","anthropic_api":"Anthropic API","antigravity":"Antigravity","auto":"Automatic (primary)","commandcode":"Command Code","copilot":"GitHub Copilot","cursor":"Cursor","deepseek":"DeepSeek","grok":"Grok","kilo":"Kilo","kimi":"Kimi","kiro":"Kiro","minimax":"MiniMax","moonshot":"Moonshot","nous":"Nous Research","novita":"Novita","openai":"Codex","opencode_go":"OpenCode Go","openrouter":"OpenRouter","supergrok":"SuperGrok","zai":"Z.AI"}},"visualization":{"description":"A gauge beside the reading, or nothing.","label":"Visualization","option":{"gauge":"Quota bar","none":"Nothing"}}},"ui":{"details":"Details","elapsed":"{percent}% of the window elapsed","error":{"failed":"Could not read usage","failed_hint":"ai-usagebar exited with an error.","no_data":"No usage reported","no_data_hint":"ai-usagebar ran but reported no usage. Check the providers in `~/.config/ai-usagebar/config.toml`.","not_installed":"ai-usagebar is not installed","not_installed_hint":"The CLI is not on PATH. Install it, then try again.","spawn_failed":"Could not start ai-usagebar","spawn_failed_hint":"The process never started. Try again in a moment.","timed_out":"ai-usagebar did not answer","timed_out_hint":"The read took too long. A provider may be answering slowly."},"hidden_label":"Not shown","hidden_value":"{count} more, click to open the panel","install":"Install page","last_reading":"Last reading, {minutes} min ago","last_reading_now":"Last reading, moments ago","loading":"Loading…","no_usage":"No usage reported","not_configured":"`{vendor}` is not configured in ai-usagebar","now":"now","plan_changed":"The plan changed; readings taken under the previous one were dropped.","quota_exhausted":"Quota exhausted","quota_reset":"Renews in {time}","refresh":"Refresh now","refresh_queued":"Refresh queued","refreshing":"Refreshing usage","retry":"Try again","settings":"Plugin settings","severity":{"critical":"critical","high":"high"},"stale":"stale","stale_hint":"showing last known data","title":"AI Usage","unavailable":"Unavailable","updated":"Updated","updated_ago":"Updated {minutes} min ago","updated_now":"Updated just now","waiting":"Waiting for usage data"}},"airpods":{"common":{"off":"Off","on":"On"},"errors":{"ctl_rejected":"librepods-ctl rejected the command"},"panel":{"adaptive_noise":"Adaptive noise","battery":"BATTERY","case":"Case","charging":"Charging","conversation_awareness":"Conversation Awareness","conversation_awareness_caption":"Lower the volume when you start talking","daemon_down":"librepods is not running","ear":{"both":"Pause when both are out","headset_on":"Pause when removed","off":"Do not pause when removed","one":"Pause when one is out"},"ear_detection":"Ear detection","guidance":{"connected":"Open the case or connect your AirPods to see battery and listening controls.","daemon_down":"Start the librepods daemon to see battery and listening controls."},"headphones":"Headphones","in_ear":"In ear","left":"Left","lid_closed":"Closed","lid_open":"Open","listening_mode":"LISTENING MODE","mode":{"adaptive":"Adaptive","anc":"Noise Cancellation","off":"Off","transparency":"Transparency","unknown":"Unknown"},"not_connected":"Not connected","one_bud_anc":"One-Bud ANC","one_bud_anc_caption":"Keep noise cancellation on with one pod in","right":"Right","schema_unsupported":"Unsupported status schema","title":"AirPods"},"settings":{"ctl_path":{"description":"Leave empty to find librepods-ctl on PATH.","label":"Path to librepods-ctl"},"hide_when_disconnected":{"description":"Leaves the bar entirely rather than sitting there with nothing to say.","label":"Hide the icon when no AirPods are connected"}},"widget":{"daemon_down":"librepods is not running","mode":"Mode","not_connected":"Not connected"}},"als-brightness":{"settings":{"backlight":{"description":"Empty: auto-detect at start. Restart the plugin after changing.","label":"Backlight device"},"colortemp":{"description":"Warm the panel toward ambient. WARNING: forces night light on and rewrites temperature_night.","label":"Adaptive colour temperature"},"connector":{"description":"Empty: auto-detect at start. Restart the plugin after changing.","label":"Output"},"curve_brightness":{"description":"Override: node per row, \"reading:target\" or \"target\". Edit a row and this map replaces the sliders; defaults match them.","label":"Brightness map (advanced)"},"curve_temperature":{"description":"Same shape. Panel kelvin, lower is warmer. Only used with adaptive colour temperature.","label":"Temperature map (advanced)"},"enabled":{"description":"Off: the panel is left alone.","label":"Enable"},"kbd_anchor_percent":{"description":"The panel percent whose ambient crossing defines the keyboard threshold. It tracks the curve you tuned.","label":"Keyboard threshold anchor"},"kbd_buffer_percent":{"description":"Hysteresis half-width as a fraction of the threshold: how far ambient must travel before the keyboard changes state again.","label":"Keyboard hysteresis width"},"kbd_dark_percent":{"description":"The level the keyboard runs at in the dark. Zero means automatic: the lowest level that is not off.","label":"Keyboard dark level"},"keyboard_backlight":{"description":"On: the keyboard backlight follows the ambient light, on in the dark and off in the light. Off: left alone.","label":"Keyboard backlight"},"learning_profile":{"description":"On: apply thresholds learned from your changes. Off: use the sliders as set. Recording is always on.","label":"Use learned thresholds"},"max_percent":{"description":"Hard ceiling.","label":"Maximum brightness (%)"},"min_percent":{"description":"Hard floor.","label":"Minimum brightness (%)"},"show_advanced":{"description":"Show the raw curve map editors.","label":"Advanced maps"},"thr_brightness_01":{"description":"sensor lightness counts mapped -> 20.8%","label":"Node 1"},"thr_brightness_02":{"description":"sensor lightness counts mapped -> 30.7%","label":"Node 2"},"thr_brightness_03":{"description":"sensor lightness counts mapped -> 39.3%","label":"Node 3"},"thr_brightness_04":{"description":"sensor lightness counts mapped -> 50.6%","label":"Node 4"},"thr_brightness_05":{"description":"sensor lightness counts mapped -> 63.4%","label":"Node 5"},"thr_brightness_06":{"description":"sensor lightness counts mapped -> 70%","label":"Node 6"},"thr_brightness_07":{"description":"sensor lightness counts mapped -> 78.3%","label":"Node 7"},"thr_brightness_08":{"description":"sensor lightness counts mapped -> 88.3%","label":"Node 8"},"thr_brightness_09":{"description":"sensor lightness counts mapped -> 96.8%","label":"Node 9"},"thr_brightness_10":{"description":"sensor lightness counts mapped -> 100%","label":"Node 10"},"thr_temperature_01":{"description":"sensor ambient temp mapped -> 5100K","label":"Temp node 1"},"thr_temperature_02":{"description":"sensor ambient temp mapped -> 5240K","label":"Temp node 2"},"thr_temperature_03":{"description":"sensor ambient temp mapped -> 5380K","label":"Temp node 3"},"thr_temperature_04":{"description":"sensor ambient temp mapped -> 5520K","label":"Temp node 4"},"thr_temperature_05":{"description":"sensor ambient temp mapped -> 5660K","label":"Temp node 5"},"thr_temperature_06":{"description":"sensor ambient temp mapped -> 5800K","label":"Temp node 6"},"thr_temperature_07":{"description":"sensor ambient temp mapped -> 5940K","label":"Temp node 7"},"thr_temperature_08":{"description":"sensor ambient temp mapped -> 6080K","label":"Temp node 8"},"thr_temperature_09":{"description":"sensor ambient temp mapped -> 6220K","label":"Temp node 9"},"thr_temperature_10":{"description":"sensor ambient temp mapped -> 6500K","label":"Temp node 10"}}},"anilist":{"panel":{"close":"Close","close_preview":"Close preview","connect":"Connect with AniList","cover_preview":"View cover","decrement":"Previous episode/chapter","download_cover":"Download cover","download_cover_failed":"Could not save the cover image.","download_cover_success":"Cover saved to {path}","download_cover_unavailable":"Install zenity or kdialog to choose a save location.","empty":"No entries in this list.","error":"Error: {message}","filter_all":"All","filter_completed":"Completed","filter_current":"Watching","filter_dropped":"Dropped","filter_paused":"Paused","filter_planning":"Planning","filter_planning_manga":"Plan to Read","filter_reading":"Reading","filter_rereading":"Rereading","filter_rewatching":"Rewatching","increment":"Next episode/chapter","loading":"Loading your lists…","loading_more":"Loading more entries…","loading_progress":"Loading lists… {anime} anime, {manga} manga","logged_in_as":"Signed in as {name}","login_help":"Set your client ID and client secret in plugin settings, then click Connect. Your browser opens, you approve AniList, and the plugin finishes login automatically.","login_title":"Connect to AniList","login_waiting":"Waiting for browser login…","logout":"Log out","mark_complete":"Complete","next_episode":"Ep {episode} soon","open_anilist":"Open on AniList","progress_anime":"Ep {current}/{total}","progress_anime_unknown":"Ep {current}","progress_manga":"Ch {current}/{total}","progress_manga_unknown":"Ch {current}","refresh":"Reload list","refreshing":"Refreshing…","settings":"Plugin settings","tab_anime":"Anime","tab_manga":"Manga","title":"AniList (UNOFFICIAL)","updating":"Updating…"},"service":{"empty_response":"AniList returned an empty response.","invalid_response":"AniList returned an unreadable response.","invalid_token":"Invalid or expired access token.","mutation_failed":"Update failed.","network_error":"Could not reach AniList.","not_configured":"Set AniList client ID and client secret in plugin settings.","oauth_busy":"A login is already in progress.","oauth_failed":"Browser login failed.","oauth_unavailable":"Could not start the local login helper. Is python3 installed?"},"settings":{"access_token":{"description":"Skip browser login if you already have a bearer token. Usually left empty.","label":"Access token (optional)"},"client_id":{"description":"Your AniList developer app client ID (anilist.co/settings/developer). Redirect URL must be http://127.0.0.1:7823/callback","label":"Client ID"},"client_secret":{"description":"The client secret from the same AniList app. Never share it publicly — each user should use their own app.","label":"Client secret"},"count_mode":{"description":"Which number to show next to the bar glyph.","label":"Bar count","options":{"completed":"Completed (anime)","current":"Watching (anime in progress)","in_progress":"In progress (anime + manga)","planning":"Planning (anime)","total":"Total (all anime)"}},"glyph":{"label":"Bar glyph"}},"widget":{"tooltip_completed":"{count} anime completed","tooltip_current":"{count} anime in progress","tooltip_empty":"AniList — open library","tooltip_error":"AniList — {error}","tooltip_in_progress":"{count} in progress (anime + manga)","tooltip_loading":"AniList — loading…","tooltip_oauth":"AniList — waiting for browser login…","tooltip_planning":"{count} anime planned","tooltip_total":"{count} anime on your list"}},"arch-updater":{"action_back":"Back","action_check":"Check Updates","action_dismiss":"Dismiss","action_open_log":"Open full log","action_open_news":"Open news","action_polkit_install":"Ask once","action_run_terminal":"Retry in terminal","action_update":"Update","activity":{"days_ago":{"one":"1 day ago","other":"{count} days ago"},"hours_ago":{"one":"1 hour ago","other":"{count} hours ago"},"just_now":"just now","minutes_ago":{"one":"1 minute ago","other":"{count} minutes ago"},"never_updated":"Never updated","pending_at":{"one":"1 pending update","other":"{count} pending updates"},"title":"Activity","updated":"Updated","updated_days_ago":{"one":"Updated 1 day ago","other":"Updated {count} days ago"},"updated_today":"Updated today"},"caption_checked":"checked {time}","caption_ignored":{"one":"1 package ignored","other":"{count} packages ignored"},"changelog_empty":"No changelog available","changelog_title":"What's new","err_aur_failed":"AUR check failed, see the system log for details","err_check_failed":"checkupdates failed, see the system log for details","err_check_timeout":"Timed out while checking for updates","err_flatpak_failed":"Flatpak check failed, see the system log for details","err_no_checkupdates":"checkupdates not found, install pacman-contrib and check your PATH","err_no_pkexec":"pkexec not found, install polkit to update in the background","err_no_terminal":"No terminal emulator found, set one in the plugin settings","err_no_xdg_open":"xdg-open not found, cannot open the package page","err_polkit_install":"Could not install the polkit rule, see the system log for details","err_run_failed":"Update failed (exit {code}), check the log or retry in a terminal","err_spawn":"Could not run checkupdates","err_terminal_closed":"The terminal window closed before the update finished, check the log or retry in a terminal","history_rollback_tag":"rollback","history_title":"Update history","hover_hint":"Hover a package for its full versions","ignored_tag_settings":"settings","ignored_tag_system":"pacman.conf","ignored_tip_settings":"Ignored via the plugin settings, remove it there. Click to open them.","ignored_tip_system":"Ignored by IgnorePkg in /etc/pacman.conf, edit that file (as root) to lift it","ignored_title":"Ignored","launcher":{"check_subtitle":"Check pacman, AUR and Flatpak for updates","news_subtitle":"Open the Arch Linux news page","update_subtitle":"Install the pending updates (terminal or background, per the update mode setting)"},"log_title":"Update log","log_waiting":"Waiting for the polkit password prompt and the first output…","more_packages":"+{count} more","news_unread":{"one":"1 unread Arch news post: \"{title}\"","other":"{count} unread Arch news posts, latest: \"{title}\""},"notify_polkit_ok":"Polkit rule installed: one password per update run from now on","notify_rollback_ok":"Rollback finished successfully","notify_run_ok":"Update finished successfully","notify_updates":{"one":"1 package to upgrade","other":"{count} packages to upgrade"},"polkit_hint":"Polkit asks for a password several times per update","reboot_recommended":"Reboot recommended, the running kernel is no longer installed","rollback_confirm":"Sure?","rollback_missing":"The old version is no longer in the pacman/AUR cache","rollback_required_by":{"one":"Careful: 1 installed package requires it","other":"Careful: {count} installed packages require it"},"run":{"press_key":"Press any key to close"},"run_packages":{"one":"1 package","other":"{count} packages"},"settings":{"activity_history_length":{"description":"How many of the most recent checks to keep for the activity graph.","label":"Activity history length"},"assume_yes":{"description":"Pass --noconfirm / -y so package managers do not ask for confirmation. Off means you confirm each one in the terminal window.","label":"Answer yes automatically"},"aur_check_cmd":{"description":"Only used when the AUR helper above is 'Custom command'. Must print one 'name oldver -> newver' line per package, like 'yay -Qua' does.","label":"Custom AUR check command"},"aur_helper":{"description":"Which AUR helper checks and upgrades AUR packages. 'Auto-detect' tries yay, then paru. 'Custom command' lets you supply your own check command below.","label":"AUR helper","options":{"auto":"Auto-detect (yay, then paru)","custom":"Custom command","off":"Off, pacman only","paru":"paru","yay":"yay"}},"auto_check_hours":{"description":"Check for updates automatically every N hours. 0 (default) never checks on its own.","label":"Auto-check interval (hours)"},"check_arch_news":{"description":"Fetch the Arch Linux news feed and flag unread posts in the panel.","label":"Check Arch Linux news"},"check_reboot_needed":{"description":"Detect whether the currently running kernel's files are still on disk. When they are gone, a newer kernel was installed and a reboot is what switches you to it.","label":"Check if a reboot is needed"},"flatpak_enabled":{"description":"Also check (and, on Update, run) 'flatpak update'. Ignored automatically when flatpak is not installed.","label":"Include Flatpak"},"glyph":{"description":"The glyph shown for the widget on the bar.","label":"Bar glyph"},"hide_on_empty":{"description":"Hide the widget entirely when there are no pending updates and no reboot recommendation. Off (default) always shows the glyph.","label":"Hide when there is nothing to show"},"hide_polkit_hint":{"description":"Hide the panel line offering to install the polkit keep-authorization rule (one password per update run).","label":"Hide the polkit rule suggestion"},"ignore_packages":{"description":"Package names to leave out of the count and pass as --ignore to the update itself, in addition to pacman.conf's own IgnorePkg.","label":"Ignore packages"},"log_lines":{"description":"How many of the latest update-log lines the panel shows while an update is running.","label":"Log lines in the panel"},"notify_on_updates":{"description":"Send a desktop notification when a check finds packages to upgrade.","label":"Notify when updates are found"},"rollback_auto_ignore":{"description":"After a successful rollback, add the rolled-back packages to the plugin's ignore list so the next check does not immediately offer them again.","label":"Ignore packages after a rollback"},"show_activity_graph":{"description":"Track pending-update counts across recent checks and when you last updated, shown as a small graph above the update history strip. Off (default) also stops recording the history.","label":"Show activity graph"},"show_changelog_after_update":{"description":"Open the panel's changelog automatically once an update run finishes successfully.","label":"Show changelog after updating"},"show_count":{"description":"Show the number of pending updates next to the bar glyph.","label":"Show the update count"},"show_download_size":{"description":"Estimate the total download size for the pending pacman packages with 'pacman -Si'. AUR and Flatpak sizes are not included.","label":"Show download size"},"terminal":{"description":"Terminal command for terminal-mode updates and the 'Retry in terminal' fallback, e.g. kitty or ghostty. Empty (default) uses Noctalia's terminal detection ($TERMINAL, then the common emulators).","label":"Terminal"},"update_cmd":{"description":"Full override for the background update command. Empty (default) builds it from the AUR helper, ignore list and Flatpak settings above, running pacman through pkexec.","label":"Custom update command"},"update_mode":{"description":"How the Update button runs the upgrade. 'In a terminal window' (default) behaves like the original plugin: prompts and the PKGBUILD review work as usual. 'In the background' is fully non-interactive (--noconfirm, review skipped) with a live log in the panel.","label":"Update mode","options":{"background":"In the background (non-interactive & HIGH RISK)","terminal":"In a terminal window"}}},"size_gib":"≈ {value} GiB to download","size_mib":"≈ {value} MiB to download","source":{"aur":"AUR","aur_named":"AUR ({helper})","flatpak":"Flatpak","pacman":"Pacman"},"status_checking":"Checking for updates…","status_checking_step":"Checking {step}…","status_clean":"System is up to date","status_error":"Update check failed","status_idle":"Not checked yet","status_missing":"checkupdates not found, install pacman-contrib","status_ready":{"one":"1 package to upgrade","other":"{count} packages to upgrade"},"status_rolling_back":"Rolling back in the background…","status_running":"Updating in the background…","status_running_terminal":"Updating in a terminal window…","tip_changelog":"See what's new in each release","tip_check":"Check for updates now","tip_close":"Close","tip_copy":"Copy name and versions","tip_history_segment":"Click to see this run's packages","tip_ignore":"Ignore this package: hide it from the count and skip it on update","tip_open_page":"Open package page","tip_polkit_install":"Install the polkit rule so updates can run in the background with one password prompt","tip_rollback":"Roll back to {version}, together with its dependencies from this run. pacman refuses the whole transaction if it would break other packages.","tip_rollback_run":"Downgrade every package of this run in one transaction","tip_run_terminal":"Open a terminal window where prompts work normally","tip_unignore":"Stop ignoring this package","tip_update":"Update in the background: polkit asks for your password, everything else is automatic","tip_update_terminal":"Update in a terminal window: prompts and the PKGBUILD review work as usual","title":"Arch Updater","tooltip_checked":"Checked","tooltip_hints":"click: panel · right: check now","tooltip_news":"Arch news","tooltip_news_value":{"one":"1 unread","other":"{count} unread"},"tooltip_pending":"Pending","tooltip_reboot_key":"Reboot","tooltip_reboot_value":"recommended","tooltip_status":"Status","up_to_date":"Up to date: {sources}"},"asus-fan":{"settings":{"display_mode":{"description":"Whether to display live RPM, active profile, or both","label":"Display Mode","options":{"both":"Both","profile":"Profile Name","rpm":"Live RPM"}},"poll_interval_ms":{"description":"How often to read hardware fan sensors","label":"Polling Interval (ms)"},"show_label":{"description":"Show RPM or profile text next to the fan icon","label":"Show Label"}},"tooltip":{"cpu_fan":"CPU Fan","gpu_fan":"GPU Fan","profile":"Profile"}},"asus-fans-controller-ec":{"error":{"command_start":"Noctalia could not start asus-fan-control-ec.","curve_apply":"The fan curve could not be applied.","curve_save":"The fan curve could not be saved.","missing_dependency":"asus-fan-control-ec was not found on PATH.","read_failed":"Fan speeds could not be read. Check privileges and hardware support.","write_failed":"Fan speed could not be changed. Check sudo privileges."},"panel":{"all_fans":"All fans","close":"Close","curve":{"add_point":"Add point","empty":"No curve points are available.","remove_point":"Remove point","selected":"Point {index}: {temp}°C → {percent}%","speed":"Fan speed","temperature":"From temperature"},"fan_label":"Fan {fan}","fan_speed":"Fan {fan}: {rpm}","fan_speed_temp":"Fan {fan}: {rpm} · {temp}","max_temp":"Peak temperature: {temp}°C","mode":{"auto":"BIOS","auto_help":"The embedded controller manages fan speeds. No plugin writes are sent.","curve":"Curve","curve_help":"The saved curve is applied every few seconds while this mode is active.","manual":"Manual","manual_help":"Fixed duty with sliders. Per-fan sliders use --fan; EC manual mode stays global."},"refresh":"Refresh","release_bios":"Release to BIOS","status":{"auto_message":"The embedded controller manages fan speeds automatically.","auto_title":"Automatic (BIOS)","busy_message":"Applying a fan speed change…","busy_title":"Working","curve_message":"The saved curve is driving fan duty from temperature.","curve_title":"Fan curve","manual_message":"Manual mode is active. Sliders control fan duty.","manual_title":"Manual control","unavailable_message":"Install asus-fan-control-ec and configure passwordless sudo.","unavailable_title":"Unavailable"},"sync_fans":"Synchronize fan speeds","temp_board":"Board {temp}°C","temp_cpu":"CPU {temp}°C"},"settings":{"poll_interval":{"description":"How often fan speeds are refreshed, in milliseconds.","label":"Poll interval"},"privilege_command":{"description":"Prefix for asus-fan-control-ec commands. Use sudo -n with a NOPASSWD rule, or pkexec.","label":"Privilege command"},"show_label":{"label":"Show label"}},"title":"Asus Fans Controler EC","tooltip":{"auto":"BIOS control · {rpm} RPM total{temp} · click for panel · right-click to refresh","busy":"Changing fan speed…","curve":"Fan curve · {rpm} RPM total{temp} · click for panel","manual":"Manual · {percent}% · {rpm} RPM total{temp} · click for panel","unavailable":"asus-fan-control-ec is not available"},"widget":{"auto":"Auto","curve":"Curve","manual":"Manual","unavailable":"N/A"}},"asus-gpu-mode":{"settings":{"asus_gpu_debug":{"description":"Log status refresh and mode-switch details for troubleshooting.","label":"Debug logging"},"asus_gpu_patch_pending":{"description":"Derive the required logout, reboot, or prerequisite from the requested and current modes.","label":"Use compatibility action matrix"},"asus_gpu_polling":{"description":"Refresh GPU mode status repeatedly while the shortcut is loaded.","label":"Poll GPU mode"},"asus_gpu_polling_interval_ms":{"description":"Time in milliseconds between GPU mode status checks when polling is enabled.","label":"Polling interval (ms)"}}},"audio-switcher":{"actions":{"cancel":"Cancel","close":"Close","connect_and_use":"Connect & use","create_group":"Create group ({count})","cycle":"Cycle","disband":"Disband","edit":"Edit device","group_outputs":"Group outputs","hide":"Hide device","refresh":"Refresh","save":"Save","select":"Select","selected":"Selected","settings":"Plugin settings","show":"Show device","use":"Use"},"device":{"active":"Active","available":"Available","bluetooth_connected":"Bluetooth connected","bluetooth_disconnected":"Bluetooth disconnected","current":"Current","output_group":"Output group","port":"Port","unavailable_port":"{port} (unavailable)"},"editor":{"alias":"Display name","icon":"Device icon","icon_options":{"automatic":"Automatic","over_ear":"Over-ear headphones","speaker":"Speaker","tws":"TWS earbuds","wired":"Wired headphones"},"slot":"Keybind number","slot_hint":"Use this number with the connect IPC command, for example: connect 2.","title":"Device preferences"},"errors":{"audio_unavailable":"The audio service is unavailable.","bluetooth_audio_timeout":"Bluetooth connected, but its audio output did not appear in PipeWire in time.","bluetooth_connect_failed":"Could not connect the Bluetooth device.","bluetooth_device_not_found":"The Bluetooth device was not found. Try scanning again.","bluetooth_pair_failed":"Could not pair the Bluetooth device.","busy":"Another audio operation is still running.","command_start":"Could not start the system command.","device_not_found":"The selected device no longer exists.","device_unavailable":"The selected device is not currently available.","group_create_failed":"Could not create the output group.","group_not_found":"The output group no longer exists.","group_remove_failed":"Could not disband the output group.","group_requires_two":"Select at least two available outputs.","group_switch_failed":"The output group was created, but could not be selected.","input_port_not_found":"The selected input port no longer exists.","input_port_switch_failed":"Could not switch the input port.","input_port_unavailable":"The selected input port is not currently available.","invalid_audio_data":"The audio service returned invalid data.","invalid_slot":"The keybind number must be a whole number from 1 to 99.","invalid_volume":"The requested volume is invalid.","no_visible_devices":"There are no visible devices to cycle through.","pactl_missing":"pactl is required but was not found on PATH.","scan_in_progress":"Bluetooth scanning is already in progress.","slot_in_use":"Keybind number {slot} is already assigned to another device.","slot_not_found":"No Bluetooth device is assigned to keybind number {slot}.","switch_failed":"Could not switch the default audio device."},"launcher":{"description":"Switch the default audio input (microphone) or output.","open":"Open Audio Switcher"},"notifications":{"bluetooth_disconnected":"Bluetooth device disconnected.","group_created":"Output group created and selected.","group_removed":"Output group disbanded.","input_port_selected":"Input port switched to {port}.","input_selected":"Input switched to {device}.","output_selected":"Output switched to {device}.","preferences_saved":"Device preferences saved.","scan_complete":"Bluetooth scan complete.","slot_saved":"Keybind number {slot} saved."},"panel":{"group_hint":"{count} selected. Choose at least two available outputs.","hidden":"Hidden","hidden_count":"Hidden {count}","input_volume":"Microphone","keybind_hint":"Hidden devices are skipped by cycle-output and cycle-input. Bluetooth numbers can be used with the connect IPC command.","loading":"Loading audio devices…","mute":"Mute","no_device":"No device","no_devices":"No audio devices found.","no_input":"No input","no_output":"No output","no_visible_devices":"All devices in this list are hidden.","output_volume":"Sound","scan_bluetooth":"Scan for Bluetooth audio devices","scanning":"Scanning for Bluetooth devices…","switching":"Switching audio device…","unmute":"Unmute","visible_count":"Visible {count}"},"settings":{"scroll_step":{"description":"How many percentage points each mouse-wheel step changes volume on the bar widget.","label":"Scroll step"},"show_actions_in_tooltip":{"description":"Show actions in tooltip.","label":"Show actions in tooltip"},"show_notification_on_switch":{"description":"Show a notification when switching device.","label":"Show notification on switch"},"show_percentage":{"description":"Show the current output volume percentage next to the bar icon. Disable it to show only the icon.","label":"Show percentage"}},"tabs":{"inputs":"Inputs","outputs":"Outputs"},"title":"Audio Switcher","widget":{"action":{"left_click":{"description":"Open Audio Switcher","key":"Left click"},"middle_click":{"description":"Cycle visible inputs","key":"Middle click"},"right_click":{"description":"Cycle visible outputs","key":"Right click"},"scroll":{"description":"Change output volume","key":"Scroll"}},"input":"Input","output":"Output","tooltip":"Output: {output} ({output_volume})\nInput: {input} ({input_volume})\nScroll: change output volume\nLeft click: open Audio Switcher\nRight click: cycle outputs\nMiddle click: cycle inputs"}},"awwwall":{"notify":{"apply_failed":"awww img failed for {connector}","awww_missing":"awww command not found. Install awww and awww-daemon."},"settings":{"filter":{"label":"Scaling Filter","options":{"bilinear":"Bilinear","catmullrom":"CatmullRom","lanczos3":"Lanczos3","mitchell":"Mitchell","nearest":"Nearest"}},"resize":{"description":"How awww fits the image to the screen","label":"Resize Mode","options":{"crop":"Crop","fit":"Fit","no":"None","stretch":"Stretch"}},"transition_duration":{"description":"Transition length in seconds (ignored by the simple transition)","label":"Transition Duration"},"transition_type":{"label":"Transition Type","options":{"bottom":"Bottom","center":"Center","fade":"Fade","grow":"Grow","left":"Left","none":"None","outer":"Outer","random":"Random","right":"Right","simple":"Simple","top":"Top","wave":"Wave","wipe":"Wipe"}}},"tooltip":{"not_installed":"Awwwall: awww command not found","off":"Awwwall: off (click to start awww and mirror the wallpaper picker into it)","on":"Awwwall: mirroring the wallpaper picker into awww"}},"bangumi-progress":{"bar":{"tooltip_all_caught_up":"No newly unwatched episodes since the last progress update ({series} watching)","tooltip_counting":"Counting newly unwatched episodes…","tooltip_empty":"Nothing watching","tooltip_loading":"Loading tracking data…","tooltip_network":"Network error: cannot reach api.bgm.tv","tooltip_not_configured":"Not configured: add an access token or username in plugin settings","tooltip_unauthorized":"Access token is invalid or expired, update it in plugin settings","tooltip_unwatched":"{count} newly unwatched since the last progress update ({series} watching)"},"desktop":{"empty":"No watching items","http_error":"API error: HTTP {status}","loading":"Loading…","more":"{count} more not shown","network_error":"Network error: cannot reach api.bgm.tv","next_page":"Next page","not_configured":"Not configured: add a Bangumi access token or username in plugin settings","open":"Open subject page","page_range":"{first}-{last} / {total}","parse_error":"Failed to parse API response","previous_page":"Previous page","progress":"W {current}/{total}","progress_aired":"W {current} · A {aired}/{total}","progress_unknown":"W {current}","public_view":"Public collections: {username}","title":"Bangumi Tracking","unauthorized":"Access token is invalid or expired, update it in plugin settings","unknown_error":"Unknown error","watching_count":"{count} watching"},"panel":{"busy":"Updating, please wait","empty":"No items in this category","ep_decrement":"Progress -1","ep_increment":"Progress +1","episodes_unavailable":"Could not fetch episode list","filter_done":"Completed","filter_dropped":"Dropped","filter_on_hold":"On hold","filter_watching":"Watching","filter_wish":"Planned","http_error":"API error: HTTP {status}","loading":"Loading…","logged_in_as":"Signed in: {name} ({username})","mark_done":"Mark as completed","network_error":"Network error: cannot reach api.bgm.tv","no_next_episode":"No next episode to mark","no_prev_episode":"No previous episode to unmark","not_configured":"Not configured","not_configured_hint":"Bangumi is not configured yet. Add a personal access token (recommended) or a username (public collections only) in plugin settings.","open":"Open subject page","open_settings":"Open settings","parse_error":"Failed to parse API response","progress":"{current}/{total} episodes","progress_aired":"Watched {current} / aired {aired} / {total} total","progress_unknown":"{current} episodes watched","public_view":"Public collections: {username}","refresh":"Refresh","score":"Score {score}","settings":"Settings","title":"Bangumi Tracking","unauthorized":"Access token is invalid or expired, update it in plugin settings","unknown_error":"Unknown error","updating":"Updating…"},"settings":{"access_token":{"description":"Generate at next.bgm.tv/demo/access-token while logged into bgm.tv (valid about one year). When set, your own collections (including private) are read. When empty, a username below is used to read public collections anonymously.","label":"Bangumi personal access token"},"glyph":{"label":"Icon"},"refresh_minutes":{"description":"How often to refresh tracking data automatically.","label":"Refresh interval (minutes)"},"show_covers":{"description":"Show subject covers in the desktop widget.","label":"Show covers"},"username":{"description":"Used to read public collections anonymously when no access token is set, e.g. sai.","label":"Username"},"visible_items":{"description":"Number of rows per desktop page; use the previous and next buttons to browse the rest.","label":"Visible items"},"widget_width":{"description":"Natural desktop widget width in logical pixels. Do not resize its tile in the desktop editor, or the host will still scale the content proportionally.","label":"Content width"}}},"basecamp":{"account":{"all":"All accounts","cycle_tooltip":"Left click for the next account, right click for the previous one","with_count":"{name} ({count})"},"empty":{"caught_up":"You're all caught up.","loading":"Loading…"},"error":{"accounts":"Could not list Basecamp accounts","check":"Could not check the Basecamp CLI: {reason}","mark_read":"Could not mark the notification as read","no_terminal":"Could not open a terminal. Run `basecamp auth login` yourself.","notifications":"Could not load notifications","open":"Could not open the notification","parse":"could not read the Basecamp CLI response","spawn":"could not run the Basecamp CLI","timeout":"the Basecamp CLI did not answer in time","truncated":"the Basecamp CLI response was too large to read","version":"Could not determine the Basecamp CLI version"},"list":{"load_more":"Load more"},"loading":{"campfire":"Sitting by the campfire","campsite":"Setting up the campsite","hillchart":"Climbing the hill chart","kindling":"Gathering kindling","marshmallows":"Roasting marshmallows","tent":"Pitching the tent"},"notification":{"fallback_title":"Basecamp notification"},"ping":{"title":"Ping with {names}"},"section":{"new":"New for you","previous":"Previous notifications"},"settings":{"mark_read_on_open":{"description":"Clicking a notification marks it as read in Basecamp as well as opening it.","label":"Mark as read when opened"},"open_command":{"description":"How a notification is opened. {url} is replaced with the Basecamp link. The command is run directly, not through a shell, so pipes and && do not work; point it at a script if you need those. Change this if your browser opens in the background: a plugin cannot hand it the focus token the shell uses.","label":"Open command"},"refresh_interval":{"description":"Seconds between automatic checks. Opening the panel also refreshes when the data is older than this.","label":"Refresh interval"},"show_count":{"description":"Show the number of unread notifications next to the logo in the bar.","label":"Show unread count"}},"setup":{"copied":"Copied","copy":"Copy command","missing_body":"This plugin reads your notifications through the Basecamp CLI. Install it, then sign in.","missing_button":"Installation instructions…","missing_title":"The Basecamp CLI is not installed","or_run":"Or run:","outdated_body":"Version {version} is installed. Older versions cannot mark notifications as read.","outdated_button":"Update instructions…","outdated_title":"Basecamp CLI 0.9 or newer is required","running":"Waiting for sign-in to finish…","signin_body":"Signing in opens a terminal and your browser. The plugin never reads or stores your Basecamp tokens.","signin_button":"Sign in to Basecamp…","signin_title":"Please sign in"},"status":{"credit":"Designed & built by 37signals","marked":"Marked as read","marking":"Marking notification as read…","never":"Not checked yet","refreshing":"Checking Basecamp…","updated":"Updated {time}"},"title":"Basecamp","tooltip":{"account":"Account","cli_version":"Basecamp CLI","dismiss":"Mark as read without opening","last_updated":"Last checked","refresh":"Check now","refresh_hint":"Right click to refresh","settings":"Plugin settings","unread":"Unread"},"unread_count":{"one":"1 unread notification","other":"{count} unread notifications"}},"battery-graph":{"settings":{"battery_path":{"description":"Dbus path to the upower battery device","label":"Battery path"},"graph_time":{"description":"How long of a timeframe does the graph plot in hours","label":"Graph timeframe"},"interpol_time":{"description":"How long should the thime between points be in minutes","label":"Time between points"}},"text":{"graph_name":"Battery"}},"battery-power-management":{"notify":{"threshold_error_body":"Could not write the charge limit. Check the udev permissions (see the plugin README).","threshold_error_title":"Battery threshold"},"panel":{"charge_threshold":"Charge limit","power_profile":"Power profile","profile_balanced":"Balanced","profile_performance":"Performance","profile_power-saver":"Power saver","remaining":"{time} left","time_to_full":"Full in {time}"},"settings":{"battery_device":{"description":"sysfs battery name, e.g. BAT0 or BAT1","label":"Battery device"},"color_performance":{"description":"Accent color used when the Performance profile is active","label":"Performance color"},"color_power_saver":{"description":"Accent color used when the Power-saver profile is active","label":"Power-saver color"},"colorize_by_profile":{"description":"Tint the widget by the active power profile","label":"Colorize by profile"},"show_balanced_icon":{"description":"Also show the profile glyph while on the Balanced profile (only when Show profile icon is on)","label":"Show balanced icon"},"show_profile":{"description":"Display the active power-profile glyph in the widget","label":"Show profile icon"}},"status":{"charging":"Charging","discharging":"Discharging","full":"Full","not_charging":"Not charging","unknown":"Unknown"},"tooltip":{"level":"Level","power":"Power","profile":"Profile","remaining":"Remaining","status":"Status","to_full":"To full"}},"battery-threshold":{"actions":{"widget-settings":"Widget Settings"},"launcher":{"no-permissions":"Write access is not set up","open-panel-hint":"Press Enter to open the panel","open-subtitle":"Open panel · currently {threshold}%","open-title":"Battery Threshold Control","set-notify":"Charge threshold set to {value}%","set-subtitle":"Press Enter to apply","set-subtitle-clamped":"Clamped to {min}-{max}%. Press Enter to apply","set-title":"Set charge threshold to {value}%"},"notification":{"error-msg":"Failed to write battery threshold to {file}","error-title":"Battery Threshold Error","setup-fail":"Failed to configure permissions.","setup-success":"Permissions configured. Please log out and back in for group changes to take effect.","setup-title":"Battery Threshold Setup"},"panel":{"adjust-limit":"Drag slider to adjust limit","button":"Configure Permissions","not-available":"Not available on this system","read-only":"Read-only: Install udev rule for write access","title":"Battery Threshold"},"settings":{"battery-device":"Battery Device","battery-device-desc":"Battery to configure threshold for","charge-threshold":"Charge Threshold","charge-threshold-desc":"The percentage at which the battery should stop charging","no-battery-device":"No configurable batteries are available on this system"}},"battery-widget":{"notify":{"error":"Something went wrong. Check the Noctalia log for details."},"settings":{"battery":{"auto":"Auto","bat0":"BAT0","custom":"Custom","description":"Detect the battery automatically or set a custom name.","label":"Battery"},"battery_name":{"description":"Name of the battery.","label":"Battery Name"},"charging_color":{"description":"Color applied when connected to AC power.","label":"Charging Color"},"color":{"description":"Color role for this widget's icon and label; fixed hex colors are also supported.","label":"Color"},"hide_full":{"description":"Hide the battery widget when fully charged.","label":"Hide When Full"},"hide_plugged":{"description":"Hide the battery widget when connected to AC power.","label":"Hide When Plugged In"},"label_content":{"description":"What the battery label shows: charge percentage, time remaining, or power draw.","label":"Label Content","percent":"Percent","rate":"Rate","time":"Time"},"layout":{"description":"Widget layout.","horizontal":"Horizontal","label":"Layout","vertical":"Vertical"},"refresh_interval":{"description":"Controls how frequently the widget updates its content. (in seconds)","label":"Refresh Interval"},"show_glyph":{"description":"Show the battery icon.","label":"Show Glyph"},"show_label":{"description":"Show text next to the icon.","label":"Show Label"},"warning_color":{"description":"Color applied when charge is at or below noctalia's warning threshold.","label":"Warning Color"}}},"bazaarsearch":{"error":{"msg":{"busctl_fail":"'busctl' failed with exit code {exitCode}","busctl_incorrect_ident":"Expected '{expected}', got '{recieved}'","busctl_json_fail":"Failed to parse 'busctl' JSON data","busctl_not_found":"'busctl' is not found in the PATH","busctl_not_found_body":"Please make sure that 'busctl' is installed and is correctly set somewhere along the PATH","malformed_value_retval":"Search returned malformed value - 'busctl' return type identifier is incorrect"},"no_cmd_prov":"No command provided","no_stage_prov":"No function provided","notify":{"activate":{"msg":"Selected Flatpak ID failed sanitization check, ignoring launch command.","title":"Bazaar Search Error"},"copy":{"msg":"Error message copied to clipboard","title":"Bazaar Search Error"}},"report":{"command":"Command","error":"Error","header":"ERROR REPORT","query":"Query","stage":"Function","user_instruction":"Select this to copy an error report for the maintainer."}},"settings":{"max_entries":{"description":"The maximum number of Flatpak entries parsed at a time. Too many will make the plugin stop working!","label":"Maximum Entries"}}},"beeminder":{"age":{"just_now":"just now","minutes_ago":"{minutes}m ago"},"bar":{"days":"{days}d","due":"{count} due","loading":"Loading Beeminder goals…","no_goals":"No active goals"},"countdown":{"days_hours":"{days}d {hours}h","hours_minutes":"{hours}h {minutes}m","minutes":"{minutes}m","now":"now"},"error":{"bad_json":"Beeminder sent a response that could not be read: {error}","failed":"Beeminder request failed. {detail}","http_status":"Beeminder returned HTTP {status}.","network":"Network request failed.","no_token":"Set your Beeminder personal auth token in the plugin settings.","not_started":"The request could not be started.","unauthorized":"Beeminder rejected the auth token. Check it in the plugin settings."},"menu":{"open_profile":"Open profile","refresh":"Refresh now","settings":"Settings"},"panel":{"open_settings":"Open settings","refresh":"Refresh","retry":"Retry","title":"Beeminder","updated":"Updated {age}"},"settings":{"auth_token":{"description":"While logged in, copy the token from https://www.beeminder.com/api/v1/auth_token.json. It is stored in plain text in your Noctalia config.","label":"Personal Auth Token"},"bar_text":{"description":"What to show next to the bee. Click the bee to see every goal.","label":"Bar Text","option":{"at_risk":"Money on the Line — $15","beemergencies":"Beemergencies — 2 due","countdown":"Time Until Next Derailment — 4h 12m","min_buffer":"Safety Margin — 0d","next_goal_countdown":"Next Goal Countdown — workout · 4h 12m","next_goal_requirement":"Next Goal Requirement — workout +1 within 1 day","none":"Just the Bee"}},"ignored_goals":{"description":"Goal slugs left out of the bar text and the bee's color. They still appear in the goals panel.","label":"Ignored Goals"},"quiet_until_due":{"description":"Hide the bar text until at least one goal is due today. The bee stays visible either way.","label":"Quiet Until Due"},"refresh_minutes":{"description":"How often to fetch your goals from Beeminder. Countdowns keep ticking between refreshes.","label":"Refresh Interval (minutes)"},"show_bee":{"description":"Show the bee icon. Turn this off when several instances sit side by side. The bee still appears on errors, or when there is no text to show.","label":"Show Bee"}}},"better-clock":{"settings":{"date_format":{"description":"Luau date format for date, e.g. {:%A, %B %d}","label":"Date Format"},"show_date":{"description":"Display the date below the time","label":"Show Date"},"time_format":{"description":"Luau date format for time, e.g. {:%H:%M} or {:%I:%M %p}","label":"Time Format"}}},"bitdjinn":{"market":{"high24h":"24h High: %s","last_updated":"Updated: %s","low24h":"24h Low: %s","search_placeholder":"Filter coin symbol or name...","trend":"Trend","vol24h":"24h Vol: %s"},"notify":{"balance_decrease":"Sent -%s %s on %s","balance_increase":"Received +%s %s on %s","tx_detected":"New transaction detected on %s (%s)","tx_title":"Blockchain Transaction Alert"},"settings":{"currency":{"cny":"CNY (¥)","description":"Preferred fiat/stablecoin currency for prices and valuation.","eur":"EUR (€)","label":"Display Currency","usd":"USD ($)","usdc":"USDC ($)","usdt":"USDT ($)"},"interval":{"description":"How often crypto prices and trends refresh (seconds).","label":"Market Refresh Interval (s)"},"notify_tx":{"description":"Send desktop notification when an address balance or transaction count changes.","label":"Transaction Alerts"},"wallet_interval":{"description":"How often blockchain addresses are checked for balance and transaction updates.","label":"Wallet Check Interval (s)"},"widget_coin":{"description":"Which coin to display by default on the status bar.","label":"Bar Widget Coin"}},"shortcut":{"label_off":"Crypto Alerts Muted","label_on":"Crypto Alerts On"},"tab":{"market":"Market Trends","wallets":"Wallets & Alerts"},"tagline":"Crypto Market & Blockchain Watcher","title":"BitDjinn","ui":{"close":"Close","error_network":"Network error, retrying...","loading":"Fetching latest data...","refresh":"Refresh","settings":"Plugin Settings"},"wallet":{"add_title":"Watch Address","btn_add":"Add Watcher","copy_success":"Address copied to clipboard","delete_confirm":"Remove","duplicate_address":"Address is already in watch list.","empty":"No addresses being watched. Add your BTC, ETH, or SOL address above.","input_placeholder":"Paste BTC, ETH (0x...), or SOL address","invalid_address":"Invalid blockchain address or unsupported network.","label_placeholder":"Label (e.g. Cold Wallet, Treasury)","total_valuation":"Total Portfolio Value","tx_count":"%d txs"}},"bookmarks":{"back_button":"Back","cancel_button":"Cancel","cmd_field":"Shell command","delete_folder_button":"Delete folder","delete_tooltip":"Delete","description_field":"Description (optional)","drag_tooltip":"Drag to reorder, or onto a folder to file it inside","drop_out_of_folder":"Drop here to move back to the main panel","edit":{"delete_tooltip":"Delete","drag_tooltip":"Drag to reorder, or onto a folder to file it inside","drop_out_of_folder":"Drop here to move back to the main panel","edit_tooltip":"Edit","hide_controls_tooltip":"Hide reorder/edit/delete controls","show_controls_tooltip":"Show reorder/edit/delete controls"},"edit_bookmark":"Edit Bookmark","edit_folder":"Edit Folder","edit_tooltip":"Edit","entry_form":{"cancel_button":"Cancel","cmd_field":"Shell command","description_field":"Description (optional)","edit_bookmark":"Edit Bookmark","edit_folder":"Edit Folder","err_label_cmd_required":"Label and command are required","err_label_required":"Label is required","folder_name_field":"Folder name","glyph_field":"Glyph name (e.g. bookmark)","label_field":"Label","new_bookmark":"New Bookmark","new_folder":"New Folder","run_in_background_field":"Run in background","run_in_terminal_field":"Run in terminal","save_button":"Save"},"entry_saved":"Saved \"{label}\"","entry_updated":"Updated \"{label}\"","err":{"corrupt":"Bookmarks file is corrupt: {error}","delete_failed":"Failed to delete: {error}","exit_code":"\"{label}\" exited with code {code}","launch_failed":"Failed to launch \"{label}\"","no_command":"This bookmark has no command","no_data_dir":"No data directory available","read_failed":"Failed to read bookmarks: {error}","reorder_failed":"Failed to reorder: {error}","save_failed":"Failed to save: {error}"},"err_corrupt":"Bookmarks file is corrupt: {error}","err_delete_failed":"Failed to delete: {error}","err_exit_code":"\"{label}\" exited with code {code}","err_label_cmd_required":"Label and command are required","err_label_required":"Label is required","err_launch_failed":"Failed to launch \"{label}\"","err_no_command":"This bookmark has no command","err_no_data_dir":"No data directory available","err_read_failed":"Failed to read bookmarks: {error}","err_reorder_failed":"Failed to reorder: {error}","err_save_failed":"Failed to save: {error}","folder":{"delete_folder_button":"Delete folder","folder_deleted":"Deleted folder \"{label}\" and its contents"},"folder_deleted":"Deleted folder \"{label}\" and its contents","folder_name_field":"Folder name","glyph_field":"Glyph name (e.g. bookmark)","hide_controls_tooltip":"Hide reorder/edit/delete controls","info":{"cmd_line":"Command: {cmd}","description_line":"Description: {description}"},"info_cmd_line":"Command: {cmd}","info_description_line":"Description: {description}","label_field":"Label","new_bookmark":"New Bookmark","new_folder":"New Folder","no_bookmarks":"No bookmarks yet","no_search_results":"No matching bookmarks","open_tooltip":"Open","run_in_background_field":"Run in background","run_in_terminal_field":"Run in terminal","save_button":"Save","search_placeholder":"Search bookmarks...","settings":{"bk_sort_by":{"description":"How bookmarks are ordered in \"/bk\" results when there's no search text.","label":"/bk sort order","options":{"history":"Recently used","usage_count":"Most used"}},"data_path":{"description":"Where data.json is stored. Leave empty to use the default plugin data directory.","label":"Data file"},"enable_bk_provider":{"description":"Adds a \"/bk\" launcher command to fuzzy-search and run your bookmarks.","label":"Enable /bk launcher provider"},"glyph":{"description":"Bar widget's glyph","label":"Glyph"},"show_info_button":{"description":"Show a \"?\" button on bookmarks (not folders) to view their description and command on hover.","label":"Show info button"},"text":{"description":"Bar widget's label. Leave empty to display only the glyph.","label":"Text"},"tooltip":{"description":"Bar widget's tooltip","label":"Tooltip"}},"show_controls_tooltip":"Show reorder/edit/delete controls","title":"Bookmarks"},"calculator":{"bar":{"tooltip":"Calculator"},"panel":{"copied":"Copied {value}","copy":"Copy result","deg":"DEG","placeholder":"Type an expression, press Enter","rad":"RAD","title":"Calculator"},"settings":{"angle_unit":{"description":"Unit used by the trigonometric functions.","label":"Angle unit","options":{"deg":"Degrees","rad":"Radians"}},"max_bar_length":{"description":"Longer results are shortened with an ellipsis in the bar.","label":"Maximum bar length"},"precision":{"description":"Maximum number of decimals used when formatting results.","label":"Decimal precision"},"show_bar_value":{"description":"Display the last result next to the calculator icon.","label":"Show value in bar"}},"state":{"error":"Error"}},"calculator-plus":{"panel":{"browsing":"History {index}/{total}","clear":"Clear history","close":"Close panel","copied":"Copied {value} to clipboard","copy_expr":"Copy expression","delete":"Delete","empty":"No calculations yet, type an expression below","error":"Could not evaluate expression","evaluating":"Evaluating...","hint":"'clear' clears history - 'exit' closes","placeholder":"Type an expression...","rerun":"Re-run","title":"Calculator"},"settings":{"glyph":{"description":"Icon glyph name.","label":"Glyph"},"notify_on_copy":{"description":"Send a notification whenever an expression or result is copied to the clipboard.","label":"Notify on copy"},"repeat_delay_ms":{"description":"Change repeat delay of up/down arrow for history navigation.","label":"Repeat delay in ms"},"repeat_interval_ms":{"description":"Change repeat interval of up/down arrow for history navigation.","label":"Repeat interval in ms"}},"widget":{"tooltip":"Calculator"}},"case-convert":{"settings":{"input_source":{"description":"Where the text comes from when you type nothing after the prefix.","label":"Input source","options":{"auto":"Selection, then clipboard","clipboard":"Clipboard only","selection":"Primary selection only"}},"notify_on_copy":{"description":"Show a notification after copying a conversion to the clipboard.","label":"Notify on copy"},"preserve_casing":{"description":"Keep the original casing inside words, so acronyms and product names such as NASA or iPhone survive the conversion.","label":"Preserve casing"}}},"cat":{"settings":{"cat_color":{"description":"Used when Cat Color is set to Custom.","label":"Custom Color"},"cat_color_mode":{"description":"Use the current theme color, or pick a custom color below.","label":"Cat Color","option_custom":"Custom","option_theme":"Match Theme"},"cat_size":{"description":"Sprite size in the bar, in pixels.","label":"Cat Size"},"poll_interval":{"description":"How often to sample CPU usage, in seconds.","label":"CPU Poll Interval"},"run_threshold":{"description":"CPU percentage at which the cat breaks into a run.","label":"Run Threshold"},"show_cpu_percent":{"description":"Display the CPU percentage next to the cat.","label":"Show CPU Percentage"},"walk_threshold":{"description":"CPU percentage at which the cat wakes up and starts walking.","label":"Walk Threshold"}},"title":"Cat"},"cider":{"lyrics_osd":{"disabled":"Lyrics OSD disabled in settings","idle":"No lyrics"},"osd":{"not_playing":"Not playing"},"settings":{"apptoken":{"description":"From Cider → Settings → Connectivity → External Application Access (apptoken header). Leave empty to reuse ~/.config/cider-kde-notifier/config.json.","label":"Cider API token"},"base_url":{"description":"Usually http://127.0.0.1:10767","label":"Cider API URL"},"cover_size":{"description":"Artwork edge length on the bar chip, in logical pixels (12–32).","label":"Cover size"},"display_mode":{"description":"Noctalia notification (recommended), rich OSD panel, or silent on track changes.","label":"Track alert style","options":{"notification":"Notification","off":"Off","osd":"OSD panel"}},"glyph":{"description":"Icon shown on the bar chip when artwork is hidden or missing.","label":"Fallback glyph"},"lyrics_karaoke_active":{"description":"Hex for the word currently being sung when Custom. Empty keeps Noctalia primary. Example: #83c2c8","label":"Active word color"},"lyrics_karaoke_style":{"description":"Theme follows the live Noctalia palette (on_surface + primary). Custom uses the hex fields below.","label":"Karaoke colors","options":{"custom":"Custom hex","theme":"Noctalia theme"}},"lyrics_karaoke_sung":{"description":"Hex for already-sung words when Karaoke colors is Custom. Empty keeps the theme color. Example: #f2f3f3","label":"Sung word color"},"lyrics_karaoke_upcoming":{"description":"Hex for not-yet-sung words in the current line when Custom. Empty uses sung color at lower opacity.","label":"Upcoming word color"},"lyrics_osd_animate_cues":{"description":"Pulse three cue dots through intros, interludes, and song mixes. Off = static dots.","label":"Animate cue dots"},"lyrics_osd_enabled":{"description":"Bar widget click toggles sticky lyrics. Off = click does nothing.","label":"Enable lyrics HUD"},"lyrics_osd_glow":{"description":"Offset dark shadow under overlay glyphs so they stay readable on wallpaper.","label":"Lyric drop shadow"},"lyrics_osd_karaoke":{"description":"Highlight the currently sung word when Apple syllable timings exist. Line-only lyrics light the whole active line to match Cider.","label":"Word sing-along highlight"},"lyrics_osd_position":{"description":"Where the overlay sits on screen. Reopen the HUD after changing.","label":"Lyrics HUD position","options":{"bottom_center":"Bottom center","bottom_left":"Bottom left","bottom_right":"Bottom right","center":"Center","center_left":"Center left","center_right":"Center right","top_center":"Top center","top_left":"Top left","top_right":"Top right"}},"lyrics_osd_show_idle":{"description":"When the HUD is open with no lyrics yet, show a muted music/idle message instead of a blank overlay.","label":"Show idle placeholder"},"lyrics_osd_show_next":{"description":"Dim preview of the upcoming lyric under the current line.","label":"Show next line"},"lyrics_plain_scroll":{"description":"Advance plain lyrics over the song length instead of freezing on the first line. Drift vs vocals is expected.","label":"Scroll untimed lyrics"},"lyrics_plain_scroll_silence":{"description":"Hold scroll during quiet system audio (intros/gaps). Soft beds may pause too. Needs parec.","label":"Pause when quiet"},"lyrics_plain_scroll_silence_level":{"description":"How loud audio must be before scroll advances (1–40).","label":"Quiet threshold"},"lyrics_plain_scroll_speed":{"description":"Pace relative to song length (25–300%). 100 is default.","label":"Scroll speed"},"lyrics_show_untimed":{"description":"Off by default. Show plain lyrics that have no timestamps. Synced karaoke always shows.","label":"Show untimed lyrics"},"osd_duration_ms":{"description":"How long the notification or now-playing OSD stays visible after a track change.","label":"Alert duration (ms)"},"save_to_history":{"description":"When using notifications, also keep them in notification history. Off by default.","label":"Save track alerts to history"},"show_cover":{"description":"Show the current Cider artwork on the bar chip when a local cover file is available.","label":"Show cover"}},"widget":{"idle":"Cider"}},"claude-cockpit":{"close":"Close","currency":{"auto_default":"usd"},"daily_activity":"Daily Activity","day_detail":"{day} · {tokens} tokens · {cost}","days":"Mo,Tu,We,Th,Fr,Sa,Su","delete_session_confirm":"Delete this session? This cannot be undone.","err_claudemd_scan":"Could not scan for CLAUDE.md files","err_delete_failed":"Could not delete the session","err_editor_failed":"Could not launch the editor","err_no_editor":"No editor found — set one in the plugin settings","err_no_terminal":"Could not open a terminal","err_sessions_data":"Bad session data","err_sessions_fetch":"Could not read local sessions","err_sessions_launch":"Could not launch list-claude-sessions","global_claude_md":"Global","loading":"Loading…","models_this_week":"Models This Week","month":"Month","msgs":"msgs","no":"Cancel","no_preview":"No preview available","no_sessions":"No sessions match","pace":{"on":"On pace","over":"over pace","over_quota":"Over quota","under":"under pace"},"plan":"Plan","refresh":"Refresh","refreshing":"Refreshing…","resets_in":"Resets in","resetting":"Resetting…","search_placeholder":"Filter sessions…","session_untitled":"Session {id}","sessions":"sessions","settings":{"currency":{"description":"Currency for displayed costs. Auto follows the interface language.","label":"Currency","options":{"aud":"AUD (A$)","auto":"Auto","cad":"CAD (C$)","chf":"CHF","cny":"CNY (¥)","eur":"EUR (€)","gbp":"GBP (£)","inr":"INR (₹)","jpy":"JPY (¥)","usd":"USD ($)"}},"currency_api_url":{"description":"Exchange-rate API get-claude-usage fetches every non-USD rate from.","label":"Currency API URL"},"editor_command":{"description":"Command to open a CLAUDE.md file. Empty tries \"code\", then \"zed\".","label":"Editor command"},"glyph":{"description":"The glyph shown for the Claude Cockpit widget on the bar.","label":"Bar glyph"},"terminal":{"description":"Command to open a terminal for resuming a session. Empty uses the system's own terminal discovery.","label":"Terminal command"},"usage_percent_display":{"description":"What rides beside the bar glyph: the 5-hour session window, the 7-day weekly one, both, or neither.","label":"Usage percentage","options":{"both":"Both (sNN% wMM%)","none":"Nothing","session":"Session window (sNN%)","weekly":"Weekly window (wMM%)"}},"usage_refresh_interval":{"description":"How often to fetch usage data (minutes).","label":"Usage refresh interval"}},"settings_tooltip":"Plugin settings","since":"Since","tab_claudemd":"CLAUDE.md","tab_sessions":"Sessions","tab_usage":"Usage","time_days_ago":"{n}d ago","time_hours_ago":"{n}h ago","time_just_now":"just now","time_minutes_ago":"{n}m ago","tip_collapse_all":"Collapse all projects","tip_create_editor":"Create in editor","tip_delete_session":"Delete session","tip_expand_all":"Expand all projects","tip_hide_preview":"Hide preview","tip_open_editor":"Open in editor","tip_preview":"Preview","tip_resume":"Resume in a terminal","title":"Claude Cockpit","today":"Today","token_consumption":"Token Consumption","unavailable":"Claude Cockpit unavailable","unknown_project":"Unknown project","used":"used","week":"Week","window":{"other":"Rate window","scoped":"{model} (7d)","session":"Session (5h)","weekly":"Weekly (7d)"},"yes":"Delete"},"claude-companion":{"answer":{"empty":"No answers yet. Ask one from the launcher: /claude ? <question>","title":"Claude — quick ask"},"ask":{"delivery":"The answer opens in the answer panel and arrives as a notification.","dispatch_failed":"Could not hand the question over. Is the noctalia CLI on PATH?","no_runtime":"No XDG_RUNTIME_DIR, so there is nowhere to hand the question over.","placeholder":"One quick question…","send":"Ask","title":"Ask Claude"},"consent":{"allow_always":"Always allow","allow_once":"Allow once","deny":"Deny","empty":"Nothing is waiting on you right now.","fallthrough":"No answer here and Claude asks in the terminal instead, as usual.","in_dir":"in {dir}","promote":"Promote observations","promote_hint":"{count} observed commands are waiting to be allowlisted.","said":"Claude says: {said}","session":"session {sid}","title":"Permission request","title_tool":"Claude wants to run {tool}","truncated":"… truncated — read the full text in the terminal before approving."},"launcher":{"ask":"Ask Claude (one-shot)","ask_hint":"Type a question after ?","continue":"Resume last Claude session","launch":"Launch Claude Code","show_answer":"Show last answer"},"notify":{"ask_failed":"ask failed","auth_remedy":"Claude login expired — start a Claude session in a terminal to refresh it, then re-ask.","full_answer_hint":"Full answer: click the bar pulse","no_output":"(no output)","title":"Claude"},"orb":{"sessions":"{count} sessions"},"pulse":{"burn":"{model} · {tin} in / {tout} out","cached":"{n} cached","panel_launch_failed":"could not launch the answer panel","sessions_header":"Claude — {count} sessions","title":"pulse","total":"Σ {tin} in / {tout} out"},"sessions":{"empty":"No live Claude sessions. Start one in a terminal, or with /claude.","hooks_broken":"Claude Code's hooks for this plugin are missing or point at the wrong place, so sessions won't show up here.","hooks_repair":"Repair","hooks_repair_failed":"Couldn't repair the hooks. Run {cmd} in a terminal to see why.","hooks_repaired":"Hooks repaired. New Claude sessions will show up here; a running one may need /hooks opened or a restart.","no_hooks":"no hooks","retire":"Retire","title":"Claude — {count} sessions","title_one":"Claude — 1 session"},"settings":{"breath_speed":{"description":"How fast the pulse dot and orb breathe. 1.0 is the default; higher is faster, lower is slower.","label":"Breath speed"},"consent_mode":{"description":"Approve Claude's tool calls from the desktop. Off behaves as if the gate were not installed. Learn records what Claude runs without ever blocking, so the allowlist is seeded from your real traffic. Enforce asks about anything not yet allowlisted; an unanswered prompt falls through to Claude Code's own permission flow.","label":"Tool consent gate","option":{"enforce":"Enforce (ask before running)","learn":"Learn (record, never block)","off":"Off"}},"detect_sessions":{"description":"Show every running Claude Code session — working, waiting on you, or idle — by reading Claude Code's own session files every few seconds, even before hooks are installed. Hooks add tool detail and token burn on top, and the files correct what hooks miss, like an Esc interrupt. Turn off to rely on hooks alone.","label":"Detect sessions without hooks"},"orb_swell":{"description":"How far the desktop orb magnifies as it breathes. 0 keeps it a static size; 1.0 is the default; higher swells more.","label":"Orb swell"},"pulse_glow_floor":{"description":"How dim the bar dot gets at the low point of its breath. 0 dims to black; higher stays brighter. 0.45 is the default.","label":"Bar dot glow floor"}},"state":{"orb":{"error":"error","idle":"idle","needs_attention":"needs you","text":"responding","tool_start":"running a tool","turn_end":"done — ready for you","turn_start":"thinking"},"tip":{"error":"Claude: error","idle":"Claude: idle","needs_attention":"Claude needs you","text":"Claude: responding","tool_start":"Claude: running a tool","turn_end":"Claude: done — ready for you","turn_start":"Claude: thinking"},"word":{"error":"error","idle":"idle","needs_attention":"needs you","text":"responding","tool_start":"tool","turn_end":"done","turn_start":"thinking"}}},"claude-sessions":{"settings":{"account_labels":{"description":"Optional display name per config dir, e.g. ~/.claude-work = Work. By default the name comes from the dir (~/.claude-work shows as \"work\").","label":"Account names"},"bar_limits":{"all":"All windows (incl. per-model, e.g. Fable 7d)","description":"Plan usage shown on the bar widget, next to each account's sessions.","five_and_seven":"5-hour and 7-day windows","five_hour":"5-hour window","label":"Bar limits","none":"Hidden","seven_day":"7-day window"},"bar_limits_style":{"bar":"Linear bar","label":"Bar limits style","ring":"Ring"},"bar_style":{"counts":"Counts","dots":"One dot per session","label":"Bar style"},"config_dirs":{"description":"Claude Code config dirs (CLAUDE_CONFIG_DIR) to always show, one per account. Dirs of running sessions are detected automatically.","label":"Extra Claude config dirs"},"context_window":{"description":"Used to draw the context gauge.","label":"Context window (tokens)"},"finished_min_minutes":{"description":"Only notify about turns that took at least this long.","label":"Minimum turn length (minutes)"},"hide_idle_hours":{"description":"Hide live sessions idle longer than this. 0 shows all.","label":"Hide sessions idle for (hours)"},"notify_finished":{"description":"Desktop notification when a session goes from working to idle.","label":"Notify when a long turn finishes"},"notify_waiting":{"description":"Desktop notification when a session starts waiting for input or a permission.","label":"Notify when a session needs you"},"recent_count":{"description":"Closed sessions listed in the Recent section and the launcher. 0 disables it.","label":"Recent sessions to show"},"work_root":{"description":"Project paths under this folder are shown relative to it. Empty shows full paths.","label":"Projects root"}}},"claudecode":{"all":"All","all_time":"All-time","close":"Close","currency":{"auto_default":"usd"},"daily_activity":"Daily Activity","day_detail":"{day} · {tokens} tokens · {cost}","days":"Mo,Tu,We,Th,Fr,Sa,Su","loading":"Claude Code Usage — loading…","models_this_week":"Models This Week","month":"Month","msgs":"msgs","pace":{"on":"On pace","over":"over pace","over_quota":"Over quota","under":"under pace"},"plan":"Plan","profile":"Profile","rate_windows":"Rate Windows","refresh":"Refresh","refreshing":"Refreshing…","resets_in":"Resets in","resetting":"Resetting…","sessions":"sessions","settings":{"accent":{"description":"Color for values, bars, and today's activity.","label":"Accent color"},"currency":{"description":"Currency for displayed costs. Auto follows the interface language.","label":"Currency","options":{"auto":"Auto","eur":"EUR (€)","usd":"USD ($)"}},"pill_extras":{"description":"What to show beside the percentage. Describes the window the bar metric tracks (the 5-hour one under “Both”).","label":"Bar extras","options":{"both":"Time left + pace","countdown":"Time left","none":"Nothing","pace":"Pace (↑/↓ points)"}},"pill_metric":{"description":"Which rate window the bar pill shows.","label":"Bar metric","options":{"both":"Both (5h · 7d)","five_hour":"5-hour window","seven_day":"7-day window"}},"pill_style":{"description":"How the bar pill draws the utilization. The ring tracks the 5-hour window when the metric is “Both”.","label":"Bar style","options":{"glyph_text":"Glyph + percentage","ring":"Ring only","ring_text":"Ring + percentage"}},"refresh_interval":{"description":"How often to fetch usage data (minutes).","label":"Refresh interval"},"ring_color":{"description":"Used only when the palette cannot be read, as with built-in themes.","label":"Ring fallback color"},"ring_size":{"description":"Ring diameter in pixels. Keep it under the bar height.","label":"Ring size"},"ring_thickness":{"label":"Ring thickness"},"ring_track_color":{"label":"Ring track fallback color"},"show_glyph":{"description":"Only applies to the glyph + percentage style.","label":"Show glyph"}},"settings_tooltip":"Plugin settings","since":"Since","title":"Claude Code Usage","today":"Today","token_consumption":"Token Consumption","tokens":"tokens","unavailable":"Claude Code Usage unavailable","used":"used","week":"Week","window":{"other":"Rate window","scoped":"{model} (7d)","session":"Session (5h)","weekly":"Weekly (7d)"}},"cmd-runner":{"notify":{"error":"Command '{name}' failed (Exit Code {code}).","success":"Command '{name}' completed successfully."},"panel":{"add_button":"New Command","cancel_button":"Cancel","cmd_label":"CLI Command","cmd_placeholder":"e.g. apt update && apt upgrade -y","delete":"Delete","edit":"Edit","logs":"Log","name_label":"Command Name","name_placeholder":"e.g. System Update","no_commands":"No commands saved.","run_button":"Run","running":"Running...","save_button":"Save","status_failed":"✗ Status: Failed (Code {code})","status_success":"✓ Status: Success (Code 0)","subtitle":"Execute commands silently in background at a click","sudo_disabled":"[  ] Requires sudo (root)","sudo_enabled":"[✓] Requires sudo (root)","sudo_label":"Requires Sudo (root)","sudo_pass_label":"Sudo Password (entered once)","sudo_pass_placeholder":"Sudo password...","sudo_pass_placeholder_saved":"Password saved (leave blank to keep)","title":"Command Runner"},"settings":{"show_label":{"description":"Displays 'Commands' next to the icon in the top bar","label":"Show text label in bar"},"show_toast":{"description":"Shows a toast notice upon command completion or error","label":"Show notifications"}},"title":"Command Runner","widget":{"label":"Commands","tooltip":"Command Runner - Run CLI commands in background"}},"codexbar-meter":{"plugin_name":"CodexBar Meter","settings":{"bar_provider_limit":{"description":"Maximum number of provider meters shown in the bar capsule; the panel and tooltip still include all providers.","label":"Bar provider limit"},"codexbar_path":{"description":"Command or absolute path used to query enabled CodexBar providers.","label":"CodexBar command"},"refresh_interval":{"description":"Seconds between background usage refreshes.","label":"Refresh interval"}}},"color_picker":{"color_copied":"Color {color} copied.","color_picked":"Color {color} picked.","color_picker":"Color Picker","could_not_parse":"could not parse hyprpicker output.","glyph":"Glyph","hex":"HEX","hyprpicker_not_installed":"hyprpicker is not installed.","no_color_picked":"No color picked yet.","no_history":"No colors in history yet.","opacity":"Opacity","recent_colors":"Recent Colors","rgb":"RGB","settings":{"hyprpicker_cursor":{"description":"Includes the cursor in the frozen screen preview.","label":"Show cursor"},"hyprpicker_disable_preview":{"description":"Turns off the live color preview while picking.","label":"Disable Live Preview"},"hyprpicker_format":{"description":"Default color format to copy to clipboard (Hex or RGB).","label":"Default Format"},"hyprpicker_lowercase":{"description":"Outputs the hexcode in lowercase.","label":"Lowercase Hex"},"hyprpicker_no_zoom":{"description":"Turns off the magnifying zoom lens while picking.","label":"Disable Zoom Lens"},"hyprpicker_radius":{"description":"Zoom lens circle radius in pixels, from 1 to 1000.","label":"Zoom Radius"},"hyprpicker_scale":{"description":"Zoom lens magnification, from 1 to 10.","label":"Zoom Scale"},"swatch_radius":{"description":"Corner radius of the history swatches and current-color preview.","label":"Swatches Corner Roundness"}}},"config-swap":{"panel":{"agree":"I understand","apply":"Apply","apply_notification_title":"Apply","cancel":"Cancel","confirmation":"Apply this configuration?","confirmation_delete":"Are you sure too delete ","created_by":"Created by {author}","delete":"delete","description":"Description: {description}","description_confirmation":"This will replace your current settings.toml and wallpaper. A backup is not created automatically unless you saved one first.","description_setting1":"Save your current configuration under a custom name at ~/Config-Swap/{name}. A default info.json is created and can be edited later at ~/Config-Swap/{name}/info.json. To set a preview, you can add preview.png to the config folder. This also works for wallpapers using wallpaper.png","download_failed":"Download failed","download_ok":"Download complete","error_path":"Incorrect path. Need a path like: ~/{your path}","info_how_to_submite_config_body":"You can contribute to Config Swap by adding your own configuration files and wallpaper to the store so others can use them.\n\nTo do so:\n* Go to the Settings section and save your configuration. The plugin will copy your settings.toml and create an info.json file.\n* Take a preview image and wallpaper, then go to ~/Config-Swap/{name} and copy your preview.png and wallpaper.png files. The exact names are required.\n* Update your info.json with important information such as the author and description.\n* Go to the GitHub page linked from the information panel in the Store section and create a pull request.\n* Wait for review, and then your configuration can be shared.","info_how_to_submite_config_title":"How to submit a configuration","info_store_applying_body":"Pressing apply replaces your active settings.toml and wallpaper with the selected profile. This is not reversible unless you saved a backup first from the Setting section.","info_store_applying_title":"Applying a profile","info_store_community_body":"Profiles are submitted by community members and are reviewed by the owner.","info_store_community_title":"Community content","info_store_copy_link_success":"copy link success","info_store_github_button":"github","info_store_installing_body":"Pressing install downloads the profile's files into ~/Config-Swap/{name}. This does not change your current configuration yet.","info_store_installing_title":"Installing a profile","info_store_rate_limits_body":"The store list is fetched from the GitHub API, which limits unauthenticated requests. Avoid refreshing repeatedly in a short period of time.","info_store_rate_limits_title":"Rate limits","info_store_title":"Info Store section","info_store_what_is_body":"The Store lists community-submitted configuration profiles hosted on the Config-Swap-Box GitHub repository. Each profile bundles a settings.toml, a preview image, and an optional wallpaper.","info_store_what_is_title":"What is the Store?","install":"Install","install_notification_title":"Install","installed_title":"Installed Configs","not_agree":"Not now","notification_title":"Config Swap","origin":"Origin: {origin}","refresh":"Refresh","save":"save","show_list":"Show List","show_store":"Show Store","store_title":"Config Store","success_path":"New Path Set","title":"Config Swap","welcome_message1":"Please read this carefully before you continue.","welcome_message2":"This plugin can replace your current Noctalia configuration. We recommend backing up your current settings first — use the Save button in the Installed section. Backups are stored in ~/Config-Swap.","welcome_message_title":"Welcome to Config Swap!"}},"contact-sounds":{"panel":{"add_button":"Add","add_folder_tooltip":"Add folder","add_image":"Photo / icon path (optional)","add_name":"Person's name","add_path":"Path to .ogg/.mp3 sound","add_path_folder":"Path to sounds folder","add_title":"Add contact","add_tooltip":"Add contact","cancel":"Cancel","cancel_tooltip":"Close the add form","delete_cancel_tooltip":"Cancel deletion","delete_confirm_tooltip":"Confirm deletion","delete_tooltip":"Remove this contact","edit_title":"Edit contact","edit_tooltip":"Edit this contact","empty_state":"No contacts configured yet.\nClick the + button above to add one.","error_saving":"Could not save the contact list. Check the log.","folder_no_sounds":"Folder has no playable sounds","folder_random":"Random (any sound)","folder_sounds":"Sound:","folder_switch_existing":"Pick from previously used folders","folder_switch_new":"Type a different path manually","invalid_contact":"Type a name and a sound path first.","kind_app":"App","kind_contact":"Contact","kind_group":"Group","kind_label":"Type","mode_file":"Sound file","mode_folder":"Sounds folder","mode_label":"Sound source","need_sounds":"The folder must contain an audio file (.ogg, .mp3 or .wav).","path_label":"Sound","play_tooltip":"Play this contact's sound","random_sound":"Random sound from folder","reorder_tooltip":"Drag to reorder the list","save_button":"Save","saved":"Contact list updated","settings_tooltip":"Open plugin settings","stop_tooltip":"Stop the sound that is currently playing","title":"Contact Sounds"},"settings":{"contact_images":{"description":"Map of names to a photo or icon file path shown in the panel list. App entries fall back to the app's own icon when empty.","label":"Photo / icon per entry"},"contact_kinds":{"description":"Entry type. 'contact' / 'group' match notification text, 'app' matches the notification app name only.","label":"Types (Contact / Group / App)"},"contact_order":{"description":"Order contacts appear in the panel list. Change it by dragging entries in the panel.","label":"List order"},"contacts":{"description":"Map of person names to the sound played when a notification mentions them. Key: the exact name. Value: absolute path to a .ogg or .mp3 file.","label":"Contacts"},"folder_sounds":{"description":"Map of names to the selected sound filename inside a folder entry. Empty means any sound (random).","label":"Selected folder sound"},"glyph":{"description":"Icon shown in the bar for this widget.","label":"Icon"},"match_case_sensitive":{"description":"When off, the name is searched ignoring capitalization.","label":"Case sensitive matching"},"only_apps":{"description":"Optional list of notification app names to restrict matching to. Leave empty to match notifications from any app.","label":"Only these apps"},"show_sound_name":{"description":"When off, the sound name capsule below each contact name is hidden.","label":"Show sound name"},"show_widget":{"description":"When off, the bell icon is hidden from the bar.","label":"Show bar icon"},"sound_folders":{"description":"Registry of known sound-folder paths offered when adding a new entry.","label":"Known sound folders"}},"shortcut":{"label":"Contact sounds"},"widget":{"tooltip_empty":"Contact Sounds: no contacts configured. Click to open the panel.","tooltip_ok":"Contact Sounds: %d contact(s) configured. Click to test them."}},"crashes":{"caption_checked":"checked {time}","empty":"No crashes recorded","empty_hint":"When one of your processes dumps core, it shows up here.","err_poll":"coredumpctl did not answer, see the Noctalia log","err_uid":"Could not resolve the user id, crash list disabled","journal_empty":"Nothing at this level in the current boot","level_alert":"alert and up","level_crit":"crit and up","level_emerg":"emerg only","level_err":"err and up","level_label":"Level","no_core":"core gone","notify_body":"{signal}, PID {pid} — open the Crashes panel to diagnose","notify_title":"Process crashed: {name}","settings":{"agent_cmd":{"description":"Command that receives the diagnosis prompt as its last argument: \"claude\", \"codex\", \"opencode --prompt\", \"grok --\"… Empty = use the first installed well-known agent.","label":"AI agent command"},"agent_order":{"description":"Which agents to try and in what order, e.g. \"codex, claude\". Empty: claude, opencode, codex, grok.","label":"Agent order"},"env_file":{"description":"Sourced before the agent starts. For a proxy or an API key your shell sets but a panel click does not inherit, e.g. ~/.config/agent-env.","label":"Environment file"},"extra_prompt":{"description":"Text appended to every diagnosis prompt — e.g. \"Answer in Russian\" or house rules for the agent.","label":"Extra prompt"},"notify":{"description":"Announce new crashes of your processes with a critical notification. Turn off if something else already announces them.","label":"Desktop notifications"},"poll_seconds":{"description":"How often to re-read the systemd-coredump journal.","label":"Poll interval (seconds)"},"probe_agent":{"description":"Before opening the window, ask the agent a throwaway question; if it cannot answer — out of quota, logged out, offline — the next one is opened instead. Costs one tiny request per diagnosis. Off: the first installed agent is opened whether or not it works.","label":"Check the agent can answer"},"terminal_cmd":{"description":"Wrapper that opens the agent in a window, e.g. \"kitty -e\". Leave empty if the agent command opens its own window.","label":"Terminal command"}},"tab_crashes":"Crashes","tab_journal":"Errors","tip_close":"Close","tip_diagnose":"Diagnose with AI in a terminal","tip_mute":"Stop notifying about this program","tip_no_core":"The core dump is gone (rotated away) — nothing to analyze","tip_refresh":"Re-read the coredump list now","tip_unmute":"Notify about this program again","title":"Crashes"},"cursor":{"active":"active","applied":"Cursor applied","apply":"Apply","applying":"Applying…","build":"Build","build_again":"Build again","build_hint":"A folder of PNGs. It is read and shown below before anything is written. Add spec.json to set hotspots, animation frames and delays.","build_path":"Folder with PNGs","building":"Building…","built":"Theme built","confirm_remove":"Remove?","convert":"Convert","convert_again":"Convert again","converting":"Converting…","drift":"Layers disagree — apply a theme to bring your compositor, GTK and Qt back in sync.","engine_missing":"The cursor engine did not run. Check that python3 is installed.","error":"Something went wrong","hide_after_ms":"Hide after ms","hide_when_typing":"Hide when typing","import_hint":"A Windows cursor pack folder. It is read and shown below before anything is written. An Install.inf is used when present.","import_path":"Cursor pack folder","install":"Install","install_hint":"A folder holding a cursors/ directory. Windows packs go in the Import tab.","install_path":"Theme folder","installed":"Installed","installed_themes":"Themes you installed","installing":"Installing…","loading":"Loading themes…","map_pick":"Pick a file for","map_roles":"Assign cursors","map_source_files":"Files in this folder — drag one onto a role, or pick a role then a file","mapped":"Mapped","method":"Source","needs_arrow":"No arrow cursor was found — assign one below, then convert again.","no_themes":"No cursor themes installed.","none_removable":"Nothing installed yet — system themes cannot be removed here.","not_a_folder":"Build needs a folder of PNGs, not a file.","not_set":"not set","path_missing":"That path does not exist.","pick_folder":"Folder…","picker_missing":"zenity is not installed — type the path instead, or install zenity.","reload":"Rescan themes","remove":"Remove this theme","removed":"Removed","removing":"Removing…","replaced":"Replaced","role_arrow":"Normal pointer — the default arrow","role_crosshair":"Precision select — the thin cross","role_help":"Help select — arrow with a question mark","role_legend":"What each cursor is for","role_link":"Link select — the pointing hand","role_move":"Move — four-way arrows","role_pen":"Handwriting — the pen","role_size_ew":"Resize left/right ↔ — left or right edge","role_size_nesw":"Resize corner ↗↙ — top-right / bottom-left","role_size_ns":"Resize up/down ↕ — top or bottom edge","role_size_nwse":"Resize corner ↖↘ — top-left / bottom-right","role_text":"Text select — the I-beam","role_unavailable":"Unavailable — the blocked circle","role_up_arrow":"Alternate select — arrow pointing up","role_wait":"Busy — hourglass or spinner, the app is not responding","role_working":"Working in background — arrow with a spinner","scan":"Load pack","scan_build":"Load PNGs","scanning":"Reading files…","settings":{"build_sizes":{"description":"Nominal sizes baked into themes you import or build.","label":"Built sizes","option":{"hidpi":"HiDPI (24-128)","small":"Small (24, 32, 48)","standard":"Standard (24-96)"}},"engine_path":{"description":"Leave empty. Only for a checkout that keeps curmgr elsewhere.","label":"Engine path"},"scale_filter":{"description":"How cursors are resized. Point keeps pixel art crisp; Lanczos suits smooth artwork.","label":"Resampling","option":{"lanczos":"Lanczos (smooth)","mitchell":"Mitchell (balanced)","point":"Point (pixel art)"}}},"shadow":"Windows shadow","shadow_tooltip":"Bake in the drop shadow Windows draws for you","size":"Size","tab_build":"Build","tab_import":"Import Windows","tab_install":"Install theme","tab_themes":"Themes","theme_name":"Theme name (optional)","title":"Cursor","unmapped":"Not recognised","unmapped_hint":"Assign them in the grid below, or rename the file after its role and convert again."},"custom-shortcut":{"settings":{"icon":{"description":"Icon of the control center shortcut.","label":"Icon"},"label":{"description":"Text of the control center shortcut.","label":"Label"},"onclick_cmd":{"description":"Command executed when the shortcut is clicked.","label":"Command"}}},"daily-wallpaper":{"notify":{"applied":"Wallpaper applied","failed":"Daily wallpaper failed"},"panel":{"date":"{source} · {date}","error":"Could not fetch today's wallpaper caption.","learn_more":"Learn more","loading":"Fetching today's wallpaper caption…","title":"Daily Wallpaper"},"settings":{"locale":{"description":"Bing market locale such as en-US, de-DE, or fr-FR. Empty uses en-US.","label":"Locale"},"source":{"label":"Source","options":{"bing":"Bing","nasa":"NASA"}},"widget":{"glyph":{"label":"Glyph"},"max_chars":{"label":"Max caption characters on the bar"},"show_text":{"label":"Show caption text next to glyph"}}},"widget":{"loading_short":"Loading…","panel_launch_failed":"Could not open the Daily Wallpaper panel.","title":"Daily Wallpaper","tooltip_error":"Could not fetch today's wallpaper caption.","tooltip_loading":"Fetching today's wallpaper caption…"}},"deepseek-peak":{"bar":{"drift-suffix":"policy may have changed","next-flip":"next flip in","off-peak":"OFF-PEAK","peak":"PEAK 2x","tooltip-off-peak":"OFF-PEAK","tooltip-peak":"PEAK (2x)"},"checked":{"hours-ago":"{n}h ago","just-now":"just now","minutes-ago":"{n}m ago"},"menu":{"refresh":"Refresh now","settings":"Widget settings","use-deep-seek":"Use DeepSeek","use-ollama":"Use Ollama"},"notice":{"policy-changed":"DeepSeek pricing policy may have changed"},"panel":{"beijing":"Beijing","checked":"Checked","drift":"Policy may have changed — see source","holiday-ends":"Holiday ends {date}","local":"Local","next-holiday":"Next holiday {range} · in {n}d","off-peak":"OFF-PEAK","off-peak-in":"Off-peak in","off-peak-line":"Off-peak: weekends (UTC)","off-peak-line-holidays":"Off-peak: weekends + Chinese holidays","peak":"PEAK (2x)","peak-in":"Peak in","provider":"Provider","schedule":"Peak","utc":"UTC","weekend-all-day":"off-peak all day"},"provider":{"deepseek":"DeepSeek","ollama":"Ollama"},"settings":{"auto-check":{"description":"Periodically check the official pricing page for policy drift","label":"Auto Check"},"check-interval-h":{"description":"Hours between policy-drift checks","label":"Check Interval (hours)"},"custom-source-url":{"description":"Override for the official pricing page","label":"Custom Source URL","placeholder":"https://…"},"display-mode":{"compact":"Compact (dot + countdown)","description":"How to show the widget","full":"Full (state + countdown)","icon":"Icon only","label":"Display Mode"},"drift-color":{"description":"Widget color when policy drift is detected","label":"Drift Color"},"off-peak-color":{"description":"Widget color during off-peak","label":"Off-peak Color"},"offline-only":{"description":"Disable network checks","label":"Offline Only"},"peak-color":{"description":"Widget color during peak","label":"Peak Color"},"provider":{"description":"Which tariff schedule to follow","label":"Provider"},"show-tooltip":{"description":"Show state tooltip on hover","label":"Show Tooltip"}}},"deepseek_usage":{"error":{"invalid_key":"Invalid or expired API Key (401)","no_wallet":"No active wallet found in user summary","parse_failed":"Failed to parse API response"},"panel":{"add_credits":"Add Credits","add_credits_tooltip":"Open DeepSeek platform top-up page in browser","current_balance":"Available Balance","history_title":"Balance History (24h Trend)","open_settings":"Open Settings","refresh_tooltip":"Refresh balance now","settings_btn":"Settings","title":"DeepSeek Balance","unconfigured_desc":"Please configure your DeepSeek API Key in the plugin settings.","unconfigured_title":"API Key Required","updated_at":"Updated","wallet_info":"Normal Wallet"},"settings":{"api_key":{"description":"API Key from platform.deepseek.com/api_keys","label":"DeepSeek API Key"},"low_balance_threshold":{"description":"Send a desktop notification when balance drops below this amount","label":"Low Balance Warning Threshold"},"refresh_minutes":{"description":"How often to poll DeepSeek API for balance updates","label":"Refresh Interval (Minutes)"}},"status":{"never":"Never","ok":"Active","unconfigured":"API Key Not Set"},"title":"DeepSeek Usage","tooltip":{"action":"Action","balance":"Current Balance","click_to_configure":"Click to open settings and set API Key","last_updated":"Last Checked","status":"API Status"},"widget":{"error":"Error","loading":"Checking...","no_key":"Set Key"}},"default-apps":{"category":{"archive":"Archive Manager","browser":"Web Browser","calendar":"Calendar","editor":"Text Editor","files":"File Manager","mail":"Email","music":"Music","pdf":"PDF Viewer","photos":"Photos","torrent":"BitTorrent Client","video":"Video","word":"Word Processor"},"panel":{"apply":"Apply","applying":"Applying changes...","init":"Initializing...","loading":"Loading...","locating":"Locating desktop files...","none":"None","not_listed":"Not Listed","pick":"Pick an app...","querying":"Querying xdg-mime: ","reading":"Reading: ","set_failed":"Failed to set","sorting":"Sorting applications...","title":"Default Apps"}},"desktop-launcher":{"settings":{"apps":{"label":"Applications"},"columns":{"label":"Columns"},"grid_layout":{"label":"Grid Layout"}}},"discord-voice":{"auth":{"button":"Authorize Discord","description":"Discord will ask you to grant local voice read and control access through its StreamKit integration.","title":"Authorize Discord Voice","waiting":"Waiting for Discord","waiting_description":"Complete the authorization prompt in the Discord desktop app."},"bar":{"authorize":"Authorize","authorizing":"Authorizing…","offline":"Offline"},"connection":{"connected":"Connected","connecting":"Connecting","disconnected":"Disconnected","no_route":"No route","ping":"{ping} ms"},"controls":{"deafen":"Deafen","hang_up":"Hang up","mute":"Mute","undeafen":"Undeafen","unmute":"Unmute"},"error":{"bridge_stalled":"The Discord voice bridge stopped responding.","bridge_start":"Could not start the Discord voice bridge.","command":"The Discord voice command failed.","python_missing":"python3 is required but was not found in PATH.","title":"Discord voice error"},"not_in_voice":{"title":"Not in an active channel"},"offline":{"description":"Start the Discord desktop app. The bridge will reconnect automatically.","title":"Discord is unavailable"},"open_discord":"Open in Discord","participant":{"listening":"Listening","speaking":"Speaking","you":"(you)"},"participants":{"empty":"Nobody is visible in this channel yet.","title":"Participants ({count})"},"saved":{"channels":"Recent channels","empty":"Your five most recently joined channels will appear here.","join":"Join"},"settings":{"discord_binary":{"description":"Discord desktop executable used to launch the app and open the active voice channel.","label":"Discord executable"},"glyph":{"label":"Bar glyph"},"hide_when_disconnected":{"description":"Hide the bar widget when no voice channel is connected.","label":"Hide outside voice"},"show_channel_name":{"description":"Show the current voice channel beside the Discord glyph.","label":"Show channel name"}},"starting":"Connecting to Discord…","title":"Discord Voice","unknown_server":"Unknown server","unknown_user":"Unknown user","voice_channel":"Voice channel"},"dnf-updater":{"actions":{"check_now":"Check Now","close":"Close","collapse":"Collapse section","deselect_all":"Deselect all","exclude_pkg":"Exclude from update","expand":"Expand section","include_pkg":"Include in update","open_settings":"Settings","select_all":"Select all","update_all":"Update All","update_all_size":"Update All ({count} · {size})","update_dnf":"Update DNF","update_flatpak":"Update Flatpak","update_selected":"Update Selected ({count})","update_selected_size":"Update Selected ({count} · {size})"},"notifications":{"update_complete_body":"System updates have completed successfully.","update_complete_title":"Update Complete","update_failed_body":"An error occurred while installing updates.","update_failed_title":"Update Failed","updates_available_body":"{count} pending updates are ready to install.","updates_available_title":"Updates Available"},"sections":{"dnf":"DNF · {count} updates","dnf_selected":"DNF · {selected}/{total} updates","flatpak":"Flatpak · {count} updates","flatpak_selected":"Flatpak · {selected}/{total} updates","runtime":"Runtime"},"settings":{"check_interval":{"description":"How often to automatically check for updates in minutes (0 to disable).","label":"Check Interval (Minutes)"},"enable_dnf":{"description":"Check for and manage DNF5 system package updates.","label":"Enable DNF"},"enable_flatpak":{"description":"Check for and manage Flatpak application updates.","label":"Enable Flatpak"},"glyph":{"description":"Icon glyph to display in the Noctalia bar widget.","label":"Widget Icon"},"include_flatpak_runtimes":{"description":"Include Flatpak runtime and extension updates alongside applications.","label":"Include Flatpak Runtimes"},"notify_on_updates":{"description":"Send a desktop notification when new pending updates are found.","label":"Notify on New Updates"},"show_widget_when_clean":{"description":"Show the bar widget even when there are no pending updates.","label":"Show Widget When Clean"},"update_in_terminal":{"description":"Launch update commands inside a terminal emulator instead of running in background with polkit.","label":"Run Updates in Terminal"}},"status":{"checking":"Checking for updates…","dnf_checking":"Checking DNF…","dnf_done":"DNF up to date","dnf_error":"DNF error","dnf_idle":"DNF idle","dnf_updating":"Updating DNF…","everything_up_to_date":"Everything is up to date.","flatpak_checking":"Checking Flatpak…","flatpak_done":"Flatpak up to date","flatpak_error":"Flatpak error","flatpak_idle":"Flatpak idle","flatpak_updating":"Updating Flatpak…","flatpak_waiting":"Flatpak waiting…","last_checked":"Last checked: {time}","never_checked":"Never checked","skipped":"Skipped","updating":"Updating packages…"},"summary":{"disk_size":"Disk Size","dnf":"DNF","download":"Download","flatpak":"Flatpak","last_checked":"Last Checked","storage":"Storage","total":"Total"},"title":"DNF Updater","tooltip":{"all_up_to_date":"All packages up to date","disk_size":"Disk size","download_size":"Download size","updates_available":"{count} updates available"}},"dns-switcher":{"applied":"DNS switched to {name}","copied":"DNS servers copied: {ip}","err_apply_failed":"Failed to apply the DNS settings","err_auth_dismissed":"Authorization dismissed","err_invalid_ip":"Invalid DNS address: {ip}","err_no_connection":"No active NetworkManager connection","err_no_nmcli":"nmcli not found — install NetworkManager","err_not_authorized":"NetworkManager refused the change (not authorized). Set the Privilege command setting to 'pkexec' or 'sudo -n'.","err_spawn":"Could not run nmcli","err_timeout":"Timed out applying the DNS change (authorization prompt left unanswered?)","err_unknown_provider":"Unknown provider id: {id}","menu":{"apply":"Apply this provider","copy":"Copy these addresses","reapply":"Re-apply this provider","test":"Look up {name} through this resolver","test_hint":"Type a hostname below to look it up here"},"resolve_busy":"Resolving…","resolve_empty":"No records found","resolve_invalid":"Enter a valid hostname","resolve_no_tool":"Neither dig nor nslookup is installed","resolve_placeholder":"hostname, e.g. example.com","resolve_spawn_failed":"Could not run the lookup","resolve_timeout":"Timed out","resolve_title":"DNS lookup","resolve_via":"via {name} ({server})","resolve_via_system":"via system resolver","settings":{"custom":{"description":"One custom resolver, written 'Name = address', with one or two IPv4 addresses: 'Pi-hole = 192.168.1.5' or 'NextDNS = 45.90.28.0 45.90.30.0'. The panel lists the slots in order and skips the empty ones; a row that is not a valid address is skipped and logged."},"custom_1":{"label":"Custom server 1"},"custom_2":{"label":"Custom server 2"},"custom_3":{"label":"Custom server 3"},"custom_4":{"label":"Custom server 4"},"custom_5":{"label":"Custom server 5"},"poll_seconds":{"description":"How often the active DNS is re-read with nmcli.","label":"Poll interval (seconds)"},"privilege_command":{"description":"Prefix to run nmcli changes as root (e.g. 'pkexec', 'sudo -n'). Empty (default) runs nmcli directly — NetworkManager's polkit policy allows this for active local sessions on most desktop distros.","label":"Privilege command"},"providers":{"description":"Comma-separated ids included in the scroll cycle: google, cloudflare, opendns, adguard, quad9. Empty = none (custom servers and ISP default only).","label":"Built-in providers"},"show_label":{"description":"Show the provider name next to the glyph (off = glyph only).","label":"Show provider name"}},"status_auto":"automatic","status_checking":"Checking…","status_custom":"Custom ({ip})","status_default":"Default (ISP)","status_no_nmcli":"nmcli unavailable","status_switching":"Switching…","tip_close":"Close","tip_copy":"Copy the active DNS servers","tip_resolve":"Resolve this name with the active DNS","tip_settings":"Plugin settings","title":"DNS Switcher","tooltip_actions":"Actions","tooltip_hints":"click: panel · right: reset to ISP · scroll: cycle","tooltip_provider":"DNS","tooltip_servers":"Servers","tooltip_switching":"Applying the DNS change — a password prompt may appear"},"drive-health":{"alerts":{"active_title":"{count} active drive alert(s)","collector_error":"Drive monitoring could not refresh: {error}","collector_title":"Drive Health collector problem","command_timeout":"{drive} recorded {count} new command timeout event(s) since the previous scan.","critical_temperature_time_increase":"{drive} accumulated {count} new minute(s) above its critical temperature.","dismiss":"Dismiss alert","dismiss_all":"Dismiss all","drive_missing":"{drive} has been missing for {count} consecutive scans.","drive_title":"SMART alert: {drive}","error_log_increase":"{drive} recorded {count} new SMART error-log entry or entries.","health_failed":"{drive} reports a failed SMART health check.","interface_crc":"{drive} recorded {count} new interface CRC error(s) since the previous scan; check its data cable and connectors.","life_critical":"{drive} has critically low endurance: {remaining}% remaining.","life_warning":"{drive} has only {remaining}% estimated endurance remaining.","media_errors":"{drive} recorded {count} new media/data integrity error(s) since the previous scan.","nvme_critical":"{drive} reports NVMe critical-warning flags {value}.","pending":"{drive} recorded {count} new pending sector(s) since the previous scan.","reallocated":"{drive} recorded {count} newly reallocated sector(s) since the previous scan.","recovered_body":"No longer active: {issue}","recovered_title":"SMART issue recovered: {drive}","self_test_failed":"{drive} reports a failed SMART self-test: {status}.","smart_unavailable":"Full SMART data is unavailable for {drive}.","spare_low":"{drive} has only {spare}% spare capacity remaining.","spin_retry":"{drive} recorded {count} new spindle spin retry event(s) since the previous scan.","storage_critical":"{drive} mounted storage is critically full at {used}%.","storage_warning":"{drive} mounted storage is {used}% full.","temperature_cooling":"{drive} is cooling at {temperature} °C; the alert clears below {threshold} °C.","temperature_critical":"{drive} is at {temperature} °C (critical threshold: {threshold} °C).","temperature_warning":"{drive} is at {temperature} °C (warning threshold: {threshold} °C).","test_body":"Notifications are working. This is only a test; no drive issue was created.","test_title":"Drive Health alert test","uncorrectable":"{drive} recorded {count} new uncorrectable error(s) since the previous scan.","unknown_drive":"Unknown drive","unsafe_shutdown_increase":"{drive} recorded {count} new unsafe shutdown(s) since the previous scan.","warning_temperature_time_increase":"{drive} accumulated {count} new minute(s) above its warning temperature."},"collector":{"action_install":"install or upgrade the collector","action_pause":"pause the collector","action_remove":"remove the collector","action_start":"start the collector","authorization_required":"Polkit (pkexec) is required for the collector lifecycle action. Install your distribution's polkit package.","basic_features":"Drive discovery, mounted folders, storage use, and temperatures exposed by Linux.","basic_title":"Basic monitoring — no elevated service","copy_install":"Copy command","full_features":"Reliable health, endurance, error counters, sensor details, and background self-test progress.","full_title":"Full SMART — optional","install":"Install collector","interval":"Full SMART refresh: every {minutes} min","interval_applied":"Full SMART refresh schedule updated.","interval_authorizing":"Waiting for administrator approval to update the full SMART schedule…","interval_cancelled":"Administrator approval was cancelled.","interval_command_failed":"The administrator command did not complete.","interval_failed":"Could not update the full SMART schedule: {error}","interval_launch_failed":"Could not open the administrator authorization dialog.","interval_timeout":"Administrator approval timed out. Try again when you are ready to approve it.","open_settings":"Open Plugins page","pause":"Pause service","pause_terminal_opened":"A terminal opened. Review the command and approve sudo to stop the collector timer.","remove":"Remove collector","remove_confirm":"Click Remove collector again to request authorization for the explicit uninstall action.","settings_hint":"Enable or disable Full SMART from Settings → Plugins → Drive Health. All privileged actions use the desktop authorization dialog.","settings_opened":"Opened the Plugins page. Select the gear on Drive Health to change its settings.","settings_title":"Collector settings","start":"Start collector","start_terminal_opened":"A terminal opened. Review the command and approve sudo to enable and refresh the collector.","status_disabled":"Basic mode is active; the optional system collector is not being used.","status_healthy":"Collector {version} is installed and refreshing full SMART data.","status_not_installed":"Install the read-only collector to unlock full SMART data.","status_stale":"The collector is installed, but its cache is stale or unavailable.","status_upgrade_required":"Collector {version} is outdated; upgrade to the bundled version.","stop_service":"Stop background service","terminal_opened":"A terminal opened. Review the command and approve sudo to install or upgrade.","title":"System collector","uninstall_terminal_opened":"A terminal opened. Review the removal command and approve sudo to continue.","update_body":"Full SMART is enabled. Update collector {current} to {expected} from the Drive Health panel to keep all features working.","update_title":"Drive Health collector update available","upgrade":"Upgrade collector"},"common":{"duration_days":"{value} d","duration_hours":"{value} h","duration_years":"{value} y","never":"never","not_available":"N/A","unknown":"unknown"},"dependencies":{"action_install":"install dependencies","alert_body":"Install the missing dependencies to enable complete monitoring: {missing}. Open the Drive Health panel to review the command.","alert_title":"Drive Health setup required","collection_blocked":"Drive collection is paused because required commands are missing: {missing}","command":"Suggested {manager} command","copied":"Installation command copied.","copy_command":"Copy command","install":"Install","install_body":"The desktop administrator authorization dialog will request approval before installing the required packages.","install_title":"Install dependencies","manual_install":"No supported package manager with desktop authorization was detected. Install the listed commands manually, then recheck.","missing":"Missing commands: {missing}","package_manager":"package manager","recheck":"Recheck","title":"Required dependencies are missing"},"health":{"failed":"Failed","passed":"Healthy","unknown":"Unknown"},"history":{"hotspot":"Hotspot temperature","life":"Life remaining","samples":"{count} samples","title":"Drive health trends"},"metrics":{"available_spare":"Available spare","command_timeout_count":"Command timeouts","critical_warning":"Critical warning","data_read":"Data read","data_written":"Data written","device_temperature_limits":"Firmware limits (warning / critical)","endurance_used":"Endurance used","error_log_entries":"Error-log entries","hotspot_and_composite":"{hotspot} · {composite} composite","hotspot_temperature":"Hotspot","interface_crc_errors":"Interface CRC errors","life_remaining":"Life remaining","life_remaining_estimated":"Life remaining (estimated)","load_cycle_count":"Head load cycles","media_errors":"Media errors","mounted_at":"Mounted at: {paths}","pending":"Pending sectors","power_cycles":"Power cycles","power_on":"Power-on time","reallocated":"Reallocated sectors","serial":"Serial: {value}","smart_health":"SMART health","spin_retry_count":"Spin retry count","start_stop_count":"Start/stop cycles","storage_used":"Storage used","temperature":"Temperature","temperature_sensors":"Temperature sensors","uncorrectable":"Uncorrectable errors","unsafe_shutdowns":"Unsafe shutdowns"},"panel":{"collapse":"Hide drive details","expand":"Show drive details","no_drives":"No supported drives were discovered.","refreshing":"Refreshing SMART data…","title":"Drive Health","updated":"Updated {time}","waiting":"Waiting for the first drive scan…"},"preferences":{"alerts":"Health alerts","alias":"Display name","critical_temperature":"Critical °C","edit":"Customize drive","hidden_drives":"Hidden drives","hide":"Hide drive","invalid_thresholds":"Enter numeric thresholds and keep critical temperature above warning temperature.","life_warning":"Life warning %","move_down":"Move drive down","move_up":"Move drive up","presence":"Missing-drive alerts","restore":"Restore","save":"Save","save_failed":"Drive preferences could not be saved.","saved":"Drive preferences saved.","title":"Drive preferences","warning_temperature":"Warning °C"},"privileged_action":{"authorizing":"Waiting for administrator approval to {action}…","cancelled":"Administrator approval was cancelled.","command_failed":"The administrator command did not complete.","completed":"Completed: {action}.","failed":"Could not {action}: {error}","launch_failed":"Could not open the administrator authorization dialog.","timeout":"Administrator approval timed out. Try again when you are ready to approve it."},"self_test":{"authorization_cancelled":"Administrator approval was cancelled.","authorization_required":"Polkit (pkexec) is required for background self-tests. Install your distribution's polkit package.","authorization_timeout":"Administrator approval timed out. Try again when you are ready to approve it.","authorizing":"Waiting for administrator approval…","cancel":"Cancel","confirm":"Start a {type} SMART self-test in the background? Your desktop will request administrator approval.","confirm_action":"Authorize and start","helper_required":"Install or upgrade the system collector to enable explicitly approved self-tests.","in_progress":"Self-test in progress","launch_failed":"The background self-test could not be started.","log_failure":"The SMART self-test log contains a relevant failed test.","log_unavailable":"Self-test log unavailable","long":"Extended test","none_recorded":"No self-test recorded","progress":"Test progress","short":"Short test","started_background":"The self-test is running in the background. Progress and the final result will update here.","starting":"Request accepted; waiting for the drive to report progress…","title":"SMART self-test","unavailable":"Self-test information unavailable"},"settings":{"alert_hdd":{"description":"Evaluate rotational disks for temperature, SMART health, sector, spindle, timeout, and interface alerts.","label":"Alert on hard drives"},"alerts_enabled":{"description":"Notify when a new drive issue appears or an existing issue worsens.","label":"Desktop alerts"},"critical_temperature":{"description":"Temperature in °C that changes a drive to critical color.","label":"Critical temperature"},"drive_missing_alerts":{"description":"Warn when an established internal drive disappears for several scans.","label":"Missing-drive alerts"},"full_smart_refresh_minutes":{"description":"Minutes between privileged full SMART reads. Default: 15 minutes. Change the value here, then use Apply schedule in the collector controls and approve the administrator prompt.","label":"Full SMART refresh interval"},"history_interval_minutes":{"description":"Minutes between persisted temperature and endurance samples.","label":"History sample interval"},"history_retention_days":{"description":"Days of bounded drive trend history to retain.","label":"History retention"},"life_warning_percent":{"description":"Remaining SSD life percentage that triggers a warning.","label":"Endurance warning"},"missing_grace_scans":{"description":"Consecutive successful scans a drive may be absent before an alert appears.","label":"Missing-drive grace scans"},"notify_recovery":{"description":"Notify when a previously active drive issue clears.","label":"Recovery notifications"},"refresh_seconds":{"description":"Seconds between lightweight plugin refreshes for drive inventory, mounts, and available sysfs temperatures.","label":"Refresh interval"},"show_hdd":{"description":"Display rotational disks with HDD-specific health and integrity information.","label":"Show hard drives"},"system_collector_enabled":{"description":"Use the separately authorized read-only system collector for reliable health, endurance, error counters, sensor details, and self-test progress. Turning this off ignores its cache but does not stop an installed timer; stop it from the Drive Health collector controls.","label":"Full SMART collector (optional)"},"use_hotspot_temperature":{"description":"Use the hottest valid NVMe sensor for summary colors and temperature alerts.","label":"Use hottest sensor"},"warning_temperature":{"description":"Temperature in °C that changes a drive to warning color.","label":"Warning temperature"}},"smart":{"access_limited":"Temperature and storage are available; health and full SMART details require the read-only system collector.","partial_body":"Full SMART details available for {available} of {total} drives.","partial_details":"Core health is available, but at least one optional SMART section could not be read.","partial_title":"Limited SMART access","sleeping":"Drive is sleeping; SMART checks were skipped to avoid spinning it up."},"storage":{"not_mounted":"Not mounted"},"summary":{"drive_mix":"{ssds} SSD · {hdds} HDD","drives":"Drives","hottest":"Hottest","lowest_ssd_life":"Lowest SSD life"},"widget":{"active_alerts":"{count} active SMART alert(s)","loading":"Loading drive health…","no_alerts":"No active alerts","smart_unavailable":"Full SMART access unavailable for {count} drive(s)","tooltip":"{count} drives ({ssds} SSD, {hdds} HDD) • hottest {temperature} • lowest SSD life {remaining}"}},"dropwall":{"notify":{"copy_dir_missing":"No wallpaper directory is configured; the original file will be used.","copy_dir_title":"Wallpaper was not copied","copy_failed":"The safe copy failed; the original file will be used.","helper_busy":"Another DropWall helper is still running. The plugin will keep retrying.","helper_error_title":"DropWall helper error","helper_file_missing":"The DropWall supervisor file is missing.","helper_start_failed":"Noctalia could not open the helper stream.","invalid_title":"Not an image (jpg, png, webp, bmp, gif)","missing_title":"Dropped file not found","no_outputs":"The helper could not create a drop target for any output.","output_error_title":"Could not identify the target monitor","plugin_dir_missing":"Noctalia did not provide the plugin directory.","python_missing":"python3 is not available on PATH.","set_title":"Wallpaper set"},"settings":{"copy_to_wallpaper_dir":{"description":"Copy the dropped image into the system wallpaper directory before applying. Existing files are never replaced; a numeric suffix is added when needed.","label":"Copy into wallpaper directory"},"layer":{"description":"Layer-shell layer for the invisible drop surface. \"Background\" is the least intrusive; use \"Bottom\" if drops don't register.","label":"Drop surface layer","options":{"background":"Background","bottom":"Bottom"}},"notify_on_set":{"description":"Show a notification when a dropped image is applied.","label":"Notify on set"},"per_monitor":{"description":"Set the wallpaper only on the monitor the image was dropped on. When off, apply it to every output.","label":"Per-monitor drop"}},"title":"DropWall"},"ds4-color":{"applied":"Lightbar set to #{color}","apply":"Apply","bad_color":"Invalid hex color.","ds4_color":"DS4 Color","no_controller":"No DualShock 4 detected.","presets":"Presets","save":"Save","saved":"Color #{color} saved","settings":{"glyph":{"description":"Icon shown on the bar button.","label":"Bar Glyph"}},"write_error":"Failed to write to controller."},"emoji-picker":{"settings":{"paste_command":{"description":"Optional shell command run after copying. {emoji} is replaced with the shell-quoted character (e.g. 'ydotool key -d 20 29:1 47:1 47:0 29:0' to press Ctrl+V, or 'wtype {emoji}' to type it). Leave empty to copy to the clipboard only.","label":"Paste command"}}},"eyecare":{"notifications":{"eyecare-break-body":"Focus on an object 20 feet away for {seconds} seconds.","eyecare-break-finished-body":"Your eyes are rested. You can return to your screen.","eyecare-break-finished-title":"Break finished","eyecare-break-title":"Time for a break","eyecare-reset-body":"Timer has been reset.","eyecare-reset-title":"Eye-Care"},"settings":{"eyecare-active-duration":{"description":"Active screen time before triggering a break (minutes)","label":"Active Duration"},"eyecare-break-duration":{"description":"Required duration for eye-care breaks (seconds)","label":"Break Duration"},"eyecare-notifications":{"description":"Show system-level notifications for reminders","label":"Enable Notifications"},"eyecare-sound":{"description":"Play notification sound when breaks start or finish","label":"Enable Audio Feedback"}}},"file-search":{"build_time":"indexed in {duration}","copied_entry":"Path copied to clipboard","copied_name":"Name copied to clipboard","copied_path":"Search folder path copied to clipboard","counts":"{shown} shown · {total} indexed","counts_disks":" · {disks} external","counts_stale":" · out of date","err_bad_record":"Ignored an invalid index record — rebuild the index","err_index":"Failed to index the search folder","err_no_fzf":"fzf not found — install fzf to use this plugin","err_spawn":"Could not run the search command","index_missing":"External disks are only indexed on demand — press ↻ to index this scope","launcher":{"index_missing":"No index for this scope yet","indexing":"Indexing files…","no_results":"No matches","reindex_done":"Search index dropped — it rebuilds on the next search","reindex_title":"Rebuild search index","scope_next":"Switch to: {next}","scope_title":"Searching: {current}"},"menu":{"copy_name":"Copy name","copy_path":"Copy full path","open":"Open","reveal":"Show in file manager"},"no_external":"No external disk mounted — plug one in, then rebuild the index","no_results":"No matches for \"{query}\"","ranking":{"default":"generic — the shortest path wins","path":"path-aware — a match starting a name wins"},"row_action":{"copy":"copies its path","reveal":"shows it in the file manager"},"scope":{"all":"search folder + external disks","external":"external disks only","folder":"search folder only"},"search_placeholder":"Type to search files and folders…","settings":{"exclude_dirs":{"description":"Folder names skipped while indexing, separated by ',' or ';' (matched anywhere in the tree), e.g. '.git, node_modules, .cache'.","label":"Excluded folders"},"glyph":{"description":"Icon shown on the bar.","label":"Glyph"},"max_results":{"description":"How many matches the panel lists at most.","label":"Max results"},"search_folder":{"description":"Root folder the search indexes. Defaults to your home folder when empty.","label":"Search folder"},"show_hidden":{"description":"Index files and folders whose name starts with a dot.","label":"Include hidden entries"},"usage_exclude_dirs":{"description":"Folders left out of the disk usage chart, separated by ',' or ';'. A bare name matches anywhere below the search folder; a path (absolute, or starting with ~) matches that one folder. Folders on another filesystem are already skipped.","label":"Usage chart: excluded folders"}},"status_indexing":"Indexing {path}…","status_indexing_multi":"Indexing {count} locations…","syntax_hint":"'exact · ^starts · ends$ · !exclude · a | b","syntax_hint_label":"fzf syntax:","tip_close":"Close","tip_ranking":"Ranking: {current}\ne.g. \"config\" → .ssh/config, not …/Steam Controller Configs/\nClick to switch to: {next}","tip_ranking_unsupported":"Path-aware ranking needs fzf 0.36 or newer","tip_refresh":"Rebuild the file index","tip_row_action":"Right click on a result {current}\nClick to switch to: {next}","tip_scope":"Searching: {current}\nClick to search {next}","tip_scope_free":"{free} free across {count} disk(s)","tip_settings":"Plugin settings","tip_usage_filter_clear":"Search the whole folder again","tip_usage_folder":"Search only inside {folder}","tip_usage_folder_clear":"Stop searching only inside {folder}","tip_usage_folder_only":"The usage chart only measures the search folder","tip_usage_hide":"Hide the disk usage chart","tip_usage_show":"Show what fills the search folder","tip_whole_off":"Searching the whole system (/)\nClick to search only the search folder","tip_whole_on":"Search the whole system (/)\nRemote, FUSE and removable disks stay excluded","title":"File Search","tooltip_closed":"File search — {path}\nClick to search · right-click: folder","tooltip_open":"File search open — {path}\nClick to close","usage_amount":"{size} · {share}%","usage_center":"used","usage_error":"Disk usage unavailable ({reason}).","usage_filter":"Searching inside {folder}","usage_hint":"click a folder to search inside it","usage_idle":"Disk usage not measured yet.","usage_loose":"(loose files)","usage_other":"other","usage_scanning":"Measuring disk usage…","usage_skipped":"not counted: {names} (other filesystem)"},"game-launcher":{"settings":{"glyph":{"label":"Icon"},"heroic_enabled":{"label":"Show Heroic games"},"lutris_enabled":{"label":"Show Lutris games"},"panel_mode":{"description":"Side panel or original panel when opening from the bar widget.","label":"Panel style","original":"Original","side":"Side panel"},"steam_enabled":{"label":"Show Steam games"},"steampoacher_enabled":{"label":"Steampoacher proxy for covers"}}},"gamer-mode":{"cleanup":{"failed":"That did not work. See the log.","pagecache":"Drop page cache","pagecache_done":"Page cache dropped.","running":"Working...","shaders":"Clear shader caches","shaders_confirm":"Delete {size}?","shaders_done":"Cleared {size} of shader cache.","shaders_none":"No shader caches found.","swap":"Reclaim swap","swap_done":"Swap reclaimed into RAM.","swap_empty":"Nothing is swapped out.","swap_no_room":"Not enough free RAM to hold what is swapped out.","swap_unknown":"Swap usage could not be read.","title":"Maintenance"},"notify":{"disabled_title":"Gamer mode disabled","enabled_title":"Gamer mode enabled","nothing_restored":"Nothing needed restarting.","nothing_suspended":"No background targets were running.","restored_count":{"one":"Restored 1 target.","other":"Restored {count} targets."},"session_failed":"The session file could not be written, so nothing was suspended.","session_failed_title":"Gamer mode could not start","suspended_count":{"one":"Suspended 1 target.","other":"Suspended {count} targets."}},"panel":{"close":"Close","disable":"Disable","enable":"Enable","frozen":"frozen","gpu_unsupported":"GPU metrics unsupported","load":"Load","metrics_unavailable":"System metrics unavailable","mode_profile":"Suspend profile","network":"Net","nothing_suspended":"Nothing suspended","performance":"Performance","power":{"balanced":"Balanced","performance":"Performance","power-saver":"Power saver"},"power_profile":"Power profile","power_unavailable":"powerprofilesctl unavailable","profiles":{"heavy":"Heavy","light":"Light"},"settings":"Settings","state_off":"Off","state_on":"Running","stopped":"stopped","suspended":"Suspended","title":"gamer-mode","working":"Working..."},"settings":{"auto_performance":{"description":"Switch power profile to performance while gamer mode is on.","label":"Auto performance profile"},"click_action":{"description":"What left-clicking the bar icon does. Right-click always toggles gamer mode.","label":"Left-click action","options":{"open_panel":"Open panel","toggle":"Toggle gamer mode"}},"glyph":{"description":"Glyph shown on the bar.","label":"Bar icon"},"icon_file":{"description":"An SVG or PNG to use instead of the glyph. Edits to the file appear in the bar straight away.","label":"Custom icon"},"icon_file_active":{"description":"Shown while gamer mode is on. A custom icon cannot be recoloured, so without this the state is only in the tooltip.","label":"Custom icon, gamer mode on"},"monitor":{"flame":{"description":"Burns while gamer mode is on, as hot as the machine is working. \"Always\" keeps it animating the whole session, which costs CPU while you play.","label":"Flame","options":{"always":"Always","flare":"Flare on switch","off":"Off"}},"flame_height":{"description":"Height of the flame band in pixels. The band is mirrored by an equal space above it so the readings stay centred, so it can only be half of whatever the pill has spare. Raise the bar's capsule thickness for a taller flame.","label":"Flame height"},"flame_style":{"description":"How the flame is drawn. \"Graph\" is one node and the cheapest; \"bars\" is crisper up close and costs 28.","label":"Flame style","options":{"bars":"Bars","graph":"Graph"}},"highlight_gamer_mode":{"description":"Tints the readout instead of adding an icon, so nothing moves when it switches.","label":"Highlight while gamer mode is on"},"label_min_width":{"description":"Pixels to reserve for each reading. Zero lets every value hug its text, so the readout is as wide as it needs to be. Raise it if you would rather the width held steady than stayed tight.","label":"Reserved value width"},"show_cpu":{"description":"Show processor load in the bar.","label":"CPU usage"},"show_cpu_temp":{"label":"CPU temperature"},"show_glyphs":{"description":"Show an icon beside each reading. Off gives numbers only.","label":"Icons"},"show_gpu":{"label":"GPU usage"},"show_gpu_temp":{"label":"GPU temperature"},"show_load":{"label":"Load average"},"show_net":{"label":"Network rates"},"show_ram":{"label":"RAM used"},"show_swap":{"label":"Swap used"},"show_vram":{"label":"VRAM used"}},"poll_interval":{"description":"Seconds between metric updates.","label":"Poll interval","options":{"2":"2s","3":"3s","5":"5s"}},"profile":{"description":"How aggressive the suspend list is.","label":"Gamer mode profile","options":{"heavy":"Heavy","light":"Light"}},"show_temps":{"description":"Include CPU/GPU temperatures in tooltip and panel.","label":"Show temperatures"},"targets":{"description":"Advanced: JSON array of {match, kind, profiles}. Kind: process, user-service, system-service, container.","label":"Suspend targets (JSON)"}},"widget":{"cpu":"CPU","cpu_temp":"CPU temp","gamer_mode":"Gamer mode","gamer_mode_off":"Off","gamer_mode_on":{"one":"On, 1 suspended","other":"On, {count} suspended"},"gpu":"GPU","gpu_temp":"GPU temp","load":"Load","net_rx":"Down","net_tx":"Up","ram":"RAM","swap":"Swap","tooltip_loading":"Gamer Mode: loading metrics...","vram":"VRAM"}},"git_companion":{"panel":{"bin_missing":"{bin} is not installed. Install it to use this plugin.","fetch_failed":"{bin} could not fetch your items:","gitea_ctx_failed":"Could not prepare tea's working directory. Is git installed?","gitea_login_missing":"No matching tea login. Run `tea login add` to sign in to your Gitea instance.","gitlab_scope_missing":"Set a Repository or Group in settings to view your items.","last_update":"Last update","last_update_placeholder":"...","merge_requests":"Merge Requests","no_items":"No items","no_tabs":"Every tab is hidden. Enable one in the plugin settings.","pull_requests":"Pull Requests","tab_issues":"Issues ({count})","tab_prs":"{label} ({count})","tab_reviews":"Code Review ({count})","title":"Git Companion","untitled":"Untitled"},"service":{"bin_missing":"{bin} is not installed.","gitea_ctx_failed":"Could not prepare tea's working directory.","gitea_login_missing":"No matching tea login. Run `tea login add`.","gitlab_scope_missing":"GitLab requires a repo or group scope in settings.","merge_status":{"ci_must_pass":"Pipeline failed on {ref}","conflict":"{ref} has merge conflicts","mergeable":"{ref} is ready to merge","need_rebase":"{ref} needs a rebase","requested_changes":"Changes requested on {ref}"},"mr_status_many":"{count} merge requests changed status","title":"Git Companion"},"settings":{"bar_display_mode":{"description":"Choose what text to show next to the icon in the bar.","label":"Bar Display Mode","options":{"both":"Both","issues":"Issues only","none":"Nothing","prs":"PRs/MRs only"}},"branch_badge":{"description":"Choose which target branch to display in a colored badge. (Github not supported)"},"branch_badge_alert":{"label":"Badge — alert"},"branch_badge_primary":{"label":"Badge — primary"},"branch_badge_secondary":{"label":"Badge — secondary"},"branch_badge_tertiary":{"label":"Badge — tertiary"},"count_reviews_with_prs":{"description":"Add reviews to the PR/MR count in the bar. The tooltip always lists both.","label":"Count Code Reviews with PRs/MRs"},"gitea_login":{"description":"Name of the tea login to use, as shown by `tea login list`. Leave empty for tea's default login.","label":"Gitea Login"},"group":{"description":"Filter by group (GitLab) or owner (GitHub). Leave empty to use repo.","label":"Group / Owner"},"notify_mr_changes_requested":{"description":"Notify when a reviewer requests changes on one of your merge requests.","label":"Notify: Changes Requested"},"notify_mr_conflict":{"description":"Notify when one of your merge requests has conflicts or needs a rebase.","label":"Notify: Conflict or Rebase Needed"},"notify_mr_mergeable":{"description":"Notify when one of your merge requests can be merged.","label":"Notify: MR Ready to Merge"},"notify_mr_pipeline_failed":{"description":"Notify when the pipeline of one of your merge requests fails.","label":"Notify: Pipeline Failed"},"platform":{"description":"Choose between GitHub or GitLab.","label":"Platform","options":{"gitea":"Gitea","github":"GitHub","gitlab":"GitLab"}},"refresh_interval":{"description":"How often to fetch updates from the API.","label":"Refresh Interval (seconds)"},"repo":{"description":"e.g. owner/repo (GitHub) or project path (GitLab). Leave empty to use group/owner.","label":"Repository"},"show_issues":{"description":"Show the tab listing the issues assigned to you.","label":"Show Issues tab"},"show_prs":{"description":"Show the tab listing the pull/merge requests you authored.","label":"Show PRs/MRs tab"},"show_reviews":{"description":"Show the tab listing open pull/merge requests awaiting your review. Not available on Gitea.","label":"Show Code Review tab"}},"widget":{"mrs":"MRs","prs":"PRs","tooltip":"{issues} Issues, {prs} {label}"}},"github-activity":{"action":{"open_profile":"Open profile","refresh":"Refresh","try_again":"Try again"},"metric":{"best_streak":"Best streak","current_streak":"Current streak","today":"Today"},"panel":{"day_total":"{date} · {count} contributions","preparing":"Preparing interactive calendar…","title":"GitHub Activity","year_total":"{login} · {count} contributions in the last year"},"plugin":{"description":"A native GitHub contribution calendar for your Noctalia bar.","name":"GitHub Activity"},"settings":{"panel_content":{"show_best_streak":{"description":"Show the longest contribution streak below the calendar.","label":"Show best streak"},"show_current_streak":{"description":"Show the current contribution streak below the calendar.","label":"Show current streak"},"show_profile_button":{"description":"Show the button for opening the GitHub profile.","label":"Show profile button"},"show_today":{"description":"Show the contribution count for today below the calendar.","label":"Show today's contributions"},"show_year_total":{"description":"Show the annual contribution total when no calendar day is selected.","label":"Show annual total"}},"refresh_interval":{"description":"How often GitHub contribution data refreshes automatically.","label":"Refresh interval","options":{"fifteen":"Every 15 minutes","sixty":"Every 60 minutes","thirty":"Every 30 minutes"}},"widget_display_metric":{"description":"Choose the contribution metric shown next to the GitHub icon.","label":"Widget metric","options":{"current_streak":"Current streak","today":"Today's contributions","year_total":"Contributions in the last year"}},"widget_display_mode":{"description":"Choose whether this widget shows only the GitHub icon or also a numeric value.","label":"Widget display","options":{"icon_and_value":"Icon and value","icon_only":"Icon only"}}},"status":{"auth_error":"GitHub CLI needs authentication: gh auth login -h github.com","invalid_response":"GitHub returned an unexpected contribution calendar.","loading":"Loading contribution data…","missing_gh":"GitHub CLI (gh) is required to load activity.","missing_xdg_open":"xdg-open is required to open your profile.","no_data":"No contribution data is available yet.","refresh_schedule":"Last updated at {time} · Auto-refresh every {interval} min","refreshing":"Refreshing contribution data…","request_error":"GitHub Activity could not reach GitHub.","stale":"Showing cached contribution data.","unavailable":"GitHub activity is unavailable."},"widget":{"cached":"Cached data","tooltip":"{login}\nToday: {today} contributions\nCurrent streak: {streak} days\nLast year: {total} contributions\n{freshness}\n{refresh}","up_to_date":"Up to date"}},"github-kanban":{"action":{"close":"Close","mark_read":"Mark as read","mark_visible_read":"Mark current list as read","marking_read":"Marking as read…","open":"Open on GitHub","refresh":"Refresh"},"contributions":{"best_streak":"Best streak","current_streak":"Current streak","last_year":{"one":"{count} contribution in the last year","other":"{count} contributions in the last year"},"selected_day":{"one":"{date} · {count} contribution","other":"{date} · {count} contributions"},"this_year":"This year","today":"Today"},"events":{"activity":"Activity","branch_created":"Created branch","branch_deleted":"Deleted branch","collaborators_updated":"Updated collaborators","commit_comment":"Commented on a commit","created":"Created something","deleted":"Deleted something","forked":"Forked repository","issue_comment":"Commented on an issue","issue_updated":"Updated issue","made_public":"Made public","pull_request_reviewed":"Reviewed pull request","pull_request_updated":"Updated pull request","pushed":"Pushed changes","release":"Release","release_published":"Published release","repository_created":"Created repository","review_comment":"Commented on a review","starred":"Starred","summary":{"created_branch":"Created {ref} branch","created_reference":"Created {ref} reference","created_repository":"Created the repository","created_tag":"Created {ref} tag","deleted_branch":"Deleted {ref} branch","deleted_reference":"Deleted {ref} reference","deleted_repository":"Deleted the repository","deleted_tag":"Deleted {ref} tag","pushed_commits":"Pushed new commits","starred_repository":"Starred this repository","updated_branch":"Updated {ref} branch"},"tag_created":"Created tag","tag_deleted":"Deleted tag","wiki_updated":"Updated wiki"},"fallback":{"github":"GitHub","github_activity":"GitHub activity","github_repository":"GitHub repository","github_user":"GitHub user","repository":"Repository","untitled":"Untitled"},"filter":{"all":"All","assigned":"Assigned","assigned_to_me":"Assigned to me","attention":"Attention","closed":"Closed","created_by_me":"Created by me","open":"Open","read":"Read","repositories":"Repositories","review_requested":"Review requested","unread":"Unread","updates":"Updates","users":"People"},"github":{"reason":{"assign":"Assigned","author":"Author","ci_activity":"CI activity","comment":"Comment","invitation":"Invitation","manual":"Manual","mention":"Mention","review_requested":"Review requested","security_alert":"Security alert","state_change":"State change","subscribed":"Subscribed","team_mention":"Team mention"},"status":{"action_required":"Action required","cancelled":"Cancelled","closed":"Closed","completed":"Completed","failure":"Failure","in_progress":"In progress","neutral":"Neutral","open":"Open","pending":"Pending","queued":"Queued","skipped":"Skipped","stale":"Stale","success":"Success","timed_out":"Timed out"}},"heatmap":{"less":"Less","more":"More"},"panel":{"actions":"Actions","activity":"Activity","contributions":"Contributions","feed":"Following","issues":"Issues","notifications":"Notifications","overview":"Overview","profile":"Profile","pull_requests":"Pull requests","repositories":"Repositories","reviews":"Reviews","show_more":{"one":"Show {count} more · {remaining} remaining","other":"Show {count} more · {remaining} remaining"},"title":"GitHub Kanban"},"profile":{"contributions":"Contributions","followers":"Followers","following":"Following","repositories":"Repositories"},"repository":{"forks":"Forks {count}","stars":"★ {count}"},"settings":{"activity":{"history_days":{"description":"Only show pull requests, reviews, issues, and Actions from this many recent days.","label":"Activity · History range (days)"},"issue_default_filter":{"description":"Source filter selected for issues when the Activity dashboard opens.","label":"Activity · Default issue filter"},"pr_default_filter":{"description":"Source filter selected for pull requests when the Activity dashboard opens.","label":"Activity · Default pull request filter"},"show":{"description":"Show the Activity dashboard tab.","label":"Activity · Show dashboard"}},"appearance":{"activity_repository_emphasis":{"description":"Give repository names stronger visual emphasis in Activity items.","label":"Appearance · Activity · Emphasize repository names"},"activity_show_status_badges":{"description":"Show status badges on Activity items.","label":"Appearance · Activity · Status badges"},"activity_show_type_icons":{"description":"Show icons indicating the Activity item type.","label":"Appearance · Activity · Type icons"},"appearance_animations":{"description":"Enable live hover feedback on dashboard cards.","label":"Appearance · Animations"},"appearance_avatar_shape":{"description":"Choose the shape of profile avatars.","label":"Appearance · Avatar shape","options":{"circle":"Circle","rounded":"Rounded"}},"appearance_avatar_size":{"description":"Choose the size of profile avatars.","label":"Appearance · Avatar size","options":{"large":"Large","medium":"Medium","small":"Small"}},"appearance_card_background":{"description":"Choose a transparent, lightly tinted, or denser translucent theme background for cards.","label":"Appearance · Card background","options":{"solid":"Solid","tinted":"Tinted","transparent":"Transparent"}},"appearance_card_border":{"description":"Choose how card borders are displayed.","label":"Appearance · Card border","options":{"accent":"Accent","none":"None","subtle":"Subtle"}},"appearance_card_radius":{"description":"Corner rounding applied to cards.","label":"Appearance · Card corner radius"},"appearance_card_spacing":{"description":"Space between cards.","label":"Appearance · Card spacing"},"appearance_density":{"description":"Choose the overall spacing and information density.","label":"Appearance · Content density","options":{"comfortable":"Comfortable","compact":"Compact","standard":"Standard"}},"appearance_font_scale":{"description":"Scale text throughout the dashboard.","label":"Appearance · Font scale"},"appearance_hover_effect":{"description":"Choose the visual effect shown when hovering over cards.","label":"Appearance · Hover effect","options":{"background":"Background","border":"Border","none":"None"}},"appearance_icon_style":{"description":"Choose the appearance of dashboard icons.","label":"Appearance · Icon style","options":{"color":"Color","muted":"Muted","theme":"Theme"}},"appearance_secondary_text":{"description":"Choose how secondary text is displayed.","label":"Appearance · Secondary text","options":{"full":"Show in full","hidden":"Hide","truncate":"Truncate"}},"appearance_show_empty_illustration":{"description":"Show an illustration when a section has no items.","label":"Appearance · Empty-state illustration"},"appearance_time_format":{"description":"Choose how dates and times are formatted.","label":"Appearance · Time format","options":{"iso":"ISO 8601","local":"Local time","relative":"Relative"}},"following_content_lines":{"description":"Maximum number of content lines shown for Following events.","label":"Appearance · Following · Content lines"},"following_event_spacing":{"description":"Space between events in the Following view.","label":"Appearance · Following · Event spacing"},"heatmap_cell_gap":{"description":"Space between contribution calendar cells.","label":"Appearance · Heatmap · Cell gap"},"heatmap_cell_radius":{"description":"Corner rounding applied to contribution calendar cells.","label":"Appearance · Heatmap · Cell corner radius"},"heatmap_cell_size":{"description":"Size of each contribution calendar cell.","label":"Appearance · Heatmap · Cell size"},"heatmap_color_mode":{"description":"Choose the contribution heatmap color source.","label":"Appearance · Heatmap · Color mode","options":{"custom":"Custom","github":"GitHub","noctalia":"Noctalia theme"}},"heatmap_custom_level_0":{"description":"Hex color in #RRGGBB format. Leave blank to follow the theme.","label":"Appearance · Heatmap · Custom level 0"},"heatmap_custom_level_1":{"description":"Hex color in #RRGGBB format. Leave blank to follow the theme.","label":"Appearance · Heatmap · Custom level 1"},"heatmap_custom_level_2":{"description":"Hex color in #RRGGBB format. Leave blank to follow the theme.","label":"Appearance · Heatmap · Custom level 2"},"heatmap_custom_level_3":{"description":"Hex color in #RRGGBB format. Leave blank to follow the theme.","label":"Appearance · Heatmap · Custom level 3"},"heatmap_custom_level_4":{"description":"Hex color in #RRGGBB format. Leave blank to follow the theme.","label":"Appearance · Heatmap · Custom level 4"},"heatmap_empty_style":{"description":"Use the standard subtle cell border or a stronger outline for days with no contributions.","label":"Appearance · Heatmap · Empty cell style","options":{"background":"Background","outline":"Outline"}},"heatmap_levels":{"description":"Choose the number of contribution intensity levels.","label":"Appearance · Heatmap · Activity levels","options":{"4":"4 levels","5":"5 levels","five":"5 levels","four":"4 levels"}},"heatmap_show_legend":{"description":"Show the contribution intensity legend.","label":"Appearance · Heatmap · Show intensity legend"},"heatmap_show_months":{"description":"Show month labels above the contribution calendar.","label":"Appearance · Heatmap · Show month labels"},"heatmap_show_total":{"description":"Show the annual contribution total.","label":"Appearance · Heatmap · Show contribution total"},"heatmap_show_weekdays":{"description":"Show weekday labels beside the contribution calendar.","label":"Appearance · Heatmap · Show weekday labels"},"notification_read_opacity":{"description":"Opacity used for read notification cards.","label":"Appearance · Notifications · Read card opacity"},"notification_unread_border":{"description":"Highlight unread notification cards with a border.","label":"Appearance · Notifications · Unread card border"},"notification_unread_dot":{"description":"Show a dot on unread notification cards.","label":"Appearance · Notifications · Unread status dot"},"overview_stats_layout":{"description":"Choose how Overview statistics are arranged.","label":"Appearance · Overview · Statistics layout","options":{"columns4":"Four columns","compact":"Compact","grid":"Grid"}},"repositories_layout":{"description":"Choose how repository cards are arranged.","label":"Appearance · Repositories · Repository layout","options":{"grid":"Grid","list":"List"}},"repositories_show_language":{"description":"Show each repository’s primary language.","label":"Appearance · Repositories · Show repository language"},"repositories_show_stats":{"description":"Show repository star and fork counts.","label":"Appearance · Repositories · Show repository statistics"}},"following":{"card_max_height":{"description":"Maximum height of each grouped Following card in pixels.","label":"Following · Card maximum height"},"events_per_user":{"description":"Maximum number of recent public events requested for each person.","label":"Following · Events per person"},"hide_bots":{"description":"Hide events from GitHub bot accounts.","label":"Following · Hide bots"},"history_days":{"description":"Only show Following activity from this many recent days.","label":"Following · History range (days)"},"ignored_repositories":{"description":"Repositories to omit as owner/name, matched without regard to letter case.","label":"Following · Ignored repositories"},"ignored_users":{"description":"GitHub logins to omit from Following, matched without regard to letter case.","label":"Following · Ignored users"},"include_prereleases":{"description":"Include prereleases such as nightly and release candidate builds.","label":"Following · Include prereleases"},"show":{"description":"Show the Following dashboard tab.","label":"Following · Show dashboard"},"starred_repository_limit":{"description":"Maximum number of recently starred repositories checked for releases.","label":"Following · Starred repositories to scan"},"types":{"forks":"Following · Show forks","issues":"Following · Show issues and comments","other":"Following · Show other events","pull_requests":"Following · Show pull requests and reviews","pushes":"Following · Show pushes","releases":"Following · Show releases","stars":"Following · Show stars"},"user_limit":{"description":"Maximum number of followed people whose public events are fetched.","label":"Following · People to fetch"}},"general":{"bar_display_mode":{"description":"Choose whether the bar widget shows the GitHub icon, unread count, or both.","label":"General · Bar display","options":{"both":"Icon and unread count","count":"Unread count","icon":"Icon"}},"default_dashboard":{"description":"Dashboard shown when GitHub Kanban opens.","label":"General · Default dashboard"}},"notifications":{"default_filter":{"description":"Status filter selected when the Notifications dashboard opens.","label":"Notifications · Default status filter"},"history_days":{"description":"Only show notifications updated within this many recent days.","label":"Notifications · History range (days)"},"mark_read_on_open":{"description":"In Synced mode, mark an unread notification read on GitHub after its browser opener starts successfully.","label":"Notifications · Mark read when opening a notification"},"refresh_interval":{"description":"How often Synced mode refreshes notifications independently of the dashboard.","label":"Notifications · Refresh interval","options":{"one_twenty":"Every 120 seconds","sixty":"Every 60 seconds","three_hundred":"Every 300 seconds"}},"refresh_on_open":{"description":"Refresh notifications when the dashboard panel opens in Synced mode.","label":"Notifications · Refresh when panel opens"},"show":{"description":"Show the Notifications dashboard tab.","label":"Notifications · Show dashboard"},"sync_mode":{"description":"Legacy keeps notifications read-only and follows the dashboard refresh interval. Synced refreshes independently and can mark notifications read on GitHub.","label":"Notifications · Sync mode","options":{"legacy":"Legacy (read-only)","synced":"Synced"}}},"overview":{"show":{"description":"Show the Overview dashboard tab.","label":"Overview · Show dashboard"}},"refresh_interval":{"description":"How often GitHub Kanban refreshes its GitHub data.","label":"Refresh interval","options":{"fifteen":"Every 15 minutes","five":"Every 5 minutes","thirty":"Every 30 minutes"}},"repositories":{"show":{"description":"Show the Repositories dashboard tab.","label":"Repositories · Show dashboard"}}},"status":{"auth_error":"GitHub CLI needs authentication: gh auth login -h github.com","cli_start_failed":"Could not start GitHub CLI.","empty":"Nothing to show here.","gh_request_failed":"GitHub CLI request failed.","invalid_json":"GitHub returned invalid JSON.","loading":"Loading GitHub data…","missing_gh":"GitHub CLI (gh) is required.","missing_xdg_open":"xdg-open is required to open GitHub.","notification_changed":"This notification has a newer update. Refresh and read the new content before marking it as read.","notifications_refreshing":"Refreshing notifications…","preparing_contribution_calendar":"Preparing contribution calendar…","request_error":"Some GitHub data could not be refreshed.","stale":"Showing the latest cached data.","unexpected_data":"GitHub returned unexpected data."},"time":{"days_ago":{"one":"{count} day ago","other":"{count} days ago"},"hours_ago":{"one":"{count} hour ago","other":"{count} hours ago"},"just_now":"Just now","minutes_ago":{"one":"{count} minute ago","other":"{count} minutes ago"}},"widget":{"tooltip":{"one":"GitHub Kanban\n{count} unread notification","other":"GitHub Kanban\n{count} unread notifications"}}},"github-notifications":{"action":{"mark_all_filtered":"Clear the filter to mark all as read","mark_all_read":"Mark all as read","mark_done":"Mark as done","mark_read":"Mark as read","refresh":"Refresh","refresh_updated":"Refresh · updated {time}","try_again":"Try again","undo":"Undo"},"empty":{"subtitle":"No unread notifications","title":"You're all caught up"},"filter":{"all":"All","ci":"CI","mentions":"Mentions","reviews":"Reviews"},"panel":{"multiple_unread":"{count} unread","one_unread":"1 unread","title":"GitHub Notifications","updated_at":"Updated {time}"},"settings":{"appearance_density":{"description":"Spacing between and inside notification cards.","label":"Density","options":{"comfortable":"Comfortable","compact":"Compact","standard":"Standard"}},"group_by_repo":{"description":"Group notifications under collapsible repository headers.","label":"Group by repository"},"hide_when_zero":{"description":"Hide the unread count on the bar widget when there are 0 unread notifications.","label":"Hide count when zero"},"mark_read_on_open":{"description":"Mark a notification as read on GitHub when you click it to open it in the browser. Turn off to peek and keep it unread. The check button marks it as done instead.","label":"Mark read on open"},"per_page":{"description":"Maximum number of unread notifications to retrieve from GitHub.","label":"Notification limit","options":{"fifty":"50 notifications","twenty_five":"25 notifications"}},"refresh_interval":{"description":"How often to poll GitHub for new notifications in the background.","label":"Refresh interval","options":{"one_twenty":"Every 2 minutes","six_hundred":"Every 10 minutes","sixty":"Every 1 minute","three_hundred":"Every 5 minutes"}},"widget_display_mode":{"description":"Choose whether the bar widget shows both icon and unread count, or only the icon.","label":"Widget display mode","options":{"icon_and_count":"Icon and count","icon_only":"Icon only"}}},"status":{"auth_error":"GitHub CLI is not authenticated","auth_error_detail":"Run `gh auth login` in your terminal to authenticate your GitHub account.","auth_error_title":"Authentication Required","generic_error":"Failed to Load Notifications","invalid_notification_link":"Invalid or untrusted notification link.","loading":"Loading notifications…","missing_gh":"GitHub CLI is not installed","missing_gh_detail":"Install `gh` on your system PATH to enable GitHub notifications.","missing_gh_title":"GitHub CLI Not Found","missing_xdg_open":"xdg-open is required to open links in your browser.","network_error":"Network request failed. Check your internet connection.","notification_link_missing":"Notification link is missing.","permission_denied":"GitHub notifications permission unavailable. Check `gh auth status`.","rate_limited":"GitHub API rate limit reached","rate_limited_detail":"You have hit the GitHub API rate limit. Please wait a moment before trying again.","rate_limited_title":"Rate Limit Exceeded","request_failed":"GitHub API request failed","unavailable":"GitHub notifications unavailable"},"undo":{"done_many":"{count} marked as done","done_one":"Marked as done","many":"{count} marked as read","one":"Marked as read"},"widget":{"cached":"cached","tooltip_empty":"GitHub Notifications · All caught up","tooltip_unread":"GitHub Notifications · {count} unread"}},"github-prs":{"error":{"gh_missing":"GitHub CLI (gh) not found in PATH. Install it, then run: gh auth login","parse":"Could not parse gh output","timeout":"gh timed out","truncated":"gh output was truncated"},"panel":{"draft":"Draft","empty":"No open pull requests. All clear!","empty_no_rules":"No search rules configured. Add rules in Settings → Plugins → GitHub Pull Requests.","error_title":"Couldn't fetch pull requests","loading":"Loading pull requests…","more_rows":"…and {count} more","partial_warning":"{failed} of {total} rules failed: {message}","retry":"Retry","review":{"approved":"Approved","changes_requested":"Changes requested","review_required":"Review needed"},"truncated_note":"…{count} more matches not shown (per-rule cap is 50)","updated_at":"Updated {time}"},"settings":{"excluded_repositories":{"description":"Repository names to hide after fetching. * is supported; names without an owner match every organization. Examples: legacy-* · acme/private-*","label":"Excluded repositories"},"glyph":{"label":"Bar glyph"},"hide_when_zero":{"description":"Hide the bar widget when there are no open pull requests.","label":"Hide when empty"},"refresh_interval":{"description":"How often pull requests are re-fetched.","label":"Refresh interval (seconds)"},"rules":{"description":"One GitHub search query fragment per entry; results are merged. Each is prefixed with 'is:pr is:open' (and 'archived:false' unless you set archived: yourself). Examples: author:@me · review-requested:@me org:acme · assignee:@me -repo:acme/legacy draft:false","label":"Search rules"}},"title":"GitHub Pull Requests"},"gocryptfs":{"actions":{"add":"Add","cancel":"Cancel","close":"Close","edit":"Edit","forget":"Forget","init":"Init","mount":"Mount","open":"Open","refresh":"Refresh","remember":"Remember","remove":"Remove","save":"Save","unmount":"Unmount"},"colors":{"default":"Default","error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"},"panel":{"add_title":"Add existing volume","automount_hint":"Auto-mount","busy":"Working…","cipher":"Cipher: {path}","edit_title":"Edit volume","empty":"No volumes yet. Initialize a new volume or add an existing one.","field":{"aessiv":"AES-SIV encryption (-aessiv)","allow_other":"Allow other users (-allow_other)","auto_mount":"Auto-mount on login","auto_mount_help":"Requires a remembered keyring password or advanced passfile. Global auto-mount must also be on. Desktop keyring must unlock after login for reboot-safe auto-mount.","cipher":"Cipher directory","cipher_placeholder":"~/Encrypted/docs","duplicate":"A volume with that cipher directory or mount point already exists.","keyring_section":"Password (desktop keyring)","mount":"Mount point","mount_placeholder":"~/Private/docs","name":"Name","name_placeholder":"Documents","passfile":"Passfile path (optional, advanced)","passfile_placeholder":"Leave empty — prefer desktop keyring","password":"Password","password_confirm":"Confirm password","password_confirm_placeholder":"Re-enter password","password_mismatch":"Passwords do not match.","plaintextnames":"Plaintext file names (-plaintextnames)","read_only":"Read-only (-ro)","required":"Name, cipher directory, and mount point are required.","save_passfile":"Remember password in keyring (desktop + this login)"},"init_help":"Runs gocryptfs -init on the cipher directory, then registers it for mounting.","init_title":"Initialize new volume","keyring_help":"Saved in your desktop keyring (survives reboot when unlocked) and cached for this login. No password file under plugin data.","keyring_hint":"Password in keyring","keyring_label":"Volume password (desktop keyring + session cache)","keyring_not_set":"No remembered password for this volume.","keyring_title":"Remember password for {name}","loading":"Checking mounts…","mountpoint":"Mount: {path}","passfile_hint":"Using passfile","password_label":"Password","password_placeholder":"Volume password","password_required":"Password is required.","password_title":"Password for {name}","remember_keyring":"Also remember in keyring (desktop + this login)","select_hint":"Select a volume to manage it.","status":{"mounted":"Mounted","unknown":"Unknown","unmounted":"Unmounted"},"subtitle":"Encrypted volumes","updated":"Updated {time}"},"result":{"already_initialized":"Already a gocryptfs volume: {path}","already_mounted":"{name} is already mounted.","busy":"Another operation is already running.","cipher_missing":"Cipher directory does not exist: {path}","failed":"Failed: {error}","gocryptfs_missing":"gocryptfs is not on PATH. Install gocryptfs and try again.","initialized":"Initialized and saved {name}","keyring_forgotten":"Keyring password cleared for {name}","keyring_saved":"Password for {name} saved in desktop keyring","mount_create_failed":"Could not create mount point: {path}","mounted":"Mounted {name}","not_found":"Volume not found.","not_mounted":"{name} is not mounted.","removed":"Removed {name}","saved":"Saved {name}","success":"Done","unmounted":"Unmounted {name}"},"settings":{"auto_mount":{"description":"When Noctalia starts, mount volumes that have auto-mount enabled and a keyring password or passfile.","label":"Auto-mount on login"},"create_mountpoint":{"description":"Create the mount directory if it does not exist before mounting.","label":"Create mount points"},"glyph_color":{"description":"Color of the lock icon when gocryptfs is available.","label":"Icon color"},"mounted_color":{"description":"Status-dot color when at least one volume is mounted.","label":"Mounted indicator"},"notify_on_action":{"description":"Show a notification when a volume mounts or unmounts.","label":"Notify on mount/unmount"},"refresh_interval":{"description":"How often the service rechecks mount status.","label":"Refresh interval (seconds)"},"show_count":{"description":"Display mounted/total on the bar widget.","label":"Show mounted count"},"unmounted_color":{"description":"Status-dot color when nothing is mounted.","label":"Unmounted indicator"}},"title":"Gocryptfs","widget":{"refresh_requested":"Refreshing volume status…","tooltip":"{mounted} of {total} mounted","tooltip_none":"No volumes configured","unavailable":"gocryptfs is not installed"}},"godot-provider":{"no-projects-found":"No projects found","no-projects-subtitle":"No godot projects.cfg or empty file","settings":{"godot_command":{"description":"The shell command to open godot.","label":"Godot command"},"history":"History","projects_path":{"description":"Path to Godot's projets.cfg file.","label":"Godot projets.cfg path"},"sort_by":{"description":"Sort by last used or most opened projects.","label":"Sort by"},"usage_count":"Usage count"}},"gslapper":{"panel":{"all_outputs":"All outputs","applying":"Applying wallpaper…","checking_dependencies":"Checking video support…","close":"Close","directory_empty":"No supported wallpapers in this directory","directory_unreadable":"Directory unavailable","filter_all":"All","filter_images":"Images","filter_videos":"Videos","folders":"Folders","generating_previews":"Generating previews · {count} / {total}","media_count":"{count} items","mixed_summary":"{outputs} outputs · {videos} video · {images} image","navigation_blocked":"The selected directory is outside its wallpaper root.","no_search_results":"No wallpapers match your search","page":"{page} / {pages}","partial_badge":"{count} / {total}","pause":"Pause","pause_videos":"Pause videos","preparing_library":"Preparing wallpaper library…","restore":"Restore","restore_all":"Restore all","resume":"Resume","resume_videos":"Resume videos","scanning":"Indexing wallpaper library…","search":"Search wallpapers","settings":"Settings","status_error":"Error","status_paused":"Paused","status_playing":"Playing","status_starting":"Starting","status_static":"Static","thumbnail_unavailable":"Video preview unavailable","title":"Wallpaper","up":"Up","video_badge":"VIDEO","video_unavailable":"Video wallpapers are unavailable"},"service":{"self_test_failed":"Self-test failed.","self_test_passed":"Self-test passed."},"settings":{"fade":{"description":"Use a fade when changing media.","label":"Fade between videos"},"fade_duration":{"description":"Fade duration in seconds.","label":"Fade duration"},"fps_cap":{"description":"Maximum video wallpaper frame rate.","label":"FPS cap","options":{"fps_100":"100","fps_30":"30","fps_60":"60"}},"glyph":{"description":"Glyph shown in the bar.","label":"Widget glyph"},"gst_options":{"description":"Extra options passed to gSlapper's GStreamer pipeline.","label":"Additional GStreamer options"},"hidden_behavior":{"description":"Playback control when the wallpaper is hidden.","label":"When hidden","options":{"auto_pause":"Auto Pause","auto_stop":"Auto Stop","none":"None"}},"loop":{"description":"Restart a video when it reaches the end.","label":"Loop videos"},"scale":{"description":"How videos fit the output.","label":"Video scale","options":{"fill":"Fill","original":"Original","panscan":"Panscan","stretch":"Stretch"}},"video_directory":{"description":"Directory containing video wallpapers.","label":"Video directory"}},"widget":{"tooltip":"Choose wallpaper"}},"hassio":{"notifications":{"auth_failed":"Authentication failed. Check your access token.","reconnect_failed":"Unable to reconnect to Home Assistant after {count} attempts."},"panel":{"auth_failed":"Authentication failed. Check your access token.","brightness":"Brightness","browser_truncated":"Showing the first {count} matches. Refine your search to narrow it down.","color_temp":"Color Temperature","connecting":"Connecting…","disconnected_reconnecting":"Disconnected. Reconnecting…","hue":"Hue","load_entities_failed":"Could not load the entity list. Try again.","loading_entities":"Loading entities…","manage_entities_title":"Manage Entities","no_entities_found":"No entities found","no_entities_match":"No entities match your search","no_entities_monitored":"No entities monitored yet. Use the browser to add some.","not_configured":"Not configured. Set your Home Assistant URL and token in settings.","save_failed":"Failed to save monitored entities","save_failed_no_data_dir":"Could not save: plugin data directory unavailable","search_placeholder":"Search entities…","state_on_brightness":"On · {percent}%","status_fallback":"Status: {status}","unreachable":"Cannot reach Home Assistant. Check the URL and that the server is running."},"settings":{"shortcut_entity":{"description":"Home Assistant entity ID to show and toggle on this tile (e.g. light.living_room)."},"shortcut_entity_1":{"label":"Quick Toggle 1 - Entity ID"},"shortcut_entity_2":{"label":"Quick Toggle 2 - Entity ID"},"shortcut_entity_3":{"label":"Quick Toggle 3 - Entity ID"},"shortcut_entity_4":{"label":"Quick Toggle 4 - Entity ID"},"show_entity_count":{"label":"Show entity count in widget"},"token":{"description":"Create a token in Home Assistant under Profile → Security → Long-lived access tokens","label":"Long-Lived Access Token"},"url":{"description":"The URL to your Home Assistant instance (e.g., http://homeassistant.local:8123)","label":"Home Assistant URL"}},"shortcut":{"label_1":"Quick Toggle 1","label_2":"Quick Toggle 2","label_3":"Quick Toggle 3","label_4":"Quick Toggle 4","panel_label":"Entity Manager","title":"Home Assistant"},"widget":{"refreshing_connection":"Refreshing connection…","status_auth_failed":"Auth Failed","status_connected":"Connected","status_connecting":"Connecting","status_disconnected":"Disconnected","status_unconfigured":"Not Configured","status_unreachable":"Unreachable","tooltip":"Home Assistant: {status}","tooltip_entities":"Home Assistant: {status} ({count} entities)"}},"headroom":{"ago":{"d":"{d}d ago","h":"{h}h ago","m":"{m}m ago","now":"just now"},"bar":{"empty":"Headroom: no AI provider sign-in found"},"duration":{"d":"{d}d","dh":"{d}d {h}h","h":"{h}h","hm":"{h}h {m}m","lt_minute":"<1m","m":"{m}m"},"error":{"auth":{"title":"Sign-in rejected"},"expired":{"title":"Session expired"},"network":{"body":"Check your connection. Headroom will try again shortly.","title":"Can't reach the provider"},"no_plan":{"body":"This account's plan has no usage quota for this product. Headroom checks again every hour.","title":"No quota on this plan"},"not_configured":{"title":"Not signed in"},"parse":{"body":"The usage format may have changed. Please report it on GitHub.","title":"Unexpected response"},"rate_limited":{"body":"Too many requests. Headroom will wait, then try again.","title":"Throttled"},"server":{"body":"The provider returned an error. Headroom will try again shortly.","title":"Service error"}},"note":{"credits":"Credits","extra_usage":"Extra usage","of":"{used} of {limit}","on":"On","unlimited":"Unlimited"},"notify":{"body":"{window} is at {percent}%.","body_reset":"{window} is at {percent}%. Resets in {reset}.","reset_body":"Usage is back to {percent}%.","reset_title":"{provider} {window} has reset","title":"{provider} usage is running low"},"pace":{"exhausted":"Limit reached","projected":"≈ {percent}% by reset","projected_left":"≈ {percent}% left at reset","runs_out":"Runs out in {duration}"},"panel":{"elapsed_tooltip":"{percent}% of this window has elapsed","empty_body":"Headroom reads the sign-ins your AI coding tools have already saved. Sign in to one and it appears here.","empty_title":"No signed-in providers","not_connected":"{provider} · not connected","not_refreshed":"Not refreshed yet","open_dashboard":"Open {provider} usage page","refresh_tooltip":"Refresh now (R)","remaining_tooltip":"{percent}% of this window remains","retry":"Retry","settings_tooltip":"Settings","showing_cached":"Showing data from {ago}.","starting":"Starting…","updated":"Updated {ago}"},"percent":{"left":"{percent}% left","used":"{percent}% used"},"providers":{"antigravity":{"hint":"Run `agy` once and sign in with Google."},"claude":{"hint":"Run `claude` once to sign in or renew the session."},"codex":{"hint":"Run `codex login` and sign in with ChatGPT."}},"reset":{"in":"Resets in {until_reset}","now":"Resetting now"},"settings":{"bar_style":{"description":"What each provider shows next to its logo.","label":"Bar · Style","option":{"full":"Ring and percentage","ring":"Ring only","value":"Percentage only"}},"critical_percent":{"description":"Usage at or above this turns the error color and can send a notification.","label":"Display · Critical at (%)"},"display":{"description":"Whether numbers, rings and meters show what you've used or what's left. Colors always follow usage.","label":"Display · Show amounts as","option":{"remaining":"Remaining","used":"Used"}},"max_providers":{"description":"The bar shows at most this many. If more qualify, it keeps the ones closest to their limits.","label":"Bar · Maximum providers"},"notify":{"description":"Notify once when a window crosses the critical threshold, and again when it resets.","label":"Alerts · Notifications"},"provider":{"description":"Where this provider appears. Off: never fetched or shown.","option":{"bar":"Bar and panel","off":"Off","panel":"Panel only"}},"provider_antigravity":{"label":"Providers · Antigravity"},"provider_claude":{"label":"Providers · Claude"},"provider_codex":{"label":"Providers · Codex"},"refresh_minutes":{"description":"Minutes between fetches for each provider. Failed fetches retry sooner.","label":"Data · Refresh interval (min)"},"warn_percent":{"description":"Usage at or above this turns the warning color.","label":"Display · Warning at (%)"},"window":{"description":"Which usage window the bar shows for each provider.","label":"Bar · Window","option":{"session":"Session (5-hour)","tightest":"Closest to limit","weekly":"Weekly"}}},"status":{"cached":"cached","fetching":"Fetching usage…","refreshing":"Refreshing…"},"tooltip":{"forecast":"Forecast","resets":"Resets"},"window":{"code_review":"Code review","other":"Limit","session":"Session","weekly":"Weekly","weekly_model":"Weekly · {model}"}},"headsetcontrol":{"battery":{"level":"{level}%","status":{"available":"On battery","charging":"Charging","unavailable":"Unavailable","unknown":"Unknown"}},"error":{"exit":"exit {code}: {detail}","failed_to_start":"headsetcontrol could not be started","invalid_json":"headsetcontrol returned invalid JSON","timed_out":"headsetcontrol timed out"},"panel":{"battery":"Battery","chatmix":"Chatmix","close":"Close","device_error":"Device error: {error}","features":"Supported features","refresh":"Refresh","updated":"Updated {time}","usb_id":"USB ID {id}"},"settings":{"hide_when_unavailable":{"description":"Hide the widget when no headset is connected or its battery level is unavailable.","label":"Hide when unavailable"},"poll_interval":{"description":"Seconds between headset status checks (1–60).","label":"Poll interval"},"show_percentage":{"description":"Show the battery percentage next to the icon.","label":"Show percentage"}},"state":{"error":{"hint":"The last headsetcontrol call failed. Showing the last known data.","hint_no_data":"The last headsetcontrol calls failed.","title":"Could not read headset status"},"missing_dependency":{"hint":"Install the headsetcontrol package, then refresh.","title":"headsetcontrol is not installed"},"no_devices":{"hint":"Turn the headset on or plug in its USB dongle. If it is connected, make sure headsetcontrol's udev rules are installed.","title":"No headset detected"}},"title":"Headset Control","widget":{"tooltip":{"battery":"Battery","chatmix":"Chatmix","device":"Device","hints":"Click: details · Right-click: refresh","last_refresh_failed":"Last refresh failed","updated":"Updated"}}},"herdr":{"action":{"deleted":"Session deleted","deleting":"Deleting session…","focused":"Focused session","focusing":"Focusing agent…","opened":"Opened session","opening":"Opening session…","stopped":"Session stopped","stopping":"Stopping session…"},"actions":{"cancel":"Cancel","close":"Close","confirm_delete":"Delete","delete":"Delete session","focus_agent":"Focus agent","open":"Open","refresh":"Refresh","start":"Start","stop":"Stop"},"error":{"bad_session_list":"HerdR returned an invalid session list.","bad_snapshot":"HerdR returned an invalid session snapshot.","command_failed":"HerdR command failed.","command_timed_out":"HerdR command timed out.","default_delete":"The default session cannot be deleted.","herdr_missing":"HerdR is not installed or is not available on PATH.","invalid_session":"Invalid HerdR session name.","invalid_target":"Invalid HerdR pane target.","machine_failed":"This machine could not be reached.","machine_list":"HerdR returned an invalid machine list.","no_terminal":"No terminal is available to open HerdR.","session_disappeared":"That HerdR session no longer exists.","session_list_too_large":"The HerdR session list is too large to read safely.","snapshot_too_large":"This HerdR session snapshot is too large to read safely."},"notify":{"action_failed":"HerdR action failed"},"panel":{"empty":"No HerdR sessions were found.","machine":"Remote machine","nothing_saved":"Nothing saved","session_counts":"{agents} agents · {blocked} need you · {done} done · {working} working","stale":"Latest session data could not be refreshed: {error}","summary":"{sessions} running sessions · {agents} agents","title":"HerdR","workspace_agents":{"one":"{count} agent","other":"{count} agents"},"workspace_meta":"{panes} · {agents}","workspace_panes":{"one":"{count} pane","other":"{count} panes"}},"settings":{"color_blocked":{"description":"Color used for agents needing action, in the bar badge and the panel.","label":"Needs action color"},"color_done":{"description":"Color used for agents that completed their tasks, in the bar badge and the panel.","label":"Done color"},"color_working":{"description":"Color used for active running agents, in the bar badge and the panel.","label":"Working color"},"display_mode":{"description":"Choose what to display on the bar widget.","label":"Display mode","options":{"icon":"Icon only","icon_and_count":"Icon and count"}},"hide_agentless_panes":{"description":"Hide panes that are running no agent, so the panel lists agents only.","label":"Hide panes without an agent"},"hide_count_when_zero":{"description":"Hide the badge count when no agents need action or are done, showing only the icon.","label":"Hide count when zero"},"show_other_machines":{"description":"Also list sessions from the other machines saved in HerdR while the panel is open.","label":"Show other machines"}},"status":{"blocked":"Needs you","done":"Done","idle":"Ready","no_agent":"No agent","running":"Running","stopped":"Stopped","unknown":"Unknown","working":"Working"},"tooltip":{"agents":"Agents","sessions":"Running sessions"}},"hotspot":{"error":{"command_failed":"The NetworkManager command failed.","command_start":"Noctalia could not start the hotspot command.","missing_dependencies":"nmcli is required to manage the hotspot.","missing_ssid":"Set a hotspot name in the plugin settings.","no_wifi_device":"No Wi-Fi adapter was found.","password_too_short":"The hotspot password must be at least 8 characters.","state_mismatch":"The requested hotspot state could not be confirmed.","status_failed":"NetworkManager status could not be read."},"notification":{"disabled":{"body":"The Wi-Fi hotspot has been turned off.","title":"Hotspot disabled"},"enabled":{"body":"Clients can connect to {ssid}.","title":"Hotspot enabled"}},"panel":{"action":{"start":"Start hotspot","starting":"Starting…","stop":"Stop hotspot","stopping":"Stopping…"},"clients_inactive":"Start the hotspot to see connected devices here.","clients_title":"Connected devices","close":"Close","gateway":"Gateway: {address}","no_clients":"No device is connected right now.","refresh":"Refresh","status":{"active_message":"{ssid} is broadcasting on {interface}.","active_title":"Hotspot active","error_title":"Unavailable","inactive_message":"Configure the name and password in settings, then start the hotspot.","inactive_title":"Hotspot off","starting_message":"NetworkManager is creating the access point…","starting_title":"Starting","stopping_message":"NetworkManager is shutting down the access point…","stopping_title":"Stopping"}},"settings":{"glyph":{"label":"Bar glyph"},"interface":{"description":"Optional Wi-Fi interface name. Leave empty to use the first adapter NetworkManager reports.","label":"Wi-Fi interface"},"password":{"description":"WPA password shared with connecting devices. Must be at least 8 characters.","label":"Password"},"refresh_interval":{"description":"How often the service refreshes hotspot status and the connected device list, in seconds.","label":"Refresh interval"},"ssid":{"description":"Network name broadcast by the hotspot.","label":"Hotspot name"}},"shortcut":{"active":"Hotspot on","inactive":"Hotspot off"},"title":"Wi-Fi Hotspot","tooltip":{"active":"{ssid} is active · {count} device(s) connected · click for panel · right-click to stop","changing":"Changing hotspot state…","inactive":"Hotspot is off · click for panel · right-click to start","unavailable":"NetworkManager is not available"}},"hover-widgets":{"active_window_hover":{"settings":{"compact_width":{"description":"Text width when not hovering. The title only actually shrinks to this if it's longer -- a short title just stays put.","label":"Compact width (characters)"},"expand_width":{"description":"Text width while hovering. If the title is still longer than this, it scrolls as a marquee instead of growing further.","label":"Expanded width (characters)"},"icon_size":{"description":"Per-app icon size when compact (not hovering). Only affects the real app icon -- the generic fallback glyph (shown when no icon can be resolved) is a fixed size, since the plugin API doesn't expose glyph sizing.","label":"Icon size (px)"},"icon_size_hover":{"description":"Per-app icon size while hovering; animates between this and the compact size along with the text width.","label":"Icon size on hover (px)"}}},"media_mini":{"settings":{"audio_spectrum":{"description":"Show live audio bars behind background progress, or beside the controls for inline progress. Uses the shell’s shared audio spectrum; rests when paused or silent.","label":"Audio visualiser"},"audio_spectrum_bands":{"description":"Number of live frequency bands, from 8 to 128. Bars and gaps adapt to fit the widget.","label":"Visualiser bands"},"background_darkening":{"description":"Darken the unplayed background around the progress. Zero matches the widget background; the progress colour stays at full strength.","label":"Background darkening (%)"},"background_expand_width":{"description":"Maximum hovered background width. Expansion stops earlier when the whole title fits; longer titles cycle within this limit.","label":"Expanded background width"},"background_height":{"description":"Thickness of the background progress pill, in pixels.","label":"Background thickness"},"background_progress_color":{"description":"Pick a theme colour or a custom colour for the background progress fill.","label":"Progress colour","options":{"error":"Error","on_surface":"Text colour","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"}},"background_seek_strip":{"description":"Right-click a playback button to seek at its position on the background progress. Left-click operates the button; right-click elsewhere opens Media controls.","label":"Right-click controls to seek"},"background_width":{"description":"Compact background pill width, in pixels; it grows to Expanded background width on hover.","label":"Background width"},"bar_color":{"description":"Pick a theme colour or a custom colour for classic progress.","label":"Progress colour","options":{"error":"Error","on_surface":"Text colour","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"}},"compact_width":{"description":"Text width when not hovering. The text only actually shrinks to this if it's longer -- a short title just stays put.","label":"Compact width (characters)"},"controls_on_hover":{"description":"When Playback controls is enabled, animate those buttons in and out on hover.","label":"Controls only on hover"},"corner_rounding":{"description":"0 = square corners, 100 = fully circular.","label":"Cover art rounding (%)"},"cover_size":{"description":"Size of the cover art icon in place of the play/pause glyph.","label":"Cover art size (px)"},"expand_width":{"description":"Maximum title characters on hover. Shorter titles use only the space they need; longer titles cycle within the limit.","label":"Expanded width (characters)"},"point_style":{"description":"Rounded or flat moving progress edge. Applies to classic and background progress; the native slider keeps its own style.","label":"Point style","options":{"flat":"Flat","rounded":"Rounded"}},"progress_darkening":{"description":"Darken the played progress fill itself, from 0% (original colour) to 80%. Applies to background and classic progress.","label":"Progress darkening (%)"},"progress_expand_width":{"description":"Width of the seek slider in this state. Expanded width is at least the compact width. Set both equal for a fixed length.","label":"Expanded progress width (px)"},"progress_layout":{"description":"Inline seekable bar or progress behind the media content. Click the background title/progress area to seek; artwork and buttons retain playback actions.","label":"Progress placement","options":{"background":"Background","inline":"Inline"}},"progress_style":{"description":"Classic supports clicks. Classic with dragging keeps the same pill, uses expanded width, previews while dragging and seeks on release. Interactive uses the native slider appearance.","label":"Progress style","options":{"classic":"Classic (original look)","classic_drag":"Classic with dragging","interactive":"Interactive seek slider"}},"progress_thickness":{"description":"Progress bar thickness, independent of cover size and width. Rounded ends stay circular.","label":"Progress thickness (px)"},"progress_width":{"description":"Width of the seek slider in this state. Expanded width is at least the compact width. Set both equal for a fixed length.","label":"Compact progress width (px)"},"scroll_action":{"description":"Skip tracks or seek through the current song with the mouse wheel.","label":"Scroll action","options":{"seek":"Seek playback","tracks":"Previous / next track"}},"scroll_seek_step":{"description":"Seconds per wheel step. Scroll up goes forward; down goes back.","label":"Scroll seek seconds"},"show_controls":{"description":"Show previous, play/pause and next buttons.","label":"Playback controls"},"show_cover_art":{"description":"Replace the play/pause icon with the track's (rounded) cover art when available.","label":"Show cover art"},"show_progress_bar":{"description":"Show a playback-position bar next to the icon. It's a rendered image (not text), so it never affects the widget's Font setting -- when cover art is on, the bar sits beside the art; when off, it replaces the play/pause glyph.","label":"Show progress bar"},"visualiser_color":{"description":"Theme/custom audio-bar colour. In inverted mode this is the lighter background colour; progress mode uses Progress colour.","label":"Visualiser colour"},"visualiser_height":{"description":"Maximum height of the centred audio bars.","label":"Visualiser height (px)"},"visualiser_mode":{"description":"Background layout: overlay, show only on played progress, dark on progress/light on background, or use the audio bars as the progress fill. Inline visualisers keep the overlay style.","label":"Visualiser masking","options":{"inverted":"Dark on progress / light on background","overlay":"Overlay everywhere","played_only":"Only on played progress","progress":"Visualiser is progress"}},"visualiser_opacity":{"description":"Opacity of the audio visualiser, independent of progress colour and darkening.","label":"Visualiser opacity (%)"},"visualiser_width":{"description":"Width when progress is inline; background mode uses the media widget’s full width.","label":"Inline visualiser width (px)"}}},"sysmon_cpu":{"settings":{"gauge":{"description":"Compact display: gauge bar (on) or plain percentage (off)","label":"Show gauge bar"},"show_gpu":{"description":"Show GPU utilisation beside CPU usage using Noctalia system monitoring. A dash means the sensor is unavailable or still loading.","label":"Show GPU usage"}}},"sysmon_net_down":{"settings":{"compact_units":{"description":"34K/1.2M instead of 34KB/s/1.2MB/s while not hovering","label":"Compact units when not hovering"},"hide_completely":{"description":"On: vanishes below the idle threshold. Off: icon stays, only the number hides","label":"Hide widget entirely when idle"},"threshold_kbps":{"description":"Hide entirely below this; hovering always shows it. 1024 = 1 MB/s","label":"Idle threshold (KB/s)"}}},"sysmon_net_up":{"settings":{"compact_units":{"description":"34K/1.2M instead of 34KB/s/1.2MB/s while not hovering","label":"Compact units when not hovering"},"hide_completely":{"description":"On: vanishes below the idle threshold. Off: icon stays, only the number hides","label":"Hide widget entirely when idle"},"threshold_kbps":{"description":"Hide entirely below this; hovering always shows it. 1024 = 1 MB/s","label":"Idle threshold (KB/s)"}}},"sysmon_ram":{"settings":{"amount_first":{"description":"On: shows used GB by default, revealing the percentage and total on hover. Off: shows the percentage by default, revealing used/total GB on hover.","label":"Show used amount by default"},"gauge":{"description":"Compact display: gauge bar (on) or plain percentage (off)","label":"Show gauge bar"}}},"sysmon_temp":{"settings":{"show_gpu":{"label":"Show GPU temp on hover"},"show_hottest_core":{"label":"Show hottest CPU core on hover"},"show_nvme":{"label":"Show hottest NVMe temp on hover"},"show_ram":{"label":"Show RAM (DIMM) temp on hover"}}},"volume_hover":{"settings":{"bar_color":{"description":"Theme colour role used for the classic filled track and circular knob.","label":"Bar colour","options":{"error":"Error","hover":"Hover","onsurface":"On-surface (text)","primary":"Primary (accent)","secondary":"Secondary","tertiary":"Tertiary"}},"drag_enabled":{"description":"Drag the classic volume track. It folds when idle and stays open during an active drag.","label":"Enable dragging"},"icon_click":{"description":"Click the speaker to toggle mute, or open Audio. Click the expanded track to set volume. Percentage/padding and right-click open Audio.","label":"Speaker click","options":{"mute":"Toggle mute","panel":"Open Audio panel"}},"invert_scroll":{"description":"By default scroll up raises the volume. Turn this on if it feels backwards.","label":"Invert scroll direction"},"knob_color":{"description":"Independent knob colour. On-primary matches the knob used by native Settings sliders.","label":"Handle colour","options":{"error":"Error","on_primary":"On-primary (native slider)","on_surface":"On-surface","primary":"Primary (same as bar)","secondary":"Secondary","tertiary":"Tertiary"}},"point_style":{"description":"Rounded or flat moving progress edge. Flat also uses a slim rectangular volume handle.","label":"Point style","options":{"flat":"Flat","rounded":"Rounded"}},"scroll_step":{"description":"How much one scroll notch changes the volume.","label":"Scroll step (%)"},"show_knob":{"description":"Show the circle or flat handle at the current volume. Turn off for a plain bar.","label":"Show handle"},"show_percent":{"description":"Show volume percentage or muted. Click this label to open Audio.","label":"Show percentage"},"slider_thickness":{"description":"Track thickness, independent of its width. The circular knob is 1.5 times this size.","label":"Slider thickness (px)"},"slider_width":{"description":"Expanded track width in pixels, independent of thickness and speaker size.","label":"Slider width (px)"}}}},"hypr-screen-mirror":{"notification":{"hyprland_socket_not_found":"Hyprland socket not found","invalid_monitor_selection":"Invalid monitor selection","monitor_list_failed":"Failed to list monitors","monitor_watch_failed":"Failed to watch monitors","no_monitors_found":"No monitors found","start_mirroring_failed":"Failed to start mirroring","stop_mirroring_failed":"Failed to stop mirroring","timed_out":"Command timed out"},"panel":{"focused_monitor":"Current Monitor","refresh":"Refresh","source_monitor":"Source Monitor","start_mirroring":"Mirror","stop_mirroring":"Stop","target_monitor":"Target Monitor","title":"Hypr Screen Mirror"},"widget":{"glyph":{"description":"Glyph shown in the bar","label":"Glyph"}}},"hypr-submap":{"settings":{"glyph":{"description":"Specifies the glyph displayed on the widget.","label":"Icon to show on bar"},"hide_when_default":{"description":"Hides the bar widget when the current submap is default.","label":"Hide when default submap"},"prefix":{"description":"Add the prefix text to the submap name displayed on the widget.","label":"Add a prefix to the submap name"}}},"hyprland-settings":{"anim":{"credit":"Presets from Hyprland Visual Editor (MIT) by XimoCP, Hermy and linux-fertxo.","futurista":"Futurista","none":"Not set by this plugin","preset":"Preset","preset_desc":"Curves and timings for windows, fades and workspaces.","section":"Style"},"banner":{"adopt":"Take over the file (original is kept)","applying":"Saving and waiting for Hyprland to reload…","confirmed":"Saved.","conflict":"The file was changed elsewhere and left alone: {reason}","dismiss":"Dismiss","failed":"Not saved: {reason}","keep":"Keep","keeping":"Keeping…","not_effective":"Not in effect, probably overridden by a later file: {list}","not_ours":"The file was written by hand or edited since the last save.","pending":"Keep these changes? Reverting in {s} s.","revert":"Revert","revert_failed":"Could not revert, retrying: {reason}","reverted":"Reverted: {reason}","reverting":"Reverting…","verifying":"Waiting for Hyprland to load the file…"},"choice":{"general":{"layout":{"dwindle":"Dwindle","master":"Master","monocle":"Monocle","scrolling":"Scrolling"}},"input":{"accel_profile":{"adaptive":"Adaptive","default":"Device default","flat":"Flat"}}},"desc":{"animations":{"enabled":"Turn all animations on or off."},"binds":{"workspace_back_and_forth":"Switching to the current workspace goes back to the previous one."},"cursor":{"hide_on_key_press":"Hide the cursor on any key press.","inactive_timeout":"Seconds without movement before the cursor hides. 0 is never."},"decoration":{"active_opacity":"Opacity of the focused window.","blur":{"enabled":"Blur what is behind translucent windows.","passes":"More passes, smoother blur, more GPU time.","size":"Blur radius per pass. Costs GPU time.","vibrancy":"Saturation of blurred colors."},"dim_inactive":"Darken windows without focus.","dim_strength":"How much inactive windows are darkened.","inactive_opacity":"Opacity of all other windows.","rounding":"Rounded window corners, in layout px.","rounding_power":"2 is a circle, higher values give squircle corners.","shadow":{"enabled":"Drop shadows under windows.","range":"Shadow range in layout px.","render_power":"Higher values make the shadow fade faster."}},"general":{"border_size":"Window border thickness. Colors come from your theme.","gaps_in":"Space between windows, in layout px.","gaps_out":"Space between windows and the screen edges.","layout":"How new windows are arranged.","resize_on_border":"Drag window borders and gaps to resize."},"input":{"accel_profile":"How pointer speed grows with movement.","follow_mouse":"How moving the pointer changes focus.","kb_layout":"XKB layout, several separated by commas (e.g. de,us).","kb_options":"XKB options, e.g. caps:escape.","kb_variant":"XKB variant, e.g. nodeadkeys. Empty for the default.","natural_scroll":"Scroll the content, not the view.","numlock_by_default":"Turn Num Lock on at login.","repeat_delay":"Milliseconds before a held key repeats.","repeat_rate":"Repeats per second while a key is held.","sensitivity":"From -1 (slow) to 1 (fast).","touchpad":{"clickfinger_behavior":"1, 2 or 3 fingers press left, right or middle button.","disable_while_typing":"Ignore the touchpad while you type.","natural_scroll":"Scroll the content with two fingers, like on a phone.","scroll_factor":"Multiplier for touchpad scrolling.","tap_to_click":"A light tap counts as a click."}},"misc":{"disable_hyprland_logo":"Hide the background logo.","disable_splash_rendering":"Hide the splash text under the logo.","focus_on_activate":"Focus apps that ask for attention.","key_press_enables_dpms":"A key press turns screens back on.","mouse_move_enables_dpms":"Moving the mouse turns screens back on.","vrr":"Adaptive sync (FreeSync / G-Sync)."},"xwayland":{"enabled":"Run X11 apps. Off saves memory if every app is native Wayland.","force_zero_scaling":"X11 apps render at full resolution instead of being upscaled."}},"disp":{"enabled":"On","last":"At least one screen must stay on.","left":"Move left","live":"Hyprland default, no rule yet","mode":"Resolution and refresh rate","not_row":"Your screens are not in one row. The first change here lines them up left to right.","offline":"Saved, not connected","position":"Position {pos}","preferred":"Preferred","remove":"Remove rule","right":"Move right","rotation":"Rotation","row_hint":"Screens are placed left to right in this order, tops aligned.","saved":"Saved rule","scale":"Scale","t0":"Normal","t1":"90°","t2":"180°","t3":"270°","t4":"Flipped","t5":"Flipped 90°","t6":"Flipped 180°","t7":"Flipped 270°","why":"Why this setup?"},"enum":{"input":{"follow_mouse":{"0":"Off","1":"Always","2":"Detached","3":"Separate"}},"misc":{"vrr":{"0":"Off","1":"On","2":"Fullscreen only","3":"Fullscreen games"}}},"group":{"animations":"Animations","blur":"Blur","corners":"Corners","cursor":"Cursor and screen wake","focus":"Focus","gaps":"Gaps and borders","keyboard":"Keyboard","layout":"Layout","mouse":"Mouse","opacity":"Opacity","shadow":"Shadow","startup":"Background","sync":"Display sync","touchpad":"Touchpad","xwayland":"X11 apps"},"launcher":{"subtitle":"Displays, input, appearance, animations","title":"Hyprland Settings"},"opt":{"animations":{"enabled":"Animations"},"binds":{"workspace_back_and_forth":"Workspace back and forth"},"cursor":{"hide_on_key_press":"Hide cursor while typing","inactive_timeout":"Hide idle cursor"},"decoration":{"active_opacity":"Active opacity","blur":{"enabled":"Blur","passes":"Blur passes","size":"Blur size","vibrancy":"Blur vibrancy"},"dim_inactive":"Dim inactive windows","dim_strength":"Dim strength","inactive_opacity":"Inactive opacity","rounding":"Corner radius","rounding_power":"Corner shape","shadow":{"enabled":"Shadows","range":"Shadow size","render_power":"Shadow falloff"}},"general":{"border_size":"Border width","gaps_in":"Inner gaps","gaps_out":"Outer gaps","layout":"Tiling layout","resize_on_border":"Resize on border"},"input":{"accel_profile":"Acceleration","follow_mouse":"Focus follows mouse","kb_layout":"Keyboard layout","kb_options":"Keyboard options","kb_variant":"Layout variant","natural_scroll":"Natural scrolling (mouse)","numlock_by_default":"Num Lock on start","repeat_delay":"Repeat delay","repeat_rate":"Repeat rate","sensitivity":"Mouse sensitivity","touchpad":{"clickfinger_behavior":"Click with fingers","disable_while_typing":"Off while typing","natural_scroll":"Natural scrolling","scroll_factor":"Scroll speed","tap_to_click":"Tap to click"}},"misc":{"disable_hyprland_logo":"No Hyprland logo","disable_splash_rendering":"No splash text","focus_on_activate":"Focus on activate","key_press_enables_dpms":"Wake screen on key","mouse_move_enables_dpms":"Wake screen on mouse","vrr":"Variable refresh rate"},"xwayland":{"enabled":"XWayland","force_zero_scaling":"Sharp X11 apps"}},"panel":{"title":"Hyprland Settings"},"reason":{"config_error":"Hyprland reported: {error}","not_loaded":"Hyprland did not load the file. Is it required in hyprland.lua?","outside":"the file was changed elsewhere","restarted":"the plugin restarted during the countdown","timeout":"the 15 seconds ran out","too_late":"too late to keep","user":"by you"},"settings":{"config_path":{"description":"The Lua file this plugin writes. Load it from hyprland.lua with require(\"hyprland-settings\"). A symlink is followed; the file it points to is replaced.","label":"Config file"}},"setup":{"ask":"Hyprland does not load the settings file yet. Add this line to the end of {conf}? A backup is kept, and the file is created if it is missing.","auto":"Set up automatically","check":"Check again","custom_path":"The settings file {file} is outside ~/.config/hypr, so it cannot be loaded by name. Move it there in the plugin settings, or load it yourself.","failed":"Setup failed: {reason}","manual":"Until Hyprland loads the file, Apply stays off. To connect it yourself:","no":"No, I'll do it myself","no_lua":"This system uses hyprland.conf. The plugin needs Hyprland 0.56 or newer with a Lua config.","not_loaded":"The line is in place, but Hyprland has not loaded the file. Check hyprctl configerrors.","step1":"1. Create the empty settings file:","step2":"2. Add this line to {conf}, after your own settings and before anything that must win over the panel:","step3":"3. Save. Hyprland reloads by itself, then press Check again.","title":"Connect Hyprland Settings to Hyprland","working":"Setting up and waiting for Hyprland to reload…","yes":"Set up"},"tab":{"animations":"Animations","appearance":"Appearance","displays":"Displays","input":"Input","system":"System"},"ui":{"apply":"Apply","discard":"Discard","gaps_sides":"Sides differ: {sides}. The slider sets all four.","legend":"Highlighted names are written to your settings file. A dot marks an unsaved change; ↶ undoes it, the eraser takes a value out of the file.","managed":"Written to the file","no_changes":"No unsaved changes","not_effective":"Saved {saved}, but Hyprland uses {live}. A later config file probably overrides it.","read_error":"Cannot read Hyprland: {error}","unavailable":"Not known to this Hyprland version","undo":"Undo this change","unmanage":"Remove from the file: Hyprland uses its default or your other config again","unsaved":"{n} unsaved changes","why":"Add a reason (written above the value)","why_placeholder":"Why this value?"},"widget":{"tooltip":"Hyprland Settings"}},"hyprland-visual-editor":{"panel":{"animations":"Animations","apply":"Apply","apply_hint":"Pick a preset and press Apply to apply it instantly","borders":"Borders","count_animations":"animations","count_borders":"borders","count_shaders":"shaders","credits":"Based on the original widget by XimoCP · ported to Luau by Hermy and Linux Fertxo","current_preset":"Current preset applied","disabled":"HVE disabled","effects":"Effects","enable_warning":"Enable the toggle to apply changes","enabled":"HVE enabled","home":"Home","no_presets":"No presets found — run scan.sh","none":"None","presets_available":"presets available"},"settings":{"active_anim_file":{"label":"Active animation"},"active_border_file":{"label":"Active border"},"active_shader_file":{"label":"Active shader"},"is_system_active":{"description":"Master switch that enables Hyprland Visual Editor effects.","label":"System active"}},"widget":{"tooltip":"Hyprland Visual Editor — open the panel"}},"ideapad-conservation-mode":{"error":{"device_not_found":"Could not find the ideapad_acpi conservation_mode sysfs file on this machine.","read_failed":"Could not read the current conservation_mode state.","write_failed":"Failed to write conservation_mode ({error}) and could not locate the plugin directory to run setup.","write_failed_manual":"Failed to write conservation_mode ({error}). Run scripts/setup-permissions.sh with sudo manually, then log out and back in."},"notify":{"disabled":"Disabled – charging to 100%","enabled":"Enabled – charging capped for battery health","setup_needed":"One-time setup is needed. Check the terminal window that just opened."},"shortcut":{"label":"Conservation","na":"Conservation N/A"},"title":"Conservation mode"},"iio_lock":{"panel":{"lock":"Toggle Lock","title":"iio-lock"},"settings":{"glyph":{"locked":{"description":"Icon displayed when the device is locked.","label":"Locked Glyph"},"unlocked":{"description":"Icon displayed when the device is unlocked.","label":"Unlocked Glyph"}},"iio":{"description":"Executable used to control orientation","label":"IIO Tool","options":{"hyprland":"iio-hyprland","sway":"iio-sway"}},"transform":{"description":"Rotation values for Up, Left, Down, Right.","label":"Transform Order"},"wm":{"description":"Choose the window manager backend.","label":"Window Manager","options":{"hyprland":"Hyprland","sway":"Sway"}}},"toggle":{"description":"Toggle orientation lock"},"widget":{"locked":"Locked","unlocked":"Unlocked"}},"imagemagick-clock":{"settings":{"cmdline":{"description":"The command should generate an image file to be displayed as the clock. `%output_file` will be replaced with the path to the output file. Then `%H`, `%M`, etc. will be replaced with the current time values. See `man strftime` for more formatting options.","label":"Command line"},"image_height":{"description":"The display height of the clock image in logical pixels. (Not the height of the generated image file.)","label":"Image height"},"image_width":{"description":"The display width of the clock image in logical pixels. (Not the width of the generated image file.)","label":"Image width"}}},"input-echo-bar":{"settings":{"show_mouse_events":{"description":"Show mouse buttons and vertical or horizontal wheel movement.","label":"Show mouse events"},"timeout_ms":{"description":"Milliseconds to keep the latest input combination visible in the bar.","label":"Display timeout"}}},"inventory-manager":{"panel":{"add_first":"Add your first product","add_product":"Add product","added":"Added","all":"All","bucket":{"available":"Available","defective":"Damage","in_use":"In use","total":"Total"},"close":"Close","confirm":"Confirm","confirm_delete":"Do you really want to delete this?","delete":"Delete product","edit_product":"Edit product","error_negative":"Cannot reduce below zero","export":"Export","export_error":"Error exporting stock","export_success":"Stock exported successfully!","form":{"add_title":"Add Product","cancel":"Cancel","category":"Category","category_mode_existing":"Existing category","category_mode_new":"New Category","category_placeholder":"Type a new category name","category_tooltip_existing":"Pick from category list","category_tooltip_new":"Type a new category","edit_title":"Edit Product","name":"Name","name_placeholder":"Product name","name_required":"Product name is required","quantity":"Quantity","save":"Save","update":"Update"},"import":"Import","import_confirm_message":"This will replace all current products with the contents of the imported file. Continue?","import_error":"Error importing stock","import_no_files":"No export files found.","import_success":"Stock imported successfully!","low_stock_notification":"%s is low on stock: %d available (threshold: %d)","no_category":"No products in this category","no_products":"No products registered","refresh":"Refresh","settings":"Plugin settings","stock_plural":"Stock (%d products)","stock_singular":"Stock (%d product)","title":"Inventory Manager","tooltip_drag":"Drag to reorder","updated":"Updated","zerado":"Zeroed"},"settings":{"enable_low_stock_alerts":{"description":"Show notifications when products are low in stock","label":"Low stock alerts"},"export_folder":{"description":"Folder where exported stock files are saved. Accepts ~.","label":"Export folder"},"glyph":{"description":"Icon for the bar widget","label":"Icon"},"low_stock_threshold":{"description":"Minimum quantity to consider low stock","label":"Low stock threshold"},"manual_sorting":{"description":"Enable drag-and-drop to reorder lists","label":"Manual Sorting"},"show_low_stock_badge":{"description":"Show red badge with count of low stock products","label":"Show low stock badge"},"show_total_quantity":{"description":"Show the Total capsule (sum of all buckets) on each product card","label":"Show total quantity"},"store_cnpj":{"description":"Store CNPJ","label":"CNPJ"},"store_name":{"description":"Store name to display in the panel","label":"Store Name"},"store_number":{"description":"Store/branch identifier number","label":"Store/Branch Number"},"ti_name":{"description":"IT Technician name responsible","label":"IT Name"}},"widget":{"refreshing":"Refreshing...","tooltip_empty":"No products registered","tooltip_low":"%d product(s) low in stock ⚠️","tooltip_ok":"All products have sufficient stock ✅"}},"ip-monitor":{"description":"Bar widget to monitor IPs from interfaces, custom commands, or IPC.","name":"IP Monitor","settings":{"click":{"options":{"copy_ip":"Copy IP","copy_name":"Copy Name","none":"None"}},"custom_command":{"description":"Command to run to fetch the IP.","label":"Custom Command"},"details_font_size":{"description":"Font size for the network details text.","label":"Details Font Size"},"details_key_color":{"description":"Color for the detail labels (e.g. Network, Mask).","label":"Details Key Color"},"details_value_color":{"description":"Color for the detail values.","label":"Details Value Color"},"glyph":{"description":"Icon to show before the IP.","label":"Icon"},"glyph_color":{"description":"Color of the icon.","label":"Icon Color"},"hide_details_options":{"description":"Comma-separated list of fields to hide in the details table (e.g. network,mask,iface).","label":"Hide Details Options"},"hide_on_empty":{"description":"Hide the widget entirely when no IP is found.","label":"Hide on Empty"},"hide_tooltip_options":{"description":"Comma-separated list of fields to hide in the tooltip (e.g. network,mask,iface).","label":"Hide Tooltip Options"},"iface":{"description":"Pattern to match network interfaces (e.g. wlan*, eth0).","label":"Interface"},"ip_font_size":{"description":"Font size for the IP and name text.","label":"IP Font Size"},"ipc_id":{"description":"String ID used to target this specific widget via IPC JSON payload.","label":"IPC ID"},"left_click_action":{"description":"Action to perform on left click.","label":"Left Click Action"},"mode":{"description":"How to fetch the IP.","label":"Mode","options":{"custom_command":"Custom Command","interface":"Network Interface","ipc":"IPC"}},"name":{"description":"Optional name to show next to the IP.","label":"Name"},"name_color":{"description":"Color of the name text.","label":"Name Text Color"},"refresh_interval":{"description":"How often to refresh the IP (in seconds).","label":"Refresh Interval"},"right_click_action":{"description":"Action to perform on right click.","label":"Right Click Action"},"separator":{"description":"Character to separate the IP and the name (e.g. -).","label":"Separator"},"separator_color":{"description":"Color of the separator.","label":"Separator Color"},"text_color":{"description":"Color of the IP text.","label":"IP Text Color"}},"tooltip":{"broadcast":"Broadcast","gateway":"Default route","iface":"Interface","ip":"IP","mask":"Mask","network":"Network"}},"jalali_calendar":{"settings":{"digits":{"description":"Numerals used for dates: Persian (۱۴۰۵) or Latin (1405).","label":"Digits","latin":"Latin (1405)","persian":"Persian (۱۴۰۵)"},"events_afghan":{"description":"Afghan national days and observances.","label":"Afghan events"},"events_ancient":{"description":"Pre-Islamic and Zoroastrian festivals such as Mehregan, Sadeh and Yalda.","label":"Ancient Iranian festivals"},"events_national":{"description":"Cultural, scientific and national commemorations.","label":"Iranian civil days"},"events_religious":{"description":"Shia and Islamic observances.","label":"Religious observances"},"font_size":{"description":"Font size for the bar widget in pixels. 0 follows the bar's own size.","label":"Bar font size"},"format":{"description":"Template for the bar widget. Placeholders: {day} {month} {year} {weekday}.","label":"Bar format"},"glyph":{"description":"Icon shown on the bar.","label":"Icon"},"language":{"description":"Script used for month and weekday names, and the direction of the grid.","label":"Language","latin":"Latin","persian":"Persian"},"scale":{"description":"Scales the calendar panel's text and cells. 1.0 is the default size.","label":"Calendar size"},"show_glyph":{"description":"Show an icon next to the date on the bar.","label":"Show icon"},"show_gregorian":{"description":"Show the Gregorian day number in each cell.","label":"Show Gregorian"},"show_hijri":{"description":"Show the lunar Islamic day number in each cell.","label":"Show Hijri Qamari"},"show_holidays":{"description":"Mark official Iranian holidays and list each day's occasions.","label":"Show holidays"},"week_start":{"description":"Which weekday the grid starts on. Saturday matches the Iranian week.","label":"First day of week","monday":"Monday","saturday":"Saturday","sunday":"Sunday"}}},"jetbrains-provider":{"database-empty":"No JetBrains projects found","filter-empty":"Filter: \"{filter}\"","loading":"Loading…","loading-subtitle":"Reading JetBrains projects","no-projects-found":"No projects found","settings":{"config_dir":{"description":"Root directory for JetBrains IDE configuration folders.","label":"JetBrains config directory"},"ignored_ides":{"description":"IDE names to exclude (e.g. WebStorm, CLion). Matches the start of each config folder name.","label":"Ignored IDEs"},"max_results":{"description":"Maximum number of projects to display.","label":"Maximum results"},"toolbox_dir":{"description":"JetBrains Toolbox apps directory used to locate IDE launchers.","label":"Toolbox apps directory"}}},"k8s-status":{"actions":{"delete_pod":"Delete pod","describe":"Describe","logs":"Logs","open_k9s":"k9s","refresh":"Refresh","restart":"Restart","toggle_filter":"Filter"},"colors":{"error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"},"deploy":{"replicas":"{ready}/{desired} ready"},"filter":{"all":"All","placeholder_deploys":"Filter…  e.g. ai  or  !1/1","placeholder_namespaces":"Filter…  e.g. !Active","placeholder_nodes":"Filter…  (!Ready excludes Ready)","placeholder_pods":"Filter…  e.g. gitea  or  !Running","problems":"Problems"},"launcher":{"action":{"copy":"Copy name","copy-sub":"Copy namespace/name to clipboard","delete":"Delete pod","delete-sub":"kubectl delete pod","describe":"Describe","describe-sub":"kubectl describe","logs":"Logs","logs-sub":"kubectl logs -f --tail=200","portforward":"Port-forward","portforward-sub":"kubectl port-forward 8080:8080","restart":"Restart","restart-sub":"kubectl rollout restart","shell":"Shell","shell-sub":"kubectl exec -it (bash/sh)","yaml":"YAML","yaml-sub":"kubectl get -o yaml"},"cat":{"deploys":"Deployments","deploys-sub":"Rollout restart and describe","k9s":"Open k9s","k9s-sub":"Terminal cluster UI","nodes":"Nodes","nodes-sub":"Node status and describe","ns":"Namespaces","ns-sub":"Browse namespaces","panel":"Open panel","panel-sub":"Full K8s Status manager","pods":"Pods","pods-sub":"Browse pods — logs, shell, describe…","problems":"Problem pods","problems-sub":"Non-running / unhealthy pods only","refresh":"Refresh","refresh-sub":"Rescan cluster now","status":"Status summary","status-sub":"Notify ready nodes / problem pods"},"deploy-actions":"Choose an action","hint-type":"Type to filter, Enter to open","loading":"Loading cluster snapshot…","no-matches":"No matches","node-actions":"Choose an action","pod-actions":"Choose an action","unavailable":"Cluster unavailable"},"node":{"ip":"IP: {ip}","not_ready":"NotReady","ready":"Ready","roles":"Roles: {roles}","version":"Version: {version}"},"ns":{"phase":"{phase}"},"panel":{"busy":"Working…","context":"Context: {name}","empty_deploys":"No deployments match the current filter.","empty_namespaces":"No namespaces match the current filter.","empty_nodes":"No nodes match the current filter.","empty_pods":"No pods match the current filter.","loading":"Querying cluster…","select_hint":"Select an item for actions.","subtitle":"Nodes, pods, and workloads","summary":"{ready}/{nodes} nodes ready · {problems} problem pods · {pods} pods","updated":"Updated {time}"},"pod":{"node":"Node: {node}","restarts":"{count} restarts"},"result":{"busy":"Another operation is running.","context_pinned":"Context is pinned in the plugin settings.","context_switched":"Switched to context {name}","copied":"Copied {name}","deleted":"Deleted pod {name}","describe_started":"Describing {name}…","failed":"Failed: {error}","k9s_started":"Opening k9s…","kubectl_missing":"kubectl is not available.","logs_started":"Opening logs for {name}…","node_not_ready":"Node {name} is NotReady","portforward_started":"Port-forward {name} ({ports})…","restarted":"Restarted {name}","shell_started":"Opening shell in {name}…","success":"Done","unreachable":"Cannot reach cluster","yaml_started":"Showing YAML for {name}…"},"settings":{"context":{"description":"Kubernetes context name. Leave empty for current-context.","label":"Context"},"kubeconfig":{"description":"Path to kubeconfig (empty uses default).","label":"Kubeconfig"},"kubectl_bin":{"description":"kubectl command name or absolute path.","label":"kubectl binary"},"namespace":{"description":"Limit pods/deployments to this namespace. Empty = all namespaces.","label":"Namespace filter"},"notify_on_not_ready":{"description":"Desktop notification when a node becomes NotReady.","label":"Notify on node NotReady"},"ok_color":{"label":"Healthy indicator"},"problems_only":{"description":"In the panel pod list, hide healthy Running pods by default.","label":"Problems-only pod list"},"refresh_interval":{"description":"How often to poll the cluster.","label":"Refresh interval (seconds)"},"show_counts":{"description":"Display ready nodes and problem pods on the widget.","label":"Show counts on bar"},"warn_color":{"label":"Problem indicator"}},"tabs":{"deploys":"Deployments","namespaces":"Namespaces","nodes":"Nodes","pods":"Pods"},"title":"K8s Status","widget":{"refresh_requested":"Refreshing cluster status…","tooltip_down":"Cluster unreachable: {error}","tooltip_missing":"kubectl not found","tooltip_ok":"{context} · {ready}/{nodes} nodes ready · {problems} problem pods"}},"keybind-cheatsheet":{"appearance":"Appearance","back":"Back","background":"Background","binding_count":"{count} bindings","cancel":"Cancel","choose_color":"Choose color","clear":"Clear search","customize_colors":"Key colors","edit_bindings":"Edit bindings","edit_description":"Edit description","finish_editing":"Finish editing","hidden_count":"{count} hidden","hide_binding":"Hide binding","hyprctl_failed":"Hyprland did not return its active keybindings.","hyprctl_missing":"hyprctl is required for Hyprland Lua keybindings.","loading":"Reading keybindings...","missing_config":"The configured keybind file could not be read.","no_results":"No keybindings match this search.","other":"Other","paste":"Paste color","refresh":"Refresh","reset":"Reset","reset_colors":"Reset all colors","restore_hidden":"Restore hidden bindings","save":"Save","search_placeholder":"Search keys, descriptions, and actions","settings":{"columns":{"description":"Maximum number of balanced columns in the panel.","label":"Columns"},"compositor":{"description":"Detect the active compositor or force a parser.","label":"Compositor","options":{"auto":"Automatic","hyprland":"Hyprland","mango":"Mango","niri":"Niri"}},"glyph":{"description":"Icon shown in the bar.","label":"Glyph"},"hyprland_config":{"description":"Main classic Hyprland configuration file.","label":"Hyprland config"},"hyprland_lua_config":{"description":"Lua configuration used to recover categories for live binds.","label":"Hyprland Lua config"},"hyprland_parser":{"description":"Use the live Lua bind list, classic config, or automatic detection.","label":"Hyprland parser","options":{"auto":"Automatic","conf":"Classic config","lua":"Lua / hyprctl"}},"mango_config":{"description":"Main Mango configuration file. Source directives are followed.","label":"Mango config"},"merge_sequential":{"description":"Collapse binds that differ only by a number (workspace 1, 2, 3…) into one row.","label":"Merge numbered runs"},"modifier_labels":{"description":"Rename modifier pills, e.g. MOD3 → Hyper. Keys are Hyprland modifier names.","label":"Modifier labels"},"niri_config":{"description":"Main Niri KDL configuration file. Include directives are followed.","label":"Niri config"},"show_actions":{"description":"Show compositor commands below binding descriptions.","label":"Show actions"},"show_undescribed":{"description":"Put bindings without descriptions in a separate section.","label":"Show undescribed bindings"}},"show_binding":"Show binding","source_warning":"Some configuration files could not be read.","text":"Text","title":"Keybind Cheatsheet","unsupported":"No supported compositor was detected.","widget_tooltip":"Open keybind cheatsheet","without_description":"Without Description"},"keyboard-state":{"error":{"failed_initial_query":"Failed to query initial key lock state.","invalid_input_device":"The configured input device is invalid or does not exist.","stream_failed":"Could not start the keyboard event stream."},"settings":{"active_color":{"description":"Color to use when a lock key is active","label":"Active color"},"caps_lock_glyph":{"description":"Glyph to display for Caps Lock","label":"Caps Lock glyph"},"hide_inactive":{"description":"Hide inactive lock keys","label":"Hide inactive"},"icon_spacing":{"description":"Spacing between keyboard state icons in pixels","label":"Icon spacing"},"inactive_color":{"description":"Color to use when a lock key is inactive","label":"Inactive color"},"input_device":{"description":"Path to the input device to monitor for keyboard lock key events","label":"Input device"},"num_lock_glyph":{"description":"Glyph to display for Num Lock","label":"Num Lock glyph"},"scroll_lock_glyph":{"description":"Glyph to display for Scroll Lock","label":"Scroll Lock glyph"},"show_caps_lock":{"description":"Show the Caps Lock state","label":"Show Caps Lock"},"show_num_lock":{"description":"Show the Num Lock state","label":"Show Num Lock"},"show_scroll_lock":{"description":"Show the Scroll Lock state","label":"Show Scroll Lock"}}},"keymap":{"actions":{"key_mode_value":"Enter key mode: {mode}","layout_value":"Layout: {layout}","mangowc":{"dwindle_toggle_split_direction":"Toggle split direction","exchange_client":"Swap","focusdir":"Focus","focusmon":"Focus monitor","groupfocus":"Focus group","groupjoin":"Join group","incnmaster":"Increase masters","killclient":"Close window","minimized":"Minimize window","quit":"Quit compositor","reload_config":"Reload config","restart":"Restart","restore_minimized":"Restore minimized window","scroller_stack":"Move in scroller stack","smartmovewin":"Move window","smartresizewin":"Resize window","switch_keyboard_layout":"Switch keyboard layout","switch_layout":"Switch layout","switch_proportion_preset":"Cycle column width","tagmon":"Send to monitor","toggle_all_floating":"Toggle all floating","toggle_scratchpad":"Toggle scratchpad","togglefakefullscreen":"Toggle fake fullscreen","togglefloating":"Toggle floating","togglefullscreen":"Toggle fullscreen","togglegaps":"Toggle gaps","toggleglobal":"Toggle global window","togglejump":"Toggle jump overview","togglemaximizescreen":"Maximize","toggleoverlay":"Toggle overlay","toggleoverview":"Toggle overview","zoom":"Zoom"},"move_to_tag":"Move to tag","move_to_tag_number":"Move to tag {tag}","native":"Native action: {action}","run":"Run: {command}","run_command":"Run command","set_key_mode":"Set key mode","set_layout":"Set layout","view_tag":"View tag","view_tag_number":"View tag {tag}","with_argument":"{action} {argument}"},"category":{"niri":{"animations":"Animations","applications":"Applications","column_management":"Column management","column_navigation":"Column navigation","column_width":"Column width","move_columns":"Move columns","move_windows":"Move windows","power":"Power","screenshots":"Screenshots","system":"System","window_focus":"Window focus","window_management":"Window management","window_size":"Window size","workspace_management":"Workspace management","workspace_navigation":"Workspace navigation"},"noctalia":"Noctalia","other":"Other","undescribed":"Without description"},"panel":{"bind_count":{"one":"{count} keybinding","other":"{count} keybindings"},"category_count":{"one":"{count} shortcut","other":"{count} shortcuts"},"clear_search":"Clear search","close":"Close","command_library":{"all_categories":"All categories","all_readiness":"All commands","all_sources":"All sources","categories":{"appearance":"Appearance","applications":"Applications","audio":"Audio","bars":"Bars","casting":"Casting","clipboard":"Clipboard","connectivity":"Connectivity","cursor":"Cursor","display":"Displays","focus":"Focus","groups":"Groups","input":"Input","layout":"Layout","media":"Media","monitors":"Monitors","notifications":"Notifications","panels":"Panels","plugins":"Plugins","power":"Power","screenshots":"Screenshots","session":"Session","system":"System","widgets":"Widgets","windows":"Windows","workspaces":"Workspaces"},"custom_command":"Custom command","native_action":"Native action","no_results":"No commands match these filters.","open":"Commands","open_hint":"Browse Noctalia commands and native actions for the active compositor","placeholder_hint":"Replace every placeholder in double braces before saving.","ready":"Ready","requires_input":"Needs input","search_placeholder":"Search commands, actions, or categories","showing":"Showing {shown} of {total} matching commands","sources":{"hyprland":"Hyprland","mangowc":"MangoWC","niri":"Niri","noctalia":"Noctalia"},"title":"Known commands","use":"Use"},"config_folder_failed":"The keybinding folder could not be opened.","config_folder_unavailable":"No readable keybinding source is available yet.","creator":{"cancel":"Cancel","category":"Category","category_placeholder":"Category name","command_placeholder":"Command to run","description_placeholder":"Shortcut description","errors":{"activation_not_editable":"The activation mode in this shortcut cannot be changed safely.","anchor_ambiguous":"The destination shortcut could not be identified uniquely.","anchor_changed":"The destination shortcut changed on disk. Refresh and try again.","anchor_is_target":"Choose a different destination shortcut.","anchor_not_found":"The destination shortcut is no longer present. Refresh and try again.","anchor_range_invalid":"The destination shortcut source location is no longer valid.","busy":"Another shortcut is currently being saved. Try again in a moment.","category_ambiguous":"The category could not be identified uniquely in the current snapshot.","category_changed":"The category changed while its editor was open. Refresh and try again.","category_edit_separate":"Moving shortcuts between categories will be available in the category editor.","category_exists":"Another category already uses this name.","category_invalid":"The category name contains characters unsupported by the compositor format.","category_not_editable":"This category contains generated, grouped, or otherwise read-only shortcuts and cannot be renamed safely.","category_not_found":"This category is no longer present in the current configuration.","category_ranges_overlap":"The category contains overlapping source ranges and cannot be renamed safely.","category_required":"Select or enter a category.","combination_required":"Select at least one ordinary key.","command_not_editable":"The command in this shortcut cannot be changed safely.","command_required":"Enter a command.","conflict":"Already used by: {description}","conflict_blocked":"This combination is already occupied. Choose a free combination.","description_not_editable":"The description in this shortcut cannot be changed safely.","description_required":"Enter a shortcut description.","different_source":"These shortcuts are stored in different files and cannot be reordered safely.","file_too_large":"The managed keybinding file is too large.","hidden_block_invalid":"The hidden shortcut block is incomplete or damaged, so it was left unchanged.","integrate_failed":"The managed file could not be included from the main configuration.","invalid_command_kind":"The selected command type is not supported.","invalid_compositor":"The active compositor is not supported by the writer.","invalid_operation":"The requested shortcut operation is not supported.","invalid_request":"The writer received an invalid request.","invalid_text":"The category, description, and command must be single-line text without control characters.","library_arguments_required":"Replace every command-library placeholder before saving.","library_entry_invalid":"The selected native action no longer matches the command library.","managed_file_changed":"The generated shortcuts file changed while the shortcut was being prepared. Refresh and try again.","managed_file_collision":"A file with the managed filename already exists and does not belong to this plugin.","managed_file_invalid":"The managed keybinding file has an invalid structure.","managed_file_too_large":"The managed keybinding file is too large.","managed_file_unreadable":"The managed keybinding file could not be read.","managed_include_invalid":"The managed include block in the main configuration is incomplete or damaged.","managed_rename_failed":"The managed keybinding file could not be installed atomically.","managed_temporary_collision":"A safe temporary filename could not be allocated.","managed_write_failed":"The managed keybinding file could not be written.","mango_command_hash_unsupported":"MangoWC commands containing # are not supported by this first writer version.","migration_cleanup_changed":"The configuration or legacy Keymap file changed during migration, so automatic cleanup stopped for safety.","migration_remove_failed":"The legacy Keymap file could not be removed, so the original configuration was restored.","native_update_unsupported":"Existing shortcuts cannot be converted to native actions safely.","niri_spawn_invalid":"Enter a Niri spawn action with the program and every argument in separate double quotes.","preflight_failed":"The configuration safety check could not be started.","recovery_reload_failed":"The previous files were restored, but reloading the restored compositor configuration also failed.","release_unsupported":"This compositor does not support release-triggered shortcuts.","reload_failed":"The compositor rejected the reload, so the previous configuration was restored.","reload_start_failed":"Reloading the compositor could not be started, so the previous configuration was restored.","reload_timeout":"Reloading the compositor timed out, so the previous configuration was restored.","rollback_failed":"The shortcut could not be saved and the automatic rollback was incomplete. Check the compositor configuration files.","single_key_only":"This compositor supports only one ordinary key per shortcut.","source_changed":"The main configuration changed while the shortcut was being prepared. Refresh and try again.","source_is_managed_file":"Select the main compositor configuration, not the generated shortcuts file.","source_rename_failed":"The main configuration could not be updated atomically.","source_temporary_collision":"A safe temporary filename could not be allocated.","source_unreadable":"The main compositor configuration could not be read.","source_write_failed":"The managed file could not be included from the main configuration.","stale_category":"The category changed while its editor was open. Refresh and try again.","stale_context":"The compositor configuration changed while the creator was open. Refresh and reopen the creator.","symlink_unsupported":"The main or managed configuration is a symbolic link. Saving is blocked to preserve the link safely.","target_anchor_overlap":"The source ranges of these shortcuts overlap and cannot be reordered safely.","target_changed":"This shortcut changed on disk. Refresh the list before editing it again.","target_not_editable":"This shortcut is generated dynamically or its source syntax cannot be edited safely.","target_not_found":"This shortcut is no longer present in the current configuration.","target_not_hidden":"This shortcut is no longer present in the hidden shortcuts list.","target_range_invalid":"The shortcut source location is no longer valid. Refresh the list and try again.","unsupported_compositor":"The active compositor is not supported by the writer.","validator_unavailable":"The compositor validation command is unavailable; no changes were kept.","verify_failed":"The compositor rejected the generated configuration.","verify_start_failed":"Configuration validation could not be started; no changes were kept.","verify_timeout":"Configuration validation timed out; no changes were kept.","write_failed":"The managed keybinding file could not be written."},"hyprland_hint":"Hyprland supports one or more ordinary keys. Click selected keys again to remove them.","list_hint":"Choose modifiers and enter the key or comma-separated key sequence. You can also create shortcuts from the keyboard view.","mangowc_hint":"MangoWC supports one ordinary key and can trigger on press or release.","new_category":"New category…","new_shortcut":"New shortcut","niri_hint":"Niri supports one ordinary key and triggers bindings on press.","no_combination":"Select a key combination","open":"Create a new keybinding in the current view","press":"Press","release":"Release","release_unavailable":"Niri does not support release-triggered keybindings.","save":"Save keybinding","saved":"Saved {chord}","saving":"Saving…","title":"Create keybinding","trigger":"Run on"},"detecting":"Detecting compositor","editor":{"action_placeholder":"Native compositor action","cancel_delete":"Cancel deletion","category_name_placeholder":"Category name","category_read_only":"This category contains generated, grouped, or read-only shortcuts and cannot be renamed safely","category_rename":"Rename this category","category_rename_cancel":"Cancel category rename","category_rename_save":"Save category name","category_renamed":"The category was renamed.","combination":"Combination","confirm_delete":"Click again to confirm permanent deletion","confirm_delete_hidden":"Click again to permanently delete this hidden shortcut","delete":"Delete this shortcut permanently","delete_hidden":"Delete this hidden shortcut permanently","deleted":"The keybinding was deleted.","drag":"Drag this shortcut to another category","edit":"Edit this shortcut","hidden":"The keybinding was hidden and can be restored from the editor.","hidden_count":{"one":"One hidden shortcut","other":"{count} hidden shortcuts"},"hidden_hint":"These shortcuts are inactive. Restore one to put its exact source text back, or delete it permanently.","hidden_title":"Hidden shortcuts","hide":"Hide this shortcut by commenting it out in the source file","hint":"Update the combination, description, command, trigger mode, or category.","keys_placeholder":"Key, or comma-separated sequence","moved":"The keybinding was moved to the selected category.","native_command":"This shortcut uses a native compositor action. Its action is preserved; only supported fields can be changed.","native_spawn_library":"The command library is unavailable while editing a native Niri spawn action.","open":"Edit shortcuts","open_hint":"Show shortcut and category edit controls","read_only":"This entry is generated dynamically or cannot be edited safely.","reordered":"The keybinding order was updated.","restore":"Restore this shortcut","restored":"The keybinding was restored.","save":"Update keybinding","title":"Edit keybinding","updated":"The keybinding was updated."},"empty":"No keybindings found","empty_hint":"No shortcuts were found automatically. Open Keymap settings, enter the correct compositor configuration file path, and refresh the panel.","errors":{"compositor_unknown":"No supported compositor could be detected. Select one manually in the plugin settings.","hyprctl_failed":"Hyprland rejected the request for live keybindings.","hyprctl_invalid_json":"Hyprland returned malformed keybinding data.","hyprctl_not_found":"hyprctl is not installed or is not available on PATH.","hyprctl_start_failed":"The hyprctl process could not be started.","hyprctl_timeout":"Hyprland did not answer before the request timed out.","mangowc_config_unreadable":"The configured MangoWC file could not be read.","mangowc_no_binds":"No keybindings were found in the MangoWC configuration.","mangowc_parse_failed":"The MangoWC parser hit an internal error. The warning banner text contains details.","mangowc_required_source_missing":"A required MangoWC source could not be read. Fix the configuration path and try again.","niri_config_unreadable":"The configured Niri KDL file could not be read.","niri_no_binds":"No active keybindings were found in the Niri configuration.","niri_parse_failed":"The Niri parser hit an internal error. The warning banner text contains details.","niri_required_include_missing":"A required Niri include could not be read. Fix the configuration path and try again.","unknown":"The service returned an unknown error."},"keyboard":{"available_layers":"Used with","clear_modifiers":"Clear modifiers","free":"Free","free_hint":"This combination is not used in the currently selected layer.","layer":"Layer","layout":"Keyboard size","layout_edit_hint":"Choose the physical keyboard shown by the editor.","layouts":{"p100":"100%","p60":"60%","p65":"65%","p75":"75%","p80":"80% (TKL)","p96":"96%"},"more_actions":"+{count} more actions","no_modifiers":"No modifiers","occupied":"Occupied","other_layer":"Used on another layer","other_layer_hint":"This key is assigned with different modifiers. Choose a layer below to view its shortcuts.","outside":"{count} shortcuts outside the keyboard view","select_hint":"Select modifiers, then click a key to inspect that combination.","summary":"{layer}: {count} occupied keys","view":"Keyboard view"},"list_view":"Shortcut list","load_failed":"Could not load keybindings","loading":"Loading keybindings","loading_hint":"Reading keybindings from the active compositor and its configuration.","no_description":"No description","no_results":"No matching keybindings","no_results_hint":"Try a different description, key, category, or dispatcher.","open_config_folder":"Open the current keybinding file's folder","open_settings":"Open Keymap settings","open_settings_action":"Open settings","path_hint":"If Keymap cannot find your keybindings automatically, open Keymap settings and enter the correct compositor configuration file path.","refresh":"Refresh keybindings","retry":"Try again","search_placeholder":"Search shortcuts, keys, categories, or actions…","search_results":{"one":"{count} result","other":"{count} results"},"settings_failed":"Noctalia settings could not be opened.","uncategorized":"Other","unknown_error":"The service returned an unknown error.","updated":"Updated {time}","warning_count":{"one":"One parser warning occurred. The list may be incomplete.","other":"{count} parser warnings occurred. The list may be incomplete."},"xdg_open_unavailable":"xdg-open is not installed or is not available on PATH."},"settings":{"alt_color":{"label":"Alt background"},"alt_text_color":{"label":"Alt text"},"card_color":{"description":"Background role or custom color used for category cards.","label":"Category card color"},"card_opacity":{"description":"Opacity of category card backgrounds.","label":"Category card opacity"},"category_color":{"description":"Theme role or custom color used for category headings.","label":"Category heading color"},"columns":{"description":"Number of category columns shown in the Keymap panel.","label":"Panel columns"},"compositor":{"description":"Detect the active compositor automatically or select one manually.","label":"Compositor","options":{"auto":"Automatic","hyprland":"Hyprland (Lua)","mangowc":"MangoWC","niri":"Niri"}},"ctrl_color":{"label":"Control background"},"ctrl_text_color":{"label":"Control text"},"description_color":{"description":"Theme role or custom color used for shortcut descriptions.","label":"Description color"},"hyprland_config":{"description":"Main Lua configuration file. Required modules are discovered from this file.","label":"Hyprland Lua configuration"},"key_color":{"description":"Theme role or custom background color for non-modifier keys.","label":"Key background"},"key_text_color":{"description":"Theme role or custom text color for non-modifier keys.","label":"Key text"},"keyboard_layout":{"description":"Physical keyboard layout used when opening the Keymap keyboard view.","label":"Default keyboard size","options":{"p100":"100%","p60":"60%","p65":"65%","p75":"75%","p80":"80% (TKL)","p96":"96%"}},"mangowc_config":{"description":"Main config.conf file. Source directives are followed recursively.","label":"MangoWC configuration"},"merge_sequential":{"description":"Combine related numbered shortcuts, such as workspaces 1–9, into one row.","label":"Merge sequential shortcuts"},"merge_similar":{"description":"Show one row per action when several shortcuts trigger it. Grouped rows are read-only.","label":"Merge similar shortcuts"},"modifier_color":{"description":"Theme role or custom background color for this modifier."},"modifier_text_color":{"description":"Theme role or custom text color for this modifier."},"niri_config":{"description":"Main KDL configuration file. Include nodes are followed recursively.","label":"Niri configuration"},"shift_color":{"label":"Shift background"},"shift_text_color":{"label":"Shift text"},"show_undescribed":{"description":"Include shortcuts without explicit descriptions. Niri binds without a hotkey-overlay-title and Hyprland binds without descriptions are hidden when off.","label":"Show shortcuts without descriptions"},"super_color":{"label":"Super background"},"super_text_color":{"label":"Super text"},"widget":{"glyph":{"description":"Glyph shown in the bar.","label":"Glyph"},"show_label":{"description":"Show the plugin name next to the bar glyph.","label":"Show label"}}},"title":"Keymap","widget":{"tooltip":"Show system keybindings"}},"keyviz":{"notify_paused":"Keystroke visualizer paused","notify_resumed":"Keystroke visualizer active","settings":{"badge_style":{"description":"Appearance and background style of on-screen keycaps","label":"Visual style","options":{"accent":"Accent Outline","glass":"Glass (Blurred)","keycap_dark":"Keycap (Dark)","keycap_light":"Keycap (Light)","solid":"Solid Surface"}},"enabled_by_default":{"description":"Start keystroke visualizer automatically when Noctalia starts","label":"Enabled by default"},"font_size":{"description":"Text size of displayed keycaps","label":"Key font size","options":{"large":"Large (20px)","medium":"Medium (16px)","small":"Small (13px)"}},"margin":{"description":"Spacing gap between visualized key combinations (in pixels)","label":"Keycap spacing"},"max_keys":{"description":"Maximum number of recent key combinations to display simultaneously","label":"Maximum key combos"},"padding":{"description":"Internal padding spacing inside the overlay around keycaps (in pixels)","label":"Overlay padding"},"show_modifiers_only":{"description":"Only visualize key combinations containing Ctrl, Alt, Shift, or Super","label":"Shortcuts only"},"timeout_ms":{"description":"How long keys remain visible on screen after release (in milliseconds)","label":"Key timeout (ms)"}},"shortcut_active":"Keyviz On","shortcut_paused":"Keyviz Off","title":"Key Visualizer","tooltip_active":"Key Visualizer: Active","tooltip_paused":"Key Visualizer: Paused"},"kineticwe-layouts":{"settings":{"show_text":{"description":"Show the current layout name next to the glyph in the bar. When off, only the glyph is shown.","label":"Show layout name"}}},"kwallet-secrets":{"errors":{"helper_missing":"scripts/kwallet-nm-agent.py is missing from the plugin directory.","procps_missing":"pkill was not found on PATH (install procps-ng).","python_missing":"python3 was not found on PATH.","systemd_cat_missing":"systemd-cat was not found on PATH (install systemd)."},"settings":{"app_id":{"description":"Name shown in KWallet access dialogs.","label":"Application id"},"debug_logging":{"description":"Log every lookup to the journal (tag noctalia-kwallet-secrets). Secret values are never logged.","label":"Verbose logging"},"folder_name":{"description":"Wallet folder holding the entries. plasma-nm uses \"Network Management\".","label":"Wallet folder"},"handle_8021x":{"description":"Also answer 802-1x (WPA-Enterprise) requests, not just PSK networks.","label":"Handle enterprise networks"},"handle_vpn":{"description":"Also answer VPN requests (OpenVPN and friends, plus NetworkManager's own WireGuard), so VPN secrets come from the wallet instead of a prompt.","label":"Handle VPN connections"},"unlock_prompt":{"description":"Allow KWallet to prompt when the wallet is locked. Turn off to treat a locked wallet as \"no secret\".","label":"Allow unlock prompt"},"wallet_name":{"description":"Wallet to read. Leave empty to use KWallet's configured network wallet.","label":"Wallet name"}},"title":"KWallet Secrets"},"launcher-pass":{"action":{"autotype":"Autotype login","autotype-desc":"Type username, password, and OTP in sequence","copy-field":"Copy {key}","copy-otp":"Copy OTP","copy-password":"Copy Password","copy-password-desc":"Copy password to clipboard","copy-username":"Copy Username","create":"Create entry","create-cancel":"Cancel","create-cancel-desc":"Go back without creating","create-confirm":"Create entry now","create-error":"Could not check whether the path is free","create-exists":"That path already has an entry — cannot create it","create-hint":"Type a name for the new entry","edit":"Edit","edit-desc":"Open pass edit in a terminal","generate":"Generate","generate-cancel":"Cancel","generate-cancel-desc":"Keep the current password","generate-confirm":"Regenerate now","generate-confirm-desc":"Replaces the current password. This cannot be undone.","generate-desc":"Regenerate the password with pass generate","new":"New entry","new-desc":"Create a new password entry here","otp-desc":"Copy/type current OTP code","type-field":"Type {key}","type-otp":"Type OTP","type-password":"Type Password","type-password-desc":"Type password using wtype","type-username":"Type Username"},"command":{"description":"Search gnu pass password entries"},"detail":{"decrypting":"Decrypting password entry...","error":"Failed to decrypt entry"},"notification":{"copied":"Copied to clipboard","copy-failed":"Copy failed","create-exists":"An entry with that name already exists","create-failed":"Could not create entry","created":"Password entry created","edit-failed":"Edit failed","generate-failed":"Password regeneration failed","generated":"Password regenerated","no-current-entry":"Open a password entry first","quick-action-failed":"Quick action failed","quick-action-unknown":"Unknown quick action","type-failed":"Type failed"},"result":{"folder":"Folder","go-back":"Go back","loading":"Loading password entries...","password":"Password"},"settings":{"autotype-enabled":{"desc":"Show an Autotype row in an entry's detail view that types the username, a separator key, the password, then the OTP when the entry has one. Needs wtype","label":"Autotype login row"},"autotype-separator":{"desc":"Key that moves from the username field to the password field during autotype","label":"Autotype field separator","options":{"enter":"Enter","tab":"Tab"}},"autotype-submit":{"desc":"Press Enter after the last autotyped value (after the OTP when present, otherwise after the password). Turn off to stop before submitting","label":"Autotype presses Enter to submit"},"clip-timeout":{"desc":"Seconds before the clipboard is cleared (blank = use PASSWORD_STORE_CLIP_TIME)","label":"Clipboard timeout"},"detail-action-grouping":{"desc":"Interleave each value's Copy and Type rows, or list all Copy rows then all Type rows","label":"Detail view action grouping","options":{"grouped":"Grouped by action","interleaved":"Interleaved"}},"detail-action-order":{"desc":"Which row comes first for each value in an entry's detail view","label":"Detail view action order","options":{"copy":"Copy first","type":"Type first"}},"editor-command":{"desc":"Editor for the Edit action, exported as EDITOR to pass edit (e.g. nvim, code --wait). Blank leaves EDITOR unset so pass uses its own default","label":"Editor command"},"pinentry-grace-ms":{"desc":"Milliseconds to wait for a password to decrypt before assuming a GPG pinentry prompt needs focus and hiding the launcher (default: 200)","label":"Pinentry grace period"},"store-path":{"desc":"Custom path to the password store (default: ~/.password-store)","label":"Password store path"},"terminal-command":{"desc":"Terminal used to run pass edit, with its exec flag (e.g. foot -e, kitty -e, gnome-terminal --). Blank = auto-detect from $TERMINAL or a common terminal on PATH","label":"Terminal command"},"type-delay":{"desc":"Delay in milliseconds before typing starts (default: 500)","label":"Type delay"},"wtype-delay":{"desc":"Delay between keystrokes in milliseconds for wtype (default: 12)","label":"wtype keystroke delay"}}},"layout-fix":{"err_dicts_install":"Could not install the dictionaries, see the system log","err_no_input_access":"No access to the keyboard devices. Run: sudo usermod -aG input $USER — then log out and back in.","notify_dicts_installed":"Dictionaries installed — corrections are now dictionary-accurate","notify_dicts_missing":"For accurate corrections install: {list} (hunspell dictionaries). Set Dictionaries to \"install automatically\" in the plugin settings, or install them yourself.","notify_hotkey_hint":"Corrections work already. For the manual ones, bind in your compositor: spawn \"noctalia\" \"msg\" \"plugin\" \"umedbazarov/layout-fix:service\" \"all\" \"fix\" — and the same with \"undo\" and \"auto\". The README has ready-made lines.","settings":{"auto":{"description":"Fix a word as soon as it is finished. Off: corrections happen only through the keybinding.","label":"Correct automatically"},"dictionaries":{"description":"Hunspell dictionaries make the decision accurate in both directions. Without them the plugin falls back to heuristics, which are safe but miss some words.","label":"Dictionaries","options":{"ignore":"Do not check","install":"Install automatically (asks for the password)","notify":"Tell me what to install"}},"hotkey_hint":{"description":"Show once how to bind the fix and undo actions in your compositor.","label":"Remind about keybindings"}},"title":"Layout Fix"},"librelinkup":{"disclaimer":{"summary":"Unofficial API — not affiliated with Abbott. Not for medical decisions."},"error":{"account_id":"Could not derive the LibreLinkUp account identifier.","connections_failed":"LibreLinkUp connections could not be loaded.","login_failed":"LibreLinkUp login failed. Check your email and password.","missing_credentials":"Set your LibreLinkUp email and password in the plugin settings.","no_measurement":"No glucose measurement is available right now.","parse_failed":"LibreLinkUp returned invalid JSON."},"settings":{"email":{"description":"LibreLinkUp account email used for authentication.","label":"Email"},"glyph":{"label":"Bar glyph"},"high_threshold":{"description":"Values above this level are shown in warning color.","label":"High threshold (mg/dL)"},"low_threshold":{"description":"Values below this level are shown in error color.","label":"Low threshold (mg/dL)"},"password":{"description":"LibreLinkUp account password.","label":"Password"},"refresh_interval":{"description":"How often the plugin refreshes glucose data, in seconds.","label":"Refresh interval"},"show_unit":{"description":"Append mg/dL after the glucose value on the bar.","label":"Show unit"}},"title":"LibreLinkUp","tooltip":{"loading":"Loading glucose data…","measured":"Measured: {time}","reading":"Glucose: {value} {unit} {arrow}"}},"lid-guard":{"error":{"command_failed":"The systemd command failed.","missing_dependencies":"systemctl, systemd-run, systemd-inhibit, and sleep are required.","state_mismatch":"The requested state could not be confirmed."},"notification":{"disabled":{"body":"The normal lid-close behavior has been restored.","title":"Lid Guard disabled"},"enabled":{"body":"Closing the laptop lid will no longer suspend it.","title":"Lid Guard enabled"}},"shortcut":{"active":"Lid Guard On","inactive":"Lid Guard Off"},"title":"Lid Guard","tooltip":{"active":"Lid Guard is on — closing the lid will not suspend the laptop","changing":"Changing Lid Guard state…","inactive":"Lid Guard is off — click to keep the laptop awake with the lid closed","unavailable":"Lid Guard requires systemd"}},"link-ip-monitor":{"notify":{"duplicate_host":"{host} is already in the list","host_down":"{host} is unreachable","host_up":"{host} is responding again","invalid_host":"{host} is not a valid IP, host or link"},"panel":{"add_label_placeholder":"Description (optional) — e.g. Router, Server","add_placeholder":"IP, host or link","empty":"No hosts configured yet","invalid_format":"Invalid — enter an IP (0.0.0.0), a host or a link","status_checking":"Checking…","status_offline":"Offline","status_online":"Online","tooltip_add":"Add","tooltip_add_host":"Add host","tooltip_cancel":"Cancel","tooltip_check_now":"Check now","tooltip_close_form":"Close","tooltip_confirm_remove":"Confirm removal","tooltip_drag":"Drag to reorder","tooltip_edit":"Edit","tooltip_remove":"Remove","tooltip_settings":"Settings"},"settings":{"colorize_latency":{"description":"Colors the ms value by latency (green under 100ms, yellow 100-300ms, red 300ms+). Turn off to show it in a neutral color.","label":"Colorize response time"},"glyph":{"description":"Icon shown in the bar for this widget.","label":"Bar icon"},"interval_seconds":{"description":"How often each host is checked.","label":"Check interval (s)"},"notify_on_recovery":{"description":"Send a notification when a host that was down responds again.","label":"Notify when a host comes back"},"timeout_seconds":{"description":"How long to wait for a reply before treating it as a failure.","label":"Ping timeout (s)"}},"title":"Link/IP Monitor","widget":{"checking_now":"Checking now…","tooltip_all_up":"All monitored hosts are responding","tooltip_down_prefix":"Down:"}},"llamanager":{"settings":{"launcher":{"description":"Preferred AI model when using /ll in the launcher.","label":"Launcher"},"modelfile_path":{"description":"The directory where all your modelfiles are stored.","label":"Modelfile Path"}}},"lrc":{"settings":{"separator":{"description":"Text shown before the current lyric line.","label":"Separator"},"show_separator":{"description":"Prepend a separator before the lyric text.","label":"Show separator"}}},"lunar-calendar":{"notify":{"title":"Lunar Calendar"},"panel":{"festival":"Festival","ganzhi":"Stems and branches","lunar":"Lunar","next_holiday":"Next day off","next_month":"Next month","next_year":"Next year","none":"none","off":"off","prev_month":"Previous month","prev_year":"Previous year","term":"Solar term","today":"Today","unknown":"unknown","work":"make-up work day"},"service":{"cache_cleared":"Holiday cache cleared"},"settings":{"glyph":{"description":"A Tabler / Nerd Font glyph name, e.g. calendar-event or calendar-month.","label":"Widget glyph"},"holiday_source":{"description":"CN statutory holidays and make-up work days come from holiday-cn (MIT). Falls back to the local cache when offline.","label":"Holiday data source","options":{"auto":"Automatic (CDN first)","github":"GitHub Raw","jsdelivr":"jsDelivr CDN","off":"Offline only"}},"primary":{"description":"What the first text of the bar widget shows.","label":"Primary label","options":{"both":"Gregorian + lunar","lunar":"Lunar date (八月初六)","solar":"Gregorian date (Sep 16)"}},"secondary":{"description":"The second text drawn after the primary label.","label":"Secondary label","options":{"auto":"Term/festival/holiday first","lunar":"Lunar date only","lunar_plus":"Lunar date + term/festival/holiday","none":"Hidden"}},"show_glyph":{"label":"Show glyph"},"show_weekday":{"description":"Append the weekday to the Gregorian date.","label":"Show weekday"},"week_start":{"description":"First day of the week in the month panel.","label":"Week starts on","options":{"monday":"Monday","saturday":"Saturday","sunday":"Sunday"}}},"status":{"cached":"holidays cached","disabled":"holidays off","loading":"holidays loading…","nodata":"holidays not announced","offline":"holidays offline","ok":"holidays synced"},"widget":{"disabled":"disabled in settings","festival":"Festival","ganzhi":"Stems and branches","gregorian":"Gregorian","holiday":"Day off","holidays":"Statutory holidays","loading":"loading…","lunar":"Lunar","next_holiday":"Next day off","next_term":"Next term","offline":"no data (offline)","on_leave":"day off","refreshing":"Refreshing holiday data…","term":"Solar term","workday":"Make-up work day","workday_short":"work","working":"working"}},"lunar-workspaces":{"plugin_description":"Change workspace indicator with per-state custom icons, for Hyprland and Niri.","plugin_name":"Lunar Workspaces","settings":{"compositor":{"auto":"Auto-detect","description":"Which compositor to query for workspace state. Auto-detects Hyprland or Niri.","hyprland":"Hyprland","label":"Compositor","niri":"Niri"},"empty_color":{"description":"Fill color behind an empty workspace's icon.","label":"Empty pill color"},"empty_pill_style":{"description":"Show a colored pill behind the empty icon, or make it non-existent (bare icon only).","label":"Empty pill background"},"enable_animation":{"description":"Smoothly ease icon size on focus/state changes instead of snapping instantly.","label":"Animate transitions"},"focused_color":{"description":"Fill color behind the focused workspace's icon.","label":"Focused pill color"},"focused_pill_style":{"description":"Show a colored pill behind the focused icon, or make it non-existent (bare icon only).","label":"Focused pill background"},"icon_empty":{"description":"Emoji or absolute path to an image/gif for an empty workspace. Animated gifs need ImageMagick installed. Default: 🌙 Crescent moon.","label":"Empty icon"},"icon_focused":{"description":"Emoji or absolute path to an image/gif for the focused workspace. Animated gifs need ImageMagick installed. Default: 🌕 Full moon.","label":"Focused icon"},"icon_occupied":{"description":"Emoji or absolute path to an image/gif for an occupied, unfocused workspace. Animated gifs need ImageMagick installed. Default: 🌗 Half moon.","label":"Occupied icon"},"icon_urgent":{"description":"Emoji or absolute path to an image/gif for a workspace with urgent activity. Animated gifs need ImageMagick installed. Default: 🌟 Star.","label":"Urgent icon"},"occupied_color":{"description":"Fill color behind an occupied workspace's icon.","label":"Occupied pill color"},"occupied_pill_style":{"description":"Show a colored pill behind the occupied icon, or make it non-existent (bare icon only).","label":"Occupied pill background"},"pill_style":{"fill":"Filled pill","ghost":"No background"},"size_empty":{"description":"Icon size in pixels for an empty workspace.","label":"Empty size"},"size_focused":{"description":"Icon size in pixels for the focused workspace.","label":"Focused size"},"size_occupied":{"description":"Icon size in pixels for an occupied workspace.","label":"Occupied size"},"size_urgent":{"description":"Icon size in pixels for an urgent workspace.","label":"Urgent size"},"urgent_color":{"description":"Fill color behind an urgent workspace's icon.","label":"Urgent pill color"},"urgent_pill_style":{"description":"Show a colored pill behind the urgent icon, or make it non-existent (bare icon only).","label":"Urgent pill background"},"workspace_count":{"description":"How many workspace slots to check (1 to this number).","label":"Workspace count"},"workspace_display_mode":{"active_occupied":"Active / occupied only","all":"All","description":"Choose which workspace pills to show in the bar.","label":"Workspace visibility","once":"Occupied + 1 empty"}}},"lyrics":{"instrumental":"Instrumental","intro":"Intro","no_lyrics":"♪ No lyrics available","panel":{"close":"Close","loading":"Loading lyrics…","no_candidates":"No alternate LRCLIB results","no_track":"No track is playing","result":"Lyrics result","selection_failed":"Could not load the selected lyrics","synced":"Synced","title":"Choose lyrics","unsynced":"Unsynced"},"select_lyrics":"Choose lyrics","settings":{"active_color":{"description":"Color used for the current and already-sung lyric characters. Defaults to the interface text color.","label":"Active lyric color"},"animation":{"description":"How lyrics animate on line change.","label":"Animation","options":{"blink":"Blink reveal","cascade":"Character cascade","fade":"Fade only","karaoke":"Karaoke gradient + fade","none":"No animation","pulse":"Pulse fade","typewriter":"Typewriter reveal","wave":"Character wave reveal"}},"apple_developer_token":{"description":"Developer token used for Apple Music catalog and lyrics requests.","label":"Apple Music developer token"},"apple_storefront":{"description":"Apple Music storefront code, for example us, cn, jp, or hk.","label":"Apple Music storefront"},"apple_user_token":{"description":"Optional Music-User-Token for lyrics requiring a user subscription.","label":"Apple Music user token"},"char_width":{"description":"Approximate pixel width per character, used to fix the widget width and clip scrolling.","label":"Character width (px)"},"cover_radius":{"description":"Corner radius used by the custom cover shape.","label":"Cover corner radius"},"cover_shape":{"description":"Shape of the album artwork.","label":"Cover shape","options":{"circle":"Circle","custom":"Custom radius","rounded":"Rounded square","square":"Square"}},"cover_size":{"description":"Album artwork width and height in logical pixels.","label":"Cover size"},"cue_font_family":{"description":"Installed font family used only for intro and interlude characters in custom-font mode.","label":"Intro/interlude font"},"cue_font_mode":{"description":"Choose whether intro and interlude characters follow Noctalia's interface font or use another installed font.","label":"Intro/interlude font mode","options":{"custom":"Custom font","follow":"Follow interface font"}},"cue_text":{"description":"Text or characters highlighted during intros and interludes.","label":"Intro/interlude characters"},"custom_json_field":{"description":"Lyrics field in a JSON response, with dotted paths such as data.lyric. Leave empty for plain LRC.","label":"JSON lyrics field"},"custom_url":{"description":"Supports {title}, {artist}, {album}, and {duration} placeholders. Text responses may contain LRC directly.","label":"Custom endpoint URL"},"display_mode":{"description":"Always show lyrics, always show track information, or allow left-click switching.","label":"Display mode","options":{"lyrics":"Lyrics only","toggle":"Click to switch","track":"Track title and artist only"}},"double_line":{"description":"Show translation or romanization below the current original lyric.","label":"Double-line lyrics"},"double_line_auto_fit":{"description":"Reduce both font sizes and their gap on horizontal bars so capsule backgrounds do not clip the second line. Vertical bars are unchanged.","label":"Compact double lines"},"double_line_height_budget":{"description":"Approximate total text height available on a horizontal bar. Lower values make both lines more compact.","label":"Double-line height budget"},"font_family":{"description":"Installed font family for all lyrics. Leave empty to follow Noctalia.","label":"Lyrics font family"},"font_style":{"description":"Text baseline style supported by the Noctalia renderer.","label":"Font layout style","options":{"fixed":"Fixed text height","ink_centered":"Ink centered","normal":"Normal"}},"font_weight":{"description":"Weight used for primary lyrics.","label":"Lyrics font weight","options":{"bold":"Bold","heavy":"Heavy","light":"Light","medium":"Medium","normal":"Normal","semibold":"Semibold","thin":"Thin"}},"glyph":{"label":"Glyph"},"gradient":{"description":"Light up each character as the song progresses (karaoke style).","label":"Per-character gradient"},"hide_when_no_lyrics":{"label":"Hide when no lyrics"},"hide_when_paused":{"label":"Hide when paused"},"inactive_color":{"description":"Color used for upcoming lyrics, paused playback, and secondary lines.","label":"Inactive lyric color"},"karaoke_enabled":{"description":"Use source character timings or simulated line progress for per-character highlighting.","label":"Per-character karaoke"},"line_gap":{"description":"Spacing between original, translation, romanization, and context lines.","label":"Line gap"},"lyrics_offset_ms":{"description":"Positive values show lyrics earlier; negative values show them later.","label":"Lyrics offset (ms)"},"lyrics_source":{"description":"Choose a preset source, local-player lyrics, a custom endpoint, or external push protocol.","label":"Lyrics source","options":{"apple_music":"Apple Music","auto":"Automatic fallback","custom":"Custom HTTP endpoint","external":"External IPC push","kugou":"Kugou Music","lrclib":"LRCLIB","mpris":"Local player (MPRIS)","musixmatch":"Musixmatch","netease":"NetEase Music (public API)","qishui":"Qishui Music","qqmusic":"QQ Music","splayer":"SPlayer","spotify":"Spotify"}},"lyrics_sources":{"description":"Source IDs tried from top to bottom: lrclib, netease, splayer, qqmusic, kugou, qishui, apple_music, spotify, musixmatch, mpris, or custom.","label":"Automatic source order"},"marquee_speed":{"description":"Pixels per second for long-line scrolling.","label":"Marquee speed"},"max_chars":{"description":"Visible width before a long lyric line scrolls (marquee).","label":"Max characters"},"max_lines":{"description":"Maximum lyric lines to show at once.","label":"Max lines"},"musixmatch_token":{"description":"User token for the Musixmatch desktop subtitle endpoint.","label":"Musixmatch user token"},"padding_left":{"description":"Empty space before the widget content.","label":"Left padding"},"padding_right":{"description":"Empty space after the widget content.","label":"Right padding"},"player_allowlist":{"description":"Only use matching MPRIS player names or instances. Supports * wildcards; leave empty to allow all players.","label":"Allowed players"},"player_blocklist":{"description":"Ignore matching MPRIS player names or instances. Supports * wildcards and takes priority over the allowlist.","label":"Blocked players"},"poll_interval_ms":{"description":"How often the service refreshes MPRIS metadata and playback position.","label":"Player polling interval (ms)"},"primary_font_size":{"description":"Font size for the original lyric line. Zero follows Noctalia.","label":"Primary lyric font size"},"qishui_api_url":{"description":"Endpoint template supporting {title}, {artist}, and {album}. Required because public Qishui endpoints vary.","label":"Qishui API URL"},"qishui_token":{"description":"Optional Bearer token sent only to the configured Qishui endpoint.","label":"Qishui token"},"scroll_mode":{"description":"How lyrics scroll in the bar.","label":"Scroll mode","options":{"auto":"Auto (synced)","marquee":"Marquee","static":"Static"}},"secondary_color":{"description":"Color used for translation and romanization lines.","label":"Secondary lyric color"},"secondary_font_size":{"description":"Font size for translations and romanization.","label":"Secondary font size"},"secondary_line_mode":{"description":"Choose which additional lyric layer is preferred.","label":"Secondary line content","options":{"romanization":"Romanization only","romanization_first":"Romanization, then translation","translation":"Translation only","translation_first":"Translation, then romanization"}},"show_artist":{"label":"Show artist"},"show_cover":{"description":"Display the song's album art next to the lyrics.","label":"Show album cover"},"show_glyph":{"description":"Display the configured glyph when no album cover is available.","label":"Show glyph"},"show_romanization":{"description":"Allow romanized or transliterated lyrics to appear on the secondary line.","label":"Show romanization"},"show_translation":{"description":"Allow translated lyrics to appear on the secondary line.","label":"Show translation"},"splayer_api_url":{"description":"SPlayer local service URL. Defaults to http://127.0.0.1:25884 and reads the complete lyrics currently loaded by SPlayer.","label":"SPlayer API URL"},"spotify_access_token":{"description":"Optional manually supplied Spotify access token. Takes priority over sp_dc.","label":"Spotify access token"},"spotify_sp_dc":{"description":"Optional manually supplied Spotify web cookie. Stored as a normal plugin setting; never written to logs.","label":"Spotify sp_dc"},"text_alignment":{"description":"Align lyrics and track information within the fixed lyric width.","label":"Text alignment","options":{"center":"Center","left":"Left","right":"Right"}},"translation_language":{"description":"Preferred translated-lyric language when supported by the source.","label":"Translation language","options":{"en":"English","ja":"Japanese","ko":"Korean","zh-hans":"Simplified Chinese","zh-hant":"Traditional Chinese"}}},"shortcut":{"label":"Open lyrics selector"},"source_label":"Lyrics source","title":"Lyrics"},"mango-displays":{"action":{"apply":"Apply","apply_custom_mode":"Apply custom mode","cancel":"No","overwrite":"Overwrite"},"advanced":{"color":"Color profile","hdr":"HDR","picture":"Picture","title":"Advanced display","unset":"Unset"},"card":{"mirror":"Mirror","mode":"Mode","monitor":"Monitor","scale":"Scale"},"field":{"custom":"Custom mode","enabled":"On","hdr":"HDR","hdr_force":"Force HDR","hdr_max_avg_lum":"Max average luminance","hdr_max_lum":"Peak luminance","hdr_min_lum":"Minimum luminance","height":"Height","icc":"ICC profile","last_output":"Last output","refresh":"Refresh rate","resolution":"Resolution","rr":"Rotation","vrr":"Variable refresh rate","width":"Width"},"mirror":{"explain":"{source} is copied onto {destination}","from":"From","off":"Off","on":"On","service":{"active":"Screen mirroring is active.","data_unavailable":"The plugin data directory is unavailable.","disconnected":"A selected monitor was disconnected.","exited":"wl-mirror exited unexpectedly.","invalid_pair":"Choose two different connected monitors.","launch_failed":"Noctalia could not launch wl-mirror.","missing_tool":"wl-mirror was not found in PATH.","ready":"Choose an output to mirror.","start_failed":"wl-mirror failed to start.","starting":"Launching wl-mirror…","stop_failed":"Could not stop wl-mirror.","stopped":"Screen mirroring stopped.","stopping":"Stopping wl-mirror…"},"to":"To"},"preview":{"logical":"Apps see {width} × {height}"},"rescan":"Rescan outputs","settings":{"auto_save":{"description":"Rewrite the monitor rules whenever the layout changes, including arrangement made in wdisplays.","label":"Save layout automatically"},"glyph":{"label":"Glyph"},"monitor_rules_path":{"description":"Generated monitorrule lines are written here. Source it from your mango config.","label":"Monitor rules file"}},"state":{"current":"{resolution} · {refresh} Hz · {scale}x","off":"Currently off"},"status":{"invalid_mode":"Custom mode must be width 1-9999, height 1-9999 and refresh 0.001-9999.","invalid_value":"{field} must be a number from 0 to 10000.","mirror_failed":"Could not start the mirror.","missing_tool":"wlr-randr is not installed.","no_outputs":"No enabled outputs.","no_profile_path":"No monitor rules path configured.","overwrite_required":"Monitor rules file contains other config. Overwrite it with generated monitor rules only?","query_failed":"wlr-randr could not list outputs.","save_failed":"Applied, but not saved: {error}","saved":"Applied and saved to mango.","toggle_failed":"mango could not toggle the monitor."},"title":"Display","widget":{"tooltip":"Display (right-click to arrange)"}},"mango_layouts":{"custom_color_desc":"E.g. primary, on_surface, etc.","custom_color_label":"Icon/Text Color","layout_center_tile_label":"Layout: Center Tile","layout_deck_label":"Layout: Deck","layout_dwindle_label":"Layout: Dwindle","layout_fair_label":"Layout: Fair","layout_grid_label":"Layout: Grid","layout_monocle_label":"Layout: Monocle","layout_right_tile_label":"Layout: Right Tile","layout_scroller_label":"Layout: Scroller","layout_tile_label":"Layout: Tile","layout_vertical_deck_label":"Layout: Vertical Deck","layout_vertical_fair_label":"Layout: Vertical Fair","layout_vertical_grid_label":"Layout: Vertical Grid","layout_vertical_scroller_label":"Layout: Vertical Scroller","layout_vertical_tile_label":"Layout: Vertical Tile","list_mode_label":"Vertical List Mode","name_center_tile":"Center Tile","name_deck":"Deck","name_dwindle":"Dwindle","name_fair":"Fair","name_grid":"Grid","name_monocle":"Monocle","name_right_tile":"Right Tile","name_scroller":"Scroller","name_tile":"Tile","name_vertical_deck":"Vertical Deck","name_vertical_fair":"Vertical Fair","name_vertical_grid":"Vertical Grid","name_vertical_scroller":"Vertical Scroller","name_vertical_tile":"Vertical Tile","show_icon_label":"Show Icon","show_text_label":"Show Text"},"mangowm-keymode":{"settings":{"hide_on_default":{"label":"Hide on default keymode"},"notify_change":{"label":"Notify change"},"show_text":{"label":"Show text on bar"}}},"mawaqit":{"calendar":{"in_days":"in {days} days","loading":"Loading calendar…","next":"Next month","previous":"Previous month","today":"Back to today","today_label":"Today"},"panel":{"in":"in","jumuah":"Jumu'ah","loading":"Loading prayer times…","now":"Now","sunrise":"Sunrise","tabs":{"calendar":"Calendar","prayers":"Prayer Times"},"title":"Prayer Times","tooltip":{"in":"In","next":"Next","no_data":"Fetching prayer times…","time":"Time","tomorrow_fajr":"Fajr (tomorrow)"}},"plugin_description":"Prayer times with live countdown, notifications, and azan.","plugin_name":"Mawaqit","settings":{"active_color":{"description":"Color used when a prayer is happening now or in elapsed mode.","label":"Active color"},"azan_file":{"azan1":"Azan 1","azan2":"Azan 2","azan3":"Azan 3","description":"Which azan to play. Name your files azan1.mp3 / azan2.mp3 / azan3.mp3 and place them in the plugin's assets/ folder (see README).","label":"Azan audio"},"city":{"description":"Your city name in English (e.g. London).","label":"City"},"country":{"description":"Country name or 2-letter code (e.g. UK, DZ, FR).","label":"Country"},"dynamic_icon":{"description":"Show a sun/moon icon matching the current prayer instead of the fixed icon.","label":"Dynamic prayer icon"},"fajr_angle":{"description":"Fajr sun angle for Custom Method. Use a decimal greater than 0 and less than 90.","label":"Fajr angle"},"hide_prayer_name":{"description":"Show only the time or countdown without the prayer name.","label":"Hide prayer name in bar"},"hijri_day_offset":{"default":"Default (from API)","description":"Shift the displayed Hijri day if the API date doesn't match your local moon sighting.","label":"Hijri Day Adjustment","minus1":"−1 day","plus1":"+1 day"},"icon_color":{"label":"Bar icon color"},"isha_angle":{"description":"Isha sun angle for Custom Method. Use a decimal greater than 0 and less than 90.","label":"Isha angle"},"method":{"algeria":"Algeria / MESRS","custom":"Custom angles","description":"Choose the calculation authority followed in your region.","dubai":"Dubai (experimental)","egypt":"Egyptian General Authority of Survey","france":"Union Organization Islamic de France","gulf":"Gulf Region","indonesia":"KEMENAG, Indonesia","isna":"Islamic Society of North America (ISNA)","jordan":"Ministry of Awqaf, Jordan","karachi":"University of Islamic Sciences, Karachi","kuwait":"Kuwait","label":"Calculation Method","makkah":"Umm Al-Qura University, Makkah","malaysia":"JAKIM, Malaysia","moonsighting":"Moonsighting Committee Worldwide","morocco":"Morocco","mwl":"Muslim World League (MWL)","portugal":"Comunidade Islamica de Lisboa","qatar":"Qatar","russia":"Spiritual Administration of Muslims of Russia","singapore":"Majlis Ugama Islam Singapura (MUIS)","tehran":"Institute of Geophysics, Tehran","tunisia":"Tunisia","turkey":"Diyanet İşleri Başkanlığı, Turkey"},"play_azan":{"description":"Play an azan audio file when each prayer time begins.","label":"Play Azan"},"school":{"description":"Shafi/Maliki/Hanbali uses shadow factor 1. Hanafi uses factor 2, giving a later Asr.","hanafi":"Hanafi","label":"Asr Calculation School","shafi":"Shafi / Maliki / Hanbali (default)"},"show_countdown":{"description":"Show a live countdown to the next prayer instead of the static time.","label":"Show countdown"},"show_elapsed":{"description":"After a prayer begins, count up (+) for up to 1 hour.","label":"Show elapsed time after prayer"},"show_notifications":{"description":"Show a system notification when each prayer time begins.","label":"Prayer notifications"},"text_color":{"label":"Bar text color"},"tune":{"description":"Apply per-prayer minute adjustments to fine-tune times.","label":"Enable per-prayer time offsets"},"tune_asr":{"label":"Asr offset (minutes)"},"tune_dhuhr":{"label":"Dhuhr offset (minutes)"},"tune_fajr":{"label":"Fajr offset (minutes)"},"tune_isha":{"label":"Isha offset (minutes)"},"tune_maghrib":{"label":"Maghrib offset (minutes)"},"twelve_hour_format":{"description":"Show prayer times in 12-hour format (e.g. 5:23 AM) instead of 24-hour.","label":"12-Hour Format"},"week_start_day":{"description":"Choose which day starts the calendar week.","label":"First day of week","monday":"Monday","saturday":"Saturday","sunday":"Sunday"},"widget_icon":{"label":"Bar icon"}}},"media-island":{"panel":{"close":"Close Media Island","next":"Next track","no-media":"Nothing playing","no-media-detail":"Start playback in an MPRIS-compatible media app.","pause":"Pause","play":"Play","previous":"Previous track"},"settings":{"auto-show":{"description":"Briefly show the island when playback starts or the current track changes.","label":"Show on playback changes"},"preview-seconds":{"description":"How many seconds an automatic island preview remains visible.","label":"Preview duration"}},"tooltip":{"artist":"Artist","paused":"Paused","playback":"Playback","playing":"Playing","title":"Title"},"widget":{"no-media":"Media","open-island":"Open Media Island","unknown-title":"Unknown title"}},"media-lyrics":{"common":{"no-title":"(no title)","unknown-artist":"Unknown artist"},"panel":{"choose-lyrics":"Lyrics variants","loading-lyrics":"Loading lyrics…","lyrics-error":"Lyrics error: ","no-lyrics":"No lyrics found","no-media-player":"No media player","no-variants":"No alternative lyrics found","now-playing":"NOW PLAYING","reload-lyrics":"Reload lyrics","synced":"synced","unsynced":"unsynced","variant-default":"Default"},"provider":{"cache":"Cache","embedded":"Embedded","local":"Local"},"service":{"lyrics-unreachable":"LRCLIB unreachable (network error)"},"settings":{"album_art_only":{"description":"Show only the album artwork (no text).","label":"Album art only"},"art_size":{"description":"Album artwork size in pixels.","label":"Art size"},"artist_first":{"description":"Show \"Artist - Title\" instead of \"Title - Artist\".","label":"Artist first"},"hide_album_art":{"description":"Hide the artwork and its fallback icon.","label":"Hide album art"},"hide_artist":{"description":"Show only the track title.","label":"Hide artist"},"hide_when_no_media":{"description":"Hide the widget when no MPRIS player is active.","label":"Hide when no media"},"local_lyrics_dir":{"description":"Folder with local .lrc files named 'Artist - Title.lrc'; searched before LRCLIB.","label":"Local lyrics folder"},"max_length":{"description":"Maximum widget length in pixels — the text area width (long titles scroll or truncate to fit it).","label":"Max length"},"min_length":{"description":"Minimum widget length in pixels.","label":"Min length"},"offset_ms":{"description":"Shift lyric timing: positive values show lines earlier, negative later.","label":"Lyrics offset (ms)"},"panel_size":{"description":"Size preset of the lyrics panel: compact (440), medium (520), large (640). The bar widget and control-center tile open this preset.","label":"Panel size","options":{"compact":"Compact (440)","large":"Large (640)","medium":"Medium (520)","mini":"Mini"}},"player_allowlist":{"description":"Comma-separated player names (identity or bus name). When set, only matching players are shown. Empty = show any player.","label":"Player allowlist"},"player_blocklist":{"description":"Comma-separated player names (identity or bus name) to hide. Empty = hide none.","label":"Player blocklist"},"show_lyric_line":{"description":"Show the current synced lyric line in the chip instead of the artist (title stays).","label":"Show current lyric line"},"title_scroll":{"description":"Scroll long titles that exceed the max length.","label":"Title scroll","options":{"always":"Always","none":"None","on_hover":"On hover"}},"use_cache":{"description":"Store fetched lyrics in the plugin data directory for offline reuse.","label":"Cache lyrics"}}},"mihomo-control":{"notify":{"connections_closed":"All connections closed","delay_all_done":"All groups tested","delay_body":"{count} nodes tested, selected {delay} ms","delay_body_no_selection":"{count} nodes tested","delay_done":"Latency test finished","delay_timeout":"All nodes timed out (504) — check the test URL","mode_changed":"Mihomo mode changed","proxy_selected":"Proxy selected","proxy_selected_body":"{group} → {proxy}","request_failed":"Mihomo request failed","restarting":"Mihomo is restarting","self_test_failed":"Mihomo self-test failed","self_test_failed_body":"See Noctalia logs or mihomo.self_test state for details.","self_test_passed":"Mihomo self-test passed","self_test_passed_body":"Group ordering and service checks succeeded.","server_delete_last":"Keep at least one server profile","server_deleted":"Server profile deleted","server_invalid":"Check the server name, host, and port","server_saved":"Server profile saved","server_switched":"Monitoring server switched"},"panel":{"connections":"connections","delay_test":"Test latency","drag_group":"Drag to reorder","hidden":"hidden","members_count":{"one":"{count} member","other":"{count} members"},"memory":"RAM","mode_direct":"Direct","mode_global":"Global","mode_rule":"Rule","no_groups":"No proxy groups found.","no_members":"no members","offline_plain":"{endpoint}","offline_with_error":"{error}","online_plain":"{endpoint}","online_with_version":"{version} · {endpoint}","proxy_groups":"Proxy groups","refresh":"Refresh","refresh_tooltip":"Refresh data (right-click to reload plugin)","restart":"Restart","server":"Server","server_add":"Add server","server_cancel":"Cancel","server_default":"Default","server_delete":"Delete","server_edit":"Edit server","server_manage":"Manage","server_name":"Profile name","server_save":"Save","server_secret_keep":"Leave blank to keep the current secret","status_connecting":"Connecting","status_offline":"Offline","status_online":"Online","test_all":"Test all","timeout":"timeout","title":"Mihomo Control","traffic":"Traffic"},"settings":{"allow_insecure_tls":{"description":"Skip certificate verification when the controller uses a self-signed certificate.","label":"Allow insecure TLS"},"host":{"description":"Hostname or IP of the Mihomo external controller.","label":"Host"},"icon_color":{"description":"Color of the tintable Mihomo glyph.","label":"Icon color"},"icon_color_mode":{"description":"Color the Mihomo glyph by connection status or use one custom color.","label":"Icon color mode","options":{"custom":"Custom","status":"Connection status"}},"icon_size":{"description":"Size of the bar icon in pixels (10–32).","label":"Icon size"},"label_content":{"description":"Choose what is shown beside the Mihomo icon.","label":"Widget label","options":{"connections":"Connection count","download":"Download speed","latency":"First group latency","mode":"Proxy mode","none":"None (icon only)","proxy":"First group selection","traffic":"Download + upload","upload":"Upload speed"}},"panel_placement":{"description":"Choose whether the control panel opens centered on screen or attached to the bar widget.","label":"Panel placement","options":{"attached":"Attached","floating":"Floating"}},"port":{"description":"Port of the Mihomo external controller (9090 by default).","label":"Port"},"refresh_interval":{"description":"Seconds between status polls (1–60).","label":"Refresh interval"},"secret":{"description":"External-controller secret from your Mihomo config; empty when authentication is disabled.","label":"Secret"},"test_url":{"description":"URL used for latency tests; empty uses each group's configured test URL.","label":"Test URL"},"use_https":{"description":"Connect with https:// instead of http:// (external-controller-tls or a TLS reverse proxy).","label":"HTTPS"}},"shortcut":{"label":"Mihomo: {mode}","mode_direct":"Direct","mode_global":"Global","mode_rule":"Rule"},"widget":{"connections":"Connections","connections_short":"{count} conn","down":"Down total","latency_timeout":"timeout","mode":"Mode","status":"Status","status_connecting":"Connecting","status_offline_plain":"Offline","status_offline_with_error":"Offline — {error}","status_online_plain":"Online","status_online_with_version":"Online · {version}","up":"Up total"}},"mimir":{"clear":"Clear","input_placeholder":"Ask me anything...","send":"Send","settings":{"api_endpoint":{"description":"Base URL for the API (default Ollama uses http://localhost:11434/v1)","label":"API Endpoint"},"api_key":{"description":"API key for hosted providers (stored locally and never shared)","label":"API Key"},"default_model":{"description":"Model to use on startup and after Clear (must match a model id from the endpoint, e.g. glm-5.3). Empty = first model the endpoint lists","label":"Default Model"},"glyph":{"label":"Bar Icon"},"max_history":{"description":"Number of messages to keep in conversation context","label":"Max History"},"mode":{"deep":"Deep — Exhaustive search, multi-step reasoning","description":"How deeply the AI thinks before responding","fast":"Fast — Quick answers, minimal tools","label":"Thinking Mode","normal":"Normal — Balanced reasoning and tools"},"model_name":{"deepseek_flash":"DeepSeek V4 Flash (fast, cheap)","deepseek_pro":"DeepSeek V4 Pro (powerful)","description":"OpenCode Go model to use","glm52":"GLM-5.2","grok45":"Grok 4.5","kimi_code":"Kimi K2.7 Code","label":"Model"},"show_commands":{"description":"Show executed commands in the chat","label":"Show Commands"},"tool_blocklist":{"description":"Comma-separated commands never allowed","label":"Blocked Commands"},"tool_permission":{"allow":"Allow — Run automatically","ask":"Ask — Prompt before every command","description":"When the AI can run terminal commands","label":"Tool Permission","off":"Off — No tools"},"web_search_enabled":{"description":"Allow Mimir to use DuckDuckGo search and fetch public pages","label":"Web Search"}},"status_error":"Error","status_idle":"Idle","status_offline":"Offline","status_online":"Online","status_thinking":"Thinking...","status_tool":"Running command...","title":"Mimir","tooltip":"Mimir AI — {status}"},"mini-docker":{"actions":{"cancel":"Cancel","close":"Close","refresh":"Refresh","remove":"Remove","restart":"Restart","run":"Run","select":"Select","start":"Start","stop":"Stop"},"colors":{"default":"Default","error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","success":"Success","tertiary":"Tertiary"},"details":{"created":"Created: {value}","driver":"Driver: {value}","id":"ID: {value}","image":"Image: {value}","mountpoint":"Mountpoint: {value}","ports":"Ports: {value}","scope":"Scope: {value}","size":"Size: {value}","status":"Status: {value}"},"panel":{"busy":"Docker command in progress…","default_network":"Built-in network","image_in_use":"Used by a container","image_unused":"Not used by a container","loading":"Loading Docker state…","no_containers":"No containers found.","no_images":"No images found.","no_networks":"No networks found.","no_volumes":"No volumes found.","select_hint":"Select an item to see available actions.","showing_limit":"Showing the first {count} items.","updated":"Last updated: {time}"},"result":{"command_busy":"Another Docker command is still running.","docker_missing":"The Docker CLI is not installed.","docker_unreachable":"Could not reach the Docker daemon.","failed":"Docker command failed: {error}","success":"Docker command completed."},"run_form":{"container_name":"Container name (optional)","container_name_placeholder":"my-container","environment":"Environment variables","environment_help":"Enter one KEY=value pair per line.","environment_placeholder":"KEY=value\nANOTHER_KEY=value","invalid_environment":"Invalid environment-variable line: {line}","invalid_name":"Container names may contain letters, numbers, dots, underscores, and hyphens.","invalid_port":"Port must be a number from 1 to 65535.","network":"Network","port":"Host and container port","port_placeholder":"8080","publish_port":"Publish a port","title":"Run {image}"},"settings":{"active_color":{"description":"Color used when at least one container is running.","label":"Active indicator color"},"default_network":{"description":"Network selected when running an image.","label":"Default network"},"glyph_color":{"description":"Theme color used by the Docker icon.","label":"Icon color"},"inactive_color":{"description":"Color used when no containers are running.","label":"Inactive indicator color"},"refresh_interval":{"description":"How often Mini Docker refreshes Docker state, in seconds.","label":"Refresh interval"},"show_count":{"description":"Show the number of running containers beside the Docker icon.","label":"Show running count"},"status_mode":{"description":"Choose when the status dot is visible.","label":"Status indicator","options":{"always":"Always","hidden":"Hidden","running_only":"Only while containers are running"}}},"tabs":{"containers":"Containers","images":"Images","networks":"Networks","volumes":"Volumes"},"title":"Mini Docker","widget":{"refresh_requested":"Docker refresh requested","running":"Running containers: {count}","unavailable":"Docker is not available"}},"misr-quran-radio":{"bar":{"confirm_title":"Unconfirmed change","idle":"Quran","live":"Live"},"notify":{"play_failed":"Could not start playback"},"panel":{"busy":"Working…","copied":"Stream URL copied.","copy":"Copy stream URL","empty":"No schedule yet — press refresh.","now":"On now","play":"Play","playing":"Playing the live stream.","refresh":"Refresh schedule","schedule":"Today's programmes","site":"Station site","site_unavailable":"xdg-open is not installed, the site cannot be opened.","stop":"Stop","stopped":"Stopped.","unavailable":"mpv is not on PATH — install mpv for playback."},"settings":{"glyph":{"label":"Glyph"},"refresh_minutes":{"description":"Minutes between programme schedule fetches.","label":"Schedule refresh"},"show_text":{"description":"Show Live / Quran next to the icon.","label":"Show status text"},"stream_url":{"description":"Live HLS stream. Leave the default unless the station moves it.","label":"Stream URL"}},"title":"Holy Quran Radio","tooltip":{"error":"Error","now":"On now","open":"Open Misr Quran Radio","schedule":"Programmes","status":"Status","time":"Time"}},"mx-control":{"accel":{"mac":"macOS-style","system":"System default"},"caption":{"action":"Action","mode":"Mode","mode_locked":"Mode · used by a shortcut"},"error":{"draft":{"needs_default":"Save an All apps shortcut for this button first, so it also works outside this app.","no_app":"Enter the app's Hyprland window class, or pick All apps.","no_control":"Choose a button.","no_gesture":"This button does not support directional gestures.","not_regular":"Set this button's Mode to Regular in Buttons & Actions first."},"shortcut":{"empty":"Enter at least one shortcut.","key":"Use a key name such as C, Return, space or XF86AudioPlay after the modifiers.","modifier":"Modifiers are CTRL, ALT, SHIFT and SUPER.","no_key":"A shortcut needs a key after its modifiers.","too_many":"Use at most 8 steps."}},"gesture":{"down":"Down","left":"Left","right":"Right","up":"Up"},"hint":{"no_access":"Solaar's udev rules apply on reconnect: turn the mouse off and on, or run `sudo udevadm trigger`.","no_solaar":"Install it with `sudo pacman -S solaar`, then turn the mouse off and on."},"mode":{"gesture":"Directional gestures","shortcut":"Shortcut or sequence"},"panel":{"confirm_switch":"Click to confirm","connection":"Connection","empty_slot":"Empty","empty_tab":"This device has no settings here.","host":"Host","hosts_hint":"Switching sends the device to that computer. Use its Easy-Switch button to come back.","no_hosts":"This device has no Easy-Switch hosts.","offline":"Offline","offline_hint":"Turn the device on or wake it to change its settings.","reading":"Reading settings…","refresh":"Read again from the device","switch":"Switch","this_computer":"This computer"},"pointer":{"acceleration":"Pointer acceleration","acceleration_hint":"macOS-style gives slow movements precision and fast ones reach, scaled to the DPI. It is applied through Hyprland's input settings for this mouse."},"preset":{"back":"Back","copy":"Copy","next_tab":"Next tab","paste":"Paste","undo":"Undo"},"profiles":{"apply":"Apply","confirm_delete":"Click to confirm","delete":"Delete","name_placeholder":"Profile name","none":"No saved profiles for this device yet.","overwrite":"Overwrite","save":"Save","save_hint":"A profile stores this device's hardware settings and pointer acceleration. Saving under an existing name replaces it."},"section":{"assignments":"Assigned shortcuts","buttons":"Buttons","edit_shortcut":"Edit shortcut","hosts":"Easy-Switch hosts","new_shortcut":"New shortcut","other":"Other","pointer":"Pointer","profiles":"Saved profiles","save_profile":"Save current settings","scroll":"Scroll wheel","thumb":"Thumb wheel"},"settings":{"show_value":{"description":"Show the battery percentage next to the mouse icon.","label":"Show battery level"}},"shortcuts":{"all_apps":"All apps","app_placeholder":"Hyprland window class, e.g. google-chrome","application":"Application","button":"Button","cancel":"Cancel","choose_button":"Choose a button","click":"Click","click_action":"Click action","confirm_remove":"Removes overrides too","control":"Control","edit":"Edit","gesture_placeholder":"No action","gestures":"Gestures","help":"Shortcuts go to the focused app. Gestures run when the button is released; a small movement counts as a click. Leave a direction empty to do nothing. Add an app override after saving the button's All apps shortcut.","mode":"Mode","no_hyprland":"Shortcuts need Hyprland, and no Hyprland session was found.","none":"No shortcuts assigned to this device.","other_app":"Another app…","remove":"Remove","save":"Save shortcut","steps":"Shortcut steps","steps_placeholder":"CTRL+c — one shortcut per line, up to 8","unsupported":"This device has no buttons that can run software shortcuts.","update":"Update shortcut"},"state":{"no_access":"Found a Logitech device but cannot open it.","no_devices":"No MX devices found.","no_solaar":"Solaar is not installed.","stale":"The MX helper is not responding.","starting":"Starting the MX helper…"},"tab":{"buttons":"Buttons & Actions","hosts":"Easy-Switch","point":"Point & Scroll","profiles":"Profiles","shortcuts":"Shortcuts"}},"nan-usage":{"panel":{"cached":"cached","consumption":"Consumption","contributions":"Where it went","copied":"The address is in your clipboard","copy_failed":"Could not copy the address","no_data":"No data yet","no_opener_copied":"No browser opener installed, so the address is in your clipboard","no_usage":"No usage in this period","open_failed":"Could not open the NaN panel","overall":"Overall","period":"Period","recent":"{label}: {value}","resets_in":"resets in {when}","title":"NaN Usage","tooltip_refresh":"Refresh now","tooltip_settings":"Settings","tooltip_site":"Copy the NaN panel address (cloud.nan.builders)","waiting":"Waiting for the first poll…","waiting_hint":"The poller runs inside Noctalia. If this stays empty, check the API key path in the settings."},"settings":{"api_key":{"description":"The file holding your NaN API key.","label":"API key file"},"glyph":{"description":"The glyph to draw when Show a glyph is on.","label":"Glyph"},"hide_unused":{"description":"Drop models with no usage from the panel's list.","label":"Hide unused models"},"icon_style":{"color":"Colour","description":"Ghost draws the mark in the theme's own ink, white on a dark theme and black on a light one; color draws it as NaN does.","ghost":"Ghost (themed)","label":"Logo style"},"interval":{"description":"Seconds between requests to the NaN API.","label":"Poll interval (seconds)"},"left_click":{"description":"Open the panel, or do nothing. A right click opens these settings.","label":"What a left click does","nothing":"Nothing","panel":"Open the panel"},"panel_gauge":{"bar":"A bar","description":"Draw a bar beside the text, or nothing at all.","label":"Gauge","none":"No gauge, text only"},"panel_model":{"description":"Which model the bar reflects.","fixed":"A pinned model","label":"Which model the bar shows","max":"The fullest","worst":"The most alarming"},"panel_model_id":{"description":"The model id to pin, spelled as the API does (deepseek-v4-flash).","label":"Pinned model"},"show_glyph":{"description":"Draw a glyph before the text.","label":"Show a glyph"},"show_icon":{"description":"Draw the NaN logo before the text.","label":"Show the NaN logo"},"show_metrics":{"description":"Add the account-wide 24 h, month and 30 d totals to the panel and the tooltip. It costs one more request per poll.","label":"Show consumption totals"},"show_model":{"description":"Which model the percentage belongs to, abbreviated (ds4f for deepseek-v4-flash).","label":"Show the model"},"show_percentage":{"description":"The usage figure in the bar.","label":"Show the percentage"},"show_reset":{"description":"How long until the quota resets, next to the percentage.","label":"Show the countdown"},"show_tooltip":{"description":"Show a line per model, with tokens used against the cap and the countdown, when you hover the widget.","label":"Details in the tooltip"},"site_action":{"copy":"Copy the address","description":"Open NaN's dashboard in your browser, through gio or xdg-open, or copy the address instead.","label":"What the link button does","open":"Open in the browser"}}},"ncs-visualizer":{"notify":{"no_orb":"Place an NCS Visualizer widget on the desktop first (desktop widget editor).","off":"NCS Visualizer off","on":"NCS Visualizer on"},"settings":{"audio_source":{"description":"PipeWire/PulseAudio source for CAVA. Empty uses the default output (what you hear)","label":"Audio source"},"color":{"label":"Orb colour"},"color_source":{"description":"Follow the Noctalia theme (changes with your wallpaper) or pick a fixed colour","label":"Colour","options":{"custom":"Custom","theme":"Theme"}},"dot_density":{"description":"Dots per side of the grid. Original is 322 (103,684 dots); lower is lighter on the GPU","label":"Dot density","options":{"low":"Low (25,600)","medium":"Medium (57,600)","original":"Original (103,684)","ultra":"Ultra (160,000)"}},"dot_scale":{"label":"Dot size"},"flow_speed":{"label":"Flow speed"},"fps":{"description":"Higher is smoother but costs more GPU","label":"Frame rate","options":{"30":"30 fps","60":"60 fps","120":"120 fps"}},"glow_color":{"label":"Glow colour"},"glow_mode":{"description":"Colour of the soft glow around the dots","label":"Glow","options":{"custom":"Custom","same":"Same as the orb","theme":"Theme colour"}},"glow_scale":{"label":"Glow strength"},"glow_theme_role":{"label":"Glow theme colour"},"hide_when_idle":{"description":"Fade the orb out while nothing is playing","label":"Hide when silent"},"idle_seconds":{"description":"Seconds without sound before the orb stops moving (and hides, if enabled)","label":"Silence timeout (s)"},"layer":{"description":"Behind windows like other desktop widgets, or always on top of them","label":"Layer","options":{"bottom":"Behind windows","top":"Above windows"}},"motion_model":{"description":"Original matches spicetify-visualizer exactly; Aurora adds a spring and punches on each beat","label":"Motion","options":{"aurora":"Aurora (beat punch)","original":"Original"}},"noise_reduction":{"description":"CAVA noise reduction, 0-100. Higher is smoother but slower to react","label":"Smoothing"},"opacity":{"label":"Opacity"},"orb_scale":{"description":"Size of the orb inside the widget box","label":"Orb size"},"punch":{"description":"How hard the orb pops on each beat","label":"Beat punch"},"renderer_path":{"description":"Path to the aurora-ncs binary. Empty searches PATH and ~/.local/bin","label":"Renderer path"},"sensitivity":{"description":"How strongly the orb reacts to the audio level","label":"Sensitivity"},"theme_role":{"label":"Theme colour","options":{"primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"}}},"shortcut":{"label":"NCS Visualizer"},"widget":{"crashed":"Renderer keeps exiting","crashed_hint":"Run aurora-ncs --config {path} in a terminal to see why.","disabled":"NCS Visualizer is off","disabled_hint":"Turn it on from the Control Center tile.","missing_cava":"CAVA not installed","missing_cava_hint":"Install the cava package to capture audio.","missing_renderer":"Renderer not installed","missing_renderer_hint":"Install aurora-ncs - see the plugin page for the one-line build."}},"network-control":{"bar":{"confirm_body":"seconds left","confirm_title":"Unconfirmed change","offline":"offline"},"error":{"address":{"ipv4":"Not a valid IPv4 address: {value}","ipv6":"Not a valid IPv6 address: {value}"},"dns":{"ipv4":"Not a valid IPv4 name server: {value}","ipv6":"Not a valid IPv6 name server: {value}"},"form":"The form could not be read.","gateway":{"ipv4":"Not a valid IPv4 gateway: {value}","ipv6":"Not a valid IPv6 gateway: {value}"},"gateway_needs_address":{"ipv4":"A gateway needs an address: add one or clear the gateway.","ipv6":"A gateway needs an address: add one or clear the gateway."},"method":"Unsupported addressing method: {value}","need_address":{"ipv4":"A static IPv4 address is required for this method.","ipv6":"A static IPv6 address is required for this method."},"search":"Not a valid search domain: {value}","secret_file":"The passphrase file could not be prepared, so the network was not joined","ssid":"Enter a network name first.","stuck":"The last operation never reported back, so it was abandoned. Nothing is stuck: try again."},"field":{"ipv4_addresses":"Addresses","ipv4_dns":"DNS servers","ipv4_dns_search":"Search domains","ipv4_gateway":"Gateway","ipv4_method":"Addressing","ipv6_addresses":"Addresses","ipv6_dns":"DNS servers","ipv6_dns_search":"Search domains","ipv6_gateway":"Gateway","ipv6_method":"Addressing"},"method":{"auto":"Automatic (DHCP)","disabled":"Disabled","ignore":"Ignored (leave as is)","link_local":"Link-local only","manual":"Manual (static)","unknown":"Unknown"},"notify":{"applied":"Settings written","backup_failed":"The previous settings could not be saved, so nothing was written","cleanup_failed":"The failed network's profile could not be removed","confirm_body":"{name}: keep the change within {seconds}s or the previous settings are restored.","confirm_title":"Confirm the new settings","down_failed":"The connection could not be taken down","invalid":"Settings not applied","kept":"Settings kept","mod_failed":"NetworkManager refused the settings","no_changes":"Nothing to change","radio_failed":"The radio could not be switched","resumed":"An unconfirmed change was still pending — resuming its countdown","revert_failed":"The previous settings could not be restored","reverted":"Previous settings restored","reverted_failed":"The connection did not come up — previous settings restored","reverted_timeout":"Not confirmed — previous settings restored","reverting":"Restoring the previous settings…","scan_failed":"The scan failed","stale":"The connection is no longer selected — refresh and try again.","stuck":"A network operation stopped responding","up_failed":"The connection did not come up","wifi_connected":"Joined","wifi_failed":"Could not join the network"},"panel":{"active":"active","apply":"Apply","backup":"Restore point: {summary} ({time})","busy":"Working…","changes":"{count} property change(s) to write","confirm_note":"Writes go to the NetworkManager profile. After the connection comes back up you have {seconds}s to keep the change before it is rolled back.","confirm_note_off":"Writes are applied immediately: confirm_seconds is 0, so there is no rollback window.","connect":"Connect","connections":"Connections","disconnect":"Disconnect","edit":"Addressing","empty":"—","ipv6_hint":"IPv6 addresses take a prefix; a bare address gets /64.","keep":"Keep","live_device":"Device","live_dns":"DNS","live_gateway":"Gateway","live_ipv4":"Address","live_ipv6":"IPv6","no_changes":"No changes to write.","no_connections":"NetworkManager has no editable connection profiles.","no_device":"no device","no_live":"The device is not reporting addresses right now.","offline":"No route to the network.","pending":"{name} was changed. Keeping it in {seconds}s, otherwise the previous settings are restored.","permission":"NetworkManager needs authorization to modify system connections; changes will be refused.","permission_unknown":"Checking NetworkManager permissions…","primary":"{name} on {device} — {address}","profile_hint":"Addresses take a prefix; a bare address gets /24.","refresh":"Refresh","reset":"Reset","restore":"Restore","revert_now":"Revert","unavailable":"nmcli is not on PATH — NetworkManager is required.","wifi_radio":"Wi-Fi radio"},"settings":{"confirm_seconds":{"description":"How long to wait for confirmation after a change before the previous settings are restored. 0 writes changes immediately.","label":"Confirm window (seconds)"},"glyph":{"description":"Glyph used when no interface is up","label":"Glyph"},"refresh_seconds":{"description":"How often the stored profile and the live addresses are re-read.","label":"Refresh interval (seconds)"},"show_text":{"description":"Show the default route's address next to the glyph","label":"Show address"}},"title":"Network Control","tooltip":{"connection":"Connection","device":"Device","dns":"DNS","gateway":"Gateway","ipv4":"IPv4","ipv6":"IPv6","offline":"No route to the network.","open":"Open Network Control"},"wifi":{"age_min":"scanned {minutes} min ago","aps":"{count} APs","cancel":"Cancel","connect":"Connect","connected":"Connected","empty":"not scanned","empty_hint":"Press Scan to look for networks.","enterprise":"802.1X networks need an identity and a certificate — set those up with nmcli or nm-connection-editor.","enterprise_short":"802.1X, manual setup","found":"{count} networks","manual":"Join a hidden network","manual_placeholder":"Network name","needs_password":"This network needs a password.","open":"open","password":"Password","password_placeholder":"Wi-Fi password","radio_off":"The Wi-Fi radio is off — switch it on above to scan.","saved":"saved","scan":"Scan for networks","scanning":"Scanning…","section":"Wi-Fi networks","toggle":"Show or hide the network list","wep":"WEP is obsolete and not supported here — set it up with nmcli if you must."}},"network-toolkit":{"errors":{"bluetoothctl_not_found":"bluetoothctl is not installed","missing_command":"Missing required command dependencies (nmcli/ip)","nmcli_not_found":"NetworkManager (nmcli) is not installed"},"notifications":{"connect_failed":"Failed to connect to {ssid}","connected_to":"Connected to {ssid}","dns_switch_failed":"Failed to switch DNS","dns_switched":"DNS switched to {provider}","incorrect_password":"Failed to connect to {ssid}: Incorrect password"},"panel":{"accept":"Accept","apply":"Apply","available_devices":"AVAILABLE DEVICES","available_networks":"AVAILABLE","bluetooth":"Bluetooth","bt_off":"Bluetooth is turned off","bt_prefix":"BT:","bt_scanning":"Scanning for devices...","connect":"Connect","connected_devices":"CONNECTED DEVICES","connected_devices_ratio":"CONNECTED DEVICES ({count}/{max})","connecting":"Connecting...","current_connection":"Current Connection","custom_dns_placeholder":"Custom DNS (e.g. 1.1.1.1 8.8.8.8)","discoverable":"Discoverable","dns_prefix":"DNS:","dns_service":"DNS Server","generating_qr":"Generating QR code...","hotspot":"Hotspot","hotspot_inactive_tip":"Hotspot is inactive.","no_bt_devices":"No Bluetooth devices found","no_devices":"No devices connected","no_networks":"No networks found","off":"OFF","on":"ON","pair":"Pair","paired_devices":"PAIRED DEVICES","pairing_passkey":"Passkey: {key}","pairing_request_msg":"{name} requested to pair","password_for":"Password for","password_placeholder":"Enter Wi-Fi Password...","reject":"Reject","saved_networks":"SAVED","scan_to_connect":"Scan to connect to Wi-Fi","scanning":"Scanning available networks...","system_default":"Default (ISP)","wifi":"Wi-Fi","wifi_off":"Wi-Fi is turned off"},"settings":{"color":{"description":"Custom color token or hex for the status bar widget icon.","label":"Widget Icon Color"},"custom_dns_1":{"description":"Format: Name = IP1 IP2 (e.g. NextDNS = 45.90.28.0 45.90.30.0). Only appears in DNS menu when filled.","label":"Custom DNS Slot 1"},"custom_dns_2":{"description":"Format: Name = IP1 IP2 (e.g. Mullvad = 194.242.2.4). Only appears in DNS menu when filled.","label":"Custom DNS Slot 2"},"custom_dns_3":{"description":"Format: Name = IP1 IP2 (e.g. ControlD = 76.76.2.0). Only appears in DNS menu when filled.","label":"Custom DNS Slot 3"},"hotspot_max_connections":{"description":"Maximum number of simultaneously connected devices.","label":"Max Hotspot Connections"},"hotspot_password":{"description":"Password required for devices to connect (minimum 8 characters).","label":"Hotspot Password"},"hotspot_ssid":{"description":"Network name broadcasted by your Wi-Fi hotspot.","label":"Hotspot Name / SSID"},"refreshinterval":{"description":"How often the background service updates network state.","label":"Refresh Interval (Seconds)"},"text_color":{"description":"Custom color token (e.g. primary, on_surface) or hex for the widget text.","label":"Widget Text Color"},"widget_display_mode":{"bluetooth":"Bluetooth","bluetooth_dns":"Bluetooth + DNS","description":"Choose what information is displayed on the status bar widget.","dns":"DNS","label":"Widget Display Mode","network":"Network (Default)","network_bluetooth":"Network + Bluetooth","network_bluetooth_dns":"Network + Bluetooth + DNS","network_dns":"Network + DNS","network_hotspot":"Network + Hotspot","network_hotspot_bluetooth_dns":"Network + Hotspot + Bluetooth + DNS"},"widget_indicator_dots":{"description":"Choose which status indicator dots appear on the bar widget.","dns":"DNS Only","hotspot":"Hotspot Only","hotspot_dns":"Hotspot + DNS","label":"Widget Status Dots","none":"Disabled"},"widget_right_click":{"description":"Action performed when right-clicking the bar widget.","label":"Widget Right-Click Action","toggle_bt":"Toggle Bluetooth","toggle_hs":"Toggle Hotspot","toggle_wifi":"Toggle Wi-Fi"}},"status":{"disconnected":"Disconnected","ethernet":"Ethernet","hotspot_active":"Hotspot Active","wifi":"Wi-Fi"},"title":"Network Toolkit","tooltip":{"action_switch":"Switch view / Toggle","action_toggle":"Quick toggle","band":"Band","bluetooth":"Bluetooth","dns":"DNS","left_click":"Left-click","network":"Network","right_click":"Right-click","speed":"Speed"}},"nextboot-selector":{"notification":{"failed_to_set_next_boot":"Failed to set next boot","timed_out":"Timed out"},"panel":{"reset":"Reset","title":"Next Boot Selector"},"setting":{"close_on_select":{"description":"Whether to close the panel after selecting an entry","label":"Close on select"},"excluded_keywords":{"description":"Keywords to exclude entries (case insensitive)","label":"Excluded keywords"},"privilege_command":{"description":"Command to escalate the privilege of the efibootmgr command","label":"Privilege command"},"reboot_command":{"description":"Command to be executed when reboot on select is enabled","label":"Reboot command"},"reboot_on_select":{"description":"Whether to automatically reboot after selecting an entry","label":"Reboot on select"}}},"nightscout-monitor":{"settings":{"host":{"description":"Nightscout URL (https://your.domain.here/)","label":"Nightscout URL"},"interval":{"description":"API update interval in seconds","label":"Nightscout Update Interval (s)"},"secret":{"description":"Nightscout API secret or access token","label":"API Secret"},"unit":{"description":"Unit to display blood glucose level","label":"Blood Glucose Unit","mg":"mg/dL","mmol":"mmol/L"}}},"niri-active-workspace":{"plugin_description":"Shows only the focused niri workspace in the bar.","plugin_name":"Niri Active Workspace","settings":{"glyph":{"description":"Icon shown before the label.","label":"Icon"},"label_mode":{"both":"Index and name","description":"What to show for the focused workspace.","index":"Index only","label":"Label","name":"Name only","name_or_index":"Name, or index when unnamed"},"show_position":{"description":"Append the focused workspace's position, e.g. 3/5.","label":"Show position"}}},"niri-animations":{"animations_off":"Animations off","animations_on":"Animations on","no_preset":"No preset (base pack)","preset":"Preset","random":"Random","settings":{"include_prefix":{"description":"Path prefix written in the include line, relative to the target file","label":"Include prefix"},"presets_dir":{"description":"Folder scanned for .kdl animation presets","label":"Presets directory"},"reload_command":{"description":"Run after writing, so the compositor picks up the change","label":"Reload command"},"target_file":{"description":"File rewritten with the chosen preset and speed. Your niri config must include it after the base animations.","label":"Target file"}},"shortcut_label":"Animations","speed":"Speed","speed_hint":"above 1 is slower","status_base_pack":"Base pack","status_off":"Animations disabled.","status_presets_found":"presets in","status_read_error":"Could not read","status_write_error":"Could not write","title":"Niri Animations"},"niri-displays":{"error":{"command":"Niri rejected the display change.","mode_missing":"No refresh rate is available for that resolution.","niri_missing":"The niri executable was not found in PATH.","outputs":"Could not query outputs from Niri.","parse_outputs":"Niri returned output data that could not be parsed.","timeout":"Niri did not respond in time.","title":"Couldn't read Niri displays"},"panel":{"apply":"Apply","disabled":"Disabled","empty":"Niri reports no connected displays.","enabled":"Enabled","focused":"Focused","last_display":"Only display","layout":"Display layout","loading":"Reading displays from Niri…","more_displays":"…and {count} more displays","position":"Position","position_auto":"Auto","position_offset":"Offset","preset_match":"Auto scale for {resolution}: {scale}×","refresh_rate":"Refresh rate","resolution":"Resolution","retry":"Retry","rotation":"Rotation","scale":"Scale","subtitle":"Configure your display outputs in Niri","temporary_note":"Changes use Niri's temporary output IPC and are not written to your Niri config.","updated":"Updated {time}"},"settings":{"glyph":{"label":"Bar glyph"},"refresh_interval":{"description":"Recovery polling interval. Output changes normally refresh immediately through Noctalia's output hook, and focused-display changes are tracked reactively.","label":"Fallback refresh interval (seconds)"},"scale_presets":{"description":"Automatically apply a scale after a resolution change. Use WIDTHxHEIGHT=SCALE for every display or PORT:WIDTHxHEIGHT=SCALE for one port. Examples: 3840x2160=1.5 · DP-3:1920x1080=1","label":"Resolution scale presets"},"show_resolution":{"description":"Show the focused display's port and current resolution beside the bar icon. Disable for an icon-only widget.","label":"Show display details"}},"title":"Niri Displays"},"niri-media-idle":{"error":{"command_failed":"The bridge service command failed.","command_not_started":"The bridge service command could not be started.","plugin_directory":"The plugin directory is unavailable.","unexpected_state":"The bridge service returned an invalid status response."},"notification":{"failed":{"body":"The bridge service has failed. Use the widget to reset and start it.","title":"Bridge service failed"},"started":{"body":"The bridge is active. Check the widget for the current idle-protection status.","title":"Bridge service started"},"stopped":{"body":"The bridge service is inactive. Video protection is unavailable while it is stopped.","title":"Bridge service stopped"}},"settings":{"auto_start":{"description":"Start the bridge when this plugin loads. Turning this off stops an active bridge; the bar can still start or stop it for this session without changing this setting.","label":"Start bridge automatically"}},"title":"Niri Media Idle","tooltip":{"busy":"Checking bridge status. Source: this bridge only.","failed":"Bridge failed; click to restart. Source: this bridge only.","inactive":"Bridge stopped; click to start. Source: this bridge only.","incomplete":"Video: a required inhibitor is missing. Source: this bridge only.","loading":"Bridge starting; checking protection. Source: this bridge only.","music_sleep":"Music: sleep blocked; idle remains. Source: this bridge only.","music_sleep_incomplete":"Music: sleep inhibitor missing. Source: this bridge only.","normal":"No media; normal idle chain. Source: this bridge only.","protected":"Video: sleep, idle, ScreenSaver blocked. Source: this bridge only.","protection_unknown":"No inhibitors confirmed. Source: this bridge only.","status_error":"Status check failed; click to retry. Source: this bridge only.","unknown":"Bridge state unknown; click to retry. Source: this bridge only."}},"niri-ribbon":{"settings":{"active_window_color":{"description":"Solid color of the active window marker.","label":"Active Window Color"},"animation_speed":{"description":"Animation speed multiplier: 1 is normal, higher is faster, and 0 disables animations.","label":"Animation Speed"},"bar_color":{"description":"Color of the ribbon track (the non-visible area).","label":"Background Color"},"gaps":{"description":"The 'layout.gaps' value from your niri config, in logical pixels. Used for accurate canvas width and padding calculation.","label":"Layout Gaps"},"radius":{"description":"Corner radius of the viewport highlight (logical pixels).","label":"Corner Radius"},"show_active_window":{"description":"Show the active tiled window inside the viewport highlight with a solid color.","label":"Show Active Window"},"thickness":{"description":"Vertical thickness of the ribbon (logical pixels).","label":"Thickness"},"viewport_color":{"description":"Color of the highlighted viewport region.","label":"Viewport Color"},"viewport_model":{"description":"How the viewport position is estimated. Should match your niri 'center-focused-column' setting. 'Fit' (default) works with niri's default 'never'; 'Center' works with 'always'.","label":"Viewport Model","option":{"center":"Center (niri: always)","fit":"Fit (niri: never)"}}}},"niri-rules-studio":{"action_required":"Action required","active_count":"{active} active","active_window":"Active window: {app}","also_match_title":"Also match the window title","also_match_title_help":"Enable only for a specific window, such as Picture-in-Picture.","app_id":"App ID","back":"Back","cancel":"Cancel","choose_window":"Choose an open window","choose_window_help":"Select by app ID, title, or Niri window ID.","close":"Close","confirm_delete":"Delete this rule?","create_rule":"Create rule for this window","default_height":"Default height","default_width":"Default width","delete":"Delete","delete_rule":"Delete rule","disabled":"Disabled","edit_rule":"Edit managed rule","error_activate":"Validated, but could not activate rules: {error}","error_app_id_required":"App ID is required.","error_backup_config":"Could not back up the root config: {error}","error_backup_directory":"Could not create the backup directory: {error}","error_backup_rules":"Could not back up the active managed rules: {error}","error_config_directory":"Could not create the managed config directory: {error}","error_data_directory":"Unable to locate the plugin data directory.","error_include":"Rules file saved but its include could not be added: {error}","error_include_ambiguous":"The root config mentions noctalia-rules-studio.kdl without the exact managed include. Remove or correct that reference before saving.","error_ipc":"Niri IPC command failed.","error_model_read":"Could not read saved rule models: {error}","error_model_save":"Rules are active, but the editor model could not be saved: {error}","error_prepare_include":"Could not prepare the managed include for validation.","error_prepare_validation":"Could not prepare the validation config: {error}","error_start_command":"Noctalia could not start: {command}","error_validation_rejected":"Niri rejected the candidate configuration.","error_write_candidate":"Could not write candidate rules: {error}","floating":"Floating","initial_size_help":"Initial size: use 0.6 for 60%, or pixels such as 900.","inspect":"Inspect","inspecting":"Inspecting focused window…","managed_rules":"Managed rules ({count})","managed_rules_help":"Only rules created here can be changed or removed.","managed_rules_title":"Managed rules","match_help":"The rule matches this app by ID. Title matching is optional.","mode_floating":"Open floating","mode_floating_help":"Floating: opens above the tiling layout and can use an initial size.","mode_fullscreen":"Open fullscreen","mode_fullscreen_help":"Fullscreen: fills the entire output and hides shell bars.","mode_maximized":"Open as maximized column","mode_maximized_edges":"Open maximized to edges","mode_maximized_edges_help":"Maximized to edges: normal Wayland maximize; fills the working area without gaps or borders.","mode_maximized_help":"Maximized column: full-width Niri column; keeps gaps, borders, and struts.","mode_tiled":"Open tiled","mode_tiled_help":"Tiled: opens in the scrolling layout and can use an initial size.","new":"New","no":"No","no_app_id":"No app ID","no_focused_window":"No focused window detected","no_managed_rules":"No managed rules yet","no_managed_rules_help":"Inspect a window to create your first one.","no_matching_windows":"No windows match your search.","no_open_windows":"No open windows reported by Niri.","no_output_rule":"No output rule","no_window_selected":"No window selected","no_workspace_rule":"No workspace rule","not_saved":"Not saved","open_window_list":"Open window list","opening_rule_notice":"Opening rules affect new windows only; the selected window will not change immediately.","pick_on_screen":"Pick on screen","pid":"PID","quick_rule":"Quick rule","refresh":"Refresh","save":"Validate & Save","saved":"Saved and validated. Niri will reload the included rules.","search_windows":"Search open windows…","select_window_status":"Select a window in Niri…","selected_window":"Selected: {app} · window {id}","settings":{"niri_config":{"description":"Main Niri KDL configuration file. Other includes are preserved and validated by Niri.","label":"Niri config"}},"then":"THEN","title_regex":"Title regular expression","unknown_app":"Unknown app","untitled_window":"Untitled window","validating":"Validating Niri configuration…","validation_failed":"Validation failed — your active configuration was not changed.","when":"WHEN","widget_text":"Rules","widget_tooltip":"Open Niri Rules Studio","window_count":"{count} windows","window_count_one":"1 window","window_inspector":"WINDOW INSPECTOR","window_list_fallback":"You can still choose any window reported by Niri.","window_list_status":"Choose a window from the list or pick one on screen.","window_missing_status":"Niri did not report any open windows.","window_selection_cancelled":"Window selection cancelled.","workspace":"Workspace","yes":"Yes"},"niri-workspace-preview":{"settings":{"active_color":{"description":"Color for the active window reported by each Niri workspace.","label":"Active window color"},"fixed_height":{"description":"Height of each workspace frame in fixed mode, in logical pixels.","label":"Fixed height"},"fixed_width":{"description":"Width of each workspace frame in fixed mode, in logical pixels.","label":"Fixed width"},"floating_color":{"description":"Color used for floating windows in compact and exact-position modes.","label":"Floating window color"},"floating_mode":{"description":"Show floating windows in a compact list or at their exact Niri viewport coordinates.","exact":"Exact position","label":"Floating window mode","strip":"Compact strip"},"focused_color":{"description":"Color for the single window holding keyboard focus.","label":"Focused window color"},"highlight_focused":{"description":"Use the configured focused color for the window holding keyboard focus.","label":"Highlight focused window"},"highlight_hovered":{"description":"Outline the window miniature currently under the pointer.","label":"Highlight hovered window"},"hover_color":{"description":"Border color used while hovering; focus and urgency colors take priority.","label":"Hover color"},"invert_scroll":{"description":"Make scrolling down move left and scrolling up move right.","label":"Invert scroll direction"},"max_output_length":{"description":"Maximum main-axis length of one workspace map in logical pixels.","label":"Maximum map length"},"normal_color":{"description":"Fallback color for windows without a higher-priority state.","label":"Normal window color"},"output_gap":{"description":"Space between output previews in logical pixels.","label":"Output gap"},"output_names":{"description":"Comma-separated output names to show, for example: eDP-1, HDMI-A-1.","label":"Selected outputs"},"output_scope":{"all":"All outputs","current":"This bar's output","custom":"Selected outputs","description":"Show every active output, only the monitor containing this bar, or a named selection.","label":"Output scope"},"preview_size":{"description":"Cross-axis size of each output preview in logical pixels.","label":"Preview size"},"show_floating":{"description":"Show floating windows beside the tiled layout.","label":"Show floating windows"},"show_icons":{"description":"Show a locally resolved application icon when a miniature is large enough.","label":"Show application icons"},"size_mode":{"auto":"Automatic","description":"Let window geometry size the map automatically, or use a frame with explicit dimensions.","fixed":"Fixed","label":"Size mode"},"urgent_color":{"description":"Color for windows requesting attention.","label":"Urgent window color"},"viewport_border_width":{"description":"Thickness of the visible viewport highlight in logical pixels.","label":"Viewport border width"},"viewport_color":{"description":"Border color used for visible windows unless a window-state or hover color takes priority.","label":"Viewport color"},"viewport_mode":{"both":"Highlight and separate map","description":"Highlight visible windows inside the full map, add a separate viewport map, or use both.","highlight":"Highlight in full map","label":"Visible viewport mode","off":"Off","separate":"Separate map"},"window_gap":{"description":"Space between miniature windows in logical pixels.","label":"Window gap"}}},"nix-monitor":{"bar":{"checking":"Checking...","unknown":"Unknown","up_to_date":"Up to date","update_available":"Update available!"},"notification":{"checking_update":"Checking NixOS update...","clean_command_is_empty":"Clean command is empty!","optimize_command_is_empty":"Optimize command is empty!","update_check_completed":"NixOS update check completed!","update_command_is_empty":"Update command is empty!","update_is_available":"NixOS update is available!"},"panel":{"cancel":"Cancel","check":"Check","clean":"Clean","closure_size":"Closure size","current":"Current","last_checked":"Last checked","local":"Local","optimize":"Optimize","remote":"Remote","store_size":"Store size","title":"Nix Monitor","update":"Update"},"setting":{"branch":{"description":"Which nixpkgs branch to use","label":"Branch"},"clean_command":{"description":"Command to run when clicking Clean button","label":"Clean command"},"close_on_enter":{"description":"Add 'Press enter to exit' on the terminal window","label":"Close on press Enter"},"generation_check_interval":{"description":"How often to check NixOS and Home Manager generations (in minutes)","label":"Generation check interval"},"hide_clean_button":{"description":"Whether to hide the clean button on the panel","label":"Hide clean button"},"hide_optimize_button":{"description":"Whether to hide the optimize button on the panel","label":"Hide optimize button"},"hide_update_button":{"description":"Whether to hide the update button on the panel","label":"Hide update button"},"optimize_command":{"description":"Command to run when clicking Optimize button","label":"Optimize command"},"option":{"branch":{"master":"Master","nixos_23_05":"NixOS 23.05","nixos_23_05_small":"NixOS 23.05 Small","nixos_23_11":"NixOS 23.11","nixos_23_11_small":"NixOS 23.11 Small","nixos_24_05":"NixOS 24.05","nixos_24_05_small":"NixOS 24.05 Small","nixos_24_11":"NixOS 24.11","nixos_24_11_small":"NixOS 24.11 Small","nixos_25_05":"NixOS 25.05","nixos_25_05_small":"NixOS 25.05 Small","nixos_25_11":"NixOS 25.11","nixos_25_11_small":"NixOS 25.11 Small","nixos_26_05":"NixOS 26.05","nixos_26_05_small":"NixOS 26.05 Small","nixos_unstable":"NixOS Unstable","nixos_unstable_small":"NixOS Unstable Small"},"system_stats_check_mode":{"off":"Off","on_interval":"On interval","on_start":"On start"}},"show_update_available_notification":{"description":"Whether to show a notification whenever an update is available","label":"Show update available notification"},"show_update_check_notification":{"description":"Whether to show a notification whenever update check is in progress and completed","label":"Show update check notification"},"system_stats_check_duration_threshold":{"description":"Cancel system stats check if it took too long (in minutes)","label":"System stats check duration threshold"},"system_stats_check_interval":{"description":"How often to check for system stats (in minutes)","label":"System stats check interval"},"system_stats_check_mode":{"description":"Select how system stats checking is performed (off, on interval, on start)","label":"System stats check mode"},"update_check_duration_threshold":{"description":"Cancel update check if it took too long (in minutes)","label":"Update check duration threshold"},"update_check_interval":{"description":"How often to check for updates (in minutes)","label":"Update check interval"},"update_command":{"description":"Command to run when clicking Update button","label":"Update command"},"widget":{"checking_color":{"label":"Checking color"},"checking_glyph":{"label":"Checking glyph"},"colorize_glyph":{"label":"Colorize glyph"},"colorize_text":{"label":"Colorize text"},"panel_card_background_color":{"label":"Panel card background color"},"panel_card_background_opacity":{"label":"Panel card background opacity"},"show_glyph":{"label":"Show glyph"},"show_text":{"label":"Show text"},"unknown_color":{"label":"Unknown status color"},"unknown_glyph":{"label":"Unknown status glyph"},"up_to_date_color":{"label":"Up to date color"},"up_to_date_glyph":{"label":"Up to date glyph"},"update_available_color":{"label":"Update available color"},"update_available_glyph":{"label":"Update available glyph"}}},"terminal":{"command_exits_non_zero":"WARNING: Command exits in a non-zero status!\nPress enter to exit...","press_enter_to_exit":"Press enter to exit..."}},"nix-status":{"settings":{"flake_dir":{"description":"Select the directory containing flake.nix. Required for input updates, which modify this directory's flake.lock.","label":"Flake directory"},"nixos_configuration":{"description":"Optional nixosConfigurations attribute to monitor, such as vm or workstation. Leave empty to disable switch-availability checks.","label":"NixOS configuration name"},"use_themed_logos":{"description":"Use rendered SVGs from the optional bundled templates (see README). Falls back to the snowflake glyph when a logo file is missing.","label":"Use themed NixOS logos"}}},"noctaproton-vpn":{"account":{"not_signed_in":"Not Signed In","plan":"Plan","signin_hint":"Enter your Proton username or email below to sign in."},"actions":{"connect":"Connect","copy_port":"Copy Port","disconnect":"Disconnect","fastest":"Fastest","quick_connect":"Quick Connect","signin":"Sign In","signout":"Sign Out"},"protection":{"killswitch":"Kill Switch","killswitch_desc":"Block all internet traffic if the VPN connection drops unexpectedly.","netshield":"NetShield","netshield_all":"Malware, Ads & Trackers","netshield_desc":"DNS-level ad, malware, and tracker blocking.","netshield_malware":"Malware only","netshield_off":"Off","port_forwarding":"Port Forwarding","port_forwarding_desc":"Assign an inbound port for P2P and BitTorrent applications.","split_tunneling":"Split Tunneling","split_tunneling_desc":"Exclude selected applications from the VPN tunnel.","split_tunneling_warning":"Note: Split tunneling is ignored by Proton while Kill Switch is active."},"settings":{"notify_on_connect":{"description":"Show notifications when VPN connects or disconnects.","label":"Connection notifications"},"refresh_interval":{"description":"How often to poll Proton VPN and NetworkManager for status.","label":"Status refresh interval (seconds)"},"traffic_monitoring":{"description":"Measure tunnel upload and download speeds.","label":"Live traffic monitoring"}},"status":{"connected":"Connected","connecting":"Connecting...","disconnected":"Disconnected"},"tabs":{"account":"Account","connections":"Connections","protection":"Protection"},"title":"Proton VPN","widget":{"tooltip_connected":"Proton VPN: Connected to {server} ({country})\nIP: {ip}\n↓ {rxRate}  ↑ {txRate}","tooltip_connecting":"Proton VPN: Connecting...","tooltip_disconnected":"Proton VPN: Disconnected (Click to open)"}},"noctes":{"bar":{"tooltip":{"one":"1 note","other":"{count} notes"}},"board":{"empty_note":"Empty note","untitled":"Untitled"},"color":{"auto":"Dynamic (follows the theme)","black":"Black","blue":"Blue","glass":"Glass","gray":"Gray","green":"Green","orange":"Orange","pink":"Pink","purple":"Purple","red":"Red","yellow":"Yellow"},"fold":{"auto":"Automatic","bottom_left":"Bottom left","bottom_right":"Bottom right","none":"None"},"note":{"empty_hint":"Click to write","loading":"..."},"notify":{"add_failed":{"body":"Editing settings.toml failed. Close the desktop-widget editor and try again.","title":"Could not add the post-it"},"no_tool":{"body":"tools/noctes-widget will not run, so nothing can put paper on the desktop. Notes still open, save and edit.","title":"Post-its need python3"},"unreadable":{"moved":"It is kept, untouched, as {path}. Notes from now on save to a fresh notes.json.","stuck":"{path} could not be read or moved aside, so noctes will not save over it. Fix or move it, then reload.","title":"notes.json could not be read"}},"panel":{"color_dynamic_classic":"Dynamic: the paper is generated from this note's key. Turn on “Paper follows the theme” to make it track the wallpaper.","color_dynamic_theme":"Dynamic: the paper is generated from this note's key and follows the theme, so it recolors with the wallpaper.","color_fixed":"Fixed paper: stays this color whatever the theme does.","color_glass":"Glass: a translucent pane instead of paper, tinted by the shell's surface. Sharp, not blurred - a plugin gets no blur to work with.","content_placeholder":"Write your note","delete":"Delete","delete_confirm":"Click again to delete","empty":"No post-its yet","move":"Move post-its (widget editor)","new":"New","no_helper":"no paper (python3 missing)","not_on_screen":"not on screen","save":"Save","saved":"Saved","settings":"Plugin settings","stick":"Stick to the desktop","title":"Noctes","title_placeholder":"Title","unsaved":"Unsaved changes"},"settings":{"color":{"description":"Automatic derives a color from the key, and the note's own color wins when it has one.","label":"Paper color"},"default_color":{"description":"Colour new notes get. Automatic leaves it to the sheet's key.","label":"Default color"},"fold":{"description":"Off by default: a diagonal can only be drawn as a staircase here, and it shows.","label":"Folded corner"},"font_path":{"description":"Bundled Patrick Hand by default. Give an absolute or ~ path for another .ttf/.otf, or empty for the shell font.","label":"Font file"},"font_size":{"description":"Body size. A handwriting font needs a couple of points more than a UI font.","label":"Font size"},"key":{"description":"Which note this post-it shows. Set the same key on a note in the panel.","label":"Note key"},"max_lines":{"label":"Lines shown"},"opacity_override":{"description":"0 follows the plugin-wide opacity. The text stays fully opaque either way.","label":"Paper opacity (this sheet)"},"paper_height":{"label":"Paper height"},"paper_opacity_all":{"description":"How solid every post-it is. The text stays fully opaque.","label":"Paper opacity"},"paper_size":{"description":"Size of the paper itself, in px. Make the widget box a little larger."},"paper_width":{"label":"Paper width"},"save_path":{"description":"Folder for notes.json. Empty uses the plugin's own data directory.","label":"Save folder"},"shadow":{"description":"Lifts the paper off the wallpaper","label":"Drop shadow"},"show_count":{"label":"Show note count in the bar"},"show_title":{"description":"Draw the note title above the body","label":"Show title"},"tape":{"description":"Automatic decides from the key whether this post-it is taped, and where.","label":"Tape"},"theme_colors":{"description":"Use the Noctalia palette instead of the classic paper colors. The palette tracks the wallpaper, so every post-it recolors with it.","label":"Paper follows the theme"},"tilt":{"description":"Sheets sit at a small random angle. Turning this off squares every one of them; turning it back on gives each a new angle.","label":"Crooked sheets"},"use_theme_colors":{"description":"Overrides the plugin-wide setting for this sheet only.","label":"Paper follows the theme"}},"tape":{"auto":"Automatic","center":"Center","left":"Left","none":"None","right":"Right"},"theme_colors":{"inherit":"Follow the plugin setting","off":"Never","on":"Always"}},"noctwhspr":{"settings":{"root":{"description":"Directory hyprwhspr is installed under. Leave at the default unless hyprwhspr lives at a non-standard prefix.","label":"hyprwhspr install root"}},"title":"noctwhspr"},"nvim-projects":{"filter-empty":"No projects matching \"{filter}\"","loading":"Loading…","loading-subtitle":"Scanning recent Neovim sessions and projects","no-projects-found":"No projects found","no-recent-projects":"No recent Neovim projects","settings":{"max_results":{"description":"Maximum number of recent projects to show in the launcher","label":"Max Results"},"projects_dir":{"description":"Directory containing your coding projects (e.g. ~/Projects)","label":"Projects Directory"},"terminal":{"description":"Custom terminal command (leave empty to use Noctalia default)","label":"Custom Terminal"}}},"nvtop":{"nvtop":{"fan_speed":"Fan Speed","gpu_clock":"GPU Clock","gpu_load":"GPU Load","memory_clock":"Memory Clock","memory_free":"Memory Free","memory_total":"Memory Total","memory_used":"Memory Used","nodata":"No data available","power":"Power","process":{"cmdline":{"label":"Command Line","tip":"Process Command Line"},"decode":{"label":"DEC","tip":"Video Decoder Usage"},"encode":{"label":"ENC","tip":"Video Encoder Usage"},"encode_decode":{"label":"ENC/DEC","tip":"Video Encoder/Decoder Usage"},"gpu_mem":{"label":"VRAM","tip":"GPU Memory Usage"},"gpu_usage":{"label":"GPU","tip":"GPU Usage"},"pid":{"label":"PID","tip":"Process ID"}},"process_buttons":{"cancel":{"label":"Cancel","tip":"Cancel the expanded process view"},"copy_cmdline":{"label":"Copy Command Line","tip":"Copy the process command line to the clipboard"},"copy_pid":{"label":"Copy PID","tip":"Copy the process ID to the clipboard"},"force_kill":{"label":"Terminate","tip":"Force kill the expanded process (SIGKILL)"},"kill":{"label":"Kill","tip":"Kill the expanded process (SIGINT)"}},"temperature":"Temperature"},"settings":{"delay":{"description":"Select the refresh rate (1 == 0.1s)","label":"Refresh rate"},"process_hover_background":{"description":"Select the background color for hovered process rows","label":"Process hover background"},"process_hover_color":{"description":"Select the text color for hovered process rows","label":"Process hover text color"},"sort_column_background":{"description":"Select the background color for the sort column","label":"Sort column background"},"sort_column_color":{"description":"Select the text color for the sort column","label":"Sort column text color"}},"tip_close":"Close","tip_settings":"Plugin settings"},"obs-control":{"connected":"Connected to local OBS","disconnected":"OBS is not connected","done":"Done","helper-failed":"OBS helper failed. Check Python and websocket-client installation.","launch":"Launch OBS","save-replay":"Save replay","settings":{"auto_close":"Close OBS after stopping the last output","auto_close_description":"Only closes an OBS process this plugin started. Recording, replay, streaming and virtual camera must all be stopped.","interval":"Status polling interval (milliseconds)","open_videos":"Open the recording folder after stopping a recording","python":"Python executable","python_description":"Python with websocket-client installed; accepts a virtual environment path.","show_elapsed":"Show recording duration in the bar","show_idle":"Show the bar widget while idle"},"start-record":"Start recording","start-replay":"Start replay buffer","start-stream":"Start streaming","stop-record":"Stop recording","stop-replay":"Stop replay buffer","stop-stream":"Stop streaming","videos":"Recordings","working":"Working…"},"obs-integration":{"panel":{"add_remove":"Add/Remove","adding_removing":"Adding/removing files...","arch":"Architectures","build_status":"Build Status","checking_out":"Checking out...","checkout":"Checkout package","commit":"Commit package","committing":"Committing...","configure_oscrc":"Configure oscrc","confirm":"Confirm","confirm_rebuild":"Confirm rebuild","confirm_remove":"Click to confirm removal","confirm_run_all":"Confirm Run All","edit_changes":"Edit {name}.changes","edit_files":"Edit files","edit_meta":"Edit package meta","edit_project_meta":"Edit project meta","error":"OBS command failed","files":"Files","loading":"Loading...","loading_packages":"Loading packages...","logs":"Logs","my_projects":"My Projects","no_builds":"No build results.","no_changes":"no changes for package {name}","no_editable":"No editable files found.","no_files":"No files found.","no_logs":"No output yet.","no_packages":"No packages found.","no_projects":"No projects found.","open_in_obs":"Open in OBS","osc_missing":"'osc' not found","osc_missing_hint":"Install the 'osc' package to start using this plugin.","osc_not_configured":"OBS account not configured","osc_not_configured_hint":"Create ~/.config/osc/oscrc before browsing projects.","rebuild":"Rebuild package","rebuild_package":"Rebuild Package","rebuilding_pkg":"Rebuilding package...","reload_packages":"Reload packages","reload_projects":"Reload projects","remove":"Remove package","remove_file":"Remove file","repo":"Repositories","retry":"Retry","running_all_services":"Running all services...","running_local_service":"Running local service...","running_manual_service":"Running manual service...","running_remote_service":"Running remote service...","search_packages":"Search...","search_projects":"Search projects...","service_local_run":"Service Local Run","service_remote_run":"Service Remote Run","service_run":"Service Manual Run","service_run_all":"Service Run All","status_blocked":"Blocked","status_broken":"Broken","status_building":"Building","status_excluded":"Excluded","status_failed":"Failed","status_finished":"Finished","status_loading":"Loading status...","status_refresh":"Refresh status","status_scheduled":"Scheduled","status_signing":"Signing","status_succeeded":"Succeeded","status_unbuildable":"Unbuildable","status_unknown":"Unknown","status_unresolvable":"Unresolvable","update_changes":"Update {name}.changes","update_dir":"Update directory","updating_dir":"Updating directory..."},"settings":{"checkout_dir":{"description":"Directory where packages will be checked out.","label":"Package checkout directory"},"show_label":{"description":"Show the OBS label next to the icon.","label":"Show label"}},"widget":{"configure_obs":"Configure OBS","obs":"OBS","osc_missing":"'osc' missing"}},"obsidian":{"actions":{"capture":"Add to daily","copy_link":"Copy [[link]]","copy_path":"Copy path","git_abort":"Abort rebase/merge","git_commit":"Commit","git_pull":"Pull","git_push":"Push","git_status":"Status","git_sync":"Pull + push","open_daily":"Open daily","open_note":"Open","open_vault":"Open vault","refresh":"Refresh"},"filter":{"placeholder":"Filter notes…"},"launcher":{"cat":{"capture":"Capture…","capture-sub":"Type: /ob capture your text","daily":"Open daily note","daily-sub":"Today’s note in Obsidian","git":"Git status","git-sub":"Dirty / ahead / behind","panel":"Open panel","panel-sub":"Full Obsidian manager","refresh":"Refresh","refresh-sub":"Rescan vault + git"},"loading":"Loading vault…","missing":"Vault not configured"},"panel":{"busy":"Working…","capture_placeholder":"Quick note (appended to daily with timestamp)…","commit_placeholder":"Commit message (optional)…","daily_missing":"Daily note will be created on first capture.","daily_path":"Daily: {path}","empty":"Nothing to show.","git_branch":"Branch {branch} · {ahead}↑ {behind}↓ · {dirty} dirty","git_clean":"Working tree clean","git_files":"Changed files","git_in_progress":"Git {kind} in progress — abort before other actions","git_nogit":"Not a git repository","loading":"Scanning vault…","select_hint":"Select a note for actions.","summary":"Daily {daily} · {recent} recent · git {git}","updated":"Updated {time}","vault":"{name}"},"result":{"busy":"Another operation is running.","captured":"Appended to {name}","copied":"Copied {name}","failed":"Failed: {error}","git_aborted":"Aborted {kind}","git_clean":"Working tree clean","git_committed":"Committed ({n} files)","git_in_progress":"Git {kind} in progress — use Abort first","git_not_in_progress":"No rebase or merge in progress","git_nothing":"Nothing to commit","git_pulled":"Pull finished","git_pushed":"Push finished","git_synced":"Pull + push finished","invalid_daily_path":"Daily note path is invalid or outside the vault ({error}).","invalid_note_path":"Note path is invalid or outside the vault ({error}).","missing_vault":"Vault not found. Set vault path in settings.","opened":"Opening…","success":"Done"},"settings":{"daily_folder":{"description":"Relative to vault root (empty = vault root).","label":"Daily notes folder"},"daily_format":{"description":"strftime pattern without .md (default %Y-%m-%d).","label":"Daily filename format"},"git_commit_message":{"description":"Used when Commit is clicked with an empty message field.","label":"Default commit message"},"notify_on_action":{"description":"Desktop notification after capture / git actions.","label":"Notify on actions"},"refresh_interval":{"description":"How often to rescan recent notes and git status.","label":"Refresh interval (seconds)"},"show_dirty":{"description":"Show number of changed git files on the bar.","label":"Show dirty count"},"vault_name":{"description":"Name used in obsidian:// links. Empty = folder name.","label":"Vault name (URI)"},"vault_path":{"description":"Root folder of the Obsidian vault.","label":"Vault path"}},"tabs":{"daily":"Daily","git":"Git","recent":"Recent"},"title":"Obsidian","widget":{"refresh_requested":"Refreshing vault…","tooltip_missing":"Vault path missing or not a vault","tooltip_nogit":"{vault} · no git repo","tooltip_ok":"{vault} · daily {daily} · git {git}"}},"ocr":{"settings":{"copy_to_clipboard":{"label":"Copy result to clipboard"},"glyph":{"label":"Glyph"},"languages":{"description":"Language codes passed to tesseract -l, joined with + (e.g. eng+deu). Each needs its tessdata package installed.","label":"Tesseract languages"},"psm":{"description":"How tesseract segments the capture. Uniform block suits most screen regions.","label":"Page segmentation","options":{"auto":"Automatic","block":"Uniform block of text","line":"Single line"}},"show_notification":{"description":"Show a notification with a preview of the recognized text.","label":"Show result notification"}},"title":"OCR"},"omniroute-quota":{"panel":{"active":"ACTIVE","error":"Could not load quotas","inactive":"INACTIVE","local_usage":"7-day local usage","no_accounts":"No active Codex accounts found in OmniRoute.","refresh":"Refresh now","refreshing":"Refreshing Codex accounts...","remaining":"remaining","reset_unknown":"Reset time unavailable","resets_days":"Resets in {days}d {hours}h","resets_hours":"Resets in {hours}h {minutes}m","resets_minutes":"Resets in {minutes}m","resetting":"Resetting now","subtitle":"Codex account capacity","title":"OmniRoute Quota","used":"used"},"settings":{"refresh_seconds":{"description":"Seconds between live Codex quota checks.","label":"Refresh interval"},"show_inactive":{"description":"Also query Codex connections disabled in OmniRoute.","label":"Include inactive accounts"},"show_value":{"description":"Display the lowest remaining quota percentage.","label":"Show value in bar"},"sort_order":{"description":"Order accounts by usable quota or by name.","label":"Account order","option":{"alphabetical":"Alphabetical","availability":"Available first"}}},"widget":{"error":"Quota error","loading":"Loading Codex quotas","no_accounts":"No Codex accounts found","remaining":"remaining","title":"OmniRoute Quota"}},"omp-launcher":{"description":"Native Oh My Pi (omp) launcher with active session indicator and project discovery.","title":"Oh My Pi Launcher"},"opencode-companion":{"chat":{"assistant":"Assistant","back":"Back to sessions","dismiss_error":"Dismiss","empty":"No messages yet. Send a prompt to begin.","open_terminal":"Open in terminal","placeholder":"Ask OpenCode anything…  (Enter = send, Shift+Enter = new line)","refresh":"Refresh","select_agent":"Agent","select_model":"Model","send":"Send (Enter)","stop":"Stop","thinking":"Thinking…","title":"OpenCode Chat","you":"You"},"chooser":{"delete":"Delete session","delete_cancel":"Cancel","delete_confirm":"Confirm delete","empty":"No sessions yet. Create one to get started.","new_session":"New Session","no_match":"No sessions match your search.","open":"Open session","refresh":"Refresh","search":"Search sessions…","title":"OpenCode — Sessions"},"error":{"abort_failed":"Failed to abort session","connection_failed":"Could not connect to server","connection_failed_detail":"The server did not respond to a health check.","create_session_failed":"Failed to create session","delete_session_failed":"Failed to delete session","exe_not_found":"opencode not found on PATH","exe_not_found_detail":"Install opencode and ensure it is available on your PATH.","external_not_configured":"External server URL not configured","permission_failed":"Failed to respond to permission","prompt_failed":"Failed to send prompt","question_failed":"Failed to answer question","server_failed":"Failed to start OpenCode server","server_timeout":"Server did not start in time","server_timeout_detail":"The server did not become healthy within the timeout period.","session_error":"Session encountered an error","session_error_detail":"The agent stopped due to an error.","session_not_found":"Session not found","sse_disconnected":"Event stream disconnected"},"mcp":{"connected":"Connected","disabled":"Disabled","failed":"Failed","title":"MCP Servers"},"notify":{"new_session":"Creating new session…","permission_body":"OpenCode is waiting for your approval.","permission_title":"Permission Request","title":"OpenCode"},"permission":{"allow":"Allow","allow_remember":"Always Allow","default_message":"OpenCode wants to perform an action that requires your approval.","deny":"Deny","title":"Permission Required"},"question":{"cancel":"Cancel","custom":"Custom Answer","submit":"Submit","title":"Question"},"settings":{"auto_start":{"description":"Automatically start the managed server when the plugin loads.","label":"Auto-start Server"},"debug_logging":{"description":"Print debug messages to the Noctalia log.","label":"Debug Logging"},"default_agent":{"description":"Default agent to use for new sessions. Default: 'build'.","label":"Default Agent"},"default_model":{"description":"Default model in 'provider/model' format (e.g., 'anthropic/claude-3-5-sonnet-20241022'). Leave empty to use server default.","label":"Default Model"},"default_workspace":{"description":"Default working directory for new sessions. Leave empty to use the current directory.","label":"Default Workspace"},"language":{"description":"Language for this plugin's UI. 'Auto' follows the Noctalia shell language.","label":"Language","options":{"auto":"Auto (follow shell)","en":"English","vi":"Tiếng Việt"}},"max_messages_load":{"description":"Messages loaded per session (1–100). Set the slider to its top notch for unlimited. Default: 50.","label":"Max Messages to Load"},"notify_on_complete":{"description":"Show a desktop notification when a response completes.","label":"Notify on Completion"},"panel_mode":{"description":"Fill right opens a full-height panel pinned to the right edge; Compact shows the original floating panel near the bar click.","label":"Panel Layout","options":{"compact":"Compact (near click)","fill_right":"Full-height right side"}},"server_host":{"description":"Hostname the managed server binds to. Default: 127.0.0.1 (loopback only).","label":"Server Host"},"server_mode":{"description":"How the plugin connects to OpenCode. 'auto' manages a local server; 'external' connects to a user-specified URL.","label":"Server Mode"},"server_port":{"description":"Port the managed server listens on. Default: 4096.","label":"Server Port"},"server_url":{"description":"Base URL of an external OpenCode server (e.g., http://127.0.0.1:4096). Used when Server Mode is 'external'.","label":"External Server URL"},"show_reasoning":{"description":"Display reasoning/thinking text in the chat view.","label":"Show Reasoning"},"show_tool_calls":{"description":"Display tool call status cards in the chat view.","label":"Show Tool Calls"},"ui_mode":{"description":"Full shows a spacious layout; Compact tightens padding, fonts and hides secondary details to keep the panel minimal.","label":"UI Mode","options":{"compact":"Compact","full":"Full"}}},"state":{"tip":{"busy":"OpenCode: processing…","offline":"OpenCode: offline","online":"OpenCode: connected","starting":"OpenCode: starting server…","waiting_permission":"OpenCode: waiting for permission"},"unread":"{count} unread response(s)"},"time":{"days_ago":"{n}d ago","hours_ago":"{n}h ago","just_now":"just now","minutes_ago":"{n}m ago"}},"opencode-go-usage":{"bar":{"empty":"—","title":"Opencode Go Usage","tooltip_meter":"Opencode Go — {meter}: {percent}","tooltip_text":"Opencode Go — {text}","unavailable":"unavailable"},"meter":{"five_hour":"5-hour Usage","month":"Monthly Usage","short_five_hour":"5h","short_month":"month","short_week":"week","week":"Weekly Usage"},"panel":{"empty":"—","key_hint":"Add your oc_sk_... key under Settings → Plugins → gear icon.","no_meters":"No usage meters reported for this account.","refresh":"Refresh","title":"Opencode Go","unavailable":"Usage unavailable","waiting":"Waiting for the usage service…"},"reset":{"days_hours":"Resets in {days}d {hours}h","hours_mins":"Resets in {hours}h {mins}m","mins":"Resets in {mins}m","now":"Resets now"},"settings":{"api_key":{"description":"Your Opencode Go key, e.g. oc_sk_...","label":"API key"},"bar_limit":{"description":"Which usage limit the bar capsule shows. Choose icon only to hide the percentage.","label":"Show in bar","option":{"5h":"5-hour limit","month":"Monthly limit","none":"Icon only","week":"Weekly limit"}},"refresh_interval":{"description":"How often to poll opencode.ai for usage, in seconds (60-86400).","label":"Refresh interval"}},"status":{"http_error":"Usage unavailable (HTTP {status}, check API key)","loading":"Loading…","need_key":"Set API key in settings","network":"Usage unavailable (network error)","no_meter":"Usage unavailable (check API key)","refused":"Usage unavailable (request refused)"},"tier":{"active":"Active","cancelling":"Cancelling"}},"opencodex-bar":{"account":{"active":"CURRENT","fallback":"Account","main":"Main Account","none":"No accounts","paused":"PAUSED","reauth":"REAUTH","warning":"WARNING"},"action":{"cancel":"Cancel","confirm_reset":"Confirm","confirm_select":"Confirm","dashboard":"Open the OpenCodex dashboard","refresh":"Refresh quotas","resetting":"Resetting…","select":"Switch Account","selecting":"Switching…","use_reset":"Use Reset"},"action_result":{"no_credit":"No reset credit is available for this account.","nothing_to_reset":"This account currently has no usage limits to reset.","reset":"Usage limits reset successfully.","reset_failed":"Could not use the reset credit.","reset_remaining":"Usage limits reset. {count} reset credits remain.","select_failed":"Could not change the active account.","selected":"Account selected for the next turn."},"bar":{"no_quota":"No quota reported","used_tooltip":{"one":"{used}% used on 1 account","other":"{used}% used across {count} accounts"}},"confirm":{"reset":"Use one reset credit for {account}? This immediately resets its current usage limits.","select":"Use {account} for the next turn?"},"empty":{"auth_hint":"Set OPENCODEX_ADMIN_AUTH_TOKEN or select an admin token file in plugin settings.","no_providers":"No enabled providers","no_providers_hint":"OpenCodex is reachable but reports no enabled provider.","offline_hint":"Could not reach the local OpenCodex service."},"panel":{"title":"OpenCodex"},"pool":{"strategy":"Pool: {strategy}"},"quota":{"reset_credits":{"one":"1 reset credit available","other":"{count} reset credits available"},"stale":"Quota refresh unavailable; showing last good data","title":"Quota","unavailable":"Quota unavailable","used":"{percent}% used"},"reset":{"days":"resets in {days}d {hours}h","hours":"resets in {hours}h {minutes}m","minutes":"resets in {minutes}m","pending":"reset pending"},"settings":{"admin_token_file":{"description":"Path to the OpenCodex admin token file. Defaults to OpenCodex's own ~/.opencodex/admin-api-token. Ignored when OPENCODEX_ADMIN_AUTH_TOKEN is set.","label":"Admin token file"},"base_url":{"description":"Local OpenCodex Management API URL.","label":"OpenCodex base URL"},"force_refresh_minutes":{"description":"How often to ask OpenCodex to refresh quota data, in minutes.","label":"Forced refresh interval"},"glyph":{"description":"Glyph used when the bar icon is set to manual selection.","label":"Glyph"},"hidden_providers":{"description":"Comma-separated provider ids to leave out of the bar and the panel entirely, e.g. \"anthropic, xai\". OpenCodex keeps using them.","label":"Hidden providers"},"icon_source":{"active":"Glyph of the provider in use","bars":"Usage gauge","description":"What the bar shows.","fixed":"Manual glyph selection","label":"Bar icon"},"poll_seconds":{"description":"How often to read cached OpenCodex data, in seconds.","label":"Polling interval"},"show_percentage":{"description":"Show the percentage used next to the glyph. Turn off for a glyph-only widget.","label":"Show percentage used"},"theme_colors":{"description":"Colour quotas with Noctalia's palette instead of the OpenCodex dashboard's green/amber/red.","label":"Use theme colours"}},"status":{"api_error":"OpenCodex API error","auth_error":"OpenCodex authentication failed","connected":"Connected","invalid_json":"Unexpected response from OpenCodex","loading":"Contacting OpenCodex…","never_updated":"Not updated yet","offline":"OpenCodex unavailable","partial_failure":"Some data could not be refreshed","stale_data":"Showing partially refreshed data","updated_minutes":"Updated {minutes}m ago","updated_seconds":"Updated {seconds}s ago"},"tab":{"accounts":"Accounts","usage":"Usage"},"usage":{"by_provider":"By provider","cached_label":"Cached input","cost_label":"Estimated cost","grid_caption":"{days} days · busiest {busiest} requests","grid_day":{"one":"{date} · 1 request · {cost} estimated","other":"{date} · {count} requests · {cost} estimated"},"less":"Less","more":"More","reasoning_label":"Reasoning output","requests":"{count} requests","requests_label":"Requests","today":"Today","today_cost":"Today estimated cost","tokens":"{count} tokens","tokens_label":"Tokens","unavailable":"Usage unavailable","window":"Last {range}"},"weekday":{"fri":"F","mon":"M","sat":"S","sun":"S","thu":"T","tue":"T","wed":"W"},"window":{"five_hour":"5 hour","monthly":"Monthly","weekly":"Weekly"}},"opnsense":{"actions":{"copy":"Copy","open_ui":"Open UI","refresh":"Refresh","restart":"Restart","start":"Start","stop":"Stop"},"colors":{"error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"},"filter":{"placeholder":"Filter…  e.g. block  or  !pass"},"gateway":{"summary":"{status} · {address} · rtt {rtt}"},"iface":{"summary":"{status} · {ipv4} · in {in} · out {out}"},"launcher":{"action":{"copy":"Copy name","restart":"Restart service","start":"Start service","stop":"Stop service"},"cat":{"gateways":"Gateways","gateways-sub":"Gateway monitor status","interfaces":"Interfaces","interfaces-sub":"Link and address overview","logs":"Firewall logs","logs-sub":"Recent pass/block events","panel":"Open panel","panel-sub":"Full OPNsense manager","refresh":"Refresh","refresh-sub":"Poll API now","rules":"Firewall rules","rules-sub":"Filter rules overview","services":"Services","services-sub":"Start / stop / restart","status":"Status widgets","status-sub":"Crash reporter, firewall, system checks","ui":"Open Web UI","ui-sub":"Browser dashboard"},"loading":"Loading OPNsense…","no-matches":"No matches","unavailable":"OPNsense unavailable"},"logs":{"flow":"{src} → {dst} · {iface}","hint":"Select a log line · showing {n} recent · {blocks} blocks in buffer","summary":"{n} events · {blocks} blocks"},"panel":{"busy":"Working…","empty":"No items match the filter.","host":"Host: {host}","loading":"Querying API…","logs_loading":"Loading firewall logs…","not_configured":"Set Base URL, API key, and API secret under Settings → Plugins → OPNsense.","select_hint":"Select an item for actions.","subtitle":"Firewall health & services","summary":"{ok} healthy · {issues} issue(s) · load {load}","updated":"Updated {time}"},"result":{"busy":"Another operation is running.","copied":"Copied {name}","failed":"Failed: {error}","issue":"{name}: {status}","logs_loaded":"Loaded {n} log events","not_configured":"OPNsense API is not configured.","restarted":"Restarted {name}","started":"Started {name}","stopped":"Stopped {name}","success":"Done"},"rule":{"detail":"{src} → {dst} · {proto} · {iface}","stats":"{packets} pkts · {bytes} B · {evaluations} evals"},"rules":{"summary":"{n} rules"},"service":{"summary":"{status} · {description}"},"settings":{"allow_insecure_tls":{"description":"Skip certificate verification (self-signed / private CA).","label":"Allow insecure TLS"},"api_key":{"description":"System → Access → Users → API keys (key = username).","label":"API key"},"api_secret":{"description":"API secret paired with the key (password).","label":"API secret"},"base_url":{"description":"OPNsense origin only, e.g. https://192.168.1.1 (no trailing /api).","label":"Base URL"},"notify_on_issue":{"description":"Desktop notification when a status widget or gateway becomes unhealthy.","label":"Notify on new issues"},"ok_color":{"label":"Healthy color"},"refresh_interval":{"description":"How often to poll the API.","label":"Refresh interval (seconds)"},"show_label":{"description":"Display OK / issues count next to the icon.","label":"Show status text on bar"},"warn_color":{"label":"Issue color"},"web_ui_url":{"description":"Optional alternate URL for “Open UI”. Defaults to base URL.","label":"Web UI URL override"}},"status":{"message":"{message}","widget":"{name}: {status}"},"tabs":{"gateways":"Gateways","interfaces":"Interfaces","logs":"Logs","rules":"Rules","services":"Services","status":"Status"},"title":"OPNsense","widget":{"label_issues":"{n}","label_ok":"OK","refresh_requested":"Refreshing OPNsense…","tooltip_down":"Unreachable: {error}","tooltip_issues":"{host} · {issues} issue(s) · {detail}","tooltip_missing":"Configure base URL + API key/secret in plugin settings","tooltip_ok":"{host} · healthy · {ifaces} interfaces · load {load}"}},"oppo-pods":{"notify":{"mode_changed":"Mode: %s"},"panel":{"battery":"Battery","case":"Case","case_offline":"Closed","charging":"Charging","guidance":"Connect your earbuds via Bluetooth to view battery status and control noise cancellation modes.","left":"Left","mode":{"anc":"Noise Cancellation","off":"Off","transparency":"Transparency"},"noise_control":"Noise Control","right":"Right","status":{"connected":"Connected","disconnected":"Not Connected"},"title":"OPPO Pods"},"plugin":{"description":"Battery monitor and active noise cancellation (ANC) control for OPPO, OnePlus, and realme Bluetooth earbuds","name":"OPPO Pods"},"settings":{"device_mac":{"description":"Bluetooth MAC address of your earbuds. Leave blank to auto-detect the connected device.","label":"Earbuds MAC Address"},"hide_when_disconnected":{"description":"Hide the bar widget when the earbuds are not connected.","label":"Hide when disconnected"}},"widget":{"action":{"left_click":"Open Controls","right_click":"Cycle Noise Mode"},"mode":"Mode","not_connected":"Earbuds not connected"}},"owntone-control":{"panel":{"activate":"Activate","active_many":"active","active_one":"active","add_to_queue":"Add to queue","back":"Back","close":"Close","deactivate":"Deactivate","library_albums":"Albums","library_artists":"Artists","library_empty":"Nothing here","library_error":"Couldn't load the library","library_genres":"Genres","library_playlists":"Playlists","library_radio":"Radio","library_search":"Search","library_title":"Library","live_stream":"Live Stream","loading":"Loading…","master_volume":"Master volume","mute":"Mute","next":"Next","no_track":"Nothing playing","pause":"Pause","play":"Play","play_now":"Play now","prev":"Previous","refresh":"Refresh","repeat":"Repeat","search":"Search","search_hint":"Type an artist or album name","search_placeholder":"Search artist or album…","shuffle":"Shuffle","speaker_fallback":"Speaker","speakers_title":"Audio Outputs","stop":"Stop","tab_library":"Library","tab_player":"Player","title":"OwnTone","unmute":"Unmute"},"settings":{"glyph":{"description":"Bar widget icon","label":"Icon"},"host":{"description":"host:port of your OwnTone server, e.g. 192.168.1.50:3689","label":"OwnTone host"},"password":{"description":"OwnTone HTTP password (stored and shown in plain text in settings)","label":"Password"},"poll_seconds":{"description":"How often to refresh now-playing/volume from OwnTone","label":"Poll interval (seconds)"},"username":{"description":"OwnTone HTTP username, leave empty if your server has no authentication","label":"Username"}},"unreachable":"OwnTone: unreachable","widget_tooltip":"Open OwnTone Server"},"paged-todo":{"bar":{"todo_count_plural":"{count} todos","todo_count_singular":"{count} todo"},"settings":{"export_empty_sections":{"description":"Include pages that have no tasks in Markdown exports.","label":"Export empty sections"},"export_format":{"description":"File format used by the panel's Export button.","json":"JSON","label":"Export format","markdown":"Markdown"},"export_path":{"description":"Folder where Markdown or JSON exports are written.","label":"Export directory"},"priority_high_color":{"description":"Color used for high-priority tasks.","label":"High priority color"},"priority_low_color":{"description":"Color used for low-priority tasks.","label":"Low priority color"},"priority_medium_color":{"description":"Color used for medium-priority tasks.","label":"Medium priority color"},"show_completed":{"description":"Show completed tasks in the current page.","label":"Show completed todos"},"use_custom_colors":{"description":"Replace theme colors with the three colors below.","label":"Use custom priority colors"}}},"pass":{"notification":{"copied":"Password copied.","copy_failed":"Failed to copy password.","store_not_found":"Password store not found.","unlocking":"Unlocking GPG key…"},"settings":{"refresh_interval":{"description":"How often to rescan the password store, in seconds.","label":"Refresh interval (seconds)"}}},"phone-connect":{"action":{"accept":"Accept","browse":"Browse","clipboard":"Clipboard","pair":"Pair","ping":"Ping","refresh":"Refresh","reject":"Reject","ring":"Ring","share":"Share","sms":"SMS","switch":"Switch device","unpair":"Unpair"},"error":{"accept_failed":"Failed to accept pairing","browse_failed":"Failed to browse device","cli_failed":"Command failed","clipboard_failed":"Failed to send clipboard","no_backend":"No backend","pairing_failed":"Pairing failed","pick_failed":"Failed to open file picker","pick_in_progress":"A file picker is already open","ping_failed":"Failed to send ping","reject_failed":"Failed to reject pairing","ring_failed":"Failed to ring device","share_failed":"Failed to share","unpair_failed":"Unpair failed"},"media":{"mute":"Mute","next":"Next","pause":"Pause","play":"Play","previous":"Previous","stop":"Stop","unmute":"Unmute"},"notify":{"clipboard_sent":"Clipboard sent","file_shared":"Sending file to device...","opening_browser":"Opening file browser...","paired":"Device paired","pairing_sent":"Pairing request sent","ping_sent":"Ping sent to {name}","ringing":"Ringing {name}...","sms_sent":"SMS sent","unpaired":"Device unpaired"},"panel":{"battery":"Battery","close":"Close","devices_connected":"{connected} connected","empty":"No devices found. Pair a device in KDE Connect.","image_path":"Custom Image","network":"Network","no_media":"No media playing","no_recent_images":"No recent images found","now_playing":"Now Playing","paired":"Paired","pairing":"Pairing","recent_images":"Recent Images","sms":"Send SMS","sms_dest":"Phone number","sms_msg":"Message","sms_send":"Send","title":"Phone Connect","type":"Type","unknown":"unknown","unpaired":"Unpaired"},"settings":{"battery_display":{"description":"Choose whether the bar widget shows the battery icon, percentage, both, or neither.","hidden":"Hidden","icon":"Icon only","icon_and_percent":"Icon and percentage","label":"Battery Display","percent":"Percentage only"},"custom_image":{"description":"Set a custom image for the selected device. Leave empty for default icon.","label":"Device Image"},"device_alias":{"description":"Custom display name for the selected device.","label":"Device Alias"},"enable_charging_animation":{"description":"Highlight the bar widget when the device is charging.","label":"Show Charging Fill"},"enable_clipboard_action":{"description":"Show a quick action to send the clipboard to the device.","label":"Show Clipboard Action"},"language":{"description":"Display language","en":"English","label":"Language","zh-hans":"简体中文","zh_hans":"简体中文"},"max_recent_images":{"description":"Number of recent images to display.","label":"Max Recent Images"},"migrated":{"description":"Edit these directly in the panel: click the device's avatar to change its image, click its name to rename it. Per-device and saved automatically.","label":"Device image and name"},"panel_placement":{"attached":"Attached to bar","description":"How the details panel opens: attached to the bar, or floating.","floating":"Floating (center)","label":"Panel Placement","widget":"Below widget (floating)"},"scan_subdirectories":{"description":"Recursively scan subdirectories of the recent images path.","label":"Scan Subdirectories"},"show_device_name":{"description":"Show the selected device's name or alias in the bar widget.","label":"Show Device Name"},"show_device_placeholder":{"description":"Show the device graphic in the details panel.","label":"Show Device Placeholder"},"show_ongoing_media":{"description":"Show media currently playing on the phone.","label":"Show Ongoing Media"},"state_update_interval":{"description":"Seconds between automatic device state refreshes. 0 disables auto-refresh.","label":"State Update Interval"}},"status":{"connected":"Connected","no_backend":"KDE Connect not running","no_devices":"No devices","not_paired":"Not paired","offline":"Offline","unavailable":"Unavailable"}},"phone-operate":{"action":{"browse":"Browse","cast":"Cast","clipboard":"Clipboard","connect":"Connect","disconnect":"Disconnect","pair":"Pair","ping":"Ping","refresh":"Refresh","ring":"Ring","share":"Share","stop":"Stop","unpair":"Unpair","usb":"USB Mode"},"error":{"browse_failed":"Failed to browse device","cast_failed":"Cast failed","cli_failed":"Command failed","conn_failed":"Wireless connection failed","conn_hint":"Could not connect to the debug port. On your phone's Wireless debugging main screen (not the pairing popup), read the port under \"IP address & Port\" and enter it in the Debug port field, then retry.","device_offline":"Device paired but offline. Keep the phone's screen on, confirm \"IP address & Port\" on the Wireless debugging main screen, enter that port in the Debug port field and retry.","device_offline_hint":"Device is offline.","no_device":"No device connected","no_device_hint":"Connect a device first.","pair_failed":"Pairing failed","pick_failed":"Failed to open file picker","pick_in_progress":"A file picker is already open","share_failed":"Failed to share"},"media":{"mute":"Mute","next":"Next","pause":"Pause","play":"Play","previous":"Previous","stop":"Stop","unmute":"Unmute"},"notify":{"browse_failed":"Open browse failed","disconnected":"Disconnected: {name}","file_shared":"Sending file to device...","network_recovered":"Network recovered, retrying auto-connect","opening_browser":"Opening file browser...","pair_success":"Paired successfully","retry_exhausted":"Failed to connect to {name} after 3 retries. Please confirm the phone is online.","sms_sent":"SMS sent","started":"Mirroring started: {name}","stopped":"Mirroring stopped: {name}","uninstalled":"Plugin uninstalled. Close any running scrcpy windows manually."},"panel":{"adb_hint":"ADB device — cast from the action panel.","available":"AVAILABLE","bit_rate":"Bitrate","cancel":"Cancel","cast_offline_hint":"Device is not reachable by adb. Check the USB cable / wireless debugging, then retry.","clear":"Clear","close":"Close","confirm":"OK","contact_name":"Contact name","debug_port_placeholder":"Debug port (default 5555)","devices":"DEVICES","devices_connected":"{connected} connected","edit_name":"Edit contact name","empty":"No devices found. Pair a device in KDE Connect.","fav_add_tooltip":"Favorite this number","fav_empty":"No favorite numbers yet","max_fps":"FPS","max_size":"Resolution","no_matches":"No matching contacts","no_media":"No media playing","now_playing":"Now Playing","pair_add":"Pair new wireless device","pair_addr_placeholder":"IP:Port (e.g. 192.168.1.3:39001)","pair_btn":"Pair (ADB)","pair_code_placeholder":"Pairing code (6 digits)","pair_first_hint":"On your phone's Wireless debugging main screen: the debug port is under \"IP address & Port\". If you can't find it, leave it at 5555 — the plugin will also try 5555 and the pairing port automatically. The pairing port + 6-digit code are in \"Pair device with pairing code\".","pair_first_title":"First-time wireless setup","pair_hint":"The **pairing port** is one-time — used by `adb pair` with the 6-digit code. The **debug port** is for long-term `adb connect` / scrcpy. After pairing, use the debug port to connect.","pair_missing":"Enter both the pairing port and code first.","pair_port_placeholder":"Pairing port","params":"Cast Parameters","params_hint":"Applies to the selected device only","phone_placeholder":"ex: 1234567890","preset_custom":"Custom","preset_hd":"HD","preset_perf":"Balanced","preset_save":"Power save","record":"Record","record_desc":"Record the mirror to a file","sms":"Send SMS","sms_dest":"Phone number","sms_msg":"Message","sms_send":"Send","start_cast":"Start Casting","turn_screen_off":"Screen Off","turn_screen_off_desc":"Phone screen off while mirroring"},"settings":{"battery_display":{"description":"Choose whether the bar widget shows the battery icon, percentage, both, or neither.","hidden":"Hidden","icon":"Icon only","icon_and_percent":"Icon and percentage","label":"Battery Display","percent":"Percentage only"},"bit_rate":{"description":"Video stream bitrate in megabits per second.","label":"Bitrate (Mbps)"},"enable_charging_animation":{"description":"Highlight the bar widget when the device is charging.","label":"Show Charging Fill"},"enable_clipboard_action":{"description":"Show a quick action to send the clipboard to the device.","label":"Show Clipboard Action"},"language":{"description":"Display language","en":"English","label":"Language","zh-hans":"简体中文"},"max_fps":{"description":"Cap the video frame rate.","label":"Max FPS"},"max_size":{"description":"Limit the long edge of the video stream (pixels).","label":"Max Resolution"},"migrated":{"description":"Edit these directly in the panel: click the device's avatar to change its image, click its name to rename it. Per-device and saved automatically.","label":"Device image and name"},"panel_placement":{"attached":"Attached to bar","description":"How the details panel opens: attached to the bar, or floating.","floating":"Floating (center)","label":"Panel Placement","widget":"Below widget (floating)"},"poll_interval":{"description":"How often to scan for devices.","label":"Poll Interval (ms)"},"record":{"description":"Record the screen to a file.","label":"Record"},"record_max_files":{"description":"Maximum number of recording files to keep. Oldest are deleted.","label":"Max Recordings"},"show_device_name":{"description":"Show the selected device's name or alias in the bar widget.","label":"Show Device Name"},"state_update_interval":{"description":"Seconds between automatic device state refreshes. 0 disables auto-refresh.","label":"State Update Interval"},"turn_screen_off":{"description":"Turn off the phone screen while mirroring.","label":"Turn Screen Off"}},"status":{"connected":"Connected","disconnected":"Disconnected","mirroring":"Mirroring","no_backend":"KDE Connect not running","no_devices":"No devices","offline":"Offline"}},"pixel-shift":{"cause":{"bright":"very bright","dynamic":"changing content","horizontal":"horizontal edge","outside":"outside the bar","static":"static detail","wide":"wide solid fill"},"hint":{"bright":"Very bright pixels wear fastest. Dim this colour or use a thinner font weight.","dynamic":"This content changes often, so the estimate drops as sampling continues.","horizontal":"Horizontal shifting never blurs horizontal edges. Allow vertical shift, or soften the edge.","outside":"Not part of the bar, for example a window border. Pixel Shift cannot move it.","static":"Stays put even with shifting. A wider range for this group helps.","wide":"Shifting cannot blur a solid fill this wide. Lower its opacity or use an outline style."},"hotspot":{"level":{"high":"high","low":"low","medium":"medium"},"side":{"center":"Center group","left":"Left group","right":"Right group"}},"lab":{"allow_vertical":"Allow vertical shift","allow_vertical_note":"Moves the bar 1–2 px up and down. It blinks briefly every 30 min; windows keep their size.","anchored":"The {widget} widget is anchored, so the center group cannot move. Set anchor = false on it to let Pixel Shift shift the center.","apply":"Apply to bar","approximate":"The measurement was noisy, so these results are approximate. Check the spacer placement, then measure again.","auto":"Auto","best_so_far":"best so far {score}","calm":"Calm","cancel":"Cancel","chip_px":"{slot} ≤ {px} px","chip_vertical":"Vertical ±{px} px","close":"Close","curve_h":"horizontal only","curve_title":"Risk for each amount of movement","curve_v":"with vertical shift","discard":"Discard","error":"Measuring failed: {message}","exposure":{"count":{"one":"{count} sample","other":"{count} samples"},"first":"1 sample so far","none":"no samples yet","span":{"one":"{count} sample · {hours} h","other":"{count} samples · {hours} h"}},"glow_legend":"glow = where a ghost would form","hint_vertical":"Allow vertical shift","hotspots":"Hotspots","inspect_center":"Bar centre","inspect_title":"Hotspot {n} · {side}","live":"Live on {output} since {time}","manual":"Manual","manual_vertical":"Vertical","max":"Max protection","measure_again":"Measure again","mode":{"none":"No shift","strategy":"With strategy"},"movement":"Movement per spacer · 1 px every {minutes} min","moves_nothing":{"one":"One spacer moves nothing. Spacers move widgets only from the outer edge of a section: first in the start section, first or last in the center, last in the end section.","other":"{count} spacers move nothing. Spacers move widgets only from the outer edge of a section: first in the start section, first or last in the center, last in the end section."},"no_grim":"grim is not installed. Pixel Shift needs it to measure the bar.","no_hotspots":"No hotspots left. The strongest remaining spot reaches {worst} of 100.","not_optimized":"Not optimized yet","onboarding":{"body":"Spacers are invisible widgets. Pixel Shift changes their width over the day, which moves the widgets next to them by a few pixels.","open_settings":"Open bar settings","steps":"1. Open the bar settings and add the **Pixel Shift** spacer widget.\n2. Put one at the **start of the left section**, one at the **end of the right section**, and one on **each side of the center section**.\n3. Come back here: Pixel Shift measures the bar and finds the best strategy by itself.","title":"Add Pixel Shift spacers to your bar"},"optimized":"Optimized {time} · {count} strategies · {seconds} s","optimizing":"Optimizing… {percent}%","optimizing_note":"Runs in small slices between frames, so the shell stays responsive.","overview":"Whole bar","paused":"Paused: the bar is not shifting.","pick_names":{"balanced":"Balanced","calm":"Calm","max":"Maximum","strong":"Strong"},"pick_note":"At {px} px the risk drops to {score} (no shift: {none}). {more} px more would save only {save}.","pick_note_flat":"At {px} px the risk drops to {score} (no shift: {none}); more movement would not lower it.","pick_note_last":"At {px} px, the most movement allowed, the risk drops to {score} (no shift: {none}).","pick_note_tail":"Re-optimizes when the bar changes and every night.","pick_title":"{name} protection · {px} px","pick_title_v":"{name} protection · {px} px · ±{v} px vertical","placement":{"center":"Make {widget} the first or last item of the bar's center section.","end":"Make {widget} the last item of the bar's end section, or it cannot move anything.","start":"Make {widget} the first item of the bar's start section, or it cannot move anything."},"preview":"Preview · not applied","reoptimize":"Optimize again","rescan":"Measure the bar again","resume":"Resume","revert":"Undo last apply","revert_tip":"Back to the strategy that was live before","risk_title":"Visible burn-in risk","scale_end":"100 = a white line that never moves","scale_start":"0 · safe","scanning":"Measuring the bar. It twitches for a moment.","spot_change":"peak {a} → {b}","spot_meta":"{side} · {x0}–{x1} px · peak {peak} of 100","starting":"Starting…","strategy":"Strategy","strip_none":"No shift","strip_strategy":"With strategy","strongest_first":"strongest first","title":"Burn-in Lab","updating":"updating…","vertical_error":"Vertical shift had no effect (a GUI setting overrides it) and was turned off.","view":{"bar":"Bar","ghost":"Ghost","risk":"Risk"},"view_note":{"bar":"Your bar as captured","ghost":"What it would leave on a grey screen","risk":"Where the wear concentrates"},"waiting":"Waiting for the first measurement…","with_strategy":"with strategy","without_shift":"{value} without shifting","zoom":"{zoom}× zoom"},"settings":{"max_shift":{"description":"Upper limit for how far any group may move.","label":"Maximum shift (px)"},"panel_profile":{"description":"Which OLED technology your screen uses. Changes how much each colour channel wears.","label":"Panel type","options":{"generic":"Generic OLED (blue wears fastest)","qdoled":"QD-OLED (Samsung panels)","woled":"WOLED (LG panels)"}},"sample_minutes":{"description":"How often the bar is captured to learn what it shows over the day.","label":"Sampling interval (minutes)"},"step_minutes":{"description":"Time between 1 px moves. Spacers use slightly different multiples so they never move in step.","label":"Step time (minutes)"}},"slot":{"center":"Center","center_l":"Center left","center_r":"Center right","left":"Left","right":"Right","unknown":"Spacer"},"toggle":{"off":"Pixel Shift paused","on":"Pixel Shift"}},"podcasts":{"settings":{"default_volume":{"description":"Volume for mpv playback, 0-100. Used on play and until the widget, panel or launcher changes it.","label":"Default volume"},"max_length":{"description":"Maximum characters of the episode name shown in the bar, 5-60.","label":"Episode name length"},"mpris":{"description":"Expose playback to the desktop media player (Noctalia media widget, playerctl) via mpv-mpris when its script is found.","label":"MPRIS integration"},"mpris_path":{"description":"Custom path to mpris.so. Empty means auto-detect in ~/.config/mpv/scripts and /usr/lib/mpv-mpris.","label":"mpv-mpris path"},"mpv_bin":{"description":"mpv executable used for headless playback. Change only if mpv is not on PATH.","label":"mpv binary"},"podcast_feeds":{"description":"Extra podcast RSS URLs, always subscribed alongside the ones added in the panel.","label":"RSS feeds"},"podindex_key":{"description":"API key from podcastindex.org. Enables Podcast Index search next to iTunes. Empty disables it.","label":"Podcast Index key"},"podindex_secret":{"description":"API secret from podcastindex.org. Needed together with the key.","label":"Podcast Index secret"},"search_limit":{"description":"How many episodes to show per podcast and how many iTunes results to fetch, 3-30.","label":"Results per list"},"show_name":{"label":"Show episode name"}}},"pomodoro":{"button":{"pause":"Pause","reset":"Reset","reset-all":"Reset All","resume":"Resume","skip":"Skip","start":"Start"},"long-break":"Long Break","notification":{"long-break-complete":"Long break over! Ready for a new cycle?","short-break-complete":"Break over! Ready to focus?","work-complete":"Work session complete! Time for a break."},"session":"Session","settings":{"auto-start-breaks":{"description":"Automatically start break timer after work session","label":"Auto-start Breaks"},"auto-start-work":{"description":"Automatically start work timer after break","label":"Auto-start Work"},"bypass-noctalia-sound-globals":{"description":"Ignore Noctalia Shell's global sound settings. Use this to make the alarm sound play even when sounds are disabled in Noctalia config/GUI. Uses pw-play to play the sound directly through PipeWire, make sure to have it installed.","label":"Bypass Noctalia Sound Globals"},"enable-work-timer-sound":{"description":"Play tick/tock sounds each second while a work session is running. Break timers stay silent.","label":"Enable Work Timer Sound"},"long-break-duration":{"description":"Duration of long breaks in minutes","label":"Long Break Duration"},"sessions-before-long-break":{"description":"Number of sessions before a long break","label":"Sessions Before Long Break"},"short-break-duration":{"description":"Duration of short breaks in minutes","label":"Short Break Duration"},"use-bundled-alarm-sound":{"description":"Uses bundled alarm sound when work/break is over. Make sure to silence the default notification sound with filters. Read the plugin docs for more info.","label":"Use Bundled Alarm Sound"},"widget":{"glyph-break":{"description":"Name of the icon that appears during a break.","label":"Break Icon"},"glyph-main":{"description":"Name of the icon that appears when idle.","label":"Main Icon"},"glyph-work":{"description":"Name of the icon that appears when working.","label":"Work Icon"}},"work-duration":{"description":"Duration of each work session in minutes","label":"Work Duration"}},"short-break":"Short Break","work":"Work"},"portctl":{"categories":{"cloud":"Cloud","containers":"Containers","databases":"Databases","development":"Development","other":"Other","servers":"Servers"},"panel":{"cancel":"Cancel","kill":"Kill","kill_confirm":"Kill {name}?","killing":"Killing {name}…","no_ports":"No listening ports","no_results":"No results for \"{query}\"","pid_copied":"Copied PID {pid}","search_placeholder":"Search port, process, PID…","tcp":"TCP","udp":"UDP"},"service":{"kill_failed":"Failed to kill PID {pid}","ss_not_found":"ss (iproute2) not found — install the iproute2 package","terminated":"Process {pid} terminated"},"settings":{"glyph":{"description":"Icon shown in the bar.","label":"Glyph"},"hide_system_ports":{"description":"Hide ports below 1024 (privileged/root ports)","label":"Hide system ports"},"hide_unknown_ports":{"description":"Hide ports whose process info is not accessible (e.g. rootlessport, root-owned processes without sudo)","label":"Hide unknown ports"},"ignore_list":{"description":"Comma-separated process name substrings to hide (e.g. discord,chrome,steam)","label":"Ignore processes"},"ignore_ports":{"description":"Comma-separated port numbers to hide (e.g. 37700,6463)","label":"Ignore ports"},"refresh_interval":{"description":"Seconds between port scans","label":"Refresh interval"}},"title":"Portctl"},"portforward":{"actions":"Actions","add":"Add","add_profile":"Add profile","back":"Back","backend":{"failed":"Could not run the forwarding backend.","invalid":"The forwarding backend returned an invalid response.","missing":"The forwarding backend is unavailable. Re-enable the plugin to retry setup.","preparing":"Checking forwarding setup…"},"cancel":"Cancel","close":"Close","confirm_delete":"Confirm delete","connect":"Connect","copied":"Copied","copy":"Copy local address","copy_failed":"Could not copy the address.","delete":"Delete","delete_hint":"Delete this saved profile?","delete_live_hint":"Disconnect and delete this profile? Its forwarded ports will close.","destination_warning":"A destination reported a problem.","details":"Details & logs","disconnect":"Disconnect","disconnect_delete":"Disconnect & delete","edit":"Edit","edit_ports":"Edit ports","editor":{"add_port":"Add port","browser":"Open with","check_host":"Check host","edit":"Edit profile","host":"SSH destination","host_help":"Uses your SSH config, keys and agent.","host_hint":"SSH alias or user@host","host_required":"Enter an SSH destination first.","live_hint":"Save & reconnect briefly closes these ports while applying your changes.","local_port":"Local port","loopback":"Connect after saving to start forwarding. Local addresses are available only on this computer.","mapping":"Port mapping","mapping_help":"This computer → SSH host","name":"Profile name","name_hint":"e.g. Development","new":"New profile","ports":"Forwarded ports","remote_host":"Remote host","remote_port":"Remote port","remove_port":"Remove port"},"empty":"Create a profile to forward ports through SSH.","empty_title":"Your connections, in one place","expand":"Expand profile","issue":{"authentication":"Authentication failed","authentication_hint":"Check the SSH user and key. Unlock your SSH agent, then retry.","connection":"Connection failed","connection_hint":"Check the SSH destination and connection details, then retry.","host_key":"Host key needs verification","host_key_hint":"Verify the SSH host in a terminal, then retry.","port_conflict":"Port conflict","port_hint":"Stop the existing forward or application, then retry. You can also edit the local ports.","port_unavailable":"A configured local port is unavailable."},"logs":"Logs","loopback":"Local addresses are available only on this computer.","open":"Open in browser","port":"port","ports":"ports","reconnecting_hint":"Connection interrupted. Retrying automatically.","retry":"Retry","save":"Save profile","save_reconnect":"Save & reconnect","state":{"connected":"Connected","connecting":"Connecting…","disconnected":"Disconnected","error":"Connection failed","reconnecting":"Reconnecting…"},"title":"Port forwarding","validation":{"duplicate":"Already used.","name":"Enter a name.","port":"Use 1–65535.","remote_host":"Enter a host."}},"printers":{"notifications":{"add_failed":"Could not add {printer}.","added":"{printer} added.","clipboard_empty":"The clipboard holds no text to print.","missing_command":"{command} is not installed.","no_default":"No default printer. Pick one in the panel first.","printer_stopped":"{printer} has stopped. Check the printer, then re-enable it from CUPS.","remove_failed":"Could not remove {printer}.","removed":"{printer} removed.","sent":"Clipboard sent to {printer}.","status":{"one":"{printer} · {count} job queued","other":"{printer} · {count} jobs queued"}},"panel":{"add":"Add","add_note":"Added as driverless IPP Everywhere queues. A printer that needs a vendor driver has to be set up in Printer settings instead.","add_printer":"Add a printer","already_added":"Already set up as a queue","cancel":"Cancel job","cancel_all":"Cancel all","cancel_all_confirm":"Confirm cancelling every job","discovered":"available, not yet added","no_default":"no default printer","no_devices":"No printers found on the network or USB","no_jobs":"Queue is empty","no_printers":"No printers found","open_cups":"Open CUPS","plugin_settings":"Plugin settings","print_clipboard":"Print clipboard","printer_settings":"Printer settings","printers":"Printers","queue":{"one":"Queue ({count} job)","other":"Queue ({count} jobs)"},"queued_as":"already set up as {name}","refresh":"Refresh now","remove":"Remove printer","remove_confirm":"Confirm removing {printer}","set_default":"Set default","state_default":"{state} · default","will_be_named":"will be added as {name}"},"settings":{"cups_url":{"description":"The URL opened by the \"Open CUPS\" button, through xdg-open.","label":"CUPS web interface"},"notify_on_fault":{"description":"Show a notification the first time a printer reports itself as disabled or stopped.","label":"Notify when a printer stops"},"poll_interval_seconds":{"description":"How often lpstat is queried for printer states and the job queue.","label":"Poll interval (seconds)"},"settings_command":{"description":"The command run by the \"Printer settings\" button, e.g. system-config-printer. Arguments are split on spaces; it is not run through a shell.","label":"Printer settings command"},"show_when_idle":{"description":"Keep the bar widget visible even when the queue is empty and no printer has stopped. Off by default, so it only appears when there is something to see.","label":"Always show the bar widget"}},"title":"Printers","tooltip":{"default":"Default","queue":"Queue","state":"State","stopped":"Printer stopped"}},"prismlauncher-instances":{"no_instances":{"subtitle":"Filter: ","title":"No instances found"},"settings":{"launcher_exec_command":{"description":"Start Prismlauncher or fork of choice","label":"Prism Executable"},"prismlauncher_path":{"description":"Path to PrismLauncher","label":"PrismLauncher path"}}},"processes":{"days":{"one":"day","other":"days"},"hours":{"one":"hour","other":"hours"},"last_update":"Last updated","minutes":{"one":"minute","other":"minutes"},"num_system_processes":"system","num_user_processes":"user","procs":{"applications_header":"Applications","copied_to_clipboard":"Copied to clipboard","copy_failed":"Copy failed","nodata":"No data available","process":{"cpu":{"label":"CPU","tip":"CPU Usage"},"disk":{"label":"DISK","tip":"Disk I/O Usage"},"mem":{"label":"MEM","tip":"Memory Usage"},"name":{"label":"Name","tip":"Process Name"},"pid":{"label":"PID","tip":"Process ID"},"swap":{"label":"SWAP","tip":"Swap Usage"},"username":{"label":"USER","tip":"Process Owner"}},"process_buttons":{"cancel":"Close the process view","force_kill":"Force kill (SIGKILL) the selected process. Close the process view.","kill":"Kill (SIGINT) the selected process. Close the process view."},"processes_header":"Processes","system_info":{"unknown":"Linux"}},"search_placeholder":"type to search","settings":{"delay":{"description":"Select the refresh rate (seconds)","label":"Refresh rate"},"process_hover_background":{"description":"Select the background color for hovered process rows","label":"Process hover background"},"process_hover_color":{"description":"Select the text color for hovered process rows","label":"Process hover text color"},"show_apps":{"description":"You can toggle this option to display or hide the applications section in the panel.","label":"Show applications"},"show_processes":{"description":"You can toggle this option to display or hide processes section in the panel.","label":"Show processes"},"sort_column_background":{"description":"Select the background color for the sort column","label":"Sort column background"},"sort_column_color":{"description":"Select the text color for the sort column","label":"Sort column text color"}},"system_processes_label":"System","system_processes_tip":"Show only system processes","tip_clear_search":"Clear search text","tip_close":"Close","tip_options":"View options","tip_settings":"Plugin settings","title":"Processes","total_processes":"Total processes","user_processes_label":"User","user_processes_tip":"Show only user processes"},"procmon":{"panel":{"col":{"cmd":"COMMAND","cpu":"CPU%","cpu_raw":"CPU","mem":"MEM%","mem_raw":"MEM","pid":"PID","rss":"RSS","stat":"S"},"count":"{n} processes","keys_hint":"Ctrl+F filter · Ctrl+D kill selected · arrows move","kill_tip":"Kill {pid}","load":"Load","no_processes":"No matching processes","refresh":"Refresh","refreshed_at":"Updated {time}","search_placeholder":"Filter by name, user or PID","sort_asc":"asc","sort_desc":"desc","title":"Processes"},"settings":{"glyph":{"description":"Glyph shown in the bar widget.","label":"Widget icon"},"icon_only":{"description":"Show only a CPU icon in the bar widget; details move to the tooltip.","label":"Icon only"},"kill_command":{"description":"Command run against a selected PID (the PID is appended). Empty uses kill -TERM.","label":"Kill command"},"refresh_interval":{"description":"How often the process list is resampled.","label":"Refresh interval (ms)"},"show_count":{"description":"Append the number of processes to the bar widget text.","label":"Show process count"},"sort_by":{"description":"Column the process table is sorted by when the panel opens.","label":"Default sort column","options":{"cmd":"Command","cpu":"CPU","mem":"Memory","pid":"PID"}}},"widget":{"tooltip":"CPU {cpu}%  RAM {ram}%  ·  {n} processes"}},"profile-switcher":{"common":{"add":"Add","cancel":"Cancel","create":"Create","load":"Load","loading":"Loading...","manual":"Manual","next":"Next","no_schedule":"No schedule","plugin_name":"Profile Switcher","previous":"Previous","profiles":"Profiles","refresh":"Refresh","save":"Save"},"editor":{"add_monitor_override":"Add monitor override","auto":"Auto","automatic":"Automatic","back_to_profiles":"Back to profiles","builtin":"Builtin","builtin_palette":"Builtin palette","community":"Community","community_palette":"Community palette","community_palette_id":"Community palette id","community_palettes_not_loaded":"Community palettes not loaded","connector_placeholder":"DP-1","could_not_load_palettes":"Could not load palettes: {error}","could_not_read_directory":"Could not read directory: {error}","create_apply":"Create & Apply","current_community_palette":"Current community palette","custom":"Custom","custom_palette":"Custom palette","dark":"Dark","default":"Default","default_wallpaper":"Default wallpaper","edit_profile":"Edit {name}","filename":"Filename: ~/.config/noctalia/profiles/{id}.toml","friday":"Fr","from":"From","general":"GENERAL","light":"Light","loading_community_palettes":"Loading community palettes...","manual":"Manual","manual_description":"This profile is never activated by the scheduler.","manual_profile":"Manual profile","monday":"Mo","name":"Name","new_profile":"New Profile","no_custom_palettes":"No custom palettes found","no_images_found":"No images found in directory","no_profile_selected":"No profile selected","no_wallpaper_directory":"No wallpaper directory configured","no_wallpaper_selected":"No wallpaper selected","open_from_selector":"Open the editor from the profile selector.","page":"Page {page} / {pages}","palette":"PALETTE","palettes_loaded":"{count} palettes loaded","profile_id":"Profile ID","profile_id_placeholder":"home / work / gaming","profile_name_placeholder":"Profile name","range":"{start}-{end} of {total}","remove_monitor":"Remove {monitor}","saturday":"Sa","save_apply":"Save & Apply","scan":"Scan","schedule":"SCHEDULE","select_community_palette":"Select community palette","select_custom_palette":"Select custom palette","select_palette":"Select palette","select_scheme":"Select scheme","sunday":"Su","theme_mode":"THEME MODE","thursday":"Th","tuesday":"Tu","until":"Until","wallpaper":"Wallpaper","wallpaper_count":"{count} wallpapers","wallpaper_directory":"Wallpaper directory","wallpaper_directory_placeholder":"/path/to/wallpapers","wallpaper_for_monitor":"Wallpaper for {monitor}","wallpaper_not_found":"Wallpaper not found","wallpaper_scheme":"Wallpaper scheme","wallpaper_section":"WALLPAPER","wednesday":"We","zero_wallpapers":"0 wallpapers"},"error":{"connector_empty":"Connector is empty","default_wallpaper_not_found":"Default wallpaper not found:\n{path}","missing_profile_id":"Missing profile id","monitor_wallpaper_not_found":"{monitor} wallpaper not found:\n{path}","profile_does_not_exist":"Profile does not exist","profile_exists":"Profile already exists: {id}","profile_id_invalid":"Profile ID must contain only letters, numbers, _ or -","profile_not_found":"Profile not found: {id}","save_profile":"Could not save profile: {error}","unknown_command":"Unknown command: {command}"},"message":{"active":"Active: {id}","applied":"Applied {name}","created":"Created {name}","no_active_profile":"No active profile","saved":"Saved {name}"},"panel":{"active_profile":"Active profile: {name}","create_profile":"Create profile","no_active_profile":"No active profile","no_profiles":"No profiles found","subtitle":"Wallpaper · Palette · Theme","title":"Appearance Profiles"}},"proton-pass":{"copied-password":"Copied password to clipboard","failed-list-vaults":"Failed to list vaults. Are you logged into pass-cli?","item-not-found":"Item not found","loading-items":"Loading Items…","loading-vaults":"Loading Vaults…"},"pulsar-mouse":{"settings":{"charging_color":{"description":"Used while the mouse is charging","label":"Charging Color"},"color":{"description":"Accent color for the percentage text and progress bar","label":"Color"},"error_color":{"description":"Used when the mouse or the pulsar-mouse CLI can't be found","label":"Error Color"},"glyph_size":{"label":"Glyph Size"},"normal_color":{"description":"Glyph color at a normal battery level, and on a wired mouse","label":"Normal Color"},"show_percent":{"description":"Turn off to rely on just the glyph (and progress bar, if shown)","label":"Show Percentage Text"},"show_progress":{"label":"Show Progress Bar"},"warning_color":{"description":"Used at or below the mouse's Low Power Mode threshold","label":"Low Battery Color"}},"ui":{"angle-snap-label":"Angle Snap","brightness-label":"Brightness","charging":"(charging)","debounce-label":"Debounce","dpi-label":"DPI","led-label":"LED Effect","loading":"Loading...","lod-label":"Lift-off Distance","low-power-label":"Low Power Mode","motion-sync-label":"Motion Sync","no-mouse":"Mouse not found","not-installed":"pulsar-mouse not found","polling-label":"Polling Rate","power-saving-label":"Wireless Power Saving","profile-label":"Profile","ripple-label":"Ripple Control","signal-label":"Signal","speed-label":"Speed","tab-advanced":"Advanced","tab-lighting":"Lighting","tab-power":"Power","tab-sensor":"Sensor","wired":"Wired","write-failed":"Failed to apply - is the mouse connected?"}},"qrcode":{"panel":{"error":{"copy_failed":"failed to copy the QR code.","generate_failed":"failed to generate the QR code.","missing_qrencode":"qrencode not installed."},"placeholder":"Enter text or url...","status":{"copied":"QR code copied to clipboard.","error":"Error: {message}","generating":"Generating...","idle":"Enter some text, then press Generate.","idlebis":"Enter some text, then press Enter.","ready":"QR code ready. Scan it here or click it to copy."}},"settings":{"close_on_copy":{"description":"Close the panel when copying the QR code.","label":"Close on Copy"},"correction_level":{"description":"Specify error correction level.","h":"Highest","l":"Lowest","label":"Correction Level","m":"Medium","q":"High"},"generate_button":{"description":"Disable will submit on enter.","label":"Show Generate Button"},"keep_on_close":{"description":"Keep the input, QR Code, status etc when closing the panel.","label":"Keep on Close"},"notify":{"all":"All","description":"Controls the notifications, minimal only notifies when Close on Copy is used.","label":"Notify","minimal":"Minimal","none":"None"},"size":{"description":"Specify module size in dots (pixels).","label":"QR Code Size"},"titlebar":{"description":"Show panel name and buttons like settings and close.","label":"Show Titlebar"}},"widget":{"custom_image":{"description":"Path to a custom image; leave empty to use the icon glyph","label":"Custom image"},"glyph":{"description":"Icon glyph name","label":"Glyph"},"tooltip":"Generate a QR Code"}},"quill":{"panel":{"ask":"Ask","notes":"Notes","title":"Quill","todos":"Todos"},"settings":{"ai-backend":{"anthropic":"Anthropic (Claude)","desc":"Where AI features send requests. OpenCode Go uses your subscription; the CLI runs the opencode agent; the rest use their own API.","google":"Google Gemini","groq":"Groq","label":"AI provider","off":"Off","ollama":"Ollama (local)","openai":"OpenAI","openai-compatible":"OpenAI-compatible (custom)","opencode-cli":"opencode CLI","opencode-go":"OpenCode Go","openrouter":"OpenRouter"},"ai-base-url":{"desc":"Override the provider API base URL. Leave empty for the provider default. Required for a custom OpenAI-compatible endpoint, e.g. http://localhost:1234/v1.","label":"API base URL"},"ai-capture":{"desc":"Let the model turn a captured sentence into a todo or a note with tags and a due date.","label":"AI capture"},"ai-max-tokens":{"desc":"Maximum tokens per reply. 0 uses the provider's default, which is recommended: reasoning models can otherwise spend the whole budget thinking and return nothing.","label":"Max reply tokens"},"ai-model":{"desc":"Model id for the selected provider. OpenCode Go defaults to deepseek-v4-flash; set the provider's own model otherwise, e.g. gpt-4o-mini, claude-sonnet-4-5, gemini-2.0-flash, llama3.2.","label":"AI model"},"api-key":{"desc":"Optional. Stored in plain text in Noctalia's settings file, so prefer an environment variable or a key file where you can.","label":"API key"},"api-key-env":{"desc":"Name of an environment variable to read the key from, e.g. OPENAI_API_KEY. Checked before the provider's own defaults.","label":"API key environment variable"},"archive-file":{"desc":"Completed todos are moved here by Clear done. Hidden from the index.","label":"Archive file"},"daily-dir":{"desc":"Subfolder where the Today button creates YYYY-MM-DD notes.","label":"Daily notes folder"},"desktop-items":{"desc":"How many open todos the desktop widget shows.","label":"Desktop tile items"},"due-reminders":{"desc":"Notify once when a todo becomes due or overdue.","label":"Due reminders"},"git-debounce-ms":{"desc":"How long to wait after the last change before committing, in milliseconds.","label":"Commit delay"},"git-history":{"desc":"Commit the notes folder after changes. Off by default; enabling it runs git init if the folder is not already a repository.","label":"Git history"},"hide-when-empty":{"desc":"Hide the widget when there are no open todos and no notes.","label":"Hide when empty"},"icon-color":{"desc":"Icon color; defaults to the theme's primary. Turns red when something is overdue.","label":"Icon color"},"inbox-file":{"desc":"File inside the notes folder that quick captures are appended to.","label":"Inbox file"},"max-context-notes":{"desc":"How many notes are sent along with a question.","label":"Notes in AI context"},"notes-dir":{"desc":"Folder scanned for Markdown notes and todos. Created if it does not exist.","label":"Notes folder"},"poll-interval-ms":{"desc":"How often the folder is checked for changes, in milliseconds.","label":"Rescan interval"},"scan-depth":{"desc":"How many levels of subfolders to scan for .md files.","label":"Subfolder depth"},"show-label":{"desc":"Show the number of open todos next to the icon.","label":"Show count"}},"widget":{"due-today":"Due today","notes":"Notes","open":"Open todos","overdue":"Overdue"}},"quranwidget":{"settings":{"refresh_interval":{"description":"Time before another Ayah is shown","label":"Refresh Interval"},"show_translation":{"description":"Shows the translation or the tafsir of the Ayah below it","label":"Show Translation"},"translation_edition":{"am":{"sadiq":"Amharic: ሳዲቅ & ሳኒ ሐቢብ"},"ar":{"abdulbasitmurattal":"Arabic: عبد الباسط عبد الصمد المرتل (Abdul Basit)","baghawi":"Arabic: تفسير البغوي (Tafseer Al-Baghawi)","jalalayn":"Arabic: تفسير الجلالين (Jalal ad-Din al-Mahalli and Jalal ad-Din as-Suyuti)","minshawi":"Arabic: محمد صديق المنشاوي (Minshawi)","minshawimujawwad":"Arabic: محمد صديق المنشاوي (المجود) (Minshawy (Mujawwad))","miqbas":"Arabic: تنوير المقباس من تفسير بن عباس (Tafseer Tanwir al-Miqbas)","muyassar":"Arabic: تفسير المیسر (King Fahad Quran Complex)","qurtubi":"Arabic: تفسير القرطبي (Tafseer Al Qurtubi)","waseet":"Arabic: الـتـفـسـيـر الـوسـيـط (Tafseer Al-Waseet)"},"az":{"mammadaliyev":"Azerbaijani: Məmmədəliyev & Bünyadov (Vasim Mammadaliyev and Ziya Bunyadov)","musayev":"Azerbaijani: Musayev (Alikhan Musayev)"},"ba":{"mehanovic":"Bashkir: Kur'an - sa prevodom (značenja) na bosanski jezik, utemeljen na Ibn Kesirovom tumačenju, i kratki komentar (Quran translation by Muhamed Mehanovic)"},"ber":{"mensur":"Berber: At Mensur"},"bg":{"theophanov":"Bulgarian: Теофанов (Tzvetan Theophanov)"},"bn":{"bengali":"Bangla: মুহিউদ্দীন খান (Muhiuddin Khan)","hoque":"Bangla: জহুরুল হক"},"bs":{"korkut":"Bosnian: Korkut (Besim Korkut)","mlivo":"Bosnian: Mlivo (Mustafa Mlivo)"},"ce":{"magomedov":"Chechen: Chechen by Magomedov"},"cs":{"hrbek":"Czech: Hrbek (Preklad I. Hrbek)","nykl":"Czech: Nykl (A. R. Nykl)"},"de":{"aburida":"German: Abu Rida (Abu Rida Muhammad ibn Ahmad ibn Rassoul)","bubenheim":"German: Bubenheim & Elyas (A. S. F. Bubenheim and N. Elyas)","khoury":"German: Khoury (Adel Theodor Khoury)","zaidan":"German: Zaidan (Amir Zaidan)"},"description":"The language and edition of the translation","dv":{"divehi":"Divehi: ދިވެހި (Office of the President of Maldives)"},"en":{"ahmedali":"English: Ahmed Ali","ahmedraza":"English: Ahmed Raza Khan","arberry":"English: Arberry (A. J. Arberry)","asad":"English: Asad (Muhammad Asad)","daryabadi":"English: Daryabadi (Abdul Majid Daryabadi)","hilali":"English: Hilali & Khan (Muhammad Taqi-ud-Din al-Hilali and Muhammad Muhsin Khan)","itani":"English: Clear Qur'an - Talal Itani (Clear Qur'an by Talal Itani)","maududi":"English: Maududi (Abul Ala Maududi)","mubarakpuri":"English: Mubarakpuri","pickthall":"English: Pickthall (Mohammed Marmaduke William Pickthall)","qarai":"English: Qarai","qaribullah":"English: Qaribullah & Darwish (Hasan al-Fatih Qaribullah and Ahmad Darwish)","sahih":"English: Saheeh International","sarwar":"English: Sarwar (Muhammad Sarwar)","shakir":"English: Shakir (Mohammad Habib Shakir)","wahiduddin":"English: Wahiduddin Khan","yusufali":"English: Yusuf Ali (Abdullah Yusuf Ali)"},"es":{"asad":"Spanish: Asad (Muhammad Asad - Abdurrasak Pérez)","bornez":"Spanish: Bornez","cortes":"Spanish: Cortes (Julio Cortes)","garcia":"Spanish: Garcia"},"fa":{"ansarian":"Persian: انصاریان (Hussain Ansarian)","ayati":"Persian: آیتی (AbdolMohammad Ayati)","bahrampour":"Persian: بهرام پور (Abolfazl Bahrampour)","fooladvand":"Persian: فولادوند (Mohammad Mahdi Fooladvand)","gharaati":"Persian: قرائتی","ghomshei":"Persian: الهی قمشه‌ای (Mahdi Elahi Ghomshei)","hedayatfarfooladvand":"Persian: Fooladvand - Hedayatfar","khorramdel":"Persian: خرمدل (Mostafa Khorramdel)","khorramshahi":"Persian: خرمشاهی (Baha'oddin Khorramshahi)","makarem":"Persian: مکارم شیرازی (Naser Makarem Shirazi)","moezzi":"Persian: معزی (Mohammad Kazem Moezzi)","mojtabavi":"Persian: مجتبوی (Sayyed Jalaloddin Mojtabavi)","sadeqi":"Persian: صادقی تهرانی","safavi":"Persian: صفوی"},"fr":{"hamidullah":"French: Hamidullah (Muhammad Hamidullah)"},"ha":{"gumi":"Hausa: Gumi (Abubakar Mahmoud Gumi)"},"hi":{"farooq":"Hindi: फ़ारूक़ ख़ान & अहमद (Muhammad Farooq Khan and Muhammad Ahmed)","hindi":"Hindi: फ़ारूक़ ख़ान & नदवी (Suhel Farooq Khan and Saifur Rahman Nadwi)"},"id":{"indonesian":"Indonesian: Bahasa Indonesia (Unknown)","jalalayn":"Indonesian: Tafsir Jalalayn","muntakhab":"Indonesian: Quraish Shihab (Muhammad Quraish Shihab et al.)"},"it":{"piccardo":"Italian: Piccardo (Hamza Roberto Piccardo)"},"ja":{"japanese":"Japanese: Japanese (Unknown)"},"ko":{"korean":"Korean: Korean (Unknown)"},"ku":{"asan":"Kurdish: ته‌فسیری ئاسان (Burhan Muhammad-Amin)"},"label":"Translation Edition","ml":{"abdulhameed":"Malayalam: അബ്ദുല്‍ ഹമീദ് & പറപ്പൂര്‍ (Cheriyamundam Abdul Hameed and Kunhi Mohammed Parappoor)","karakunnu":"Malayalam: കാരകുന്ന് & എളയാവൂര്"},"ms":{"basmeih":"Malay: Basmeih (Abdullah Muhammad Basmeih)"},"my":{"ghazi":"Burmese: Ghazi Muhammed Hashim (Translation by Ghazi Muhammed Hashim)"},"nl":{"keyzer":"Dutch: Keyzer (Salomo Keyzer)","leemhuis":"Dutch: Leemhuis","siregar":"Dutch: Siregar"},"no":{"berg":"Norwegian: Einar Berg"},"pl":{"bielawskiego":"Polish: Bielawskiego (Józefa Bielawskiego)"},"ps":{"abdulwali":"Pashto: عبدالولي"},"pt":{"elhayek":"Portuguese: El-Hayek (Samir El-Hayek)"},"quran-buck":"Arabic: Buck","ro":{"grigore":"Romanian: Grigore (George Grigore)"},"ru":{"abuadel":"Russian: Абу Адель (Abu Adel)","krachkovsky":"Russian: Крачковский (Ignaty Yulianovich Krachkovsky)","kuliev":"Russian: Кулиев (Elmir Kuliev)","kuliev-alsaadi":"Russian: Кулиев + ас-Саади","muntahab":"Russian: Аль-Мунтахаб (Ministry of Awqaf, Egypt)","osmanov":"Russian: Османов (Magomed-Nuri Osmanovich Osmanov)","porokhova":"Russian: Порохова (V. Porokhova)","sablukov":"Russian: Саблуков (Gordy Semyonovich Sablukov)"},"sd":{"amroti":"Sindhi: امروٽي (Taj Mehmood Amroti)"},"si":{"naseemismail":"Sinhala: Naseem Ismail (Naseem Isamil and Masoor Maulana, Kaleel)"},"so":{"abduh":"Somali: Abduh (Mahmud Muhammad Abduh)"},"sq":{"ahmeti":"Albanian: Sherif Ahmeti","mehdiu":"Albanian: Feti Mehdiu","nahi":"Albanian: Efendi Nahi (Hasan Efendi Nahi)"},"sv":{"bernstrom":"Swedish: Bernström (Knut Bernström)"},"sw":{"barwani":"Swahili: Al-Barwani (Ali Muhsin Al-Barwani)"},"ta":{"tamil":"Tamil: ஜான் டிரஸ்ட் (Jan Turst Foundation)"},"tg":{"ayati":"Tajik: Оятӣ (AbdolMohammad Ayati)"},"th":{"thai":"Thai: ภาษาไทย (King Fahad Quran Complex)"},"tr":{"ates":"Turkish: Süleyman Ateş (Suleyman Ates)","bulac":"Turkish: Alİ Bulaç","diyanet":"Turkish: Diyanet İşleri (Diyanet Isleri)","golpinarli":"Turkish: Abdulbakî Gölpınarlı (Abdulbaki Golpinarli)","ozturk":"Turkish: Öztürk (Yasar Nuri Ozturk)","vakfi":"Turkish: Diyanet Vakfı (Diyanet Vakfi)","yazir":"Turkish: Elmalılı Hamdi Yazır (Elmalili Hamdi Yazir)","yildirim":"Turkish: Suat Yıldırım (Suat Yildirim)","yuksel":"Turkish: Edip Yüksel"},"tt":{"nugman":"Tatar: Yakub Ibn Nugman"},"ug":{"saleh":"Uyghur: محمد صالح (Muhammad Saleh)"},"ur":{"ahmedali":"Urdu: احمد علی (Ahmed Ali)","jalandhry":"Urdu: جالندہری (Fateh Muhammad Jalandhry)","jawadi":"Urdu: علامہ جوادی (Syed Zeeshan Haider Jawadi)","junagarhi":"Urdu: محمد جوناگڑھی (Muhammad Junagarhi)","kanzuliman":"Urdu: احمد رضا خان (Ahmed Raza Khan)","maududi":"Urdu: ابوالاعلی مودودی (Abul A'ala Maududi)","najafi":"Urdu: محمد حسین نجفی","qadri":"Urdu: طاہر القادری (Tahir ul Qadri)"},"uz":{"sodik":"Uzbek: Мухаммад Содик (Muhammad Sodik Muhammad Yusuf)"},"zh":{"jian":"Chinese: Ma Jian","majian":"Chinese: Ma Jian (Traditional) (Ma Jian)","mazhonggang":"Chinese: Ma Zhong Gang (马仲刚)"}}},"tooltips":{"browser":"View in browser","next_ayah":"Show next Ayah","prev_ayah":"Show previous Ayah","refresh":"Show another Ayah","tafseer":"View tafseer (explanation) in browser"}},"radio":{"settings":{"country":{"description":"Optional country name to limit top lists and searches, e.g. Germany. Empty means worldwide.","label":"Country filter"},"default_volume":{"description":"Volume for mpv playback, 0-100. Used on play and until the widget, panel or launcher changes it.","label":"Default volume"},"max_length":{"description":"Maximum characters of the station name shown in the bar, 5-60.","label":"Station name length"},"mpv_bin":{"description":"mpv executable used for headless playback. Change only if mpv is not on PATH.","label":"mpv binary"},"search_limit":{"description":"How many stations to fetch per search or top list, 5-50.","label":"Search results"},"show_name":{"label":"Show station name"}}},"razer":{"settings":{"low_battery_threshold":{"description":"Battery percentage threshold to trigger warning notification","label":"Low Battery Warning (%)"},"show_percentage":{"description":"Display percentage number next to device icon in the bar","label":"Show Battery Percentage"},"sync_theme_color":{"description":"Automatically match Razer LED colors to Noctalia's active accent color","label":"Sync RGB with Theme"}},"ui":{"brightness":"LED Brightness","custom_color_placeholder":"Hex color (e.g. #FF0055)","custom_dpi_placeholder":"Custom DPI (e.g. 1500)","daemon_not_running":"OpenRazer Daemon Not Running","lighting_effect":"Lighting Effect","no_devices":"No Razer Devices Found","no_devices_hint":"Connect a supported Razer mouse, keyboard, or headset via USB / 2.4GHz dongle.","off":"Off","panel_title":"Razer Control Center","picker":"Picker","razer_green":"Razer Green","refresh":"Refresh","sensitivity":"Sensitivity (DPI)","set":"Set","spectrum":"Spectrum","start_daemon":"Start Daemon","start_daemon_hint":"Start the daemon with:\nsystemctl --user start openrazer-daemon","theme_fallback":"Theme color unavailable, defaulted to Razer Green","theme_role":"Palette Role","theme_sync":"Theme Sync","theme_synced":"Theme role set to: ","wired":"Wired"}},"reading-list":{"bar":{"unread":"{count} unread"},"bulk":{"add-collection":"Add collection to selected","archive":"Archive selected","choose-collection":"Choose collection","collection-placeholder":"Add to collection…","confirm-delete":"Delete {count} selected items?","delete":"Delete selected","mark-read":"Mark selected read","mark-reading":"Mark selected as reading","mark-unread":"Mark selected unread","select":"Select item","select-mode":"Select items","selected":"{count} selected"},"collections":{"add":"Add","confirm":"Delete the collection “{name}”?","delete":"Delete collection","delete-help":"Choose whether the saved items should be kept.","delete-items":"Delete items","keep-items":"Keep items","name-placeholder":"Collection name","new":"New collection"},"errors":{"create-folder":"Could not create the reading list folder.","delete":"Could not delete the reading item.","duplicate":"That URL is already in your reading list.","export":"Could not export the reading list.","import":"Could not import that file.","invalid-url":"Enter a complete http:// or https:// URL.","load":"Could not load the reading list folder.","metadata":"Could not fetch details for that website.","nothing-exported":"There are no items to export.","save":"Could not save the reading item.","save-collections":"Could not save the collections file.","title-required":"Add a title or a URL before saving."},"filter":{"all":"All","all-collections":"All collections","archived":"Archived","favorites":"Favorites","read":"Read","reading":"Reading","unread":"Unread"},"form":{"author":"Author","author-placeholder":"Optional","collection":"Collection","current-page":"Current page","description":"Description","description-placeholder":"A short summary","estimated-minutes":"Estimated minutes","image":"Cover or image","less-details":"Hide details","more-details":"More details","no-collection":"No collection","notes":"Notes","notes-placeholder":"Your notes are saved below the frontmatter","progress":"Reading progress","rating":"Rating","review":"Review","review-placeholder":"What did you think?","source":"Website / source","source-placeholder":"Detected automatically","status":"Status","title":"Title","title-placeholder":"Fetched automatically when left empty","topics":"Topics","topics-placeholder":"kafka, programming, architecture","total-pages":"Total pages","type":"Type","url":"URL"},"import":{"action":"Import file","done":"Added {added}; skipped {skipped} duplicates.","done-title":"Import complete","error":"The file could not be imported.","error-title":"Could not import reading list","title":"Import reading list"},"obsidian":{"open-note":"Open note"},"panel":{"add-first":"Add your first item","add-item":"Add item","add-manually":"Add manually","archive":"Archive","cancel":"Cancel","close":"Close","confirm-delete":"Delete this item?","count":"{count} saved · {unread} unread","delete":"Delete","edit":"Edit","edit-item":"Edit item","empty":"Your reading list is empty.","favorite":"Favorite","fetching":"Fetching details…","loading":"Loading your reading list…","local-item":"Local item","mark-read":"Mark read","mark-unread":"Mark unread","no-results":"No items match this filter.","open":"Open","quick-add":"Add clipboard URL","quick-add-empty":"Clipboard has no URL — open add form","refresh":"Refresh details","save":"Save","search":"Search titles, topics, or websites…","settings":"Settings","title":"Reading List","unarchive":"Move to Unread"},"picker":{"choose":"Choose image","error":"The desktop portal did not return an image.","error-title":"Could not open image picker","none":"No image selected","opening":"Opening…","remove":"Remove image"},"reports":{"activity":"Completed in this period","all-time":"All time","average-rating":"Average rating","items":"Items","last-30-days":"Last 30 days","last-7-days":"Last 7 days","library":"Library overview","minutes":"Estimated minutes","no-completions":"Nothing completed in this period yet.","no-data":"No data for this period.","pages":"Book pages","period":"Report period","recent":"Recent completions","title":"Reports","top-collections":"Top collections","top-topics":"Top topics"},"settings":{"download-previews":"Download preview images","download-previews-desc":"Cache Open Graph cover images locally. Favicons are always cached when metadata is fetched.","fetch-metadata":"Fetch website details automatically","fetch-metadata-desc":"Download the title, source, author, description, favicon, and preview image after adding a URL.","save-path":"Reading list folder","save-path-desc":"Obsidian-friendly Markdown files and cached images are stored here. Supports ~ for your home folder.","show-unread-count":"Show unread count in bar","show-unread-count-desc":"Display the number of unread items beside the bar icon.","sync-external":"Sync external Markdown changes","sync-external-desc":"Reload the library every 30 seconds so edits made in Obsidian appear in Noctalia."},"share":{"copied":"Markdown is ready to paste.","copied-title":"Reading list copied","copy":"Copy Markdown","count":"Sharing {count} items","description":"Export the current filter or selected items.","export":"Export file","exported":"Saved to {path}","exported-title":"Reading list exported","format":"Export format","include-notes":"Include private notes","privacy":"Notes are excluded by default.","title":"Share and export"},"sort":{"move-down":"Move down in queue","move-up":"Move up in queue","newest":"Newest first","oldest":"Oldest first","progress":"Most progress","queue":"Queue order","rating":"Highest rated","title":"Title"},"status":{"archived":"Archived","change":"Change to {status}","read":"Read","reading":"Reading","unread":"Unread"}},"region-recorder":{"notify":{"no_recorder":"No supported recorder tool (gpu-screen-recorder, wl-screenrec, wf-recorder) found","recording_failed":"Failed to start recording","recording_saved":"Recording saved to %s","recording_started":"Region recording started","selection_cancelled":"Region selection cancelled"},"plugin_name":"Region Recorder","settings":{"audio_source":{"description":"Audio stream to record","label":"Audio Source","options":{"both":"System Output + Microphone","default_input":"Microphone","default_output":"System Output (Desktop)","none":"No Audio"}},"copy_to_clipboard":{"description":"Copy file:// path to clipboard when recording completes","label":"Copy File URL to Clipboard"},"directory":{"description":"Directory where recordings are saved","label":"Save Directory"},"filename_pattern":{"description":"Strftime format string for output file names","label":"Filename Pattern"},"frame_rate":{"description":"Target framerate for recording","label":"Frame Rate (FPS)"},"framerate_mode":{"description":"Framerate mode (CFR ensures constant framerate for video editors like Kdenlive)","label":"Framerate Mode","options":{"cfr":"Constant (CFR) - Recommended for editing","content":"Match Content (Sync)","vfr":"Variable (VFR)"}},"hide_inactive":{"description":"Hide the widget from the bar when idle","label":"Hide Inactive Widget"},"show_cursor":{"description":"Include mouse cursor in the recording","label":"Show Cursor"},"video_codec":{"description":"Video encoding codec","label":"Video Codec","options":{"av1":"AV1","h264":"H.264 / AVC","hevc":"H.265 / HEVC"}},"video_source":{"description":"Default source mode for recording","label":"Video Source","options":{"focused":"Focused Monitor","portal":"XDG Desktop Portal","region":"Region (slurp selection)"}}},"shortcut":{"idle":"Record Region","label":"Region Recorder","recording":"Stop Recording","selecting":"Selecting..."},"widget":{"idle":"Region Recorder: Click to select region","recording":"Region Recorder: Recording... (Click to stop)","selecting":"Region Recorder: Selecting region with slurp...","unavailable":"Region Recorder: slurp or recorder tool missing"}},"remmina":{"err-launch":"Could not start Remmina","err-no-remmina":"remmina command not found","err-no-remmina-subtitle":"Install Remmina and make sure it is on PATH","filter-empty":"Filter: \"{filter}\"","no-profiles-found":"No matching connection","panel":{"count":"{count} saved connections","filter":"Filter connections…","open-remmina":"Open the Remmina window","open-tooltip":"Open {name}","pin-tooltip":"Pin to the top","pinned":"Pinned","ungrouped":"Ungrouped","unpin-tooltip":"Remove from pinned"},"profiles-empty":"No Remmina profiles in this folder","profiles-missing":"Remmina profile folder not found","settings":{"max_results":{"description":"Maximum number of connections shown in the launcher.","label":"Maximum results"},"profiles_path":{"description":"Folder holding your .remmina connection profiles.","label":"Profile folder"},"show_group":{"description":"Show the profile's Remmina group in the result subtitle.","label":"Show group"}},"title":"Remmina"},"rss-feeds":{"settings":{"feed_1":{"label":"Feed 1 URL"},"feed_2":{"label":"Feed 2 URL"},"feed_3":{"label":"Feed 3 URL"},"feed_4":{"label":"Feed 4 URL"},"feed_5":{"label":"Feed 5 URL"},"items_per_feed":{"label":"Entries per feed"},"refresh_minutes":{"label":"Refresh interval (minutes)"},"title_1":{"label":"Feed 1 title (optional)"},"title_2":{"label":"Feed 2 title (optional)"},"title_3":{"label":"Feed 3 title (optional)"},"title_4":{"label":"Feed 4 title (optional)"},"title_5":{"label":"Feed 5 title (optional)"}}},"rss-notifier":{"notify":{"refreshing":"Refreshing feeds...","title":"RSS/Atom Notifier"},"panel":{"add_feed_button":"Add","add_feed_placeholder":"Feed URL (e.g. https://example.com/feed.xml)","add_feed_title":"Add feed","add_feed_tooltip":"Add feed","cancel_feed_tooltip":"Cancel edit","clear_all_tooltip":"Clear all","close_form_tooltip":"Close form","dismiss_tooltip":"Dismiss","edit_feed_title":"Edit feed","edit_feed_tooltip":"Edit feed","empty_state":"No updates","feed_error_duplicate":"This feed is already configured.","feed_error_empty":"Enter the feed URL.","feed_error_invalid":"Invalid URL. Use http:// or https://","feeds_empty":"No feeds added yet.","feeds_title":"Configured feeds","refresh_tooltip":"Refresh now","remove_feed_tooltip":"Remove feed","save_feed_tooltip":"Save feed","settings_tooltip":"Plugin settings","title":"RSS/Atom Notifier","untitled_item":"(untitled)"},"settings":{"feed_urls":{"description":"One RSS or Atom feed URL per entry (e.g. https://example.com/feed.xml).","label":"Feed URLs"},"glyph":{"description":"Icon shown in the bar for this widget.","label":"Icon"},"max_notifications_per_cycle":{"description":"Avoids a flood of notifications when many new items appear at once.","label":"Max notifications per cycle"},"notify_new":{"description":"Show a notification for each new item found in the feeds.","label":"Notify on new items"},"refresh_minutes":{"description":"How often feeds are checked for new items.","label":"Refresh interval (minutes)"},"show_feed_images":{"description":"Show each item's cover image (or the site's favicon as a fallback) in the item list.","label":"Show feed images"}},"widget":{"tooltip_none":"No new items","tooltip_unread_suffix":"new item(s) in your feeds"}},"ruh-vpn":{"action":{"add":"Add","confirm":"Confirm","delete":"Delete","reset":"Reset","run-test":"Run test","save":"Save","start":"Start","stop":"Stop"},"editor":{"address":"Address","alterid":"alterId","country":"Country code (for the flag)","edit":"Edit server","flow":"Flow","fp":"Fingerprint","host":"Host","keep":"leave empty to keep current","keyfile":"Key file","method":"Method","name":"Name","new":"New server","password":"Password","path":"Path","pbk":"Public key (pbk)","port":"Port","protocol":"Protocol","security":"Security","sid":"Short ID (sid)","sni":"SNI","transport":"Transport","user":"User","uuid":"UUID","wshost":"WS/HTTP Host"},"error":{"clipboard":"Clipboard is empty","no-server":"No server selected"},"logs":{"empty":"No logs yet","title":"Logs"},"notice":{"tun":"TUN mode may prompt for administrator rights"},"panel":{"connected":"Connected","disconnected":"Disconnected","fallback-server-name":"Server","no-servers":"No servers configured","routing":"Routing","servers":"Servers","starting":"Starting backend…","via":"Via"},"rules":{"custom":"Custom rules","dns-check":"Check DNS","dns-hint":"DNS leak not checked yet","dns-leak":"DNS leak","dns-ok":"No DNS leak","killswitch":"Kill switch","killswitch-desc":"Block all traffic when the proxy is down","none":"No custom rules","presets":"Country presets","reset-servers":"Reset all servers","reset-servers-desc":"Remove every server. Rules and settings stay.","title":"Routing & rules"},"settings":{"auto_start":{"description":"Connect the active server automatically when the plugin loads","label":"Auto-connect on start"},"backend_python":{"description":"Python 3 executable with the backend dependencies installed","label":"Backend Python"},"control_port":{"description":"Localhost port for the backend HTTP control API","label":"Control port"},"geoip_country":{"description":"Look up each server's country by IP to show its flag. Sends the server address to api.country.is.","label":"Detect server country"},"show_ping":{"label":"Show ping in bar"},"show_traffic":{"label":"Show traffic in bar"}},"shortcut":{"off":"VPN Off","on":"VPN On"},"subs":{"name":"Name (optional)","none":"No subscriptions","title":"Subscriptions"},"title":"VPN"},"rum-updates":{"bar":{"notify":{"check_complete":{"no_updates":"No updates available.","title":"RUM Updates","updates":"{count} updates are available."},"missing_rum":"rum is not available","missing_software_center":"RakuOS Software Center is not available","new_updates":{"description":"{count} RUM package updates are available.","title":"New RUM updates available"},"refresh_failed":"Could not start an update check","terminal_launch_failed":"Could not open a terminal"},"text":{"error":"RUM error","plural":"{count} Updates","single":"1 Update"}},"poller":{"error":{"decode_failed":"rum returned invalid JSON: {error}","exit":"rum exited with status {code}","invalid_json":"no JSON object was found","invalid_payload":"rum returned an invalid update payload","invalid_result":"rum returned no process result","launch_failed":"Could not start rum","missing_rum":"rum is not installed","timed_out":"rum update check timed out after {seconds} seconds"}},"settings":{"click_action":{"description":"Action performed when the widget is clicked.","label":"Click action","options":{"open_software_center":"Open RakuOS Software Center","run_updater":"Run rum system upgrade"}},"glyph":{"description":"Icon shown before the update count.","label":"Glyph"},"hide_when_empty":{"description":"Hide the widget when no updates are available.","label":"Hide when empty"},"interval":{"description":"How often the service checks for updates.","label":"Refresh seconds"},"notify":{"description":"Show a notification when the available update count increases.","label":"Notify"},"terminal_application":{"description":"Executable path or name used to run the updater. Leave blank to use Noctalia's detected terminal.","label":"Terminal application"}},"tooltip":{"check_now":"Check now","check_now_hint":"Right-click","checking":"Checking for updates…","error":"Update check failed","flatpak_scope":"Flatpak ({installation})","package_updates":"RUM package updates","repository":"Repository: {repo}"}},"run-path":{"cannot-list-directory":"Can't list directory","err-open-failed":"Could not open the path","err-run-failed":"Could not run the command","no-such-directory":"No such directory","open-row":"Open {name}","run-row":"Run: {command}","run-subtitle":"Press Enter to run as a shell command","settings":{"file_manager":{"description":"Command used to open directories. Defaults to xdg-open, which follows the desktop default; set it to nautilus, thunar, dolphin, etc. to skip the indirection.","label":"File manager"},"file_opener":{"description":"Command used to open files. Also xdg-open by default.","label":"File opener"},"max_results":{"description":"Maximum number of completion entries listed at once.","label":"Maximum results"},"show_hidden":{"description":"Include dotfiles in path completion.","label":"Show hidden files"}}},"saved-desktop-widgets":{"launcher":{"text":"Widgets"},"service":{"applied":"Layout applied successfully! Reloading...","applying":"Applying saved layout for this wallpaper...","error_title":"Error","failed":"Failed to inject state","no_layout":"No saved layout for this wallpaper.","saved":"Layout change detected and saved.","title":"Widget Saver"},"settings":{"general":"General","list":{"remove":"Remove the following desktop widget setup."},"load_widgets":{"description":"Enable the loading of the widgets when the wallpaper changes.","label":"Load Widgets"},"load_widgets_auto":"Load widgets automatically","no_widgets_saved":"No widgets saved yet.","nuke_all":"Nuke All","nuke_all_notification":"All saved layouts cleared.","remove_widget":"Remove saved widgets for this wallpaper","save_widgets":{"description":"Enable saving the widgets whenever they are changed.","label":"Save Widgets"},"save_widgets_auto":"Save widgets automatically","saved_layouts":"Saved Layouts","title":"Saved Desktop Widgets","tool_row":{"nuke":{"text":"Nuke","tooltip":"Remove all setups. WARNING: THIS WILL REMOVE ALL THE OTHER SETUPS EXCEPT THE CURRENT ONE!"}}}},"screen-toolkit":{"messages":{"capture_failed":"Screen capture failed.","color_picked":"Color {color} picked.","lens_failed":"Google Lens upload failed.","measure_copied":"Measurement copied.","measure_failed":"Measurement failed.","measure_result":"Measured: {width} × {height} px (copied)","missing_dep":"Missing dependency: {dep}","no_annotator":"No annotation tool found (install swappy or satty)","no_file":"Screenshot wasn't saved to a file. Enable file saving in Settings → Screenshot.","no_qr":"No QR code detected.","no_recorder":"No screen recorder found. Install wl-screenrec or wf-recorder.","no_text":"No text detected.","palette_failed":"Palette extraction failed.","picker_cancelled":"Color picker cancelled.","recording_failed":"Recording failed or cancelled.","recording_started":"Recording started. Use the red REC indicator or shortcut to stop.","recording_stopped":"Recording stopped. Preparing save options…","saved_to":"Saved: {path}","share_bad_args":"Share failed: no file specified.","share_file_not_found":"Share failed: file not found.","share_file_too_large":"File too large for anonymous upload (128 MB max). Add an X02 API key for larger files.","share_invalid_response":"Upload failed: unexpected server response.","share_missing_dep":"Share failed: missing dependency (curl/jq).","share_request_failed":"Upload request failed.","share_unknown_error":"Upload failed with unknown error.","translate_failed":"Translation failed."},"ocr":{"exit_args":"Invalid capture arguments.","exit_capture":"Screen capture failed.","exit_dep":"Missing dependency: {dep}","exit_process":"Image processing failed.","exit_unknown":"Unknown OCR error (code {code})."},"panel":{"clear":"Clear","clear_history":"Clear history","click_to_copy":"Click to copy","compose_mail":"Compose mail","copied_to_clipboard":"Saved and copied to clipboard","copy_all":"Copy all formats","copy_css_vars":"Copy as CSS vars","copy_hex_list":"Copy hex list","copy_link":"Copy link","copy_text":"Copy text","discard":"Discard","empty":"Pick a tool. Results appear here.","format_copied":"{label} copied.","history":"History","history_cleared":"History cleared","no_color":"Pick a color to get started","no_history":"No colors in history yet.","no_result":"No result yet.","no_text":"No text detected.","ocr_text":"Detected text","open_url":"Open URL","pick_again":"Pick again","ready":"Recording finished","ready_hint":"Preview the recording, then save or discard","rec":"REC","record_duration":"Time","record_ratio":"Ratio","record_size":"Size","recording_banner":"Recording…","recording_hint":"Recording — click the bar widget or this button to stop.","running":"Running…","save":"Save","saved_to":"Saved: {path}","search_text":"Search text","section_annotate":"Annotate","section_capture":"Capture","section_record":"Record","share":"Share","share_failed":"Upload failed","share_url":"Link copied","sharing":"Uploading…","stop":"Stop","subtitle":"Screen utilities","title":"Screen Toolkit","tools":"Tools","translate":"Translate","translate_label":"Translate to","translation":"Translation"},"plugin_name":"Screen Toolkit","settings":{"filename_format":{"description":"Template for generated filenames. Extension is added automatically. Tokens: %Y %m %d %H %M %S.","label":"Filename Format"},"gif_max_seconds":{"description":"Maximum duration in seconds for GIF recordings.","label":"Max GIF Duration"},"hide_cursor":{"description":"Exclude the cursor from recordings. Screenshots never include the cursor.","label":"Hide Cursor in Recordings"},"hide_when_unused":{"description":"Hide the bar widget when no recording is active. It will appear only while recording.","label":"Hide When Unused"},"panel_mode":{"description":"Layout of the main panel. Standard is the default dense grid; Legacy recreates the Noctalia-v4 layout.","label":"Panel Mode","options":{"compact":"Compact","full":"Full","legacy":"Legacy","standard":"Standard"}},"record_audio_in":{"description":"Record the default microphone while recording.","label":"Record Microphone"},"record_audio_out":{"description":"Record the desktop's audio output while recording.","label":"Record System Audio"},"record_codec":{"description":"Video codec for gpu-screen-recorder fullscreen capture. h264 is the safest NVIDIA NVENC default; av1 needs a recent GPU.","label":"Fullscreen Codec","options":{"av1":"AV1","h264":"H.264","hevc":"H.265 / HEVC"}},"record_copy_to_clipboard":{"description":"Copy the recording to clipboard when done instead of showing the save dialog.","label":"Copy to Clipboard"},"record_fps":{"description":"Frame rate for gpu-screen-recorder fullscreen capture (15–240).","label":"Fullscreen Frame Rate"},"record_skip_confirmation":{"description":"Automatically save to disk when recording finishes, without showing the save dialog.","label":"Skip Save Confirmation"},"screenshot_path":{"description":"Where screenshots are saved. Leave empty for ~/Pictures/Screenshots.","label":"Screenshot Path"},"search_engine_url":{"description":"URL used when searching OCR text. Leave empty to use Google. Examples: https://duckduckgo.com/?q= or https://search.brave.com/search?q=","label":"Search Engine URL"},"selected_ocr_lang":{"description":"Tesseract language code (e.g. eng, deu, fra). Can be combined with + (e.g. eng+fra).","label":"OCR Language"},"share_skip_popover":{"description":"Skip the share popover and copy the link straight to clipboard. A notification confirms.","label":"Copy Link Directly"},"video_path":{"description":"Where recordings are saved. Leave empty for ~/Videos.","label":"Video Path"},"x02_api_key":{"description":"Optional. Get a free key at up.x02.me for permanent links and larger files. Without a key, uploads use uguu.se (anonymous, 3h, 128 MB max).","label":"X02 API Key"},"x02_expiry":{"description":"How long your shared links stay alive. Only applies when using an X02 API key.","label":"Link Expiry","options":{"1d":"1 day","1h":"1 hour","30d":"30 days","7d":"7 days","permanent":"Permanent"}}},"shortcut":{"label":"Screen Toolkit","recording":"Stop recording"},"tools":{"annotate":"Markup","annotate_fullscreen":"Markup FS","annotate_window":"Window","colorpicker":"Color","fullscreen":"Fullscreen","lens":"Lens","measure":"Measure","ocr":"OCR","palette":"Palette","qr":"QR","record":"Record","record_fullscreen_gif":"GIF FS","record_fullscreen_mp4":"Rec FS","record_gif":"GIF","record_mp4":"Record","window":"Window"},"tooltips":{"annotate":"Draw and annotate a region","annotate_fullscreen":"Annotate the entire screen","annotate_window":"Annotate the focused window","colorpicker":"Pick a color from screen","lens":"Search image with Google Lens","measure":"Measure region size in pixels","ocr":"Extract text from screen","palette":"Extract dominant colors from a region","qr":"Scan a QR or barcode","record":"Record a screen region as GIF or MP4","record_fullscreen":"Record the entire screen"},"widget":{"recording":"Recording — click to stop","tooltip":"Screen Toolkit"}},"share-wifi":{"notify":{"dfs_error":"Cannot share Wi-Fi on DFS channel {channel}. Please switch Wi-Fi to 2.4GHz or channels 36-48.","error_start_failed":"Failed to start","error_title":"Share WiFi Error","max_clients_capped":"Max clients is capped at 8","session_locked":"Session locked to current Wi-Fi connection to prevent mesh disconnections.","started":"Hotspot started successfully!","stopped":"Hotspot turned off","synced":"Channel & Band synced!"},"panel":{"band_24g":"2.4Ghz","band_5g":"5Ghz","band_auto":"Auto","band_label":"Frequency band","btn_start":"Start Hotspot","btn_starting":"Starting...","btn_stop":"Stop Hotspot","btn_stopping":"Stopping...","channel_label":"Channel","channel_placeholder":"Auto","detected_wifi":"Detected Wi-Fi: {band} (ch {channel})","detected_wifi_dfs":"Detected Wi-Fi: {band} (ch {channel} - DFS)","dfs_warning":"Channel {channel} is a DFS radar channel.\nPlease switch to 2.4GHz or ch 36-48, then Rescan.","max_clients_label":"Max clients (1 - 8)","no_wifi":"No active Wi-Fi (Ethernet mode)","password_label":"Password (min 8 chars)","password_placeholder":"Hotspot password","rescan_tooltip":"Auto-detect Band & Channel from current Wi-Fi","ssid_label":"Network Name (SSID)","ssid_placeholder":"Hotspot SSID","status_active":"ACTIVE ({clients}/{max} connected)","status_active_fmt":"Hotspot active ({band}, ch {channel})","status_off":"OFF","status_ready":"Ready","status_starting":"Starting hotspot...","status_stopped":"Hotspot stopped","status_stopping":"Stopping hotspot...","synced_status":"Synced with connected Wi-Fi","title":"Share WiFi"},"settings":{"refresh_interval":{"description":"How often hotspot status and connected clients are checked.","label":"Refresh interval (seconds)"}},"shortcut":{"connected":"{count} connected","label":"Share WiFi","off":"Off","sharing":"Sharing"},"widget":{"tooltip_active":"Share WiFi: Active ({clients}/{max} clients)\nClick: Settings\nRight-click: Turn off","tooltip_off":"Share WiFi: Off\nClick: Settings & Start","tooltip_starting":"Share WiFi: Starting hotspot...","tooltip_stopping":"Share WiFi: Stopping hotspot..."}},"sharednd":{"notify":{"no_niri_body":"This looks like a niri session (NIRI_SOCKET is set), but the niri binary is not in PATH, so screen sharing cannot be detected.","no_niri_title":"ShareDND: niri not found"},"settings":{"always_off_after":{"description":"Turn Do Not Disturb off when sharing ends even if it was already enabled before sharing started. When off, DND is only disabled if this plugin enabled it.","label":"Always disable DND after sharing"},"only_active":{"description":"Count only screencasts that are actively streaming. When off, any open screencast session (even one paused or showing nothing) keeps Do Not Disturb enabled.","label":"Only active streams"}},"title":"ShareDND"},"shell-command":{"cd_empty":"No folders found","cd_empty_subtitle":"Type path or check workspace setting","cd_open_subtitle":"Opens terminal in this folder","cd_open_title":"Open in: {path}","hint_subtitle":"Type a command after /sh and press Enter to open it in your terminal","hint_title":"Run a shell command","history_subtitle":"Recent command","run_subtitle":"Opens in your default terminal","run_subtitle_found":"{command} found — opens in your default terminal","run_title":"Run: {command}","settings":{"default_workspace":{"description":"Working directory commands run in. Leave empty to use the terminal's current directory.","label":"Default Workspace"},"snippets":{"description":"Commands shown when /sh is empty. Each entry is one command.","label":"Snippets"}},"snap_subtitle":"Complete: {command} — Enter to run","snippet_subtitle":"Snippet","suggest_subtitle":"Suggestion"},"shelly":{"bar":{"click_handler":{"error":{"missing_cli":"Shelly CLI is not installed. Please install it to use this feature.","missing_gui":"Shelly GUI is not installed. Please install it to use this feature."}},"text":{"error":"?","updates":{"one":"{count} Update","other":"{count} Updates"}},"tooltip":{"aur_title":"AUR","error":{"decode_json":"Failed to decode output from `shelly check-updates --json`"},"flatpak_title":"Flatpak","no_updates":"System is up to date","packages_title":"Packages"}},"notify":{"new_updates":{"description":"There are {count} new updates available for your system.","title":"New Updates Available"}},"settings":{"bar_font_size":{"description":"The font size of the bar text.","label":"Bar Font Size"},"bar_label":{"description":"Label to display in the bar.","label":"Bar Label","options":{"count_and_label":"Count and Label (e.g., 5 Updates)","count_only":"Count Only (e.g., 5)"}},"click_action":{"description":"What happens when you click on the bar.","label":"Click Action","options":{"none":"Nothing","open_gui":"Open Shelly GUI","open_updater":"Start Update in Terminal"}},"color":{"description":"The color of the bar text.","label":"Color"},"glyph":{"description":"The glyph shown before the label.","label":"Glyph"},"glyph_color":{"description":"The color of the glyph.","label":"Glyph Color"},"glyph_size":{"description":"The size of the glyph.","label":"Glyph Size"},"hide_when_up_to_date":{"description":"Whether to hide the bar when there are no updates available.","label":"Hide When Up-to-Date"},"interval":{"description":"How often the service checks for updates in the background.","label":"Refresh Seconds"},"notify":{"description":"Whether to show a notification when new updates are available.","label":"Notify"}},"title":"Shelly"},"sony_headphones":{"notify":{"mode_changed":"Mode: {mode}"},"panel":{"ambient_level":"Ambient sound level","battery":"Battery","charging":"Charging","guidance":"Connect your Sony headphones via Bluetooth to view battery status and control noise cancelling.","mode":{"anc":"Noise Cancelling","off":"Off","transparency":"Ambient Sound"},"noise_control":"Noise Control","status":{"connected":"Connected","disconnected":"Not Connected"},"title":"Sony Headphones"},"plugin":{"description":"Sony headphones battery and noise control (ANC / Ambient Sound) in the bar.","name":"Sony Headphones"},"settings":{"device_mac":{"description":"Bluetooth MAC address of your headphones. Leave blank to auto-detect the connected device.","label":"Headphones MAC Address"},"hide_when_disconnected":{"description":"Hide the bar widget when the headphones are not connected.","label":"Hide when disconnected"}},"widget":{"action":{"cycle_noise":"Cycle Noise Mode","left_click":"Left Click","open_controls":"Open Controls","right_click":"Right Click"},"device":"Device","mode":"Mode","not_connected":"Headphones not connected","status":"Status"}},"soundcore-buds":{"common":{"off":"Off","on":"On"},"errors":{"control_busy":"Earbuds busy — the Soundcore phone app may be holding the control channel. Close it, then press refresh.","ctl_rejected":"openscq30 rejected the command","find_failed":"Could not play a locating tone","no_device":"No supported Soundcore device is connected","not_installed":"openscq30 not found. Install OpenSCQ30 first."},"panel":{"adaptive_noise":"Adaptive level","adaptive_note":"Adaptive ANC level is managed by the earbuds.","anc_strength":"ANC strength","battery":"BATTERY","cancel":{"manual":"Manual","multiscene":"Multi-Scene"},"case":"Case","charging":"Charging","daemon_down":"openscq30 found no connected device","device":{"auto_off":"Auto power off","dual":"Dual connections","dual_caption":"Stay paired with two hosts. Turning off drops the other host.","limit":"Limit high volume","limit_caption":"Cap the maximum volume for hearing safety.","limit_db":"Volume limit","limit_rate":"Limit check interval","low_batt":"Low battery prompt","rt_anc":"Real-time adaptive ANC","rt_anc_caption":"Let the earbuds adjust cancellation continuously.","title":"DEVICE"},"find":{"caption":"Pauses playback, then a loud tone. Take them off first.","confirm":"tap again — LOUD","playing":"Playing a locating tone. Tap the row again to stop.","stop":"Stop","title":"FIND"},"guidance":{"connected":"Connect your Soundcore buds to see battery and listening controls.","daemon_down":"Pair and connect your Soundcore buds, then press refresh."},"headphones":"Headphones","in_case":"In case","in_ear":"In ear","info":{"adaptive":"Adaptive level","dual_devices":"Linked hosts","fw":"Firmware L/R","serial":"Serial","title":"INFO"},"left":"Left","listening_mode":"LISTENING MODE","mode":{"adaptive":"Adaptive","anc":"Noise Cancellation","anc_short":"ANC","off":"Normal","transparency":"Transparency","unknown":"Unknown"},"not_connected":"Not connected","right":"Right","sound":{"multiscene":"Noise scenario","title":"SOUND","transparency_mode":"Transparency mode","wind":"Wind noise suppression"},"title":"Soundcore","touch":{"double":"Double","hint":"Choose what each tap does.","hold":"Hold","left_double":"Left double","left_hold":"Left hold","left_single":"Left single","left_triple":"Left triple","off":"Off","reset":"Reset to defaults","right_double":"Right double","right_hold":"Right hold","right_single":"Right single","right_triple":"Right triple","single":"Single","title":"TOUCH","tone":"Touch tone","tone_caption":"Play a sound when a touch control fires","triple":"Triple"}},"settings":{"hide_when_disconnected":{"description":"Leaves the bar entirely rather than sitting there with nothing to say.","label":"Hide the icon when no Soundcore is connected"},"icon":{"description":"Auto follows the connected device. Earbuds is the in-ear silhouette; Over-ear is the headphone cups.","label":"Bar icon","options":{"auto":"Auto","earbuds":"Earbuds","over_ear":"Over-ear"}},"openscq30_path":{"description":"Leave empty to find openscq30 on PATH.","label":"Path to openscq30"},"poll_interval":{"description":"How often the service queries the earbuds, in seconds (2-15). Bluetooth is slow, keep it at 3 or above.","label":"Poll interval (seconds)"}},"widget":{"finding":"Finding","mode":"Mode","not_connected":"Not connected","openscq30_missing":"openscq30 not found","stale":"Control busy"}},"special-workspaces":{"settings":{"active_color":{"description":"Fill color of active workspace capsules. Palette role name (primary, secondary, tertiary...) or hex value.","label":"Active workspace color"},"active_style":{"description":"Show active workspaces as primary-filled capsules or transparent labels with primary text.","label":"Active workspace style"},"active_text_color":{"description":"Label color inside active capsules. Palette role name or hex value.","label":"Active workspace text color"},"capsule_min_width":{"description":"Minimum capsule length along the bar axis: width on horizontal bars, height on vertical bars. Values below 0 are treated as 0.","label":"Capsule minimum length"},"capsule_padding":{"description":"Space before and after the label along the bar axis, in logical pixels. Values below 0 are treated as 0.","label":"Capsule content padding"},"capsule_radius":{"description":"Corner radius of each capsule in logical pixels. Values below 0 are treated as 0.","label":"Capsule radius"},"font_size":{"description":"Workspace name font size. Set 0 to use system default.","label":"Font size"},"hide_inactive":{"description":"Hide populated special workspaces unless they are currently visible on a monitor.","label":"Hide inactive workspaces"},"inactive_color":{"description":"Fill color of populated but hidden workspace capsules. Palette role name or hex value.","label":"Inactive workspace color"},"inactive_style":{"description":"Show inactive workspaces as secondary-filled capsules or transparent labels with surface text.","label":"Inactive workspace style"},"inactive_text_color":{"description":"Label color inside inactive capsules. Palette role name or hex value.","label":"Inactive workspace text color"},"max_label_chars":{"description":"Maximum characters shown from each workspace name. Use 0 to show the full name.","label":"Maximum label characters"},"style":{"fill":"Fill","ghost":"Ghost"}}},"speedtest-meter":{"app_name":"Speedtest Meter","connection_tested_successfully":"Your connection was tested successfully","copy_install_command":"Copy install command","copy_result_link":"Copy result link","error_cli_not_found":"No speedtest command was found (checked for `speedtest` and `speedtest-cli`).","error_cli_reported":"The speedtest tool reported an error.","error_could_not_start":"Could not start the speedtest process.","error_missing_cli":"This plugin needs a speedtest command-line tool installed and on PATH. Below is the install command for your package manager.","error_ookla_hint":"For a live gauge with per-phase progress, install the official Ookla CLI instead (binary named `speedtest`) — e.g. via an AUR helper on Arch (yay -S speedtest-bin), or from speedtest.net/apps/cli on other distros.","error_timeout":"The test took too long and was stopped after 60 seconds. Try again, ideally on a faster or more stable connection.","error_title":"Could not run the test","error_unknown":"Unknown error.","gauge_scale":"Scale: 0 - {max} Mbps","hint_stuck":"Taking longer than expected? Make sure `speedtest` works from a regular terminal too.","history_limit":"Last 5 tests","history_title":"Latest tests","idle_subtitle":"Measure download, upload, ping and see full technical details.","log_waiting":"Waiting for speedtest-cli output...","metric_city":"City","metric_country":"Country","metric_country_ip":"Country (IP)","metric_download":"Download","metric_external_ip":"External IP","metric_host":"Host","metric_isp":"ISP","metric_jitter":"Jitter","metric_location":"Location","metric_name":"Name","metric_org":"Organization","metric_packet_loss":"Packet loss","metric_ping":"Ping","metric_region":"Region","metric_server":"Server","metric_server_ip":"Server IP","metric_upload":"Upload","notify_command_copied":"Command copied.","notify_link_copied":"Result link copied to clipboard.","phase_download":"Testing download...","phase_legacy_running":"Running test... this can take up to a minute.","phase_ping":"Measuring ping and jitter...","phase_preparing":"Preparing...","phase_upload":"Testing upload...","result_title":"Speedtest result","section_connection":"Your connection","section_server":"Test server","settings_glyph_description":"Icon shown in the bar for this widget.","settings_glyph_label":"Icon","start_test":"Start test","test_again":"Test again","try_again":"Try again","unit_mbps":"Mbps","widget_tooltip":"Speedtest Meter — click to run a speed test"},"spotify-lyrics":{"description":"Time-synced lyrics panel linked to the media widget.","name":"Spotify Lyrics","no_music":"No music playing"},"ssh-launcher":{"config-empty":"No SSH hosts found in config","config-missing":"SSH config file not found","err-no-ssh":"ssh command not found","err-no-ssh-subtitle":"Install OpenSSH client and ensure ssh is on PATH","err-terminal":"Could not open a terminal","filter-empty":"Filter: \"{filter}\"","loading":"Loading…","loading-subtitle":"Reading SSH config","no-hosts-found":"No SSH hosts found","settings":{"config_path":{"description":"Path to your SSH config file.","label":"SSH config path"},"extra_args":{"description":"Extra arguments appended to every ssh command (for example -A).","label":"Extra SSH arguments"},"max_results":{"description":"Maximum number of hosts shown in the launcher.","label":"Maximum results"},"terminal":{"description":"Custom terminal command. Leave empty to use Noctalia's terminal discovery.","label":"Terminal command"}}},"sticky-notes":{"panel":{"add":"Add note","add-disabled":"Finish the empty note first","add-first":"Add your first note","all-blurred-hint":"All notes are hidden.\nUse the header eye to reveal them.","back":"Back to notes","blur":"Blur notes (privacy)","blur-note":"Blur this note","blurred-hint":"This note is hidden.\nUse its eye button to reveal it.","blurred-short":"Notes hidden","confirm-delete":"Delete this note?","delete":"Delete note","delete-yes":"Delete","done":"Done","done-tooltip":"Save and close (Ctrl+Enter)","drag-hint":"Drag to reorder","edit":"Edit","editing":"Edit Note","empty":"No notes yet. Add one to get started.","empty-preview":"Empty note…","loading":"Loading notes…","more-tasks":"+{count} more tasks","open-link":"Open link in browser: {url}","open-settings":"Open plugin settings","pin":"Pin to top","placeholder":"Write your note here…","title":"Sticky Notes","unblur":"Show notes","unblur-note":"Show this note","unpin":"Unpin","untitled-task":"Untitled task"},"settings":{"auto-blur":"Auto-blur on open","blur-heavy":"Heavy","blur-light":"Light","blur-medium":"Medium","blur-strength":"Blur strength","color-blue":"Blue","color-green":"Green","color-orange":"Orange","color-pink":"Pink","color-purple":"Purple","color-red":"Red","color-yellow":"Yellow","default-color":"Default note color","file-format":"Save file format","font-size":"Note font size","format-json":"JSON (.json)","format-md":"Markdown (.md)","format-txt":"Plain text (.txt)","no-colors":"No colors mode","no-colors-desc":"Use one neutral shell color for every note. Saved note colors are preserved and return when this is turned off.","save-path":"Notes save folder","save-path-desc":"Folder where notes are saved. Supports ~ for your home directory.","save-shortcut":"Save with Ctrl+Enter","save-shortcut-desc":"Press Ctrl+Enter in the note editor to save and close the note.","show-count":"Show note count in bar","use-wallpaper-colors":"Blend colors with wallpaper","use-wallpaper-colors-desc":"Blend Primary, Secondary, and Tertiary wallpaper colors into the classic note palette. Turn off to restore the original colors."}},"super-productivity":{"action":{"success":{"add":"Task added.","complete":"Task completed.","default":"Action completed.","open":"Task opened.","refresh":"Tasks refreshed.","restore":"Task restored.","select":"Task opened.","snooze":"Task rescheduled.","timer_start":"Timer started.","timer_stop":"Timer stopped.","undo":"Task restored."}},"actions":{"add":"Add","adding":"Adding…","build_package":"Build companion package","building_package":"Building package…","checking_package":"Checking package…","close":"Close","complete":"Complete","copy_package_path":"Copy package path","copy_path":"Copy path","launch":"Launch app","open":"Open in app","open_package_folder":"Open package folder","rebuild_package":"Rebuild package","refresh":"Refresh","retry_package":"Retry package build","settings":"Settings","start_timer":"Start timer","stop_timer":"Stop timer","undo":"Undo","working":"Working…"},"bar":{"gestures":"Left: details · Right: complete · Middle: open · Scroll: browse","no_due":"No due tasks","position":"Task {index} of {count}","unavailable":"Tasks unavailable"},"capture":{"hint":"Use Super Productivity short syntax: +project, #tag, @tomorrow, !friday, 30m, @every week, and more.","placeholder":"Write task +Project #tag @tomorrow 30m","title":"Quick capture"},"connection_status":{"auth_required":"Authentication required","checking":"Checking","companion_missing":"Companion not installed","degraded":"Degraded","error":"Error","loading":"Loading","missing":"Not installed","offline":"Offline","outdated":"Update required","protocol_mismatch":"Incompatible","ready":"Ready","stale":"Stale","starting":"Starting","timeout":"Timed out","unauthorized":"Authentication failed","unavailable":"Unavailable","unknown":"Unknown","waiting":"Waiting for the first update"},"diagnostics":{"app":"Desktop app","bridge_dir":"Bridge directory","bridge_error":"Bridge error","bridge_status":"Companion bridge","companion":"Companion version","due":"Due tasks","hook_error":"Hook error","hook_status":"Hook updates","last_error":"Last error","launch_method":"Launch method","not_running":"Not running","overdue":"Overdue tasks","package":"Companion package","package_error":"Package error","package_path":"Package path","protocol":"Protocol","required_companion":"Required companion","rest_error":"REST error","rest_status":"Local REST API","running":"Running","status":"Status","tasks":"Active tasks","title":"Diagnostics"},"due":{"in_days":"in {count}d","in_hours":"in {count}h","in_minutes":"in {count}m","just_overdue":"just overdue","now":"due now","overdue_days":"overdue {count}d","overdue_hours":"overdue {count}h","overdue_minutes":"overdue {count}m","unscheduled":"No due date"},"error":{"app_unavailable":"Noctalia could not find Super Productivity.","bridge_unavailable":"Noctalia cannot access the companion bridge directory.","command_failed":"The companion rejected the command.","command_timeout":"The companion did not respond in time.","invalid_snapshot":"The companion published an invalid snapshot.","launch_failed":"Noctalia could not launch Super Productivity.","native_command_single":"Enter one executable without arguments as the native command.","open_package_failed":"Noctalia could not open the companion package folder.","outcome_unknown":"The companion stopped responding. Check Super Productivity before you try again to prevent a duplicate action.","package_build_failed":"Noctalia could not build the companion package.","package_missing":"The package builder did not produce a valid companion ZIP.","package_verification_failed":"Noctalia could not verify the generated companion package.","protocol_mismatch":"Update the Noctalia plugin and Super Productivity companion together.","python_unavailable":"Noctalia requires python3 to build the companion package.","rest_auth_required":"Noctalia could not authenticate with Super Productivity's local REST API.","rest_outcome_unknown":"Super Productivity did not confirm the result. Check the app before trying again.","rest_request_failed":"The request to Super Productivity's local REST API failed.","rest_timeout":"Super Productivity's local REST API did not respond in time.","rest_unavailable":"Noctalia could not connect to Super Productivity's local REST API.","schema_mismatch":"Update the Noctalia plugin and Super Productivity companion together.","task_changed":"The displayed task changed before Noctalia could run the action.","timer_confirmation_mismatch":"The refreshed timer state does not match the requested change. Check Super Productivity before trying again.","timer_confirmation_unknown":"The timer change could not be confirmed because refreshing REST state failed. Check Super Productivity before trying again.","xdg_open_unavailable":"Noctalia requires xdg-open to open the package folder."},"launcher":{"add":"Add “{task}”","add_hint":"Create this task using Super Productivity short syntax.","capture_hint":"Type a task after /sp. You can use Super Productivity short syntax.","capture_title":"Add a Super Productivity task","open_app":"Open Super Productivity","open_app_hint":"Launch or focus the desktop app."},"notify":{"added_title":"Task added","command_failed_title":"Super Productivity action failed","due_title":"Task due","package_failed_title":"Companion package error"},"package":{"status":{"checking":"Checking…","error":"Build failed","missing":"Not built","ready":"Ready","running":"Building…","stale":"Update required"}},"settings":{"auto_start":{"description":"Starts the desktop app in the background when the companion is unavailable.","label":"Start Super Productivity automatically","rest_description":"Starts the desktop app when the service needs it and Super Productivity is not running."},"bridge_dir":{"description":"Optional path to the companion data directory. When empty, Noctalia detects the path automatically.","label":"Bridge directory override"},"glyph":{"description":"Icon shown beside the task title.","label":"Widget glyph"},"launch_method":{"auto":"Auto-detect","description":"Method Noctalia uses to start or focus Super Productivity.","flatpak":"Flatpak","label":"Launch method","native":"Native command"},"max_title_chars":{"description":"Limits task titles to this number of characters in the bar widget.","label":"Maximum title length"},"max_upcoming":{"description":"Maximum number of due tasks available when scrolling the widget.","label":"Upcoming task limit"},"native_command":{"description":"Executable name or absolute path that Noctalia uses to launch Super Productivity. Do not include arguments.","label":"Native command"},"notify_due":{"description":"Shows a notification when an upcoming task reaches its due time.","label":"Due notifications"},"overdue_text_color":{"description":"Color used for overdue task text in the bar widget and details panel.","label":"Overdue text color"},"poll_seconds":{"description":"How often Noctalia reads the companion state, in seconds.","label":"Refresh interval"},"prefer_tracked_task":{"description":"Places the currently tracked task before due tasks while its timer runs.","label":"Show tracked task first"},"rest_token_file":{"description":"Optional path to Super Productivity's local REST API token file. An empty value enables native and Flatpak discovery.","label":"REST token file override"},"show_due_text":{"description":"Shows the relative due time in the bar widget.","label":"Show due text"},"show_timer_controls":{"description":"Shows start and stop tracking controls in the expanded details panel.","label":"Show timer controls"},"sound_on_complete":{"description":"Plays a sound after Super Productivity confirms task completion.","label":"Completion sound"}},"snooze":{"hour":"+1 hour","title":"Reschedule","tomorrow":"Tomorrow","week":"Next week"},"status":{"auth_required":"REST authentication is required","bridge_error":"The companion bridge reported an error","bridge_error_hint":"Automatic refreshes and exact-task opening require a working companion bridge.","bridge_protocol_mismatch":"The companion bridge is incompatible","bridge_protocol_mismatch_hint":"Rebuild the companion package and reinstall it with the matching Noctalia plugin version.","bridge_stale":"The companion bridge status is stale","bridge_stale_hint":"Automatic refreshes and exact-task opening may be unavailable until the companion reconnects.","bridge_starting":"Connecting to the companion bridge…","bridge_starting_hint":"REST provides task data. The companion provides automatic refreshes and exact-task opening.","bridge_unavailable":"The companion bridge is unavailable","bridge_unavailable_hint":"Automatic refreshes and exact-task opening require the companion.","companion_missing":"The Super Productivity companion is not installed or enabled","companion_outdated":"The installed companion needs an update","companion_outdated_hint":"Rebuild the companion package and reinstall the generated ZIP in Super Productivity.","error":"The local REST API request failed","hook_error":"Companion hook updates are unavailable","hook_error_hint":"Changes made in Super Productivity require manual Refresh until the notification error is fixed.","hook_protocol_mismatch":"Companion hook notifications are incompatible","hook_protocol_mismatch_hint":"Rebuild the companion package and reinstall it with the matching Noctalia plugin version.","offline":"Super Productivity is not running","package_ready_hint":"Open the package folder. Then select the ZIP file in Super Productivity.","protocol_mismatch":"The companion protocol version is incompatible","ready":"Connected","rest_auth_required":"Local REST API authentication failed","rest_auth_required_hint":"Enable the local REST API in Super Productivity Settings → Misc. If needed, set the REST token file override to the active local-rest-api-token file.","rest_error":"The local REST API request failed","rest_error_hint":"Super Productivity must be running with its local REST API enabled. Refresh retries the request.","rest_loading":"Loading REST task data…","rest_offline":"REST task data is unavailable","rest_stale":"REST task data is stale","rest_stale_hint":"Noctalia could not refresh task data. Refresh retries after the REST connection is restored.","rest_starting":"Loading task data from the local REST API…","rest_starting_hint":"Noctalia is connecting to the local REST API in the Super Productivity desktop app.","rest_unavailable":"The local REST API is unavailable","rest_unavailable_hint":"Super Productivity must be running with its local REST API enabled. Refresh retries the connection.","setup_hint":"Build the companion package. Install it in Super Productivity. Approve the file-access prompt. Then select Refresh.","stale":"Companion data is stale","starting":"Starting companion…","unavailable":"REST task data is unavailable"},"task":{"estimate":"Estimate: {value}","no_project_tags":"No project or tags","none_due":"No due tasks","none_due_hint":"Use quick capture below or add a due date in Super Productivity.","position":"Task {index} of {count}","project":"Project: {value}","spent":"Spent: {value}","tags":"Tags: {value}","unavailable":"Tasks unavailable","unavailable_hint":"Task loading and actions require a local REST API connection.","untitled":"Untitled task"},"title":"Super Productivity","undo":{"completed":"Completed: {title}"}},"sway-mode":{"error":{"decode_failed":"Failed to decode Sway IPC response.","initial_state_failed":"Failed to retrieve the initial Sway mode.","invalid_data":"Invalid data received from Sway.","stream_failed":"Could not start swaymsg mode subscription."},"settings":{"glyph":{"description":"Glyph to display next to the current Sway mode. Leave empty to hide the glyph.","label":"Glyph"},"hide_default":{"description":"Hide the widget when Sway is in its default mode","label":"Hide default mode"},"rename_default":{"description":"Change the name shown in the widget for the default mode","label":"Rename default mode"}}},"sway-scratchpad":{"error":{"decode_failed":"Failed to decode Sway IPC response.","invalid_data":"Invalid data received from Sway.","stream_failed":"Could not start `swaymsg subscribe mode`.","tree_query_failed":"Failed to query the Sway tree."},"settings":{"empty_color":{"description":"Color to use when the scratchpad is empty.","label":"Empty color"},"empty_glyph":{"description":"Glyph to display when the scratchpad is empty. Leave empty to hide the glyph.","label":"Empty glyph"},"hide_count":{"description":"Hide the number of windows in the scratchpad","label":"Hide count"},"hide_empty":{"description":"Hide the widget when the scratchpad is empty","label":"Hide empty scratchpad"},"populated_color":{"description":"Color to use when the scratchpad contains windows.","label":"Populated color"},"populated_glyph":{"description":"Glyph to display when the scratchpad contains windows. Leave empty to hide the glyph.","label":"Populated glyph"}}},"syncthing":{"detail":{"no-api-key":"The API key is missing. Set it manually or expose it via config.xml.","no-folders":"No monitored folders are configured.","no-url":"The GUI URL could not be resolved from settings or config.xml."},"device":{"connected":"Connected","disconnected":"Disconnected","paused":"Paused"},"launcher":{"rescan-hint":"Enter: rescan {id}","rescan-started":"Rescan of {id} started."},"notify":{"device-connected":"{name} connected.","device-disconnected":"{name} disconnected.","folder-done":"Folder “{label}” is up to date.","folder-error":"Folder “{label}” reported an error."},"panel":{"device-pause":"Pause device","device-resume":"Resume device","devices":"Devices","folder-pause":"Pause folder","folder-rescan":"Rescan folder","folder-resume":"Resume folder","folder-state":"{state} — {count} items","folders":"Folders","last-activity":"Last activity: {value}","last-check-info":"Last check: {value}","no-devices":"No devices.","no-folders":"No monitored folders.","open-gui":"Open web GUI","pause-all":"Pause all devices","pending":"Pending","refresh":"Refresh","resume-all":"Resume all devices","tab-devices":"Devices","tab-folders":"Folders","title":"Syncthing"},"settings":{"api_key":{"description":"Syncthing REST API key. Leave empty to autodetect from config.xml.","label":"API key"},"config_path":{"description":"Explicit path to Syncthing's config.xml for autodetection.","label":"config.xml path"},"folders":{"description":"Folder IDs to monitor. Leave empty to monitor all folders.","label":"Monitored folder IDs"},"insecure_tls":{"description":"Accept self-signed certificates on HTTPS GUI URLs.","label":"Skip TLS verification"},"notify_events":{"description":"Notify when a folder finishes syncing, goes into error, or a device connects/disconnects.","label":"Event notifications"},"poll_interval":{"description":"How often the Syncthing status is refreshed.","label":"Poll interval (seconds)"},"show_pending":{"description":"Show the number of pending items next to the icon while syncing.","label":"Show pending count"},"url":{"description":"Syncthing GUI base URL. Leave empty to autodetect from config.xml.","label":"GUI URL"}},"shortcut":{"label":"Syncthing"},"state":{"disabled":"Disabled","disconnected":"No devices connected","error":"Error","idle":"Up to date","offline":"Syncthing unreachable","paused":"Paused","syncing":"Syncing","unauthorized":"API key rejected","unconfigured":"Not configured"},"summary":{"disconnected":"No remote devices are connected.","error":"One or more folders reported errors.","idle-devices":"Up to date — {connected}/{configured} devices connected.","idle-no-devices":"Up to date. No remote devices configured.","offline":"The Syncthing GUI cannot be reached.","paused":"All monitored folders are paused.","syncing-folders":"Syncing {count} folders.","syncing-items":"Syncing, {count} items pending.","unauthorized":"Syncthing rejected the API key.","unconfigured":"Connection is not configured."},"toast":{"title":"Syncthing"},"tooltip":{"checked":"Last check","devices":"Devices","folders":"Folders","pending":"Pending","rates":"Transfer","state":"State"}},"system-monitor":{"settings":{"activity_color":{"label":"Activity color"},"compact_network":{"description":"Use short labels such as M/s instead of MB/s.","label":"Compact network units"},"critical_color":{"label":"Critical color"},"disk_display_mode":{"label":"Disk display"},"disk_path":{"description":"Filesystem path whose disk usage should be displayed.","label":"Disk path"},"display_mode":{"available":"Available","percentage":"Percentage","used":"Used"},"hide_unavailable":{"label":"Hide unavailable metrics"},"highlight_values":{"label":"Highlight active values"},"network_interface":{"description":"Exact interface name to monitor. Leave empty for total non-loopback traffic.","label":"Network interface"},"ram_display_mode":{"label":"RAM display"},"show_cpu_details_in_tooltip":{"description":"Show CPU usage, temperature, frequency, and load in the tooltip. Off by default since the bar already shows enabled CPU metrics.","label":"CPU details in tooltip"},"show_cpu_temperature":{"label":"CPU temperature"},"show_cpu_usage":{"label":"CPU usage"},"show_disk":{"label":"Disk usage"},"show_download":{"label":"Download rate"},"show_gpu_temperature":{"description":"Auto shows this when a GPU reporting temperature is detected.","label":"GPU temperature"},"show_gpu_usage":{"description":"Auto shows this when a GPU reporting usage is detected.","label":"GPU usage"},"show_gpu_vram":{"description":"Auto shows this when a GPU reporting VRAM usage is detected.","label":"GPU VRAM usage"},"show_ram":{"label":"RAM usage"},"show_separators":{"label":"Category separators"},"show_swap":{"label":"Swap usage"},"show_tooltip":{"label":"Detailed tooltip"},"show_top_processes":{"description":"Show the highest CPU and RAM consumers reported by ps.","label":"Top processes in tooltip"},"show_upload":{"label":"Upload rate"},"tri_state":{"auto":"Auto","off":"Off","on":"On"}}},"system-updater":{"action_check":"Check Updates","action_update":"Update","adapter_actions":{"packagekit_cancel":{"label":"Cancel","tip":"Cancel the offline update process"},"packagekit_info_reboot_required":{"label":"Offline update is triggered. Reboot is required to complete the update process."},"packagekit_reboot":{"label":"Reboot and update","tip":"Reboot the system to complete the offline update process"}},"error_phase_action":"Error occurred while performing the action","error_phase_check":"Error occurred while checking for updates","error_phase_update":"Error occurred while updating","error_timeout":"The command timed out.","last_check_time":"Last checked: {time}","notify_check_body_action":"✔ {adapter}: done, action required.","notify_check_body_error":"🗙 {adapter}: failed.","notify_check_body_found":"✔ {adapter}: {total} packages to upgrade.","notify_check_body_success":"✔ {adapter}: up to date.","notify_check_error_title":"System Updates Manager: Error checking for updates","notify_check_finished_title":"System Updates Manager: Check completed","notify_update_body_error":"🗙 {adapter}: failed.","notify_update_body_success":"✔ {adapter}: done.","notify_update_error_title":"System Updates Manager: Error applying updates","notify_update_finished_title":"System Updates Manager: Updates applied","settings":{"adapters_folder":{"description":"The folder where adapters definitions are stored. One adapter per subfolder. Each adapter folder must contain an adapter.json with the adapter definition.","label":"Adapters folder"},"auto_check_minutes":{"description":"Check for updates automatically every N minutes. if <= 10 never checks on its own — nothing runs until you ask for it.","label":"Auto-check interval (minutes)"},"enable_cargo":{"description":"Enable the Cargo adapter for managing system updates.","label":"Enable Cargo adapter"},"enable_flatpak":{"description":"Enable the Flatpak adapter for managing system updates.","label":"Enable Flatpak adapter"},"enable_gearlever":{"description":"Enable the Gear Lever adapter for managing AppImage updates.","label":"Enable Gear Lever adapter"},"enable_packagekit":{"description":"Enable the PackageKit adapter for managing system updates.","label":"Enable PackageKit adapter"},"enable_pipx":{"description":"Enable the pipx adapter for managing Python application updates.","label":"Enable pipx adapter"},"enable_xbps":{"description":"Enable the XBPS adapter for managing system updates.","label":"Enable XBPS adapter"},"glyph":{"description":"The glyph shown for the system updater widget on the bar.","label":"Bar glyph"},"notify_on_updates":{"description":"Send a desktop notification when a check finds packages to upgrade or after applying updates.","label":"Notify when updates are found or applied"},"show_count":{"description":"Show the number of pending updates next to the bar glyph.","label":"Show the update count"}},"status_checking":"Checking for updates…","status_clean":"Everything is up to date","status_idle":{"one":"1 package to upgrade","other":"{count} packages to upgrade"},"status_never_checked":"Updates have never been checked","status_updating":"Downloading and applying updates…","tip_check":"Check for updates now","tip_check_adapter":"{adapter}: Check for updates now","tip_close":"Close","tip_copy_to_clipboard":"Copy text to clipboard","tip_delete_error":"Delete this error message","tip_settings":"Plugin settings","tip_update":"Update pending packages","tip_update_adapter":"{adapter}: Update pending packages","tip_update_package":"Update the selected package","title":"System Updates Manager"},"systemd":{"launcher":{"action":{"restart":"Restart {unit}","start":"Start {unit}","stop":"Stop {unit}"},"loading":"Loading units…","no-matches":"No matching units","no-units":"No units found","scope":{"system":"system","user":"user"},"systemctl-missing":"systemctl is not on PATH"},"notify":{"failed":"Failed to {verb} {unit}","launch-failed":"Could not run systemctl","state":"{scope} unit is {state}"},"settings":{"scopes":{"description":"Which systemd managers to list units from.","label":"Unit scopes","options":{"both":"User and system","system":"System only","user":"User only"}},"system_wrapper":{"description":"Command prepended to systemctl for system units, e.g. \"sudo -n\". Leave empty to rely on polkit.","label":"System unit wrapper"},"unit_types":{"description":"Unit types to list, e.g. service, timer, socket.","label":"Unit types"}}},"systempulse":{"settings":{"panel_background_opacity":{"description":"Opacity of the panel background from transparent (0) to opaque (1). Content stays opaque.","label":"Panel Background Opacity"},"show_cpu":{"description":"Display CPU usage percentage in the bar","label":"Show CPU Usage"},"show_disk":{"description":"Display Disk usage percentage in the bar","label":"Show Disk Usage"},"show_gpu":{"description":"Display GPU usage percentage in the bar","label":"Show GPU Usage"},"show_network":{"description":"Display Network usage in the bar","label":"Show Network Usage"},"show_ram":{"description":"Display RAM usage percentage in the bar","label":"Show RAM Usage"}},"title":"SystemPulse"},"taildrop":{"panel":{"loading":"Checking Tailscale…","not_installed":"tailscale is not installed or not on PATH."},"result":{"busy":"A send is already in progress.","cancelled":"Send cancelled","dismissed":"Send request dismissed","failed":"Failed: {error}","no_job":"No matching send request.","no_target":"No destination chosen.","sent":"Sent","sent_to":"Sent {n} item(s) to {target}"},"send":{"auto_close":"Closing automatically…","cancel":"Cancel","done":"Done","file":"File:","files":"Sending {n} item(s)","folder":"Folder:","loading":"Finding eligible devices…","pick":"Choose a device to send to:","retry":"Retry","select":"Select a device","send_to":"Send to {name}","sending":"Sending to {target}…","sent":"Sent successfully","title":"Send via Taildrop"},"settings":{"tailscale_bin":{"description":"Command name or absolute path to the tailscale CLI.","label":"tailscale binary"}},"title":"Taildrop"},"tailnet":{"launcher":{"copy-ip":"Enter: copy {value}","copy-name":"Enter: copy {value}","offline":"offline","online":"online","this-host":"this host"},"panel":{"admin":"Open the admin console","connect":"Connect (tailscale up)","copy-ip":"Copy IP","copy-ip-value":"Copy IP {value}","copy-name":"Copy name","copy-name-value":"Copy name {value}","disconnect":"Disconnect (tailscale down)","exit-node-active":"Exit node: {name}","exit-node-clear":"Disable","exit-node-use":"Use as exit node","filter":"Filter {online}/{total} hosts…","last-check-info":"Last check: {value}","login":"Log in","needs-login":"Tailscale needs authentication. Open the login page in the browser.","no-peers":"No peers to show.","ping":"Ping","refresh":"Refresh","ssh":"Open SSH in terminal","taildrop":"Receive Taildrop files","title":"Tailnet"},"peer":{"last-seen":"seen {value}"},"ping":{"relayed":"No direct connection — traffic is relayed through a DERP server."},"pref":{"accept-routes":"Accept subnet routes","advertise-exit-node":"Advertise as exit node","allow-lan-access":"Allow LAN access while using an exit node","off":"off","on":"on","run-ssh":"Tailscale SSH server","shields-up":"Shields up (block incoming connections)"},"settings":{"admin_url":{"description":"Opened by the admin button. Empty = the Tailscale admin console.","label":"Admin console URL"},"hide_mullvad":{"description":"Hide Mullvad VPN exit nodes from the peer list.","label":"Hide Mullvad exit nodes"},"hide_offline":{"description":"Hide offline peers from the panel and launcher lists.","label":"Hide offline peers"},"poll_interval":{"description":"How often the Tailscale status is refreshed.","label":"Poll interval (seconds)"},"show_count":{"description":"Show online/total peers next to the icon.","label":"Show peer count"},"show_ip":{"description":"Show this node's Tailscale IP in the bar.","label":"Show own IP"},"ssh_username":{"description":"Username for the SSH button. Empty = system default.","label":"SSH username"},"taildrop_dir":{"description":"Where received files are saved. Empty = the XDG download folder.","label":"Taildrop download folder"},"tailscale_bin":{"description":"Full path to the tailscale command. Empty = look it up on PATH.","label":"Tailscale binary"}},"shortcut":{"label":"Tailnet"},"state":{"error":"Error","needs-login":"Login required","not-installed":"Tailscale not installed","running":"Connected","stopped":"Disconnected"},"taildrop":{"failed":"Taildrop receive failed (operator mode set?).","none":"No pending files.","received":"{count} file(s) received in {dir}:"},"toast":{"connected":"Connected.","copied-ip":"{host}: IP {value} copied.","copied-name":"{host}: name {value} copied.","disconnected":"Disconnected.","exit-node-disabled":"Exit node disabled.","exit-node-enabled":"Exit node enabled.","failed":"Command failed.","invalid-username":"Invalid SSH username: use letters, digits, dots, dashes or underscores.","pref-off":"{name}: disabled.","pref-on":"{name}: enabled.","title":"Tailnet"},"tooltip":{"exit-node":"Exit node","online":"Peers online","self":"This node","state":"State"}},"tailscale":{"actions":{"advertise_off":"Stop advertising","advertise_on":"Advertise exit","clear_exit":"Clear exit","copy_dns":"Copy DNS","copy_ip":"Copy IP","down":"Disconnect","lan_off":"Block LAN","lan_on":"Allow LAN","open_admin":"Admin","ping":"Ping","refresh":"Refresh","routes_off":"Ignore routes","routes_on":"Accept routes","shields_off":"Shields down","shields_on":"Shields up","ssh":"SSH","ssh_off":"Disable SSH","ssh_on":"Enable SSH","up":"Connect","use_exit":"Use exit"},"colors":{"error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"},"exit":{"detail":"{ip} · {status}"},"filter":{"placeholder":"Filter…  e.g. edge  or  !online"},"launcher":{"action":{"clear_exit":"Clear exit node","copy_dns":"Copy DNS name","copy_ip":"Copy IPv4","ping":"Ping","ssh":"SSH","use_exit":"Use as exit node"},"cat":{"admin":"Admin console","admin-sub":"Open Tailscale admin in browser","down":"Disconnect","down-sub":"tailscale down","exit":"Exit nodes","exit-sub":"Choose or clear an exit node","panel":"Open panel","panel-sub":"Full Tailscale manager","peers":"Peers","peers-sub":"Browse machines on the tailnet","refresh":"Refresh","refresh-sub":"Re-query status","status":"Status","status-sub":"Connection summary","up":"Connect","up-sub":"tailscale up"},"loading":"Loading Tailscale…","missing":"tailscale not found"},"panel":{"busy":"Working…","empty":"No items match the current filter.","health":"{msg}","host":"{host}","loading":"Querying Tailscale…","not_installed":"tailscale is not installed or not on PATH.","select_hint":"Select an item for actions.","summary":"{state} · {online}/{total} online · exit {exit}","updated":"Updated {time}"},"peer":{"detail":"{os} · {relay} · {v4}","traffic":"↓{rx} ↑{tx}"},"result":{"admin_opened":"Opening admin console…","advertise_off":"No longer advertising exit node","advertise_on":"Advertising as exit node","busy":"Another operation is running.","copied":"Copied {name}","down":"Tailscale disconnected","exit_cleared":"Exit node cleared","exit_set":"Exit node set to {name}","failed":"Failed: {error}","lan_off":"LAN access blocked with exit node","lan_on":"LAN access allowed with exit node","missing":"tailscale CLI not found.","peer_offline":"{name} went offline","peer_online":"{name} is online","ping_started":"Pinging {name}…","routes_off":"Not accepting subnet routes","routes_on":"Accepting subnet routes","shields_off":"Shields up disabled","shields_on":"Shields up enabled","ssh_off":"Tailscale SSH disabled","ssh_on":"Tailscale SSH enabled","ssh_started":"Opening SSH to {name}…","success":"Done","up":"Tailscale connected"},"settings":{"admin_url":{"description":"Override the admin machines URL opened from the panel.","label":"Admin console URL"},"flag_problem":{"description":"Show an error-tinted status dot while Tailscale is not running, instead of the neutral grey one.","label":"Flag problems in red"},"hide_when_healthy":{"description":"Hide the widget entirely while Tailscale is running; show it only when the daemon is stopped, needs login, or is unreachable.","label":"Hide when healthy"},"notify_on_peer_change":{"description":"Desktop notification when a peer changes connectivity.","label":"Notify on peer online/offline"},"ok_color":{"label":"Connected color (green)"},"refresh_interval":{"description":"How often to poll tailscale status.","label":"Refresh interval (seconds)"},"show_counts":{"description":"Display online/total peer counts on the widget.","label":"Show counts on bar"},"ssh_user":{"description":"Optional user for tailscale ssh (empty uses the CLI default).","label":"Default SSH user"},"tailscale_bin":{"description":"Command name or absolute path to the tailscale CLI.","label":"tailscale binary"},"warn_color":{"label":"Disconnected color (grey)"}},"status":{"dns":"DNS: {dns}","exit":"Exit node: {name}","ips":"IPs: {v4}  {v6}","none":"none","off":"off","on":"on","prefs":"Shields {shields} · Routes {routes} · SSH {ssh} · DNS {dns}","state":"State: {state}","tailnet":"Tailnet: {name}","version":"Version: {version}"},"tabs":{"exit":"Exit nodes","peers":"Peers","status":"Status"},"title":"Tailscale","widget":{"refresh_requested":"Refreshing Tailscale…","tooltip_down":"Tailscale unavailable: {error}","tooltip_missing":"tailscale CLI not found","tooltip_ok":"{state} · {online}/{total} peers online · exit {exit}","tooltip_stopped":"Tailscale is stopped · {total} known peers"}},"theme-switcher":{"apply":{"err_body":"{title}","err_title":"Couldn't apply theme","ok_body":"{title}","ok_title":"Theme applied"},"carousel":{"add":"Add theme","empty":"No themes yet. Add one to get started.","title":"Theme Switcher"},"editor":{"browse_title":"Pick an image","cancel":"Cancel","capture":"Capture desktop","capture_fail_body":"Couldn't find a new screenshot. Make sure Save to file is enabled in the screenshot settings.","capture_fail_title":"Capture failed","capturing":"Capturing…","current_wallpaper":"Use current wallpaper","delete":"Delete","deleted":"Theme deleted","deleted_body":"{title}","loading":"Loading…","missing_title":"Add a title first.","no_images":"No images found in this directory.","no_wallpapers":"No wallpapers yet.","palette":"Palette","save":"Save","saved":"Theme saved","saved_body":"{title}","screenshot":"Screenshot","screenshot_placeholder":"Screenshot path","source":"Palette source","title":"Title","title_edit":"Edit Theme","title_new":"New Theme","title_placeholder":"Theme name","wallpaper":"Wallpaper","wallpaper_browse":"Browse","wallpaper_current_fail":"Couldn't find the current wallpaper.","wallpaper_placeholder":"Wallpaper image path","wallpapers":"Wallpapers"},"ipc":{"not_found":"No theme matches \"{query}\"."},"random":{"applied":"Random wallpaper applied","no_wallpapers":"This theme has no wallpapers.","none_applied":"No theme is currently applied.","shortcut":"Random wallpaper"},"shortcut":{"label":"Themes"},"source":{"builtin":"Built-in","community":"Community","custom":"Custom","wallpaper":"Wallpaper"},"wallpapers":{"add":"Add wallpaper","applied":"Wallpaper applied","browse_title":"Browse","current":"Use current wallpaper","current_fail":"Couldn't find the current wallpaper.","no_images_found":"No images found in this directory.","no_wallpapers":"This theme has no wallpapers.","none_applied":"No theme is currently applied.","shortcut":"Wallpaper","title":"Wallpapers"},"widget":{"label":"Themes"}},"thinkpad-fan":{"level":{"auto":"Auto","full":"Full speed"},"notify":{"fan_error_body":"Could not set the fan level. Check the write permissions (see the plugin README).","fan_error_title":"Fan control"},"panel":{"auto":"Auto","full":"Full","title":"Fan control"},"settings":{"allow_popup":{"description":"Open the manual fan-level panel by left-clicking the widget","label":"Left-click opens the control panel"},"colorize_by_status":{"description":"Tint the widget when the fan is forced off or at a manual level","label":"Colorize by status"},"thermal_zone":{"description":"sysfs thermal zone used for the temperature, e.g. thermal_zone0","label":"Thermal zone"}},"tooltip":{"level":"Level","speed":"Speed","temperature":"Temperature"}},"thunderbird-companion":{"notify":{"command_failed":"Thunderbird action failed","launch_failed":"Could not launch Thunderbird","new_mail":"New mail","new_mail_body":"{sender}: {subject}","setup_failed":"Could not start bridge setup"},"panel":{"archive":"Archive","bridge_incompatible_body":"The installed companion is incompatible with this plugin. Reinstall the bundled bridge, then install the prepared XPI.","bridge_incompatible_title":"Update Thunderbird companion","close":"Close","compose":"Compose","copy_package_path":"Copy package path","empty":"Inbox zero","empty_body":"No unread messages were reported by Thunderbird.","last_sync":"Last sync {time}","mark_all_read":"Mark all unread messages as read","mark_read":"Mark as read","no_subject":"(No subject)","offline_body":"Open Thunderbird and make sure the companion extension is enabled. Cached messages remain visible below.","open_addons":"Open Add-ons","open_message":"Open message","open_package_folder":"Open package folder","open_thunderbird":"Open Thunderbird","refresh":"Refresh","reply":"Reply","retry_setup":"Retry setup","setup_body":"Install the bundled native bridge and build the companion extension.","setup_bridge":"Set up bridge","setup_error_title":"Bridge setup failed","setup_ready_body":"Select Open package folder below, then drag thunderbird-companion.xpi into Thunderbird Add-ons and approve its permissions.","setup_ready_title":"Companion package ready","setup_running":"Preparing companion…","setup_running_body":"Installing the bundled native host and building the Thunderbird extension package.","setup_title":"Connect Thunderbird","status_bridge_incompatible":"Companion update required","status_offline":"Thunderbird bridge is offline","status_online":"Connected","status_setup_required":"Bridge setup required","status_stale":"Last snapshot is stale","status_thunderbird_missing":"Thunderbird command not found","title":"Thunderbird","unknown_folder":"Unknown folder","unknown_sender":"Unknown sender","unread":{"one":"{count} unread message","other":"{count} unread messages"},"update_bridge":"Update companion"},"settings":{"glyph":{"description":"Icon shown in the bar.","label":"Widget icon"},"max_messages":{"description":"Maximum number of recent unread messages shown in the panel.","label":"Messages in panel"},"notify_new":{"description":"Show Noctalia notifications when new unread messages appear. Disabled by default to avoid duplicating Thunderbird notifications.","label":"Notify about new mail"},"thunderbird_command":{"description":"Command used to launch Thunderbird. Change this for a wrapper or non-standard installation.","label":"Thunderbird command"}},"widget":{"bridge_incompatible":"Thunderbird companion update required","compose":"Compose a new message","no_unread":"No unread messages","offline":"Thunderbird bridge is offline","setup_required":"Thunderbird bridge setup required","thunderbird_missing":"Thunderbird command not found","unread":{"one":"{count} unread message","other":"{count} unread messages"}}},"timezone-hub":{"device":{"label":"This Device"},"ipc":{"duplicate-zone":"\"{zone}\" is already in the comparison list","empty-list":"No comparison timezones configured","invalid-zone":"\"{zone}\" is not a valid IANA timezone"},"panel":{"add":"Add a timezone","detecting":"Detecting device timezone…","earlier":"Earlier hours","jump-to-now":"Jump back to now","later":"Later hours","now":"Now","open-settings":"Open plugin settings","subtitle":"Device timezone:","title":"Timezone Hub"},"picker":{"back":"Back","empty":"No matching timezones","loading":"Loading timezone database…","search-placeholder":"Search city or region…","title-add":"Add a timezone","title-device":"Set device timezone"},"relative":{"afternoon":"afternoon","ahead":"{offset} ahead","behind":"{offset} behind","day-offset":"{days} days","evening":"evening","inside-work-hours":"Within working hours","morning":"morning","night":"night","outside-work-hours":"Outside working hours","same-time":"Same time","tomorrow":"Tomorrow","yesterday":"Yesterday"},"row":{"cancel-remove":"Cancel removal","change-device":"Change device timezone","confirm-remove":"Confirm removal","drag-tooltip":"Drag to reorder","hide-from-bar":"Hide from bar widget","remove":"Remove","same-time":"same time","set-device":"Set as device timezone","show-in-bar":"Show in bar widget"},"settings":{"date-format":"Date format","date-format-iso":"ISO · 2026-09-09","date-format-short":"Short · Sep 09","date-format-weekday":"Weekday · Tue, Sep 09","format-12h":"12-hour","format-24h":"24-hour","highlight-work-hours":"Highlight work hours","hours-after":"Hours shown after now","hours-before":"Hours shown before now","no-comparisons":"No comparison timezones yet — add one above.","show-date-in-bar":"Show date in bar","show-date-in-bar-desc":"Show the selected timezone's local date beside the bar clock.","show-date-in-panel":"Show dates in panel","show-date-in-panel-desc":"Show each timezone's local date in its comparison row.","show-relative-time":"Show relative descriptions","show-relative-time-desc":"Describe whether a city is ahead or behind, on another day, and inside working hours.","show-sun-times":"Show sunrise and sunset","show-sun-times-desc":"Calculate local sunrise and sunset from the system timezone database without network access.","time-format":"Time format","work-hour-end-desc":"Hour the work day ends (1-24)","work-hour-start-desc":"Hour the work day starts (0-23)","work-hours-range":"Work hours"},"toast":{"device-change-failed":"Failed to change the device timezone. Authorization was denied or timedatectl is unavailable.","device-changed":"Device timezone set to","max-bar-zones":"You can show up to three timezones in the bar.","title":"Timezone Hub"}},"tmux-provider":{"no_sessions_found":"No sessions found","no_sessions_subtitle":"Start a tmux session to see it here","session_attached":"Attached","session_detached":"Detached","settings":{"use_tmuxp":{"description":"Also list tmuxp session configurations (via `tmuxp ls`).","label":"Enable tmuxp"}},"tmux_not_found":"tmux not found","tmux_not_found_subtitle":"Install tmux to use this provider","tmuxp_config":"tmuxp config"},"todo":{"all_hidden":"All tasks are done — the eye toggle is hiding them","bar_count_both":"{pending}/{total} todos","bar_count_plural":"{count} todos","bar_count_singular":"{count} todo","clear_done_confirm":"Delete all done entries?","clear_done_no":"Cancel","clear_done_yes":"Delete","empty":"No tasks yet — add one with + (or press N)","hide_completed":"Hide completed","hide_count":"Hide count","menu_delete":"Delete task","menu_done":"Mark as done","menu_edit":"Edit task","menu_priority":"Priority","menu_undone":"Mark as to do","placeholder":"New task…","prio_important":"Important","prio_low":"Low","prio_medium":"Medium","save_failed":"Failed to save the task list","settings":{"count_mode":{"description":"Which count the bar label shows next to the task count","label":"Bar count","options":{"both":"Pending/total","pending":"Pending only","total":"Total"}},"glyph":{"description":"The glyph shown for the To Do widget on the bar.","label":"Bar glyph"},"label":{"description":"Text displayed beside the Todo icon","label":"Label"},"show_label":{"description":"Show/hide the text label beside the bar icon","label":"Show label"},"sound_on_complete":{"description":"Play a short sound when a task is marked done.","label":"Sound on complete"},"todo_folder":{"description":"Folder holding the task list (todo.json). Defaults to ~/Documents/Todo.","label":"To Do folder"}},"show_completed":"Show completed","show_count":"Show count","sort_manual":"Manual","sort_priority":"Priority","tip_add":"Add a task (N)","tip_all_done":"Mark every task as done","tip_all_undone":"Mark every task as to do","tip_clear_done":"Delete all done tasks","tip_close":"Close","tip_commit":"Save (Enter)","tip_delete":"Delete task","tip_done":"Mark as done","tip_edit":"Edit task","tip_grip":"Drag to reorder","tip_grip_drop":"Click another grip to drop here, or this one to cancel","tip_hide_completed":"Hide completed tasks","tip_hide_completed_manual":"Switch to priority order to hide completed tasks","tip_hide_count":"Hide the task count on the bar widget","tip_set_all_important":"Set every task to Important","tip_set_all_low":"Set every task to Low","tip_set_all_medium":"Set every task to Medium","tip_settings":"Plugin settings","tip_show_completed":"Show completed tasks","tip_show_count":"Show the task count on the bar widget","tip_sort":"Switch ordering mode (S)","tip_undone":"Mark as to do","title":"To Do","tooltip":"To Do — {count} to do"},"topgrade-wrapper":{"action_check":"Check Updates","action_dismiss":"Dismiss","action_update":"Update","caption_checked":"checked {time}","caption_config":"config {path}","caption_config_default":"topgrade defaults","caption_excluded":{"one":"1 step excluded","other":"{count} steps excluded"},"count":{"apt":"APT","aur_paru":"AUR (paru)","aur_yay":"AUR (yay)","brew":"Homebrew","cargo":"Cargo","dnf":"DNF","flatpak":"Flatpak","gem":"RubyGems","npm":"npm","pacman":"Pacman","pip":"pip","snap":"Snap","zypper":"Zypper"},"err_dry_failed":"topgrade could not list its steps","err_dry_timeout":"Timed out while listing the topgrade steps","err_no_terminal":"No terminal emulator found — set one in the plugin settings","err_no_topgrade":"topgrade not found — install it and check your PATH","err_spawn":"Could not run topgrade","hover_hint":"Hover a package for its full versions","more_packages":"+{count} more","notify_updates":{"one":"1 package to upgrade","other":"{count} packages to upgrade"},"settings":{"assume_yes":{"description":"Pass --yes so package managers do not ask for confirmation. Off means you confirm each one in the terminal window.","label":"Answer yes automatically"},"auto_check_hours":{"description":"Check for updates automatically every N hours. 0 (default) never checks on its own — nothing runs until you ask for it.","label":"Auto-check interval (hours)"},"exclude_mode":{"description":"Where skipped steps come from. 'topgrade configuration' uses only the disable list in your topgrade.toml. 'Override with the list below' also passes the steps you list as --disable; note that --disable can only add exclusions, never re-enable a step your topgrade.toml already disables.","label":"Excluded steps source","options":{"config":"topgrade configuration","override":"Override with the list below"}},"exclude_steps":{"description":"topgrade step ids to skip, e.g. flatpak, cargo, containers. Passed on the command line; the config file is never modified. Run 'topgrade --help' for the full list of ids.","label":"Excluded steps"},"glyph":{"description":"The glyph shown for the topgrade widget on the bar.","label":"Bar glyph"},"keep_terminal_open":{"description":"Pass --keep so the terminal window waits for a key press instead of closing when the run ends.","label":"Keep the terminal open"},"notify_on_updates":{"description":"Send a desktop notification when a check finds packages to upgrade.","label":"Notify when updates are found"},"show_count":{"description":"Show the number of pending updates next to the bar glyph.","label":"Show the update count"},"show_versions":{"description":"Show `installed → available` beside each package when a manager row is expanded. Off lists names only; hovering a package still shows its full versions under the list either way.","label":"Show package versions"},"sound_on_updates":{"description":"Play a short sound when a check finds packages to upgrade.","label":"Sound when updates are found"},"sudo_loop":{"description":"Pass --sudoloop so topgrade refreshes the sudo timestamp and asks for your password once. Leaves a sudo session open for the whole run.","label":"Keep sudo alive"},"terminal":{"description":"Terminal command used for the update run, e.g. kitty or ghostty. Empty (default) uses Noctalia's terminal detection ($TERMINAL, then the common emulators).","label":"Terminal"},"topgrade_config":{"description":"Alternative topgrade configuration file, passed as --config. Empty (default) lets topgrade find its own, which is what the update count reflects.","label":"topgrade configuration"}},"status_checking":"Checking for updates…","status_checking_step":"Checking {step}…","status_clean":"Everything is up to date","status_error":"Update check failed","status_idle":"Not checked yet","status_missing":"topgrade is not installed","status_ready":{"one":"1 package to upgrade","other":"{count} packages to upgrade"},"status_running":"topgrade is running in a terminal…","step_planning":"topgrade steps","step_unnamed":"topgrade","tip_check":"Check for updates now","tip_close":"Close","tip_run_now":"Run topgrade now, skipping the check","tip_settings":"Plugin settings","tip_update":"Run topgrade in a terminal window","title":"Topgrade Wrapper","tooltip_checked":"Checked","tooltip_hints":"click: panel · right: check now","tooltip_pending":"Pending","tooltip_status":"Status","uncounted":"Not counted: {steps}","up_to_date":"Up to date: {steps}"},"udiskie":{"btn_docs":"Check Documentation","btn_eject":"Eject","btn_mount":"Mount","btn_mount_all":"Mount All","btn_open":"Open","btn_poweroff":"Power Off","btn_retry":"Retry Connection","btn_unlock":"Unlock","btn_unmount":"Unmount","btn_unmount_all":"Unmount All","copy_path_tooltip":"Copy mount path","error_missing_dep":"udiskie binary is missing from PATH","no_partitions_found":"No partitions found","notif_drive_connected_body":"{label} connected","notif_drive_connected_title":"Drive Connected","notif_drive_mounted_body":"{label} is ready to use","notif_drive_mounted_title":"Drive Mounted","notif_drive_removed_body":"{label} disconnected","notif_drive_removed_title":"Drive Removed","notif_drive_unmounted_body":"{label} was safely unmounted","notif_drive_unmounted_title":"Drive Unmounted","notif_eject_failed_fallback":"Could not eject {device}","notif_eject_failed_title":"Eject Failed","notif_mount_all_failed_fallback":"Could not mount all devices","notif_mount_all_failed_title":"Mount All Failed","notif_mount_failed_fallback":"Could not mount {device}","notif_mount_failed_title":"Mount Failed","notif_poweroff_failed_fallback":"Could not power off {device}","notif_poweroff_failed_title":"Power Off Failed","notif_unmount_all_failed_fallback":"One or more devices are busy","notif_unmount_all_failed_title":"Unmount All Failed","notif_unmount_failed_fallback":"Device {device} is busy or in use","notif_unmount_failed_title":"Unmount Failed","notify_path_copied":"Path copied to clipboard","panel_empty":"No USB drives detected","panel_title":"Udiskie Manager","settings":{"auto_open_filemanager":{"description":"Automatically open mounted drives in file manager.","label":"Auto-open file manager"},"enable_notifications":{"description":"Show native Noctalia desktop notifications on device events.","label":"Desktop notifications"},"file_manager_cmd":{"description":"Command used to open mounted folders.","label":"File manager command"},"glyph":{"description":"The glyph shown for the Udiskie widget on the bar.","label":"Bar glyph"},"hide_when_empty":{"description":"Hide the bar widget when no USB drives are connected.","label":"Hide when empty"},"show_count":{"description":"Display count of mounted devices on the bar widget.","label":"Show device count"}},"status_locked":"Locked (LUKS)","status_mounted":"Mounted","status_unmounted":"Unmounted","tooltip_empty":"No devices mounted","tooltip_mounted":"Mounted devices"},"um5606_fan_state":{"settings":{"poll_interval":{"description":"Poll interval in ms","label":"Poll interval"},"show_label":{"label":"Show label"}},"title":"ASUS UM5606 Fan State"},"umbriel-displays":{"action":{"advanced":"Advanced settings","arrange":"Arrange displays","refresh":"Re-read displays"},"advanced":{"flips":"Frame delivery","picture":"Picture","title":"Advanced","workspaces":"Workspaces"},"arrange":{"hint":"drop a screen on another to swap, or on a slot to insert","title":"Arrange displays"},"field":{"direct_scanout":"Direct scanout","dynamic":"Dynamic","hdr":"HDR","refresh":"Refresh rate (Hz)","resolution":"Resolution","scale":"Scale","scrolling_width":"Default column width","sdr_white":"SDR white (cd/m2)","static":"Static","tearing":"Allow tearing","transform":"Rotation","vrr":"Adaptive sync","workspace_axis":"Workspace axis","workspaces":"Minimum workspaces","workspaces_count":"Workspace count","workspaces_mode":"Workspace inventory"},"rescue":{"blind":"No display was reported. Every output was re-enabled.","body":"{name} was re-enabled: it is the only display left.","title":"Displays"},"settings":{"glyph":{"label":"Bar glyph"},"outputs_path":{"description":"The file this plugin writes [output.*] sections into. It must be listed in the Umbriel config's [include] files.","label":"Include file"}},"status":{"applied":"Applied.","last_output":"The last enabled display cannot be turned off.","missing_umbriel":"umbriel is not on PATH.","no_mode":"{name} reports no usable mode.","no_outputs":"No displays reported.","query_failed":"umbriel outputs failed.","unsupported":"This Umbriel does not support '{key}'. Nothing was changed.","write_failed":"Could not write the include file: {error}"},"title":"Displays","tray":{"hint":"Drop here to disable","restore":"Drag one back onto the canvas to turn it on"},"widget":{"tooltip":"Displays"}},"umbriel-monitor-control":{"error":{"parse_failed":"Could not parse umbriel outputs"},"notify":{"apply_failed":"Could not apply change","bad_transform":"Unknown rotation value","reload_failed":"Config saved but the compositor reload failed","revert_failed":"No previous config backup to restore","saved_no_reload":"Saved. Live apply is off, so it lands on the next session.","validate_failed":"New config rejected - file restored"},"panel":{"apply":"Apply mode","apply_position":"Set this exact position","busy":"Applying...","flipped":"flipped","layout":"Arrangement","monitors":"Monitors","no_outputs":"No outputs reported by the compositor.","off":"off","persist_note":"Changes are written to the Umbriel config file and survive reboots.","place_down":"Place below others","place_left":"Place left of others","place_right":"Place right of others","place_up":"Place above others","position":"Position","position_invalid":"Position needs whole numbers in logical pixels.","position_unit":"px","position_x":"x","position_y":"y","refresh":"Hz","refresh_state":"Refresh","resolution":"Resolution","rotation":"Rotation","unavailable":"Monitor Control needs an Umbriel session with the umbriel CLI available."},"settings":{"auto_reload":{"description":"Run a compositor config reload after saving. Disable to only write the file, applied on next session.","label":"Apply changes live"},"config_path":{"description":"File the plugin patches to persist display settings. Leave the default unless your config lives elsewhere.","label":"Umbriel config path"},"glyph":{"label":"Glyph"},"show_text":{"description":"Show the focused monitor's resolution and refresh rate next to the icon.","label":"Show mode text"}},"shortcut":{"unavailable":"No Umbriel"},"title":"Umbriel Monitor Control","tooltip":{"mode":"Mode","open":"Open Monitor Control","output":"Output"}},"undershell":{"bar":{"tooltip":"undershell — click: panel · right click: edit the desktop"},"panel":{"demo":"Demo","demo_hint":"Visualizers move with a demo spectrum while there is no music","depth":"Behind the scenery","depth_field":"Depth planes ready · the plugin's plane is {level}","depth_mask":"Depth mask ready (planes appear once the plugin caches the depth map)","depth_motion":"A video or scene is on screen: depth is off until a still wallpaper returns","depth_none":"No depth for this wallpaper (enable Wallpaper Depth and generate)","edit":"Edit the desktop","edit_done":"Finish editing","edit_this":"Edit this widget","locked":"moving wallpaper","locked_hint":"Depth is off while a video or scene is the wallpaper.","no_widgets":"No widgets yet. Open the editor and add one with ＋.","not_running":"undershell is not running","not_running_hint":"Its user service starts with your session. Start it now:","plane":"Depth plane (higher is nearer)","plane_auto":"plugin","profile_line":"Layout of {wallpaper} · {count} other wallpaper(s) remembered","profile_waiting":"Waiting for the wallpaper…","profiles_off":"One layout for every wallpaper (profiles are off)","refresh":"Refresh","start":"Start undershell","tilt":"Tilt"},"saves":{"all":"All","confirm":"Click again to delete","delete":"Delete","empty":"No saved profiles yet.","hint":"Each wallpaper already remembers its own layout. Here you keep named copies to load whenever you like (loading can be undone in the editor with Ctrl+Z).","load":"Load","on_screen":"on screen","overwrite":"Overwrite with what is on screen","placeholder":"Profile name (optional)","save":"Save","target":"Load on","title":"Saved profiles"},"type":{"clock":"Clock","now_playing":"Now playing","visualizer":"Visualizer"}},"upbeat":{"settings":{"beat_display":{"description":"Toggle internet time notation (.beats)","label":"Display .beats"},"show_centibeats":{"description":"Toggle subbeat display (.xx)","label":"Display subbeats"},"time_format_toggle":{"description":"Display 24 hour time","label":"Toggle 24HR time"}}},"vial_keymap":{"panel":{"all":"All","combos":"Combos","error":{"hint":"Set the .vil file in Settings -> Plugins (right-click the bar icon).","title":"Could not load keymap"},"hint":{"all":"all","close":"close","layer":"layer","switch":"switch"},"title":"Keymap"},"settings":{"alt_layout":{"description":"Leave empty to use the second layout from Hyprland's input:kb_layout. Otherwise an XKB layout name such as \"ru\", \"rumac\" or \"de(neo)\".","label":"Second layout (XKB name)"},"alt_layout_enabled":{"description":"Draw the letter each key produces in your secondary OS keyboard layout (e.g. Russian) in the top corner of the cap.","label":"Show second layout"},"encoders":{"both":"Both","description":"Which half's encoder bindings to draw. Vial exports a slot per half even if unused.","label":"Encoders","left":"Left only","none":"None","right":"Right only"},"layer_names":{"description":"Comma-separated, in layer order, e.g. \"Base, Nav, Sym, Fn\". Replaces L1-style legends.","label":"Layer names"},"vil_path":{"description":"Path to the .vil file exported from Vial. Re-read every time the overlay opens.","label":"Vial export (.vil)"}},"widget":{"tooltip":"Vial keymap - click to toggle, right-click for settings"}},"vidi":{"settings":{"include-shorts":{"desc":"Show YouTube shorts in the feed and the unread count.","label":"Include shorts"},"max-items":{"desc":"How many videos the panel lists.","label":"Maximum videos"},"open-action":{"browser":"Open in browser","copy":"Copy link","desc":"What happens when a video is clicked.","label":"Click action","mpv":"Play in mpv","vidi":"Open in vidi"},"show-thumbnails":{"desc":"Show thumbnails vidi has cached (~/.cache/vidi/preview_images) when available.","label":"Thumbnails"}}},"vietnamese-lunar-calendar":{"months":{"m1":"January","m10":"October","m11":"November","m12":"December","m2":"February","m3":"March","m4":"April","m5":"May","m6":"June","m7":"July","m8":"August","m9":"September"},"settings":{"accent_weekends":{"description":"Use the accent color for Saturday and Sunday.","label":"Accent Weekends"},"show_can_chi":{"description":"Show the traditional Can Chi year in the calendar footer.","label":"Show Can Chi Year"},"show_festivals":{"description":"Highlight common Vietnamese traditional festivals in the calendar.","label":"Show Traditional Festivals"},"show_timezone":{"description":"Show the UTC+7 calculation time zone below the month title.","label":"Show Time Zone"}},"ui":{"leap":"leap","lunar_date_suffix":"lunar","next_month":"Next month","prev_month":"Previous month","shortcut_label":"Lunar","timezone_label":"Vietnamese Lunar Calendar · UTC+7","timezone_label_short":"Vietnamese Lunar Calendar","today":"Today","year":"Year"},"weekdays":{"fri":"Fri","mon":"Mon","sat":"Sat","sun":"Sun","thu":"Thu","tue":"Tue","wed":"Wed"}},"vikunja":{"actions":{"complete":"Complete","copy":"Copy title","move_to":"Move to","open":"Open in Vikunja","open_project":"Project tasks","postpone_1":"+1 day","postpone_3":"+3 days","refresh":"Refresh"},"colors":{"error":"Error","muted":"Muted","primary":"Primary","secondary":"Secondary","tertiary":"Tertiary"},"launcher":{"add_subtitle":"New task in {project}, due today","add_title":"Add “{title}”","loading":"Loading Vikunja…","no-matches":"No matches","task_subtitle":"{project} · {due}","unavailable":"Vikunja unavailable"},"panel":{"add_button":"Add","add_hint":"added to {project}, due today","add_placeholder":"New task title…","bucket_any":"No bucket","bucket_other":"No bucket","busy":"Working…","empty":"Nothing due in this view.","loading":"Loading tasks…","not_configured":"Set the Vikunja URL and API token under Settings → Plugins → Vikunja.","project_back":"Projects","project_open":"{n} open task(s)","projects_hint":"Pick a project to see its tasks.","projects_loading":"Counting open tasks…","select_hint":"Pick a task for actions.","subtitle":"Tasks due today and overdue","summary":"{today} today · {overdue} overdue · {soon} upcoming","updated":"Updated {time}"},"result":{"added":"Added “{title}”","busy":"Another operation is running.","completed":"Completed “{title}”","copied":"Copied “{text}”","failed":"Failed: {error}","moved":"Moved “{title}” to {bucket}","no_project":"No project to add to — set a default project in the plugin settings.","not_configured":"Vikunja is not configured.","opened":"Opening “{name}” in Vikunja","overdue_notice":"{n} task(s) overdue: {titles}","postponed":"Postponed “{title}” to {date}","project_closed":"Back to projects","project_opened":"Opened “{project}”"},"settings":{"api_token":{"description":"Settings → API Tokens in Vikunja. Needs projects:read and tasks:read, plus tasks:create and tasks:update for add/complete/postpone.","label":"API token"},"base_url":{"description":"Vikunja origin only, e.g. https://vikunja.example.com (no trailing /api).","label":"Base URL"},"default_project":{"description":"Project (name or numeric id) that quick add and /vk add use. Empty picks the first project.","label":"Default project"},"notify_on_due":{"description":"Desktop notification when a task becomes overdue.","label":"Notify when tasks become overdue"},"ok_color":{"label":"Healthy color"},"refresh_interval":{"description":"How often to poll Vikunja.","label":"Refresh interval (seconds)"},"show_label":{"description":"Display the today/overdue count next to the icon.","label":"Show count on bar"},"soon_days":{"description":"How many days ahead the Upcoming tab and the widget lookahead cover.","label":"Upcoming window (days)"},"timezone":{"description":"IANA time zone used for “today”, day boundaries and due dates sent to Vikunja. Empty uses the server's zone.","label":"Time zone"},"warn_color":{"label":"Issue color"}},"tabs":{"projects":"Projects","today":"Today","upcoming":"Upcoming"},"task":{"due_today":"today","due_tomorrow":"tomorrow","no_due":"no due date","overdue":"{n} day(s) overdue"},"title":"Vikunja","widget":{"label_issues":"{n}","label_ok":"OK","refresh_requested":"Refreshing Vikunja…","tooltip_issues":"Vikunja · {overdue} overdue · {today} today\n{list}","tooltip_missing":"Set the Vikunja URL and API token under Settings → Plugins → Vikunja.","tooltip_ok":"Vikunja · {today} today · {soon} upcoming","tooltip_unavailable":"Vikunja unavailable: {error}"}},"vm-manager":{"error":{"access_denied":"Access denied to {uri}. Add your user to the libvirt group and re-login: sudo usermod -aG libvirt $USER","autostart_persist":"Autostart only works for persistent (defined) domains — transient domains cannot be autostarted.","connect_failed":"Cannot reach libvirt at {uri}. Is libvirtd running? Check: systemctl status libvirtd","console_failed":"Could not open a console for {name} — is virt-viewer installed?","exit_code":"virsh exited with code {code}","launch_viewer":"Could not launch virt-viewer for {name}. Is virt-viewer installed?","launch_virsh":"Could not start virsh. Is the libvirt client installed?","launch_virsh_for":"Could not start virsh for {action} {name}. Is the libvirt client installed?","no_domain":"No VM named '{name}' on {uri}. Check: virsh -c {uri} list --all","no_domains":"No VMs were found on {uri}.","not_installed":"virsh is not installed — install the libvirt client tools and reload the plugin."},"panel":{"autostart":"Autostart (right-click)","autostart_off":"Disable autostart","autostart_on":"Autostart on boot","autostart_once":"Autostart once (next boot)","busy":"{action} in progress…","close":"Close","console":"Console","empty":"No VMs defined","error":"Could not reach libvirt","footer":"{running} running · {paused} paused · {total} total","force_off":"Force Off","refresh":"Refresh now","resume":"Resume","shutdown":"Shutdown","start":"Start","suspend":"Suspend","title":"Virtual Machines","updated":"updated"},"plugin":{"title":"VM Manager"},"settings":{"connect_uri":{"description":"The libvirt connection to manage, e.g. qemu:///system, qemu:///session, or a remote URI.","label":"Libvirt connection URI"},"poll_interval":{"description":"How often the service re-reads VM state from libvirt.","label":"Poll interval (seconds)"}},"widget":{"error":"Could not reach libvirt","tooltip":"{running} running · {paused} paused · {total} total — click to manage"}},"voxtype":{"settings":{"idle_color":{"description":"Color of the icon while Voxtype is ready and waiting.","label":"Idle icon color"},"idle_glyph":{"description":"Noctalia glyph shown while Voxtype is ready and waiting.","label":"Idle icon"},"recording_color":{"description":"Color of the icon while Voxtype is recording.","label":"Recording icon color"},"recording_glyph":{"description":"Noctalia glyph shown while Voxtype is recording.","label":"Recording icon"},"show_alt":{"description":"Show Voxtype's current state (idle, streaming, recording, transcribing, or stopped) next to the icon.","label":"Show status text"},"show_backend":{"description":"Show the active audio backend on the bar.","label":"Show backend on bar"},"show_device":{"description":"Show the active audio device on the bar.","label":"Show device on bar"},"show_extended":{"description":"Request Voxtype's extended status. The tooltip includes model, device, and backend; the settings below control which fields also appear on the bar.","label":"Extended status"},"show_model":{"description":"Show the active transcription model on the bar.","label":"Show model on bar"},"stopped_color":{"description":"Color of the icon while Voxtype is not running.","label":"Stopped icon color"},"stopped_glyph":{"description":"Noctalia glyph shown while Voxtype is not running.","label":"Stopped icon"},"streaming_color":{"description":"Color of the icon while Voxtype is streaming live audio.","label":"Streaming icon color"},"streaming_glyph":{"description":"Noctalia glyph shown while Voxtype is streaming live audio.","label":"Streaming icon"},"transcribing_color":{"description":"Color of the icon while Voxtype is transcribing recorded audio.","label":"Transcribing icon color"},"transcribing_glyph":{"description":"Noctalia glyph shown while Voxtype is transcribing recorded audio.","label":"Transcribing icon"}},"widget":{"backend":"Backend: {value}","device":"Device: {value}","model":"Model: {value}","stream_error":"Could not start the Voxtype status stream","unavailable":"Voxtype is not installed or is not available on PATH","waiting":"Waiting for Voxtype status…"}},"vpn-manager":{"launcher":{"connect_title":"Connect to {name}","disconnect_title":"Disconnect {name}","open_subtitle":"Manage VPN connections","open_title":"Open VPN Manager"},"notifications":{"a_connection":"connection","asking_secrets":"{name} needs a password - asking for it in a terminal.","auto_connect_failed":"VPN auto-connect failed","auto_disconnect_failed":"VPN auto-disconnect failed","connect_failed":"VPN connect failed","connected_untrusted":"Untrusted network detected - connected {name}.","delete_failed":"Could not delete VPN","detect_failed":"Couldn't detect the protocol. Pick one explicitly (OpenVPN, WireGuard, OpenConnect, vpnc) and try again.","disconnect_failed":"VPN disconnect failed","disconnected_trusted":"Back on a trusted network - disconnected VPN.","file_not_found":"File not found: {path}","import_failed":"Could not import VPN","imported":"Imported {name}.","install_hint":"Install '{package}' and try again.","needs_secrets":"{name} needs a password and no secret agent is running. Save it with 'nmcli connection modify {name} vpn.secrets password=… vpn.data password-flags=0', or connect it by hand once.","no_data_dir":"No writable plugin data directory.","no_default":"No default VPN set. Open the VPN panel and tap the star on a connection first.","no_editor":"No connection editor found. Install nm-connection-editor or nmtui.","no_paste":"Paste a config first.","no_path":"Enter a file path first.","no_picker":"No file picker found. Install kdialog or zenity, or type the path.","pick_in_progress":"A file picker is already open.","status_none":"No VPN connected","write_failed":"Failed to write temporary file."},"panel":{"add_vpn":"Add VPN","auto_detect":"Auto-detect","browse":"Choose a file and import it","close":"Close","collapse":"Hide trusted networks","delete":"Delete connection","delete_confirm":"Confirm deleting {name}","detail":{"device":"Device","gateway":"Gateway","ipv4":"IPv4","ipv6":"IPv6","state":"State","vpn_state":"VPN state"},"details":"Connection details","details_inactive":"Connect this VPN to see its address and device.","details_loading":"Reading connection details…","dismiss":"Dismiss","edit":"Edit connection","expand":"Show trusted networks","import":"Import","import_failed":"Import failed","import_from_file":"Import from file","import_pasted":"Import Pasted Config","keep":"Keep it","manual_note":"PPTP, L2TP/IPsec and IKEv2 usually need fields typed in rather than a file - create those with nmtui or nm-connection-editor and they'll appear above automatically.","no_connections":"No VPN connections yet. Import one below, or create one with nmtui and it will show up here.","or_paste":"or paste a config","paste_placeholder":"[Interface] / [Peer] for WireGuard, or full .ovpn contents","path_placeholder":"~/Downloads/client.ovpn","plugin_settings":"Plugin settings","protocol":"Protocol","refresh":"Refresh now","trust_add":"Add this network to the trusted list","trust_current":"+ Trust '{name}'","trust_placeholder":"SSID or Ethernet connection name","trusted_networks":"Trusted networks","trusted_none":"None yet. VPN auto-connect (if enabled in Settings) treats every network as untrusted until you add one.","use_as_default":"Use as auto-connect default"},"settings":{"auto_connect_enabled":{"description":"When enabled, connects your default VPN whenever you join a Wi-Fi or Ethernet network that isn't in your trusted list.","label":"Auto-connect on untrusted networks"},"auto_disconnect_on_trusted":{"description":"When enabled, disconnects a VPN this plugin auto-started once you're back on a trusted network. Never touches a VPN you started manually.","label":"Auto-disconnect on trusted networks"},"notify_on_autoswitch":{"description":"Show a notification whenever the VPN is automatically connected or disconnected.","label":"Notify on automatic connect/disconnect"},"poll_interval_seconds":{"description":"How often to check VPN and network status.","label":"Check interval (seconds)"},"stable_checks":{"description":"How many consecutive checks a network change must persist before auto-connect/disconnect reacts. Higher values avoid flapping during Wi-Fi roaming.","label":"Stable checks before switching"},"trust_all_ethernet":{"description":"Wired Ethernet is treated as trusted even if its connection name isn't in your trusted list. Turn this off if you plug into untrusted wired networks.","label":"Treat any wired connection as trusted"}},"title":"VPN","tooltip":{"connected":"VPN: {names}","disconnected":"VPN: disconnected"}},"vrchat-status":{"default":{"status":{"message":"Connecting to helper..."}},"error":{"message":{"helper_contact_failed":"Could not contact helper","helper_path_not_configured":"Configure the helper path first.","helper_start_failed":"Could not start helper"}},"panel":{"message":{"label":"Status message","placeholder":"Status message (optional)"},"status":{"ask_me":"Ask Me","do_not_disturb":"Do Not Disturb","join_me":"Join Me","label":"Status","offline":"Offline","online":"Online"}},"settings":{"ask_me_color":{"label":"Ask Me"},"do_not_disturb_color":{"label":"Do Not Disturb"},"helper_path":{"description":"Path to the vrchat-status-helper executable.","label":"vrchat-status-helper path"},"join_me_color":{"label":"Join Me"},"max_length":{"description":"Maximum widget length in pixels; longer messages are shortened.","label":"Max Length"},"message_color":{"label":"Fixed message color"},"message_color_mode":{"fixed":"Fixed color","label":"Status message color","status":"Match status"},"min_length":{"description":"Minimum widget length in pixels.","label":"Min Length"},"offline_color":{"label":"Offline"},"online_color":{"label":"Online"}}},"w-engine":{"no_more_page":"No more page available","panel":{"apply":"Applying {name}","apply_options":"Apply","back":"Back to wallpapers","clear":"Clear","clear_overrides":"Also clear per-wallpaper overrides for the settings changed here","configure":"Configure this wallpaper","cycle_needs_selection":"Select at least one wallpaper before starting a cycle","cycle_running":"Cycling {count} wallpapers every {minutes} min","cycle_start":"Start cycle","cycle_started":"Cycling {count} wallpapers every {minutes} min","cycle_stop":"Stop cycle","defaults":"Global defaults","defaults_tooltip":"Settings applied to every wallpaper","engine":{"clamp":"Clamp mode","disable_mouse":"Disable mouse interaction","disable_parallax":"Disable parallax","disable_particles":"Disable particles","fps":"FPS limit","fullscreen_pause_only_active":"Pause only for the active fullscreen window","inherit":"Use global default","layer":"Wayland layer","no_audio_processing":"Disable audio processing","no_fullscreen_pause":"Keep playing when an app is fullscreen","noautomute":"Disable automute","scaling":"Scaling mode","silent":"Mute this wallpaper","unset":"Engine default","volume":"Volume"},"every":"Every","list_failed":"Could not list Wallpaper Engine wallpapers","minutes":"min","missing_project_json":"No project.json for {name}","no_properties":"This wallpaper exposes no configurable properties","no_wallpapers":"No Wallpaper Engine wallpapers found","order_random":"Random","order_sequential":"In order","playback":"Playback","properties":"Wallpaper properties","reset":"Reset to defaults","select_multiple":"Select multiple","select_multiple_tooltip":"Pick several wallpapers and cycle through them on a timer","selected_count":"{count} selected","stop":"Stop","stop_tooltip":"Stop the wallpaper on this output and restore the previous Noctalia wallpaper","title":"W Engine","unlabeled":"Show {count} options the author left unnamed"},"plugin_description":"A widget for Wallpaper Engine. Set wallpaper from Wallpaper Engine with simple click.","plugin_name":"W Engine","settings":{"grid_columns":{"description":"How many wallpapers to show per row in the panel. The panel itself is a fixed size, so fewer columns means larger previews.","label":"Wallpapers per row"},"sync_colors":{"description":"Generate the Noctalia palette from the wallpaper being applied, the same way an ordinary wallpaper does. Uses the Workshop preview, or a decoded frame for video wallpapers when ffmpeg is installed.","label":"Sync shell colors with the wallpaper"}},"widget":{"cycling":"W Engine — cycling wallpapers","idle":"W Engine","playing":"W Engine — wallpaper running"}},"wallpaper-widget":{"notify":{"switched":"Wallpaper Switched"},"panel":{"active":"ACTIVE","empty":"No wallpapers found in directory.","empty_hint":"Add images (.png, .jpg, .jpeg, .webp) to your wallpapers folder.","hint":"←  →  ↑  ↓ to browse   ·   Enter to apply   ·   Space for random   ·   Esc to close","loading":"Loading wallpapers...","title":"Wallpaper Widget"},"settings":{"close_on_apply":{"description":"Automatically close the Wallpaper Widget carousel after applying a wallpaper.","label":"Close on Apply"},"notify_on_change":{"description":"Show a desktop notification when the wallpaper changes.","label":"Notify on Change"},"wallpaper_dir":{"description":"Path to your wallpapers folder. Leave empty to use Noctalia's configured wallpaper folder.","label":"Wallpaper Directory"}},"shortcut":{"label":"Wallpaper Widget"},"widget":{"click":"Click","open":"Open carousel","random_hint":"Random","right_click":"Right-click","scroll":"Scroll","scroll_hint":"Next / previous","toggle_panel":"Toggle panel"}},"warp":{"error":{"cli-missing":"warp-cli is not installed","command-failed":"Cloudflare WARP command failed","mode-locked":"The WARP mode is locked by policy"},"panel":{"always-on":"Always on","connection":"Connection","disabled":"Disabled","edge":"Cloudflare edge","enabled":"Enabled","endpoint":"Endpoint","handshake":"Last handshake","key-exchange":"Key exchange","latency":"Latency","loss":"Packet loss","mode":"Mode","mode-description":"Select how WARP should route traffic.","mode_doh_description":"DNS over HTTPS only; no WARP tunnel.","mode_dot_description":"DNS over TLS only; no WARP tunnel.","mode_proxy_description":"Expose a local SOCKS5 proxy without a system tunnel.","mode_tunnel_only_description":"Encrypt traffic through WARP without WARP DNS.","mode_warp_description":"WARP tunnel with the standard WARP resolver.","mode_warp_doh_description":"WARP tunnel plus DNS over HTTPS.","mode_warp_dot_description":"WARP tunnel plus DNS over TLS.","policy":"Policy","post-quantum":"Post-quantum","protocol":"Protocol","received":"Received","refresh":"Refresh statistics","security":"Security","sent":"Sent","split-tunnel":"Split tunnel","tls":"TLS","traffic":"Traffic"},"shortcut":{"error":"WARP error","off":"WARP Off","on":"WARP On","unavailable":"WARP unavailable"},"status":{"checking":"Checking","connected":"Connected","connecting":"Connecting","disconnected":"Disconnected","disconnecting":"Disconnecting","error":"Error","unavailable":"Unavailable"},"title":"Cloudflare WARP"},"web-launcher":{"notify":{"message":"Opening {name}","title":"Websites"},"settings":{"command":{"description":"Command that launches the website. Example: \"firefox --new-window\"","label":"Command"},"icon_provider":{"description":"Icon download source.","direct":"Site's own favicon.ico","duckduckgo":"DuckDuckGo","google":"Google","label":"Icon Provider"},"links":{"description":"Format: Name|https://url","label":"Links"},"notify":{"description":"Notify when opening link.","label":"Notify"}}},"web-search":{"settings":{"links":{"description":"Websites shown by /web, formatted as Name|https://example.com.","label":"Websites"},"provider":{"description":"Search engine used for the Search result when activated.","label":"Search provider","options":{"bing":"Bing","brave":"Brave","duckduckgo":"DuckDuckGo","ecosia":"Ecosia","google":"Google","mojeek":"Mojeek"}}}},"webapp-maker":{"btn_create":"Create","err_failed":"webapp-install failed, see the Noctalia log","err_remove_failed":"Removal failed, see the Noctalia log","err_required":"Name and URL are required","err_slash":"Name cannot contain \"/\"","err_timeout":"webapp-install timed out","field_flags":"Chromium launch flags (optional)","field_flags_ph":"--proxy-server=http://127.0.0.1:1080 --incognito …","field_icon":"Icon: URL or file path (empty = fetch from site)","field_icon_ph":"https://…/icon.png or /path/icon.png","field_name":"Name","field_name_ph":"My web app","field_url":"URL","field_url_ph":"example.com (https is added automatically)","installed_empty":"Nothing created yet","installed_title":"Installed","ok_created":"\"{name}\" created — it is in the launcher now","ok_removed":"\"{name}\" removed","settings":{"env_file":{"description":"Sourced before the install and launch commands — e.g. a file exporting HTTPS_PROXY so site icons download through a proxy. Empty = none.","label":"Environment file"}},"status_busy":"Creating — fetching the icon…","tip_close":"Close","tip_remove":"Remove the launcher and icon","title":"New web app"},"wireview-pro-ii":{"settings":{"faults_layout":{"description":"Stack the active and recorded sections on narrow displays.","label":"Fault page layout","side_by_side":"Side by side","stacked":"Stacked"}}},"wl-screen-mirror":{"notification":{"started":"Mirroring {source} to {destination}.","stopped":"Stopped mirroring {source} to {destination}."},"panel":{"action":{"start":"Start mirroring","starting":"Starting…","stop":"Stop mirroring","stopping":"Stopping…"},"choose_another":"Choose another monitor","close":"Close","destination_monitor":"Destination monitor","invalid_pair":"Choose two different connected monitors.","no_monitor":"No monitor available","source_monitor":"Source monitor","status":{"error_message":"Screen mirroring failed.","error_title":"Error","ready_message":"Choose two different monitors.","ready_title":"Ready","running_message":"Screen mirroring is active.","running_title":"Mirroring","starting_message":"Launching wl-mirror…","starting_title":"Starting","stopping_message":"Stopping wl-mirror…","stopping_title":"Stopping"},"two_monitors_required":"Connect at least two monitors to start mirroring.","wl_mirror_missing":"wl-mirror was not found in PATH."},"service":{"data_unavailable":"The plugin data directory is unavailable.","disconnected":"A selected monitor was disconnected.","invalid_pair":"Choose two different connected monitors.","launch_failed":"Noctalia could not launch wl-mirror.","mirror_active":"Screen mirroring is active.","mirror_exited":"wl-mirror exited unexpectedly.","mirror_failed":"wl-mirror failed to start.","mirror_stopped":"Screen mirroring stopped.","monitor_missing":"One of the selected monitors is no longer connected.","ready":"Choose two different monitors.","starting":"Launching wl-mirror…","stopping":"Stopping wl-mirror…","wl_mirror_missing":"wl-mirror was not found in PATH."},"shortcut":{"active":"Screen Mirror On","inactive":"Screen Mirror Off"},"title":"Screen Mirror","widget":{"error":"Screen mirror error","ready":"Choose displays and start screen mirroring","running":"Mirroring {source} to {destination}","starting":"Starting screen mirroring","stopping":"Stopping screen mirroring"}},"world-radio":{"panel":{"add_custom_cancel":"Cancel","add_custom_cover_placeholder":"Cover image URL (optional)","add_custom_name_placeholder":"Station name (optional)","add_custom_save":"Save","add_custom_subtitle":"Play any stream from a URL","add_custom_title":"Add local radio","add_custom_tooltip":"Add local radio","add_custom_url_placeholder":"https://example.com/stream.mp3","all_countries":"All countries ({count})","all_countries_subtitle":"Showing {shown} of {total}","all_countries_title":"All countries","all_stations_title":"All stations","back_tooltip":"Back","countries_empty":"No countries found","custom_count":"{count} saved","custom_empty":"No local radios yet. Tap + to add one with your own stream URL.","custom_title":"Local radios","decade_stations":"Stations by decade","decades_title":"Decades","edit_custom_title":"Edit local radio","edit_custom_tooltip":"Edit","error_network":"Could not reach radio-browser.info. Check your connection.","favorite_tooltip":"Favorite","favorites_count":"{count} saved","favorites_empty":"No favorites yet. Tap the star on any station.","favorites_title":"Favorites","genre_stations":"Stations by genre","genres_title":"Genres","goto_list_tooltip":"Show in list","load_more":"Load more","loading":"Loading...","next_tooltip":"Next station","play_tooltip":"Play","prev_tooltip":"Previous station","random_tooltip":"Play random station","remove_custom_tooltip":"Remove","search_countries_hint":"Type a country name to filter the list","search_countries_placeholder":"Search countries...","search_global_placeholder":"Search station name or keyword...","search_hint":"Type at least 2 characters to search across all countries","search_no_results":"No stations found for this search","search_stations_placeholder":"Search stations by name...","search_subtitle":"All countries","search_title":"Search radios","station_count":"{count} stations","stations_empty":"No stations found","stations_none_match":"No station matches your search","stop_tooltip":"Stop","title":"World Radio","top_countries":"Top countries","total_countries":"Countries","total_stations":"Total stations","unfavorite_tooltip":"Unfavorite"},"settings":{"glyph":{"description":"Icon shown in the bar for this widget.","label":"Icon"},"show_now_playing":{"description":"Show the currently playing station name next to the icon.","label":"Show now playing"}},"widget":{"playing_tooltip":"Now playing: {name}","tooltip":"Open World Radio"}},"yt-music":{"settings":{"debug_logging":{"description":"Write verbose logs to the plugin log file to help troubleshoot issues.","label":"Debug logging"}}},"zed-provider":{"database-empty":"Zed database is empty or not found","filter-empty":"Filter: \"{filter}\"","loading":"Loading…","loading-subtitle":"Reading Zed projects","no-projects-found":"No projects found","settings":{"db_path":{"description":"Path to Zed's db.sqlite file.","label":"Zed database path"},"max_results":{"description":"Maximum number of projects to display.","label":"Maximum results"},"new_window":{"description":"Open selected project in a new Zed window.","label":"Open in new window"}}}},"es":{"9router-control":{"add_model":{"back":"Volver a combo","empty":"No hay modelos disponibles.","no_match":"Ningún modelo coincide con tu búsqueda","search":"Buscar modelos...","title":"Añadir Modelo"},"create":{"back":"Atrás","cancel":"Cancelar","kind_label":"Tipo","models_hint":"Un modelo por línea, en orden de respaldo (por ejemplo, cc/claude-opus-4-7).","models_label":"Modelos","models_placeholder":"cc/claude-opus-4-7\nglm/glm-5.1","name_label":"Nombre","name_placeholder":"P.ej. mi-respaldo","submit":"Crear","title":"Nuevo Combo"},"detail":{"add_model":"Añadir modelo","back":"Volver a combos","delete":"Borrar combo","delete_confirm":"¿Borrar este combo?","delete_no":"Cancelar","delete_yes":"Sí, borrar","drag_hint":"Arrastra un modelo para ordenar","kind_label":"Tipo","models_count":"{count} modelo(s)","models_title":"Cadena de Modelos","move_down":"Mover abajo","move_up":"Mover arriba","no_models":"Este combo no tiene modelos todavía","refresh":"Refrescar","remove_model":"Quitar modelo","rename":"Renombrar","rename_cancel":"Cancelar","rename_placeholder":"Nuevo nombre...","rename_save":"Guardar"},"error":{"add_model_failed":"Fallo al añadir modelo","auth_required":"Autenticación requerida","bad_response":"Respuesta inesperada desde 9Router","connection_failed":"No se pudo conectar a 9Router","create_failed":"Fallo al crear combo","delete_failed":"Fallo al borrar combo","dismiss":"Descartar","http_status":"HTTP {status}","invalid_name":"El nombre solo puede contener letras, números, -, _ y .","kind_failed":"No se pudo actualizar el tipo","login_failed":"Fallo al iniciar sesión","need_name_models":"Se requieren un nombre y al menos un modelo.","need_password":"Por favor, introduce tu contraseña.","remove_model_failed":"No se pudo quitar el modelo","rename_failed":"No se pudo renombrar el combo","reorder_failed":"No se pudo reordenar los modelos"},"kind":{"fallback":"Respaldo","fusion":"Fusión","none":"Ninguno","round_robin":"Round-robin"},"list":{"delete":"Borrar combo","delete_cancel":"Cancelar","delete_confirm":"Confirmar borrado","empty":"Aún no hay combos. Crea uno para empezar","kind":"Tipo: {kind}","new_combo":"Nuevo Combo","no_match":"Ningún combo coincide con tu búsqueda","open":"Abrir combo","refresh":"Refrescar","search":"Buscar combos...","title":"9Router — Combos"},"login":{"hint":"El panel requiere autenticación. Introduce tu contraseña de 9Router para continuar.","password_placeholder":"Contraseña...","submit":"Iniciar sesión","title":"Inicio de sesión de 9router"},"settings":{"data_dir":{"description":"Directorio de datos de 9Router (se usa para calcular el token CLI cuando el panel requiere inicio de sesión). Por defecto: ~/.9router.","label":"Directorio de datos"},"debug_logging":{"description":"Muestra mensajes de depuración en el registro de Noctalia.","label":"Registro de depuración"},"language":{"description":"Idioma de la interfaz de este plugin. 'Auto' sigue el idioma de la shell de Noctalia.","label":"Idioma","options":{"auto":"Auto (seguir shell)","en":"English","vi":"Tiếng Việt"}},"server_host":{"description":"Nombre del anfitrión del panel de 9Router. Por defecto: 127.0.0.1.","label":"Anfitrión del servidor"},"server_port":{"description":"Puerto del panel de 9router. Por defecto: 20128.","label":"Puerto del servidor"}},"state":{"combos":"{count} combo(s)","tip":{"auth_required":"9router: se requiere inicio de sesión","offline":"9router: desconectado","online":"9router: conectado"}}},"hyprland-visual-editor":{"panel":{"animations":"Animaciones","apply":"Aplicar","apply_hint":"Elige un preset y pulsa Aplicar para aplicarlo al instante","borders":"Bordes","count_animations":"animaciones","count_borders":"bordes","count_shaders":"shaders","credits":"Basado en el widget original de XimoCP · portado a Luau por Hermy y Linux Fertxo","current_preset":"Preset aplicado actualmente","disabled":"HVE desactivado","effects":"Efectos","enable_warning":"Activa el interruptor para aplicar cambios","enabled":"HVE activado","home":"Inicio","no_presets":"No hay presets — ejecuta scan.sh","none":"Ninguno","presets_available":"presets disponibles"},"settings":{"active_anim_file":{"label":"Animación activa"},"active_border_file":{"label":"Borde activo"},"active_shader_file":{"label":"Shader activo"},"is_system_active":{"description":"Interruptor maestro que activa los efectos de Hyprland Visual Editor.","label":"Sistema activo"}},"widget":{"tooltip":"Hyprland Visual Editor — abrir el panel"}},"niri-animations":{"animations_off":"Animaciones apagadas","animations_on":"Animaciones activas","no_preset":"Sin preset (pack base)","preset":"Preset","random":"Al azar","settings":{"include_prefix":{"description":"Prefijo de ruta que se escribe en la línea include, relativo al archivo destino","label":"Prefijo del include"},"presets_dir":{"description":"Carpeta donde se buscan los presets .kdl de animación","label":"Carpeta de presets"},"reload_command":{"description":"Se ejecuta después de escribir, para que el compositor tome el cambio","label":"Comando de recarga"},"target_file":{"description":"Archivo que se reescribe con el preset y la velocidad elegidos. Tu config de niri tiene que incluirlo después de las animaciones base.","label":"Archivo destino"}},"shortcut_label":"Animaciones","speed":"Velocidad","speed_hint":"arriba de 1 es más lento","status_base_pack":"Pack base","status_off":"Animaciones desactivadas.","status_presets_found":"presets en","status_read_error":"No pude leer","status_write_error":"No pude escribir","title":"Niri Animations"},"udiskie":{"btn_docs":"Consultar documentación","btn_eject":"Expulsar","btn_mount":"Montar","btn_mount_all":"Montar todo","btn_open":"Abrir","btn_poweroff":"Apagar","btn_retry":"Reintentar conexión","btn_unlock":"Desbloquear","btn_unmount":"Desmontar","btn_unmount_all":"Desmontar todo","copy_path_tooltip":"Copiar ruta de montaje","error_missing_dep":"El binario udiskie no está en el PATH","no_partitions_found":"No se encontraron particiones","notif_drive_connected_body":"{label} se ha conectado","notif_drive_connected_title":"Unidad conectada","notif_drive_mounted_body":"{label} está listo para usar","notif_drive_mounted_title":"Unidad montada","notif_drive_removed_body":"{label} se ha desconectado","notif_drive_removed_title":"Unidad extraída","notif_drive_unmounted_body":"{label} se desmontó de forma segura","notif_drive_unmounted_title":"Unidad desmontada","notif_eject_failed_fallback":"No se pudo expulsar {device}","notif_eject_failed_title":"Error al expulsar","notif_mount_all_failed_fallback":"No se pudieron montar todos los dispositivos","notif_mount_all_failed_title":"Error al montar todo","notif_mount_failed_fallback":"No se pudo montar {device}","notif_mount_failed_title":"Error al montar","notif_poweroff_failed_fallback":"No se pudo apagar {device}","notif_poweroff_failed_title":"Error al apagar","notif_unmount_all_failed_fallback":"Uno o más dispositivos están ocupados","notif_unmount_all_failed_title":"Error al desmontar todo","notif_unmount_failed_fallback":"El dispositivo {device} está ocupado o en uso","notif_unmount_failed_title":"Error al desmontar","notify_path_copied":"Ruta copiada al portapapeles","panel_empty":"No se detectaron unidades USB","panel_title":"Udiskie Manager","settings":{"auto_open_filemanager":{"description":"Abrir automáticamente los dispositivos montados en el gestor de archivos.","label":"Abrir gestor de archivos automáticamente"},"enable_notifications":{"description":"Mostrar notificaciones nativas de escritorio de Noctalia en los eventos de dispositivos.","label":"Notificaciones de escritorio"},"file_manager_cmd":{"description":"Comando usado para abrir las carpetas montadas.","label":"Comando del gestor de archivos"},"glyph":{"description":"El icono que se muestra para el widget de Udiskie en la barra.","label":"Icono de la barra"},"hide_when_empty":{"description":"Ocultar el widget de la barra cuando no haya unidades USB conectadas.","label":"Ocultar cuando esté vacío"},"show_count":{"description":"Mostrar el número de dispositivos montados en el widget de la barra.","label":"Mostrar número de dispositivos"}},"status_locked":"Bloqueado (LUKS)","status_mounted":"Montado","status_unmounted":"Desmontado","tooltip_empty":"No hay dispositivos montados","tooltip_mounted":"Dispositivos montados"},"web-launcher":{"notify":{"message":"Abriendo {name}","title":"Sitios web"},"settings":{"command":{"description":"Comando que lanza el sitio web. Ejemplo: \"firefox --new-window\"","label":"Comando"},"icon_provider":{"description":"Fuente de descarga del icono.","direct":"El propio favicon del sitio","duckduckgo":"DuckDuckGo","google":"Google","label":"Proovedor del icono"},"links":{"description":"Formato: Nombre|https://url","label":"Enlaces"},"notify":{"description":"Notificar al abrir un link.","label":"Notificar"}}},"yt-music":{"settings":{"debug_logging":{"description":"Escribe registros detallados en el archivo de registro del plugin para ayudar a solucionar problemas.","label":"Registro de depuración"}}}},"fr":{"9router-control":{"add_model":{"back":"Retour au combo","empty":"Aucun modèle disponible.","no_match":"Aucun modèle ne correspond à la recherche.","search":"Rechercher des modèles...","title":"Ajouter un modèle"},"create":{"back":"Retour","cancel":"Annuler","kind_label":"Type","models_hint":"Un modèle par ligne, par ordre de priorité (ex. : cc/claude-opus-4-7).","models_label":"Modèles","models_placeholder":"cc/claude-opus-4-7\nglm/glm-5.1","name_label":"Nom","name_placeholder":"ex. : my-fallback","submit":"Créer","title":"Nouveau combo"},"detail":{"add_model":"Ajouter un modèle","back":"Retour au combo","delete":"Supprimer le combo","delete_confirm":"Supprimer ce combo ?","delete_no":"Annuler","delete_yes":"Oui, supprimer","drag_hint":"Faites glisser les modèles pour les réorganiser","kind_label":"Type","models_count":"{count} modèle(s)","models_title":"Chaîne de modèles","move_down":"Descendre","move_up":"Monter","no_models":"Ce combo ne comporte encore aucun modèle.","refresh":"Rafraîchir","remove_model":"Supprimer le modèle","rename":"Renommer","rename_cancel":"Annuler","rename_placeholder":"Entrer un nouveau nom","rename_save":"Sauvegarder"},"error":{"add_model_failed":"Échec de l'ajout du modèle","auth_required":"Authentification nécessaire","bad_response":"Réponse inattendu de 9Router","connection_failed":"Impossible de se connecter à 9Router","create_failed":"Échec lors de la création du combo","delete_failed":"Échec lors de la suppression du combo","dismiss":"Ignorer","http_status":"HTTP {status}","invalid_name":"Un nom ne peut contenir que des lettres, des chiffres, des tirets (-), des traits de soulignement (_) et des points (.)","kind_failed":"Échec lors de la mise à jour des types","login_failed":"Connexion échouée","need_name_models":"Un nom et au moins un modèle sont obligatoires.","need_password":"Veuillez saisir votre mot de passe","remove_model_failed":"Suppression du modèle échouée","rename_failed":"Échec de la modification du nom du combo","reorder_failed":"Échec de la réorganisation des modèles"}},"anilist":{"panel":{"close":"Fermer","close_preview":"Fermer l'aperçu","connect":"Se connecter avec AniList","cover_preview":"Voir la pochette","decrement":"Épisode ou chapitre précédent","download_cover":"Télécharger la pochette","download_cover_failed":"Impossible d'enregistrer la pochette.","download_cover_success":"Pochette enregistrée dans {path}","download_cover_unavailable":"Installez zenity ou kdialog pour choisir où enregistrer l'image.","empty":"Aucune entrée dans cette liste.","error":"Erreur : {message}","filter_all":"Tout","filter_completed":"Terminé","filter_current":"En cours","filter_dropped":"Abandonné","filter_paused":"En pause","filter_planning":"À voir","filter_planning_manga":"À lire","filter_reading":"En lecture","filter_rereading":"Re-lecture","filter_rewatching":"Re-visionnage","increment":"Épisode ou chapitre suivant","loading":"Chargement de vos listes…","loading_more":"Chargement de la liste…","loading_progress":"Chargement… {anime} anime, {manga} manga","logged_in_as":"Connecté en tant que {name}","login_help":"Renseignez votre ID client et votre secret client dans les paramètres du plugin, puis cliquez sur Se connecter. Votre navigateur s'ouvre, vous autorisez AniList, et le plugin termine la connexion automatiquement.","login_title":"Se connecter à AniList","login_waiting":"En attente de la connexion dans le navigateur…","logout":"Se déconnecter","mark_complete":"Terminer","next_episode":"Ép. {episode} bientôt","open_anilist":"Ouvrir sur AniList","progress_anime":"Ép. {current}/{total}","progress_anime_unknown":"Ép. {current}","progress_manga":"Ch. {current}/{total}","progress_manga_unknown":"Ch. {current}","refresh":"Actualiser la liste","refreshing":"Actualisation…","settings":"Paramètres du plugin","tab_anime":"Anime","tab_manga":"Manga","title":"AniList (UNOFFICIEL)","updating":"Mise à jour…"},"service":{"empty_response":"AniList a renvoyé une réponse vide.","invalid_response":"AniList a renvoyé une réponse illisible.","invalid_token":"Jeton d'accès invalide ou expiré.","mutation_failed":"La mise à jour a échoué.","network_error":"Impossible de joindre AniList.","not_configured":"Renseignez l'ID client et le secret client AniList dans les paramètres du plugin.","oauth_busy":"Une connexion est déjà en cours.","oauth_failed":"La connexion via le navigateur a échoué.","oauth_unavailable":"Impossible de démarrer l'assistant de connexion local. python3 est-il installé ?"},"settings":{"access_token":{"description":"Ignore la connexion navigateur si vous avez déjà un jeton bearer. Laissez vide en temps normal.","label":"Jeton d'accès (optionnel)"},"client_id":{"description":"ID client de votre application développeur AniList (anilist.co/settings/developer). L'URL de redirection doit être http://127.0.0.1:7823/callback","label":"ID client"},"client_secret":{"description":"Secret client de la même application AniList. Ne le partagez jamais publiquement — chaque utilisateur doit utiliser sa propre application.","label":"Secret client"},"count_mode":{"description":"Quel nombre afficher à côté de l'icône dans la barre.","label":"Compteur barre","options":{"completed":"Terminé (anime)","current":"En cours (anime)","in_progress":"En cours (anime + manga)","planning":"Prévu (anime)","total":"Total (tous les anime)"}},"glyph":{"label":"Icône de la barre"}},"widget":{"tooltip_completed":"{count} anime terminés","tooltip_current":"{count} anime en cours","tooltip_empty":"AniList — ouvrir la bibliothèque","tooltip_error":"AniList — {error}","tooltip_in_progress":"{count} en cours (anime + manga)","tooltip_loading":"AniList — chargement…","tooltip_oauth":"AniList — en attente de la connexion navigateur…","tooltip_planning":"{count} anime prévus","tooltip_total":"{count} anime sur votre liste"}},"arch-updater":{"action_update":"Mettre à jour","caption_ignored":{"one":"1 paquet ignoré","other":"{count} paquets ignorés"},"notify_updates":{"one":"1 paquet à mettre à jour","other":"{count} paquets à mettre à jour"},"reboot_recommended":"Un redémarrage est recommandé, le kernel en cous d'exécution n'est plus installé","settings":{"aur_helper":{"options":{"paru":"paru","yay":"yay"}},"flatpak_enabled":{"label":"Inclure Flatpak"},"ignore_packages":{"label":"Ignorer des paquets"},"notify_on_updates":{"description":"Envoie une notification lorsqu'il y a des paquets à mettre à niveau"},"show_count":{"label":"Afficher le nombre de mises à jour"},"show_download_size":{"label":"Afficher la taille de téléchargement"},"terminal":{"label":"Terminal"}}},"asus-fans-controller-ec":{"error":{"command_start":"Noctalia n'a pas pu lancer asus-fan-control-ec.","curve_apply":"La courbe des ventilateurs n'a pas pu être appliquée.","curve_save":"La courbe des ventilateurs n'a pas pu être enregistrée.","missing_dependency":"asus-fan-control-ec est introuvable dans le PATH.","read_failed":"Impossible de lire les vitesses des ventilateurs. Vérifiez les privilèges et la prise en charge matérielle.","write_failed":"Impossible de modifier la vitesse des ventilateurs. Vérifiez les privilèges sudo."},"panel":{"all_fans":"Tous les ventilateurs","close":"Fermer","curve":{"add_point":"Ajouter un point","empty":"Aucun point de courbe disponible.","remove_point":"Supprimer le point","selected":"Point {index} : {temp}°C → {percent} %","speed":"Vitesse du ventilateur","temperature":"À partir de la température"},"fan_label":"Ventilateur {fan}","fan_speed":"Ventilateur {fan} : {rpm} tr/min","fan_speed_temp":"Ventilateur {fan} : {rpm} tr/min · {temp}","max_temp":"Température maximale : {temp}°C","mode":{"auto":"BIOS","auto_help":"Le contrôleur embarqué gère les vitesses des ventilateurs. Aucune écriture n'est envoyée par le plugin.","curve":"Courbe","curve_help":"La courbe enregistrée est appliquée toutes les quelques secondes tant que ce mode est actif.","manual":"Manuel","manual_help":"Duty fixe via les curseurs. Les curseurs par ventilateur utilisent --fan ; le mode manuel EC reste global."},"refresh":"Actualiser","release_bios":"Rendre la main au BIOS","status":{"auto_message":"Le contrôleur embarqué gère automatiquement les vitesses des ventilateurs.","auto_title":"Automatique (BIOS)","busy_message":"Application d'un changement de vitesse…","busy_title":"En cours","curve_message":"La courbe enregistrée pilote le duty des ventilateurs selon la température.","curve_title":"Courbe des ventilateurs","manual_message":"Le mode manuel est actif. Les curseurs contrôlent le duty des ventilateurs.","manual_title":"Contrôle manuel","unavailable_message":"Installez asus-fan-control-ec et configurez sudo sans mot de passe.","unavailable_title":"Indisponible"},"sync_fans":"Synchroniser les vitesses","temp_board":"Carte {temp}°C","temp_cpu":"CPU {temp}°C"},"settings":{"poll_interval":{"description":"Fréquence d'actualisation des vitesses des ventilateurs, en millisecondes.","label":"Intervalle d'actualisation"},"privilege_command":{"description":"Préfixe des commandes asus-fan-control-ec. Utilisez sudo -n avec une règle NOPASSWD, ou pkexec.","label":"Commande de privilège"},"show_label":{"label":"Afficher le libellé"}},"title":"Contrôleur ventilateurs ASUS EC","tooltip":{"auto":"Contrôle BIOS · {rpm} tr/min total{temp} · clic pour le panneau · clic droit pour actualiser","busy":"Changement de vitesse en cours…","curve":"Courbe · {rpm} tr/min total{temp} · clic pour le panneau","manual":"Manuel · {percent} % · {rpm} tr/min total{temp} · clic pour le panneau","unavailable":"asus-fan-control-ec n'est pas disponible"},"widget":{"auto":"Auto","curve":"Courbe","manual":"Manuel","unavailable":"N/D"}},"battery-widget":{"settings":{"battery":{"auto":"Automatique","bat0":"BAT0","custom":"Personnalisé","description":"Détection automatique de la batterie ou nom personnalisé.","label":"Batterie"},"battery_name":{"description":"Nom de la batterie.","label":"Nom de la Batterie"},"charging_color":{"description":"Couleur utilisée lorsque l'appareil est branché au secteur.","label":"Couleur de Charge"},"color":{"description":"Couleur de l'icône et du texte de ce widget ; les codes hex fixes sont également pris en charge.","label":"Couleur"},"hide_full":{"description":"Cacher le widget lorsque la batterie est pleine.","label":"Cacher quand plein"},"hide_plugged":{"description":"Cacher le widget lorsque l'appareil est branché au secteur.","label":"Cacher quand branché"},"layout":{"description":"Disposition du widget.","horizontal":"Horizontal","label":"Disposition","vertical":"Vertical"},"refresh_interval":{"description":"Définit la fréquence de mise à jour du contenu du widget (en secondes).","label":"Intervalle d'actualisation"},"show_glyph":{"description":"Afficher l’icône de la batterie.","label":"Afficher l’icône"},"show_label":{"description":"Afficher le texte à coté de l’icône.","label":"Afficher le texte"},"warning_color":{"description":"Couleur utilisée quand le niveau de batterie est en dessous ou égal au seuil d'alerte de Noctalia.","label":"Couleur d'alerte"}}},"custom-shortcut":{"settings":{"icon":{"description":"Icône du raccourci du centre de contrôle.","label":"Icône"},"label":{"description":"Texte du raccourci du centre de contrôle.","label":"Libellé"},"onclick_cmd":{"description":"Commande exécutée lorsque le raccourci est cliqué.","label":"Commande"}}},"desktop-launcher":{"settings":{"apps":{"label":"Applications"},"columns":{"label":"Colonnes"},"grid_layout":{"label":"Disposition en grille"}}},"eyecare":{"notifications":{"eyecare-break-title":"Le temps d'une pause"},"settings":{"eyecare-break-duration":{"label":"Durée de la pause"}}},"jetbrains-provider":{"database-empty":"Aucun projet JetBrains trouvé","filter-empty":"Filtre : « {filter} »","loading":"Chargement…","loading-subtitle":"Lecture des projets JetBrains","no-projects-found":"Aucun projet trouvé","settings":{"config_dir":{"description":"Répertoire racine des dossiers de configuration JetBrains.","label":"Répertoire de config JetBrains"},"ignored_ides":{"description":"Noms d'IDE à exclure (ex. WebStorm, CLion). Correspond au début du nom du dossier de config.","label":"IDE ignorés"},"max_results":{"description":"Nombre maximum de projets à afficher.","label":"Nombre maximum de résultats"},"toolbox_dir":{"description":"Répertoire des apps JetBrains Toolbox pour localiser les lanceurs d'IDE.","label":"Répertoire Toolbox apps"}}},"librelinkup":{"disclaimer":{"summary":"API non officielle — non affilié à Abbott. Ne pas utiliser pour des décisions médicales."},"error":{"account_id":"Impossible de calculer l'identifiant de compte LibreLinkUp.","connections_failed":"Impossible de charger les connexions LibreLinkUp.","login_failed":"Échec de connexion LibreLinkUp. Vérifiez l'email et le mot de passe.","missing_credentials":"Renseignez l'email et le mot de passe LibreLinkUp dans les réglages du plugin.","no_measurement":"Aucune mesure de glycémie disponible pour le moment.","parse_failed":"Réponse JSON invalide de LibreLinkUp."},"settings":{"email":{"description":"Email du compte LibreLinkUp utilisé pour l'authentification.","label":"Email"},"glyph":{"label":"Icône de la barre"},"high_threshold":{"description":"Les valeurs au-dessus de ce seuil s'affichent en orange.","label":"Seuil haut (mg/dL)"},"low_threshold":{"description":"Les valeurs en dessous de ce seuil s'affichent en rouge.","label":"Seuil bas (mg/dL)"},"password":{"description":"Mot de passe du compte LibreLinkUp.","label":"Mot de passe"},"refresh_interval":{"description":"Fréquence de rafraîchissement des données de glycémie, en secondes.","label":"Intervalle de rafraîchissement"},"show_unit":{"description":"Ajoute mg/dL après la valeur sur la barre.","label":"Afficher l'unité"}},"title":"LibreLinkUp","tooltip":{"loading":"Chargement de la glycémie…","measured":"Mesure : {time}","reading":"Glycémie : {value} {unit} {arrow}"}},"prismlauncher-instances":{"no_instances":{"subtitle":"Filtre:","title":"Aucune instance trouvée"},"settings":{"launcher_exec_command":{"description":"Lancer Prismlauncher ou une fork au choix","label":"Executable Prism"},"prismlauncher_path":{"description":"Chemin de PrismLauncher","label":"Chemin de PrismLauncher"}}},"ssh-launcher":{"config-empty":"Aucun hôte SSH trouvé dans la config","config-missing":"Fichier de config SSH introuvable","err-no-ssh":"Commande ssh introuvable","err-no-ssh-subtitle":"Installez le client OpenSSH et vérifiez que ssh est dans le PATH","err-terminal":"Impossible d'ouvrir un terminal","filter-empty":"Filtre : « {filter} »","loading":"Chargement…","loading-subtitle":"Lecture de la config SSH","no-hosts-found":"Aucun hôte SSH trouvé","settings":{"config_path":{"description":"Chemin vers votre fichier de config SSH.","label":"Chemin de la config SSH"},"extra_args":{"description":"Arguments ajoutés à chaque commande ssh (par exemple -A).","label":"Arguments SSH supplémentaires"},"max_results":{"description":"Nombre maximum d'hôtes affichés dans le launcher.","label":"Nombre maximum de résultats"},"terminal":{"description":"Commande terminal personnalisée. Laissez vide pour la détection automatique de Noctalia.","label":"Commande terminal"}}},"tmux-provider":{"session_attached":"Attaché","session_detached":"Détaché"},"todo":{"clear_done_no":"Annuler","clear_done_yes":"Effacer","placeholder":"Nouvelle tache","prio_important":"Important","prio_low":"Basse","prio_medium":"Moyenne","tip_close":"Fermer","tip_edit":"Modifier"},"web-launcher":{"notify":{"message":"Ouverture de {name}","title":"Sites"},"settings":{"command":{"description":"Commande qui lance le site. Exemple: \"firefox --new-window\"","label":"Commande"},"icon_provider":{"description":"Source de téléchargement des icones","direct":"favicon.ico du site","duckduckgo":"DuckDuckGo","google":"Google","label":"Fournisseur d'icone"},"links":{"description":"Format: Nom|https://url","label":"Liens"},"notify":{"description":"Notification à l'ouverture du lien.","label":"Notification"}}},"zed-provider":{"database-empty":"La base Zed est vide ou introuvable","filter-empty":"Filtre : « {filter} »","loading":"Chargement…","loading-subtitle":"Lecture des projets Zed","no-projects-found":"Aucun projet trouvé","settings":{"db_path":{"description":"Chemin vers le fichier db.sqlite de Zed.","label":"Chemin de la base Zed"},"max_results":{"description":"Nombre maximum de projets à afficher.","label":"Nombre maximum de résultats"},"new_window":{"description":"Ouvrir le projet sélectionné dans une nouvelle fenêtre Zed.","label":"Ouvrir dans une nouvelle fenêtre"}}}},"id":{"9router-monitor":{"panel":{"active_now":"SEDANG AKTIF","apply_reconnect":"Terapkan & hubungkan ulang","cached_tokens":"Cached","cached_tokens_label":"Token Tersimpan","completion_tokens":"Token completion","connecting_to":"Menghubungkan ke {url}…","connection":"KONEKSI","cost":"Biaya","dashboard_login":"LOGIN DASHBOARD","est_cost":"Estimasi Biaya","est_cost_sub":"Estimasi, bukan tagihan riil","hide_password":"Sembunyikan","host":"Host","invalid_host":"Masukkan hostname atau IP yang valid (tanpa http:// atau path).","invalid_port":"Port harus berupa angka antara 1 dan 65535.","login_description":"Sesi kedaluwarsa atau diperlukan autentikasi. Masukkan kata sandi dashboard 9Router Anda.","logout":"Keluar","models_usage":"PENGGUNAAN MODEL","no_models_period":"Belum ada penggunaan model pada periode ini.","no_quotas":"Tidak ada data kuota yang ditemukan untuk provider.","no_recent":"Belum ada aktivitas request tercatat. Kirim prompt melalui 9Router dan riwayat akan muncul di sini.","open_dashboard":"Buka dashboard","output_tokens":"Token Output","overview":"RINGKASAN","password_placeholder":"Kata sandi dashboard","port":"Port","prompt_tokens":"Token prompt","quota_remaining":"sisa {pct}%","quota_resets_at":"reset {date}","quota_resets_in":"reset dalam {time}","quota_tracker":"KUOTA PROVIDER","quota_used":"terpakai {used} / {total}","recent_models":"MODEL TERAKHIR","recent_requests":"REQUEST TERAKHIR","refresh":"Segarkan","remember_password":"Simpan kata sandi di keyring sistem","show_password":"Lihat","sign_in":"Masuk","signing_in":"Sedang masuk…","title":"9Router","total_input_tokens":"Total Token Input","total_requests":"Total Request","unlimited":"Tak terbatas","updated_at":"Diperbarui {time} · {url}"},"period":{"24h":"24j","30d":"30h","60d":"60h","7d":"7h","today":"Hari ini"},"settings":{"auth_mode":{"description":"Pilih antara token CLI lokal otomatis atau kata sandi dashboard.","label":"Mode autentikasi","options":{"cli_token":"Token CLI (Berkas rahasia lokal)","password":"Kata sandi dashboard"}},"base_url":{"description":"URL lengkap server 9Router.","label":"URL Dasar"},"busy_hold_seconds":{"description":"Berapa lama status aktif bertahan setelah request selesai.","label":"Durasi status aktif (detik)"},"cli_token_path":{"description":"Folder berisi machine-id dan auth/cli-secret (default ~/.9router).","label":"Direktori rahasia CLI"},"dashboard_password":{"description":"Kata sandi untuk autentikasi ke dashboard 9Router.","label":"Kata sandi dashboard"},"refresh_seconds":{"description":"Seberapa sering polling status jika stream terputus.","label":"Interval refresh heartbeat (detik)"},"remember_password":{"description":"Simpan kata sandi dashboard di keyring sistem untuk login ulang otomatis.","label":"Ingat kata sandi dashboard"},"show_model_label":{"description":"Tampilkan teks model pada bar pill. Jika mati, hanya ikon status yang terlihat.","label":"Tampilkan nama model di bar"}},"status":{"connecting":"MENGHUBUNGKAN…","idle":"STANDBY","login_needed":"perlu login","no_requests":"Belum ada request","offline":"TERPUTUS","request_in_flight":"REQUEST SEDANG BERJALAN","session_expired":"SESI KEDALUWARSA","working":"memproses…"},"tab":{"activity":"Aktivitas","models":"Model","quotas":"Pelacak Kuota"},"time":{"days_ago":"{count}h lalu","hours_ago":"{count}j lalu","just_now":"baru saja","minutes_ago":"{count}m lalu","seconds_ago":"{count}d lalu"},"tooltip":{"expired":"Sesi 9Router kedaluwarsa — klik untuk login","in_flight":"Request sedang diproses","last_model":"Model terakhir","offline":"9Router terputus"}}},"it":{"launcher-pass":{"action":{"autotype":"Digitazione automatica","autotype-desc":"Digita nome utente, password e OTP in sequenza","copy-field":"Copia {key}","copy-otp":"Copia OTP","copy-password":"Copia password","copy-password-desc":"Copia password negli appunti","copy-username":"Copia nome utente","create":"Crea voce","create-cancel":"Annulla","create-cancel-desc":"Torna indietro senza creare","create-confirm":"Crea la voce ora","create-error":"Impossibile verificare se il percorso è libero","create-exists":"Quel percorso ha già una voce — impossibile crearla","create-hint":"Digita un nome per la nuova voce","edit":"Modifica","edit-desc":"Apri pass edit in un terminale","generate":"Genera","generate-cancel":"Annulla","generate-cancel-desc":"Mantieni la password attuale","generate-confirm":"Rigenera ora","generate-confirm-desc":"Sostituisce la password attuale. Operazione irreversibile.","generate-desc":"Rigenera la password con pass generate","new":"Nuova voce","new-desc":"Crea una nuova voce password qui","otp-desc":"Copia/digita codice OTP attuale","type-field":"Digita {key}","type-otp":"Digita OTP","type-password":"Digita password","type-password-desc":"Digita password con wtype","type-username":"Digita nome utente"},"command":{"description":"Cerca password di gnu pass"},"detail":{"decrypting":"Decifratura della password...","error":"Decifratura della password non riuscita"},"notification":{"copied":"Copiato negli appunti","copy-failed":"Copia non riuscita","create-exists":"Esiste già una voce con quel nome","create-failed":"Impossibile creare la voce","created":"Voce password creata","edit-failed":"Modifica non riuscita","generate-failed":"Rigenerazione della password non riuscita","generated":"Password rigenerata","no-current-entry":"Apri prima una voce","quick-action-failed":"Azione rapida non riuscita","quick-action-unknown":"Azione rapida sconosciuta","type-failed":"Digitazione non riuscita"},"result":{"folder":"Cartella","go-back":"Torna indietro","loading":"Caricamento elenco password...","password":"Password"},"settings":{"autotype-enabled":{"desc":"Mostra una riga «Digitazione automatica» nella vista dettagli di una voce che digita il nome utente, un tasto separatore, la password e poi l'OTP se la voce ne ha uno. Richiede wtype","label":"Riga di digitazione automatica"},"autotype-separator":{"desc":"Tasto che passa dal campo nome utente al campo password durante la digitazione automatica","label":"Separatore dei campi per la digitazione automatica","options":{"enter":"Invio","tab":"Tab"}},"autotype-submit":{"desc":"Premi Invio dopo l'ultimo valore digitato automaticamente (dopo l'OTP se presente, altrimenti dopo la password). Disattiva per fermarti prima di confermare","label":"La digitazione automatica preme Invio per confermare"},"clip-timeout":{"desc":"Secondi prima che gli appunti vengano cancellati (vuoto = usa PASSWORD_STORE_CLIP_TIME)","label":"Timeout degli appunti"},"detail-action-grouping":{"desc":"Alterna le righe Copia e Digita di ogni valore, oppure elenca tutte le righe Copia e poi tutte le righe Digita","label":"Raggruppamento delle azioni nella vista dettagli","options":{"grouped":"Raggruppate per azione","interleaved":"Alternate"}},"detail-action-order":{"desc":"Quale riga viene prima per ogni valore nella vista dettagli di una voce","label":"Ordine delle azioni nella vista dettagli","options":{"copy":"Prima Copia","type":"Prima Digita"}},"editor-command":{"desc":"Editor per l'azione Modifica, esportato come EDITOR verso pass edit (es. nvim, code --wait). Vuoto lascia EDITOR non impostato e pass usa il proprio predefinito","label":"Comando editor"},"pinentry-grace-ms":{"desc":"Millisecondi di attesa per la decifratura di una password prima di presumere che una richiesta pinentry di GPG necessiti del focus e nascondere il launcher (predefinito: 200)","label":"Periodo di tolleranza pinentry"},"store-path":{"desc":"Percorso personalizzato all'archivio password (predefinito: ~/.password-store)","label":"Percorso dell'archivio password"},"terminal-command":{"desc":"Terminale usato per eseguire pass edit, con il suo flag di esecuzione (es. foot -e, kitty -e, gnome-terminal --). Vuoto = rilevamento automatico da $TERMINAL o da un terminale comune nel PATH","label":"Comando terminale"},"type-delay":{"desc":"Ritardo in millisecondi prima dell'inizio della digitazione (predefinito: 500)","label":"Ritardo digitazione"},"wtype-delay":{"desc":"Ritardo tra le battiture in millisecondi per wtype (predefinito: 12)","label":"Ritardo battitura wtype"}}},"owntone-control":{"panel":{"activate":"Attiva","active_many":"attive","active_one":"attiva","add_to_queue":"Aggiungi alla coda","back":"Indietro","close":"Chiudi","deactivate":"Disattiva","library_albums":"Album","library_artists":"Artisti","library_empty":"Niente qui","library_error":"Impossibile caricare la libreria","library_genres":"Generi","library_playlists":"Playlist","library_radio":"Radio","library_search":"Cerca","library_title":"Libreria","live_stream":"Streaming dal vivo","loading":"Caricamento…","master_volume":"Volume principale","mute":"Silenzia","next":"Successivo","no_track":"Nessun brano in riproduzione","pause":"Pausa","play":"Riproduci","play_now":"Riproduci ora","prev":"Precedente","refresh":"Aggiorna","repeat":"Ripeti","search":"Cerca","search_hint":"Scrivi il nome di un artista o album","search_placeholder":"Cerca artista o album…","shuffle":"Casuale","speaker_fallback":"Speaker","speakers_title":"Uscite Audio","stop":"Ferma","tab_library":"Libreria","tab_player":"Player","title":"OwnTone","unmute":"Riattiva audio"},"settings":{"glyph":{"description":"Icona del widget sulla barra","label":"Icona"},"host":{"description":"host:porta del tuo server OwnTone, es. 192.168.1.50:3689","label":"Host OwnTone"},"password":{"description":"Password HTTP di OwnTone (salvata e mostrata in chiaro nelle impostazioni)","label":"Password"},"poll_seconds":{"description":"Frequenza di aggiornamento dei dati da OwnTone","label":"Intervallo di polling (secondi)"},"username":{"description":"Nome utente HTTP di OwnTone, lascia vuoto se il server non richiede autenticazione","label":"Nome utente"}},"unreachable":"OwnTone: non raggiungibile","widget_tooltip":"Apri OwnTone Server"}},"pt-BR":{"9router-control":{"add_model":{"back":"Voltar ao combo","empty":"Nenhum modelo disponível.","no_match":"Nenhum modelo corresponde à sua pesquisa.","search":"Pesquisar modelos…","title":"Adicionar modelo"},"create":{"back":"Voltar","cancel":"Cancelar","kind_label":"Tipo","models_hint":"Um modelo por linha, em ordem de fallback (por exemplo, cc/claude-opus-4-7).","models_label":"Modelos","name_label":"Nome","submit":"Criar","title":"Novo Combo"},"detail":{"add_model":"Adicionar modelo","back":"De volta aos combos","delete":"Excluir combinação","delete_confirm":"Excluir esta combinação?","delete_no":"Cancelar","delete_yes":"Sim, excluir","drag_hint":"Arraste um modelo para reordenar","kind_label":"Tipo","models_count":"{count} modelo(s)","models_title":"Cadeia de Modelos","move_down":"Desça","move_up":"Subir","no_models":"Este combo ainda não possui modelos.","refresh":"Atualizar","remove_model":"Remover modelo","rename":"Renomear","rename_cancel":"Cancelar","rename_placeholder":"Novo nome…","rename_save":"Salvar"},"error":{"add_model_failed":"Falha ao adicionar o modelo","auth_required":"Autenticação necessária","bad_response":"Resposta inesperada do 9Router","connection_failed":"Não foi possível conectar ao 9Router","create_failed":"Falha ao criar a combinação","delete_failed":"Falha ao excluir a combinação","dismiss":"Liberar","http_status":"HTTP {status}","invalid_name":"O nome só pode conter letras, números, -, _ e .","kind_failed":"Falha ao atualizar o tipo","login_failed":"falha no login","need_name_models":"Um nome e pelo menos um modelo são obrigatórios.","need_password":"Por favor, digite sua senha.","remove_model_failed":"Falha ao remover o modelo","rename_failed":"Falha ao renomear a combinação","reorder_failed":"Falha ao reordenar modelos"},"kind":{"fallback":"Cair pra trás","fusion":"Fusão","none":"Nenhum","round_robin":"Rodízio"},"list":{"delete":"Excluir combinação","delete_cancel":"Cancelar","delete_confirm":"Confirmar exclusão","empty":"Ainda não há combos. Crie um para começar.","kind":"Tipo: {kind}","new_combo":"Novo Combo","no_match":"Nenhum combo corresponde à sua busca.","open":"Combo aberto","refresh":"Atualizar","search":"Buscar combinações…","title":"9Router — Combinações"},"login":{"hint":"O painel requer autenticação. Insira sua senha do 9Router para continuar.","password_placeholder":"Senha…","submit":"Conecte-se","title":"9Router – Login"},"settings":{"data_dir":{"description":"Diretório de dados do 9Router (usado para calcular o token da CLI quando o painel exige login). Padrão: ~/.9router.","label":"Diretório de Dados"},"debug_logging":{"description":"Imprima mensagens de depuração no log do Noctalia.","label":"Registro de depuração"},"language":{"description":"Idioma da interface deste plugin. 'Auto' segue o idioma do shell do Noctalia.","label":"Linguagem","options":{"auto":"Automático (seguir shell)","en":"Inglês","vi":"vietnamita"}},"server_host":{"description":"Nome de host do painel do 9Router. Padrão: 127.0.0.1.","label":"Hospedeiro do Servidor"},"server_port":{"description":"Porta do painel do 9Router. Padrão: 20128.","label":"Porta do servidor"}},"state":{"combos":"{count} combinação(ões)","tip":{"auth_required":"9Router: login necessário","offline":"9Router: offline","online":"9Router: conectado"}}},"ai-usagebar":{"settings":{"color_by_usage":{"description":"Confere uma tonalidade à leitura à medida que a cota se esgota. A opção \"Off\" mantém a cápsula na cor da própria barra.","label":"Cor por uso"},"extras":{"description":"O tempo restante na janela, a distância do gasto em relação ao cronômetro, ambos ou nenhum dos dois.","label":"Leitura complementar","option":{"both":"Ambas","countdown":"Tempo até a reinicialização","none":"Nenhum","pace":"Corra contra o relógio"}},"glyph_position":{"description":"Em qual lado da leitura o ícone está posicionado.","label":"Posição do ícone","option":{"after":"Depois","before":"Antes"}},"provider_limit":{"description":"Define quantos provedores uma cápsula exibe, começando pelos mais movimentados e indicando o restante como \"+N\". Aplica-se apenas quando o provedor é definido como \"Automático\".","label":"Prestadores na cápsula"},"refresh_minutes":{"description":"Com que frequência a CLI é solicitada para obter dados de uso atualizados. As contagens regressivas são processadas localmente entre as chamadas.","label":"Intervalo de atualização (minutos)"},"show_glyph":{"description":"O ícone do provedor. A opção \"Desligado\" deixa a leitura por conta própria.","label":"Mostrar ícone"},"show_name":{"description":"Adiciona o nome do produto ao lado da porcentagem, para que duas cápsulas não pareçam iguais.","label":"Mostrar nome do provedor"},"show_value":{"description":"A porcentagem como texto. A opção \"Off\" faz com que o indicador a exiba.","label":"Mostrar valor"},"style":{"description":"Como esta cápsula fica no bar.","label":"Estilo","option":{"gauge":"Medida e porcentagem","label":"Nome, calibre e porcentagem","meter":"Segmentos","pill":"Percentagem"}},"vendor":{"description":"O plano que esta cápsula monitora. Adicione o widget duas vezes para acompanhar dois.","label":"Prestador de serviços","option":{"anthropic":"Claude","anthropic_api":"API da Anthropic","auto":"Automático (primário)","cursor":"Cursor","deepseek":"DeepSeek","grok":"Grok","kilo":"Quilo"}}},"ui":{"details":"Detalhes","elapsed":"{percent}% da janela decorridos","error":{"failed":"Não foi possível ler o uso","failed_hint":"O ai-usagebar foi encerrado com um erro.","no_data":"Nenhum uso registrado","no_data_hint":"O ai-usagebar foi executado, mas não relatou nenhum uso. Verifique os provedores em `~/.config/ai-usagebar/config.toml`.","not_installed":"ai-usagebar não está instalado","not_installed_hint":"A CLI não está no PATH. Instale-a e tente novamente.","spawn_failed":"Não foi possível iniciar o ai-usagebar","spawn_failed_hint":"O processo nunca foi iniciado. Tente novamente em instantes.","timed_out":"ai-usagebar não respondeu","timed_out_hint":"A leitura demorou muito. Um provedor pode estar respondendo lentamente."},"hidden_label":"Não exibido","hidden_value":"Mais {count}, clique para abrir o painel","loading":"Carregando…","no_usage":"Nenhum uso registrado","not_configured":"`{vendor}` não está configurado no ai-usagebar","now":"agora","retry":"Tente novamente","stale_hint":"exibindo os últimos dados conhecidos","title":"Uso de IA","unavailable":"Indisponível"}},"anilist":{"panel":{"close":"Fechar","close_preview":"Fechar pré-visualização","connect":"Conecte-se ao AniList","cover_preview":"Ver capa","decrement":"Episódio/capítulo anterior","download_cover":"Baixar capa","login_help":"Configure o seu ID de cliente e o segredo do cliente nas configurações do plugin e, em seguida, clique em Conectar. Seu navegador será aberto, você autorizará o AniList e o plugin concluirá o login automaticamente.","login_title":"Conectar ao AniList","login_waiting":"Aguardando login no navegador…","logout":"Sair","refresh":"Recarregar lista"}},"arch-updater":{"settings":{"show_activity_graph":{"description":"Monitore a contagem de atualizações pendentes com base nas verificações recentes e na data da última atualização; esses dados são exibidos em um pequeno gráfico acima da faixa do histórico de atualizações. A opção \"Desativado\" (padrão) também interrompe o registro do histórico."}}},"color_picker":{"color_copied":"Cor {color} copiada.","color_picked":"Cor {color} selecionada.","color_picker":"Seletor de Cores","could_not_parse":"não foi possível extrair a saída do hyprpicker.","glyph":"Símbolo","hex":"HEX","hyprpicker_not_installed":"hyprpicker não está instalado.","no_color_picked":"Nenhuma cor escolhida ainda.","no_history":"Ainda não há cores no histórico.","opacity":"Opacidade","recent_colors":"Cores Recentes","rgb":"RGB","settings":{"hyprpicker_cursor":{"description":"Inclui o cursor na prévia congelada da tela.","label":"Mostrar cursor"},"hyprpicker_disable_preview":{"description":"Desativa a prévia da cor em tempo real ao selecionar.","label":"Desabilitar Prévia em Tempo Real"},"hyprpicker_format":{"description":"Formato de cor padrão para copiar para a área de transferência (Hex ou RGB).","label":"Formato Padrão"},"hyprpicker_lowercase":{"description":"Exibe o código hexadecimal em letras minúsculas.","label":"Hexadecimal em Minúsculas"},"hyprpicker_no_zoom":{"description":"Dpesativa a lupa ao selecionar a cor.","label":"Desabilitar Lupa"},"hyprpicker_radius":{"description":"Raio do círculo da lupa em pixels, de 1 a 1000.","label":"Raio do Zoom"},"hyprpicker_scale":{"description":"Ampliação da lupa, de 1 a 10.","label":"Escala do Zoom"},"swatch_radius":{"description":"Raio dos cantos das amostras do histórico e da prévia da cor atual.","label":"Arredondamento de Cantos das Amostras"}}},"config-swap":{"panel":{"info_how_to_submite_config_body":"Você pode contribuir para o Config Swap adicionando seus próprios arquivos de configuração e papel de parede à loja, para que outras pessoas possam utilizá-los.\n\nPara fazer isso:\n* Vá para a seção de Configurações e salve sua configuração. O plugin copiará o arquivo `settings.toml` e criará um arquivo `info.json`.\n* Obtenha uma imagem de pré-visualização e um papel de parede; em seguida, vá para `~/Config-Swap/{name}` e copie os arquivos `preview.png` e `wallpaper.png`. É necessário utilizar exatamente esses nomes.\n* Atualize o arquivo `info.json` com informações importantes, como o autor e a descrição.\n* Acesse a página do GitHub (linkada no painel de informações da seção Loja) e crie um *pull request*.\n* Aguarde a análise; após aprovada, sua configuração poderá ser compartilhada.","info_store_copy_link_success":"Link copiado com sucesso"}},"contact-sounds":{"panel":{"add_button":"Adicionar","add_folder_tooltip":"Adicionar pasta","add_image":"Caminho da foto / ícone (opcional)","add_name":"Nome da pessoa","add_path":"Caminho do som .ogg/.mp3","add_path_folder":"Caminho da pasta de sons","add_title":"Adicionar contato","add_tooltip":"Adicionar contato","cancel":"Cancelar","cancel_tooltip":"Fechar o formulário","delete_cancel_tooltip":"Cancelar exclusão","delete_confirm_tooltip":"Confirmar exclusão","delete_tooltip":"Remover este contato","edit_title":"Editar contato","edit_tooltip":"Editar este contato","empty_state":"Nenhum contato configurado ainda.\nClique no botão + acima para adicionar.","error_saving":"Não foi possível salvar a lista de contatos. Veja o log.","folder_no_sounds":"A pasta não tem sons reproduzíveis","folder_random":"Qualquer som (aleatório)","folder_sounds":"Som:","folder_switch_existing":"Escolher de pastas já usadas","folder_switch_new":"Digitar outro caminho manualmente","invalid_contact":"Digite um nome e um caminho do som primeiro.","kind_app":"Aplicativo","kind_contact":"Contato","kind_group":"Grupo","kind_label":"Tipo","mode_file":"Arquivo de som","mode_folder":"Pasta de sons","mode_label":"Origem do som","need_sounds":"A pasta precisa conter um arquivo de áudio (.ogg, .mp3 ou .wav).","path_label":"Som","play_tooltip":"Tocar o som deste contato","random_sound":"Som aleatório da pasta","reorder_tooltip":"Arraste para reordenar a lista","save_button":"Salvar","saved":"Lista de contatos atualizada","settings_tooltip":"Abrir configurações do plugin","stop_tooltip":"Parar o som que está tocando","title":"Sons de Contato"},"settings":{"contact_images":{"description":"Mapa de nomes para o caminho de uma foto ou ícone exibido na lista do painel. Entradas do tipo app usam o ícone do próprio aplicativo quando vazio.","label":"Foto / ícone por entrada"},"contact_kinds":{"description":"Tipo da entrada. 'contact' / 'group' combinam com o texto da notificação; 'app' combina apenas com o nome do aplicativo.","label":"Tipos (Contato / Grupo / App)"},"contact_order":{"description":"Ordem dos contatos na lista do painel. Mude arrastando as entradas no painel.","label":"Ordem da lista"},"contacts":{"description":"Mapa de nomes de pessoas para o som tocado quando uma notificação menciona essa pessoa. Chave: o nome exato. Valor: caminho absoluto de um arquivo .ogg ou .mp3.","label":"Contatos"},"folder_sounds":{"description":"Mapa de nomes para o arquivo de som escolhido dentro de uma entrada de pasta. Vazio significa qualquer som (aleatório).","label":"Som escolhido da pasta"},"glyph":{"description":"Ícone mostrado na barra para este widget.","label":"Ícone"},"match_case_sensitive":{"description":"Quando desligado, o nome é procurado ignorando maiúsculas e minúsculas.","label":"Combinação sensível a maiúsculas"},"only_apps":{"description":"Lista opcional de nomes de aplicativos de notificação para restringir a combinação. Deixe vazio para combinar notificações de qualquer aplicativo.","label":"Somente estes aplicativos"},"show_sound_name":{"description":"Quando desligado, a cápsula com o nome do som abaixo de cada nome é ocultada.","label":"Mostrar nome do som"},"show_widget":{"description":"Quando desligado, o sino é ocultado da barra.","label":"Mostrar ícone na barra"},"sound_folders":{"description":"Registro de caminhos de pastas de som conhecidas, oferecidos ao adicionar uma nova entrada.","label":"Pastas de som conhecidas"}},"shortcut":{"label":"Sons de contato"},"widget":{"tooltip_empty":"Sons de Contato: nenhum contato configurado. Clique para abrir o painel.","tooltip_ok":"Sons de Contato: %d contato(s) configurado(s). Clique para testá-los."}},"godot-provider":{"no-projects-found":"Nenhum projeto foi encontrado.","no-projects-subtitle":"O arquivo projects.cfg não existe ou está vazio.","settings":{"godot_command":{"description":"O comando shell pra abrir a Godot.","label":"Comando godot"},"history":"Histórico","projects_path":{"description":"Caminho pro arquivo projets.cfg da Godot.","label":"Caminho do projets.cfg"},"sort_by":{"description":"Ordenar por histórico de uso ou número de usos.","label":"Ordenar por"},"usage_count":"Número de usos"}},"hassio":{"notifications":{"auth_failed":"Falha na autenticação. Verifique seu token de acesso.","reconnect_failed":"Não foi possível reconectar ao Home Assistant após {count} tentativas."},"panel":{"auth_failed":"Falha na autenticação. Verifique seu token de acesso.","brightness":"Brilho","browser_truncated":"Mostrando as primeiras {count} correspondências. Refine sua busca para reduzir a lista.","color_temp":"Temperatura de Cor","connecting":"Conectando…","disconnected_reconnecting":"Desconectado. Reconectando…","hue":"Matiz","load_entities_failed":"Não foi possível carregar a lista de entidades. Tente novamente.","loading_entities":"Carregando entidades…","manage_entities_title":"Gerenciar Entidades","no_entities_found":"Nenhuma entidade encontrada","no_entities_match":"Nenhuma entidade corresponde à sua busca","no_entities_monitored":"Nenhuma entidade monitorada ainda. Use o navegador para adicionar.","not_configured":"Não configurado. Defina a URL e o token do Home Assistant nas configurações.","save_failed":"Falha ao salvar as entidades monitoradas","save_failed_no_data_dir":"Não foi possível salvar: diretório de dados do plugin indisponível","search_placeholder":"Buscar entidades…","state_on_brightness":"Ligado · {percent}%","status_fallback":"Status: {status}","unreachable":"Não foi possível acessar o Home Assistant. Verifique a URL e se o servidor está em execução."},"settings":{"shortcut_entity":{"description":"ID da entidade do Home Assistant para mostrar e alternar neste espaço (e.g. light.living_room)."},"shortcut_entity_1":{"label":"Botão Rápido 1 - ID da Entidade"},"shortcut_entity_2":{"label":"Botão Rápido 2 - ID da Entidade"},"shortcut_entity_3":{"label":"Botão Rápido 3 - ID da Entidade"},"shortcut_entity_4":{"label":"Botão Rápido 4 - ID da Entidade"},"show_entity_count":{"label":"Mostrar o Número de Entidades"},"token":{"description":"Crie um token no Home Assistant em Profile → Security → Long-lived access tokens","label":"Token de Acesso Longo"},"url":{"description":"A URL para sua instância do Home Assistant (e.g., http://homeassistant.local:8123)","label":"URL do Home Assistant"}},"shortcut":{"label_1":"Botão Rápido 1","label_2":"Botão Rápido 2","label_3":"Botão Rápido 3","label_4":"Botão Rápido 4","panel_label":"Gerenciador de Entidades","title":"Home Assistant"},"widget":{"refreshing_connection":"Atualizando conexão…","status_auth_failed":"Falha de Autenticação","status_connected":"Conectado","status_connecting":"Conectando","status_disconnected":"Desconectado","status_unconfigured":"Não Configurado","status_unreachable":"Inacessível","tooltip":"Home Assistant: {status}","tooltip_entities":"Home Assistant: {status} ({count} entidades)"}},"inventory-manager":{"panel":{"add_first":"Adicionar seu primeiro produto","add_product":"Adicionar produto","added":"Adicionado","all":"Todos","bucket":{"available":"Disponível","defective":"Avaria","in_use":"Em uso","total":"Total"},"close":"Fechar","confirm":"Confirmar","confirm_delete":"Deseja realmente excluir?","delete":"Excluir produto","edit_product":"Editar produto","error_negative":"Não é possível reduzir abaixo de zero","export":"Exportar","export_error":"Erro ao exportar estoque","export_success":"Estoque exportado com sucesso!","form":{"add_title":"Adicionar Produto","cancel":"Cancelar","category":"Categoria","category_mode_existing":"Categoria existente","category_mode_new":"Nova Categoria","category_placeholder":"Digite o nome da nova categoria","category_tooltip_existing":"Selecionar da lista de categorias","category_tooltip_new":"Digitar nova categoria","edit_title":"Editar Produto","name":"Nome","name_placeholder":"Nome do produto","name_required":"Nome do produto é obrigatório","quantity":"Quantidade","save":"Salvar","update":"Atualizar"},"import":"Importar","import_confirm_message":"Isso vai substituir todos os produtos atuais pelo conteúdo do arquivo importado. Deseja continuar?","import_error":"Erro ao importar estoque","import_no_files":"Nenhum arquivo de exportação encontrado.","import_success":"Estoque importado com sucesso!","low_stock_notification":"%s está com estoque baixo: %d disponível (limite: %d)","no_category":"Nenhum produto nesta categoria","no_products":"Nenhum produto cadastrado","refresh":"Atualizar","settings":"Configurações do plugin","stock_plural":"Estoque (%d produtos)","stock_singular":"Estoque (%d produto)","title":"Gerenciador de Estoque","tooltip_drag":"Arraste para reordenar","updated":"Atualizado","zerado":"Zerado"},"settings":{"enable_low_stock_alerts":{"description":"Mostrar notificações quando produtos estão com estoque baixo","label":"Alerta de estoque baixo"},"export_folder":{"description":"Pasta onde os arquivos serão salvos. Aceita ~.","label":"Pasta de exportação"},"glyph":{"description":"Ícone para o widget na barra","label":"Ícone"},"low_stock_threshold":{"description":"Quantidade mínima para considerar estoque baixo","label":"Limite de estoque baixo"},"manual_sorting":{"description":"Ativar drag-and-drop para reordenar listas","label":"Reordenação Manual"},"show_low_stock_badge":{"description":"Mostrar badge vermelho com contagem de produtos com estoque baixo","label":"Mostrar badge de estoque baixo"},"show_total_quantity":{"description":"Mostrar a cápsula Total (soma de todos os contadores) em cada card de produto","label":"Mostrar quantidade total"},"store_cnpj":{"description":"CNPJ da loja","label":"CNPJ"},"store_name":{"description":"Nome da loja para exibir no painel","label":"Nome da Loja"},"store_number":{"description":"Número identificador da loja/filial","label":"Número da Loja/Filial"},"ti_name":{"description":"Nome do Técnico de Informática responsável","label":"Nome do TI"}},"widget":{"refreshing":"Atualizando...","tooltip_empty":"Nenhum produto cadastrado","tooltip_low":"%d produto(s) com estoque baixo ⚠️","tooltip_ok":"Todos os produtos com estoque suficiente ✅"}},"keymap":{"panel":{"creator":{"errors":{"symlink_unsupported":"A configuração principal ou gerenciada é um link simbólico. O salvamento é bloqueado para preservar o link com segurança."}}}},"link-ip-monitor":{"notify":{"duplicate_host":"{host} já está na lista","host_down":"{host} está inacessível","host_up":"{host} voltou a responder","invalid_host":"{host} não é um IP, host ou link válido"},"panel":{"add_label_placeholder":"Descrição (opcional) — ex: Roteador, Servidor","add_placeholder":"IP, host ou link","empty":"Nenhum host configurado ainda","invalid_format":"Inválido — informe um IP (0.0.0.0), um host ou um link","status_checking":"Checando…","status_offline":"Offline","status_online":"Online","tooltip_add":"Adicionar","tooltip_add_host":"Adicionar host","tooltip_cancel":"Cancelar","tooltip_check_now":"Checar agora","tooltip_close_form":"Fechar","tooltip_confirm_remove":"Confirmar remoção","tooltip_drag":"Arraste para reordenar","tooltip_edit":"Editar","tooltip_remove":"Remover","tooltip_settings":"Configurações"},"settings":{"colorize_latency":{"description":"Colore o valor em ms de acordo com a latência (verde abaixo de 100ms, amarelo entre 100-300ms, vermelho a partir de 300ms). Desmarque para mostrar sem coloração.","label":"Colorir tempo de resposta"},"glyph":{"description":"Ícone mostrado na barra para este widget.","label":"Ícone da barra"},"interval_seconds":{"description":"Com que frequência cada host é checado.","label":"Intervalo entre checagens (s)"},"notify_on_recovery":{"description":"Envia uma notificação quando um host que estava fora do ar volta a responder.","label":"Notificar quando o host volta"},"timeout_seconds":{"description":"Quanto tempo esperar por resposta antes de considerar falha.","label":"Timeout do ping (s)"}},"title":"Link/IP Monitor","widget":{"checking_now":"Checando agora…","tooltip_all_up":"Todos os hosts monitorados estão respondendo","tooltip_down_prefix":"Fora do ar:"}},"lyrics":{"no_lyrics":"♪ Nenhuma letra disponível","settings":{"animation":{"options":{"blink":"Revelação rápida"}}}},"obsidian":{"actions":{"copy_link":"Copiar [[link]]"}},"opnsense":{"launcher":{"cat":{"interfaces-sub":"Visão geral de links e endereços"}}},"rss-notifier":{"notify":{"refreshing":"Atualizando feeds...","title":"RSS/Atom Notifier"},"panel":{"add_feed_button":"Adicionar","add_feed_placeholder":"URL do feed (ex: https://exemplo.com/feed.xml)","add_feed_title":"Adicionar feed","add_feed_tooltip":"Adicionar feed","cancel_feed_tooltip":"Cancelar edição","clear_all_tooltip":"Limpar tudo","close_form_tooltip":"Fechar formulário","dismiss_tooltip":"Dispensar","edit_feed_title":"Editar feed","edit_feed_tooltip":"Editar feed","empty_state":"Nenhuma atualização","feed_error_duplicate":"Este feed já está configurado.","feed_error_empty":"Digite a URL do feed.","feed_error_invalid":"URL inválida. Use http:// ou https://","feeds_empty":"Nenhum feed adicionado ainda.","feeds_title":"Feeds configurados","refresh_tooltip":"Atualizar agora","remove_feed_tooltip":"Remover feed","save_feed_tooltip":"Salvar feed","settings_tooltip":"Configurações do plugin","title":"RSS/Atom Notifier","untitled_item":"(sem título)"},"settings":{"feed_urls":{"description":"Uma URL de feed RSS ou Atom por entrada (ex: https://exemplo.com/feed.xml).","label":"URLs dos feeds"},"glyph":{"description":"Ícone mostrado na barra para este widget.","label":"Ícone"},"max_notifications_per_cycle":{"description":"Evita uma enxurrada de notificações quando muitos itens novos aparecem de uma vez.","label":"Máximo de notificações por ciclo"},"notify_new":{"description":"Mostra uma notificação para cada item novo encontrado nos feeds.","label":"Notificar sobre novos itens"},"refresh_minutes":{"description":"Frequência com que os feeds são checados em busca de novidades.","label":"Intervalo de atualização (minutos)"},"show_feed_images":{"description":"Mostra a imagem de capa de cada item (ou o favicon do site como alternativa) na lista de itens.","label":"Mostrar imagens dos feeds"}},"widget":{"tooltip_none":"Nenhum item novo","tooltip_unread_suffix":"novo(s) item(ns) nos feeds"}},"screen-toolkit":{"panel":{"copy_link":"Copiar link","share_url":"Link copiado"},"settings":{"share_skip_popover":{"description":"Ignore o popover de compartilhamento e copie o link diretamente para a área de transferência. Uma notificação confirma a ação.","label":"Copiar link diretamente"},"x02_api_key":{"description":"Opcional. Obtenha uma chave gratuita em up.x02.me para links permanentes e arquivos maiores. Sem uma chave, os uploads utilizam o uguu.se (anônimo, 3h, máx. 128 MB)."},"x02_expiry":{"label":"Expiração do link"}}},"speedtest-meter":{"app_name":"Speedtest Meter","connection_tested_successfully":"Sua conexão foi testada com sucesso","copy_install_command":"Copiar comando de instalação","copy_result_link":"Copiar link do resultado","error_cli_not_found":"Nenhum comando de speedtest foi encontrado (procurei por `speedtest` e `speedtest-cli`).","error_cli_reported":"A ferramenta de speedtest reportou um erro.","error_could_not_start":"Não foi possível iniciar o processo do speedtest.","error_missing_cli":"Este plugin precisa de uma ferramenta de speedtest instalada e disponível no PATH. Abaixo está o comando de instalação pro seu gerenciador de pacotes.","error_ookla_hint":"Pra ter o velocímetro em tempo real com progresso por fase, instale o CLI oficial da Ookla (binário chamado `speedtest`) — por exemplo via AUR no Arch (yay -S speedtest-bin), ou pelo speedtest.net/apps/cli em outras distros.","error_timeout":"O teste demorou demais e foi interrompido depois de 60 segundos. Tente de novo, de preferência numa conexão mais rápida ou estável.","error_title":"Não foi possível rodar o teste","error_unknown":"Erro desconhecido.","gauge_scale":"Escala: 0 - {max} Mbps","hint_stuck":"Demorando mais que o esperado? Confirme que o `speedtest` funciona normalmente num terminal comum.","history_limit":"Últimos 5 testes","history_title":"Últimos testes","idle_subtitle":"Meça download, upload, ping e veja todos os dados técnicos.","log_waiting":"Aguardando saída do speedtest-cli...","metric_city":"Cidade","metric_country":"País","metric_country_ip":"País (IP)","metric_download":"Download","metric_external_ip":"IP externo","metric_host":"Host","metric_isp":"ISP","metric_jitter":"Jitter","metric_location":"Localização","metric_name":"Nome","metric_org":"Organização","metric_packet_loss":"Perda de pacotes","metric_ping":"Ping","metric_region":"Região","metric_server":"Servidor","metric_server_ip":"IP do servidor","metric_upload":"Upload","notify_command_copied":"Comando copiado.","notify_link_copied":"Link do resultado copiado para a área de transferência.","phase_download":"Testando download...","phase_legacy_running":"Rodando teste... isso pode levar até um minuto.","phase_ping":"Medindo ping e jitter...","phase_preparing":"Preparando...","phase_upload":"Testando upload...","result_title":"Resultado do speedtest","section_connection":"Sua conexão","section_server":"Servidor de teste","settings_glyph_description":"Ícone mostrado na barra para este widget.","settings_glyph_label":"Ícone","start_test":"Iniciar teste","test_again":"Testar novamente","try_again":"Tentar novamente","unit_mbps":"Mbps","widget_tooltip":"Speedtest Meter — clique para rodar um teste de velocidade"},"web-launcher":{"settings":{"links":{"label":"Links"},"notify":{"description":"Notificar ao abrir o link."}}},"world-radio":{"panel":{"add_custom_cancel":"Cancelar","add_custom_cover_placeholder":"URL da capa (opcional)","add_custom_name_placeholder":"Nome da estação (opcional)","add_custom_save":"Salvar","add_custom_subtitle":"Toque qualquer stream a partir de uma URL","add_custom_title":"Adicionar rádio local","add_custom_tooltip":"Adicionar rádio local","add_custom_url_placeholder":"https://exemplo.com/stream.mp3","all_countries":"Todos os países ({count})","all_countries_subtitle":"Mostrando {shown} de {total}","all_countries_title":"Todos os países","all_stations_title":"Todas as estações","back_tooltip":"Voltar","countries_empty":"Nenhum país encontrado","custom_count":"{count} salvas","custom_empty":"Nenhuma rádio local ainda. Toque em + para adicionar uma com a URL da sua stream.","custom_title":"Rádios locais","decade_stations":"Estações por década","decades_title":"Décadas","edit_custom_title":"Editar rádio local","edit_custom_tooltip":"Editar","error_network":"Não foi possível acessar radio-browser.info. Verifique sua conexão.","favorite_tooltip":"Favoritar","favorites_count":"{count} salvas","favorites_empty":"Nenhuma favorita ainda. Toque na estrela de qualquer estação.","favorites_title":"Favoritas","genre_stations":"Estações por gênero","genres_title":"Gêneros","goto_list_tooltip":"Mostrar na lista","load_more":"Carregar mais","loading":"Carregando...","next_tooltip":"Próxima estação","play_tooltip":"Tocar","prev_tooltip":"Estação anterior","random_tooltip":"Tocar rádio aleatória","remove_custom_tooltip":"Remover","search_countries_hint":"Digite o nome de um país para filtrar a lista","search_countries_placeholder":"Buscar países...","search_global_placeholder":"Busque por nome ou palavra-chave da estação...","search_hint":"Digite pelo menos 2 caracteres para buscar em todos os países","search_no_results":"Nenhuma estação encontrada para essa busca","search_stations_placeholder":"Buscar estações pelo nome...","search_subtitle":"Todos os países","search_title":"Buscar rádios","station_count":"{count} estações","stations_empty":"Nenhuma estação encontrada","stations_none_match":"Nenhuma estação corresponde à busca","stop_tooltip":"Parar","title":"Rádio Mundial","top_countries":"Países principais","total_countries":"Países","total_stations":"Total de estações","unfavorite_tooltip":"Desfavoritar"},"settings":{"glyph":{"description":"Ícone mostrado na barra para este widget.","label":"Ícone"},"show_now_playing":{"description":"Mostrar o nome da estação tocando agora ao lado do ícone.","label":"Mostrar tocando agora"}},"widget":{"playing_tooltip":"Tocando agora: {name}","tooltip":"Abrir Rádio Mundial"}}},"ru":{"crashes":{"caption_checked":"проверено {time}","empty":"Крашей не записано","empty_hint":"Когда один из твоих процессов упадёт с дампом, он появится здесь.","err_poll":"coredumpctl не ответил, подробности в логе Noctalia","err_uid":"Не удалось определить uid, список крашей отключён","journal_empty":"На этом уровне за текущую загрузку пусто","level_alert":"alert и строже","level_crit":"crit и строже","level_emerg":"только emerg","level_err":"err и строже","level_label":"Уровень","no_core":"дамп удалён","notify_body":"{signal}, PID {pid} — диагностика в панели Crashes","notify_title":"Процесс упал: {name}","settings":{"agent_cmd":{"description":"Команда, получающая промпт диагностики последним аргументом: «claude», «codex», «opencode --prompt», «grok --»… Пусто = взять первый установленный из известных.","label":"Команда AI-агента"},"agent_order":{"description":"Кого пробовать и в каком порядке: например «codex, claude». Пусто — claude, opencode, codex, grok.","label":"Порядок агентов"},"env_file":{"description":"Подключается перед запуском агента. Для прокси или ключа, которые есть в вашей оболочке, но не наследуются при клике в панели: например ~/.config/agent-env.","label":"Файл окружения"},"extra_prompt":{"description":"Текст, добавляемый к каждому промпту диагностики — например, «Отвечай на русском языке».","label":"Добавка к промпту"},"notify":{"description":"Сообщать о новых крашах твоих процессов критическим уведомлением. Выключи, если о них уже сообщает что-то другое.","label":"Уведомления на рабочем столе"},"poll_seconds":{"description":"Как часто перечитывать журнал systemd-coredump.","label":"Интервал опроса (секунды)"},"probe_agent":{"description":"Перед открытием окна задать агенту пустяковый вопрос; если он не отвечает (кончились лимиты, не залогинен, нет сети), откроется следующий. Стоит одного крошечного запроса на диагностику. Выключено — открывается первый установленный, работает он или нет.","label":"Проверять, что агент отвечает"},"terminal_cmd":{"description":"Обёртка, открывающая агента в окне, например «kitty -e». Оставь пустой, если команда агента сама открывает окно.","label":"Команда терминала"}},"tab_crashes":"Краши","tab_journal":"Ошибки","tip_close":"Закрыть","tip_diagnose":"AI-диагностика в терминале","tip_mute":"Не уведомлять об этой программе","tip_no_core":"Дамп уже удалён (ротация) — анализировать нечего","tip_refresh":"Перечитать список coredump сейчас","tip_unmute":"Снова уведомлять об этой программе","title":"Краши"},"layout-fix":{"err_dicts_install":"Не удалось установить словари, подробности в системном логе","err_no_input_access":"Нет доступа к устройствам клавиатуры. Выполни: sudo usermod -aG input $USER — и перезайди в сессию.","notify_dicts_installed":"Словари установлены — исправления стали точными","notify_dicts_missing":"Для точных исправлений установи: {list} (словари hunspell). Либо переключи «Словари» на «устанавливать автоматически» в настройках плагина.","notify_hotkey_hint":"Исправления уже работают. Для ручных повесь в компоузиторе: spawn \"noctalia\" \"msg\" \"plugin\" \"umedbazarov/layout-fix:service\" \"all\" \"fix\" — и то же с \"undo\" и \"auto\". Готовые строки есть в README.","settings":{"auto":{"description":"Править слово сразу, как оно закончено. Выключено — исправление только по горячей клавише.","label":"Исправлять автоматически"},"dictionaries":{"description":"Словари hunspell делают решение точным в обе стороны. Без них работает эвристика: она безопасна, но часть слов пропускает.","label":"Словари","options":{"ignore":"Не проверять","install":"Установить автоматически (спросит пароль)","notify":"Сообщить, что установить"}},"hotkey_hint":{"description":"Один раз показать, как повесить исправление и отмену в конфиге компоузитора.","label":"Напоминать о хоткеях"}},"title":"Layout Fix"},"niri-rules-studio":{"action_required":"Требуются действия","active_count":"{active} активных","active_window":"Активное окно: {app}","also_match_title":"Проверять также заголовок окна","also_match_title_help":"Включить только для определенного окна, например PiP.","app_id":"ID приложения","back":"Назад","cancel":"Отмена","choose_window":"Выбрать активное окно","choose_window_help":"Выбрать по ID приложения, заголовку или ID окна Niri.","close":"Закрыть","confirm_delete":"Удалить это правило?","create_rule":"Создать правило для этого окна","default_height":"Высота по умолчанию","default_width":"Ширина по умолчанию","delete":"Удалить","delete_rule":"Удалить правило","disabled":"Отключено","edit_rule":"Изменить управляемое правило","error_activate":"Проверка пройдена, но не удалось применить правила: {error}","error_app_id_required":"Необходимо указать ID приложения.","error_backup_config":"Не удалось создать резервную копию основной конфигурации: {error}","error_backup_directory":"Не удалось создать каталог для резервных копий: {error}","error_backup_rules":"Не удалось создать резервную копию активных правил: {error}","error_config_directory":"Не удалось создать каталог для конфигурации плагина: {error}","error_data_directory":"Не удалось найти каталог с данными плагина.","error_include":"Файл правил сохранен, но не удалось подключить его в основной конфиг: {error}","error_include_ambiguous":"В основном конфиге есть упоминание noctalia-rules-studio.kdl, но точная ссылка (include) не указана. Исправьте или удалите её перед сохранением.","error_ipc":"Сбой команды Niri IPC.","error_model_read":"Не удалось прочитать сохраненные правила: {error}","error_model_save":"Правила применились, но не удалось сохранить модель редактора: {error}","error_prepare_include":"Не удалось подготовить файл правил для проверки.","error_prepare_validation":"Не удалось подготовить конфигурацию для проверки: {error}","error_start_command":"Не удалось запустить Noctalia: {command}","error_validation_rejected":"Новая конфигурация отклонена Niri.","error_write_candidate":"Не удалось записать временный файл правил: {error}","floating":"Плавающее","initial_size_help":"Исходный размер: например, 0.6 для 60% экрана или значение в пикселях 900.","inspect":"Проверить","inspecting":"Определение активного окна…","managed_rules":"Созданные правила ({count})","managed_rules_help":"Можно изменять или удалять только те правила, которые были созданы здесь.","managed_rules_title":"Список правил","match_help":"Правило ищет совпадение приложения по его ID. Проверка заголовка необязательна.","mode_floating":"Открыть как плавающее","mode_floating_help":"Окно отображается поверх мозаичной сетки. Можно задать начальный размер.","mode_fullscreen":"Открыть во весь экран","mode_fullscreen_help":"Окно занимает весь экран, скрывая панели панелей оболочки.","mode_maximized":"Развернуть столбец","mode_maximized_edges":"Развернуть во всю рабочую область","mode_maximized_edges_help":"Заполняет рабочую область целиком, убирая внутренние отступы и рамки окон.","mode_maximized_help":"Столбец Niri растягивается на всю ширину, сохраняя внешние отступы и границы.","mode_tiled":"Открыть в мозаичном режиме","mode_tiled_help":"Стандартный режим Niri с прокруткой окон. Можно задать начальный размер.","new":"Новое","no":"Нет","no_app_id":"Нет ID приложения","no_focused_window":"Активное окно не обнаружено","no_managed_rules":"Управляемых правил пока нет","no_managed_rules_help":"Проверьте любое окно, чтобы создать для него первое правило.","no_matching_windows":"Окон по вашему запросу не найдено.","no_open_windows":"Niri сообщает, что открытых окон нет.","no_output_rule":"Нет правил для мониторов","no_window_selected":"Окно не выбрано","no_workspace_rule":"Нет правил рабочих пространств","not_saved":"Не сохранено","open_window_list":"Список открытых окон","opening_rule_notice":"Правила запуска применяются только к новым окнам. Текущее окно не изменится мгновенно.","pick_on_screen":"Указать на экране","pid":"PID","quick_rule":"Быстрое правило","refresh":"Обновить","save":"Проверить и сохранить","saved":"Сохранено и подтверждено. Niri перезагружает обновленные правила.","search_windows":"Поиск по открытым окнам…","select_window_status":"Выберите окно в Niri…","selected_window":"Выбрано: {app} · окно {id}","settings":{"niri_config":{"description":"Основной файл конфигурации Niri (KDL). Внешние файлы правил будут подключаться и проверяться через него.","label":"Конфигурация Niri"}},"then":"ЗАТЕМ","title_regex":"Регулярное выражение (Regex) для заголовка","unknown_app":"Неизвестное приложение","untitled_window":"Окно без названия","validating":"Проверка конфигурации Niri…","validation_failed":"Ошибка проверки. Текущие настройки не изменены.","when":"ЕСЛИ","widget_text":"Rules","widget_tooltip":"Открыть Niri Rules Studio","window_count":"Количество окон {count}","window_count_one":"1 окно","window_inspector":"ИНФОРМАЦИЯ ОБ ОКНЕ","window_list_fallback":"Вы можете выбрать любое окно из списка, предоставленного Niri.","window_list_status":"Выберите окно из списка или укажите его на экране.","window_missing_status":"Niri сообщает об отсутствии открытых окон.","window_selection_cancelled":"Выбор окна отменен.","workspace":"Рабочее пространство","yes":"Да"},"webapp-maker":{"btn_create":"Создать","err_failed":"webapp-install завершился с ошибкой, подробности в логе Noctalia","err_remove_failed":"Не удалось удалить, подробности в логе Noctalia","err_required":"Название и URL обязательны","err_slash":"В названии нельзя «/»","err_timeout":"webapp-install не уложился в таймаут","field_flags":"Параметры запуска chromium (опционально)","field_flags_ph":"--proxy-server=http://127.0.0.1:1080 --incognito …","field_icon":"Иконка: URL или путь (пусто = с сайта)","field_icon_ph":"https://…/icon.png или /путь/icon.png","field_name":"Название","field_name_ph":"Мой webapp","field_url":"URL","field_url_ph":"example.com (https допишется сам)","installed_empty":"Пока ничего не создано","installed_title":"Установленные","ok_created":"«{name}» создано — уже в лаунчере","ok_removed":"«{name}» удалено","settings":{"env_file":{"description":"Сорсится перед командами создания/запуска — например, файл с export HTTPS_PROXY, чтобы иконки сайтов качались через прокси. Пусто = не нужен.","label":"Файл окружения"}},"status_busy":"Создание — скачивается иконка…","tip_close":"Закрыть","tip_remove":"Удалить ярлык и иконку","title":"Новое веб-приложение"}},"tr":{"9router-control":{"add_model":{"empty":"Kullanılabilir model yok","no_match":"Aramanızla eşleşen model bulunamadı.","search":"Modelleri ara…","title":"Model ekle"},"create":{"back":"Geri","cancel":"İptal","models_label":"Modeller","name_label":"İsim","name_placeholder":"örn. my-fallback","submit":"Oluştur"},"detail":{"add_model":"Model ekle","delete_no":"İptal","delete_yes":"Evet, sil","models_title":"Model Zinciri","move_down":"Aşağı kaydır","move_up":"Yukarı kaydır","refresh":"Yenile","remove_model":"Modeli sil","rename":"Yeniden Adlandır","rename_cancel":"İptal","rename_placeholder":"Yeni isim...","rename_save":"Kaydet"}},"ai-usagebar":{"settings":{"style":{"description":"Bu kapsülün çubukta nasıl görüneceği.","label":"Stil","option":{"gauge":"Gösterge ve yüzde","label":"İsim, gösterge ve yüzde","meter":"Segmentler","pill":"Yüzde"}},"vendor":{"description":"Bu kapsülün hangi planı takip edeceği. İkisini izlemek için widget'ı iki kez ekleyin.","label":"Sağlayıcı","option":{"anthropic":"Claude","anthropic_api":"Anthropic API","antigravity":"Antigravity","auto":"Otomatik (birincil)","cursor":"Cursor","deepseek":"DeepSeek","grok":"Grok","kilo":"Kilo","kimi":"Kimi","kiro":"Kiro","minimax":"MiniMax","moonshot":"Moonshot","novita":"Novita","openai":"Codex","openrouter":"OpenRouter","supergrok":"SuperGrok","zai":"Z.AI"}}},"ui":{"details":"Ayrıntılar","elapsed":"Aralığın %{percent}'i geçti","error":{"failed":"Kullanım bilgisi okunamadı","failed_hint":"Kullanım bilgisi okunamadı","no_data":"Kullanım bildirilmedi","no_data_hint":"Kullanım bildirilmedi","not_installed":"ai-usagebar yüklü değil","not_installed_hint":"ai-usagebar yüklü değil","spawn_failed":"ai-usagebar başlatılamadı","spawn_failed_hint":"ai-usagebar başlatılamadı","timed_out":"ai-usagebar yanıt vermedi","timed_out_hint":"ai-usagebar yanıt vermedi"},"hidden_label":"Gösterilmiyor","hidden_value":"{count} tane daha, paneli açmak için tıklayın","loading":"Yükleniyor…","no_usage":"Kullanım bildirilmedi","not_configured":"`{vendor}` ai-usagebar içinde yapılandırılmamış","now":"şimdi","retry":"Tekrar dene","stale":"güncel değil","stale_hint":"en son bilinen veriyi gösteriyor","title":"Yapay Zeka Kullanımı","unavailable":"Kullanılamıyor","updated":"Güncellendi","updated_ago":"{minutes} dakika önce güncellendi\n"}},"anilist":{"panel":{"close":"Kapat","close_preview":"Önizlemeyi kapat","connect":"AniList'e Bağlan","cover_preview":"Kapak fotoğrafını gör","decrement":"Önceki bölüm","download_cover_failed":"Kapak fotoğrafı kaydedilemedi.","download_cover_success":"Kapak fotoğrafı {path} dizinine kaydedildi","download_cover_unavailable":"Kayıt dizini seçmek için zenity veya kdialog yükleyin.","error":"Hata: {message}","filter_all":"Tümü","filter_completed":"Tamamlanan","filter_current":"İzlenen","filter_dropped":"Bırakılan","filter_paused":"Durdurulan","filter_planning":"Planlanan","filter_reading":"Okunan","filter_rereading":"Tekrar okunan","filter_rewatching":"tekrar izlemek","increment":"Sonraki bölüm","loading":"Listelerin yükleniyor…","logged_in_as":"{name} olarak giriş yapıldı","login_title":"AniList'e bağlan","login_waiting":"Tarayıcıdan oturum açma bekleniyor…","logout":"Oturumu kapat","mark_complete":"Tamamla","open_anilist":"AniList'te aç"},"service":{"network_error":"AniList'e ulaşılamadı.","not_configured":"Eklenti ayarlarından AniList istemci kimliği (client ID) ve istemci sırrını (client secret) ayarlayın.","oauth_busy":"Zaten devam eden bir giriş işlemi var.","oauth_failed":"Tarayıcı ile giriş başarısız oldu.","oauth_unavailable":"Yerel giriş yardımcısı başlatılamadı. python3 yüklü mü?"},"settings":{"access_token":{"description":"Halihazırda bir taşıyıcı belirteciniz (bearer token) varsa tarayıcı girişini atlayın. Genellikle boş bırakılır.","label":"Erişim belirteci (isteğe bağlı)"},"client_id":{"description":"AniList geliştirici uygulaması istemci kimliğiniz (anilist.co/settings/developer). Yönlendirme URL'si http://127.0.0.1:7823/callback olmalıdır.","label":"İstemci Kimliği (Client ID)"},"client_secret":{"description":"Aynı AniList uygulamasının istemci sırrı. Asla herkese açık paylaşmayın — her kullanıcı kendi uygulamasını kullanmalıdır.","label":"İstemci Sırrı (Client Secret)"},"count_mode":{"description":"Çubuk simgesinin yanında hangi sayının gösterileceği.","label":"Çubuk sayısı","options":{"completed":"Tamamlanan (anime)","current":"İzleniyor (devam eden anime)","in_progress":"Devam eden (anime + manga)","planning":"Planlanan (anime)","total":"Toplam (tüm animeler)"}},"glyph":{"label":"Çubuk simgesi"}},"widget":{"tooltip_completed":"{count} anime tamamlandı","tooltip_current":"{count} anime izleniyor","tooltip_empty":"AniList — kütüphaneyi aç","tooltip_error":"AniList — {error}","tooltip_in_progress":"{count} devam eden (anime + manga)","tooltip_loading":"AniList — yükleniyor…","tooltip_oauth":"AniList — tarayıcıdan giriş bekleniyor…","tooltip_planning":"{count} anime planlandı","tooltip_total":"Listenizde {count} anime var"}},"arch-updater":{"action_check":"Güncellemeleri kontrol et","action_dismiss":"Kapat","action_open_news":"Haberleri aç","action_update":"Güncelle","caption_checked":"kontrol süresi {time}","caption_ignored":{"one":"1 paket yoksayıldı","other":"{count} paket yoksayıldı"},"err_aur_failed":"AUR kontrolü başarısız, detaylar için sistem loglarına bak","err_check_failed":"checkupdates başarısız, detaylar için sistem log'larını kontrol et","err_check_timeout":"Güncellemeler kontrol edilirken zaman aşımına uğrandı","err_flatpak_failed":"Flatpak kontrolü başarısız, detaylar için sistem log'larını kontrol et","err_no_checkupdates":"checkupdates bulunamadı, pacman-contrib'i yükle ve PATH'i kontrol et","err_no_terminal":"Terminal emülatörü bulunamadı, eklenti ayarlarından ekle","err_no_xdg_open":"xdg-open bulunamadı, paket sayfası açılamıyor","err_spawn":"checkupdates çalıştırılamadı","hover_hint":"Bir paketin full versiyonları için fareyle üzerine gelin","launcher":{"check_subtitle":"pacman, AUR, ve Flatpak'i güncellemeler için kontrol et","news_subtitle":"Arch Linux bültenini aç","update_subtitle":"Bekleyen güncellemeleri yükleyin (güncelleme modu ayarına bağlı olarak terminalde veya arka planda)"},"more_packages":"+{count} tane daha","news_unread":{"one":"Okunmamış 1 Arch haberi mevcut: \"{title}\"","other":"Okunmamış {couınt} Arch haberleri mevcut, sonuncusu: \"{title}\""},"notify_updates":{"one":"Güncellenecek 1 paket mevcut","other":"Güncellenecek {count} paket mevcut"},"reboot_recommended":"Yeniden başlatma önerilir, mevcutta çalışan kernel artık yüklü değil","run":{"press_key":"Kapatmak için bir tuşa basın"},"settings":{"assume_yes":{"description":"Paket yöneticilerinin onay istememesi için --noconfirm / -y bayraklarını ekle. Ayar kapalıysa tek tek terminal ekranından onaylamanız gerekir.","label":"Otomatikman evetle cevapla"},"aur_check_cmd":{"description":"Yalnızca yukarıdaki AUR yardımcısı 'Özel komut'ken kullanılır. Paket başına, 'yay -Qua' komutunun yaptığı gibi, tek satır 'isim eski-ver. -> yeni-ver.' yazdırması zorunludur.","label":"Özel AUR kontrol komutu"},"aur_helper":{"description":"AUR paketlerini kontrol eden ve güncelleyen AUR yardımcısı. 'Otomatik tespit' önce yay'ı, sonra da paru'yu dener. 'Özel komut' ise aşağıya kendi kontrol komutunuzu girmenizi sağlar.","label":"AUR yardımcısı","options":{"auto":"Otomatik tespit (önce yay sonra paru)","custom":"Özel komut","off":"Kapalı, sadece pacman","paru":"paru","yay":"yay"}},"auto_check_hours":{"description":"Her N saatte bir güncellemeleri otomatikman kontrol et. 0 (varsayılan) hiçbir zaman kendisi kontrol etmez.","label":"Otomatik kontrol aralığı (saat)"},"check_arch_news":{"label":"Arch Linux bültenini kontrol et"},"check_reboot_needed":{"label":"Yeniden başlatma gerekliliğini kontrol et"},"flatpak_enabled":{"label":"Flatpak'i dahil et"},"glyph":{"description":"Çubukta gösterilen bileşen simgesi.","label":"Çubuk simgesi"},"hide_on_empty":{"label":"Gösterilecek birşey yokken gizle"},"ignore_packages":{"label":"Paketleri görmezden gel"},"notify_on_updates":{"description":"Güncellenmeyi bekleyen paketler bulunduğunda bir bildirim gönder.","label":"Güncelleme bulunduğunda bildirim ver"},"show_count":{"description":"Çubuk simgesinin yanında bekleyen güncelleme sayısını göster.","label":"Güncelleme adedini göster"},"show_download_size":{"label":"İndirme boyutunu göster"},"terminal":{"label":"Terminal"}},"size_gib":"≈ {value} GiB indirilecek","size_mib":"≈ {value} MiB indirilecek","source":{"aur":"AUR","aur_named":"AUR ({helper})","flatpak":"Flatpak","pacman":"Pacman"},"status_checking":"Güncellemeler kontrol ediliyor…","status_checking_step":"{step} kontrol adımı…","status_clean":"Sistem güncel","tooltip_checked":"Kontrol edildi","tooltip_news":"Arch bülteni","tooltip_news_value":{"one":"1 okunmayan","other":"{count} okunmayan"},"tooltip_pending":"Bekleyen","tooltip_reboot_key":"Yeniden başlat","tooltip_reboot_value":"önerilir","tooltip_status":"Durum","up_to_date":"Güncel: {sources}"},"audio-switcher":{"actions":{"select":"Seç","selected":"Seçildi","settings":"Eklenti ayarları","show":"Cihazı göster","use":"Kullan"},"device":{"active":"Aktif","available":"Kullanılabilir","bluetooth_connected":"Bluetooth bağlandı","bluetooth_disconnected":"Bluetooth bağlantısı kesildi","current":"Geçerli","output_group":"Çıkış grubu","port":"Port","unavailable_port":"{port} (kullanılamıyor)"},"editor":{"alias":"Görünen ad","icon":"Cihaz simgesi","icon_options":{"automatic":"Otomatik","over_ear":"Kulak üstü kulaklık","speaker":"Hoparlör","tws":"TWS kulak içi kulaklık","wired":"Kablolu kulaklık"},"slot":"Kısayol numarası","slot_hint":"Bu numarayı connect IPC komutuyla kullanın, örneğin: connect 2.","title":"Cihaz tercihleri"},"errors":{"audio_unavailable":"Ses servisi kullanılamıyor.","bluetooth_audio_timeout":"Bluetooth bağlandı ancak ses çıkışı PipeWire'da zamanında görünmedi.","bluetooth_connect_failed":"Bluetooth cihazına bağlanılamadı.","bluetooth_device_not_found":"Bluetooth cihazı bulunamadı. Tekrar taramayı deneyin.","bluetooth_pair_failed":"Bluetooth cihazı eşleştirilemedi.","busy":"Başka bir ses işlemi hala devam ediyor.","command_start":"Sistem komutu başlatılamadı.","device_not_found":"Seçilen cihaz artık mevcut değil.","device_unavailable":"Seçilen cihaz şu anda kullanılamıyor.","group_create_failed":"Çıkış grubu oluşturulamadı.","group_not_found":"Çıkış grubu artık mevcut değil.","group_remove_failed":"Çıkış grubu dağıtılamadı.","group_requires_two":"En az iki kullanılabilir çıkış seçin.","group_switch_failed":"Çıkış grubu oluşturuldu ancak seçilemedi.","input_port_not_found":"Seçilen giriş bağlantı noktası artık mevcut değil.","input_port_switch_failed":"Giriş bağlantı noktası değiştirilemedi.","input_port_unavailable":"Seçilen giriş bağlantı noktası şu anda kullanılamıyor.","invalid_audio_data":"Ses servisi geçersiz veri döndürdü.","invalid_slot":"Kısayol numarası 1 ile 99 arasında bir tam sayı olmalıdır.","invalid_volume":"İstenen ses seviyesi geçersiz.","no_visible_devices":"Geçiş yapılabilecek görünür cihaz yok.","pactl_missing":"pactl gerekli ancak PATH içinde bulunamadı.","scan_in_progress":"Bluetooth taraması zaten devam ediyor.","slot_in_use":"{slot} numaralı kısayol zaten başka bir cihaza atanmış.","slot_not_found":"{slot} numaralı kısayola atanmış bir Bluetooth cihazı yok.","switch_failed":"Varsayılan ses cihazı değiştirilemedi."},"notifications":{"bluetooth_disconnected":"Bluetooth cihazının bağlantısı kesildi.","group_created":"Çıkış grubu oluşturuldu ve seçildi.","group_removed":"Çıkış grubu dağıtıldı.","input_port_selected":"Giriş bağlantı noktası {port} olarak değiştirildi.","input_selected":"Giriş cihazı {device} olarak değiştirildi.","output_selected":"Çıkış cihazı {device} olarak değiştirildi.","preferences_saved":"Cihaz tercihleri kaydedildi.","scan_complete":"Bluetooth taraması tamamlandı.","slot_saved":"Kısayol numarası {slot} kaydedildi."},"panel":{"group_hint":"{count} adet seçildi. En az iki kullanılabilir çıkış seçin.","hidden":"Gizli","hidden_count":"Gizli: {count}","input_volume":"Mikrofon","keybind_hint":"Gizli cihazlar cycle-output ve cycle-input komutları tarafından atlanır. Bluetooth numaraları connect IPC komutuyla kullanılabilir.","loading":"Ses cihazları yükleniyor…","mute":"Sesi kapat","no_device":"Cihaz yok","no_devices":"Ses cihazı bulunamadı.","no_input":"Giriş yok","no_output":"Çıkış yok","no_visible_devices":"Bu listedeki tüm cihazlar gizli.","output_volume":"Ses","scan_bluetooth":"Bluetooth ses cihazlarını tara","scanning":"Bluetooth cihazları taranıyor…","switching":"Ses cihazı değiştiriliyor…","unmute":"Sesi aç","visible_count":"Görünür: {count}"},"settings":{"scroll_step":{"description":"Fare tekerleği kaydırmasının çubuk widget'ındaki ses seviyesini yüzde kaç değiştireceği.","label":"Kaydırma adımı"},"show_actions_in_tooltip":{"description":"Eylemleri araç ipucunda göster.","label":"Araç ipucunda eylemleri göster"},"show_notification_on_switch":{"description":"Cihaz değiştirildiğinde bildirim göster.","label":"Cihaz değişiminde bildirim göster"},"show_percentage":{"description":"Çubuk simgesinin yanında geçerli çıkış ses yüzdesini gösterin. Yalnızca simgeyi göstermek için devre dışı bırakın.","label":"Yüzdeyi göster"}},"tabs":{"inputs":"Girişler","outputs":"Çıkışlar"},"title":"Ses Değiştirici","widget":{"action":{"left_click":{"description":"Ses Değiştirici'yi aç","key":"Sol tıklama"},"middle_click":{"description":"Görünür girişler arasında geçiş yap","key":"Orta tıklama"},"right_click":{"description":"Görünür çıkışlar arasında geçiş yap","key":"Sağ tıklama"},"scroll":{"description":"Çıkış ses seviyesini değiştir","key":"Kaydırma"}},"input":"Giriş","output":"Çıkış","tooltip":"Çıkış: {output} ({output_volume})\nGiriş: {input} ({input_volume})\nKaydırma: çıkış ses seviyesini değiştir\nSol tıklama: Ses Değiştirici'yi aç\nSağ tıklama: çıkışlar arasında geçiş yap\nOrta tıklama: girişler arasında geçiş yap"}},"battery-graph":{"settings":{"battery_path":{"description":"upower pil cihazının Dbus yolu","label":"Pil yolu"},"graph_time":{"description":"Grafiğin kaç saatlik bir zaman aralığını çizeceği","label":"Grafik zaman aralığı"},"interpol_time":{"description":"Noktalar arasındaki sürenin kaç dakika olacağı","label":"Noktalar arası süre"}},"text":{"graph_name":"Pil"}},"battery-power-management":{"notify":{"threshold_error_body":"Şarj sınırı yazılamadı. udev izinlerini kontrol edin (eklenti README dosyasına bakın).","threshold_error_title":"Pil şarj eşiği"},"panel":{"charge_threshold":"Şarj sınırı","power_profile":"Güç profili","profile_balanced":"Dengeli","profile_performance":"Performans","profile_power-saver":"Güç tasarrufu","remaining":"{time} kaldı","time_to_full":"{time} içinde tam dolacak"},"settings":{"battery_device":{"description":"sysfs pil adı, örn. BAT0 veya BAT1","label":"Pil cihazı"},"color_performance":{"description":"Performans profili etkinken kullanılan vurgu rengi","label":"Performans rengi"},"color_power_saver":{"description":"Güç tasarrufu profili etkinken kullanılan vurgu rengi","label":"Güç tasarrufu rengi"},"colorize_by_profile":{"description":"Widget'ı etkin güç profiline göre renklendir","label":"Profile göre renklendir"},"show_balanced_icon":{"description":"Dengeli profilindeyken de profil simgesini göster (yalnızca Profil simgesini göster açıkken)","label":"Dengeli simgesini göster"},"show_profile":{"description":"Etkin güç profili simgesini widget'ta göster","label":"Profil simgesini göster"}},"status":{"charging":"Şarj oluyor","discharging":"Boşalıyor","full":"Dolu","not_charging":"Şarj olmuyor","unknown":"Bilinmiyor"},"tooltip":{"level":"Seviye","power":"Güç","profile":"Profil","remaining":"Kalan süre","status":"Durum","to_full":"Doluma kalan"}},"battery-threshold":{"actions":{"widget-settings":"Widget Ayarları"},"notification":{"error-msg":"Pil şarj eşiği {file} dosyasına yazılamadı","error-title":"Pil Şarj Eşiği Hatası","setup-fail":"İzinler yapılandırılamadı.","setup-success":"İzinler yapılandırıldı. Grup değişikliklerinin geçerli olması için lütfen oturumu kapatıp tekrar açın.","setup-title":"Pil Şarj Eşiği Kurulumu"},"panel":{"adjust-limit":"Sınırı ayarlamak için kaydırıcıyı sürükleyin","button":"İzinleri Yapılandır","not-available":"Bu sistemde kullanılamıyor","read-only":"Salt okunur: Yazma erişimi için udev kuralını yükleyin","title":"Pil Şarj Eşiği"},"settings":{"battery-device":"Pil Cihazı","battery-device-desc":"Eşiğin yapılandırılacağı pil","charge-threshold":"Şarj Eşiği","charge-threshold-desc":"Pilin şarj olmayı durdurması gereken yüzde","no-battery-device":"Bu sistemde yapılandırılabilir pil bulunmuyor"}},"battery-widget":{"notify":{"error":"Bir şeyler ters gitti. Ayrıntılar için Noctalia günlüğünü kontrol edin."},"settings":{"battery":{"auto":"Otomatik","bat0":"BAT0","custom":"Özel","description":"Pili otomatik olarak algılayın veya özel bir ad belirleyin.","label":"Pil"},"battery_name":{"description":"Pilin adı.","label":"Pil Adı"},"charging_color":{"description":"AC gücüne bağlıyken uygulanan renk.","label":"Şarj Rengi"},"color":{"description":"Bu widget'ın simgesi ve etiketi için renk rolü; sabit onaltılık (hex) renkler de desteklenir.","label":"Renk"},"hide_full":{"description":"Tam şarj olduğunda pil widget'ını gizle.","label":"Doluyken Gizle"},"hide_plugged":{"description":"AC gücüne bağlıyken pil widget'ını gizle.","label":"Prize Takılıyken Gizle"},"label_content":{"description":"Pil etiketinin ne göstereceği: şarj yüzdesi, kalan süre veya güç tüketimi.","label":"Etiket İçeriği","percent":"Yüzde","rate":"Tüketim Oranı","time":"Süre"},"layout":{"description":"Widget düzeni.","horizontal":"Yatay","label":"Düzen","vertical":"Dikey"},"refresh_interval":{"description":"Widget'ın içeriğini ne sıklıkla güncelleyeceğini kontrol eder. (saniye cinsinden)","label":"Yenileme Aralığı"},"show_glyph":{"description":"Pil simgesini göster.","label":"Simgeyi Göster"},"show_label":{"description":"Simgenin yanında metin göster.","label":"Etiketi Göster"},"warning_color":{"description":"Şarj Noctalia'nın uyarı eşiğinde veya altındayken uygulanan renk.","label":"Uyarı Rengi"}}},"bazaarsearch":{"error":{"msg":{"busctl_fail":"'busctl' {exitCode} çıkış koduyla başarısız oldu","busctl_incorrect_ident":"'{expected}' bekleniyordu, '{recieved}' alındı","busctl_json_fail":"'busctl' JSON verisi ayrıştırılamadı","busctl_not_found":"'busctl' PATH içinde bulunamadı","busctl_not_found_body":"Lütfen 'busctl' paketinin kurulu olduğundan ve PATH üzerinde doğru şekilde tanımlandığından emin olun","malformed_value_retval":"Arama bozuk değer döndürdü - 'busctl' dönüş türü tanımlayıcısı hatalı"},"no_cmd_prov":"Hiçbir komut belirtilmedi","no_stage_prov":"Hiçbir işlev belirtilmedi","notify":{"activate":{"msg":"Seçilen Flatpak kimliği güvenlik kontrolünden geçemedi, başlatma komutu yok sayılıyor.","title":"Bazaar Arama Hatası"},"copy":{"msg":"Hata mesajı panoya kopyalandı","title":"Bazaar Arama Hatası"}},"report":{"command":"Komut","error":"Hata"}}},"bookmarks":{"back_button":"Geri","cancel_button":"İptal","cmd_field":"Shell Komutu","delete_folder_button":"Klasörü Sil","delete_tooltip":"Sil","description_field":"Açıklama (İsteğe bağlı)","drag_tooltip":"Sıralamak için sürükle veya bir klasörün içine bırak","drop_out_of_folder":"Ana panele göndermek için buraya bırak","edit":{"delete_tooltip":"Sil","drag_tooltip":"Sıralamak için sürükle veya bir klasörün içine bırak","drop_out_of_folder":"Ana panele göndermek için buraya bırak","edit_tooltip":"Düzenle","hide_controls_tooltip":"Sıralama/düzenleme/silme kontrollerini gizle","show_controls_tooltip":"Sıralama/düzenleme/silme kontrollerini göster"},"edit_bookmark":"Yer İmini Düzenle","edit_folder":"Klasörü Düzenle","edit_tooltip":"Düzenle","entry_form":{"cancel_button":"İptal","cmd_field":"Shell Komutu","description_field":"Açıklama (İsteğe bağlı)","edit_bookmark":"Yer İmini Düzenle","edit_folder":"Klasörü Düzenle","err_label_cmd_required":"Etiket ve komut alanları gerekli","err_label_required":"Etiket gerekli","folder_name_field":"Klasör ismi","glyph_field":"Simge (ör. bookmark)","label_field":"İsim etiketi","new_bookmark":"Yeni Yer İmi","new_folder":"Yeni Klasör","run_in_background_field":"Arka planda çalıştır","run_in_terminal_field":"Konsolda çalıştır","save_button":"Kaydet"},"entry_saved":"\"{label}\" kaydedildi","entry_updated":"\"{label}\" güncellendi","err":{"corrupt":"Bozuk yer imleri dosyası: {error}","delete_failed":"Silinemedi: {error}","exit_code":"\"{label}\" {code} ile sonlandı","launch_failed":"\"{label}\" açılamadı","no_command":"Bu yer iminin bir komutu yok","no_data_dir":"Eksik veri dizgini","read_failed":"Yer imleri okunamadı: {error}","reorder_failed":"Sıralama Yapılamadı: {error}","save_failed":"Kaydedilemedi: {error}"},"err_corrupt":"Bozuk yer imleri dosyası: {error}","err_delete_failed":"Silinemedi: {error}","err_exit_code":"\"{label}\" {code} ile sonlandı","err_label_cmd_required":"Etiket ve komut alanları gerekli","err_label_required":"Etiket gerekli","err_launch_failed":"\"{label}\" açılamadı","err_no_command":"Bu yer iminin bir komutu yok","err_no_data_dir":"Eksik veri dizgini","err_read_failed":"Yer imleri okunamadı: {error}","err_reorder_failed":"Sıralama Yapılamadı: {error}","err_save_failed":"Kaydedilemedi: {error}","folder":{"delete_folder_button":"Klasörü Sil","folder_deleted":"\"{label}\" klasörü ve içeriği silindi"},"folder_deleted":"\"{label}\" klasörü ve içeriği silindi","folder_name_field":"Klasör ismi","glyph_field":"Simge (ör. bookmark)","hide_controls_tooltip":"Sıralama/düzenleme/silme kontrollerini gizle","info":{"cmd_line":"Komut: {cmd}","description_line":"Açıklama: {description}"},"info_cmd_line":"Komut: {cmd}","info_description_line":"Açıklama: {description}","label_field":"İsim etiketi","new_bookmark":"Yeni Yer İmi","new_folder":"Yeni Klasör","no_bookmarks":"Henüz bir yer imi yok","no_search_results":"Eşleşen yer imi yok","open_tooltip":"Aç","run_in_background_field":"Arka planda çalıştır","run_in_terminal_field":"Konsolda çalıştır","save_button":"Kaydet","search_placeholder":"Yer imlerinde ara...","settings":{"bk_sort_by":{"description":"Yer imlerinin \"/bk\" sonuçlarında, arama yapılmadığında nasıl sıralanacağını belirler.","label":"/bk sıralama önceliği","options":{"history":"Son kullanılanlar","usage_count":"En sık kullanılanlar"}},"data_path":{"description":"data.json dosyasının saklandığı konum. Varsayılan eklenti veri konumunu kullanmak için boş bırakın.","label":"Veri dosyası"},"enable_bk_provider":{"description":"Başlatıcıya, yer imlerini fuzzy-aramak ve çalıştırmak için \"/bk\" komutunu ekler.","label":"Enable /bk launcher provider"},"glyph":{"description":"Çubuk aracının simgesi (ör. bookmark)","label":"Simge"},"show_info_button":{"description":"Yer imlerinde (klasörlerde değil) üzerine gelindiğinde açıklamalarını ve komutlarını görüntülemek için bir \"?\" düğmesi göster.","label":"Bilgi butonunu göster"},"text":{"description":"Çubuk aracının etiketi. Çubukta sadece simgenin görünmesi için boş bırakın.","label":"Yazı"},"tooltip":{"description":"Çubuk aracının isim etiketi","label":"İsim etiketi"}},"show_controls_tooltip":"Sıralama/düzenleme/silme kontrollerini göster","title":"Yer İmleri"},"calculator":{"bar":{"tooltip":"Hesap Makinesi"},"panel":{"copied":"{value} kopyalandı","copy":"Sonucu kopyala","deg":"DEG","placeholder":"Bir ifade yazıp Enter'a bas","rad":"RAD","title":"Hesap Makinesi"},"settings":{"angle_unit":{"description":"Trigonometrik fonksiyoların kullandığı birim.","label":"Açı birimi","options":{"deg":"Derece","rad":"Radyan"}},"max_bar_length":{"description":"Uzun sonuçlar çubukta üç nokta ile kısaltılır.","label":"Maksimum çubuk genişliği"},"precision":{"description":"Sonuçlar biçimlendirildiğinde kullanılacak maksimum basamak sayısı.","label":"Ondalık hassasiyet"},"show_bar_value":{"description":"Son sonucu hesap makinesi ikonunun yanında göster.","label":"Sonucu çubukta göster"}},"state":{"error":"Hata"}},"claude-companion":{"pulse":{"title":"","total":"Σ {tin} gelen / {tout} giden"},"sessions":{"empty":"Aktif Claude oturumu yok. Terminalde veya /claude komutuyla bir tane başlatın.","retire":"Sonlandır","title":"Claude — {count} oturum","title_one":"Claude — 1 oturum"},"settings":{"breath_speed":{"description":"Nabız noktası ve kürenin ne kadar hızlı nefes alıp vereceği. Varsayılan 1.0'dır; yüksek değerler daha hızlı, düşükler daha yavaştır.","label":"Nefes hızı"},"orb_swell":{"description":"Masaüstü küresinin nefes alırken ne kadar büyüyeceği. 0 boyutu sabit tutar; varsayılan 1.0'dır; yüksek değerler daha fazla büyütür.","label":"Küre büyüme payı"},"pulse_glow_floor":{"description":"Çubuk noktasının nefes alma döngüsünün en düşük noktasında ne kadar kararacağı. 0 tamamen karartır; yüksek değerler daha parlak kalır. Varsayılan 0.45'tir.","label":"Çubuk noktası taban parlaklığı"}},"state":{"orb":{"error":"hata","idle":"boşta","needs_attention":"size ihtiyacı var","text":"yanıt veriyor","tool_start":"araç çalıştırıyor","turn_end":"tamamlandı — sizi bekliyor","turn_start":"düşünüyor"},"tip":{"error":"Claude: hata","idle":"Claude: boşta","needs_attention":"Claude'un size ihtiyacı var","text":"Claude: yanıt veriyor","tool_start":"Claude: araç çalıştırıyor","turn_end":"Claude: tamamlandı — sizi bekliyor","turn_start":"Claude: düşünüyor"},"word":{"error":"hata","idle":"boşta","needs_attention":"size ihtiyacı var","text":"yanıt veriyor","tool_start":"araç","turn_end":"bitti","turn_start":"düşünüyor"}}},"codexbar-meter":{"plugin_name":"CodexBar Ölçer","settings":{"bar_provider_limit":{"description":"Çubuk kapsülünde gösterilen maksimum sağlayıcı ölçer sayısı; panel ve araç ipucu yine tüm sağlayıcıları içermeye devam eder.","label":"Çubuk sağlayıcı sınırı"},"codexbar_path":{"description":"Etkin CodexBar sağlayıcılarını sorgulamak için kullanılan komut veya mutlak yol.","label":"CodexBar komutu"},"refresh_interval":{"description":"Arka plan kullanım yenilemeleri arasındaki saniye.","label":"Yenileme aralığı"}}},"color_picker":{"color_copied":"{color} rengi kopyalandı.","color_picked":"{color} rengi seçildi.","color_picker":"Renk Seçici","could_not_parse":"hyprpicker çıktısı ayrıştırılamadı.","glyph":"Simge","hex":"HEX","hyprpicker_not_installed":"hyprpicker yüklü değil.","no_color_picked":"Henüz bir renk seçilmedi.","no_history":"Geçmişte henüz renk yok.","opacity":"Opaklık","recent_colors":"Son Renkler","rgb":"","settings":{"hyprpicker_cursor":{"description":"Dondurulmuş ekran önizlemesine imleci de dahil eder.","label":"İmleci göster"},"hyprpicker_disable_preview":{"description":"Renk seçimi sırasında canlı renk önizlemesini kapatır.","label":"Canlı Önizlemeyi Devre Dışı Bırak"},"hyprpicker_format":{"description":"Panoya kopyalanacak varsayılan renk biçimi (Hex veya RGB).","label":"Varsayılan Biçim"},"hyprpicker_lowercase":{"description":"Hex kodunu küçük harflerle verir.","label":"Küçük Harfli Hex"},"hyprpicker_no_zoom":{"description":"Renk seçimi sırasında büyütücü yakınlaştırma merceğini kapatır.","label":"Yakınlaştırma Merceğini Devre Dışı Bırak"},"hyprpicker_radius":{"description":"Piksel cinsinden yakınlaştırma merceği daire yarıçapı (1 ila 1000 arası).","label":"Yakınlaştırma Yarıçapı"},"hyprpicker_scale":{"description":"Yakınlaştırma merceği büyütme oranı (1 ila 10 arası).","label":"Yakınlaştırma Ölçeği"},"swatch_radius":{"description":"Geçmiş renk örneklerinin ve geçerli renk önizlemesinin köşe yuvarlaklığı.","label":"Renk Örnekleri Köşe Yuvarlaklığı"}}},"config-swap":{"panel":{"agree":"Anladım","apply":"Uygula","apply_notification_title":"Uygula","cancel":"İptal","confirmation":"Bu yapılandırma uygulansın mı?","confirmation_delete":"Silmek istediğinizden emin misiniz?","created_by":"{author} tarafından oluşturuldu","delete":"sil","description":"Açıklama: {description}","description_confirmation":"Bu işlem geçerli settings.toml dosyanızı ve duvar kağıdınızı değiştirecektir. Önceden bir yedek kaydetmediyseniz otomatik olarak yedek oluşturulmaz.","description_setting1":"Geçerli yapılandırmanızı ~/Config-Swap/{name} altında özel bir adla kaydedin. Varsayılan bir info.json oluşturulur ve daha sonra ~/Config-Swap/{name}/info.json adresinden düzenlenebilir. Önizleme ayarlamak için yapılandırma klasörüne preview.png ekleyebilirsiniz. Bu durum wallpaper.png kullanılarak duvar kağıtları için de geçerlidir.","download_failed":"İndirme başarısız oldu","download_ok":"İndirme tamamlandı","info_how_to_submite_config_body":"Kendi yapılandırma dosyalarınızı ve duvar kağıdınızı mağazaya ekleyerek başkalarının kullanabilmesi için Config Swap'a katkıda bulunabilirsiniz.\n\nBunu yapmak için:\n* Ayarlar bölümüne gidin ve yapılandırmanızı kaydedin. Eklenti settings.toml dosyanızı kopyalayacak ve bir info.json dosyası oluşturacaktır.\n* Bir önizleme görseli ve duvar kağıdı alın, ardından ~/Config-Swap/{name} dizinine giderek preview.png ve wallpaper.png dosyalarınızı kopyalayın. Tam bu isimler gereklidir.\n* info.json dosyanızı yazar ve açıklama gibi önemli bilgilerle güncelleyin.\n* Mağaza bölümündeki bilgi panelinde bağlantısı verilen GitHub sayfasına gidin ve bir pull request (çekme isteği) oluşturun.\n* İncelemeyi bekleyin, ardından yapılandırmanız paylaşılabilir.","info_how_to_submite_config_title":"Yapılandırma nasıl gönderilir","info_store_applying_body":"Uygula butonuna basmak, etkin settings.toml dosyanızı ve duvar kağıdınızı seçilen profille değiştirir. Ayarlar bölümünden önceden bir yedek kaydetmediyseniz bu işlem geri alınamaz.","info_store_applying_title":"Profil uygulama","info_store_community_body":"Profiller topluluk üyeleri tarafından gönderilir ve proje sahibi tarafından incelenir.","info_store_community_title":"Topluluk içeriği","info_store_copy_link_success":"Bağlantı başarıyla kopyalandı","info_store_github_button":"GitHub","info_store_installing_body":"Yükle butonuna basmak profilin dosyalarını ~/Config-Swap/{name} dizinine indirir. Bu işlem geçerli yapılandırmanızı henüz değiştirmez.","info_store_installing_title":"Profil yükleme","info_store_rate_limits_body":"Mağaza listesi, kimliği doğrulanmamış istekleri sınırlayan GitHub API'ından alınır. Kısa bir süre içinde arka arkaya yenilemekten kaçının.","info_store_rate_limits_title":"İstek limitleri","info_store_title":"Mağaza Bilgi Bölümü","info_store_what_is_body":"Mağaza, Config-Swap-Box GitHub deposunda barındırılan ve topluluk tarafından gönderilen yapılandırma profillerini listeler. Her profil bir settings.toml, bir önizleme görseli ve isteğe bağlı bir duvar kağıdı içerir.","info_store_what_is_title":"Mağaza Nedir?","install":"Yükle","install_notification_title":"Yükle","installed_title":"Yüklü Yapılandırmalar","not_agree":"Şimdi değil"}},"hypr-submap":{"settings":{"glyph":{"description":"Bileşende gösterilen simgeyi belirler.","label":"Çubukta gösterilen "},"hide_when_default":{"description":"Varsayılan submap'teyken çubuk bileşenini gizle.","label":"Varsayılan submap'teyken gizle"},"prefix":{"description":"Bileşende sergilenen submap ismine ön ek metni ekle.","label":"Submap ismine bir önek ekle"}}},"lyrics":{"instrumental":"Enstrümental","intro":"Giriş","no_lyrics":"♪ Şarkı sözleri mevcut değil","panel":{"close":"Kapat","loading":"Şarkı sözleri yükleniyor…","no_candidates":"Alternatif bir LRCLIB sonucu yok","no_track":"Şarkı çalmıyor","result":"Şarkı sözleri sonuçları","selection_failed":"Seçilen şarkı sözleri yüklenemedi","synced":"Eşleştirildi","title":"Şarkı sözlerini seçin","unsynced":"Eşleştirilmedi"},"select_lyrics":"Şarkı sözlerini seçin","settings":{"active_color":{"description":"Şu anki ve daha önce söylenmiş olan şarkı sözlerindeki karakterler için kullanılan renk. Varsayılan olarak arayüz yazı rengi kullanılır.","label":"Aktif şarkı sözü rengi"},"animation":{"description":"Şarkı sözlerinin satır değişimine göre animasyonu.","label":"Animasyon","options":{"blink":"Yanıp sönerek","cascade":"Karakter kademeli","fade":"Yalnızca solarak","karaoke":"Karaoke gradyanı + solma","none":"Animasyonsuz","pulse":"Nabız solması","typewriter":"Daktilo belirmesi","wave":"Dalga şeklinde karakterler"}},"apple_developer_token":{"description":"Apple Music kataloğu ve şarkı sözü isteği için kullanılan geliştirici token'ı.","label":"Apple Music geliştirici token'ı"},"apple_storefront":{"description":"Apple Music mağaza kodu, örneğin tr, us, cn, jp, veya hk.","label":"Apple Music mağazası"},"apple_user_token":{"label":"Apple Music kullanıcı token'ı"},"char_width":{"description":"Araç genişliğini ve kırpma kaydırmasını sabitlemek için kullanılan, karakter başına yaklaşık piksel genişliği.","label":"Karakter genişliği (px)"},"cover_radius":{"description":"Özel kapak şekli için kullanılan köşe yarıçapı.","label":"Kapak köşesi yarıçapı"},"cover_shape":{"description":"Albüm kapağının şekli.","label":"Kapak şekli","options":{"circle":"Çember","custom":"Özel çap","rounded":"Yuvarlanmış kare","square":"Kare"}},"cover_size":{"label":"Kapak boyutu"},"cue_font_mode":{"options":{"custom":"Özel font","follow":"Arayüz fontunu kullan"}}}},"pass":{"notification":{"copied":"Şifre kopyalandı.","copy_failed":"Şifre kopyalanamadı.","store_not_found":"Şifre deposu bulunamadı.","unlocking":"GPG anahtarı açılıyor…"},"settings":{"refresh_interval":{"description":"Saniye cinsinden ne aralıkla şifre deposunun taranacağı.","label":"Yenileme aralığı (saniye)"}}},"phone-connect":{"error":{"pick_failed":"Dosya seçici açılamadı"},"media":{"next":"Sıradaki","play":"Çal"},"panel":{"devices_connected":"{connected} bağlı"}},"saved-desktop-widgets":{"launcher":{"text":"Widget'lar"},"service":{"applied":"Düzen başarıyla uygulandı! Yeniden yükleniyor...","applying":"Bu duvar kağıdı için kaydedilen düzen uygulanıyor...","error_title":"Hata","failed":"Durum enjekte edilemedi","no_layout":"Bu duvar kağıdı için kaydedilmiş düzen yok.","saved":"Düzen değişikliği algılandı ve kaydedildi.","title":"Widget Koruyucu"},"settings":{"general":"Genel","list":{"remove":"Aşağıdaki masaüstü widget kurulumunu kaldır."},"load_widgets":{"description":"Duvar kağıdı değiştiğinde widget'ların yüklenmesini etkinleştir.","label":"Widget'ları Yükle"},"load_widgets_auto":"Widget'ları otomatik yükle","no_widgets_saved":"Henüz kaydedilmiş widget yok.","nuke_all":"Hepsini Sıfırla","nuke_all_notification":"Kaydedilen tüm düzenler temizlendi.","remove_widget":"Bu duvar kağıdı için kaydedilen widget'ları kaldır","save_widgets":{"description":"Değiştirildikçe widget'ların kaydedilmesini etkinleştir.","label":"Widget'ları Kaydet"},"save_widgets_auto":"Widget'ları otomatik kaydet","saved_layouts":"Kaydedilmiş Düzenler","title":"Kaydedilmiş Masaüstü Widget'ları","tool_row":{"nuke":{"text":"Her Şeyi Sıfırla","tooltip":"Tüm kurulumları kaldır. UYARI: BU, MEVCUT OLAN DIŞINDAKİ TÜM DİĞER KURULUMLARI KALDIRACAKTIR!"}}}}},"uk-UA":{"razer":{"settings":{"low_battery_threshold":{"description":"Відсоток заряду, при якому надсилається попередження","label":"Поріг низького заряду акумулятора (%)"},"show_percentage":{"description":"Відображати відсоток заряду поруч із піктограмою пристрою на панелі","label":"Показувати відсоток заряду"},"sync_theme_color":{"description":"Автоматично узгоджувати кольори підсвічування Razer з активним акцентним кольором Noctalia","label":"Синхронізувати RGB з темою"}},"ui":{"brightness":"Яскравість підсвічування","custom_color_placeholder":"HEX-колір (напр. #FF0055)","custom_dpi_placeholder":"Власний DPI (напр. 1500)","daemon_not_running":"Служба OpenRazer не запущена","lighting_effect":"Ефект підсвічування","no_devices":"Пристроїв Razer не знайдено","no_devices_hint":"Підключіть підтримувану мишу, клавіатуру або гарнітуру Razer.","off":"Вимкнено","panel_title":"Центр керування Razer","picker":"Палітра","razer_green":"Зелений Razer","refresh":"Оновити","sensitivity":"Чутливість (DPI)","set":"Застосувати","spectrum":"Спектр","start_daemon":"Запустити службу","start_daemon_hint":"Запустіть службу командою:\nsystemctl --user start openrazer-daemon","theme_fallback":"Колір теми недоступний, застосовано зелений Razer","theme_role":"Роль палітри","theme_sync":"Синхронізація з темою","theme_synced":"Встановлено роль теми: ","wired":"Дротовий"}}},"vi":{"9router-control":{"add_model":{"back":"Quay lại combo","empty":"Không có model nào.","no_match":"Không có model khớp tìm kiếm.","search":"Tìm model…","title":"Thêm Model"},"create":{"back":"Quay lại","cancel":"Hủy","kind_label":"Loại","models_hint":"Mỗi model một dòng, theo thứ tự fallback (vd: cc/claude-opus-4-7).","models_label":"Models","models_placeholder":"cc/claude-opus-4-7\nglm/glm-5.1","name_label":"Tên","name_placeholder":"vd: my-fallback","submit":"Tạo","title":"Combo mới"},"detail":{"add_model":"Thêm model","back":"Quay lại danh sách","delete":"Xóa combo","delete_confirm":"Xóa combo này?","delete_no":"Hủy","delete_yes":"Có, xóa","drag_hint":"Kéo model để sắp xếp lại","kind_label":"Loại","models_count":"{count} model","models_title":"Chuỗi Model","move_down":"Di chuyển xuống","move_up":"Di chuyển lên","no_models":"Combo này chưa có model nào.","refresh":"Làm mới","remove_model":"Xóa model","rename":"Đổi tên","rename_cancel":"Hủy","rename_placeholder":"Tên mới…","rename_save":"Lưu"},"error":{"add_model_failed":"Không thể thêm model","auth_required":"Cần xác thực","bad_response":"Phản hồi không mong đợi từ 9Router","connection_failed":"Không kết nối được 9Router","create_failed":"Không thể tạo combo","delete_failed":"Không xóa được combo","dismiss":"Đóng","http_status":"HTTP {status}","invalid_name":"Tên chỉ được chứa chữ, số, -, _ và .","kind_failed":"Không cập nhật được loại","login_failed":"Đăng nhập thất bại","need_name_models":"Cần tên và ít nhất một model.","need_password":"Vui lòng nhập mật khẩu.","remove_model_failed":"Không thể xóa model","rename_failed":"Không đổi tên được combo","reorder_failed":"Không thể sắp xếp lại model"},"kind":{"fallback":"Fallback","fusion":"Fusion","none":"Không","round_robin":"Round-robin"},"list":{"delete":"Xóa combo","delete_cancel":"Hủy","delete_confirm":"Xác nhận xóa","empty":"Chưa có combo nào. Tạo một combo để bắt đầu.","kind":"Loại: {kind}","new_combo":"Combo mới","no_match":"Không có combo nào khớp tìm kiếm.","open":"Mở combo","refresh":"Làm mới","search":"Tìm combo…","title":"9Router — Combos"},"login":{"hint":"Dashboard yêu cầu xác thực. Nhập mật khẩu 9Router của bạn để tiếp tục.","password_placeholder":"Mật khẩu…","submit":"Đăng nhập","title":"Đăng nhập 9Router"},"settings":{"data_dir":{"description":"Thư mục dữ liệu 9Router (dùng để tính CLI token khi dashboard yêu cầu đăng nhập). Mặc định: ~/.9router.","label":"Thư mục dữ liệu"},"debug_logging":{"description":"In thông điệp gỡ lỗi vào log Noctalia.","label":"Ghi log gỡ lỗi"},"language":{"description":"Ngôn ngữ giao diện của plugin. 'Tự động' theo ngôn ngữ shell Noctalia.","label":"Ngôn ngữ","options":{"auto":"Tự động (theo shell)","en":"English","vi":"Tiếng Việt"}},"server_host":{"description":"Hostname của dashboard 9Router. Mặc định: 127.0.0.1.","label":"Máy chủ"},"server_port":{"description":"Cổng của dashboard 9Router. Mặc định: 20128.","label":"Cổng"}},"state":{"combos":"{count} combo","tip":{"auth_required":"9Router: cần đăng nhập","offline":"9Router: ngoại tuyến","online":"9Router: đã kết nối"}}},"opencode-companion":{"chat":{"assistant":"Trợ lý","back":"Quay lại danh sách phiên","dismiss_error":"Bỏ qua","empty":"Chưa có tin nhắn. Gửi prompt để bắt đầu.","open_terminal":"Mở trong terminal","placeholder":"Hỏi OpenCode bất cứ điều gì…  (Enter = xuống dòng, Ctrl+Enter = gửi)","refresh":"Làm mới","select_agent":"Agent","select_model":"Mô hình","send":"Gửi (Ctrl+Enter)","stop":"Dừng","thinking":"Đang suy nghĩ…","title":"OpenCode Chat","you":"Bạn"},"chooser":{"delete":"Xóa phiên","delete_cancel":"Hủy","delete_confirm":"Xác nhận xóa","empty":"Chưa có phiên nào. Tạo một phiên để bắt đầu.","new_session":"Tạo phiên mới","no_match":"Không có phiên nào khớp.","open":"Mở phiên","refresh":"Làm mới","search":"Tìm phiên…","title":"OpenCode — Phiên"},"error":{"abort_failed":"Không thể hủy phiên","connection_failed":"Không thể kết nối đến máy chụ","connection_failed_detail":"Máy chủ không phản hồi health check.","create_session_failed":"Không thể tạo phiên","delete_session_failed":"Không thể xóa phiên","exe_not_found":"Không tìm thấy opencode trên PATH","exe_not_found_detail":"Cài đặt opencode và đảm bảo nó có trên PATH.","external_not_configured":"URL máy chủ bên ngoài chưa được cấu hình","permission_failed":"Không thể phản hồi yêu cầu quyền","prompt_failed":"Không thể gửi prompt","question_failed":"Không thể trả lời câu hỏi","server_failed":"Không thể khởi động máy chủ OpenCode","server_timeout":"Máy chủ không khởi động kịp thời gian","server_timeout_detail":"Máy chủ không trở nên sỏng trong khoảng thời gian chờ.","session_error":"Phiên gặp lỗi","session_error_detail":"Agent đã dừng do gặp lỗi.","session_not_found":"Không tìm thấy phiên","sse_disconnected":"Luồng sự kiện đã ngắt kết nối"},"mcp":{"connected":"Đã kết nối","disabled":"Đã tắt","failed":"Lỗi","title":"Máy chủ MCP"},"notify":{"new_session":"Đang tạo phiên mới…","permission_body":"OpenCode đang chờ bạn phê duyệt.","permission_title":"Yêu cầu quyền","title":"OpenCode"},"permission":{"allow":"Cho phép","allow_remember":"Luôn cho phép","default_message":"OpenCode muốn thực hiện một hành động cần sự chấp thuận của bạn.","deny":"Từ chối","title":"Cần cấp quyền"},"question":{"cancel":"Hủy","custom":"Trả lời tùy chỉnh","submit":"Gửi","title":"Câu hỏi"},"settings":{"auto_start":{"description":"Tự động khởi động máy chủ cục bộ khi plugin tải.","label":"Tự động khởi động"},"debug_logging":{"description":"In thông tin gỡ lỗi vào nhật ký Noctalia.","label":"Gỡ lỗi"},"default_agent":{"description":"Agent mặc định cho phiên mới. Mặc định: 'build'.","label":"Agent mặc định"},"default_model":{"description":"Model mặc định theo định dạng 'provider/model' (ví dụ: 'anthropic/claude-3-5-sonnet-20241022'). Để trống để dùng mặc định của máy chủ.","label":"Model mặc định"},"default_workspace":{"description":"Thư mục làm việc mặc định cho phiên mới. Để trống để dùng thư mục hiện tại.","label":"Thư mục làm việc mặc định"},"language":{"description":"Ngôn ngữ giao diện của plugin này. 'Tự động' theo ngôn ngữ của Noctalia.","label":"Ngôn ngữ","options":{"auto":"Tự động (theo shell)","en":"English","vi":"Tiếng Việt"}},"max_messages_load":{"description":"Số tin nhắn tải mỗi phiên (1–100). Kéo thanh trượt lên mức cao nhất để không giới hạn. Mặc định: 50.","label":"Số tin nhắn tải tối đa"},"notify_on_complete":{"description":"Hiển thị thông báo trên desktop khi phản hồi hoàn tất.","label":"Thông báo khi hoàn tất"},"panel_mode":{"description":"Full-height sát phải mở panel cao trọn màn hình ghim vào mép phải; Compact hiển thị panel nổi gần chỗ bấm trên thanh bar.","label":"Kiểu panel","options":{"compact":"Gọn (gần điểm bấm)","fill_right":"Thanh cao full màn bên phải"}},"server_host":{"description":"Hostname máy chủ cục bộ bind vào. Mặc định: 127.0.0.1 (chỉ loopback).","label":"Máy chủ host"},"server_mode":{"description":"Cách plugin kết nối đến OpenCode. 'auto' quản lý máy chụ cục bộ; 'external' kết nối đến URL do người dùng chỉ định.","label":"Chế độ máy chủ"},"server_port":{"description":"Cổng máy chủ cục bộ lắng nghe. Mặc định: 4096.","label":"Cổng máy chủ"},"server_url":{"description":"URL cơ sở của máy chủ OpenCode bên ngoài (ví dụ: http://127.0.0.1:4096). Dùng khi chế độ máy chủ là 'external'.","label":"URL máy chủ bên ngoài"},"show_reasoning":{"description":"Hiển thị nội dung reasoning/thinking trong khung chat.","label":"Hiện reasoning"},"show_tool_calls":{"description":"Hiển thị trạng thái tool call trong khung chat.","label":"Hiện tool calls"},"ui_mode":{"description":"Full hiển thị bố cục rộng rãi; Compact thu nhỏ padding, chữ và ẩn chi tiết phụ để panel gọn gàng tối giản.","label":"Chế độ giao diện","options":{"compact":"Compact","full":"Full"}}},"state":{"tip":{"busy":"OpenCode: đang xử lý…","offline":"OpenCode: ngắt kết nối","online":"OpenCode: đã kết nối","starting":"OpenCode: đang khởi động…","waiting_permission":"OpenCode: chờ cấp quyền"},"unread":"{count} phản hồi chưa đọc"},"time":{"days_ago":"{n} ngày trước","hours_ago":"{n} giờ trước","just_now":"vừa xong","minutes_ago":"{n} phút trước"}},"shell-command":{"cd_empty":"Không tìm thấy thư mục","cd_empty_subtitle":"Gõ đường dẫn hoặc kiểm tra cài đặt workspace","cd_open_subtitle":"Mở terminal trong thư mục này","cd_open_title":"Mở trong: {path}","hint_subtitle":"Gõ lệnh sau /sh rồi nhấn Enter để mở trong terminal","hint_title":"Chạy lệnh shell","history_subtitle":"Lệnh gần đây","run_subtitle":"Mở trong terminal mặc định","run_subtitle_found":"Tìm thấy {command} — mở trong terminal mặc định","run_title":"Chạy: {command}","settings":{"default_workspace":{"description":"Thư mục lệnh chạy trong đó. Để trống dùng thư mục hiện tại của terminal.","label":"Thư mục làm việc"},"snippets":{"description":"Lệnh hiện khi /sh trống. Mỗi mục là một lệnh.","label":"Snippets"}},"snap_subtitle":"Hoàn tất: {command} — Enter để chạy","snippet_subtitle":"Snippet","suggest_subtitle":"Gợi ý"}},"zh-Hans":{"github-kanban":{"action":{"close":"关闭","mark_read":"标为已读","mark_visible_read":"将当前列表标为已读","marking_read":"正在标为已读…","open":"在 GitHub 上打开","refresh":"刷新"},"contributions":{"best_streak":"最长连续贡献","current_streak":"当前连续贡献","last_year":{"one":"过去一年共 {count} 次贡献","other":"过去一年共 {count} 次贡献"},"selected_day":{"one":"{date} · {count} 次贡献","other":"{date} · {count} 次贡献"},"this_year":"今年","today":"今天"},"events":{"activity":"动态","branch_created":"创建了分支","branch_deleted":"删除了分支","collaborators_updated":"更新了协作者","commit_comment":"评论了提交","created":"创建了内容","deleted":"删除了内容","forked":"Fork 了仓库","issue_comment":"评论了 Issue","issue_updated":"更新了 Issue","made_public":"设为了公开","pull_request_reviewed":"审查了 PR","pull_request_updated":"更新了 PR","pushed":"推送了更改","release":"发布版本","release_published":"发布了新版本","repository_created":"创建了仓库","review_comment":"发表了审查评论","starred":"已加星","summary":{"created_branch":"创建了 {ref} 分支","created_reference":"创建了 {ref} 引用","created_repository":"创建了此仓库","created_tag":"创建了 {ref} 标签","deleted_branch":"删除了 {ref} 分支","deleted_reference":"删除了 {ref} 引用","deleted_repository":"删除了此仓库","deleted_tag":"删除了 {ref} 标签","pushed_commits":"推送了新提交","starred_repository":"为此仓库加了星标","updated_branch":"更新了 {ref} 分支"},"tag_created":"创建了标签","tag_deleted":"删除了标签","wiki_updated":"更新了 Wiki"},"fallback":{"github":"GitHub","github_activity":"GitHub 动态","github_repository":"GitHub 仓库","github_user":"GitHub 用户","repository":"仓库","untitled":"无标题"},"filter":{"all":"全部","assigned":"已指派","assigned_to_me":"指派给我","attention":"需要关注","closed":"已关闭","created_by_me":"由我创建","open":"未关闭","read":"已读","repositories":"仓库","review_requested":"请求我审查","unread":"未读","updates":"更新","users":"用户"},"github":{"reason":{"assign":"被指派","author":"作者","ci_activity":"CI 动态","comment":"评论","invitation":"邀请","manual":"手动订阅","mention":"被提及","review_requested":"收到审查请求","security_alert":"安全警报","state_change":"状态变更","subscribed":"已订阅","team_mention":"团队被提及"},"status":{"action_required":"需要操作","cancelled":"已取消","closed":"已关闭","completed":"已完成","failure":"失败","in_progress":"进行中","neutral":"中立","open":"未关闭","pending":"待处理","queued":"排队中","skipped":"已跳过","stale":"已过时","success":"成功","timed_out":"已超时"}},"heatmap":{"less":"少","more":"多"},"panel":{"actions":"Actions","activity":"动态","contributions":"贡献","feed":"关注","issues":"Issue","notifications":"通知","overview":"概览","profile":"个人资料","pull_requests":"PR","repositories":"仓库","reviews":"审查","show_more":{"one":"再显示 {count} 项 · 剩余 {remaining} 项","other":"再显示 {count} 项 · 剩余 {remaining} 项"},"title":"GitHub Kanban"},"profile":{"contributions":"贡献","followers":"关注者","following":"关注","repositories":"仓库"},"repository":{"forks":"Fork {count}","stars":"★ {count}"},"settings":{"activity":{"history_days":{"description":"仅显示最近指定天数内的 PR、审查、Issue 和 Actions。","label":"动态 · 历史范围（天）"},"issue_default_filter":{"description":"打开动态面板时默认选择的 Issue 来源筛选条件。","label":"动态 · 默认 Issue 筛选"},"pr_default_filter":{"description":"打开动态面板时默认选择的 PR 来源筛选条件。","label":"动态 · 默认 PR 筛选"},"show":{"description":"显示动态面板标签页。","label":"动态 · 显示面板"}},"appearance":{"activity_repository_emphasis":{"description":"在动态条目中突出显示仓库名称。","label":"外观 · 动态 · 突出仓库名称"},"activity_show_status_badges":{"description":"在动态条目上显示状态徽标。","label":"外观 · 动态 · 状态徽标"},"activity_show_type_icons":{"description":"显示代表动态条目类型的图标。","label":"外观 · 动态 · 类型图标"},"appearance_animations":{"description":"在面板卡片上启用实时悬停反馈。","label":"外观 · 动画"},"appearance_avatar_shape":{"description":"选择个人头像的形状。","label":"外观 · 头像形状","options":{"circle":"圆形","rounded":"圆角"}},"appearance_avatar_size":{"description":"选择个人头像的大小。","label":"外观 · 头像大小","options":{"large":"大","medium":"中","small":"小"}},"appearance_card_background":{"description":"选择透明、浅色调或较不透明的半透明主题背景。","label":"外观 · 卡片背景","options":{"solid":"浓色","tinted":"浅色调","transparent":"透明"}},"appearance_card_border":{"description":"选择卡片边框的显示方式。","label":"外观 · 卡片边框","options":{"accent":"强调色","none":"无","subtle":"淡色"}},"appearance_card_radius":{"description":"卡片的圆角程度。","label":"外观 · 卡片圆角半径"},"appearance_card_spacing":{"description":"卡片之间的间距。","label":"外观 · 卡片间距"},"appearance_density":{"description":"选择整体间距和信息密度。","label":"外观 · 内容密度","options":{"comfortable":"宽松","compact":"紧凑","standard":"标准"}},"appearance_font_scale":{"description":"缩放整个面板的文字。","label":"外观 · 字体缩放"},"appearance_hover_effect":{"description":"选择鼠标悬停在卡片上时的视觉效果。","label":"外观 · 悬停效果","options":{"background":"背景","border":"边框","none":"无"}},"appearance_icon_style":{"description":"选择面板图标的外观。","label":"外观 · 图标样式","options":{"color":"彩色","muted":"柔和色","theme":"主题色"}},"appearance_secondary_text":{"description":"选择次要文字的显示方式。","label":"外观 · 次要文字","options":{"full":"完整显示","hidden":"隐藏","truncate":"截断"}},"appearance_show_empty_illustration":{"description":"分区没有条目时显示插图。","label":"外观 · 空状态插图"},"appearance_time_format":{"description":"选择日期和时间的显示格式。","label":"外观 · 时间格式","options":{"iso":"ISO 8601","local":"本地时间","relative":"相对时间"}},"following_content_lines":{"description":"关注事件最多显示的内容行数。","label":"外观 · 关注 · 内容行数"},"following_event_spacing":{"description":"关注视图中事件之间的间距。","label":"外观 · 关注 · 事件间距"},"heatmap_cell_gap":{"description":"贡献日历单元格之间的间距。","label":"外观 · 热力图 · 单元格间距"},"heatmap_cell_radius":{"description":"贡献日历单元格的圆角程度。","label":"外观 · 热力图 · 单元格圆角半径"},"heatmap_cell_size":{"description":"贡献日历中每个单元格的大小。","label":"外观 · 热力图 · 单元格大小"},"heatmap_color_mode":{"description":"选择贡献热力图的颜色来源。","label":"外观 · 热力图 · 配色模式","options":{"custom":"自定义","github":"GitHub","noctalia":"Noctalia 主题"}},"heatmap_custom_level_0":{"description":"使用 #RRGGBB 格式的十六进制颜色值。留空则跟随主题。","label":"外观 · 热力图 · 自定义等级 0"},"heatmap_custom_level_1":{"description":"使用 #RRGGBB 格式的十六进制颜色值。留空则跟随主题。","label":"外观 · 热力图 · 自定义等级 1"},"heatmap_custom_level_2":{"description":"使用 #RRGGBB 格式的十六进制颜色值。留空则跟随主题。","label":"外观 · 热力图 · 自定义等级 2"},"heatmap_custom_level_3":{"description":"使用 #RRGGBB 格式的十六进制颜色值。留空则跟随主题。","label":"外观 · 热力图 · 自定义等级 3"},"heatmap_custom_level_4":{"description":"使用 #RRGGBB 格式的十六进制颜色值。留空则跟随主题。","label":"外观 · 热力图 · 自定义等级 4"},"heatmap_empty_style":{"description":"为没有贡献的日期使用标准淡边框，或更醒目的轮廓。","label":"外观 · 热力图 · 空单元格样式","options":{"background":"背景","outline":"轮廓"}},"heatmap_levels":{"description":"选择贡献强度的等级数量。","label":"外观 · 热力图 · 活跃程度等级","options":{"4":"4 级","5":"5 级","five":"5 级","four":"4 级"}},"heatmap_show_legend":{"description":"显示贡献强度图例。","label":"外观 · 热力图 · 显示强度图例"},"heatmap_show_months":{"description":"在贡献日历上方显示月份标签。","label":"外观 · 热力图 · 显示月份标签"},"heatmap_show_total":{"description":"显示年度贡献总数。","label":"外观 · 热力图 · 显示贡献总数"},"heatmap_show_weekdays":{"description":"在贡献日历旁显示星期标签。","label":"外观 · 热力图 · 显示星期标签"},"notification_read_opacity":{"description":"已读通知卡片使用的不透明度。","label":"外观 · 通知 · 已读卡片不透明度"},"notification_unread_border":{"description":"以边框突出显示未读通知卡片。","label":"外观 · 通知 · 未读卡片边框"},"notification_unread_dot":{"description":"在未读通知卡片上显示圆点。","label":"外观 · 通知 · 未读状态圆点"},"overview_stats_layout":{"description":"选择概览统计数据的排列方式。","label":"外观 · 概览 · 统计布局","options":{"columns4":"四列","compact":"紧凑","grid":"网格"}},"repositories_layout":{"description":"选择仓库卡片的排列方式。","label":"外观 · 仓库 · 仓库布局","options":{"grid":"网格","list":"列表"}},"repositories_show_language":{"description":"显示每个仓库的主要编程语言。","label":"外观 · 仓库 · 显示仓库语言"},"repositories_show_stats":{"description":"显示仓库的星标数和 fork 数。","label":"外观 · 仓库 · 显示仓库统计"}},"following":{"card_max_height":{"description":"每张分组关注卡片的最大高度，单位为像素。","label":"关注 · 卡片最大高度"},"events_per_user":{"description":"向 GitHub 请求的每人近期公开事件数量上限。","label":"关注 · 每人事件数"},"hide_bots":{"description":"隐藏 GitHub 机器人账号的事件。","label":"关注 · 隐藏机器人"},"history_days":{"description":"仅显示最近指定天数内的关注动态。","label":"关注 · 历史范围（天）"},"ignored_repositories":{"description":"要排除的仓库，格式为 owner/name，匹配时不区分大小写。","label":"关注 · 忽略的仓库"},"ignored_users":{"description":"要从关注中排除的 GitHub 登录名，匹配时不区分大小写。","label":"关注 · 忽略的用户"},"include_prereleases":{"description":"包含 nightly 和候选发布版等预发布版本。","label":"关注 · 包含预发布版本"},"show":{"description":"显示关注面板标签页。","label":"关注 · 显示面板"},"starred_repository_limit":{"description":"检查发布版本的近期已加星仓库数量上限。","label":"关注 · 扫描的已加星仓库数"},"types":{"forks":"关注 · 显示 fork","issues":"关注 · 显示 Issue 和评论","other":"关注 · 显示其他事件","pull_requests":"关注 · 显示 PR 和审查","pushes":"关注 · 显示推送","releases":"关注 · 显示发布版本","stars":"关注 · 显示星标"},"user_limit":{"description":"获取公开事件的已关注用户人数上限。","label":"关注 · 获取动态的人数"}},"general":{"bar_display_mode":{"description":"选择状态栏组件显示 GitHub 图标、未读数，或同时显示两者。","label":"常规 · 状态栏显示","options":{"both":"图标和未读数","count":"未读数","icon":"图标"}},"default_dashboard":{"description":"打开 GitHub Kanban 时显示的面板。","label":"常规 · 默认面板"}},"notifications":{"default_filter":{"description":"打开通知面板时默认选择的状态筛选条件。","label":"通知 · 默认状态筛选"},"history_days":{"label":"通知 · 历史范围（天）"},"mark_read_on_open":{"description":"在同步模式下，成功启动浏览器打开程序后，将该条未读通知在 GitHub 上标为已读。","label":"通知 · 打开通知时标为已读"},"refresh_interval":{"description":"同步模式独立于面板刷新通知的时间间隔。","label":"通知 · 刷新间隔","options":{"one_twenty":"每 120 秒","sixty":"每 60 秒","three_hundred":"每 300 秒"}},"refresh_on_open":{"description":"在同步模式下，打开面板时刷新通知。","label":"通知 · 打开面板时刷新"},"show":{"description":"显示通知面板标签页。","label":"通知 · 显示面板"},"sync_mode":{"description":"旧模式下通知为只读，刷新间隔与面板一致。同步模式独立刷新通知，并可在 GitHub 上将通知标为已读。","label":"通知 · 同步模式","options":{"legacy":"旧模式（只读）","synced":"同步模式"}}},"overview":{"show":{"description":"显示概览面板标签页。","label":"概览 · 显示面板"}},"refresh_interval":{"description":"GitHub Kanban 刷新 GitHub 数据的时间间隔。","label":"刷新间隔","options":{"fifteen":"每 15 分钟","five":"每 5 分钟","thirty":"每 30 分钟"}},"repositories":{"show":{"description":"显示仓库面板标签页。","label":"仓库 · 显示面板"}}},"status":{"auth_error":"GitHub CLI 需要登录认证：gh auth login -h github.com","cli_start_failed":"无法启动 GitHub CLI。","empty":"暂无内容。","gh_request_failed":"GitHub CLI 请求失败。","invalid_json":"GitHub 返回了无效的 JSON。","loading":"正在加载 GitHub 数据…","missing_gh":"需要安装 GitHub CLI（gh）。","missing_xdg_open":"需要 xdg-open 才能打开 GitHub。","notification_changed":"此通知有了更新。请刷新并阅读新内容后，再将其标为已读。","notifications_refreshing":"正在刷新通知…","preparing_contribution_calendar":"正在准备贡献日历…","request_error":"部分 GitHub 数据无法刷新。","stale":"正在显示最新的缓存数据。","unexpected_data":"GitHub 返回了异常数据。"},"time":{"days_ago":{"one":"{count} 天前","other":"{count} 天前"},"hours_ago":{"one":"{count} 小时前","other":"{count} 小时前"},"just_now":"刚刚","minutes_ago":{"one":"{count} 分钟前","other":"{count} 分钟前"}},"widget":{"tooltip":{"one":"GitHub Kanban\n{count} 条未读通知","other":"GitHub Kanban\n{count} 条未读通知"}}},"imagemagick-clock":{"settings":{"cmdline":{"description":"命令应该生成一个时钟图片文件。`%output_file`将被替换为图片文件路径。`%H`, `%M`等将被替换为当前小时、分钟等。全部可用的时间格式请参阅`man strftime`。","label":"命令行"},"image_height":{"description":"时钟图片在显示器上按逻辑像素计算的高度。（不是图片文件自身高度）","label":"图片高度"},"image_width":{"description":"时钟图片在显示器上按逻辑像素计算的宽度。（不是图片文件自身宽度）","label":"图片宽度"}}},"lunar-calendar":{"notify":{"title":"农历节气日历"},"panel":{"festival":"节日","ganzhi":"干支","lunar":"农历","next_holiday":"下个假期","next_month":"下一月","next_year":"下一年","none":"无","off":"休","prev_month":"上一月","prev_year":"上一年","term":"节气","today":"今天","unknown":"未知","work":"班"},"service":{"cache_cleared":"节假日缓存已清除"},"settings":{"glyph":{"description":"Tabler / Nerd Font 图标名，例如 calendar-event、calendar-month。","label":"小组件图标"},"holiday_source":{"description":"中国法定节假日与调休数据来自 holiday-cn（MIT）。网络不可用时自动回退到本地缓存。","label":"节假日数据源","options":{"auto":"自动（CDN 优先）","github":"GitHub Raw","jsdelivr":"jsDelivr CDN","off":"关闭联网"}},"primary":{"description":"小组件第一段文字显示什么。","label":"主标签内容","options":{"both":"公历 + 农历","lunar":"农历日期（如 八月初六）","solar":"公历日期（如 9月16日）"}},"secondary":{"description":"主标签后面的第二段文字。","label":"副标签内容","options":{"auto":"优先显示节气/节日/假期","lunar":"只显示农历日期","lunar_plus":"农历日期 + 节气/节日/假期","none":"不显示"}},"show_glyph":{"label":"显示图标"},"show_weekday":{"description":"在公历日期后显示周几。","label":"显示星期"},"week_start":{"description":"月历面板中一周的第一天。","label":"每周起始日","options":{"monday":"星期一","saturday":"星期六","sunday":"星期日"}}},"status":{"cached":"节假日离线缓存","disabled":"节假日已关闭","loading":"节假日加载中…","nodata":"节假日未公布","offline":"节假日无数据","ok":"节假日已同步"},"widget":{"disabled":"已在设置中关闭","festival":"节日","ganzhi":"干支","gregorian":"公历","holiday":"假期","holidays":"节假日","loading":"数据加载中…","lunar":"农历","next_holiday":"下个假期","next_term":"下个节气","offline":"无数据（离线）","on_leave":"放假","refreshing":"正在刷新节假日数据…","term":"节气","workday":"调休","workday_short":"班","working":"上班"}},"lyrics":{"instrumental":"间奏","intro":"前奏","no_lyrics":"暂无可用歌词","panel":{"close":"关闭","loading":"正在加载歌词……","no_candidates":"没有其他 LRCLIB 结果","no_track":"当前没有正在播放的歌曲","result":"歌词结果","selection_failed":"无法加载所选歌词","synced":"同步歌词","title":"选择歌词","unsynced":"非同步歌词"},"select_lyrics":"选择歌词","settings":{"active_color":{"description":"设置当前歌词和已经唱过字符的颜色，默认使用界面文字颜色。","label":"当前歌词颜色"},"animation":{"description":"歌词换行时使用的动画。","label":"歌词动画","options":{"blink":"闪烁显现","cascade":"字符级联淡入","fade":"仅淡入淡出","karaoke":"逐字渐变和淡入淡出","none":"无动画","pulse":"脉冲淡入","typewriter":"打字机显现","wave":"字符波浪显现"}},"apple_developer_token":{"description":"用于 Apple Music 曲库和歌词请求的 developer token。","label":"Apple Music 开发者令牌"},"apple_storefront":{"description":"例如 us、cn、jp 或 hk。","label":"Apple Music 商店区域"},"apple_user_token":{"description":"需要订阅授权的歌词可填写 Music-User-Token。","label":"Apple Music 用户令牌"},"char_width":{"description":"用于计算歌词显示窗口和滚动速度的近似字符宽度。","label":"字符宽度（像素）"},"cover_radius":{"description":"自定义封面形状使用的圆角半径。","label":"封面圆角"},"cover_shape":{"description":"专辑封面的形状。","label":"封面形状","options":{"circle":"圆形","custom":"自定义圆角","rounded":"圆角方形","square":"方形"}},"cover_size":{"description":"专辑封面的宽度和高度。","label":"封面尺寸"},"cue_font_family":{"description":"自定义字体模式下，仅用于前奏和间奏字符的已安装字体族名称。","label":"前奏/间奏字体"},"cue_font_mode":{"description":"选择前奏和间奏字符跟随 Noctalia 界面字体，或使用其他已安装字体。","label":"前奏/间奏字体模式","options":{"custom":"自定义字体","follow":"跟随界面字体"}},"cue_text":{"description":"前奏和间奏期间逐字点亮的文字或字符。","label":"前奏/间奏字符"},"custom_json_field":{"description":"JSON 响应中的歌词字段，支持点号路径，例如 data.lyric；留空则按纯 LRC 解析。","label":"JSON 歌词字段"},"custom_url":{"description":"支持 {title}、{artist}、{album} 和 {duration} 占位符，文本响应可直接返回 LRC。","label":"自定义接口 URL"},"display_mode":{"description":"固定显示歌词、固定显示歌曲信息，或允许左键切换。","label":"显示模式","options":{"lyrics":"仅歌词","toggle":"点击切换","track":"仅歌曲名和歌手"}},"double_line":{"description":"在原文歌词下方显示翻译或罗马音。","label":"双行歌词"},"double_line_auto_fit":{"description":"在水平状态栏中缩小主副歌词字号和间距，避免胶囊外框裁剪第二行；垂直状态栏不受影响。","label":"双行紧凑模式"},"double_line_height_budget":{"description":"水平状态栏可用于两行文字的近似总高度；数值越小，两行越紧凑。","label":"双行高度预算"},"font_family":{"description":"用于所有歌词的已安装字体族；留空跟随 Noctalia。","label":"歌词字体"},"font_style":{"description":"Noctalia 渲染器支持的文字基线样式。","label":"字体布局样式","options":{"fixed":"固定文字高度","ink_centered":"字形墨迹居中","normal":"普通"}},"font_weight":{"description":"主歌词使用的字体粗细。","label":"歌词粗细","options":{"bold":"粗体","heavy":"特粗","light":"细体","medium":"中等","normal":"常规","semibold":"半粗","thin":"极细"}},"glyph":{"label":"图标"},"gradient":{"description":"根据播放进度逐字点亮当前歌词。","label":"逐字渐变"},"hide_when_no_lyrics":{"label":"无歌词时隐藏"},"hide_when_paused":{"label":"暂停时隐藏"},"inactive_color":{"description":"设置未唱歌词、暂停状态和次要歌词行的颜色。","label":"未唱歌词颜色"},"karaoke_enabled":{"description":"使用词源逐字时间或模拟行进度进行逐字高亮。","label":"卡拉 OK 逐字高亮"},"line_gap":{"description":"原文、翻译、罗马音和上下文歌词之间的间距。","label":"歌词行间距"},"lyrics_offset_ms":{"description":"正值让歌词更早显示，负值让歌词更晚显示。","label":"歌词延迟（毫秒）"},"lyrics_source":{"description":"选择预设词源、本地播放器歌词、自定义接口或外部推送协议。","label":"歌词来源","options":{"apple_music":"Apple Music","auto":"自动回退","custom":"自定义 HTTP 接口","external":"外部 IPC 推送","kugou":"酷狗音乐","lrclib":"LRCLIB","mpris":"本地播放器（MPRIS）","musixmatch":"Musixmatch","netease":"网易云音乐","qishui":"汽水音乐","qqmusic":"QQ 音乐","splayer":"SPlayer","spotify":"Spotify"}},"lyrics_sources":{"description":"按从上到下的顺序尝试词源，可填写 lrclib、netease、splayer、qqmusic、kugou、qishui、apple_music、spotify、musixmatch、mpris 或 custom。","label":"自动词源顺序"},"marquee_speed":{"description":"长歌词每秒滚动的像素数。","label":"滚动速度"},"max_chars":{"description":"长歌词开始滚动前显示的最大字符数。","label":"最大字符数"},"max_lines":{"description":"垂直状态栏中同时显示的歌词行数。","label":"最大行数"},"musixmatch_token":{"description":"用于 Musixmatch 桌面字幕接口的 usertoken。","label":"Musixmatch 用户令牌"},"padding_left":{"description":"组件内容左侧的空白。","label":"左边距"},"padding_right":{"description":"组件内容右侧的空白。","label":"右边距"},"player_allowlist":{"description":"仅使用匹配的 MPRIS 播放器。留空表示允许全部；支持 * 通配符，可匹配播放器名称或实例名。","label":"播放器白名单"},"player_blocklist":{"description":"应用白名单后忽略匹配的 MPRIS 播放器。支持 * 通配符，例如 chromium* 或 firefox*。","label":"播放器黑名单"},"poll_interval_ms":{"description":"服务刷新 MPRIS 元数据和播放进度的间隔。","label":"播放器轮询频率（毫秒）"},"primary_font_size":{"description":"原文歌词行的字号，0 表示跟随 Noctalia。","label":"主歌词字号"},"qishui_api_url":{"description":"支持 {title}、{artist}、{album} 的接口模板；汽水公开接口不稳定，因此需要自行填写。","label":"汽水音乐接口 URL"},"qishui_token":{"description":"仅发送给自定义汽水接口的可选 Bearer token。","label":"汽水音乐令牌"},"scroll_mode":{"description":"设置长歌词在状态栏中的滚动方式。","label":"滚动模式","options":{"auto":"自动滚动","marquee":"始终滚动","static":"静态截断"}},"secondary_color":{"description":"翻译和罗马音歌词使用的颜色。","label":"第二行歌词颜色"},"secondary_font_size":{"description":"翻译和罗马音使用的字号。","label":"第二行字号"},"secondary_line_mode":{"description":"选择附加歌词内容的优先顺序。","label":"第二行内容","options":{"romanization":"仅罗马音","romanization_first":"罗马音优先，其次翻译","translation":"仅翻译","translation_first":"翻译优先，其次罗马音"}},"show_artist":{"label":"显示歌手"},"show_cover":{"description":"在歌词旁显示当前歌曲的专辑封面。","label":"显示专辑封面"},"show_glyph":{"description":"没有专辑封面时显示设置的图标。","label":"显示图标"},"show_romanization":{"description":"允许罗马音或音译出现在第二行。","label":"显示罗马音"},"show_translation":{"description":"允许翻译歌词出现在第二行。","label":"显示翻译"},"splayer_api_url":{"description":"SPlayer 本地服务地址，默认 http://127.0.0.1:25884。直接读取 SPlayer 当前加载的完整歌词数据。","label":"SPlayer 接口地址"},"spotify_access_token":{"description":"可选的 Spotify access token，优先于 sp_dc。","label":"Spotify 访问令牌"},"spotify_sp_dc":{"description":"用户手动填写的 Spotify 网页 Cookie。它会以普通插件设置保存，但不会写入日志。","label":"Spotify sp_dc"},"text_alignment":{"description":"在固定歌词宽度内对齐歌词和歌曲信息。","label":"文字对齐","options":{"center":"居中","left":"左对齐","right":"右对齐"}},"translation_language":{"description":"词源支持时优先请求的翻译语言。","label":"歌词翻译语言","options":{"en":"英语","ja":"日语","ko":"韩语","zh-hans":"简体中文","zh-hant":"繁体中文"}}},"shortcut":{"label":"打开歌词选择器"},"source_label":"歌词来源","title":"歌词"},"mihomo-control":{"notify":{"connections_closed":"所有连接已关闭","delay_all_done":"全部策略组测试完成","delay_body":"已测试 {count} 个节点，选中 {delay} 毫秒","delay_body_no_selection":"已测试 {count} 个节点","delay_done":"延迟测试完成","delay_timeout":"所有节点均超时（504）——请检查测试 URL","mode_changed":"Mihomo 模式已更改","proxy_selected":"已选择代理","proxy_selected_body":"{group} → {proxy}","request_failed":"Mihomo 请求失败","restarting":"Mihomo 正在重启","self_test_failed":"Mihomo 自检失败","self_test_failed_body":"请查看 Noctalia 日志或 mihomo.self_test 状态了解详情。","self_test_passed":"Mihomo 自检通过","self_test_passed_body":"策略组排序与服务检查均已通过。","server_delete_last":"至少保留一个服务器配置","server_deleted":"服务器配置已删除","server_invalid":"请检查服务器名称、主机和端口","server_saved":"服务器配置已保存","server_switched":"已切换监控服务器"},"panel":{"connections":"条连接","delay_test":"测试延迟","drag_group":"拖动以重新排序","hidden":"隐藏","members_count":{"one":"{count} 个成员","other":"{count} 个成员"},"memory":"内存","mode_direct":"直连","mode_global":"全局","mode_rule":"规则","no_groups":"未找到策略组。","no_members":"无成员","offline_plain":"{endpoint}","offline_with_error":"{error}","online_plain":"{endpoint}","online_with_version":"{version} · {endpoint}","proxy_groups":"策略组","refresh":"刷新","refresh_tooltip":"刷新数据（右键重新加载插件）","restart":"重启","server":"服务器","server_add":"添加服务器","server_cancel":"取消","server_default":"默认","server_delete":"删除","server_edit":"编辑服务器","server_manage":"管理","server_name":"配置名称","server_save":"保存","server_secret_keep":"留空则保留当前密钥","status_connecting":"连接中","status_offline":"离线","status_online":"在线","test_all":"全部测试","timeout":"超时","title":"Mihomo 控制","traffic":"流量"},"settings":{"allow_insecure_tls":{"description":"控制器使用自签名证书时跳过证书校验。","label":"允许不安全的 TLS"},"host":{"description":"Mihomo 外部控制器的地址或 IP。","label":"主机"},"icon_color":{"description":"可着色 Mihomo 字形的颜色。","label":"图标颜色"},"icon_color_mode":{"description":"根据连接状态为 Mihomo 字形着色，或使用单一自定义颜色。","label":"图标颜色模式","options":{"custom":"自定义","status":"连接状态"}},"icon_size":{"description":"栏图标的像素大小（10–32）。","label":"图标大小"},"label_content":{"description":"选择 Mihomo 图标旁显示的内容。","label":"组件标签","options":{"connections":"连接数","download":"下载速度","latency":"首个策略组延迟","mode":"代理模式","none":"无（仅图标）","proxy":"首个策略组所选代理","traffic":"下载 + 上传","upload":"上传速度"}},"panel_placement":{"description":"选择控制面板在屏幕中央浮动显示，或附着在栏组件旁。","label":"面板位置","options":{"attached":"附着","floating":"浮动"}},"port":{"description":"Mihomo 外部控制器的端口（默认为 9090）。","label":"端口"},"refresh_interval":{"description":"状态轮询间隔（1–60 秒）。","label":"刷新间隔"},"secret":{"description":"Mihomo 配置中的外部控制器密钥；未启用认证时留空。","label":"密钥"},"test_url":{"description":"延迟测试使用的 URL；留空则使用各策略组配置的测试 URL。","label":"测试 URL"},"use_https":{"description":"使用 https:// 而非 http://（external-controller-tls 或 TLS 反向代理）。","label":"HTTPS"}},"shortcut":{"label":"Mihomo：{mode}","mode_direct":"直连","mode_global":"全局","mode_rule":"规则"},"widget":{"connections":"连接数","connections_short":"{count} 个连接","down":"下载","latency_timeout":"超时","mode":"模式","status":"状态","status_connecting":"连接中","status_offline_plain":"离线","status_offline_with_error":"离线 — {error}","status_online_plain":"在线","status_online_with_version":"在线 · {version}","up":"上传"}},"niri-ribbon":{"settings":{"bar_color":{"description":"Ribbon 轨道 (非可视区域) 的颜色。","label":"背景色"},"gaps":{"description":"niri 配置中 layout.gaps 的值 (逻辑像素), 用于精确推算画布总宽和内边距。","label":"布局间距"},"radius":{"description":"视口高亮区的圆角半径 (逻辑像素)。","label":"圆角"},"thickness":{"description":"Ribbon 的垂直厚度 (逻辑像素)。","label":"厚度"},"viewport_color":{"description":"当前可视区域高亮的颜色。","label":"视口色"},"viewport_model":{"description":"视口位置的推算方式, 应与 niri 的 center-focused-column 设置一致。Fit (默认) 对应 niri 默认的 never; Center 对应 always。","label":"视口推算模型","option":{"center":"Center (niri: always)","fit":"Fit (niri: never)"}}}},"phone-connect":{"action":{"accept":"接受","browse":"浏览","clipboard":"剪贴板","pair":"配对","ping":"Ping","refresh":"刷新","reject":"拒绝","ring":"响铃","share":"分享","sms":"短信","switch":"切换设备","unpair":"取消配对"},"error":{"accept_failed":"接受配对失败","browse_failed":"浏览设备失败","cli_failed":"命令失败","clipboard_failed":"发送剪贴板失败","no_backend":"无后端","pairing_failed":"配对失败","pick_failed":"无法打开文件选择器","pick_in_progress":"文件选择器已打开","ping_failed":"发送 Ping 失败","reject_failed":"拒绝配对失败","ring_failed":"响铃失败","share_failed":"分享失败","unpair_failed":"取消配对失败"},"media":{"mute":"静音","next":"下一首","pause":"暂停","play":"播放","previous":"上一首","stop":"停止","unmute":"恢复音量"},"notify":{"clipboard_sent":"剪贴板已发送","file_shared":"正在发送文件到设备...","opening_browser":"正在打开文件浏览器...","paired":"设备已配对","pairing_sent":"已发送配对请求","ping_sent":"已向 {name} 发送 Ping","ringing":"正在响铃 {name}...","sms_sent":"短信已发送","unpaired":"设备已取消配对"},"panel":{"battery":"电量","close":"关闭","devices_connected":"已连接 {connected}","empty":"未找到设备。请在 KDE Connect 中配对设备。","image_path":"自定义图片","network":"网络","no_media":"无媒体播放","now_playing":"正在播放","paired":"已配对","pairing":"配对","sms":"发送短信","sms_dest":"手机号码","sms_msg":"短信内容","sms_send":"发送","title":"手机连接","type":"类型","unknown":"未知","unpaired":"未配对"},"settings":{"battery_display":{"description":"选择栏部件显示电池图标、百分比、两者或都不显示。","hidden":"隐藏","icon":"仅图标","icon_and_percent":"图标和百分比","label":"电池显示","percent":"仅百分比"},"custom_image":{"description":"选中设备后在此设置自定义头像图片。留空恢复默认图标。","label":"设备头像"},"device_alias":{"description":"当前选中设备的自定义显示名称。","label":"设备别名"},"enable_charging_animation":{"description":"设备充电时高亮显示栏部件。","label":"充电高亮"},"enable_clipboard_action":{"description":"显示一键发送剪贴板到设备的快捷操作。","label":"显示剪贴板操作"},"language":{"description":"显示语言。","en":"English","label":"界面语言","zh-hans":"简体中文"},"migrated":{"description":"直接在面板中修改：点击设备头像更换图片，点击设备名称重命名。每台设备独立，自动保存。","label":"设备头像与名称"},"panel_placement":{"attached":"贴合栏","description":"详情面板的弹出方式。","floating":"悬浮居中","label":"面板弹出方式","widget":"部件下方悬浮"},"show_device_name":{"description":"在栏部件中显示选中设备的名称或别名。","label":"显示设备名称"},"state_update_interval":{"description":"自动刷新设备状态的间隔秒数。0 表示禁用。","label":"状态刷新间隔"}},"status":{"connected":"已连接","no_backend":"KDE Connect 未运行","no_devices":"无设备","not_paired":"未配对","offline":"离线","unavailable":"不可用"}},"phone-operate":{"action":{"browse":"浏览","cast":"投屏","clipboard":"剪贴板","connect":"Connect","disconnect":"断开","pair":"配对","ping":"Ping","refresh":"刷新","ring":"响铃","share":"分享","stop":"停止","unpair":"取消配对","usb":"回 USB"},"error":{"browse_failed":"浏览设备失败","cast_failed":"投屏失败","cli_failed":"命令失败","conn_failed":"无线连接失败","conn_hint":"无法连接调试端口。请在手机「无线调试」主界面（不是配对弹窗）查看『IP 地址和端口』一行显示的端口，填入「调试端口」输入框后重试。","device_offline":"设备已配对但处于离线状态（offline）。请保持手机亮屏、在「无线调试」主界面确认『IP 地址和端口』，把该端口填入「调试端口」框后重试。","device_offline_hint":"Device is offline.","no_device":"No device connected","no_device_hint":"Connect a device first.","pair_failed":"配对失败","pick_failed":"无法打开文件选择器","pick_in_progress":"文件选择器已打开","share_failed":"分享失败"},"media":{"mute":"静音","next":"下一首","pause":"暂停","play":"播放","previous":"上一首","stop":"停止","unmute":"恢复音量"},"notify":{"browse_failed":"打开浏览失败","disconnected":"已断开连接：{name}","file_shared":"正在发送文件到设备...","network_recovered":"网络已恢复，正在重新自动连接","opening_browser":"正在打开文件浏览器...","pair_success":"配对成功","retry_exhausted":"连接 {name} 失败，3 次重试均未成功，请确认手机在线","sms_sent":"短信已发送","started":"已开始投屏：{name}","stopped":"已停止投屏：{name}","uninstalled":"插件已卸载，正在运行的 scrcpy 窗口请手动关闭"},"panel":{"adb_hint":"ADB 设备——通过操作面板投屏。","available":"AVAILABLE","bit_rate":"码率","cancel":"取消","cast_offline_hint":"设备未被 adb 识别。请检查 USB 连接或无线调试，然后重试。","clear":"清空","close":"关闭","confirm":"确定","contact_name":"联系人姓名","debug_port_placeholder":"调试端口（默认 5555）","devices":"DEVICES","devices_connected":"已连接 {connected}","edit_name":"编辑姓名","empty":"未找到设备。请在 KDE Connect 中配对设备。","fav_add_tooltip":"收藏此号码","fav_empty":"暂无常用联系人","max_fps":"帧率","max_size":"分辨率","no_matches":"无匹配联系人","no_media":"无媒体播放","now_playing":"正在播放","pair_add":"配对新无线设备","pair_addr_placeholder":"IP:端口（如 192.168.1.3:39001）","pair_btn":"配对 (ADB)","pair_code_placeholder":"配对码（6 位数字）","pair_first_hint":"手机「无线调试」主界面：调试端口在『IP 地址和端口』一行。找不到就留 5555——插件会自动再试 5555 和配对端口。配对端口和 6 位配对码在「使用配对码配对设备」弹窗里。","pair_first_title":"首次无线连接设置","pair_hint":"**配对端口**为一次性——用 `adb pair` 配 6 位配对码。**调试端口**用于长期 `adb connect` / scrcpy。配对后用调试端口连接。","pair_missing":"请先输入配对端口和配对码。","pair_port_placeholder":"配对端口","params":"投屏参数","params_hint":"参数仅对选中设备生效","phone_placeholder":"1234567890","preset_custom":"自定义","preset_hd":"高清","preset_perf":"性能","preset_save":"省电","record":"录屏","record_desc":"将投屏录制到文件","sms":"发送短信","sms_dest":"手机号码","sms_msg":"短信内容","sms_send":"发送","start_cast":"开始投屏","turn_screen_off":"熄屏","turn_screen_off_desc":"手机屏幕熄灭，继续投屏"},"settings":{"battery_display":{"description":"选择栏部件显示电池图标、百分比、两者或都不显示。","hidden":"隐藏","icon":"仅图标","icon_and_percent":"图标和百分比","label":"电池显示","percent":"仅百分比"},"bit_rate":{"description":"视频流码率，单位 Mbps。","label":"码率 (Mbps)"},"enable_charging_animation":{"description":"设备充电时高亮显示栏部件。","label":"充电高亮"},"enable_clipboard_action":{"description":"显示一键发送剪贴板到设备的快捷操作。","label":"显示剪贴板操作"},"language":{"description":"显示语言。","en":"English","label":"界面语言","zh-hans":"简体中文"},"max_fps":{"description":"限制视频帧率上限。","label":"最大帧率"},"max_size":{"description":"限制视频流长边像素数。","label":"最大分辨率"},"migrated":{"description":"直接在面板中修改：点击设备头像更换图片，点击设备名称重命名。每台设备独立，自动保存。","label":"设备头像与名称"},"panel_placement":{"attached":"贴合栏","description":"详情面板的弹出方式。","floating":"悬浮居中","label":"面板弹出方式","widget":"部件下方悬浮"},"poll_interval":{"description":"扫描设备的频率。","label":"轮询间隔 (ms)"},"record":{"description":"将屏幕录制到文件。","label":"录屏"},"record_max_files":{"description":"保留的录屏文件最大数量，超出时删除最旧的。","label":"最大录屏数"},"show_device_name":{"description":"在栏部件中显示选中设备的名称或别名。","label":"显示设备名称"},"state_update_interval":{"description":"自动刷新设备状态的间隔秒数。0 表示禁用。","label":"状态刷新间隔"},"turn_screen_off":{"description":"投屏时关闭手机屏幕。","label":"熄屏投屏"}},"status":{"connected":"已连接","disconnected":"Disconnected","mirroring":"投屏中","no_backend":"KDE Connect 未运行","no_devices":"无设备","offline":"离线"}},"thunderbird-companion":{"notify":{"command_failed":"Thunderbird 操作失败","launch_failed":"无法启动 Thunderbird","new_mail":"新邮件","new_mail_body":"{sender}：{subject}","setup_failed":"无法启动桥接设置"},"panel":{"archive":"归档","bridge_incompatible_body":"已安装的配套组件与此插件不兼容。请重新安装随附的桥接，然后安装准备好的 XPI。","bridge_incompatible_title":"更新 Thunderbird 配套组件","close":"关闭","compose":"撰写","copy_package_path":"复制扩展包路径","empty":"收件箱已清空","empty_body":"Thunderbird 未报告未读邮件。","last_sync":"上次同步 {time}","mark_all_read":"全部标为已读","mark_read":"标为已读","no_subject":"（无主题）","offline_body":"请打开 Thunderbird，并确认配套扩展已启用。下方仍会显示缓存的邮件。","open_addons":"打开附加组件","open_message":"打开邮件","open_package_folder":"打开扩展包文件夹","open_thunderbird":"打开 Thunderbird","refresh":"刷新","reply":"回复","retry_setup":"重试设置","setup_body":"安装随附的本地桥接并构建配套扩展。","setup_bridge":"设置桥接","setup_error_title":"桥接设置失败","setup_ready_body":"点击下方“打开扩展包文件夹”，然后将 thunderbird-companion.xpi 拖入 Thunderbird 附加组件页面并批准权限。","setup_ready_title":"配套扩展包已准备就绪","setup_running":"正在准备配套组件…","setup_running_body":"正在安装随附的本地主机并构建 Thunderbird 扩展包。","setup_title":"连接 Thunderbird","status_bridge_incompatible":"需要更新配套组件","status_offline":"Thunderbird 桥接已离线","status_online":"已连接","status_setup_required":"需要设置桥接","status_stale":"上次快照已过期","status_thunderbird_missing":"未找到 Thunderbird 命令","title":"Thunderbird","unknown_folder":"未知文件夹","unknown_sender":"未知发件人","unread":{"one":"{count} 封未读邮件","other":"{count} 封未读邮件"},"update_bridge":"更新配套组件"},"settings":{"glyph":{"description":"栏中显示的图标。","label":"组件图标"},"max_messages":{"description":"面板中显示的最近未读邮件数量上限。","label":"面板邮件数量"},"notify_new":{"description":"出现新的未读邮件时显示 Noctalia 通知。默认关闭，以免与 Thunderbird 通知重复。","label":"新邮件通知"},"thunderbird_command":{"description":"用于启动 Thunderbird 的命令。使用包装脚本或非标准安装时可在此修改。","label":"Thunderbird 命令"}},"widget":{"bridge_incompatible":"需要更新 Thunderbird 配套组件","compose":"撰写新邮件","no_unread":"没有未读邮件","offline":"Thunderbird 桥接已离线","setup_required":"需要设置 Thunderbird 桥接","thunderbird_missing":"未找到 Thunderbird 命令","unread":{"one":"{count} 封未读邮件","other":"{count} 封未读邮件"}}}},"zh-Hant":{"github-kanban":{"action":{"close":"關閉","mark_read":"標示為已讀","mark_visible_read":"將目前清單標示為已讀","marking_read":"正在標示為已讀…","open":"在 GitHub 上開啟","refresh":"重新整理"},"contributions":{"best_streak":"最長連續貢獻","current_streak":"目前連續貢獻","last_year":{"one":"過去一年共 {count} 次貢獻","other":"過去一年共 {count} 次貢獻"},"selected_day":{"one":"{date} · {count} 次貢獻","other":"{date} · {count} 次貢獻"},"this_year":"今年","today":"今天"},"events":{"activity":"動態","branch_created":"建立了分支","branch_deleted":"刪除了分支","collaborators_updated":"更新了協作者","commit_comment":"對提交發表了留言","created":"建立了內容","deleted":"刪除了內容","forked":"Fork 了儲存庫","issue_comment":"對 Issue 發表了留言","issue_updated":"更新了 Issue","made_public":"設為公開","pull_request_reviewed":"審查了 PR","pull_request_updated":"更新了 PR","pushed":"推送了變更","release":"發佈版本","release_published":"發佈了新版本","repository_created":"建立了儲存庫","review_comment":"發表了審查留言","starred":"已加星","summary":{"created_branch":"建立了 {ref} 分支","created_reference":"建立了 {ref} 參照","created_repository":"建立了此儲存庫","created_tag":"建立了 {ref} 標籤","deleted_branch":"刪除了 {ref} 分支","deleted_reference":"刪除了 {ref} 參照","deleted_repository":"刪除了此儲存庫","deleted_tag":"刪除了 {ref} 標籤","pushed_commits":"推送了新提交","starred_repository":"為此儲存庫加上星號","updated_branch":"更新了 {ref} 分支"},"tag_created":"建立了標籤","tag_deleted":"刪除了標籤","wiki_updated":"更新了 Wiki"},"fallback":{"github":"GitHub","github_activity":"GitHub 動態","github_repository":"GitHub 儲存庫","github_user":"GitHub 使用者","repository":"儲存庫","untitled":"無標題"},"filter":{"all":"全部","assigned":"已指派","assigned_to_me":"指派給我","attention":"需要關注","closed":"已關閉","created_by_me":"由我建立","open":"未關閉","read":"已讀","repositories":"儲存庫","review_requested":"請求我審查","unread":"未讀","updates":"更新","users":"使用者"},"github":{"reason":{"assign":"被指派","author":"作者","ci_activity":"CI 動態","comment":"留言","invitation":"邀請","manual":"手動訂閱","mention":"被提及","review_requested":"收到審查請求","security_alert":"安全性警示","state_change":"狀態變更","subscribed":"已訂閱","team_mention":"團隊被提及"},"status":{"action_required":"需要採取動作","cancelled":"已取消","closed":"已關閉","completed":"已完成","failure":"失敗","in_progress":"進行中","neutral":"中立","open":"未關閉","pending":"待處理","queued":"佇列中","skipped":"已略過","stale":"已過時","success":"成功","timed_out":"已逾時"}},"heatmap":{"less":"少","more":"多"},"panel":{"actions":"Actions","activity":"動態","contributions":"貢獻","feed":"追蹤","issues":"Issue","notifications":"通知","overview":"總覽","profile":"個人資料","pull_requests":"PR","repositories":"儲存庫","reviews":"審查","show_more":{"one":"再顯示 {count} 項 · 剩餘 {remaining} 項","other":"再顯示 {count} 項 · 剩餘 {remaining} 項"},"title":"GitHub Kanban"},"profile":{"contributions":"貢獻","followers":"追蹤者","following":"追蹤","repositories":"儲存庫"},"repository":{"forks":"Fork {count}","stars":"★ {count}"},"settings":{"activity":{"history_days":{"description":"僅顯示最近指定天數內的 PR、審查、Issue 和 Actions。","label":"動態 · 歷史範圍（天）"},"issue_default_filter":{"description":"開啟動態面板時預設選取的 Issue 來源篩選條件。","label":"動態 · 預設 Issue 篩選"},"pr_default_filter":{"description":"開啟動態面板時預設選取的 PR 來源篩選條件。","label":"動態 · 預設 PR 篩選"},"show":{"description":"顯示動態面板分頁。","label":"動態 · 顯示面板"}},"appearance":{"activity_repository_emphasis":{"description":"在動態項目中凸顯儲存庫名稱。","label":"外觀 · 動態 · 凸顯儲存庫名稱"},"activity_show_status_badges":{"description":"在動態項目上顯示狀態徽章。","label":"外觀 · 動態 · 狀態徽章"},"activity_show_type_icons":{"description":"顯示代表動態項目類型的圖示。","label":"外觀 · 動態 · 類型圖示"},"appearance_animations":{"description":"在面板卡片上啟用即時游標停留回饋。","label":"外觀 · 動畫"},"appearance_avatar_shape":{"description":"選擇個人大頭貼的形狀。","label":"外觀 · 大頭貼形狀","options":{"circle":"圓形","rounded":"圓角"}},"appearance_avatar_size":{"description":"選擇個人大頭貼的大小。","label":"外觀 · 大頭貼大小","options":{"large":"大","medium":"中","small":"小"}},"appearance_card_background":{"description":"選擇透明、淺色調或較不透明的半透明佈景主題背景。","label":"外觀 · 卡片背景","options":{"solid":"濃色","tinted":"淺色調","transparent":"透明"}},"appearance_card_border":{"description":"選擇卡片邊框的顯示方式。","label":"外觀 · 卡片邊框","options":{"accent":"強調色","none":"無","subtle":"淡色"}},"appearance_card_radius":{"description":"卡片的圓角程度。","label":"外觀 · 卡片圓角半徑"},"appearance_card_spacing":{"description":"卡片之間的間距。","label":"外觀 · 卡片間距"},"appearance_density":{"description":"選擇整體間距和資訊密度。","label":"外觀 · 內容密度","options":{"comfortable":"寬鬆","compact":"緊密","standard":"標準"}},"appearance_font_scale":{"description":"縮放整個面板的文字。","label":"外觀 · 字型縮放"},"appearance_hover_effect":{"description":"選擇游標停留在卡片上時的視覺效果。","label":"外觀 · 游標停留效果","options":{"background":"背景","border":"邊框","none":"無"}},"appearance_icon_style":{"description":"選擇面板圖示的外觀。","label":"外觀 · 圖示樣式","options":{"color":"彩色","muted":"柔和色","theme":"佈景主題色"}},"appearance_secondary_text":{"description":"選擇次要文字的顯示方式。","label":"外觀 · 次要文字","options":{"full":"完整顯示","hidden":"隱藏","truncate":"截短"}},"appearance_show_empty_illustration":{"description":"區塊沒有項目時顯示插圖。","label":"外觀 · 空白狀態插圖"},"appearance_time_format":{"description":"選擇日期和時間的顯示格式。","label":"外觀 · 時間格式","options":{"iso":"ISO 8601","local":"本機時間","relative":"相對時間"}},"following_content_lines":{"description":"追蹤事件最多顯示的內容行數。","label":"外觀 · 追蹤 · 內容行數"},"following_event_spacing":{"description":"追蹤檢視中事件之間的間距。","label":"外觀 · 追蹤 · 事件間距"},"heatmap_cell_gap":{"description":"貢獻日曆儲存格之間的間距。","label":"外觀 · 熱度圖 · 儲存格間距"},"heatmap_cell_radius":{"description":"貢獻日曆儲存格的圓角程度。","label":"外觀 · 熱度圖 · 儲存格圓角半徑"},"heatmap_cell_size":{"description":"貢獻日曆中每個儲存格的大小。","label":"外觀 · 熱度圖 · 儲存格大小"},"heatmap_color_mode":{"description":"選擇貢獻熱度圖的色彩來源。","label":"外觀 · 熱度圖 · 配色模式","options":{"custom":"自訂","github":"GitHub","noctalia":"Noctalia 佈景主題"}},"heatmap_custom_level_0":{"description":"使用 #RRGGBB 格式的十六進位色碼。留空則跟隨佈景主題。","label":"外觀 · 熱度圖 · 自訂等級 0"},"heatmap_custom_level_1":{"description":"使用 #RRGGBB 格式的十六進位色碼。留空則跟隨佈景主題。","label":"外觀 · 熱度圖 · 自訂等級 1"},"heatmap_custom_level_2":{"description":"使用 #RRGGBB 格式的十六進位色碼。留空則跟隨佈景主題。","label":"外觀 · 熱度圖 · 自訂等級 2"},"heatmap_custom_level_3":{"description":"使用 #RRGGBB 格式的十六進位色碼。留空則跟隨佈景主題。","label":"外觀 · 熱度圖 · 自訂等級 3"},"heatmap_custom_level_4":{"description":"使用 #RRGGBB 格式的十六進位色碼。留空則跟隨佈景主題。","label":"外觀 · 熱度圖 · 自訂等級 4"},"heatmap_empty_style":{"description":"為沒有貢獻的日期使用標準淡邊框，或更醒目的外框。","label":"外觀 · 熱度圖 · 空白儲存格樣式","options":{"background":"背景","outline":"外框"}},"heatmap_levels":{"description":"選擇貢獻強度的等級數量。","label":"外觀 · 熱度圖 · 活躍程度等級","options":{"4":"4 級","5":"5 級","five":"5 級","four":"4 級"}},"heatmap_show_legend":{"description":"顯示貢獻強度圖例。","label":"外觀 · 熱度圖 · 顯示強度圖例"},"heatmap_show_months":{"description":"在貢獻日曆上方顯示月份標籤。","label":"外觀 · 熱度圖 · 顯示月份標籤"},"heatmap_show_total":{"description":"顯示年度貢獻總數。","label":"外觀 · 熱度圖 · 顯示貢獻總數"},"heatmap_show_weekdays":{"description":"在貢獻日曆旁顯示星期標籤。","label":"外觀 · 熱度圖 · 顯示星期標籤"},"notification_read_opacity":{"description":"已讀通知卡片使用的不透明度。","label":"外觀 · 通知 · 已讀卡片不透明度"},"notification_unread_border":{"description":"以邊框凸顯未讀通知卡片。","label":"外觀 · 通知 · 未讀卡片邊框"},"notification_unread_dot":{"description":"在未讀通知卡片上顯示圓點。","label":"外觀 · 通知 · 未讀狀態圓點"},"overview_stats_layout":{"description":"選擇總覽統計資料的排列方式。","label":"外觀 · 總覽 · 統計配置","options":{"columns4":"四欄","compact":"緊密","grid":"格狀"}},"repositories_layout":{"description":"選擇儲存庫卡片的排列方式。","label":"外觀 · 儲存庫 · 儲存庫配置","options":{"grid":"格狀","list":"清單"}},"repositories_show_language":{"description":"顯示每個儲存庫的主要程式語言。","label":"外觀 · 儲存庫 · 顯示儲存庫語言"},"repositories_show_stats":{"description":"顯示儲存庫的星號數和 fork 數。","label":"外觀 · 儲存庫 · 顯示儲存庫統計"}},"following":{"card_max_height":{"description":"每張分組追蹤卡片的高度上限，單位為像素。","label":"追蹤 · 卡片高度上限"},"events_per_user":{"description":"向 GitHub 請求的每人近期公開事件數量上限。","label":"追蹤 · 每人事件數"},"hide_bots":{"description":"隱藏 GitHub 機器人帳號的事件。","label":"追蹤 · 隱藏機器人"},"history_days":{"description":"僅顯示最近指定天數內的追蹤動態。","label":"追蹤 · 歷史範圍（天）"},"ignored_repositories":{"description":"要排除的儲存庫，格式為 owner/name，比對時不區分大小寫。","label":"追蹤 · 忽略的儲存庫"},"ignored_users":{"description":"要從追蹤中排除的 GitHub 登入名稱，比對時不區分大小寫。","label":"追蹤 · 忽略的使用者"},"include_prereleases":{"description":"包含 nightly 和候選發佈版等預先發佈版本。","label":"追蹤 · 包含預先發佈版本"},"show":{"description":"顯示追蹤面板分頁。","label":"追蹤 · 顯示面板"},"starred_repository_limit":{"description":"檢查發佈版本的近期已加星儲存庫數量上限。","label":"追蹤 · 掃描的已加星儲存庫數"},"types":{"forks":"追蹤 · 顯示 fork","issues":"追蹤 · 顯示 Issue 和留言","other":"追蹤 · 顯示其他事件","pull_requests":"追蹤 · 顯示 PR 和審查","pushes":"追蹤 · 顯示推送","releases":"追蹤 · 顯示發佈版本","stars":"追蹤 · 顯示星號"},"user_limit":{"description":"擷取公開事件的已追蹤使用者人數上限。","label":"追蹤 · 擷取動態的人數"}},"general":{"bar_display_mode":{"description":"選擇狀態列元件顯示 GitHub 圖示、未讀數，或同時顯示兩者。","label":"一般 · 狀態列顯示","options":{"both":"圖示和未讀數","count":"未讀數","icon":"圖示"}},"default_dashboard":{"description":"開啟 GitHub Kanban 時顯示的面板。","label":"一般 · 預設面板"}},"notifications":{"default_filter":{"description":"開啟通知面板時預設選取的狀態篩選條件。","label":"通知 · 預設狀態篩選"},"history_days":{"label":"通知 · 歷史範圍（天）"},"mark_read_on_open":{"description":"在同步模式下，成功啟動瀏覽器開啟程式後，將該則未讀通知在 GitHub 上標示為已讀。","label":"通知 · 開啟通知時標示為已讀"},"refresh_interval":{"description":"同步模式獨立於面板重新整理通知的時間間隔。","label":"通知 · 重新整理間隔","options":{"one_twenty":"每 120 秒","sixty":"每 60 秒","three_hundred":"每 300 秒"}},"refresh_on_open":{"description":"在同步模式下，開啟面板時重新整理通知。","label":"通知 · 開啟面板時重新整理"},"show":{"description":"顯示通知面板分頁。","label":"通知 · 顯示面板"},"sync_mode":{"description":"舊模式下通知為唯讀，重新整理間隔與面板一致。同步模式獨立重新整理通知，並可在 GitHub 上將通知標示為已讀。","label":"通知 · 同步模式","options":{"legacy":"舊模式（唯讀）","synced":"同步模式"}}},"overview":{"show":{"description":"顯示總覽面板分頁。","label":"總覽 · 顯示面板"}},"refresh_interval":{"description":"GitHub Kanban 重新整理 GitHub 資料的時間間隔。","label":"重新整理間隔","options":{"fifteen":"每 15 分鐘","five":"每 5 分鐘","thirty":"每 30 分鐘"}},"repositories":{"show":{"description":"顯示儲存庫面板分頁。","label":"儲存庫 · 顯示面板"}}},"status":{"auth_error":"GitHub CLI 需要登入驗證：gh auth login -h github.com","cli_start_failed":"無法啟動 GitHub CLI。","empty":"目前沒有內容。","gh_request_failed":"GitHub CLI 請求失敗。","invalid_json":"GitHub 傳回了無效的 JSON。","loading":"正在載入 GitHub 資料…","missing_gh":"需要安裝 GitHub CLI（gh）。","missing_xdg_open":"需要 xdg-open 才能開啟 GitHub。","notification_changed":"此通知有了更新。請重新整理並閱讀新內容後，再將其標示為已讀。","notifications_refreshing":"正在重新整理通知…","preparing_contribution_calendar":"正在準備貢獻日曆…","request_error":"無法重新整理部分 GitHub 資料。","stale":"正在顯示最新的快取資料。","unexpected_data":"GitHub 傳回了非預期的資料。"},"time":{"days_ago":{"one":"{count} 天前","other":"{count} 天前"},"hours_ago":{"one":"{count} 小時前","other":"{count} 小時前"},"just_now":"剛剛","minutes_ago":{"one":"{count} 分鐘前","other":"{count} 分鐘前"}},"widget":{"tooltip":{"one":"GitHub Kanban\n{count} 則未讀通知","other":"GitHub Kanban\n{count} 則未讀通知"}}}}}