8 Commits

Author SHA1 Message Date
1c6060d8d5 Small fixes, changlelog 2024-02-15 17:34:07 +01:00
TobiZog
8da056350a Merge pull request #16 from blogdron/main
Add Russian translation
2024-02-15 17:24:25 +01:00
0ab3297054 Adding support for Login screen wallpaper 2024-02-15 17:04:20 +01:00
blogdron
6ac34770ff Add Russian translation 2024-02-15 16:46:46 +03:00
45e95d0e2b Readme 2024-02-15 13:20:59 +01:00
d2d954b25f Small fix 2024-02-12 12:17:33 +01:00
72144f76c6 Bugfixes, translation 2024-02-12 12:15:45 +01:00
755664230a Adding dutch, german and spanish (rcalixte) translation 2024-02-11 19:34:58 +01:00
18 changed files with 1635 additions and 90 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@
*.glade# *.glade#
*.txt *.txt
*.json *.json
*.tar.gz
extracted_images/ extracted_images/
selected/ selected/
__pycache__ __pycache__

View File

@@ -1,3 +1,12 @@
# Version 2.4
- Adding Login window support
- Adding Russian translation (Thanks to blogdron)
# Version 2.3
- Adding Dutch translation
- Adding German translation
- Adding Spanish translation (Thanks to rcalixte)
# Version 2.2 # Version 2.2
- Bugfixes - Bugfixes
- Migrate code to MVVM pattern - Migrate code to MVVM pattern

View File

@@ -59,6 +59,17 @@ Because of the lack of configuration options in the standard Cinnamon configurat
All configuration will be handled there. You can choose between included image sets, a HEIC file or a folder source and set the image to ten different daytime periods. Time periods will be estimated via network, custom coordinations or custom time periods. Some behaviour preferences (strech image, fill empty background with gradient color) are also here. All configuration will be handled there. You can choose between included image sets, a HEIC file or a folder source and set the image to ten different daytime periods. Time periods will be estimated via network, custom coordinations or custom time periods. Some behaviour preferences (strech image, fill empty background with gradient color) are also here.
![](res/image_configurator.png) ![](res/image_configurator.png)
---
## Contribute
### Translation
You want to contribute a language which isn't supported yet? Here is how to do:
1. Fork the cinnamon-spices-extensions project: https://github.com/linuxmint/cinnamon-spices-extensions
2. Pull the repository
3. Open `cinnamon-dynamic-wallpaper@TobiZog/files/cinnamon-dynamic-wallpaper@TobiZog/po/cinnamon-dynamic-wallpaper@TobiZog.pot` with a po-tool like poedit (https://poedit.net/).
4. Create a new translation in your language
5. Push the changes to your repository
6. Create a pull request
--- ---
## Included image sets ## Included image sets

View File

@@ -17,7 +17,8 @@ const Gio = imports.gi.Gio;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const St = imports.gi.St; const St = imports.gi.St;
const Main = imports.ui.main; const Main = imports.ui.main;
const Gettext = imports.gettext;
const GLib = imports.gi.GLib;
/******************** Constants ********************/ /******************** Constants ********************/
@@ -44,6 +45,15 @@ function CinnamonDynamicWallpaperExtension(uuid) {
} }
function _(str) {
let customTranslation = Gettext.dgettext(UUID, str);
if (customTranslation !== str) {
return customTranslation;
}
return Gettext.gettext(str);
}
CinnamonDynamicWallpaperExtension.prototype = { CinnamonDynamicWallpaperExtension.prototype = {
/******************** Lifecycle ********************/ /******************** Lifecycle ********************/
@@ -56,16 +66,18 @@ CinnamonDynamicWallpaperExtension.prototype = {
_init: function(uuid) { _init: function(uuid) {
this.settings = new Settings.ExtensionSettings(this, uuid); this.settings = new Settings.ExtensionSettings(this, uuid);
Gettext.bindtextdomain(UUID, GLib.get_home_dir() + '/.local/share/locale');
// Check for the first startup // Check for the first startup
if (this.settings.getValue("first_start")) { if (this.settings.getValue("first_start")) {
// Welcome notification // Welcome notification
this.showNotification("Welcome to Cinnamon Dynamic Wallpaper", this.showNotification(_("Welcome to Cinnamon Dynamic Wallpaper"),
"Check the preferences to choose a dynamic wallpaper", true) _("Check the preferences to choose a dynamic wallpaper"), true)
// Hide the notification on system restart // Hide the notification on system restart
this.settings.setValue("first_start", false) this.settings.setValue("first_start", false)
this.settings.setValue("source_folder", DIRECTORY["path"] + "/images/included_image_sets/lakeside/") this.settings.setValue("source_folder", DIRECTORY["path"] + "/res/images/included_image_sets/lakeside/")
} }
// Start the main loop, checks in fixed time periods the // Start the main loop, checks in fixed time periods the
@@ -98,8 +110,8 @@ CinnamonDynamicWallpaperExtension.prototype = {
try { try {
Util.spawnCommandLine("/usr/bin/env python3 " + DIRECTORY.path + "/src/main.py loop") Util.spawnCommandLine("/usr/bin/env python3 " + DIRECTORY.path + "/src/main.py loop")
} catch(e) { } catch(e) {
this.showNotification("Error!", this.showNotification(_("Error!"),
"Cinnamon Dynamic Wallpaper got an error while running the loop script. Please create an issue on GitHub.") _("Cinnamon Dynamic Wallpaper got an error while running the loop script. Please create an issue on GitHub."))
} }
// Refresh every 60 seconds // Refresh every 60 seconds

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

View File

@@ -461,7 +461,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-top">16</property> <property name="margin-top">16</property>
<property name="label" translatable="yes">label</property> <property name="label">label</property>
<attributes> <attributes>
<attribute name="style" value="italic"/> <attribute name="style" value="italic"/>
</attributes> </attributes>
@@ -517,7 +517,7 @@
<object class="GtkLabel" id="etr_period_1"> <object class="GtkLabel" id="etr_period_1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">00:00 - 00:59</property> <property name="label">00:00 - 00:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -531,7 +531,7 @@
<object class="GtkLabel" id="etr_period_3"> <object class="GtkLabel" id="etr_period_3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">02:00 - 02:59</property> <property name="label">02:00 - 02:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -545,7 +545,7 @@
<object class="GtkLabel" id="etr_period_5"> <object class="GtkLabel" id="etr_period_5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">04:00 - 04:59</property> <property name="label">04:00 - 04:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -559,7 +559,7 @@
<object class="GtkLabel" id="etr_period_7"> <object class="GtkLabel" id="etr_period_7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">06:00 - 06:59</property> <property name="label">06:00 - 06:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -573,7 +573,7 @@
<object class="GtkLabel" id="etr_period_9"> <object class="GtkLabel" id="etr_period_9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">08:00 - 08:59</property> <property name="label">08:00 - 08:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -789,7 +789,7 @@
<object class="GtkLabel" id="etr_period_2"> <object class="GtkLabel" id="etr_period_2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">01:00 - 01:59</property> <property name="label">01:00 - 01:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -803,7 +803,7 @@
<object class="GtkLabel" id="etr_period_4"> <object class="GtkLabel" id="etr_period_4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">03:00 - 03:59</property> <property name="label">03:00 - 03:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -817,7 +817,7 @@
<object class="GtkLabel" id="etr_period_6"> <object class="GtkLabel" id="etr_period_6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">05:00 - 05:59</property> <property name="label">05:00 - 05:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -831,7 +831,7 @@
<object class="GtkLabel" id="etr_period_8"> <object class="GtkLabel" id="etr_period_8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">07:00 - 07:59</property> <property name="label">07:00 - 07:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -845,7 +845,7 @@
<object class="GtkLabel" id="etr_period_10"> <object class="GtkLabel" id="etr_period_10">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">09:00 - 09:59</property> <property name="label">09:00 - 09:59</property>
<attributes> <attributes>
<attribute name="size" value="15360"/> <attribute name="size" value="15360"/>
</attributes> </attributes>
@@ -1245,7 +1245,7 @@
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="margin-top">8</property> <property name="margin-top">8</property>
<property name="margin-bottom">8</property> <property name="margin-bottom">8</property>
<property name="label" translatable="yes">label</property> <property name="label">label</property>
<attributes> <attributes>
<attribute name="style" value="italic"/> <attribute name="style" value="italic"/>
</attributes> </attributes>
@@ -1432,7 +1432,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours5</property> <property name="adjustment">adjustment_hours5</property>
<property name="value">23</property> <property name="value">23</property>
@@ -1452,7 +1452,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1467,7 +1467,7 @@
<object class="GtkSpinButton" id="spb_period_5_minute"> <object class="GtkSpinButton" id="spb_period_5_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes5</property> <property name="adjustment">adjustment_minutes5</property>
<property name="value">59</property> <property name="value">59</property>
@@ -1483,7 +1483,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1502,7 +1502,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1529,7 +1529,7 @@
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours6</property> <property name="adjustment">adjustment_hours6</property>
<property name="value">23</property> <property name="value">23</property>
@@ -1549,7 +1549,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1564,7 +1564,7 @@
<object class="GtkSpinButton" id="spb_period_6_minute"> <object class="GtkSpinButton" id="spb_period_6_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes6</property> <property name="adjustment">adjustment_minutes6</property>
<property name="value">59</property> <property name="value">59</property>
@@ -1580,7 +1580,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1599,7 +1599,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1626,7 +1626,7 @@
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours7</property> <property name="adjustment">adjustment_hours7</property>
<property name="value">23</property> <property name="value">23</property>
@@ -1646,7 +1646,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1661,7 +1661,7 @@
<object class="GtkSpinButton" id="spb_period_7_minute"> <object class="GtkSpinButton" id="spb_period_7_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes7</property> <property name="adjustment">adjustment_minutes7</property>
<property name="value">59</property> <property name="value">59</property>
@@ -1677,7 +1677,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1696,7 +1696,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1721,7 +1721,7 @@
<object class="GtkSpinButton" id="spb_period_8_hour"> <object class="GtkSpinButton" id="spb_period_8_hour">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours8</property> <property name="adjustment">adjustment_hours8</property>
<property name="value">23</property> <property name="value">23</property>
@@ -1741,7 +1741,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1756,7 +1756,7 @@
<object class="GtkSpinButton" id="spb_period_8_minute"> <object class="GtkSpinButton" id="spb_period_8_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes8</property> <property name="adjustment">adjustment_minutes8</property>
<property name="value">59</property> <property name="value">59</property>
@@ -1772,7 +1772,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1791,7 +1791,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1820,7 +1820,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours9</property> <property name="adjustment">adjustment_hours9</property>
<property name="value">23</property> <property name="value">23</property>
@@ -1840,7 +1840,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1855,7 +1855,7 @@
<object class="GtkSpinButton" id="spb_period_9_minute"> <object class="GtkSpinButton" id="spb_period_9_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">57</property> <property name="text">57</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes9</property> <property name="adjustment">adjustment_minutes9</property>
<property name="value">57</property> <property name="value">57</property>
@@ -1871,7 +1871,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1890,7 +1890,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">23:59</property> <property name="label">23:59</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -1989,7 +1989,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2004,7 +2004,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2023,7 +2023,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2052,7 +2052,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours2</property> <property name="adjustment">adjustment_hours2</property>
<property name="value">23</property> <property name="value">23</property>
@@ -2072,7 +2072,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2087,7 +2087,7 @@
<object class="GtkSpinButton" id="spb_period_2_minute"> <object class="GtkSpinButton" id="spb_period_2_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes2</property> <property name="adjustment">adjustment_minutes2</property>
<property name="value">59</property> <property name="value">59</property>
@@ -2103,7 +2103,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2122,7 +2122,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2151,7 +2151,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours3</property> <property name="adjustment">adjustment_hours3</property>
<property name="value">23</property> <property name="value">23</property>
@@ -2171,7 +2171,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2186,7 +2186,7 @@
<object class="GtkSpinButton" id="spb_period_3_minute"> <object class="GtkSpinButton" id="spb_period_3_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes3</property> <property name="adjustment">adjustment_minutes3</property>
<property name="value">59</property> <property name="value">59</property>
@@ -2202,7 +2202,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2221,7 +2221,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2250,7 +2250,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours4</property> <property name="adjustment">adjustment_hours4</property>
<property name="value">23</property> <property name="value">23</property>
@@ -2270,7 +2270,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2285,7 +2285,7 @@
<object class="GtkSpinButton" id="spb_period_4_minute"> <object class="GtkSpinButton" id="spb_period_4_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes4</property> <property name="adjustment">adjustment_minutes4</property>
<property name="value">59</property> <property name="value">59</property>
@@ -2301,7 +2301,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2320,7 +2320,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2345,7 +2345,7 @@
<object class="GtkSpinButton" id="spb_period_1_hour"> <object class="GtkSpinButton" id="spb_period_1_hour">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">23</property> <property name="text">23</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_hours1</property> <property name="adjustment">adjustment_hours1</property>
<property name="value">23</property> <property name="value">23</property>
@@ -2365,7 +2365,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">:</property> <property name="label">:</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2380,7 +2380,7 @@
<object class="GtkSpinButton" id="spb_period_1_minute"> <object class="GtkSpinButton" id="spb_period_1_minute">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">59</property> <property name="text">59</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">adjustment_minutes1</property> <property name="adjustment">adjustment_minutes1</property>
<property name="value">59</property> <property name="value">59</property>
@@ -2396,7 +2396,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">-</property> <property name="label">-</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2415,7 +2415,7 @@
<property name="margin-right">8</property> <property name="margin-right">8</property>
<property name="margin-start">8</property> <property name="margin-start">8</property>
<property name="margin-end">8</property> <property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property> <property name="label">00:00</property>
<attributes> <attributes>
<attribute name="size" value="20480"/> <attribute name="size" value="20480"/>
</attributes> </attributes>
@@ -2553,7 +2553,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="label" translatable="yes">Dynamic Background color</property> <property name="label" translatable="yes">Login Screen</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@@ -2564,6 +2564,80 @@
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkListBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
<property name="activate-on-single-click">False</property>
<child>
<object class="GtkListBoxRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">12</property>
<property name="margin-right">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Set the background image as Login Screen background</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="sw_login_image">
<property name="visible">True</property>
<property name="can-focus">True</property>
<signal name="state-set" handler="on_sw_login_image_state_set" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">3</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Dynamic Background color</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child> <child>
<object class="GtkListBox"> <object class="GtkListBox">
<property name="visible">True</property> <property name="visible">True</property>
@@ -2602,6 +2676,7 @@
<object class="GtkSwitch" id="sw_dynamic_background_color"> <object class="GtkSwitch" id="sw_dynamic_background_color">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<signal name="state-set" handler="on_sw_dynamic_background_color_state_set" swapped="no"/>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@@ -2618,7 +2693,7 @@
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="padding">3</property> <property name="padding">3</property>
<property name="position">3</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -2630,7 +2705,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
</object> </object>
@@ -2850,7 +2925,7 @@
<property name="margin-end">12</property> <property name="margin-end">12</property>
<property name="margin-top">12</property> <property name="margin-top">12</property>
<property name="margin-bottom">12</property> <property name="margin-bottom">12</property>
<property name="label" translatable="yes">Do you find an issue? Or want a new feature? Go to the GitHub repository and create a new issue. If you find an error message in the logs above, add it to the issue report.</property> <property name="label" translatable="yes">Do you find an issue? Or want a new feature? Go to the GitHub repository and create a new issue.</property>
</object> </object>
</child> </child>
</object> </object>

View File

@@ -5,7 +5,7 @@
}, },
"picture_aspect": { "picture_aspect": {
"type": "generic", "type": "generic",
"default": "scaled" "default": "zoom"
}, },
"dynamic_background_color": { "dynamic_background_color": {
"type": "generic", "type": "generic",
@@ -130,5 +130,9 @@
"period_9_custom_start_time": { "period_9_custom_start_time": {
"type": "generic", "type": "generic",
"default": "21:00" "default": "21:00"
},
"login_image": {
"type": "generic",
"default": false
} }
} }

View File

@@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
import sys, datetime import sys
from view.main_window import * from view.main_window import *
from model.main_view_model import * from model.main_view_model import *
@@ -13,5 +13,6 @@ if __name__ == "__main__":
elif sys.argv[1] == "loop": elif sys.argv[1] == "loop":
# Run the methods which updates the data # Run the methods which updates the data
view_model = Main_View_Model() view_model = Main_View_Model()
view_model.set_login_image()
view_model.refresh_image() view_model.refresh_image()
view_model.set_background_gradient() view_model.set_background_gradient()

View File

@@ -1,13 +1,18 @@
import os, time # GTK
from PIL import Image
from gi.repository import Gio, Gdk from gi.repository import Gio, Gdk
# Packages
import os, time, locale, subprocess, sys
from PIL import Image
# Local scripts
from service.cinnamon_pref_handler import * from service.cinnamon_pref_handler import *
from service.suntimes import * from service.suntimes import *
from service.time_bar_chart import * from service.time_bar_chart import *
from service.location import * from service.location import *
from enums.PeriodSourceEnum import * from enums.PeriodSourceEnum import *
class Main_View_Model: class Main_View_Model:
""" The main ViewModel for the application """ The main ViewModel for the application
""" """
@@ -38,6 +43,13 @@ class Main_View_Model:
self.background_settings = Gio.Settings.new("org.cinnamon.desktop.background") self.background_settings = Gio.Settings.new("org.cinnamon.desktop.background")
# Language support
self.UUID = "cinnamon-dynamic-wallpaper@TobiZog"
self.localeDir = os.path.expanduser("~") + "/.local/share/locale"
locale.bindtextdomain(self.UUID, self.localeDir)
# Other Variables # Other Variables
self.display = Gdk.Display.get_default() self.display = Gdk.Display.get_default()
self.screen_height = self.display.get_monitor(0).get_geometry().height self.screen_height = self.display.get_monitor(0).get_geometry().height
@@ -109,8 +121,6 @@ class Main_View_Model:
hour = raw_str[0:raw_str.find(":")] hour = raw_str[0:raw_str.find(":")]
minute = raw_str[raw_str.find(":") + 1:] minute = raw_str[raw_str.find(":") + 1:]
time(1, 2)
return time(hour=int(hour), minute=int(minute)) return time(hour=int(hour), minute=int(minute))
@@ -171,9 +181,20 @@ class Main_View_Model:
self.current_image_uri = self.cinnamon_prefs.source_folder + self.cinnamon_prefs.period_images[i] self.current_image_uri = self.cinnamon_prefs.source_folder + self.cinnamon_prefs.period_images[i]
break break
# Set the background # Update the background
self.background_settings['picture-uri'] = "file://" + self.current_image_uri self.background_settings['picture-uri'] = "file://" + self.current_image_uri
# Update the login_image
if self.cinnamon_prefs.login_image:
# Create the folder in /tmp
try:
os.mkdir("/tmp/cinnamon_dynamic_wallpaper")
except:
print("Folder already exists")
# Copy the current image to the temp folder for the login screen
os.system("cp " + self.current_image_uri + " " + "/tmp/cinnamon_dynamic_wallpaper/login_image.jpg")
# Set background stretching # Set background stretching
self.background_settings['picture-options'] = self.cinnamon_prefs.picture_aspect self.background_settings['picture-options'] = self.cinnamon_prefs.picture_aspect
@@ -257,3 +278,51 @@ class Main_View_Model:
except: except:
self.background_settings['primary-color'] = "#000000" self.background_settings['primary-color'] = "#000000"
self.background_settings['secondary-color'] = "#000000" self.background_settings['secondary-color'] = "#000000"
def set_login_image(self):
""" Writes a path to file in /tmp/cinnamon_dynamic_wallpaper to display the wallpaper on the login screen
"""
# New config file content
file_content = ""
# Location of the config file
file_location = self.WORKING_DIR + "/slick-greeter.conf"
if os.path.isfile("/etc/lightdm/slick-greeter.conf"):
# File already exists, make a copy of the config
with open("/etc/lightdm/slick-greeter.conf", "r") as conf_file:
for line in conf_file.readlines():
if line.startswith("background"):
# Case 1: Preference is already set as expected -> leave function
if line.find("cinnamon_dynamic_wallpaper/login_image.jpg") != -1 and self.cinnamon_prefs.login_image or \
line.find("cinnamon_dynamic_wallpaper/login_image.jpg") == -1 and not self.cinnamon_prefs.login_image:
return
# Case 2: Function enabled -> Set the path to the login image
elif self.cinnamon_prefs.login_image:
file_content += "background=/tmp/cinnamon_dynamic_wallpaper/login_image.jpg\n"
# Case 3: Function disabled -> Remove the custom login image
elif not self.cinnamon_prefs.login_image:
break
# Other config lines will be simply copied
else:
file_content += line
else:
# File doesn't exists
file_content = "[Greeter]\n"
file_content += "background=/tmp/cinnamon_dynamic_wallpaper/login_image.jpg"
# Create the file
with open(file_location, "w") as conf_file:
conf_file.write(file_content)
conf_file.close()
# Move it to /etc/lightdm
if os.path.isfile("/etc/lightdm/slick-greeter.conf"):
subprocess.call(['pkexec', 'rm', '/etc/lightdm/slick-greeter.conf', 'mv', file_location, '/etc/lightdm/'])
else:
subprocess.call(['pkexec', 'mv', file_location, '/etc/lightdm/'])

View File

@@ -11,7 +11,7 @@ class Cinnamon_Pref_Handler:
self.load_preferences() self.load_preferences()
def extract_json(self, parameter: str) -> str: def extract_json(self, parameter: str) -> any:
""" Get a parameter from the json dictionary safely """ Get a parameter from the json dictionary safely
Args: Args:
@@ -32,6 +32,7 @@ class Cinnamon_Pref_Handler:
with open(self.pref_location, "r") as pref_file: with open(self.pref_location, "r") as pref_file:
self.pref_data = json.load(pref_file) self.pref_data = json.load(pref_file)
self.first_start = self.extract_json('first_start')
self.picture_aspect = self.extract_json('picture_aspect') self.picture_aspect = self.extract_json('picture_aspect')
self.dynamic_background_color = self.extract_json('dynamic_background_color') self.dynamic_background_color = self.extract_json('dynamic_background_color')
self.image_source = self.extract_json('image_source') self.image_source = self.extract_json('image_source')
@@ -51,13 +52,13 @@ class Cinnamon_Pref_Handler:
self.extract_json('period_9_image') self.extract_json('period_9_image')
] ]
self.period_source =self.extract_json('period_source') self.period_source = self.extract_json('period_source')
self.location_refresh_intervals =self.extract_json('location_refresh_intervals') self.location_refresh_intervals = self.extract_json('location_refresh_intervals')
self.network_location_provider =self.extract_json('network_location_provider') self.network_location_provider = self.extract_json('network_location_provider')
self.latitude_auto =self.extract_json('latitude_auto') self.latitude_auto = self.extract_json('latitude_auto')
self.longitude_auto =self.extract_json('longitude_auto') self.longitude_auto = self.extract_json('longitude_auto')
self.latitude_custom =self.extract_json('latitude_custom') self.latitude_custom = self.extract_json('latitude_custom')
self.longitude_custom =self.extract_json('longitude_custom') self.longitude_custom = self.extract_json('longitude_custom')
self.period_custom_start_time = [ self.period_custom_start_time = [
self.extract_json('period_0_custom_start_time'), self.extract_json('period_0_custom_start_time'),
@@ -72,6 +73,8 @@ class Cinnamon_Pref_Handler:
self.extract_json('period_9_custom_start_time') self.extract_json('period_9_custom_start_time')
] ]
self.login_image = self.extract_json('login_image')
def value_to_json(self, parameter: str, value: str): def value_to_json(self, parameter: str, value: str):
""" Storing safely a value to the dictionary """ Storing safely a value to the dictionary
@@ -93,6 +96,7 @@ class Cinnamon_Pref_Handler:
def store_preferences(self): def store_preferences(self):
""" Store the values of the Preference object to the JSON file """ Store the values of the Preference object to the JSON file
""" """
self.value_to_json('first_start', self.first_start)
self.value_to_json('picture_aspect', self.picture_aspect) self.value_to_json('picture_aspect', self.picture_aspect)
self.value_to_json('dynamic_background_color', self.dynamic_background_color) self.value_to_json('dynamic_background_color', self.dynamic_background_color)
self.value_to_json('image_source', self.image_source) self.value_to_json('image_source', self.image_source)
@@ -125,6 +129,7 @@ class Cinnamon_Pref_Handler:
self.value_to_json('period_7_custom_start_time', self.period_custom_start_time[7]) self.value_to_json('period_7_custom_start_time', self.period_custom_start_time[7])
self.value_to_json('period_8_custom_start_time', self.period_custom_start_time[8]) self.value_to_json('period_8_custom_start_time', self.period_custom_start_time[8])
self.value_to_json('period_9_custom_start_time', self.period_custom_start_time[9]) self.value_to_json('period_9_custom_start_time', self.period_custom_start_time[9])
self.value_to_json('login_image', self.login_image)
# Write to file # Write to file

View File

@@ -9,7 +9,7 @@ from gi.repository import Gtk, GdkPixbuf
# Packages # Packages
import subprocess, threading, time import subprocess, threading, time
from datetime import timedelta, datetime, date from datetime import timedelta, datetime
# Local scripts # Local scripts
from model.main_view_model import * from model.main_view_model import *
@@ -34,6 +34,7 @@ class Main_Window:
# Glade # Glade
self.builder = Gtk.Builder() self.builder = Gtk.Builder()
self.builder.set_translation_domain(self.view_model.UUID)
self.builder.add_from_file(self.view_model.GLADE_URI) self.builder.add_from_file(self.view_model.GLADE_URI)
self.builder.connect_signals(self) self.builder.connect_signals(self)
@@ -149,6 +150,7 @@ class Main_Window:
# Page 3: Behaviour # Page 3: Behaviour
self.cb_picture_aspect: Gtk.ComboBox = self.builder.get_object("cb_picture_aspect") self.cb_picture_aspect: Gtk.ComboBox = self.builder.get_object("cb_picture_aspect")
self.sw_dynamic_background_color: Gtk.Switch = self.builder.get_object("sw_dynamic_background_color") self.sw_dynamic_background_color: Gtk.Switch = self.builder.get_object("sw_dynamic_background_color")
self.sw_login_image: Gtk.Switch = self.builder.get_object("sw_login_image")
def show(self): def show(self):
@@ -177,6 +179,7 @@ class Main_Window:
self.add_items_to_combo_box(self.cb_picture_aspect, self.view_model.picture_aspects) self.add_items_to_combo_box(self.cb_picture_aspect, self.view_model.picture_aspects)
self.set_active_combobox_item(self.cb_picture_aspect, self.view_model.cinnamon_prefs.picture_aspect) self.set_active_combobox_item(self.cb_picture_aspect, self.view_model.cinnamon_prefs.picture_aspect)
self.sw_dynamic_background_color.set_active(self.view_model.cinnamon_prefs.dynamic_background_color) self.sw_dynamic_background_color.set_active(self.view_model.cinnamon_prefs.dynamic_background_color)
self.sw_login_image.set_active(self.view_model.cinnamon_prefs.login_image)
# Show the main window # Show the main window
@@ -693,6 +696,16 @@ class Main_Window:
self.view_model.cinnamon_prefs.dynamic_background_color = state self.view_model.cinnamon_prefs.dynamic_background_color = state
def on_sw_login_image_state_set(self, _: Gtk.Switch, state: bool):
""" User switches login background image on or off
Args:
_ (Gtk.Switch): Used Switch
state (bool): Current state
"""
self.view_model.cinnamon_prefs.login_image = state
# About # About
def on_cinnamon_spices_website_button_clicked(self, _: Gtk.Button): def on_cinnamon_spices_website_button_clicked(self, _: Gtk.Button):
@@ -746,6 +759,7 @@ class Main_Window:
# Use the new settings # Use the new settings
self.view_model.refresh_image() self.view_model.refresh_image()
self.view_model.set_background_gradient() self.view_model.set_background_gradient()
self.view_model.set_login_image()
def on_destroy(self, *args): def on_destroy(self, *args):

View File

@@ -3,7 +3,7 @@
"uuid": "cinnamon-dynamic-wallpaper@TobiZog", "uuid": "cinnamon-dynamic-wallpaper@TobiZog",
"name": "Cinnamon Dynamic Wallpaper", "name": "Cinnamon Dynamic Wallpaper",
"description": "Cinnamon extension for dynamic desktop backgrounds based on time and location", "description": "Cinnamon extension for dynamic desktop backgrounds based on time and location",
"version": "2.2", "version": "2.4",
"multiversion": true, "multiversion": true,
"cinnamon-version": [ "cinnamon-version": [
"5.4", "5.4",

View File

@@ -0,0 +1,255 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: cinnamon-dynamic-wallpaper@TobiZog 2.3\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-"
"extensions/issues\n"
"POT-Creation-Date: 2024-02-12 12:12+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 5.4/extension.js:75
msgid "Welcome to Cinnamon Dynamic Wallpaper"
msgstr ""
#: 5.4/extension.js:76
msgid "Check the preferences to choose a dynamic wallpaper"
msgstr ""
#: 5.4/extension.js:113
msgid "Error!"
msgstr ""
#: 5.4/extension.js:114
msgid ""
"Cinnamon Dynamic Wallpaper got an error while running the loop script. "
"Please create an issue on GitHub."
msgstr ""
#: 5.4/extension.js:139
msgid "Open settings"
msgstr ""
#. metadata.json->name
msgid "Cinnamon Dynamic Wallpaper"
msgstr ""
#. metadata.json->description
msgid ""
"Cinnamon extension for dynamic desktop backgrounds based on time and location"
msgstr ""
#: 5.4/res/preferences.glade:135
msgid "Image Source"
msgstr ""
#: 5.4/res/preferences.glade:186
msgid "Image Set"
msgstr ""
#: 5.4/res/preferences.glade:236
msgid "HEIC file"
msgstr ""
#: 5.4/res/preferences.glade:286
msgid "Source Folder"
msgstr ""
#: 5.4/res/preferences.glade:336
msgid "Select an image set"
msgstr ""
#: 5.4/res/preferences.glade:379
msgid "Select a heic file to import"
msgstr ""
#: 5.4/res/preferences.glade:430
msgid "Select a source folder"
msgstr ""
#: 5.4/res/preferences.glade:440
msgid "Open file selection dialog"
msgstr ""
#: 5.4/res/preferences.glade:492
msgid "Image Selection"
msgstr ""
#: 5.4/res/preferences.glade:930
msgid "Image Configuration"
msgstr ""
#: 5.4/res/preferences.glade:948
msgid "Period estimation"
msgstr ""
#: 5.4/res/preferences.glade:1001
msgid "Use Network Location"
msgstr ""
#: 5.4/res/preferences.glade:1051
msgid "Custom Location"
msgstr ""
#: 5.4/res/preferences.glade:1103
msgid "Custom Time Periods"
msgstr ""
#: 5.4/res/preferences.glade:1132
msgid "Location estimation"
msgstr ""
#: 5.4/res/preferences.glade:1167
msgid "Interval time to refresh location via network (min)"
msgstr ""
#: 5.4/res/preferences.glade:1212
msgid "Location provider"
msgstr ""
#: 5.4/res/preferences.glade:1274
msgid "Latitude"
msgstr ""
#: 5.4/res/preferences.glade:1317
msgid "Longitude"
msgstr ""
#: 5.4/res/preferences.glade:1357
msgid "Period 1"
msgstr ""
#: 5.4/res/preferences.glade:1371
msgid "Period 2"
msgstr ""
#: 5.4/res/preferences.glade:1385
msgid "Period 3"
msgstr ""
#: 5.4/res/preferences.glade:1399
msgid "Period 4"
msgstr ""
#: 5.4/res/preferences.glade:1413
msgid "Period 5"
msgstr ""
#: 5.4/res/preferences.glade:1914
msgid "Period 6"
msgstr ""
#: 5.4/res/preferences.glade:1928
msgid "Period 7"
msgstr ""
#: 5.4/res/preferences.glade:1942
msgid "Period 9"
msgstr ""
#: 5.4/res/preferences.glade:1956
msgid "Period 8"
msgstr ""
#: 5.4/res/preferences.glade:1970
msgid "Period 10"
msgstr ""
#: 5.4/res/preferences.glade:2461
msgid "Location & Times"
msgstr ""
#: 5.4/res/preferences.glade:2480
msgid "Scaling"
msgstr ""
#: 5.4/res/preferences.glade:2519
msgid "Picture aspect"
msgstr ""
#: 5.4/res/preferences.glade:2556
msgid "Dynamic Background color"
msgstr ""
#: 5.4/res/preferences.glade:2593
msgid "Use dynamic Background color to create a gradient"
msgstr ""
#: 5.4/res/preferences.glade:2639
msgid "Behaviour"
msgstr ""
#: 5.4/res/preferences.glade:2658
msgid "About the project"
msgstr ""
#: 5.4/res/preferences.glade:2687
msgid ""
"Based on a location or by user choice, this extensions calculates the "
"periods of a day and switches the background image of your Cinnamon desktop. "
"The extension offers as image sources a set of preconfigured wallpapers, a "
"heic image import by the user or a custom folder with single images."
msgstr ""
#: 5.4/res/preferences.glade:2706
msgid "Developed by TobiZog"
msgstr ""
#: 5.4/res/preferences.glade:2723
msgid ""
"If you need more information or want to rate the extension, you can visit "
"the Cinnamon Spices Website."
msgstr ""
#: 5.4/res/preferences.glade:2734
msgid "Cinnamon Dynamic Wallpaper at Cinnamon Spices Website"
msgstr ""
#: 5.4/res/preferences.glade:2759
msgid "Source Code"
msgstr ""
#: 5.4/res/preferences.glade:2788
msgid ""
"This project is Open Source. You can take a look inside the whole source "
"code of this extension on GitHub."
msgstr ""
#: 5.4/res/preferences.glade:2799
msgid "Source Code on GitHub"
msgstr ""
#: 5.4/res/preferences.glade:2824
msgid "Issues and Enhancements"
msgstr ""
#: 5.4/res/preferences.glade:2853
msgid ""
"Do you find an issue? Or want a new feature? Go to the GitHub repository and "
"create a new issue."
msgstr ""
#: 5.4/res/preferences.glade:2864
msgid "Create a new issue on GitHub"
msgstr ""
#: 5.4/res/preferences.glade:2889
msgid "About"
msgstr ""
#: 5.4/res/preferences.glade:2917
msgid "Apply and close this window"
msgstr ""
#: 5.4/res/preferences.glade:2929
msgid "Apply the settings without closing this window"
msgstr ""

View File

@@ -0,0 +1,273 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: cinnamon-dynamic-wallpaper@TobiZog 2.2\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-"
"extensions/issues\n"
"POT-Creation-Date: 2024-02-12 12:12+0100\n"
"PO-Revision-Date: 2024-02-12 12:08+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
#: 5.4/extension.js:75
msgid "Welcome to Cinnamon Dynamic Wallpaper"
msgstr "Willkommen zu Cinnamon Dynamic Wallpaper"
#: 5.4/extension.js:76
msgid "Check the preferences to choose a dynamic wallpaper"
msgstr "Öffne die Einstellungen und konfiguriere die Erweiterung"
#: 5.4/extension.js:113
msgid "Error!"
msgstr "Fehler!"
#: 5.4/extension.js:114
msgid ""
"Cinnamon Dynamic Wallpaper got an error while running the loop script. "
"Please create an issue on GitHub."
msgstr ""
"Cinnamon Dynamic Wallpaper hat ein Problem beim Aufruf des loop-Skripts "
"festgestellt. Bitte wende dich an den Entwickler via GitHub."
#: 5.4/extension.js:139
msgid "Open settings"
msgstr "Einstellungen öffnen"
#. metadata.json->name
msgid "Cinnamon Dynamic Wallpaper"
msgstr "Cinnamon Dynamic Wallpaper"
#. metadata.json->description
msgid ""
"Cinnamon extension for dynamic desktop backgrounds based on time and location"
msgstr ""
"Cinnamon Erweiterung für dynamische Desktop Hintergründe basierend auf Zeit "
"und Ort"
#: 5.4/res/preferences.glade:135
msgid "Image Source"
msgstr "Bildquelle"
#: 5.4/res/preferences.glade:186
msgid "Image Set"
msgstr "Bildset"
#: 5.4/res/preferences.glade:236
msgid "HEIC file"
msgstr "HEIC-Datei"
#: 5.4/res/preferences.glade:286
msgid "Source Folder"
msgstr "Quell-Ordner"
#: 5.4/res/preferences.glade:336
msgid "Select an image set"
msgstr "Wähle ein Bildset aus"
#: 5.4/res/preferences.glade:379
msgid "Select a heic file to import"
msgstr "Wähle eine HEIC-Datei zum importieren aus"
#: 5.4/res/preferences.glade:430
msgid "Select a source folder"
msgstr "Wähle einen Quell-Ordner aus"
#: 5.4/res/preferences.glade:440
msgid "Open file selection dialog"
msgstr "Öffne Datei-Auswahl Dialog"
#: 5.4/res/preferences.glade:492
msgid "Image Selection"
msgstr "Bildauswahl"
#: 5.4/res/preferences.glade:930
msgid "Image Configuration"
msgstr "Bild-Konfigurator"
#: 5.4/res/preferences.glade:948
msgid "Period estimation"
msgstr "Zeit-Slot-Bestimmung"
#: 5.4/res/preferences.glade:1001
msgid "Use Network Location"
msgstr "Netzwerk-Standort verwenden"
#: 5.4/res/preferences.glade:1051
msgid "Custom Location"
msgstr "Benutzerdefinierter Standort"
#: 5.4/res/preferences.glade:1103
msgid "Custom Time Periods"
msgstr "Benutzerdefinierte Zeit-Slots"
#: 5.4/res/preferences.glade:1132
msgid "Location estimation"
msgstr "Standort-Bestimmung"
#: 5.4/res/preferences.glade:1167
msgid "Interval time to refresh location via network (min)"
msgstr "Standort-Update-Zeit (in min)"
#: 5.4/res/preferences.glade:1212
msgid "Location provider"
msgstr "Standort-Anbieter"
#: 5.4/res/preferences.glade:1274
msgid "Latitude"
msgstr "Breitengrad"
#: 5.4/res/preferences.glade:1317
msgid "Longitude"
msgstr "Längengrad"
#: 5.4/res/preferences.glade:1357
msgid "Period 1"
msgstr "Periode 1"
#: 5.4/res/preferences.glade:1371
msgid "Period 2"
msgstr "Periode 2"
#: 5.4/res/preferences.glade:1385
msgid "Period 3"
msgstr "Periode 3"
#: 5.4/res/preferences.glade:1399
msgid "Period 4"
msgstr "Periode 4"
#: 5.4/res/preferences.glade:1413
msgid "Period 5"
msgstr "Periode 5"
#: 5.4/res/preferences.glade:1914
msgid "Period 6"
msgstr "Periode 6"
#: 5.4/res/preferences.glade:1928
msgid "Period 7"
msgstr "Periode 7"
#: 5.4/res/preferences.glade:1942
msgid "Period 9"
msgstr "Periode 9"
#: 5.4/res/preferences.glade:1956
msgid "Period 8"
msgstr "Periode 8"
#: 5.4/res/preferences.glade:1970
msgid "Period 10"
msgstr "Periode 10"
#: 5.4/res/preferences.glade:2461
msgid "Location & Times"
msgstr "Ort und Zeit"
#: 5.4/res/preferences.glade:2480
msgid "Scaling"
msgstr "Skalierung"
#: 5.4/res/preferences.glade:2519
msgid "Picture aspect"
msgstr "Bild Skalierung"
#: 5.4/res/preferences.glade:2556
msgid "Dynamic Background color"
msgstr "Dynamische Hintergrundfarbe"
#: 5.4/res/preferences.glade:2593
msgid "Use dynamic Background color to create a gradient"
msgstr ""
"Verwende eine dynamische Hintergrundfarbe um einen Farbgradienten zu "
"erstellen"
#: 5.4/res/preferences.glade:2639
msgid "Behaviour"
msgstr "Verhalten"
#: 5.4/res/preferences.glade:2658
msgid "About the project"
msgstr "Über das Projekt"
#: 5.4/res/preferences.glade:2687
msgid ""
"Based on a location or by user choice, this extensions calculates the "
"periods of a day and switches the background image of your Cinnamon desktop. "
"The extension offers as image sources a set of preconfigured wallpapers, a "
"heic image import by the user or a custom folder with single images."
msgstr ""
"Basierend auf dem Standort oder selbst-definierten Zeitslots berechnet diese "
"Extension die Tagesabschnitte und tauscht das Hintergrundbild auf dem "
"Cinnamon Desktop aus. Die Extension bietet als Bildquelle mehrere "
"vorkonfigurierte Wallpaper-Sets, die Möglichkeit eigene HEIC-Dateien zu "
"importieren oder beliebige Bilder aus einem Ordner zu verwenden."
#: 5.4/res/preferences.glade:2706
msgid "Developed by TobiZog"
msgstr "Entwickelt von TobiZog"
#: 5.4/res/preferences.glade:2723
msgid ""
"If you need more information or want to rate the extension, you can visit "
"the Cinnamon Spices Website."
msgstr ""
"Für weitere Informationen oder wenn du die Erweiterung bewerten willst, "
"kannst du die Cinnamon Spices Webseite besuchen."
#: 5.4/res/preferences.glade:2734
msgid "Cinnamon Dynamic Wallpaper at Cinnamon Spices Website"
msgstr "Cinnamon Dynamic Wallpaper auf der Cinnamon Spices Webseite"
#: 5.4/res/preferences.glade:2759
msgid "Source Code"
msgstr "Quellcode"
#: 5.4/res/preferences.glade:2788
msgid ""
"This project is Open Source. You can take a look inside the whole source "
"code of this extension on GitHub."
msgstr ""
"Dieses Projekt ist quelloffen (Open Source). Du kannst den kompletten Code "
"auf GitHub einsehen."
#: 5.4/res/preferences.glade:2799
msgid "Source Code on GitHub"
msgstr "Quellcode auf GitHub"
#: 5.4/res/preferences.glade:2824
msgid "Issues and Enhancements"
msgstr "Probleme und Verbesserungen"
#: 5.4/res/preferences.glade:2853
msgid ""
"Do you find an issue? Or want a new feature? Go to the GitHub repository and "
"create a new issue."
msgstr ""
"Hast du ein Problem entdeckt? Oder hättest du gerne ein Feature "
"implementiert? Besuche das GitHub Repository und erstelle ein Ticket."
#: 5.4/res/preferences.glade:2864
msgid "Create a new issue on GitHub"
msgstr "Erstelle ein Ticket auf GitHub (auf Englisch)"
#: 5.4/res/preferences.glade:2889
msgid "About"
msgstr "Über"
#: 5.4/res/preferences.glade:2917
msgid "Apply and close this window"
msgstr "Anwenden und das Fenster schließen"
#: 5.4/res/preferences.glade:2929
msgid "Apply the settings without closing this window"
msgstr "Anwenden ohne das Fenster zu schließen"

View File

@@ -0,0 +1,273 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-"
"extensions/issues\n"
"POT-Creation-Date: 2024-02-12 12:12+0100\n"
"PO-Revision-Date: 2024-02-11 19:51+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
#: 5.4/extension.js:75
#, fuzzy
msgid "Welcome to Cinnamon Dynamic Wallpaper"
msgstr "Fondo de pantalla dinámico de Cinnamon"
#: 5.4/extension.js:76
msgid "Check the preferences to choose a dynamic wallpaper"
msgstr ""
#: 5.4/extension.js:113
msgid "Error!"
msgstr ""
#: 5.4/extension.js:114
msgid ""
"Cinnamon Dynamic Wallpaper got an error while running the loop script. "
"Please create an issue on GitHub."
msgstr ""
#: 5.4/extension.js:139
msgid "Open settings"
msgstr "Abrir configuración"
#. metadata.json->name
msgid "Cinnamon Dynamic Wallpaper"
msgstr "Fondo de pantalla dinámico de Cinnamon"
#. metadata.json->description
msgid ""
"Cinnamon extension for dynamic desktop backgrounds based on time and location"
msgstr ""
"Extensión de Cinnamon para fondos de pantalla dinámicos según la hora y la "
"ubicación"
#: 5.4/res/preferences.glade:135
msgid "Image Source"
msgstr "Fuente de la imagen"
#: 5.4/res/preferences.glade:186
msgid "Image Set"
msgstr "Conjunto de imágenes"
#: 5.4/res/preferences.glade:236
msgid "HEIC file"
msgstr "Archivo HEIC"
#: 5.4/res/preferences.glade:286
msgid "Source Folder"
msgstr "Carpeta de origen"
#: 5.4/res/preferences.glade:336
msgid "Select an image set"
msgstr "Seleccione un conjunto de imágenes"
#: 5.4/res/preferences.glade:379
msgid "Select a heic file to import"
msgstr "Seleccione un archivo heic para importar"
#: 5.4/res/preferences.glade:430
msgid "Select a source folder"
msgstr "Seleccione una carpeta de origen"
#: 5.4/res/preferences.glade:440
msgid "Open file selection dialog"
msgstr "Abrir cuadro de diálogo de selección de archivos"
#: 5.4/res/preferences.glade:492
msgid "Image Selection"
msgstr "Selección de imagen"
#: 5.4/res/preferences.glade:930
msgid "Image Configuration"
msgstr "Configuración de las imágenes"
#: 5.4/res/preferences.glade:948
msgid "Period estimation"
msgstr "Estimación de los periodos"
#: 5.4/res/preferences.glade:1001
msgid "Use Network Location"
msgstr "Utilizar la ubicación de la red"
#: 5.4/res/preferences.glade:1051
msgid "Custom Location"
msgstr "Ubicación personalizada"
#: 5.4/res/preferences.glade:1103
msgid "Custom Time Periods"
msgstr "Periodos de tiempo personalizados"
#: 5.4/res/preferences.glade:1132
msgid "Location estimation"
msgstr "Estimación de ubicación"
#: 5.4/res/preferences.glade:1167
msgid "Interval time to refresh location via network (min)"
msgstr ""
"Intervalo de tiempo para actualizar la ubicación a través de la red (min)"
#: 5.4/res/preferences.glade:1212
msgid "Location provider"
msgstr "Proveedor de la ubicación"
#: 5.4/res/preferences.glade:1274
msgid "Latitude"
msgstr "Latitud"
#: 5.4/res/preferences.glade:1317
msgid "Longitude"
msgstr "Longitud"
#: 5.4/res/preferences.glade:1357
msgid "Period 1"
msgstr "Periodo 1"
#: 5.4/res/preferences.glade:1371
msgid "Period 2"
msgstr "Periodo 2"
#: 5.4/res/preferences.glade:1385
msgid "Period 3"
msgstr "Periodo 3"
#: 5.4/res/preferences.glade:1399
msgid "Period 4"
msgstr "Periodo 4"
#: 5.4/res/preferences.glade:1413
msgid "Period 5"
msgstr "Periodo 5"
#: 5.4/res/preferences.glade:1914
msgid "Period 6"
msgstr "Periodo 6"
#: 5.4/res/preferences.glade:1928
msgid "Period 7"
msgstr "Periodo 7"
#: 5.4/res/preferences.glade:1942
msgid "Period 9"
msgstr "Periodo 8"
#: 5.4/res/preferences.glade:1956
msgid "Period 8"
msgstr "Periodo 9"
#: 5.4/res/preferences.glade:1970
msgid "Period 10"
msgstr "Periodo 10"
#: 5.4/res/preferences.glade:2461
msgid "Location & Times"
msgstr "Ubicación y Horarios"
#: 5.4/res/preferences.glade:2480
msgid "Scaling"
msgstr "Escalado"
#: 5.4/res/preferences.glade:2519
msgid "Picture aspect"
msgstr "Aspecto de la imagen"
#: 5.4/res/preferences.glade:2556
msgid "Dynamic Background color"
msgstr "Color de fondo dinámico"
#: 5.4/res/preferences.glade:2593
msgid "Use dynamic Background color to create a gradient"
msgstr "Utilice un color de fondo dinámico para crear un degradado"
#: 5.4/res/preferences.glade:2639
msgid "Behaviour"
msgstr "Comportamiento"
#: 5.4/res/preferences.glade:2658
msgid "About the project"
msgstr "Acerca del proyecto"
#: 5.4/res/preferences.glade:2687
msgid ""
"Based on a location or by user choice, this extensions calculates the "
"periods of a day and switches the background image of your Cinnamon desktop. "
"The extension offers as image sources a set of preconfigured wallpapers, a "
"heic image import by the user or a custom folder with single images."
msgstr ""
"Basándose en una ubicación o por elección del usuario, esta extensión "
"calcula los periodos de un día y cambia la imagen de fondo de su escritorio "
"Cinnamon. La extensión ofrece como fuentes de imagen un conjunto de fondos "
"de pantalla preconfigurados, una imagen heic importada por el usuario o una "
"carpeta personalizada con imágenes individuales."
#: 5.4/res/preferences.glade:2706
msgid "Developed by TobiZog"
msgstr "Desarrollado por TobiZog"
#: 5.4/res/preferences.glade:2723
msgid ""
"If you need more information or want to rate the extension, you can visit "
"the Cinnamon Spices Website."
msgstr ""
"Si necesita más información o desea valorar la extensión, puede visitar el "
"sitio web de Cinnamon Spices."
#: 5.4/res/preferences.glade:2734
msgid "Cinnamon Dynamic Wallpaper at Cinnamon Spices Website"
msgstr ""
"Fondo de pantalla dinámico de Cinnamon en el sitio web de Cinnamon Spices"
#: 5.4/res/preferences.glade:2759
msgid "Source Code"
msgstr "Código fuente"
#: 5.4/res/preferences.glade:2788
msgid ""
"This project is Open Source. You can take a look inside the whole source "
"code of this extension on GitHub."
msgstr ""
"Este proyecto es de código abierto. Puede echar un vistazo al código fuente "
"completo de esta extensión en GitHub."
#: 5.4/res/preferences.glade:2799
msgid "Source Code on GitHub"
msgstr "Código fuente en GitHub"
#: 5.4/res/preferences.glade:2824
msgid "Issues and Enhancements"
msgstr "Problemas y mejoras"
#: 5.4/res/preferences.glade:2853
msgid ""
"Do you find an issue? Or want a new feature? Go to the GitHub repository and "
"create a new issue."
msgstr ""
"¿Ha encontrado algún problema? ¿O quieres una nueva funcionalidad? Ve al "
"repositorio de GitHub y crea una nueva incidencia. Si encuentras un mensaje "
"de error en los registros anteriores, añádelo al informe de incidencias."
#: 5.4/res/preferences.glade:2864
msgid "Create a new issue on GitHub"
msgstr "Crear una nueva incidencia en GitHub"
#: 5.4/res/preferences.glade:2889
msgid "About"
msgstr "Acerca de"
#: 5.4/res/preferences.glade:2917
msgid "Apply and close this window"
msgstr "Aplicar y cerrar esta ventana"
#: 5.4/res/preferences.glade:2929
msgid "Apply the settings without closing this window"
msgstr "Aplicar los ajustes sin cerrar esta ventana"

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: cinnamon-dynamic-wallpaper@TobiZog 2.2\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-"
"extensions/issues\n"
"POT-Creation-Date: 2024-02-12 12:12+0100\n"
"PO-Revision-Date: 2024-02-12 12:12+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
#: 5.4/extension.js:75
msgid "Welcome to Cinnamon Dynamic Wallpaper"
msgstr "Welkom op Cinnamon Dynamic Wallpaper"
#: 5.4/extension.js:76
msgid "Check the preferences to choose a dynamic wallpaper"
msgstr "Controleer de voorkeuren om een dynamische achtergrond te kiezen"
#: 5.4/extension.js:113
msgid "Error!"
msgstr "Fout!"
#: 5.4/extension.js:114
msgid ""
"Cinnamon Dynamic Wallpaper got an error while running the loop script. "
"Please create an issue on GitHub."
msgstr ""
"Cinnamon Dynamic Wallpaper kreeg een fout tijdens het uitvoeren van het loop-"
"script. Maak een ticket aan op GitHub."
#: 5.4/extension.js:139
msgid "Open settings"
msgstr "Instellingen openen"
#. metadata.json->name
msgid "Cinnamon Dynamic Wallpaper"
msgstr "Cinnamon Dynamic Wallpaper"
#. metadata.json->description
msgid ""
"Cinnamon extension for dynamic desktop backgrounds based on time and location"
msgstr ""
"Cinnamon extensie voor dynamische bureaublad achtergronden op basis van tijd "
"en locatie"
#: 5.4/res/preferences.glade:135
msgid "Image Source"
msgstr "Afbeeldingsbron"
#: 5.4/res/preferences.glade:186
msgid "Image Set"
msgstr "Afbeeldingset"
#: 5.4/res/preferences.glade:236
msgid "HEIC file"
msgstr "HEIC-bestand"
#: 5.4/res/preferences.glade:286
msgid "Source Folder"
msgstr "Bronmap"
#: 5.4/res/preferences.glade:336
msgid "Select an image set"
msgstr "Selecteer een afbeeldingsset"
#: 5.4/res/preferences.glade:379
msgid "Select a heic file to import"
msgstr "Selecteer een heic-bestand om te importeren"
#: 5.4/res/preferences.glade:430
msgid "Select a source folder"
msgstr "Selecteer een bronmap"
#: 5.4/res/preferences.glade:440
msgid "Open file selection dialog"
msgstr "Dialoogvenster voor bestandsselectie openen"
#: 5.4/res/preferences.glade:492
msgid "Image Selection"
msgstr "Beeldselectie"
#: 5.4/res/preferences.glade:930
msgid "Image Configuration"
msgstr "Afbeeldingsconfiguratie"
#: 5.4/res/preferences.glade:948
msgid "Period estimation"
msgstr "Periodeschatting"
#: 5.4/res/preferences.glade:1001
msgid "Use Network Location"
msgstr "Gebruik netwerklocatie"
#: 5.4/res/preferences.glade:1051
msgid "Custom Location"
msgstr "Aangepaste locatie"
#: 5.4/res/preferences.glade:1103
msgid "Custom Time Periods"
msgstr "Aangepaste tijdsperioden"
#: 5.4/res/preferences.glade:1132
msgid "Location estimation"
msgstr "Schatting van locatie"
#: 5.4/res/preferences.glade:1167
msgid "Interval time to refresh location via network (min)"
msgstr "Intervaltijd voor het vernieuwen van de locatie via netwerk (min)"
#: 5.4/res/preferences.glade:1212
msgid "Location provider"
msgstr "Locatieaanbieder"
#: 5.4/res/preferences.glade:1274
msgid "Latitude"
msgstr "Breedtegraad"
#: 5.4/res/preferences.glade:1317
msgid "Longitude"
msgstr "Lengtegraad"
#: 5.4/res/preferences.glade:1357
msgid "Period 1"
msgstr "Periode 1"
#: 5.4/res/preferences.glade:1371
msgid "Period 2"
msgstr "Periode 2"
#: 5.4/res/preferences.glade:1385
msgid "Period 3"
msgstr "Periode 3"
#: 5.4/res/preferences.glade:1399
msgid "Period 4"
msgstr "Periode 4"
#: 5.4/res/preferences.glade:1413
msgid "Period 5"
msgstr "Periode 5"
#: 5.4/res/preferences.glade:1914
msgid "Period 6"
msgstr "Periode 6"
#: 5.4/res/preferences.glade:1928
msgid "Period 7"
msgstr "Periode 7"
#: 5.4/res/preferences.glade:1942
msgid "Period 9"
msgstr "Periode 9"
#: 5.4/res/preferences.glade:1956
msgid "Period 8"
msgstr "Periode 8"
#: 5.4/res/preferences.glade:1970
msgid "Period 10"
msgstr "Periode 10"
#: 5.4/res/preferences.glade:2461
msgid "Location & Times"
msgstr "Locatie & Tijden"
#: 5.4/res/preferences.glade:2480
msgid "Scaling"
msgstr "Schaalvergroting"
#: 5.4/res/preferences.glade:2519
msgid "Picture aspect"
msgstr "Beeldaspect"
#: 5.4/res/preferences.glade:2556
msgid "Dynamic Background color"
msgstr "Dynamische achtergrond kleur"
#: 5.4/res/preferences.glade:2593
msgid "Use dynamic Background color to create a gradient"
msgstr ""
"Gebruik een dynamische achtergrondkleur om een kleur verloop te creëren"
#: 5.4/res/preferences.glade:2639
msgid "Behaviour"
msgstr "Gedrag"
#: 5.4/res/preferences.glade:2658
msgid "About the project"
msgstr "Over het project"
#: 5.4/res/preferences.glade:2687
msgid ""
"Based on a location or by user choice, this extensions calculates the "
"periods of a day and switches the background image of your Cinnamon desktop. "
"The extension offers as image sources a set of preconfigured wallpapers, a "
"heic image import by the user or a custom folder with single images."
msgstr ""
"Op basis van een locatie of gebruikerskeuze berekent deze extensie de "
"perioden van een dag en verandert de achtergrondafbeelding van uw Cinnamon-"
"bureaublad. De extensie biedt als afbeeldingsbronnen een reeks vooraf "
"geconfigureerde achtergronden, een heic-afbeeldingsimport door de gebruiker "
"of een aangepaste map met afzonderlijke afbeeldingen."
#: 5.4/res/preferences.glade:2706
msgid "Developed by TobiZog"
msgstr "Ontwikkeld door TobiZog"
#: 5.4/res/preferences.glade:2723
msgid ""
"If you need more information or want to rate the extension, you can visit "
"the Cinnamon Spices Website."
msgstr ""
"Als u meer informatie nodig heeft of de extensie wilt beoordelen, kunt u de "
"website van Cinnamon Spices bezoeken."
#: 5.4/res/preferences.glade:2734
msgid "Cinnamon Dynamic Wallpaper at Cinnamon Spices Website"
msgstr "Cinnamon Dynamic Wallpaper op Cinnamon Spices Website"
#: 5.4/res/preferences.glade:2759
msgid "Source Code"
msgstr "Broncode"
#: 5.4/res/preferences.glade:2788
msgid ""
"This project is Open Source. You can take a look inside the whole source "
"code of this extension on GitHub."
msgstr ""
"Dit project is Open Source. Je kunt de volledige broncode van deze extensie "
"op GitHub bekijken."
#: 5.4/res/preferences.glade:2799
msgid "Source Code on GitHub"
msgstr "Broncode op GitHub"
#: 5.4/res/preferences.glade:2824
msgid "Issues and Enhancements"
msgstr "Problemen en Verbeteringen"
#: 5.4/res/preferences.glade:2853
msgid ""
"Do you find an issue? Or want a new feature? Go to the GitHub repository and "
"create a new issue."
msgstr ""
"Vindt jij een probleem? Of wil je een nieuwe functie? Ga naar de GitHub-"
"repository en maak een nieuw ticket."
#: 5.4/res/preferences.glade:2864
msgid "Create a new issue on GitHub"
msgstr "Maak een nieuw ticket op GitHub"
#: 5.4/res/preferences.glade:2889
msgid "About"
msgstr "Over"
#: 5.4/res/preferences.glade:2917
msgid "Apply and close this window"
msgstr "Toepassen en sluit dit venster"
#: 5.4/res/preferences.glade:2929
msgid "Apply the settings without closing this window"
msgstr "Pas de instellingen toe zonder dit venster te sluiten"

View File

@@ -0,0 +1,271 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# blogdron <EMAIL@ADDRESS>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: cinnamon-dynamic-wallpaper@TobiZog 2.3\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-"
"extensions/issues\n"
"POT-Creation-Date: 2024-02-12 12:12+0100\n"
"PO-Revision-Date: 2024-02-15 16:46+0300\n"
"Last-Translator: blogdron\n"
"Language-Team: \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.2\n"
#: 5.4/extension.js:75
msgid "Welcome to Cinnamon Dynamic Wallpaper"
msgstr "Добро пожаловать в Динамические обои"
#: 5.4/extension.js:76
msgid "Check the preferences to choose a dynamic wallpaper"
msgstr "Проверьте настройки, чтобы выбрать динамические обои"
#: 5.4/extension.js:113
msgid "Error!"
msgstr "Ошибка!"
#: 5.4/extension.js:114
msgid ""
"Cinnamon Dynamic Wallpaper got an error while running the loop script. "
"Please create an issue on GitHub."
msgstr ""
"В Динамических Обоях Cinnamon возникла ошибка при запуске сценария цикла. "
"Создайте сообщение на GitHub."
#: 5.4/extension.js:139
msgid "Open settings"
msgstr "Открыть настройки"
#. metadata.json->name
msgid "Cinnamon Dynamic Wallpaper"
msgstr "Динамические Обои (Cinnamon Dynamic Wallpaper)"
#. metadata.json->description
msgid ""
"Cinnamon extension for dynamic desktop backgrounds based on time and location"
msgstr ""
"Расширение Cinnamon для динамических обоев рабочего стола в зависимости от "
"времени суток и местоположения"
#: 5.4/res/preferences.glade:135
msgid "Image Source"
msgstr "Источник изображений"
#: 5.4/res/preferences.glade:186
msgid "Image Set"
msgstr "Установить изображение"
#: 5.4/res/preferences.glade:236
msgid "HEIC file"
msgstr "HEIC файл"
#: 5.4/res/preferences.glade:286
msgid "Source Folder"
msgstr "Каталог изображений"
#: 5.4/res/preferences.glade:336
msgid "Select an image set"
msgstr "Выберите набор изображений"
#: 5.4/res/preferences.glade:379
msgid "Select a heic file to import"
msgstr "Выберите файл heic для импорта"
#: 5.4/res/preferences.glade:430
msgid "Select a source folder"
msgstr "Выберите каталог изображений"
#: 5.4/res/preferences.glade:440
msgid "Open file selection dialog"
msgstr "Открыть диалог выбора файла"
#: 5.4/res/preferences.glade:492
msgid "Image Selection"
msgstr "Выбор изображений"
#: 5.4/res/preferences.glade:930
msgid "Image Configuration"
msgstr "Настройки Изображений"
#: 5.4/res/preferences.glade:948
msgid "Period estimation"
msgstr "Периодичность"
#: 5.4/res/preferences.glade:1001
msgid "Use Network Location"
msgstr "Определить местоположение по сети"
#: 5.4/res/preferences.glade:1051
msgid "Custom Location"
msgstr "Задать местоположение"
#: 5.4/res/preferences.glade:1103
msgid "Custom Time Periods"
msgstr "Задать периодичность"
#: 5.4/res/preferences.glade:1132
msgid "Location estimation"
msgstr "Расчёт местоположения"
#: 5.4/res/preferences.glade:1167
msgid "Interval time to refresh location via network (min)"
msgstr "Интервал обновления местоположения через сеть (мин)."
#: 5.4/res/preferences.glade:1212
msgid "Location provider"
msgstr "Источник определяющий местоположения"
#: 5.4/res/preferences.glade:1274
msgid "Latitude"
msgstr "Широта"
#: 5.4/res/preferences.glade:1317
msgid "Longitude"
msgstr "Долгота"
#: 5.4/res/preferences.glade:1357
msgid "Period 1"
msgstr "Период 1"
#: 5.4/res/preferences.glade:1371
msgid "Period 2"
msgstr "Период 2"
#: 5.4/res/preferences.glade:1385
msgid "Period 3"
msgstr "Период 3"
#: 5.4/res/preferences.glade:1399
msgid "Period 4"
msgstr "Период 4"
#: 5.4/res/preferences.glade:1413
msgid "Period 5"
msgstr "Период 5"
#: 5.4/res/preferences.glade:1914
msgid "Period 6"
msgstr "Период 6"
#: 5.4/res/preferences.glade:1928
msgid "Period 7"
msgstr "Период 7"
#: 5.4/res/preferences.glade:1942
msgid "Period 9"
msgstr "Период 9"
#: 5.4/res/preferences.glade:1956
msgid "Period 8"
msgstr "Период 8"
#: 5.4/res/preferences.glade:1970
msgid "Period 10"
msgstr "Период 10"
#: 5.4/res/preferences.glade:2461
msgid "Location & Times"
msgstr "Местоположение и Время"
#: 5.4/res/preferences.glade:2480
msgid "Scaling"
msgstr "Масштабирование"
#: 5.4/res/preferences.glade:2519
msgid "Picture aspect"
msgstr "Соотношение сторон"
#: 5.4/res/preferences.glade:2556
msgid "Dynamic Background color"
msgstr "Динамический Фоновый цвет"
#: 5.4/res/preferences.glade:2593
msgid "Use dynamic Background color to create a gradient"
msgstr "Используйте динамический цвет фона для создания градиента"
#: 5.4/res/preferences.glade:2639
msgid "Behaviour"
msgstr "Поведение"
#: 5.4/res/preferences.glade:2658
msgid "About the project"
msgstr "О проекте"
#: 5.4/res/preferences.glade:2687
msgid ""
"Based on a location or by user choice, this extensions calculates the "
"periods of a day and switches the background image of your Cinnamon desktop. "
"The extension offers as image sources a set of preconfigured wallpapers, a "
"heic image import by the user or a custom folder with single images."
msgstr ""
"В зависимости от местоположения или по выбору пользователя это расширение "
"рассчитывает периоды дня и переключает фоновое изображение рабочего стола "
"Cinnamon. Расширение предлагает в качестве источников изображений набор "
"предварительно настроенных обоев, импорт изображений Heic пользователем или "
"пользовательский каталог с отдельными изображениями."
#: 5.4/res/preferences.glade:2706
msgid "Developed by TobiZog"
msgstr "Разработано TobiZog"
#: 5.4/res/preferences.glade:2723
msgid ""
"If you need more information or want to rate the extension, you can visit "
"the Cinnamon Spices Website."
msgstr ""
"Если вам нужна дополнительная информация или вы хотите оценить расширение, "
"посетите веб-сайт Cinnamon Spices."
#: 5.4/res/preferences.glade:2734
msgid "Cinnamon Dynamic Wallpaper at Cinnamon Spices Website"
msgstr "Cinnamon Dynamic Wallpaper в Cinnamon Spices Веб-сайт"
#: 5.4/res/preferences.glade:2759
msgid "Source Code"
msgstr "Исходный код"
#: 5.4/res/preferences.glade:2788
msgid ""
"This project is Open Source. You can take a look inside the whole source "
"code of this extension on GitHub."
msgstr ""
"Этот проект с открытым исходным кодом. Вы можете просмотреть весь исходный "
"код этого расширения на GitHub."
#: 5.4/res/preferences.glade:2799
msgid "Source Code on GitHub"
msgstr "Исходный код на GitHub"
#: 5.4/res/preferences.glade:2824
msgid "Issues and Enhancements"
msgstr "Проблемы и улучшения"
#: 5.4/res/preferences.glade:2853
msgid ""
"Do you find an issue? Or want a new feature? Go to the GitHub repository and "
"create a new issue."
msgstr ""
"Вы обнаружили проблему или хотите новую функцию? Перейдите в репозиторий "
"GitHub и создайте новую задачу (issue). Если вы обнаружите сообщение об "
"ошибке в журналах выше, добавьте его в отчет о проблеме."
#: 5.4/res/preferences.glade:2864
msgid "Create a new issue on GitHub"
msgstr "Создайте новую задачу (issue) на GitHub"
#: 5.4/res/preferences.glade:2889
msgid "About"
msgstr "О проекте"
#: 5.4/res/preferences.glade:2917
msgid "Apply and close this window"
msgstr "Применить и закрыть это окно"
#: 5.4/res/preferences.glade:2929
msgid "Apply the settings without closing this window"
msgstr "Применить настройки, не закрывая это окно"