feat(wallpaper): add separate selection for light & dark mode

This commit is contained in:
Lysec
2026-03-29 12:53:06 +02:00
parent 3dd46fbd6e
commit deb79261dd
25 changed files with 593 additions and 191 deletions
+7 -5
View File
@@ -834,8 +834,8 @@
"appearance-density-label": "Leistendichte", "appearance-density-label": "Leistendichte",
"appearance-desc": "Erscheinungsbild und Position der Leiste anpassen.", "appearance-desc": "Erscheinungsbild und Position der Leiste anpassen.",
"appearance-display-mode-description": "Wählen Sie, wann die Leiste sichtbar ist.", "appearance-display-mode-description": "Wählen Sie, wann die Leiste sichtbar ist.",
"appearance-enable-exclusion-zone-inset-description": "Reduziere die Ausschlusszone um 1 physisches Pixel, damit bündige Fenster perfekt unter den Rand der Bar überlappen.", "appearance-enable-exclusion-zone-inset-description": "Reduziere die Ausschlusszone um 1 physisches Pixel, damit bündige Fenster perfekt unter den Rand der Leiste überlappen.",
"appearance-enable-exclusion-zone-inset-label": "Eingezogener Ausschlussbereich", "appearance-enable-exclusion-zone-inset-label": "Innenabstand der Ausschlusszone",
"appearance-floating-description": "Leiste als schwebende 'Pille' anzeigen.", "appearance-floating-description": "Leiste als schwebende 'Pille' anzeigen.",
"appearance-floating-label": "Schwebende Leiste", "appearance-floating-label": "Schwebende Leiste",
"appearance-font-scale-description": "Die Skalierung der Schriftgröße für Text in der Leiste anpassen.", "appearance-font-scale-description": "Die Skalierung der Schriftgröße für Text in der Leiste anpassen.",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Templates für vordefinierte Schemata generieren", "predefined-generate-templates-label": "Templates für vordefinierte Schemata generieren",
"predefined-title": "Vordefinierte Farbschemata", "predefined-title": "Vordefinierte Farbschemata",
"sync-gsettings-description": "Das Systemdesign an die aktive helle oder dunkle Variante anpassen.", "sync-gsettings-description": "Das Systemdesign an die aktive helle oder dunkle Variante anpassen.",
"sync-gsettings-label": "Systemdesign Synchronisieren", "sync-gsettings-label": "Systemdesign synchronisieren",
"templates-desc": "Farben auf externe Anwendungen anwenden.", "templates-desc": "Farben auf externe Anwendungen anwenden.",
"templates-filter-description": "Vorlagen aus einer bestimmten Kategorie anzeigen.", "templates-filter-description": "Vorlagen aus einer bestimmten Kategorie anzeigen.",
"templates-filter-label": "Nach Kategorie filtern", "templates-filter-label": "Nach Kategorie filtern",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Position des Starters", "appearance-launcher-position-label": "Position des Starters",
"appearance-launcher-position-start": "Start", "appearance-launcher-position-start": "Start",
"appearance-launcher-use-distro-logo-description": "Verwende das Logo deiner Distribution als Dock-Launcher-Symbol.", "appearance-launcher-use-distro-logo-description": "Verwende das Logo deiner Distribution als Dock-Launcher-Symbol.",
"appearance-launcher-use-distro-logo-label": "Distro-Logo anstelle des Icons verwenden.", "appearance-launcher-use-distro-logo-label": "Distro-Logo anstelle des Icons verwenden",
"appearance-pinned-static-description": "Gepinnte App-Symbole immer in statischer Reihenfolge nach links schieben.", "appearance-pinned-static-description": "Gepinnte App-Symbole immer in statischer Reihenfolge nach links schieben.",
"appearance-pinned-static-label": "Statische angeheftete Apps", "appearance-pinned-static-label": "Statische angeheftete Apps",
"appearance-position-description": "Wählen Sie, wo das Dock auf dem Bildschirm angezeigt wird.", "appearance-position-description": "Wählen Sie, wo das Dock auf dem Bildschirm angezeigt wird.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Kein Ton, Pop-up wird trotzdem angezeigt und ist im Verlauf.", "rules-action-mute-desc": "Kein Ton, Pop-up wird trotzdem angezeigt und ist im Verlauf.",
"rules-add": "Regel hinzufügen", "rules-add": "Regel hinzufügen",
"rules-delete": "Regel löschen", "rules-delete": "Regel löschen",
"rules-description": "App-Namen oder Inhalt abgleichen. Erster Treffer gewinnt.", "rules-description": "App-Namen oder Inhalt abgleichen. Regeln werden der Reihe nach geprüft, und die erste Übereinstimmung wird angewendet.",
"rules-edit": "Regel bearbeiten", "rules-edit": "Regel bearbeiten",
"rules-label": "Filterregeln", "rules-label": "Filterregeln",
"rules-pattern-label": "Muster", "rules-pattern-label": "Muster",
@@ -2057,6 +2057,8 @@
"apikey-label": "API-Schlüssel", "apikey-label": "API-Schlüssel",
"apikey-managed-by-env": "Verwaltet über die Umgebungsvariable NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Verwaltet über die Umgebungsvariable NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Geben Sie Ihren Wallhaven API-Schlüssel ein", "apikey-placeholder": "Geben Sie Ihren Wallhaven API-Schlüssel ein",
"appearance-dark-tab": "Dunkel",
"appearance-light-tab": "Hell",
"apply-all-monitors-description": "Ausgewähltes Hintergrundbild auf alle Monitore gleichzeitig anwenden.", "apply-all-monitors-description": "Ausgewähltes Hintergrundbild auf alle Monitore gleichzeitig anwenden.",
"apply-all-monitors-label": "Auf alle Monitore anwenden", "apply-all-monitors-label": "Auf alle Monitore anwenden",
"categories-anime": "Anime", "categories-anime": "Anime",
+3 -1
View File
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "No sound, still shows popup and in history.", "rules-action-mute-desc": "No sound, still shows popup and in history.",
"rules-add": "Add rule", "rules-add": "Add rule",
"rules-delete": "Delete rule", "rules-delete": "Delete rule",
"rules-description": "Match app name or content. First match wins.", "rules-description": "Match app name or content. Rules are checked in order, and the first match is applied.",
"rules-edit": "Edit rule", "rules-edit": "Edit rule",
"rules-label": "Filter rules", "rules-label": "Filter rules",
"rules-pattern-label": "Pattern", "rules-pattern-label": "Pattern",
@@ -2057,6 +2057,8 @@
"apikey-label": "API Key", "apikey-label": "API Key",
"apikey-managed-by-env": "Managed via NOCTALIA_WALLHAVEN_API_KEY environment variable.", "apikey-managed-by-env": "Managed via NOCTALIA_WALLHAVEN_API_KEY environment variable.",
"apikey-placeholder": "Enter your Wallhaven API Key", "apikey-placeholder": "Enter your Wallhaven API Key",
"appearance-dark-tab": "Dark",
"appearance-light-tab": "Light",
"apply-all-monitors-description": "Apply the selected wallpaper to all monitors.", "apply-all-monitors-description": "Apply the selected wallpaper to all monitors.",
"apply-all-monitors-label": "Apply to all monitors", "apply-all-monitors-label": "Apply to all monitors",
"categories-anime": "Anime", "categories-anime": "Anime",
+3 -3
View File
@@ -1217,8 +1217,6 @@
"profile-tooltip": "Profile picture", "profile-tooltip": "Profile picture",
"reverse-scrolling-description": "Reverse the interpreted scroll direction", "reverse-scrolling-description": "Reverse the interpreted scroll direction",
"reverse-scrolling-label": "Reverse scrolling", "reverse-scrolling-label": "Reverse scrolling",
"smooth-scrolling-description": "Animate list scrolling for a smoother wheel experience.",
"smooth-scrolling-label": "Smooth scrolling",
"screen-corners-desc": "Customize screen corner rounding and visual effects.", "screen-corners-desc": "Customize screen corner rounding and visual effects.",
"screen-corners-radius-description": "Adjust the rounded corners of the screen.", "screen-corners-radius-description": "Adjust the rounded corners of the screen.",
"screen-corners-radius-label": "Screen corners radius", "screen-corners-radius-label": "Screen corners radius",
@@ -1471,7 +1469,7 @@
"rules-action-mute-desc": "No sound, still shows popup and in history.", "rules-action-mute-desc": "No sound, still shows popup and in history.",
"rules-add": "Add rule", "rules-add": "Add rule",
"rules-delete": "Delete rule", "rules-delete": "Delete rule",
"rules-description": "Match app name or content. First match wins.", "rules-description": "Match app name or content. Rules are checked in order, and the first match is applied.",
"rules-edit": "Edit rule", "rules-edit": "Edit rule",
"rules-label": "Filter rules", "rules-label": "Filter rules",
"rules-pattern-label": "Pattern", "rules-pattern-label": "Pattern",
@@ -2059,6 +2057,8 @@
"apikey-label": "API Key", "apikey-label": "API Key",
"apikey-managed-by-env": "Managed via NOCTALIA_WALLHAVEN_API_KEY environment variable.", "apikey-managed-by-env": "Managed via NOCTALIA_WALLHAVEN_API_KEY environment variable.",
"apikey-placeholder": "Enter your Wallhaven API Key", "apikey-placeholder": "Enter your Wallhaven API Key",
"appearance-dark-tab": "Dark",
"appearance-light-tab": "Light",
"apply-all-monitors-description": "Apply the selected wallpaper to all monitors.", "apply-all-monitors-description": "Apply the selected wallpaper to all monitors.",
"apply-all-monitors-label": "Apply to all monitors", "apply-all-monitors-label": "Apply to all monitors",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Densidad de la barra", "appearance-density-label": "Densidad de la barra",
"appearance-desc": "Personaliza la apariencia y posición de la barra.", "appearance-desc": "Personaliza la apariencia y posición de la barra.",
"appearance-display-mode-description": "Elige cuando será visible la barra.", "appearance-display-mode-description": "Elige cuando será visible la barra.",
"appearance-enable-exclusion-zone-inset-description": "Reduce la zona de exclusión en 1 píxel físico para que las ventanas a ras se extiendan perfectamente por debajo del borde de la Bar.", "appearance-enable-exclusion-zone-inset-description": "Reduce la zona de exclusión en 1 píxel físico para que las ventanas a ras se extiendan perfectamente por debajo del borde de la barra.",
"appearance-enable-exclusion-zone-inset-label": "Zona de exclusión interior", "appearance-enable-exclusion-zone-inset-label": "Zona de exclusión interior",
"appearance-floating-description": "Muestra la barra como una 'píldora' flotante.", "appearance-floating-description": "Muestra la barra como una 'píldora' flotante.",
"appearance-floating-label": "Barra flotante", "appearance-floating-label": "Barra flotante",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Generar plantillas para esquemas predefinidos", "predefined-generate-templates-label": "Generar plantillas para esquemas predefinidos",
"predefined-title": "Esquemas de colores predefinidos", "predefined-title": "Esquemas de colores predefinidos",
"sync-gsettings-description": "Adaptar el tema del sistema a la variante clara u oscura activa.", "sync-gsettings-description": "Adaptar el tema del sistema a la variante clara u oscura activa.",
"sync-gsettings-label": "Sincronizar Tema del Sistema", "sync-gsettings-label": "Sincronizar tema del sistema",
"templates-desc": "Aplicar colores a aplicaciones externas.", "templates-desc": "Aplicar colores a aplicaciones externas.",
"templates-filter-description": "Mostrar plantillas de una categoría específica.", "templates-filter-description": "Mostrar plantillas de una categoría específica.",
"templates-filter-label": "Filtrar por categoría", "templates-filter-label": "Filtrar por categoría",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Posición del lanzador", "appearance-launcher-position-label": "Posición del lanzador",
"appearance-launcher-position-start": "Iniciar", "appearance-launcher-position-start": "Iniciar",
"appearance-launcher-use-distro-logo-description": "Usa el logo de tu distribución como icono del Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Usa el logo de tu distribución como icono del Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Usar el logo de la distro en lugar del icono.", "appearance-launcher-use-distro-logo-label": "Usar el logo de la distro en lugar del icono",
"appearance-pinned-static-description": "Siempre empuja los iconos de las aplicaciones ancladas a la izquierda en orden estático.", "appearance-pinned-static-description": "Siempre empuja los iconos de las aplicaciones ancladas a la izquierda en orden estático.",
"appearance-pinned-static-label": "Aplicaciones ancladas estáticas", "appearance-pinned-static-label": "Aplicaciones ancladas estáticas",
"appearance-position-description": "Elige dónde aparece el dock en la pantalla.", "appearance-position-description": "Elige dónde aparece el dock en la pantalla.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Sin sonido, aún muestra la ventana emergente y en el historial.", "rules-action-mute-desc": "Sin sonido, aún muestra la ventana emergente y en el historial.",
"rules-add": "Añadir regla", "rules-add": "Añadir regla",
"rules-delete": "Eliminar regla", "rules-delete": "Eliminar regla",
"rules-description": "Coincidir con el nombre de la aplicación o el contenido. La primera coincidencia gana.", "rules-description": "Coincidir nombre de la aplicación o contenido. Las reglas se comprueban en orden, y la primera coincidencia se aplica.",
"rules-edit": "Editar regla", "rules-edit": "Editar regla",
"rules-label": "Reglas de Filtrado", "rules-label": "Reglas de Filtrado",
"rules-pattern-label": "Patrón", "rules-pattern-label": "Patrón",
@@ -2057,6 +2057,8 @@
"apikey-label": "Clave API", "apikey-label": "Clave API",
"apikey-managed-by-env": "Gestionado a través de la variable de entorno NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Gestionado a través de la variable de entorno NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Introduce tu clave API de Wallhaven", "apikey-placeholder": "Introduce tu clave API de Wallhaven",
"appearance-dark-tab": "Oscuro",
"appearance-light-tab": "Claro",
"apply-all-monitors-description": "Aplica el fondo de pantalla seleccionado a todos los monitores a la vez.", "apply-all-monitors-description": "Aplica el fondo de pantalla seleccionado a todos los monitores a la vez.",
"apply-all-monitors-label": "Aplicar a todos los monitores", "apply-all-monitors-label": "Aplicar a todos los monitores",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Densité de la barre", "appearance-density-label": "Densité de la barre",
"appearance-desc": "Personnalisez l'apparence et la position de la barre.", "appearance-desc": "Personnalisez l'apparence et la position de la barre.",
"appearance-display-mode-description": "Choisir quand la barre est visible.", "appearance-display-mode-description": "Choisir quand la barre est visible.",
"appearance-enable-exclusion-zone-inset-description": "Réduisez la zone d'exclusion de 1 pixel physique afin que les fenêtres affleurantes se fondent parfaitement sous le bord de la Bar.", "appearance-enable-exclusion-zone-inset-description": "Réduisez la zone d'exclusion de 1 pixel physique afin que les fenêtres affleurantes se fondent parfaitement sous le bord de la barre.",
"appearance-enable-exclusion-zone-inset-label": "Zone d'exclusion en retrait", "appearance-enable-exclusion-zone-inset-label": "Zone d'exclusion en retrait",
"appearance-floating-description": "Afficher la barre sous forme de 'pilule' flottante.", "appearance-floating-description": "Afficher la barre sous forme de 'pilule' flottante.",
"appearance-floating-label": "Barre flottante", "appearance-floating-label": "Barre flottante",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Générer des modèles pour les schémas prédéfinis", "predefined-generate-templates-label": "Générer des modèles pour les schémas prédéfinis",
"predefined-title": "Jeux de couleurs prédéfinis", "predefined-title": "Jeux de couleurs prédéfinis",
"sync-gsettings-description": "Adapter le thème du système à la variante claire ou sombre active.", "sync-gsettings-description": "Adapter le thème du système à la variante claire ou sombre active.",
"sync-gsettings-label": "Synchroniser le Thème Système", "sync-gsettings-label": "Synchroniser le thème système",
"templates-desc": "Appliquer des couleurs aux applications externes.", "templates-desc": "Appliquer des couleurs aux applications externes.",
"templates-filter-description": "Afficher les modèles d'une catégorie spécifique.", "templates-filter-description": "Afficher les modèles d'une catégorie spécifique.",
"templates-filter-label": "Filtrer par catégorie", "templates-filter-label": "Filtrer par catégorie",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Position du lanceur", "appearance-launcher-position-label": "Position du lanceur",
"appearance-launcher-position-start": "Démarrer", "appearance-launcher-position-start": "Démarrer",
"appearance-launcher-use-distro-logo-description": "Utilise le logo de ta distribution comme icône du Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Utilise le logo de ta distribution comme icône du Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Utiliser le logo de la distribution au lieu de l'icône.", "appearance-launcher-use-distro-logo-label": "Utiliser le logo de la distribution au lieu de l'icône",
"appearance-pinned-static-description": "Toujours pousser les icônes d'applications épinglées vers la gauche dans un ordre statique.", "appearance-pinned-static-description": "Toujours pousser les icônes d'applications épinglées vers la gauche dans un ordre statique.",
"appearance-pinned-static-label": "Applications épinglées statiques", "appearance-pinned-static-label": "Applications épinglées statiques",
"appearance-position-description": "Choisissez l'emplacement du Dock à l'écran.", "appearance-position-description": "Choisissez l'emplacement du Dock à l'écran.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Pas de son, affiche toujours le pop-up et dans l'historique.", "rules-action-mute-desc": "Pas de son, affiche toujours le pop-up et dans l'historique.",
"rules-add": "Ajouter une règle", "rules-add": "Ajouter une règle",
"rules-delete": "Supprimer la règle", "rules-delete": "Supprimer la règle",
"rules-description": "Faire correspondre le nom de l'application ou le contenu. La première correspondance l'emporte.", "rules-description": "Faire correspondre le nom de l'application ou le contenu. Les règles sont vérifiées dans l'ordre, et la première correspondance est appliquée.",
"rules-edit": "Modifier la règle", "rules-edit": "Modifier la règle",
"rules-label": "Règles de Filtrage", "rules-label": "Règles de Filtrage",
"rules-pattern-label": "Motif", "rules-pattern-label": "Motif",
@@ -2057,6 +2057,8 @@
"apikey-label": "Clé API", "apikey-label": "Clé API",
"apikey-managed-by-env": "Géré via la variable d'environnement NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Géré via la variable d'environnement NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Entrez votre clé API Wallhaven", "apikey-placeholder": "Entrez votre clé API Wallhaven",
"appearance-dark-tab": "Sombre",
"appearance-light-tab": "Clair",
"apply-all-monitors-description": "Appliquer le fond d'écran sélectionné à tous les moniteurs en même temps.", "apply-all-monitors-description": "Appliquer le fond d'écran sélectionné à tous les moniteurs en même temps.",
"apply-all-monitors-label": "Appliquer à tous les moniteurs", "apply-all-monitors-label": "Appliquer à tous les moniteurs",
"categories-anime": "Anime", "categories-anime": "Anime",
+14 -12
View File
@@ -71,7 +71,7 @@
"apply-all-label": "Görgetési változások alkalmazása minden monitorra" "apply-all-label": "Görgetési változások alkalmazása minden monitorra"
}, },
"clock": { "clock": {
"clock-display-description": "Testre szabhatod az óra kijelzőjét a lenti listában szereplő tokenek hozzáadásával. A 12 órás formátum használatához tartalmaznia kell az „AP\" tokent.", "clock-display-description": "Testre szabhatod az óra kijelzőjét a lenti listában szereplő tokenek hozzáadásával. A 12 órás formátum használatához tartalmaznia kell az „AP tokent.",
"clock-display-label": "Óra kijelző", "clock-display-label": "Óra kijelző",
"custom-font-description": "Egyéni betűtípus az óra kijelzőjéhez.", "custom-font-description": "Egyéni betűtípus az óra kijelzőjéhez.",
"custom-font-label": "Egyéni betűtípus", "custom-font-label": "Egyéni betűtípus",
@@ -277,7 +277,7 @@
"colorize-icons-label": "Ikonok színezése", "colorize-icons-label": "Ikonok színezése",
"drawer-enabled-description": "Ha engedélyezve van, a nem rögzített tálcaelemek egy fiókpanelen jelennek meg.<br>Letiltva az összes tálcaelem sorban jelenik meg.", "drawer-enabled-description": "Ha engedélyezve van, a nem rögzített tálcaelemek egy fiókpanelen jelennek meg.<br>Letiltva az összes tálcaelem sorban jelenik meg.",
"drawer-enabled-label": "Tálca-fiók engedélyezése", "drawer-enabled-label": "Tálca-fiók engedélyezése",
"hide-passive-description": "Engedélyezve a „Passzív\" állapotú tálcaelemek el lesznek rejtve.", "hide-passive-description": "Engedélyezve a „Passzív állapotú tálcaelemek el lesznek rejtve.",
"hide-passive-label": "Passzív elemek elrejtése" "hide-passive-label": "Passzív elemek elrejtése"
}, },
"volume": { "volume": {
@@ -944,7 +944,7 @@
"predefined-desc": "Válassz az előre definiált színsémák gyűjteményéből.", "predefined-desc": "Válassz az előre definiált színsémák gyűjteményéből.",
"predefined-generate-templates-label": "Sablonok generálása előre definiált sémákhoz", "predefined-generate-templates-label": "Sablonok generálása előre definiált sémákhoz",
"predefined-title": "Előre definiált színsémák", "predefined-title": "Előre definiált színsémák",
"sync-gsettings-description": "Illeszd a rendszer témáját az aktív világos vagy sötét változathoz.", "sync-gsettings-description": "A rendszertéma igazítása az aktív világos vagy sötét módhoz.",
"sync-gsettings-label": "Rendszertéma szinkronizálása", "sync-gsettings-label": "Rendszertéma szinkronizálása",
"templates-desc": "Színek alkalmazása külő alkalmazásokra.", "templates-desc": "Színek alkalmazása külő alkalmazásokra.",
"templates-filter-description": "Sablonok megjelenítése egy adott kategóriából.", "templates-filter-description": "Sablonok megjelenítése egy adott kategóriából.",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Indító pozíciója", "appearance-launcher-position-label": "Indító pozíciója",
"appearance-launcher-position-start": "Indítás", "appearance-launcher-position-start": "Indítás",
"appearance-launcher-use-distro-logo-description": "A disztribúció logójának használata a dokkindító ikonja helyett.", "appearance-launcher-use-distro-logo-description": "A disztribúció logójának használata a dokkindító ikonja helyett.",
"appearance-launcher-use-distro-logo-label": "Disztribúció logójának használata ikon helyett.", "appearance-launcher-use-distro-logo-label": "Disztribúció logójának használata ikon helyett",
"appearance-pinned-static-description": "A rögzített alkalmazásikonok mindig statikus sorrendben kerüljenek balra.", "appearance-pinned-static-description": "A rögzített alkalmazásikonok mindig statikus sorrendben kerüljenek balra.",
"appearance-pinned-static-label": "Statikus rögzített alkalmazások", "appearance-pinned-static-label": "Statikus rögzített alkalmazások",
"appearance-position-description": "Hol jelenjen meg a dokk a képernyőn.", "appearance-position-description": "Hol jelenjen meg a dokk a képernyőn.",
@@ -1310,7 +1310,7 @@
"execute-title": "Végrehajtás", "execute-title": "Végrehajtás",
"settings-annotation-tool-description": "Parancs, amely a jegyzetelés gombra kattintva fut a vágólap előzményeiben. A kép a parancsra lesz átirányítva.", "settings-annotation-tool-description": "Parancs, amely a jegyzetelés gombra kattintva fut a vágólap előzményeiben. A kép a parancsra lesz átirányítva.",
"settings-annotation-tool-label": "Annotációs eszköz", "settings-annotation-tool-label": "Annotációs eszköz",
"settings-annotation-tool-placeholder": "pl. „gradia\", „satty -f -\"", "settings-annotation-tool-placeholder": "pl. „gradia, „satty -f -",
"settings-auto-paste-description": "Automatikusan beilleszti a kiválasztott vágólap elemet. Wtype szükséges hozzá.", "settings-auto-paste-description": "Automatikusan beilleszti a kiválasztott vágólap elemet. Wtype szükséges hozzá.",
"settings-auto-paste-label": "Automatikus beillesztés", "settings-auto-paste-label": "Automatikus beillesztés",
"settings-clip-chips-description": "Fülmenü megjelenítése a vágólap előzmények típus szerinti szűréséhez (Képek, Linkek, Fájlok, Kód stb.).", "settings-clip-chips-description": "Fülmenü megjelenítése a vágólap előzmények típus szerinti szűréséhez (Képek, Linkek, Fájlok, Kód stb.).",
@@ -1354,7 +1354,7 @@
"settings-show-icon-background-label": "Ikon háttér megjelenítése", "settings-show-icon-background-label": "Ikon háttér megjelenítése",
"settings-sort-by-usage-description": "Ha engedélyezve van, a gyakran indított alkalmazások jelennek meg először a listán.", "settings-sort-by-usage-description": "Ha engedélyezve van, a gyakran indított alkalmazások jelennek meg először a listán.",
"settings-sort-by-usage-label": "Rendezés gyakoriság szerint", "settings-sort-by-usage-label": "Rendezés gyakoriság szerint",
"settings-terminal-command-description": "Parancs a terminál indításához. Pl. „kitty -e\" vagy „gnome-terminal --\".", "settings-terminal-command-description": "Parancs a terminál indításához. Pl. „kitty -e vagy „gnome-terminal --.",
"settings-terminal-command-label": "Terminál parancs", "settings-terminal-command-label": "Terminál parancs",
"settings-use-app2unit-description": "Alternatív indítási módszert használ az alkalmazásfolyamatok jobb kezelésére és a problémák megelőzésére.", "settings-use-app2unit-description": "Alternatív indítási módszert használ az alkalmazásfolyamatok jobb kezelésére és a problémák megelőzésére.",
"settings-use-app2unit-label": "App2Unit használata alkalmazások indításához", "settings-use-app2unit-label": "App2Unit használata alkalmazások indításához",
@@ -1426,7 +1426,7 @@
"monitors-desc": "Zárolási képernyő megjelenítése meghatározott monitorokon. Alapértelmezetten mindegyiken megjelenik, ha nincs kiválasztva.", "monitors-desc": "Zárolási képernyő megjelenítése meghatározott monitorokon. Alapértelmezetten mindegyiken megjelenik, ha nincs kiválasztva.",
"password-chars-description": "Aranyos ikonok, amelyek elrejtik a jelszavadat.", "password-chars-description": "Aranyos ikonok, amelyek elrejtik a jelszavadat.",
"password-chars-label": "Véletlenszerű jelszó ikonok", "password-chars-label": "Véletlenszerű jelszó ikonok",
"show-hibernate-description": "A „hibernálás\" lehetőség megjelenítése az energiakezelési műveletek között.", "show-hibernate-description": "A „hibernálás lehetőség megjelenítése az energiakezelési műveletek között.",
"show-hibernate-label": "Hibernálás megjelenítése", "show-hibernate-label": "Hibernálás megjelenítése",
"show-session-buttons-description": "Engedélyezi a hozzáférést az energiabeállításokhoz a zárolási képernyőről.", "show-session-buttons-description": "Engedélyezi a hozzáférést az energiabeállításokhoz a zárolási képernyőről.",
"show-session-buttons-label": "Energiakezelés", "show-session-buttons-label": "Energiakezelés",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Nincs hang, de megjeleníti az előugró ablakot és az előzményekbe rakja.", "rules-action-mute-desc": "Nincs hang, de megjeleníti az előugró ablakot és az előzményekbe rakja.",
"rules-add": "Szabály hozzáadása", "rules-add": "Szabály hozzáadása",
"rules-delete": "Szabály törlése", "rules-delete": "Szabály törlése",
"rules-description": "Alkalmazásnév vagy tartalom egyeztetése. Az első találat nyer.", "rules-description": "Alkalmazásnév vagy tartalom szerinti egyezés. A szabályok ellenőrzése sorrendben történik, és az első találat lép érvénybe.",
"rules-edit": "Szabály szerkesztése", "rules-edit": "Szabály szerkesztése",
"rules-label": "Szűrőszabályok", "rules-label": "Szűrőszabályok",
"rules-pattern-label": "Minta", "rules-pattern-label": "Minta",
@@ -1565,7 +1565,7 @@
"check-for-updates": "Frissítések keresése", "check-for-updates": "Frissítések keresése",
"checking-for-updates": "Frissítések keresése…", "checking-for-updates": "Frissítések keresése…",
"collision-already-installed": "Ez a bővítmény már telepítve van", "collision-already-installed": "Ez a bővítmény már telepítve van",
"collision-custom-version-exists": "Egyéni verzió a következő helyről: „{source}\" már telepítve van", "collision-custom-version-exists": "Egyéni verzió a következő helyről: „{source} már telepítve van",
"collision-official-version-exists": "A bővítmény hivatalos verziója már telepítve van", "collision-official-version-exists": "A bővítmény hivatalos verziója már telepítve van",
"development-disable": "Fejlesztői mód letiltása ennél a bővítménynél", "development-disable": "Fejlesztői mód letiltása ennél a bővítménynél",
"development-enable": "Fejlesztői mód engedélyezése ehhez a beépülőhöz.", "development-enable": "Fejlesztői mód engedélyezése ehhez a beépülőhöz.",
@@ -1581,7 +1581,7 @@
"install-success": "Sikeresen telepítve: {plugin}", "install-success": "Sikeresen telepítve: {plugin}",
"installed-description": "Az összes helyileg telepített bővítmény kezelése és beállítása.", "installed-description": "Az összes helyileg telepített bővítmény kezelése és beállítása.",
"installed-label": "Telepített bővítmények", "installed-label": "Telepített bővítmények",
"installed-no-plugins-description": "Bővítmények telepítése az „Elérhető\" szakaszban lehetséges.", "installed-no-plugins-description": "Bővítmények telepítése az „Elérhető szakaszban lehetséges.",
"installed-no-plugins-label": "Nincs telepített bővítmény", "installed-no-plugins-label": "Nincs telepített bővítmény",
"installing": "{plugin} telepítése…", "installing": "{plugin} telepítése…",
"notify-updates": "Bővítményfrissítési értesítések", "notify-updates": "Bővítményfrissítési értesítések",
@@ -1799,7 +1799,7 @@
"enter-command": "Végrehajtandó parancs (alkalmazás vagy egyéni parancsfájl)", "enter-command": "Végrehajtandó parancs (alkalmazás vagy egyéni parancsfájl)",
"enter-ipc-identifier": "Az IPC parancsok egyedi azonosítója", "enter-ipc-identifier": "Az IPC parancsok egyedi azonosítója",
"enter-path": "Útvonal megadása…", "enter-path": "Útvonal megadása…",
"enter-text-to-collapse": "pl. „semmi sem játszik\". /regex/ a mintákhoz.", "enter-text-to-collapse": "pl. „semmi sem játszik. /regex/ a mintákhoz.",
"enter-tooltip": "Add meg a buboréksúgót", "enter-tooltip": "Add meg a buboréksúgót",
"enter-width-pixels": "Add meg a szélességet képpontban", "enter-width-pixels": "Add meg a szélességet képpontban",
"keybind-recording": "Gyorsbillentyű rögzítése…", "keybind-recording": "Gyorsbillentyű rögzítése…",
@@ -1921,7 +1921,7 @@
"clipboard": { "clipboard": {
"long-text": "Hosszú szöveg", "long-text": "Hosszú szöveg",
"unavailable": "A vágólapelőzmények nem elérhetők", "unavailable": "A vágólapelőzmények nem elérhetők",
"unavailable-desc": "A „cliphist\" alkalmazás nincs telepítve. Telepítsd a vágólapelőzmények funkcióinak használatához" "unavailable-desc": "A „cliphist alkalmazás nincs telepítve. Telepítsd a vágólapelőzmények funkcióinak használatához"
}, },
"custom-command-failed": { "custom-command-failed": {
"description": "A parancs sikertelen: {command}\\nKilépési kód: {code}", "description": "A parancs sikertelen: {command}\\nKilépési kód: {code}",
@@ -2057,6 +2057,8 @@
"apikey-label": "API kulcs", "apikey-label": "API kulcs",
"apikey-managed-by-env": "A NOCTALIA_WALLHAVEN_API_KEY környezeti változóval kezelhető.", "apikey-managed-by-env": "A NOCTALIA_WALLHAVEN_API_KEY környezeti változóval kezelhető.",
"apikey-placeholder": "Add meg a Wallhaven API kulcsod!", "apikey-placeholder": "Add meg a Wallhaven API kulcsod!",
"appearance-dark-tab": "Sötét",
"appearance-light-tab": "Világos",
"apply-all-monitors-description": "A kiválasztott háttérkép alkalmazása minden monitorra.", "apply-all-monitors-description": "A kiválasztott háttérkép alkalmazása minden monitorra.",
"apply-all-monitors-label": "Alkalmazás minden monitorra", "apply-all-monitors-label": "Alkalmazás minden monitorra",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Densità barra", "appearance-density-label": "Densità barra",
"appearance-desc": "Personalizza aspetto e posizione della barra.", "appearance-desc": "Personalizza aspetto e posizione della barra.",
"appearance-display-mode-description": "Scegli quando la barra è visibile.", "appearance-display-mode-description": "Scegli quando la barra è visibile.",
"appearance-enable-exclusion-zone-inset-description": "Riduci la zona di esclusione di 1 pixel fisico in modo che le finestre a filo si estendano perfettamente sotto il bordo della Bar.", "appearance-enable-exclusion-zone-inset-description": "Riduci la zona di esclusione di 1 pixel fisico in modo che le finestre a filo si estendano perfettamente sotto il bordo della barra.",
"appearance-enable-exclusion-zone-inset-label": "Zona di esclusione interna", "appearance-enable-exclusion-zone-inset-label": "Zona di esclusione interna",
"appearance-floating-description": "Mostra la barra come 'pill' flottante.", "appearance-floating-description": "Mostra la barra come 'pill' flottante.",
"appearance-floating-label": "Barra flottante", "appearance-floating-label": "Barra flottante",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Genera template per schemi predefiniti", "predefined-generate-templates-label": "Genera template per schemi predefiniti",
"predefined-title": "Schemi colore predefiniti", "predefined-title": "Schemi colore predefiniti",
"sync-gsettings-description": "Abbina il tema di sistema alla variante chiara o scura attiva.", "sync-gsettings-description": "Abbina il tema di sistema alla variante chiara o scura attiva.",
"sync-gsettings-label": "Sincronizza Tema di Sistema", "sync-gsettings-label": "Sincronizza tema di sistema",
"templates-desc": "Applica colori ad applicazioni esterne.", "templates-desc": "Applica colori ad applicazioni esterne.",
"templates-filter-description": "Mostra template di una categoria specifica.", "templates-filter-description": "Mostra template di una categoria specifica.",
"templates-filter-label": "Filtra per categoria", "templates-filter-label": "Filtra per categoria",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Posizione launcher", "appearance-launcher-position-label": "Posizione launcher",
"appearance-launcher-position-start": "Inizio", "appearance-launcher-position-start": "Inizio",
"appearance-launcher-use-distro-logo-description": "Usa il logo della tua distribuzione come icona del Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Usa il logo della tua distribuzione come icona del Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Usa il logo della distro invece dell'icona.", "appearance-launcher-use-distro-logo-label": "Usa il logo della distro invece dell'icona",
"appearance-pinned-static-description": "Spinge sempre le icone app fissate a sinistra in ordine statico.", "appearance-pinned-static-description": "Spinge sempre le icone app fissate a sinistra in ordine statico.",
"appearance-pinned-static-label": "App fissate statiche", "appearance-pinned-static-label": "App fissate statiche",
"appearance-position-description": "Scegli dove appare il dock sullo schermo.", "appearance-position-description": "Scegli dove appare il dock sullo schermo.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Nessun suono, mostra comunque il pop-up e nella cronologia.", "rules-action-mute-desc": "Nessun suono, mostra comunque il pop-up e nella cronologia.",
"rules-add": "Aggiungi regola", "rules-add": "Aggiungi regola",
"rules-delete": "Elimina regola", "rules-delete": "Elimina regola",
"rules-description": "Corrisponde al nome dell'app o al contenuto. La prima corrispondenza vince.", "rules-description": "Corrisponde al nome dell'app o al contenuto. Le regole vengono controllate in ordine e la prima corrispondenza viene applicata.",
"rules-edit": "Modifica regola", "rules-edit": "Modifica regola",
"rules-label": "Regole di Filtro", "rules-label": "Regole di Filtro",
"rules-pattern-label": "Modello", "rules-pattern-label": "Modello",
@@ -2057,6 +2057,8 @@
"apikey-label": "Chiave API", "apikey-label": "Chiave API",
"apikey-managed-by-env": "Gestita tramite la variabile dambiente NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Gestita tramite la variabile dambiente NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Inserisci la tua chiave API Wallhaven", "apikey-placeholder": "Inserisci la tua chiave API Wallhaven",
"appearance-dark-tab": "Scuro",
"appearance-light-tab": "Chiaro",
"apply-all-monitors-description": "Applica lo sfondo selezionato a tutti i monitor.", "apply-all-monitors-description": "Applica lo sfondo selezionato a tutti i monitor.",
"apply-all-monitors-label": "Applica a tutti i monitor", "apply-all-monitors-label": "Applica a tutti i monitor",
"categories-anime": "Anime", "categories-anime": "Anime",
+5 -3
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "バーの密度", "appearance-density-label": "バーの密度",
"appearance-desc": "バーの外観や位置をカスタマイズします。", "appearance-desc": "バーの外観や位置をカスタマイズします。",
"appearance-display-mode-description": "バーの表示タイミングを選択してください。", "appearance-display-mode-description": "バーの表示タイミングを選択してください。",
"appearance-enable-exclusion-zone-inset-description": "排他ゾーンを1物理ピクセル縮小し、Barの端の下にぴったりと重なるようにウィンドウが表示されるようにします。", "appearance-enable-exclusion-zone-inset-description": "排他ゾーンを1物理ピクセル縮小し、バーの端の下にぴったりと重なるようにウィンドウが表示されるようにします。",
"appearance-enable-exclusion-zone-inset-label": "インセット除外領域", "appearance-enable-exclusion-zone-inset-label": "インセット除外領域",
"appearance-floating-description": "バーを浮かせて、カプセル型で表示します。", "appearance-floating-description": "バーを浮かせて、カプセル型で表示します。",
"appearance-floating-label": "フローティングバー", "appearance-floating-label": "フローティングバー",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "ランチャーの位置", "appearance-launcher-position-label": "ランチャーの位置",
"appearance-launcher-position-start": "開始", "appearance-launcher-position-start": "開始",
"appearance-launcher-use-distro-logo-description": "ディストリビューションのロゴをDock Launcherアイコンとして使用します。", "appearance-launcher-use-distro-logo-description": "ディストリビューションのロゴをDock Launcherアイコンとして使用します。",
"appearance-launcher-use-distro-logo-label": "アイコンの代わりにディストロのロゴを使用する", "appearance-launcher-use-distro-logo-label": "アイコンの代わりにディストロのロゴを使用する",
"appearance-pinned-static-description": "ピン留めされたアプリアイコンを常に左側に寄せて固定します。", "appearance-pinned-static-description": "ピン留めされたアプリアイコンを常に左側に寄せて固定します。",
"appearance-pinned-static-label": "ピン留めアプリの固定配置", "appearance-pinned-static-label": "ピン留めアプリの固定配置",
"appearance-position-description": "ドックを画面上のどこに表示するかを選択してください。", "appearance-position-description": "ドックを画面上のどこに表示するかを選択してください。",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "音は出ないが、ポップアップは表示され、履歴にも残る。", "rules-action-mute-desc": "音は出ないが、ポップアップは表示され、履歴にも残る。",
"rules-add": "ルールを追加", "rules-add": "ルールを追加",
"rules-delete": "ルールを削除", "rules-delete": "ルールを削除",
"rules-description": "アプリ名またはコンテンツに一致。最初の結果が優先されます。", "rules-description": "アプリ名またはコンテンツに一致。ルールは順番にチェックされ、最初の一致が適用されます。",
"rules-edit": "ルールを編集", "rules-edit": "ルールを編集",
"rules-label": "フィルター規則", "rules-label": "フィルター規則",
"rules-pattern-label": "パターン", "rules-pattern-label": "パターン",
@@ -2057,6 +2057,8 @@
"apikey-label": "APIキー", "apikey-label": "APIキー",
"apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY 環境変数経由で管理されます。", "apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY 環境変数経由で管理されます。",
"apikey-placeholder": "Wallhaven APIキーを入力してください", "apikey-placeholder": "Wallhaven APIキーを入力してください",
"appearance-dark-tab": "ダーク",
"appearance-light-tab": "ライト",
"apply-all-monitors-description": "選択した壁紙をすべてのディスプレイに適用します。", "apply-all-monitors-description": "選択した壁紙をすべてのディスプレイに適用します。",
"apply-all-monitors-label": "全ディスプレイに適用", "apply-all-monitors-label": "全ディスプレイに適用",
"categories-anime": "アニメ", "categories-anime": "アニメ",
+5 -3
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "바 밀도", "appearance-density-label": "바 밀도",
"appearance-desc": "바의 모양과 위치를 사용자 지정합니다.", "appearance-desc": "바의 모양과 위치를 사용자 지정합니다.",
"appearance-display-mode-description": "바가 언제 표시될지 선택하세요.", "appearance-display-mode-description": "바가 언제 표시될지 선택하세요.",
"appearance-enable-exclusion-zone-inset-description": "제외 영역을 1 물리 픽셀만큼 줄여 Bar 가장자리 아래로 창이 완벽하게 겹치도록 합니다.", "appearance-enable-exclusion-zone-inset-description": "제외 영역을 1 물리 픽셀만큼 줄여 가장자리 아래로 창이 완벽하게 겹치도록 합니다.",
"appearance-enable-exclusion-zone-inset-label": "인셋 제외 영역", "appearance-enable-exclusion-zone-inset-label": "인셋 제외 영역",
"appearance-floating-description": "바를 플로팅 '알약' 형태로 표시합니다.", "appearance-floating-description": "바를 플로팅 '알약' 형태로 표시합니다.",
"appearance-floating-label": "플로팅 바", "appearance-floating-label": "플로팅 바",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "런처 위치", "appearance-launcher-position-label": "런처 위치",
"appearance-launcher-position-start": "시작", "appearance-launcher-position-start": "시작",
"appearance-launcher-use-distro-logo-description": "배포판 로고를 Dock Launcher 아이콘으로 사용하세요.", "appearance-launcher-use-distro-logo-description": "배포판 로고를 Dock Launcher 아이콘으로 사용하세요.",
"appearance-launcher-use-distro-logo-label": "아이콘 대신 배포판 로고 사용.", "appearance-launcher-use-distro-logo-label": "아이콘 대신 배포판 로고 사용",
"appearance-pinned-static-description": "고정된 앱 아이콘을 항상 왼쪽에 정적인 순서로 배치합니다.", "appearance-pinned-static-description": "고정된 앱 아이콘을 항상 왼쪽에 정적인 순서로 배치합니다.",
"appearance-pinned-static-label": "정적 고정 앱", "appearance-pinned-static-label": "정적 고정 앱",
"appearance-position-description": "화면에서 독이 나타날 위치를 선택하세요.", "appearance-position-description": "화면에서 독이 나타날 위치를 선택하세요.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "소리 없음, 팝업은 계속 표시되며 기록에 남음.", "rules-action-mute-desc": "소리 없음, 팝업은 계속 표시되며 기록에 남음.",
"rules-add": "규칙 추가", "rules-add": "규칙 추가",
"rules-delete": "규칙 삭제", "rules-delete": "규칙 삭제",
"rules-description": "앱 이름 또는 콘텐츠와 일치. 첫 번째 일치가 우선합니다.", "rules-description": "앱 이름 또는 내용과 일치시킵니다. 규칙은 순서대로 확인되며, 첫 번째 일치하는 항목이 적용됩니다.",
"rules-edit": "규칙 편집", "rules-edit": "규칙 편집",
"rules-label": "필터 규칙", "rules-label": "필터 규칙",
"rules-pattern-label": "패턴", "rules-pattern-label": "패턴",
@@ -2057,6 +2057,8 @@
"apikey-label": "API 키", "apikey-label": "API 키",
"apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY 환경 변수를 통해 관리됩니다.", "apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY 환경 변수를 통해 관리됩니다.",
"apikey-placeholder": "Wallhaven API 키 입력", "apikey-placeholder": "Wallhaven API 키 입력",
"appearance-dark-tab": "어둡게",
"appearance-light-tab": "라이트",
"apply-all-monitors-description": "선택한 배경화면을 모든 모니터에 적용합니다.", "apply-all-monitors-description": "선택한 배경화면을 모든 모니터에 적용합니다.",
"apply-all-monitors-label": "모든 모니터에 적용", "apply-all-monitors-label": "모든 모니터에 적용",
"categories-anime": "애니메이션", "categories-anime": "애니메이션",
+7 -5
View File
@@ -834,8 +834,8 @@
"appearance-density-label": "Balkdichtheid", "appearance-density-label": "Balkdichtheid",
"appearance-desc": "Pas de uitstraling en positie van de balk aan.", "appearance-desc": "Pas de uitstraling en positie van de balk aan.",
"appearance-display-mode-description": "Kies wanneer de balk zichtbaar is.", "appearance-display-mode-description": "Kies wanneer de balk zichtbaar is.",
"appearance-enable-exclusion-zone-inset-description": "Verklein de uitsluitingszone met 1 fysieke pixel, zodat gelijkgelegen vensters perfect onder de rand van de Bar overlappen.", "appearance-enable-exclusion-zone-inset-description": "Verklein de uitsluitingszone met 1 fysieke pixel, zodat gelijkgelegen vensters perfect onder de rand van de balk overlappen.",
"appearance-enable-exclusion-zone-inset-label": "Inspringende uitsluitingszone", "appearance-enable-exclusion-zone-inset-label": "Binnenmarge van de uitsluitingszone",
"appearance-floating-description": "Toon de balk weer als een zwevende 'pil'.", "appearance-floating-description": "Toon de balk weer als een zwevende 'pil'.",
"appearance-floating-label": "Zwevende balk", "appearance-floating-label": "Zwevende balk",
"appearance-font-scale-description": "De schaal van de lettergrootte aanpassen voor tekst die in de balk wordt weergegeven.", "appearance-font-scale-description": "De schaal van de lettergrootte aanpassen voor tekst die in de balk wordt weergegeven.",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Sjablonen genereren voor vooraf gedefinieerde schema's", "predefined-generate-templates-label": "Sjablonen genereren voor vooraf gedefinieerde schema's",
"predefined-title": "Vooraf gedefinieerde kleurenschema's", "predefined-title": "Vooraf gedefinieerde kleurenschema's",
"sync-gsettings-description": "Pas het systeemthema aan de actieve lichte of donkere variant aan.", "sync-gsettings-description": "Pas het systeemthema aan de actieve lichte of donkere variant aan.",
"sync-gsettings-label": "Systeemthema Synchroniseren", "sync-gsettings-label": "Systeemthema synchroniseren",
"templates-desc": "Pas kleuren toe op externe applicaties.", "templates-desc": "Pas kleuren toe op externe applicaties.",
"templates-filter-description": "Sjablonen uit een specifieke categorie weergeven.", "templates-filter-description": "Sjablonen uit een specifieke categorie weergeven.",
"templates-filter-label": "Filteren op categorie", "templates-filter-label": "Filteren op categorie",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Positie van de starter", "appearance-launcher-position-label": "Positie van de starter",
"appearance-launcher-position-start": "Start", "appearance-launcher-position-start": "Start",
"appearance-launcher-use-distro-logo-description": "Gebruik het logo van je distributie als het Dock Launcher-pictogram.", "appearance-launcher-use-distro-logo-description": "Gebruik het logo van je distributie als het Dock Launcher-pictogram.",
"appearance-launcher-use-distro-logo-label": "Gebruik distro-logo in plaats van pictogram.", "appearance-launcher-use-distro-logo-label": "Gebruik distro-logo in plaats van pictogram",
"appearance-pinned-static-description": "Zet vastgemaakte app-pictogrammen altijd in statische volgorde aan de linkerkant.", "appearance-pinned-static-description": "Zet vastgemaakte app-pictogrammen altijd in statische volgorde aan de linkerkant.",
"appearance-pinned-static-label": "Statische vastgezette apps", "appearance-pinned-static-label": "Statische vastgezette apps",
"appearance-position-description": "Kies waar het dock op het scherm verschijnt.", "appearance-position-description": "Kies waar het dock op het scherm verschijnt.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Geen geluid, toont nog steeds pop-up en in geschiedenis.", "rules-action-mute-desc": "Geen geluid, toont nog steeds pop-up en in geschiedenis.",
"rules-add": "Regel toevoegen", "rules-add": "Regel toevoegen",
"rules-delete": "Regel verwijderen", "rules-delete": "Regel verwijderen",
"rules-description": "Komt overeen met app-naam of inhoud. Eerste overeenkomst wint.", "rules-description": "Komt overeen met app-naam of inhoud. Regels worden in volgorde gecontroleerd, en de eerste overeenkomst wordt toegepast.",
"rules-edit": "Regel bewerken", "rules-edit": "Regel bewerken",
"rules-label": "Filterregels", "rules-label": "Filterregels",
"rules-pattern-label": "Patroon", "rules-pattern-label": "Patroon",
@@ -2057,6 +2057,8 @@
"apikey-label": "API-sleutel", "apikey-label": "API-sleutel",
"apikey-managed-by-env": "Beheerd via de NOCTALIA_WALLHAVEN_API_KEY omgevingsvariabele.", "apikey-managed-by-env": "Beheerd via de NOCTALIA_WALLHAVEN_API_KEY omgevingsvariabele.",
"apikey-placeholder": "Voer uw Wallhaven API-sleutel in", "apikey-placeholder": "Voer uw Wallhaven API-sleutel in",
"appearance-dark-tab": "Donker",
"appearance-light-tab": "Licht",
"apply-all-monitors-description": "Pas de geselecteerde achtergrond in één keer op alle monitoren toe.", "apply-all-monitors-description": "Pas de geselecteerde achtergrond in één keer op alle monitoren toe.",
"apply-all-monitors-label": "Toepassen op alle monitoren", "apply-all-monitors-label": "Toepassen op alle monitoren",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Zagęszczenie paska", "appearance-density-label": "Zagęszczenie paska",
"appearance-desc": "Dostosuj wygląd i pozycję paska.", "appearance-desc": "Dostosuj wygląd i pozycję paska.",
"appearance-display-mode-description": "Wybierz, kiedy pasek jest widoczny.", "appearance-display-mode-description": "Wybierz, kiedy pasek jest widoczny.",
"appearance-enable-exclusion-zone-inset-description": "Zmniejsz strefę wykluczenia o 1 fizyczny piksel, aby okna przylegające idealnie zachodziły pod krawędź Bar.", "appearance-enable-exclusion-zone-inset-description": "Zmniejsz strefę wykluczenia o 1 fizyczny piksel, aby okna przylegające idealnie zachodziły pod krawędź paska.",
"appearance-enable-exclusion-zone-inset-label": "Wewnętrzna strefa wykluczenia", "appearance-enable-exclusion-zone-inset-label": "Wewnętrzna strefa wykluczenia",
"appearance-floating-description": "Wyświetl pasek jako pływającą 'pigułkę'.", "appearance-floating-description": "Wyświetl pasek jako pływającą 'pigułkę'.",
"appearance-floating-label": "Pływający pasek", "appearance-floating-label": "Pływający pasek",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Generuj szablony dla predefiniowanych schematów", "predefined-generate-templates-label": "Generuj szablony dla predefiniowanych schematów",
"predefined-title": "Predefiniowane schematy kolorów", "predefined-title": "Predefiniowane schematy kolorów",
"sync-gsettings-description": "Dopasuj motyw systemowy do aktywnego wariantu jasnego lub ciemnego.", "sync-gsettings-description": "Dopasuj motyw systemowy do aktywnego wariantu jasnego lub ciemnego.",
"sync-gsettings-label": "Synchronizuj Motyw Systemowy", "sync-gsettings-label": "Synchronizuj motyw systemowy",
"templates-desc": "Zastosuj kolory w aplikacjach zewnętrznych.", "templates-desc": "Zastosuj kolory w aplikacjach zewnętrznych.",
"templates-filter-description": "Pokaż szablony z określonej kategorii.", "templates-filter-description": "Pokaż szablony z określonej kategorii.",
"templates-filter-label": "Filtruj według kategorii", "templates-filter-label": "Filtruj według kategorii",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Pozycja uruchamiacza", "appearance-launcher-position-label": "Pozycja uruchamiacza",
"appearance-launcher-position-start": "Start", "appearance-launcher-position-start": "Start",
"appearance-launcher-use-distro-logo-description": "Użyj logo swojej dystrybucji jako ikony Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Użyj logo swojej dystrybucji jako ikony Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Użyj logo dystrybucji zamiast ikony.", "appearance-launcher-use-distro-logo-label": "Użyj logo dystrybucji zamiast ikony",
"appearance-pinned-static-description": "Zawsze spychaj przypięte aplikacje na lewo w stałej kolejności.", "appearance-pinned-static-description": "Zawsze spychaj przypięte aplikacje na lewo w stałej kolejności.",
"appearance-pinned-static-label": "Statyczne przypięte aplikacje", "appearance-pinned-static-label": "Statyczne przypięte aplikacje",
"appearance-position-description": "Wybierz, gdzie dok ma się pojawiać na ekranie.", "appearance-position-description": "Wybierz, gdzie dok ma się pojawiać na ekranie.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Brak dźwięku, nadal wyświetla wyskakujące okienko i w historii.", "rules-action-mute-desc": "Brak dźwięku, nadal wyświetla wyskakujące okienko i w historii.",
"rules-add": "Dodaj regułę", "rules-add": "Dodaj regułę",
"rules-delete": "Usuń regułę", "rules-delete": "Usuń regułę",
"rules-description": "Dopasuj nazwę aplikacji lub zawartość. Pierwsze dopasowanie wygrywa.", "rules-description": "Dopasuj nazwę aplikacji lub zawartość. Reguły są sprawdzane po kolei, a pierwsze dopasowanie jest stosowane.",
"rules-edit": "Edytuj regułę", "rules-edit": "Edytuj regułę",
"rules-label": "Reguły Filtrowania", "rules-label": "Reguły Filtrowania",
"rules-pattern-label": "Wzór", "rules-pattern-label": "Wzór",
@@ -2057,6 +2057,8 @@
"apikey-label": "Klucz API", "apikey-label": "Klucz API",
"apikey-managed-by-env": "Zarządzane za pomocą zmiennej środowiskowej NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Zarządzane za pomocą zmiennej środowiskowej NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Wprowadź swój klucz API Wallhaven", "apikey-placeholder": "Wprowadź swój klucz API Wallhaven",
"appearance-dark-tab": "Ciemny",
"appearance-light-tab": "Jasny",
"apply-all-monitors-description": "Zastosuj wybraną tapetę na wszystkich monitorach.", "apply-all-monitors-description": "Zastosuj wybraną tapetę na wszystkich monitorach.",
"apply-all-monitors-label": "Zastosuj na wszystkich monitorach", "apply-all-monitors-label": "Zastosuj na wszystkich monitorach",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Densidade da barra", "appearance-density-label": "Densidade da barra",
"appearance-desc": "Personalize a aparência e a posição da barra.", "appearance-desc": "Personalize a aparência e a posição da barra.",
"appearance-display-mode-description": "Escolha quando a barra está visível.", "appearance-display-mode-description": "Escolha quando a barra está visível.",
"appearance-enable-exclusion-zone-inset-description": "Reduza a zona de exclusão em 1 pixel físico para que as janelas alinhadas se estendam perfeitamente sob a borda da Bar.", "appearance-enable-exclusion-zone-inset-description": "Reduza a zona de exclusão em 1 pixel físico para que as janelas alinhadas se estendam perfeitamente sob a borda da barra.",
"appearance-enable-exclusion-zone-inset-label": "Zona de exclusão interna", "appearance-enable-exclusion-zone-inset-label": "Zona de exclusão interna",
"appearance-floating-description": "Exibe a barra como uma 'pílula' flutuante.", "appearance-floating-description": "Exibe a barra como uma 'pílula' flutuante.",
"appearance-floating-label": "Barra flutuante", "appearance-floating-label": "Barra flutuante",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Gerar modelos para esquemas predefinidos", "predefined-generate-templates-label": "Gerar modelos para esquemas predefinidos",
"predefined-title": "Esquemas de cores predefinidos", "predefined-title": "Esquemas de cores predefinidos",
"sync-gsettings-description": "Corresponder o tema do sistema à variante clara ou escura ativa.", "sync-gsettings-description": "Corresponder o tema do sistema à variante clara ou escura ativa.",
"sync-gsettings-label": "Sincronizar Tema do Sistema", "sync-gsettings-label": "Sincronizar tema do sistema",
"templates-desc": "Aplicar cores a aplicações externas.", "templates-desc": "Aplicar cores a aplicações externas.",
"templates-filter-description": "Mostrar templates de uma categoria específica.", "templates-filter-description": "Mostrar templates de uma categoria específica.",
"templates-filter-label": "Filtrar por categoria", "templates-filter-label": "Filtrar por categoria",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Posição do lançador", "appearance-launcher-position-label": "Posição do lançador",
"appearance-launcher-position-start": "Iniciar", "appearance-launcher-position-start": "Iniciar",
"appearance-launcher-use-distro-logo-description": "Use o logo da sua distribuição como o ícone do Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Use o logo da sua distribuição como o ícone do Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Usar o logótipo da distro em vez do ícone.", "appearance-launcher-use-distro-logo-label": "Usar o logótipo da distro em vez do ícone",
"appearance-pinned-static-description": "Sempre posicione os ícones de aplicativos fixados à esquerda em ordem estática.", "appearance-pinned-static-description": "Sempre posicione os ícones de aplicativos fixados à esquerda em ordem estática.",
"appearance-pinned-static-label": "Aplicativos fixados estaticamente", "appearance-pinned-static-label": "Aplicativos fixados estaticamente",
"appearance-position-description": "Escolha onde o dock aparece na tela.", "appearance-position-description": "Escolha onde o dock aparece na tela.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Sem som, ainda mostra o pop-up e no histórico.", "rules-action-mute-desc": "Sem som, ainda mostra o pop-up e no histórico.",
"rules-add": "Adicionar regra", "rules-add": "Adicionar regra",
"rules-delete": "Excluir regra", "rules-delete": "Excluir regra",
"rules-description": "Corresponder ao nome da aplicação ou conteúdo. A primeira correspondência vence.", "rules-description": "Corresponder nome da aplicação ou conteúdo. As regras são verificadas por ordem, e a primeira correspondência é aplicada.",
"rules-edit": "Editar regra", "rules-edit": "Editar regra",
"rules-label": "Regras de Filtro", "rules-label": "Regras de Filtro",
"rules-pattern-label": "Padrão", "rules-pattern-label": "Padrão",
@@ -2057,6 +2057,8 @@
"apikey-label": "Chave de API", "apikey-label": "Chave de API",
"apikey-managed-by-env": "Gerenciado através da variável de ambiente NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Gerenciado através da variável de ambiente NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Insira sua chave da API Wallhaven", "apikey-placeholder": "Insira sua chave da API Wallhaven",
"appearance-dark-tab": "Escuro",
"appearance-light-tab": "Claro",
"apply-all-monitors-description": "Aplica o papel de parede selecionado a todos os monitores de uma só vez.", "apply-all-monitors-description": "Aplica o papel de parede selecionado a todos os monitores de uma só vez.",
"apply-all-monitors-label": "Aplicar a todos os monitores", "apply-all-monitors-label": "Aplicar a todos os monitores",
"categories-anime": "Anime", "categories-anime": "Anime",
+8 -6
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Плотность панели", "appearance-density-label": "Плотность панели",
"appearance-desc": "Настройка внешнего вида и положения панели.", "appearance-desc": "Настройка внешнего вида и положения панели.",
"appearance-display-mode-description": "Выберите, когда панель видна.", "appearance-display-mode-description": "Выберите, когда панель видна.",
"appearance-enable-exclusion-zone-inset-description": "Уменьшите зону исключения на 1 физический пиксель, чтобы окна вплотную идеально заходили под край Bar.", "appearance-enable-exclusion-zone-inset-description": "Уменьшите зону исключения на 1 физический пиксель, чтобы окна вплотную идеально заходили под край панели.",
"appearance-enable-exclusion-zone-inset-label": "Внутренняя зона исключения", "appearance-enable-exclusion-zone-inset-label": "Внутренняя зона исключения",
"appearance-floating-description": "Отображает панель как плавающую 'таблетку'.", "appearance-floating-description": "Отображает панель как плавающую 'таблетку'.",
"appearance-floating-label": "Плавающая панель", "appearance-floating-label": "Плавающая панель",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Генерировать шаблоны для предопределённых схем", "predefined-generate-templates-label": "Генерировать шаблоны для предопределённых схем",
"predefined-title": "Предопределённые цветовые схемы", "predefined-title": "Предопределённые цветовые схемы",
"sync-gsettings-description": "Сопоставить системную тему с активным светлым или темным вариантом.", "sync-gsettings-description": "Сопоставить системную тему с активным светлым или темным вариантом.",
"sync-gsettings-label": "Синхронизировать Системную Тему", "sync-gsettings-label": "Синхронизировать системную тему",
"templates-desc": "Применение цветов к внешним приложениям.", "templates-desc": "Применение цветов к внешним приложениям.",
"templates-filter-description": "Показать шаблоны из определённой категории.", "templates-filter-description": "Показать шаблоны из определённой категории.",
"templates-filter-label": "Фильтровать по категории", "templates-filter-label": "Фильтровать по категории",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Позиция запускателя", "appearance-launcher-position-label": "Позиция запускателя",
"appearance-launcher-position-start": "Старт", "appearance-launcher-position-start": "Старт",
"appearance-launcher-use-distro-logo-description": "Используйте логотип вашего дистрибутива в качестве значка Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Используйте логотип вашего дистрибутива в качестве значка Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Использовать логотип дистрибутива вместо иконки.", "appearance-launcher-use-distro-logo-label": "Использовать логотип дистрибутива вместо иконки",
"appearance-pinned-static-description": "Всегда перемещайте закреплённые значки приложений влево в статичном порядке.", "appearance-pinned-static-description": "Всегда перемещайте закреплённые значки приложений влево в статичном порядке.",
"appearance-pinned-static-label": "Закреплённые статические приложения", "appearance-pinned-static-label": "Закреплённые статические приложения",
"appearance-position-description": "Выберите, где док будет отображаться на экране.", "appearance-position-description": "Выберите, где док будет отображаться на экране.",
@@ -1227,7 +1227,7 @@
"screen-corners-solid-black-label": "Сплошные чёрные углы", "screen-corners-solid-black-label": "Сплошные чёрные углы",
"screen-corners-title": "Углы экрана", "screen-corners-title": "Углы экрана",
"settings-copied": "Настройки скопированы в буфер обмена", "settings-copied": "Настройки скопированы в буфер обмена",
"tab-basics": "Основы", "tab-basics": "Основное",
"tab-keybinds": "Горячие клавиши" "tab-keybinds": "Горячие клавиши"
}, },
"hooks": { "hooks": {
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Нет звука, всплывающее окно всё равно отображается и в истории.", "rules-action-mute-desc": "Нет звука, всплывающее окно всё равно отображается и в истории.",
"rules-add": "Добавить правило", "rules-add": "Добавить правило",
"rules-delete": "Удалить правило", "rules-delete": "Удалить правило",
"rules-description": "Сопоставить имя приложения или содержимое. Первое совпадение выигрывает.", "rules-description": "Сопоставить название приложения или содержимое. Правила проверяются по порядку, и первое совпадение применяется.",
"rules-edit": "Редактировать правило", "rules-edit": "Редактировать правило",
"rules-label": "Правила Фильтрации", "rules-label": "Правила Фильтрации",
"rules-pattern-label": "Шаблон", "rules-pattern-label": "Шаблон",
@@ -2057,6 +2057,8 @@
"apikey-label": "Ключ API", "apikey-label": "Ключ API",
"apikey-managed-by-env": "Управляется через переменную окружения NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Управляется через переменную окружения NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Введите свой API-ключ Wallhaven", "apikey-placeholder": "Введите свой API-ключ Wallhaven",
"appearance-dark-tab": "Темный",
"appearance-light-tab": "Светлый",
"apply-all-monitors-description": "Применить выбранные обои ко всем мониторам одновременно.", "apply-all-monitors-description": "Применить выбранные обои ко всем мониторам одновременно.",
"apply-all-monitors-label": "Применить ко всем мониторам", "apply-all-monitors-label": "Применить ко всем мониторам",
"categories-anime": "Аниме", "categories-anime": "Аниме",
@@ -2214,7 +2216,7 @@
"saved": "Сохранено", "saved": "Сохранено",
"scan-again": "Сканировать снова", "scan-again": "Сканировать снова",
"searching": "Поиск ближайших сетей...", "searching": "Поиск ближайших сетей...",
"security-open": "Открыть", "security-open": "Открытая",
"security-wep": "WEP", "security-wep": "WEP",
"security-wpa": "WPA/WPA2/WPA3 Персональный", "security-wpa": "WPA/WPA2/WPA3 Персональный",
"security-wpa-ent": "WPA Enterprise", "security-wpa-ent": "WPA Enterprise",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Stapeldensitet", "appearance-density-label": "Stapeldensitet",
"appearance-desc": "Anpassa stapelns utseende och position.", "appearance-desc": "Anpassa stapelns utseende och position.",
"appearance-display-mode-description": "Välj när listen är synlig.", "appearance-display-mode-description": "Välj när listen är synlig.",
"appearance-enable-exclusion-zone-inset-description": "Minska exklusionszonen med 1 fysisk pixel så att fönster som ligger kant i kant perfekt överlappar under Bar-kanten.", "appearance-enable-exclusion-zone-inset-description": "Minska exklusionszonen med 1 fysisk pixel så att fönster som ligger kant i kant perfekt överlappar under stapelkanten.",
"appearance-enable-exclusion-zone-inset-label": "Infälld uteslutningszon", "appearance-enable-exclusion-zone-inset-label": "Infälld uteslutningszon",
"appearance-floating-description": "Visa stapeln som en flytande 'piller'.", "appearance-floating-description": "Visa stapeln som en flytande 'piller'.",
"appearance-floating-label": "Flytande stapel", "appearance-floating-label": "Flytande stapel",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Generera mallar för fördefinierade scheman", "predefined-generate-templates-label": "Generera mallar för fördefinierade scheman",
"predefined-title": "Fördefinierade färgscheman", "predefined-title": "Fördefinierade färgscheman",
"sync-gsettings-description": "Matcha systemtemat med den aktiva ljusa eller mörka varianten.", "sync-gsettings-description": "Matcha systemtemat med den aktiva ljusa eller mörka varianten.",
"sync-gsettings-label": "Synkronisera Systemtema", "sync-gsettings-label": "Synkronisera systemtema",
"templates-desc": "Tillämpa färger på externa applikationer.", "templates-desc": "Tillämpa färger på externa applikationer.",
"templates-filter-description": "Visa mallar från en specifik kategori.", "templates-filter-description": "Visa mallar från en specifik kategori.",
"templates-filter-label": "Filtrera efter kategori", "templates-filter-label": "Filtrera efter kategori",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Startarens position", "appearance-launcher-position-label": "Startarens position",
"appearance-launcher-position-start": "Starta", "appearance-launcher-position-start": "Starta",
"appearance-launcher-use-distro-logo-description": "Använd din distributions logotyp som Dock Launcher-ikon.", "appearance-launcher-use-distro-logo-description": "Använd din distributions logotyp som Dock Launcher-ikon.",
"appearance-launcher-use-distro-logo-label": "Använd distrologotyp istället för ikon.", "appearance-launcher-use-distro-logo-label": "Använd distrologotyp istället för ikon",
"appearance-pinned-static-description": "Flytta alltid fastnålade appikoner till vänster i statisk ordning. ", "appearance-pinned-static-description": "Flytta alltid fastnålade appikoner till vänster i statisk ordning. ",
"appearance-pinned-static-label": "Statiska fästa appar", "appearance-pinned-static-label": "Statiska fästa appar",
"appearance-position-description": "Välj var dockan ska visas på skärmen.", "appearance-position-description": "Välj var dockan ska visas på skärmen.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Inget ljud, visar fortfarande popup och i historiken.", "rules-action-mute-desc": "Inget ljud, visar fortfarande popup och i historiken.",
"rules-add": "Lägg till regel", "rules-add": "Lägg till regel",
"rules-delete": "Ta bort regel", "rules-delete": "Ta bort regel",
"rules-description": "Matcha appnamn eller innehåll. Första träffen vinner.", "rules-description": "Matcha appnamn eller innehåll. Regler kontrolleras i ordning, och den första matchningen tillämpas.",
"rules-edit": "Redigera regel", "rules-edit": "Redigera regel",
"rules-label": "Filterregler", "rules-label": "Filterregler",
"rules-pattern-label": "Mönster", "rules-pattern-label": "Mönster",
@@ -2057,6 +2057,8 @@
"apikey-label": "API-nyckel", "apikey-label": "API-nyckel",
"apikey-managed-by-env": "Hanteras via miljövariabeln NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Hanteras via miljövariabeln NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Ange din Wallhaven API-nyckel", "apikey-placeholder": "Ange din Wallhaven API-nyckel",
"appearance-dark-tab": "Mörk",
"appearance-light-tab": "Ljus",
"apply-all-monitors-description": "Tillämpa den valda bakgrundsbilden på alla skärmar.", "apply-all-monitors-description": "Tillämpa den valda bakgrundsbilden på alla skärmar.",
"apply-all-monitors-label": "Tillämpa på alla skärmar", "apply-all-monitors-label": "Tillämpa på alla skärmar",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Araç Çubuğu yoğunluğu", "appearance-density-label": "Araç Çubuğu yoğunluğu",
"appearance-desc": "Araç çubuğunun görünümünü ve konumunu özelleştirin.", "appearance-desc": "Araç çubuğunun görünümünü ve konumunu özelleştirin.",
"appearance-display-mode-description": "Çubuğun ne zaman görünür olacağını seçin.", "appearance-display-mode-description": "Çubuğun ne zaman görünür olacağını seçin.",
"appearance-enable-exclusion-zone-inset-description": "Hariç tutma bölgesini 1 fiziksel piksel kadar azaltın, böylece Bar kenarının altına tam oturan pencereler kusursuzca taşar.", "appearance-enable-exclusion-zone-inset-description": "Hariç tutma bölgesini 1 fiziksel piksel azaltın, böylece araç çubuğu kenarının altına tam oturan pencereler kusursuzca taşar.",
"appearance-enable-exclusion-zone-inset-label": "Girintili dışlama bölgesi", "appearance-enable-exclusion-zone-inset-label": "Girintili dışlama bölgesi",
"appearance-floating-description": "Araç çubuğunu yüzen bir 'kapsül' olarak görüntüler. Not: Bu, ekran köşelerini kenarlara taşıyacaktır.", "appearance-floating-description": "Araç çubuğunu yüzen bir 'kapsül' olarak görüntüler. Not: Bu, ekran köşelerini kenarlara taşıyacaktır.",
"appearance-floating-label": "Yüzen araç çubuğu", "appearance-floating-label": "Yüzen araç çubuğu",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Önceden tanımlanmış şemalar için şablonlar oluşturun", "predefined-generate-templates-label": "Önceden tanımlanmış şemalar için şablonlar oluşturun",
"predefined-title": "Önceden tanımlanmış renk şemaları", "predefined-title": "Önceden tanımlanmış renk şemaları",
"sync-gsettings-description": "Sistem temasını aktif açık veya koyu varyantla eşleştir.", "sync-gsettings-description": "Sistem temasını aktif açık veya koyu varyantla eşleştir.",
"sync-gsettings-label": "Sistem Temasını Senkronize Et", "sync-gsettings-label": "Sistem temasını senkronize et",
"templates-desc": "Renkleri harici uygulamalara uygula.", "templates-desc": "Renkleri harici uygulamalara uygula.",
"templates-filter-description": "Belirli bir kategoriden şablonları göster.", "templates-filter-description": "Belirli bir kategoriden şablonları göster.",
"templates-filter-label": "Kategoriye göre filtrele", "templates-filter-label": "Kategoriye göre filtrele",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Başlatıcı konumu", "appearance-launcher-position-label": "Başlatıcı konumu",
"appearance-launcher-position-start": "Başlat", "appearance-launcher-position-start": "Başlat",
"appearance-launcher-use-distro-logo-description": "Dağıtımınızın logosunu Dock Launcher simgesi olarak kullanın.", "appearance-launcher-use-distro-logo-description": "Dağıtımınızın logosunu Dock Launcher simgesi olarak kullanın.",
"appearance-launcher-use-distro-logo-label": "Simge yerine dağıtım logosunu kullan.", "appearance-launcher-use-distro-logo-label": "Simge yerine dağıtım logosunu kullan",
"appearance-pinned-static-description": "Sabit sırada, sabitlenmiş uygulama simgelerini her zaman sola itin.", "appearance-pinned-static-description": "Sabit sırada, sabitlenmiş uygulama simgelerini her zaman sola itin.",
"appearance-pinned-static-label": "Sabitlenmiş statik uygulamalar", "appearance-pinned-static-label": "Sabitlenmiş statik uygulamalar",
"appearance-position-description": "Dockun ekranda nerede görüneceğini seçin.", "appearance-position-description": "Dockun ekranda nerede görüneceğini seçin.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Ses yok, yine de açılır pencere gösteriyor ve geçmişte.", "rules-action-mute-desc": "Ses yok, yine de açılır pencere gösteriyor ve geçmişte.",
"rules-add": "Kural Ekle", "rules-add": "Kural Ekle",
"rules-delete": "Kuralı Sil", "rules-delete": "Kuralı Sil",
"rules-description": "Uygulama adı veya içerikle eşleştir. İlk eşleşme kazanır.", "rules-description": "Uygulama adını veya içeriği eşleştir. Kurallar sırayla kontrol edilir ve ilk eşleşen uygulanır.",
"rules-edit": "Kuralı Düzenle", "rules-edit": "Kuralı Düzenle",
"rules-label": "Filtre Kuralları", "rules-label": "Filtre Kuralları",
"rules-pattern-label": "Desen", "rules-pattern-label": "Desen",
@@ -2057,6 +2057,8 @@
"apikey-label": "API anahtarı", "apikey-label": "API anahtarı",
"apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY ortam değişkeni aracılığıyla yönetilir.", "apikey-managed-by-env": "NOCTALIA_WALLHAVEN_API_KEY ortam değişkeni aracılığıyla yönetilir.",
"apikey-placeholder": "Wallhaven API anahtarınızı girin", "apikey-placeholder": "Wallhaven API anahtarınızı girin",
"appearance-dark-tab": "Koyu",
"appearance-light-tab": "Açık",
"apply-all-monitors-description": "Seçilen duvar kâğıdını tüm monitörlere aynı anda uygulayın.", "apply-all-monitors-description": "Seçilen duvar kâğıdını tüm monitörlere aynı anda uygulayın.",
"apply-all-monitors-label": "Tüm monitörler için uygula", "apply-all-monitors-label": "Tüm monitörler için uygula",
"categories-anime": "Anime", "categories-anime": "Anime",
+6 -4
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "Щільність панелі", "appearance-density-label": "Щільність панелі",
"appearance-desc": "Налаштуйте зовнішній вигляд та положення панелі.", "appearance-desc": "Налаштуйте зовнішній вигляд та положення панелі.",
"appearance-display-mode-description": "Виберіть, коли панель видима.", "appearance-display-mode-description": "Виберіть, коли панель видима.",
"appearance-enable-exclusion-zone-inset-description": "Зменшіть зону виключення на 1 фізичний піксель, щоб вікна впритул ідеально заходили під край Bar.", "appearance-enable-exclusion-zone-inset-description": "Зменшіть зону виключення на 1 фізичний піксель, щоб вікна впритул ідеально заходили під край панели.",
"appearance-enable-exclusion-zone-inset-label": "Внутрішня зона виключення", "appearance-enable-exclusion-zone-inset-label": "Внутрішня зона виключення",
"appearance-floating-description": "Відображати панель як плаваючу 'капсулу'. Примітка: Це перемістить кути екрана до країв.", "appearance-floating-description": "Відображати панель як плаваючу 'капсулу'. Примітка: Це перемістить кути екрана до країв.",
"appearance-floating-label": "Плаваюча панель (Острівець)", "appearance-floating-label": "Плаваюча панель (Острівець)",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Генерувати шаблони для попередньо визначених схем", "predefined-generate-templates-label": "Генерувати шаблони для попередньо визначених схем",
"predefined-title": "Попередньо визначені колірні схеми", "predefined-title": "Попередньо визначені колірні схеми",
"sync-gsettings-description": "Зіставити системну тему з активним світлим або темним варіантом.", "sync-gsettings-description": "Зіставити системну тему з активним світлим або темним варіантом.",
"sync-gsettings-label": "Синхронізувати Системну Тему", "sync-gsettings-label": "Синхронізувати системну тему",
"templates-desc": "Застосовувати кольори до зовнішніх застосунків.", "templates-desc": "Застосовувати кольори до зовнішніх застосунків.",
"templates-filter-description": "Показати шаблони з певної категорії.", "templates-filter-description": "Показати шаблони з певної категорії.",
"templates-filter-label": "Фільтрувати за категорією", "templates-filter-label": "Фільтрувати за категорією",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "Позиція запускача", "appearance-launcher-position-label": "Позиція запускача",
"appearance-launcher-position-start": "Старт", "appearance-launcher-position-start": "Старт",
"appearance-launcher-use-distro-logo-description": "Використовуйте логотип вашого дистрибутива як значок Dock Launcher.", "appearance-launcher-use-distro-logo-description": "Використовуйте логотип вашого дистрибутива як значок Dock Launcher.",
"appearance-launcher-use-distro-logo-label": "Використовувати логотип дистрибутива замість іконки.", "appearance-launcher-use-distro-logo-label": "Використовувати логотип дистрибутива замість іконки",
"appearance-pinned-static-description": "Завжди закріплюйте значки програм ліворуч у статичному порядку.", "appearance-pinned-static-description": "Завжди закріплюйте значки програм ліворуч у статичному порядку.",
"appearance-pinned-static-label": "Статично закріплені програми", "appearance-pinned-static-label": "Статично закріплені програми",
"appearance-position-description": "Виберіть, де док відображатиметься на екрані.", "appearance-position-description": "Виберіть, де док відображатиметься на екрані.",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Немає звуку, все одно показує спливаюче вікно та в історії.", "rules-action-mute-desc": "Немає звуку, все одно показує спливаюче вікно та в історії.",
"rules-add": "Додати правило", "rules-add": "Додати правило",
"rules-delete": "Видалити правило", "rules-delete": "Видалити правило",
"rules-description": "Зіставити назву програми або вміст. Перший збіг виграє.", "rules-description": "Зіставити назву застосунку або вміст. Правила перевіряються по черзі, і перше співпадіння застосовується.",
"rules-edit": "Редагувати правило", "rules-edit": "Редагувати правило",
"rules-label": "Правила Фільтрації", "rules-label": "Правила Фільтрації",
"rules-pattern-label": "Шаблон", "rules-pattern-label": "Шаблон",
@@ -2057,6 +2057,8 @@
"apikey-label": "Ключ API", "apikey-label": "Ключ API",
"apikey-managed-by-env": "Керується через змінну середовища NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Керується через змінну середовища NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Введіть свій API-ключ Wallhaven", "apikey-placeholder": "Введіть свій API-ключ Wallhaven",
"appearance-dark-tab": "Темний",
"appearance-light-tab": "Світлий",
"apply-all-monitors-description": "Застосувати вибрані шпалери до всіх моніторів одночасно.", "apply-all-monitors-description": "Застосувати вибрані шпалери до всіх моніторів одночасно.",
"apply-all-monitors-label": "Застосувати до всіх моніторів", "apply-all-monitors-label": "Застосувати до всіх моніторів",
"categories-anime": "Аніме", "categories-anime": "Аніме",
+14 -12
View File
@@ -61,8 +61,8 @@
"hide-if-not-detected-description": "Ẩn tiện ích khi không tìm thấy pin trên hệ thống.", "hide-if-not-detected-description": "Ẩn tiện ích khi không tìm thấy pin trên hệ thống.",
"hide-if-not-detected-label": "Ẩn khi không được phát hiện", "hide-if-not-detected-label": "Ẩn khi không được phát hiện",
"low-battery-threshold-label": "Ngưỡng cảnh báo pin yếu", "low-battery-threshold-label": "Ngưỡng cảnh báo pin yếu",
"show-noctalia-performance-description": "Hiển thị nút chuyển đổi chế độ hiệu suất của Noctalia bên trong bảng điều khiển pin.<br>Tắt đổ bóng và hoạt ảnh trong Noctalia để giảm mức sử dụng tài nguyên.", "show-noctalia-performance-description": "Hiển thị nút chuyển đổi sang chế độ hiệu năng của Noctalia bên trong bảng điều khiển pin.<br>Tắt đổ bóng và hoạt ảnh trong Noctalia để giảm mức sử dụng tài nguyên.",
"show-noctalia-performance-label": "Hiển thị công tắc hiệu suất Noctalia", "show-noctalia-performance-label": "Hiển thị công tắc hiệu năng của Noctalia",
"show-power-profile-description": "Hiển thị lựa chọn cấu hình nguồn bên trong bảng điều khiển pin.", "show-power-profile-description": "Hiển thị lựa chọn cấu hình nguồn bên trong bảng điều khiển pin.",
"show-power-profile-label": "Hiển thị điều khiển hồ sơ năng lượng" "show-power-profile-label": "Hiển thị điều khiển hồ sơ năng lượng"
}, },
@@ -224,8 +224,8 @@
"disk-path-description": "Chọn điểm gắn kết đĩa nào để giám sát.", "disk-path-description": "Chọn điểm gắn kết đĩa nào để giám sát.",
"disk-path-label": "Đường dẫn ổ đĩa", "disk-path-label": "Đường dẫn ổ đĩa",
"gpu-temperature-description": "Hiển thị thông số nhiệt độ GPU nếu có.", "gpu-temperature-description": "Hiển thị thông số nhiệt độ GPU nếu có.",
"load-average-description": "Hiển thị mức tải trung bình của hệ thống.", "load-average-description": "Hiển thị mức tải trọng trung bình của hệ thống.",
"load-average-label": "Mức tải trung bình", "load-average-label": "Mức tải trọng trung bình",
"memory-percentage-description": "Hiển thị mức sử dụng bộ nhớ dưới dạng phần trăm thay vì giá trị tuyệt đối.", "memory-percentage-description": "Hiển thị mức sử dụng bộ nhớ dưới dạng phần trăm thay vì giá trị tuyệt đối.",
"memory-percentage-label": "Bộ nhớ theo phần trăm", "memory-percentage-label": "Bộ nhớ theo phần trăm",
"memory-usage-description": "Hiển thị thông tin sử dụng RAM hiện tại.", "memory-usage-description": "Hiển thị thông tin sử dụng RAM hiện tại.",
@@ -239,7 +239,7 @@
"storage-usage-description": "Hiển thị thông tin dung lượng ổ đĩa.", "storage-usage-description": "Hiển thị thông tin dung lượng ổ đĩa.",
"storage-usage-label": "Sử dụng bộ nhớ", "storage-usage-label": "Sử dụng bộ nhớ",
"swap-usage-description": "Hiển thị mức sử dụng bộ nhớ swap.", "swap-usage-description": "Hiển thị mức sử dụng bộ nhớ swap.",
"swap-usage-label": "Sử dụng Swap", "swap-usage-label": "Mức sử dụng bộ nhớ swap",
"use-monospace-font-description": "Sử dụng phông chữ đơn cách để có chiều rộng ký tự nhất quán.", "use-monospace-font-description": "Sử dụng phông chữ đơn cách để có chiều rộng ký tự nhất quán.",
"use-monospace-font-label": "Phông chữ đơn cách", "use-monospace-font-label": "Phông chữ đơn cách",
"use-padding-description": "Đệm các giá trị văn bản bằng khoảng trắng đầu dòng để ngăn chặn sự dịch chuyển bố cục.", "use-padding-description": "Đệm các giá trị văn bản bằng khoảng trắng đầu dòng để ngăn chặn sự dịch chuyển bố cục.",
@@ -945,7 +945,7 @@
"predefined-generate-templates-label": "Tạo mẫu cho các lược đồ cài sẵn", "predefined-generate-templates-label": "Tạo mẫu cho các lược đồ cài sẵn",
"predefined-title": "Sơ Đồ Màu Định Sẵn", "predefined-title": "Sơ Đồ Màu Định Sẵn",
"sync-gsettings-description": "Khớp chủ đề hệ thống với biến thể sáng hoặc tối đang hoạt động.", "sync-gsettings-description": "Khớp chủ đề hệ thống với biến thể sáng hoặc tối đang hoạt động.",
"sync-gsettings-label": "Đồng BHóa Chủ ĐHThống", "sync-gsettings-label": "Đồng bchủ đhthống",
"templates-desc": "Áp dụng màu sắc cho các ứng dụng bên ngoài.", "templates-desc": "Áp dụng màu sắc cho các ứng dụng bên ngoài.",
"templates-filter-description": "Hiển thị các mẫu từ một danh mục cụ thể.", "templates-filter-description": "Hiển thị các mẫu từ một danh mục cụ thể.",
"templates-filter-label": "Lọc theo danh mục", "templates-filter-label": "Lọc theo danh mục",
@@ -1244,7 +1244,7 @@
"performance-mode-disabled-label": "Chế độ hiệu suất đã tắt", "performance-mode-disabled-label": "Chế độ hiệu suất đã tắt",
"performance-mode-disabled-placeholder": "Ví dụ: notify-send \"Performance\" \"Mode disabled\"", "performance-mode-disabled-placeholder": "Ví dụ: notify-send \"Performance\" \"Mode disabled\"",
"performance-mode-enabled-description": "Lệnh sẽ được chạy khi chế độ hiệu năng của Noctalia được bật.", "performance-mode-enabled-description": "Lệnh sẽ được chạy khi chế độ hiệu năng của Noctalia được bật.",
"performance-mode-enabled-label": "Chế độ hiệu suất đã bật", "performance-mode-enabled-label": "Chế độ hiệu năng đã bật",
"performance-mode-enabled-placeholder": "Ví dụ: notify-send \"Performance\" \"Mode enabled\"", "performance-mode-enabled-placeholder": "Ví dụ: notify-send \"Performance\" \"Mode enabled\"",
"screen-lock-description": "Lệnh được thực thi khi màn hình bị khóa.", "screen-lock-description": "Lệnh được thực thi khi màn hình bị khóa.",
"screen-lock-label": "Màn hình đã khóa", "screen-lock-label": "Màn hình đã khóa",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "Không có âm thanh, vẫn hiển thị cửa sổ bật lên và trong lịch sử.", "rules-action-mute-desc": "Không có âm thanh, vẫn hiển thị cửa sổ bật lên và trong lịch sử.",
"rules-add": "Thêm quy tắc", "rules-add": "Thêm quy tắc",
"rules-delete": "Xóa quy tắc", "rules-delete": "Xóa quy tắc",
"rules-description": "Tìm ứng dụng theo tên hoặc nội dung. Kết quả đầu tiên phù hợp sẽ được chọn.", "rules-description": "Khớp tên ứng dụng hoặc nội dung. Các quy tắc được kiểm tra theo thứ tự, và kết quả khớp đầu tiên sẽ được áp dụng.",
"rules-edit": "Sửa quy tắc", "rules-edit": "Sửa quy tắc",
"rules-label": "Quy tắc lọc", "rules-label": "Quy tắc lọc",
"rules-pattern-label": "Mẫu", "rules-pattern-label": "Mẫu",
@@ -1885,7 +1885,7 @@
"disk": "Ổ đĩa", "disk": "Ổ đĩa",
"download-speed": "Tốc độ tải xuống", "download-speed": "Tốc độ tải xuống",
"gpu-temp": "Nhiệt độ GPU", "gpu-temp": "Nhiệt độ GPU",
"load-average": "Tải trung bình", "load-average": "Tải trọng trung bình ",
"title": "Giám sát Hệ thống", "title": "Giám sát Hệ thống",
"upload-speed": "Tốc độ tải lên" "upload-speed": "Tốc độ tải lên"
}, },
@@ -1949,9 +1949,9 @@
"not-installed": "wlsunset chưa cài đặt" "not-installed": "wlsunset chưa cài đặt"
}, },
"noctalia-performance": { "noctalia-performance": {
"disabled": "Chế độ hiệu suất đã tắt", "disabled": "Chế độ hiệu năng đã tắt",
"enabled": "Chế độ hiệu suất đã bật", "enabled": "Chế độ hiệu năng đã bật",
"label": "Noctalia Hiệu suất" "label": "Chế độ hiệu năng của Noctalia"
}, },
"power-profile": { "power-profile": {
"changed": "Cấu hình nguồn đã thay đổi", "changed": "Cấu hình nguồn đã thay đổi",
@@ -2057,6 +2057,8 @@
"apikey-label": "Khóa API", "apikey-label": "Khóa API",
"apikey-managed-by-env": "Được quản lý thông qua biến môi trường NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Được quản lý thông qua biến môi trường NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Nhập Wallhaven API Key của bạn", "apikey-placeholder": "Nhập Wallhaven API Key của bạn",
"appearance-dark-tab": "Tối",
"appearance-light-tab": "Sáng",
"apply-all-monitors-description": "Áp dụng hình nền đã chọn cho tất cả màn hình.", "apply-all-monitors-description": "Áp dụng hình nền đã chọn cho tất cả màn hình.",
"apply-all-monitors-label": "Áp dụng cho tất cả màn hình", "apply-all-monitors-label": "Áp dụng cho tất cả màn hình",
"categories-anime": "Anime", "categories-anime": "Anime",
+5 -3
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "状态栏密度", "appearance-density-label": "状态栏密度",
"appearance-desc": "自定义状态栏的外观和位置。", "appearance-desc": "自定义状态栏的外观和位置。",
"appearance-display-mode-description": "选择栏何时可见。", "appearance-display-mode-description": "选择栏何时可见。",
"appearance-enable-exclusion-zone-inset-description": "减少排除区域1个物理像素,以便齐平的窗口完美地延伸到 Bar 边缘下方。", "appearance-enable-exclusion-zone-inset-description": "减少排除区域1个物理像素,以便齐平的窗口完美地延伸到状态栏边缘下方。",
"appearance-enable-exclusion-zone-inset-label": "内嵌排除区域", "appearance-enable-exclusion-zone-inset-label": "内嵌排除区域",
"appearance-floating-description": "将状态栏显示为浮动的“药丸”形状。", "appearance-floating-description": "将状态栏显示为浮动的“药丸”形状。",
"appearance-floating-label": "浮动状态栏", "appearance-floating-label": "浮动状态栏",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "启动器位置", "appearance-launcher-position-label": "启动器位置",
"appearance-launcher-position-start": "开始", "appearance-launcher-position-start": "开始",
"appearance-launcher-use-distro-logo-description": "使用你的发行版标志作为 Dock Launcher 图标。", "appearance-launcher-use-distro-logo-description": "使用你的发行版标志作为 Dock Launcher 图标。",
"appearance-launcher-use-distro-logo-label": "使用发行版标志而非图标", "appearance-launcher-use-distro-logo-label": "使用发行版标志而非图标",
"appearance-pinned-static-description": "始终将固定的应用图标按静态顺序推到左侧。", "appearance-pinned-static-description": "始终将固定的应用图标按静态顺序推到左侧。",
"appearance-pinned-static-label": "静态固定应用", "appearance-pinned-static-label": "静态固定应用",
"appearance-position-description": "选择 Dock 栏在屏幕上显示的位置。", "appearance-position-description": "选择 Dock 栏在屏幕上显示的位置。",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "无声音,仍显示弹窗并记录在历史中。", "rules-action-mute-desc": "无声音,仍显示弹窗并记录在历史中。",
"rules-add": "添加规则", "rules-add": "添加规则",
"rules-delete": "删除规则", "rules-delete": "删除规则",
"rules-description": "匹配应用名称或内容。个匹配项胜出。", "rules-description": "匹配应用名称或内容。规则按顺序检查,并应用第一个匹配项。",
"rules-edit": "编辑规则", "rules-edit": "编辑规则",
"rules-label": "筛选规则", "rules-label": "筛选规则",
"rules-pattern-label": "模式", "rules-pattern-label": "模式",
@@ -2057,6 +2057,8 @@
"apikey-label": "API 密钥", "apikey-label": "API 密钥",
"apikey-managed-by-env": "通过 NOCTALIA_WALLHAVEN_API_KEY 环境变量进行管理。", "apikey-managed-by-env": "通过 NOCTALIA_WALLHAVEN_API_KEY 环境变量进行管理。",
"apikey-placeholder": "输入您的 Wallhaven API 密钥", "apikey-placeholder": "输入您的 Wallhaven API 密钥",
"appearance-dark-tab": "深色",
"appearance-light-tab": "浅色",
"apply-all-monitors-description": "将选定的壁纸应用到所有显示器。", "apply-all-monitors-description": "将选定的壁纸应用到所有显示器。",
"apply-all-monitors-label": "应用到所有显示器", "apply-all-monitors-label": "应用到所有显示器",
"categories-anime": "动漫", "categories-anime": "动漫",
+5 -3
View File
@@ -834,7 +834,7 @@
"appearance-density-label": "工具列密度", "appearance-density-label": "工具列密度",
"appearance-desc": "自訂工具列的外觀及位置", "appearance-desc": "自訂工具列的外觀及位置",
"appearance-display-mode-description": "選擇列何時可見", "appearance-display-mode-description": "選擇列何時可見",
"appearance-enable-exclusion-zone-inset-description": "減少排除區域1個實體像素,以便齊平的視窗能完美地延伸到 Bar 邊緣下方。", "appearance-enable-exclusion-zone-inset-description": "減少排除區域1個實體像素,以便齊平的視窗能完美地延伸到工具列邊緣下方。",
"appearance-enable-exclusion-zone-inset-label": "內嵌排除區域", "appearance-enable-exclusion-zone-inset-label": "內嵌排除區域",
"appearance-floating-description": "將工具列以懸浮的圓弧長條狀顯示", "appearance-floating-description": "將工具列以懸浮的圓弧長條狀顯示",
"appearance-floating-label": "懸浮工具列", "appearance-floating-label": "懸浮工具列",
@@ -1154,7 +1154,7 @@
"appearance-launcher-position-label": "啟動器位置", "appearance-launcher-position-label": "啟動器位置",
"appearance-launcher-position-start": "開始", "appearance-launcher-position-start": "開始",
"appearance-launcher-use-distro-logo-description": "使用你的發行版標誌作為 Dock Launcher 圖示。", "appearance-launcher-use-distro-logo-description": "使用你的發行版標誌作為 Dock Launcher 圖示。",
"appearance-launcher-use-distro-logo-label": "使用發行版標誌而非圖示", "appearance-launcher-use-distro-logo-label": "使用發行版標誌而非圖示",
"appearance-pinned-static-description": "總是將釘選的程式圖示固定放在左邊", "appearance-pinned-static-description": "總是將釘選的程式圖示固定放在左邊",
"appearance-pinned-static-label": "固定放置釘選程式", "appearance-pinned-static-label": "固定放置釘選程式",
"appearance-position-description": "選擇 Dock 該放在畫面的哪裡", "appearance-position-description": "選擇 Dock 該放在畫面的哪裡",
@@ -1469,7 +1469,7 @@
"rules-action-mute-desc": "無聲音,仍顯示彈出視窗並記錄在歷史中。", "rules-action-mute-desc": "無聲音,仍顯示彈出視窗並記錄在歷史中。",
"rules-add": "新增規則", "rules-add": "新增規則",
"rules-delete": "刪除規則", "rules-delete": "刪除規則",
"rules-description": "匹配應用程式名稱或內容。第一個匹配項勝出。", "rules-description": "匹配應用程式名稱或內容。規則會依序檢查,並套用第一個匹配項。",
"rules-edit": "編輯規則", "rules-edit": "編輯規則",
"rules-label": "篩選規則", "rules-label": "篩選規則",
"rules-pattern-label": "模式", "rules-pattern-label": "模式",
@@ -2057,6 +2057,8 @@
"apikey-label": "API key", "apikey-label": "API key",
"apikey-managed-by-env": "已透過 NOCTALIA_WALLHAVEN_API_KEY 這個環境變數管理", "apikey-managed-by-env": "已透過 NOCTALIA_WALLHAVEN_API_KEY 這個環境變數管理",
"apikey-placeholder": "輸入你的 Wallhaven API Key", "apikey-placeholder": "輸入你的 Wallhaven API Key",
"appearance-dark-tab": "深色",
"appearance-light-tab": "淺色",
"apply-all-monitors-description": "將選定的桌布套用到所有顯示器上", "apply-all-monitors-description": "將選定的桌布套用到所有顯示器上",
"apply-all-monitors-label": "套用到所有顯示器", "apply-all-monitors-label": "套用到所有顯示器",
"categories-anime": "動漫", "categories-anime": "動漫",
+4 -2
View File
@@ -2633,7 +2633,8 @@
"subTab": 0, "subTab": 0,
"subTabLabel": "common.general", "subTabLabel": "common.general",
"visibleWhen": [ "visibleWhen": [
"CompositorService.isNiri" "CompositorService.isNiri",
"Settings.data.wallpaper.overviewEnabled"
] ]
}, },
{ {
@@ -2645,7 +2646,8 @@
"subTab": 0, "subTab": 0,
"subTabLabel": "common.general", "subTabLabel": "common.general",
"visibleWhen": [ "visibleWhen": [
"CompositorService.isNiri" "CompositorService.isNiri",
"Settings.data.wallpaper.overviewEnabled"
] ]
}, },
{ {
+2 -1
View File
@@ -413,7 +413,8 @@ Singleton {
property string wallhavenResolutionHeight: "" property string wallhavenResolutionHeight: ""
property string sortOrder: "name" // "name", "name_desc", "date", "date_desc", "random" property string sortOrder: "name" // "name", "name_desc", "date", "date_desc", "random"
property list<var> favorites: [] property list<var> favorites: []
// Format: [{ "path": "/path/to/wallpaper.jpg", "colorScheme": "...", "darkMode": true, "useWallpaperColors": true, "generationMethod": "tonal-spot" }] // Format: [{ "path": "...", "appearance": "light"|"dark", "colorScheme": "...", "darkMode": bool, "useWallpaperColors": bool, "generationMethod": "...", "paletteColors": [...] }]
// Legacy entries omit "appearance" and use darkMode to infer light vs dark slot.
} }
// applauncher // applauncher
+1 -1
View File
@@ -269,7 +269,7 @@ Singleton {
barVisible: BarService.isVisible, barVisible: BarService.isVisible,
openedPanel: PanelService.openedPanel?.objectName || "", openedPanel: PanelService.openedPanel?.objectName || "",
lockScreenActive: PanelService.lockScreen?.active || false, lockScreenActive: PanelService.lockScreen?.active || false,
wallpapers: WallpaperService.currentWallpapers || {}, wallpapers: WallpaperService.getWallpapersEffectiveMap(),
desktopWidgetsEditMode: DesktopWidgetRegistry.editMode || false, desktopWidgetsEditMode: DesktopWidgetRegistry.editMode || false,
// ------------- // -------------
display: shellStateData.display || {}, display: shellStateData.display || {},
+82 -24
View File
@@ -140,6 +140,7 @@ SmartPanel {
} }
property var currentScreen: Quickshell.screens[currentScreenIndex] property var currentScreen: Quickshell.screens[currentScreenIndex]
property string filterText: "" property string filterText: ""
property int appearanceTabIndex: 0
property alias screenRepeater: screenRepeater property alias screenRepeater: screenRepeater
Component.onCompleted: { Component.onCompleted: {
@@ -218,6 +219,8 @@ SmartPanel {
if (wallhavenView && wallhavenView.gridView) { if (wallhavenView && wallhavenView.gridView) {
wallhavenView.gridView.currentIndex = -1; wallhavenView.gridView.currentIndex = -1;
} }
panelContent.appearanceTabIndex = Settings.data.colorSchemes.darkMode ? 1 : 0;
WallpaperService.wallpaperSelectionAppearance = panelContent.appearanceTabIndex === 1 ? "dark" : "light";
// Give initial focus to search input // Give initial focus to search input
Qt.callLater(() => { Qt.callLater(() => {
if (searchInput.inputItem) { if (searchInput.inputItem) {
@@ -331,6 +334,35 @@ SmartPanel {
Layout.fillWidth: true Layout.fillWidth: true
} }
NTabBar {
id: appearanceTabBar
visible: Settings.data.wallpaper.enabled
Layout.fillWidth: true
currentIndex: panelContent.appearanceTabIndex
spacing: Style.marginM
distributeEvenly: true
onCurrentIndexChanged: {
if (currentIndex < 0) {
return;
}
panelContent.appearanceTabIndex = currentIndex;
WallpaperService.wallpaperSelectionAppearance = currentIndex === 1 ? "dark" : "light";
Settings.data.colorSchemes.darkMode = currentIndex === 1;
}
NTabButton {
text: I18n.tr("wallpaper.panel.appearance-light-tab")
tabIndex: 0
checked: appearanceTabBar.currentIndex === 0
}
NTabButton {
text: I18n.tr("wallpaper.panel.appearance-dark-tab")
tabIndex: 1
checked: appearanceTabBar.currentIndex === 1
}
}
// Monitor tabs // Monitor tabs
NTabBar { NTabBar {
id: screenTabBar id: screenTabBar
@@ -437,13 +469,6 @@ SmartPanel {
} }
} }
NIconButton {
icon: Settings.data.colorSchemes.darkMode ? "moon" : "sun"
tooltipText: Settings.data.colorSchemes.darkMode ? I18n.tr("tooltips.switch-to-light-mode") : I18n.tr("tooltips.switch-to-dark-mode")
baseSize: Style.baseWidgetSize * 0.8
onClicked: Settings.data.colorSchemes.darkMode = !Settings.data.colorSchemes.darkMode
}
NIconButton { NIconButton {
icon: "color-swatch" icon: "color-swatch"
tooltipText: Settings.data.colorSchemes.useWallpaperColors ? I18n.tr("wallpaper.panel.color-extraction-enabled") : I18n.tr("wallpaper.panel.color-extraction-disabled") tooltipText: Settings.data.colorSchemes.useWallpaperColors ? I18n.tr("wallpaper.panel.color-extraction-enabled") : I18n.tr("wallpaper.panel.color-extraction-disabled")
@@ -651,18 +676,31 @@ SmartPanel {
property bool isBrowseMode: Settings.data.wallpaper.viewMode === "browse" property bool isBrowseMode: Settings.data.wallpaper.viewMode === "browse"
property int _browseScanGeneration: 0 property int _browseScanGeneration: 0
// Sort favorites to the top (only for non-directory items) // Order: (1) favorites for the active Light/Dark tab, (2) favorites only for the other appearance,
// (3) everything else. Legacy favorites without "appearance" still match via WallpaperService (darkMode on entry).
function sortFavoritesToTop(items) { function sortFavoritesToTop(items) {
var favorited = []; var forThisAppearance = [];
var nonFavorited = []; var forOtherAppearance = [];
var rest = [];
var app = WallpaperService.wallpaperSelectionAppearance;
for (var i = 0; i < items.length; i++) { for (var i = 0; i < items.length; i++) {
if (!items[i].isDirectory && WallpaperService.isFavorite(items[i].path)) { var it = items[i];
favorited.push(items[i]); if (!it.isDirectory) {
var path = it.path;
var here = WallpaperService.isFavorite(path, app);
var any = WallpaperService.isFavorite(path);
if (here) {
forThisAppearance.push(it);
} else if (any) {
forOtherAppearance.push(it);
} else {
rest.push(it);
}
} else { } else {
nonFavorited.push(items[i]); rest.push(it);
} }
} }
return favorited.concat(nonFavorited); return forThisAppearance.concat(forOtherAppearance).concat(rest);
} }
// Rebuild filteredItems and sync to wallpaperModel (full replacement, no animation). // Rebuild filteredItems and sync to wallpaperModel (full replacement, no animation).
@@ -789,7 +827,13 @@ SmartPanel {
target: WallpaperService target: WallpaperService
function onWallpaperChanged(screenName, path) { function onWallpaperChanged(screenName, path) {
if (targetScreen !== null && screenName === targetScreen.name) { if (targetScreen !== null && screenName === targetScreen.name) {
currentWallpaper = WallpaperService.getWallpaper(targetScreen.name); currentWallpaper = WallpaperService.getWallpaperPathForSlot(targetScreen.name, WallpaperService.wallpaperSelectionAppearance);
}
}
function onWallpaperSelectionAppearanceChanged() {
if (targetScreen !== null) {
currentWallpaper = WallpaperService.getWallpaperPathForSlot(targetScreen.name, WallpaperService.wallpaperSelectionAppearance);
updateFiltered(false);
} }
} }
function onWallpaperDirectoryChanged(screenName, directory) { function onWallpaperDirectoryChanged(screenName, directory) {
@@ -823,7 +867,7 @@ SmartPanel {
return; return;
} }
currentWallpaper = WallpaperService.getWallpaper(targetScreen.name); currentWallpaper = WallpaperService.getWallpaperPathForSlot(targetScreen.name, WallpaperService.wallpaperSelectionAppearance);
if (isBrowseMode) { if (isBrowseMode) {
// In browse mode, scan current directory for both files and directories // In browse mode, scan current directory for both files and directories
@@ -854,8 +898,8 @@ SmartPanel {
WallpaperService.setBrowsePath(targetScreen.name, path); WallpaperService.setBrowsePath(targetScreen.name, path);
} else { } else {
var screen = Settings.data.wallpaper.setWallpaperOnAllMonitors ? undefined : targetScreen.name; var screen = Settings.data.wallpaper.setWallpaperOnAllMonitors ? undefined : targetScreen.name;
WallpaperService.changeWallpaper(path, screen); WallpaperService.changeWallpaper(path, screen, WallpaperService.wallpaperSelectionAppearance);
WallpaperService.applyFavoriteTheme(path, screen); WallpaperService.applyFavoriteTheme(path, screen, WallpaperService.wallpaperSelectionAppearance);
} }
} }
@@ -1077,7 +1121,7 @@ SmartPanel {
property string wallpaperPath: model.path ?? "" property string wallpaperPath: model.path ?? ""
property bool isDirectory: model.isDirectory ?? false property bool isDirectory: model.isDirectory ?? false
property bool isSelected: !isDirectory && (wallpaperPath === currentWallpaper) property bool isSelected: !isDirectory && (wallpaperPath === currentWallpaper)
property bool isFavorited: !isDirectory && WallpaperService.isFavorite(wallpaperPath) property bool isFavorited: !isDirectory && WallpaperService.isFavorite(wallpaperPath, WallpaperService.wallpaperSelectionAppearance)
property string filename: model.name ?? wallpaperPath.split('/').pop() property string filename: model.name ?? wallpaperPath.split('/').pop()
property string cachedPath: "" property string cachedPath: ""
@@ -1240,7 +1284,7 @@ SmartPanel {
TapHandler { TapHandler {
onTapped: { onTapped: {
WallpaperService.toggleFavorite(wallpaperItem.wallpaperPath); WallpaperService.toggleFavorite(wallpaperItem.wallpaperPath, WallpaperService.wallpaperSelectionAppearance);
} }
} }
} }
@@ -1259,10 +1303,22 @@ SmartPanel {
property int _favRevision: 0 property int _favRevision: 0
property var favData: { property var favData: {
_favRevision; _favRevision;
return WallpaperService.getFavorite(wallpaperItem.wallpaperPath); WallpaperService.wallpaperSelectionAppearance;
return WallpaperService.getFavorite(wallpaperItem.wallpaperPath, WallpaperService.wallpaperSelectionAppearance);
} }
property var colors: favData && favData.paletteColors ? favData.paletteColors : [] property var colors: favData && favData.paletteColors ? favData.paletteColors : []
property bool isDark: favData ? favData.darkMode : false property bool isDark: {
if (!favData) {
return false;
}
if (favData.appearance === "dark") {
return true;
}
if (favData.appearance === "light") {
return false;
}
return favData.darkMode === true;
}
Connections { Connections {
target: WallpaperService target: WallpaperService
@@ -1840,11 +1896,13 @@ SmartPanel {
if (typeof WallhavenService !== "undefined") { if (typeof WallhavenService !== "undefined") {
WallhavenService.downloadWallpaper(wallpaper, function (success, localPath) { WallhavenService.downloadWallpaper(wallpaper, function (success, localPath) {
if (success) { if (success) {
var whScreen = Settings.data.wallpaper.setWallpaperOnAllMonitors ? undefined : Quickshell.screens[currentScreenIndex].name;
if (!Settings.data.wallpaper.setWallpaperOnAllMonitors && currentScreenIndex < Quickshell.screens.length) { if (!Settings.data.wallpaper.setWallpaperOnAllMonitors && currentScreenIndex < Quickshell.screens.length) {
WallpaperService.changeWallpaper(localPath, Quickshell.screens[currentScreenIndex].name); WallpaperService.changeWallpaper(localPath, Quickshell.screens[currentScreenIndex].name, WallpaperService.wallpaperSelectionAppearance);
} else { } else {
WallpaperService.changeWallpaper(localPath, undefined); WallpaperService.changeWallpaper(localPath, undefined, WallpaperService.wallpaperSelectionAppearance);
} }
WallpaperService.applyFavoriteTheme(localPath, whScreen, WallpaperService.wallpaperSelectionAppearance);
} }
}); });
} }
+3 -7
View File
@@ -616,20 +616,16 @@ Singleton {
function get(screen: string): string { function get(screen: string): string {
if (screen === "all" || screen === "") { if (screen === "all" || screen === "") {
if (Quickshell.screens.length > 1) { if (Quickshell.screens.length > 1) {
var map = {}; return JSON.stringify(WallpaperService.getWallpapersEffectiveMap());
Quickshell.screens.forEach(s => {
map[s.name] = WallpaperService.currentWallpapers[s.name] ?? "";
});
return JSON.stringify(map);
} }
return WallpaperService.currentWallpapers[Quickshell.screens[0].name] ?? ""; return WallpaperService.getWallpaper(Quickshell.screens[0].name) ?? "";
} else { } else {
var found = Quickshell.screens.find(s => s.name === screen); var found = Quickshell.screens.find(s => s.name === screen);
if (!found) { if (!found) {
Logger.w("IPC", "wallpaper get: unknown screen: " + screen); Logger.w("IPC", "wallpaper get: unknown screen: " + screen);
return ""; return "";
} }
return WallpaperService.currentWallpapers[screen] ?? ""; return WallpaperService.getWallpaper(screen) ?? "";
} }
} }
+377 -68
View File
@@ -56,6 +56,9 @@ Singleton {
// Browse mode: track current browse path per screen (separate from root directory) // Browse mode: track current browse path per screen (separate from root directory)
property var currentBrowsePaths: ({}) property var currentBrowsePaths: ({})
// Wallpaper panel: which appearance slot (light/dark) new selections apply to like picking a monitor tab
property string wallpaperSelectionAppearance: "light"
// Signal emitted when browse path changes for a screen // Signal emitted when browse path changes for a screen
signal browsePathChanged(string screenName, string path) signal browsePathChanged(string screenName, string path)
@@ -121,7 +124,7 @@ Singleton {
} else { } else {
for (var i = 0; i < Quickshell.screens.length; i++) { for (var i = 0; i < Quickshell.screens.length; i++) {
var screenName = Quickshell.screens[i].name; var screenName = Quickshell.screens[i].name;
root.wallpaperChanged(screenName, currentWallpapers[screenName] || root.defaultWallpaper); root.wallpaperChanged(screenName, root.getWallpaper(screenName) || root.defaultWallpaper);
} }
} }
} }
@@ -138,6 +141,15 @@ Singleton {
} }
} }
Connections {
target: Settings.data.colorSchemes
function onDarkModeChanged() {
// Restore scheme from favorite for this light/dark slot before wallpaper refresh
root.reapplyFavoriteThemeForActiveWallpaper();
root._notifyAllWallpapersChanged();
}
}
Connections { Connections {
target: WallhavenService target: WallhavenService
function onWallpaperDownloaded() { function onWallpaperDownloaded() {
@@ -167,6 +179,7 @@ Singleton {
// Cache restore updates currentWallpapers without _setWallpaper, so wallpaperChanged does not fire. // Cache restore updates currentWallpapers without _setWallpaper, so wallpaperChanged does not fire.
function _scheduleThemeSyncFromCachedWallpaper() { function _scheduleThemeSyncFromCachedWallpaper() {
Qt.callLater(function () { Qt.callLater(function () {
root.reapplyFavoriteThemeForActiveWallpaper();
if (Settings.data.colorSchemes.useWallpaperColors) { if (Settings.data.colorSchemes.useWallpaperColors) {
AppThemeService.generate(); AppThemeService.generate();
} }
@@ -278,6 +291,153 @@ Singleton {
Settings.data.wallpaper.useSolidColor = true; Settings.data.wallpaper.useSolidColor = true;
} }
// -------------------------------------------------------------------
// Per-screen wallpaper: persisted as { light, dark } (legacy string loads are normalized)
// -------------------------------------------------------------------
function _isSplitWallpaperEntry(entry) {
if (!entry || typeof entry !== "object") {
return false;
}
return entry.light !== undefined || entry.dark !== undefined;
}
function _pathsFromEntry(entry) {
if (!entry) {
return {
light: "",
dark: ""
};
}
if (typeof entry === "string") {
return {
light: entry,
dark: entry
};
}
return {
light: entry.light || "",
dark: entry.dark || ""
};
}
function _cloneWallpaperEntry(entry) {
if (typeof entry === "string") {
return {
light: entry,
dark: entry
};
}
var p = _pathsFromEntry(entry);
return {
light: p.light,
dark: p.dark
};
}
function _entriesEqual(a, b) {
if (a === b) {
return true;
}
if (typeof a === "string" && typeof b === "string") {
return a === b;
}
if (typeof a === "string" || typeof b === "string") {
return false;
}
if (!_isSplitWallpaperEntry(a) || !_isSplitWallpaperEntry(b)) {
return false;
}
var pa = _pathsFromEntry(a);
var pb = _pathsFromEntry(b);
return pa.light === pb.light && pa.dark === pb.dark;
}
function _entryToEffectivePath(entry) {
if (!entry) {
return "";
}
if (typeof entry === "string") {
return entry;
}
var p = _pathsFromEntry(entry);
if (Settings.data.colorSchemes.darkMode) {
return p.dark || p.light || "";
}
return p.light || p.dark || "";
}
function _normalizeAppearanceSlot(slot) {
return slot === "dark" ? "dark" : "light";
}
function _defaultAppearanceSlotForChange(slot) {
if (slot === "light" || slot === "dark") {
return slot;
}
return Settings.data.colorSchemes.darkMode ? "dark" : "light";
}
function getWallpaperPathForSlot(screenName, appearanceSlot) {
if (Settings.data.wallpaper.useSolidColor) {
return createSolidColorPath(Settings.data.wallpaper.solidColor.toString());
}
var slot = _normalizeAppearanceSlot(appearanceSlot);
var entry = currentWallpapers[screenName];
if (!entry) {
return "";
}
var p = _pathsFromEntry(entry);
if (slot === "dark") {
return p.dark || p.light || "";
}
return p.light || p.dark || "";
}
function getWallpapersEffectiveMap() {
var out = {};
for (var i = 0; i < Quickshell.screens.length; i++) {
var n = Quickshell.screens[i].name;
out[n] = getWallpaper(n);
}
return out;
}
function _ensureObjectWallpaperEntries() {
var names = {};
Object.keys(currentWallpapers).forEach(function (k) {
names[k] = true;
});
for (var i = 0; i < Quickshell.screens.length; i++) {
names[Quickshell.screens[i].name] = true;
}
Object.keys(names).forEach(function (name) {
var e = currentWallpapers[name];
if (!e) {
return;
}
if (typeof e === "string") {
currentWallpapers[name] = {
light: e,
dark: e
};
} else if (_isSplitWallpaperEntry(e)) {
var p = _pathsFromEntry(e);
currentWallpapers[name] = {
light: p.light || p.dark || "",
dark: p.dark || p.light || ""
};
}
});
saveTimer.restart();
}
function _notifyAllWallpapersChanged() {
for (var i = 0; i < Quickshell.screens.length; i++) {
var n = Quickshell.screens[i].name;
root.wallpaperChanged(n, getWallpaper(n));
}
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Get specific monitor wallpaper data // Get specific monitor wallpaper data
function getMonitorConfig(screenName) { function getMonitorConfig(screenName) {
@@ -346,8 +506,12 @@ Singleton {
if (Settings.data.wallpaper.useSolidColor) { if (Settings.data.wallpaper.useSolidColor) {
return createSolidColorPath(Settings.data.wallpaper.solidColor.toString()); return createSolidColorPath(Settings.data.wallpaper.solidColor.toString());
} }
if (currentWallpapers[screenName]) { var entry = currentWallpapers[screenName];
return currentWallpapers[screenName]; if (entry) {
var effective = _entryToEffectivePath(entry);
if (effective) {
return effective;
}
} }
// Try to inherit wallpaper from another active screen // Try to inherit wallpaper from another active screen
@@ -360,39 +524,79 @@ Singleton {
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function changeWallpaper(path, screenName) { function changeWallpaper(path, screenName, appearanceSlot) {
// Turn off solid color mode when selecting a wallpaper // Turn off solid color mode when selecting a wallpaper
if (Settings.data.wallpaper.useSolidColor) { if (Settings.data.wallpaper.useSolidColor) {
Settings.data.wallpaper.useSolidColor = false; Settings.data.wallpaper.useSolidColor = false;
} }
var slot = _defaultAppearanceSlotForChange(appearanceSlot);
// Save current favorite color schemes before switching away. // Save current favorite color schemes before switching away.
// This must happen before applyFavoriteTheme (called by the UI) // This must happen before applyFavoriteTheme (called by the UI)
// overwrites the settings that _createFavoriteEntry reads. // overwrites the settings that _createFavoriteEntry reads.
_saveOutgoingFavorites(path, screenName); _saveOutgoingFavorites(path, screenName, slot);
if (screenName !== undefined) { if (screenName !== undefined) {
_setWallpaper(screenName, path); _setWallpaper(screenName, path, slot);
} else { } else {
var allScreenNames = new Set(Object.keys(currentWallpapers)); var allScreenNames = new Set(Object.keys(currentWallpapers));
for (var i = 0; i < Quickshell.screens.length; i++) { for (var i = 0; i < Quickshell.screens.length; i++) {
allScreenNames.add(Quickshell.screens[i].name); allScreenNames.add(Quickshell.screens[i].name);
} }
allScreenNames.forEach(name => _setWallpaper(name, path)); allScreenNames.forEach(name => _setWallpaper(name, path, slot));
} }
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Save the color scheme of any favorited wallpapers that are about // Save the color scheme of any favorited wallpapers that are about
// to be replaced, while the current settings still reflect them. // to be replaced, while the current settings still reflect them.
function _saveOutgoingFavorites(newPath, screenName) { function _saveOutgoingFavorites(newPath, screenName, appearanceSlot) {
var outgoing = screenName !== undefined ? [currentWallpapers[screenName]] : Object.values(currentWallpapers); var paths = [];
var slot = _normalizeAppearanceSlot(appearanceSlot);
var unique = [...new Set(outgoing)]; function collectFromEntry(e) {
if (!e) {
return;
}
if (typeof e === "string") {
if (e && e !== newPath) {
paths.push(e);
}
return;
}
if (!_isSplitWallpaperEntry(e)) {
return;
}
var p = _pathsFromEntry(e);
var old = slot === "dark" ? p.dark : p.light;
if (old && old !== newPath) {
paths.push(old);
}
}
if (screenName !== undefined) {
collectFromEntry(currentWallpapers[screenName]);
} else {
var names = new Set(Object.keys(currentWallpapers));
for (var i = 0; i < Quickshell.screens.length; i++) {
names.add(Quickshell.screens[i].name);
}
names.forEach(function (name) {
collectFromEntry(currentWallpapers[name]);
});
}
var unique = [];
for (var j = 0; j < paths.length; j++) {
if (unique.indexOf(paths[j]) === -1) {
unique.push(paths[j]);
}
}
unique.forEach(function (path) { unique.forEach(function (path) {
if (path && path !== newPath && isFavorite(path)) { if (path && path !== newPath && isFavorite(path, slot)) {
updateFavoriteColorScheme(path); updateFavoriteColorScheme(path, slot);
} }
}); });
} }
@@ -401,15 +605,29 @@ Singleton {
function _inheritWallpaperFromExistingScreen(screenName) { function _inheritWallpaperFromExistingScreen(screenName) {
for (var i = 0; i < Quickshell.screens.length; i++) { for (var i = 0; i < Quickshell.screens.length; i++) {
var otherName = Quickshell.screens[i].name; var otherName = Quickshell.screens[i].name;
if (otherName !== screenName && currentWallpapers[otherName]) { if (otherName === screenName) {
_setWallpaper(screenName, currentWallpapers[otherName]); continue;
return currentWallpapers[otherName];
} }
var entry = currentWallpapers[otherName];
if (!entry) {
continue;
}
var cloned = _cloneWallpaperEntry(entry);
if (_entriesEqual(currentWallpapers[screenName], cloned)) {
return _entryToEffectivePath(cloned);
}
currentWallpapers[screenName] = cloned;
saveTimer.restart();
root.wallpaperChanged(screenName, _entryToEffectivePath(cloned));
if (randomWallpaperTimer.running) {
randomWallpaperTimer.restart();
}
return _entryToEffectivePath(cloned);
} }
return ""; return "";
} }
function _setWallpaper(screenName, path) { function _setWallpaper(screenName, path, appearanceSlot) {
if (path === "" || path === undefined) { if (path === "" || path === undefined) {
return; return;
} }
@@ -419,21 +637,30 @@ Singleton {
return; return;
} }
var oldPath = currentWallpapers[screenName] || ""; var slot = _normalizeAppearanceSlot(appearanceSlot);
if (oldPath === path) { var oldEntry = currentWallpapers[screenName];
var p = _pathsFromEntry(oldEntry);
var newEntry;
if (slot === "dark") {
newEntry = {
light: p.light || p.dark || path,
dark: path
};
} else {
newEntry = {
light: path,
dark: p.dark || p.light || path
};
}
if (_entriesEqual(oldEntry, newEntry)) {
return; return;
} }
// Update cache directly currentWallpapers[screenName] = newEntry;
currentWallpapers[screenName] = path;
// Save to cache file with debounce
saveTimer.restart(); saveTimer.restart();
root.wallpaperChanged(screenName, _entryToEffectivePath(newEntry));
// Emit signal for this specific wallpaper change
root.wallpaperChanged(screenName, path);
// Restart the random wallpaper timer
if (randomWallpaperTimer.running) { if (randomWallpaperTimer.running) {
randomWallpaperTimer.restart(); randomWallpaperTimer.restart();
} }
@@ -534,7 +761,7 @@ Singleton {
// Get or initialize index for this screen // Get or initialize index for this screen
if (alphabeticalIndices[screenName] === undefined) { if (alphabeticalIndices[screenName] === undefined) {
// Find current wallpaper in list to set initial index // Find current wallpaper in list to set initial index
var currentWallpaper = currentWallpapers[screenName] || ""; var currentWallpaper = getWallpaper(screenName) || "";
var foundIndex = wallpaperList.indexOf(currentWallpaper); var foundIndex = wallpaperList.indexOf(currentWallpaper);
alphabeticalIndices[screenName] = (foundIndex >= 0) ? foundIndex : 0; alphabeticalIndices[screenName] = (foundIndex >= 0) ? foundIndex : 0;
} }
@@ -556,7 +783,7 @@ Singleton {
var key = "all"; var key = "all";
if (alphabeticalIndices[key] === undefined) { if (alphabeticalIndices[key] === undefined) {
// Find current wallpaper in list to set initial index // Find current wallpaper in list to set initial index
var currentWallpaper = currentWallpapers[Screen.name] || ""; var currentWallpaper = getWallpaper(Screen.name) || "";
var foundIndex = wallpaperList.indexOf(currentWallpaper); var foundIndex = wallpaperList.indexOf(currentWallpaper);
alphabeticalIndices[key] = (foundIndex >= 0) ? foundIndex : 0; alphabeticalIndices[key] = (foundIndex >= 0) ? foundIndex : 0;
} }
@@ -920,7 +1147,7 @@ Singleton {
// Reset alphabetical indices when list changes // Reset alphabetical indices when list changes
if (alphabeticalIndices[screenName] !== undefined) { if (alphabeticalIndices[screenName] !== undefined) {
var currentWallpaper = currentWallpapers[screenName] || ""; var currentWallpaper = getWallpaper(screenName) || "";
var foundIndex = files.indexOf(currentWallpaper); var foundIndex = files.indexOf(currentWallpaper);
alphabeticalIndices[screenName] = (foundIndex >= 0) ? foundIndex : 0; alphabeticalIndices[screenName] = (foundIndex >= 0) ? foundIndex : 0;
} }
@@ -968,10 +1195,32 @@ Singleton {
readonly property int _favoriteNotFound: -1 readonly property int _favoriteNotFound: -1
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function _findFavoriteIndex(path) { function _favoriteAppearanceSlot(f) {
if (f.appearance === "light" || f.appearance === "dark") {
return f.appearance;
}
return f.darkMode ? "dark" : "light";
}
function _findFavoriteIndex(path, appearanceSlot) {
var favorites = Settings.data.wallpaper.favorites; var favorites = Settings.data.wallpaper.favorites;
var searchPath = Settings.preprocessPath(path); var searchPath = Settings.preprocessPath(path);
var slot = _normalizeAppearanceSlot(appearanceSlot);
for (var i = 0; i < favorites.length; i++) {
if (Settings.preprocessPath(favorites[i].path) !== searchPath) {
continue;
}
if (_favoriteAppearanceSlot(favorites[i]) === slot) {
return i;
}
}
return _favoriteNotFound;
}
function _findAnyFavoriteIndexForPath(path) {
var favorites = Settings.data.wallpaper.favorites;
var searchPath = Settings.preprocessPath(path);
for (var i = 0; i < favorites.length; i++) { for (var i = 0; i < favorites.length; i++) {
if (Settings.preprocessPath(favorites[i].path) === searchPath) { if (Settings.preprocessPath(favorites[i].path) === searchPath) {
return i; return i;
@@ -981,11 +1230,13 @@ Singleton {
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function _createFavoriteEntry(path) { function _createFavoriteEntry(path, appearanceSlot) {
var app = _normalizeAppearanceSlot(appearanceSlot);
return { return {
"path": path, "path": path,
"appearance": app,
"colorScheme": Settings.data.colorSchemes.predefinedScheme, "colorScheme": Settings.data.colorSchemes.predefinedScheme,
"darkMode": Settings.data.colorSchemes.darkMode, "darkMode": app === "dark",
"useWallpaperColors": Settings.data.colorSchemes.useWallpaperColors, "useWallpaperColors": Settings.data.colorSchemes.useWallpaperColors,
"generationMethod": Settings.data.colorSchemes.generationMethod, "generationMethod": Settings.data.colorSchemes.generationMethod,
"paletteColors": [Color.mPrimary.toString(), Color.mSecondary.toString(), Color.mTertiary.toString(), Color.mError.toString()] "paletteColors": [Color.mPrimary.toString(), Color.mSecondary.toString(), Color.mTertiary.toString(), Color.mError.toString()]
@@ -993,37 +1244,97 @@ Singleton {
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function isFavorite(path) { function isFavorite(path, appearanceSlot) {
return _findFavoriteIndex(path) !== _favoriteNotFound; if (appearanceSlot === undefined || appearanceSlot === null || appearanceSlot === "") {
return _findAnyFavoriteIndexForPath(path) !== _favoriteNotFound;
}
return _findFavoriteIndex(path, appearanceSlot) !== _favoriteNotFound;
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function getFavorite(path) { function getFavorite(path, appearanceSlot) {
var favoriteIndex = _findFavoriteIndex(path); var slot;
if (favoriteIndex === _favoriteNotFound) if (appearanceSlot !== undefined && appearanceSlot !== null && appearanceSlot !== "") {
slot = _normalizeAppearanceSlot(appearanceSlot);
} else {
slot = _normalizeAppearanceSlot(root.wallpaperSelectionAppearance);
}
var favoriteIndex = _findFavoriteIndex(path, slot);
if (favoriteIndex === _favoriteNotFound) {
return null; return null;
}
return Settings.data.wallpaper.favorites[favoriteIndex]; return Settings.data.wallpaper.favorites[favoriteIndex];
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function toggleFavorite(path) { function toggleFavorite(path, appearanceSlot) {
var slot;
if (appearanceSlot !== undefined && appearanceSlot !== null && appearanceSlot !== "") {
slot = _normalizeAppearanceSlot(appearanceSlot);
} else {
slot = _normalizeAppearanceSlot(root.wallpaperSelectionAppearance);
}
var favorites = Settings.data.wallpaper.favorites.slice(); var favorites = Settings.data.wallpaper.favorites.slice();
var existingIndex = _findFavoriteIndex(path); var existingIndex = _findFavoriteIndex(path, slot);
if (existingIndex !== _favoriteNotFound) { if (existingIndex !== _favoriteNotFound) {
favorites.splice(existingIndex, 1); favorites.splice(existingIndex, 1);
Logger.d("Wallpaper", "Removed favorite:", path); Logger.d("Wallpaper", "Removed favorite:", path, slot);
} else { } else {
favorites.push(_createFavoriteEntry(path)); favorites.push(_createFavoriteEntry(path, slot));
Logger.d("Wallpaper", "Added favorite:", path); Logger.d("Wallpaper", "Added favorite:", path, slot);
} }
Settings.data.wallpaper.favorites = favorites; Settings.data.wallpaper.favorites = favorites;
favoritesChanged(path); favoritesChanged(path);
} }
// Apply saved scheme from a favorite entry (path + appearance must already match the slot you care about).
function _applyFavoriteThemeFromEntry(favorite) {
if (!favorite) {
return;
}
var favApp = _favoriteAppearanceSlot(favorite);
var targetDark = favApp === "dark";
var generationMethodChanging = Settings.data.colorSchemes.generationMethod !== favorite.generationMethod;
var darkModeChanging = Settings.data.colorSchemes.darkMode !== targetDark;
var useWallpaperColorsChanging = Settings.data.colorSchemes.useWallpaperColors !== favorite.useWallpaperColors;
Settings.data.colorSchemes.useWallpaperColors = favorite.useWallpaperColors;
Settings.data.colorSchemes.predefinedScheme = favorite.colorScheme;
Settings.data.colorSchemes.generationMethod = favorite.generationMethod;
Settings.data.colorSchemes.darkMode = targetDark;
// If nothing triggered AppThemeService via change handlers, regenerate once.
if (!generationMethodChanging && !darkModeChanging && !useWallpaperColorsChanging) {
AppThemeService.generate();
} else if (!generationMethodChanging && !darkModeChanging && useWallpaperColorsChanging) {
AppThemeService.generate();
}
}
// When light/dark changes (or on startup), re-load scheme from the favorite for the wallpaper now shown for that slot.
function reapplyFavoriteThemeForActiveWallpaper() {
var effectiveMonitor = Settings.data.colorSchemes.monitorForColors;
if (effectiveMonitor === "" || effectiveMonitor === undefined) {
effectiveMonitor = Quickshell.screens.length > 0 ? Quickshell.screens[0].name : "";
}
var wp = getWallpaper(effectiveMonitor);
if (!wp || isSolidColorPath(wp)) {
return;
}
var slot = Settings.data.colorSchemes.darkMode ? "dark" : "light";
var favorite = getFavorite(wp, slot);
if (!favorite) {
return;
}
_applyFavoriteThemeFromEntry(favorite);
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function applyFavoriteTheme(path, screenName) { function applyFavoriteTheme(path, screenName, appearanceSlot) {
// Only apply theme if the wallpaper is on the monitor driving colors // Only apply theme if the wallpaper is on the monitor driving colors
var effectiveMonitor = Settings.data.colorSchemes.monitorForColors; var effectiveMonitor = Settings.data.colorSchemes.monitorForColors;
if (effectiveMonitor === "" || effectiveMonitor === undefined) { if (effectiveMonitor === "" || effectiveMonitor === undefined) {
@@ -1033,37 +1344,32 @@ Singleton {
return; return;
} }
var favorite = getFavorite(path); var slot;
if (!favorite) if (appearanceSlot !== undefined && appearanceSlot !== null && appearanceSlot !== "") {
return; slot = _normalizeAppearanceSlot(appearanceSlot);
} else {
// Track which auto-triggered properties are changing to avoid redundant generation calls slot = _normalizeAppearanceSlot(root.wallpaperSelectionAppearance);
var generationMethodChanging = Settings.data.colorSchemes.generationMethod !== favorite.generationMethod;
var darkModeChanging = Settings.data.colorSchemes.darkMode !== favorite.darkMode;
// Update settings to match the favorite's saved color scheme
Settings.data.colorSchemes.useWallpaperColors = favorite.useWallpaperColors;
Settings.data.colorSchemes.predefinedScheme = favorite.colorScheme;
Settings.data.colorSchemes.generationMethod = favorite.generationMethod;
Settings.data.colorSchemes.darkMode = favorite.darkMode;
// Only explicitly trigger generation if the auto-triggered properties didn't change.
// If generationMethod or darkMode changed, their change handlers already called generate().
if (!generationMethodChanging && !darkModeChanging) {
AppThemeService.generate();
} }
var favorite = getFavorite(path, slot);
if (!favorite) {
return;
}
_applyFavoriteThemeFromEntry(favorite);
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function updateFavoriteColorScheme(path) { function updateFavoriteColorScheme(path, appearanceSlot) {
var existingIndex = _findFavoriteIndex(path); var slot = _normalizeAppearanceSlot(appearanceSlot);
if (existingIndex === _favoriteNotFound) var existingIndex = _findFavoriteIndex(path, slot);
if (existingIndex === _favoriteNotFound) {
return; return;
}
var favorites = Settings.data.wallpaper.favorites.slice(); var favorites = Settings.data.wallpaper.favorites.slice();
favorites[existingIndex] = _createFavoriteEntry(favorites[existingIndex].path); favorites[existingIndex] = _createFavoriteEntry(favorites[existingIndex].path, slot);
Settings.data.wallpaper.favorites = favorites; Settings.data.wallpaper.favorites = favorites;
Logger.d("Wallpaper", "Updated color scheme for favorite:", path); Logger.d("Wallpaper", "Updated color scheme for favorite:", path, slot);
favoriteDataUpdated(path); favoriteDataUpdated(path);
} }
@@ -1086,8 +1392,9 @@ Singleton {
effectiveMonitor = Quickshell.screens.length > 0 ? Quickshell.screens[0].name : ""; effectiveMonitor = Quickshell.screens.length > 0 ? Quickshell.screens[0].name : "";
} }
var wp = getWallpaper(effectiveMonitor); var wp = getWallpaper(effectiveMonitor);
if (wp && isFavorite(wp)) { var app = Settings.data.colorSchemes.darkMode ? "dark" : "light";
updateFavoriteColorScheme(wp); if (wp && isFavorite(wp, app)) {
updateFavoriteColorScheme(wp, app);
} }
} }
@@ -1123,6 +1430,8 @@ Singleton {
root.currentWallpapers = wallpaperCacheAdapter.wallpapers || {}; root.currentWallpapers = wallpaperCacheAdapter.wallpapers || {};
root.usedRandomWallpapers = wallpaperCacheAdapter.usedRandomWallpapers || {}; root.usedRandomWallpapers = wallpaperCacheAdapter.usedRandomWallpapers || {};
root._ensureObjectWallpaperEntries();
// Load default wallpaper from cache if it exists, otherwise use Noctalia default // Load default wallpaper from cache if it exists, otherwise use Noctalia default
if (wallpaperCacheAdapter.defaultWallpaper && wallpaperCacheAdapter.defaultWallpaper !== "") { if (wallpaperCacheAdapter.defaultWallpaper && wallpaperCacheAdapter.defaultWallpaper !== "") {
root.defaultWallpaper = wallpaperCacheAdapter.defaultWallpaper; root.defaultWallpaper = wallpaperCacheAdapter.defaultWallpaper;