5 Commits

Author SHA1 Message Date
0ab3297054 Adding support for Login screen wallpaper 2024-02-15 17:04:20 +01: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
16 changed files with 1350 additions and 79 deletions

View File

@@ -1,3 +1,8 @@
# Version 2.3
- Adding Dutch translation
- Adding German translation
- Adding Spanish translation (Thanks to rcalixte)
# Version 2.2
- Bugfixes
- 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.
![](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

View File

@@ -1,7 +1,7 @@
/**
* @name Cinnamon-Dynamic-Wallpaper
* @alias TobiZog
* @since 2023-05-17
* @name Cinnamon-Dynamic-Wallpaper
* @alias TobiZog
* @since 2023-05-17
*
* @description Main application file
*/
@@ -17,7 +17,8 @@ const Gio = imports.gi.Gio;
const MessageTray = imports.ui.messageTray;
const St = imports.gi.St;
const Main = imports.ui.main;
const Gettext = imports.gettext;
const GLib = imports.gi.GLib;
/******************** 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 = {
/******************** Lifecycle ********************/
@@ -56,16 +66,18 @@ CinnamonDynamicWallpaperExtension.prototype = {
_init: function(uuid) {
this.settings = new Settings.ExtensionSettings(this, uuid);
Gettext.bindtextdomain(UUID, GLib.get_home_dir() + '/.local/share/locale');
// Check for the first startup
if (this.settings.getValue("first_start")) {
// Welcome notification
this.showNotification("Welcome to Cinnamon Dynamic Wallpaper",
"Check the preferences to choose a dynamic wallpaper", true)
this.showNotification(_("Welcome to Cinnamon Dynamic Wallpaper"),
_("Check the preferences to choose a dynamic wallpaper"), true)
// Hide the notification on system restart
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
@@ -98,8 +110,8 @@ CinnamonDynamicWallpaperExtension.prototype = {
try {
Util.spawnCommandLine("/usr/bin/env python3 " + DIRECTORY.path + "/src/main.py loop")
} catch(e) {
this.showNotification("Error!",
"Cinnamon Dynamic Wallpaper got an error while running the loop script. Please create an issue on GitHub.")
this.showNotification(_("Error!"),
_("Cinnamon Dynamic Wallpaper got an error while running the loop script. Please create an issue on GitHub."))
}
// 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="can-focus">False</property>
<property name="margin-top">16</property>
<property name="label" translatable="yes">label</property>
<property name="label">label</property>
<attributes>
<attribute name="style" value="italic"/>
</attributes>
@@ -517,7 +517,7 @@
<object class="GtkLabel" id="etr_period_1">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -531,7 +531,7 @@
<object class="GtkLabel" id="etr_period_3">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -545,7 +545,7 @@
<object class="GtkLabel" id="etr_period_5">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -559,7 +559,7 @@
<object class="GtkLabel" id="etr_period_7">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -573,7 +573,7 @@
<object class="GtkLabel" id="etr_period_9">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -789,7 +789,7 @@
<object class="GtkLabel" id="etr_period_2">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -803,7 +803,7 @@
<object class="GtkLabel" id="etr_period_4">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -817,7 +817,7 @@
<object class="GtkLabel" id="etr_period_6">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -831,7 +831,7 @@
<object class="GtkLabel" id="etr_period_8">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -845,7 +845,7 @@
<object class="GtkLabel" id="etr_period_10">
<property name="visible">True</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>
<attribute name="size" value="15360"/>
</attributes>
@@ -1245,7 +1245,7 @@
<property name="margin-end">8</property>
<property name="margin-top">8</property>
<property name="margin-bottom">8</property>
<property name="label" translatable="yes">label</property>
<property name="label">label</property>
<attributes>
<attribute name="style" value="italic"/>
</attributes>
@@ -1432,7 +1432,7 @@
<property name="margin-right">8</property>
<property name="margin-start">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="adjustment">adjustment_hours5</property>
<property name="value">23</property>
@@ -1452,7 +1452,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1467,7 +1467,7 @@
<object class="GtkSpinButton" id="spb_period_5_minute">
<property name="visible">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="adjustment">adjustment_minutes5</property>
<property name="value">59</property>
@@ -1483,7 +1483,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1502,7 +1502,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1529,7 +1529,7 @@
<property name="can-focus">True</property>
<property name="margin-start">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="adjustment">adjustment_hours6</property>
<property name="value">23</property>
@@ -1549,7 +1549,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1564,7 +1564,7 @@
<object class="GtkSpinButton" id="spb_period_6_minute">
<property name="visible">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="adjustment">adjustment_minutes6</property>
<property name="value">59</property>
@@ -1580,7 +1580,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1599,7 +1599,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1626,7 +1626,7 @@
<property name="can-focus">True</property>
<property name="margin-start">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="adjustment">adjustment_hours7</property>
<property name="value">23</property>
@@ -1646,7 +1646,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1661,7 +1661,7 @@
<object class="GtkSpinButton" id="spb_period_7_minute">
<property name="visible">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="adjustment">adjustment_minutes7</property>
<property name="value">59</property>
@@ -1677,7 +1677,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1696,7 +1696,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1721,7 +1721,7 @@
<object class="GtkSpinButton" id="spb_period_8_hour">
<property name="visible">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="adjustment">adjustment_hours8</property>
<property name="value">23</property>
@@ -1741,7 +1741,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1756,7 +1756,7 @@
<object class="GtkSpinButton" id="spb_period_8_minute">
<property name="visible">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="adjustment">adjustment_minutes8</property>
<property name="value">59</property>
@@ -1772,7 +1772,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1791,7 +1791,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1820,7 +1820,7 @@
<property name="margin-right">8</property>
<property name="margin-start">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="adjustment">adjustment_hours9</property>
<property name="value">23</property>
@@ -1840,7 +1840,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1855,7 +1855,7 @@
<object class="GtkSpinButton" id="spb_period_9_minute">
<property name="visible">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="adjustment">adjustment_minutes9</property>
<property name="value">57</property>
@@ -1871,7 +1871,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1890,7 +1890,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">23:59</property>
<property name="label">23:59</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -1989,7 +1989,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2004,7 +2004,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2023,7 +2023,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2052,7 +2052,7 @@
<property name="margin-right">8</property>
<property name="margin-start">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="adjustment">adjustment_hours2</property>
<property name="value">23</property>
@@ -2072,7 +2072,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2087,7 +2087,7 @@
<object class="GtkSpinButton" id="spb_period_2_minute">
<property name="visible">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="adjustment">adjustment_minutes2</property>
<property name="value">59</property>
@@ -2103,7 +2103,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2122,7 +2122,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2151,7 +2151,7 @@
<property name="margin-right">8</property>
<property name="margin-start">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="adjustment">adjustment_hours3</property>
<property name="value">23</property>
@@ -2171,7 +2171,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2186,7 +2186,7 @@
<object class="GtkSpinButton" id="spb_period_3_minute">
<property name="visible">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="adjustment">adjustment_minutes3</property>
<property name="value">59</property>
@@ -2202,7 +2202,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2221,7 +2221,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2250,7 +2250,7 @@
<property name="margin-right">8</property>
<property name="margin-start">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="adjustment">adjustment_hours4</property>
<property name="value">23</property>
@@ -2270,7 +2270,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2285,7 +2285,7 @@
<object class="GtkSpinButton" id="spb_period_4_minute">
<property name="visible">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="adjustment">adjustment_minutes4</property>
<property name="value">59</property>
@@ -2301,7 +2301,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2320,7 +2320,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2345,7 +2345,7 @@
<object class="GtkSpinButton" id="spb_period_1_hour">
<property name="visible">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="adjustment">adjustment_hours1</property>
<property name="value">23</property>
@@ -2365,7 +2365,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">:</property>
<property name="label">:</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2380,7 +2380,7 @@
<object class="GtkSpinButton" id="spb_period_1_minute">
<property name="visible">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="adjustment">adjustment_minutes1</property>
<property name="value">59</property>
@@ -2396,7 +2396,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">-</property>
<property name="label">-</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2415,7 +2415,7 @@
<property name="margin-right">8</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="label" translatable="yes">00:00</property>
<property name="label">00:00</property>
<attributes>
<attribute name="size" value="20480"/>
</attributes>
@@ -2553,7 +2553,7 @@
<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>
<property name="label" translatable="yes">Login Screen</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -2564,6 +2564,80 @@
<property name="position">2</property>
</packing>
</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>
<object class="GtkListBox">
<property name="visible">True</property>
@@ -2602,6 +2676,7 @@
<object class="GtkSwitch" id="sw_dynamic_background_color">
<property name="visible">True</property>
<property name="can-focus">True</property>
<signal name="state-set" handler="on_sw_dynamic_background_color_state_set" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -2618,7 +2693,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">3</property>
<property name="position">3</property>
<property name="position">5</property>
</packing>
</child>
<child>
@@ -2630,7 +2705,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
<property name="position">6</property>
</packing>
</child>
</object>
@@ -2850,7 +2925,7 @@
<property name="margin-end">12</property>
<property name="margin-top">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>
</child>
</object>

View File

@@ -130,5 +130,9 @@
"period_9_custom_start_time": {
"type": "generic",
"default": "21:00"
},
"login_image": {
"type": "generic",
"default": true
}
}

View File

@@ -1,6 +1,6 @@
#!/usr/bin/python3
import sys, datetime
import sys
from view.main_window import *
from model.main_view_model import *

View File

@@ -1,13 +1,18 @@
import os, time
from PIL import Image
# GTK
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.suntimes import *
from service.time_bar_chart import *
from service.location import *
from enums.PeriodSourceEnum import *
class Main_View_Model:
""" The main ViewModel for the application
"""
@@ -38,6 +43,13 @@ class Main_View_Model:
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
self.display = Gdk.Display.get_default()
self.screen_height = self.display.get_monitor(0).get_geometry().height
@@ -171,9 +183,20 @@ class Main_View_Model:
self.current_image_uri = self.cinnamon_prefs.source_folder + self.cinnamon_prefs.period_images[i]
break
# Set the background
# Update the background
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
self.background_settings['picture-options'] = self.cinnamon_prefs.picture_aspect
@@ -257,3 +280,52 @@ class Main_View_Model:
except:
self.background_settings['primary-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
print(line)
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

@@ -32,6 +32,7 @@ class Cinnamon_Pref_Handler:
with open(self.pref_location, "r") as 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.dynamic_background_color = self.extract_json('dynamic_background_color')
self.image_source = self.extract_json('image_source')
@@ -72,6 +73,8 @@ class Cinnamon_Pref_Handler:
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):
""" Storing safely a value to the dictionary
@@ -93,6 +96,7 @@ class Cinnamon_Pref_Handler:
def store_preferences(self):
""" 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('dynamic_background_color', self.dynamic_background_color)
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_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('login_image', self.login_image)
# Write to file

View File

@@ -9,7 +9,7 @@ from gi.repository import Gtk, GdkPixbuf
# Packages
import subprocess, threading, time
from datetime import timedelta, datetime, date
from datetime import timedelta, datetime
# Local scripts
from model.main_view_model import *
@@ -34,6 +34,7 @@ class Main_Window:
# Glade
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.connect_signals(self)
@@ -149,6 +150,7 @@ class Main_Window:
# Page 3: Behaviour
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_login_image: Gtk.Switch = self.builder.get_object("sw_login_image")
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.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_login_image.set_active(self.view_model.cinnamon_prefs.login_image)
# Show the main window
@@ -693,6 +696,16 @@ class Main_Window:
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
def on_cinnamon_spices_website_button_clicked(self, _: Gtk.Button):
@@ -746,6 +759,7 @@ class Main_Window:
# Use the new settings
self.view_model.refresh_image()
self.view_model.set_background_gradient()
self.view_model.set_login_image()
def on_destroy(self, *args):

View File

@@ -3,7 +3,7 @@
"uuid": "cinnamon-dynamic-wallpaper@TobiZog",
"name": "Cinnamon Dynamic Wallpaper",
"description": "Cinnamon extension for dynamic desktop backgrounds based on time and location",
"version": "2.2",
"version": "2.3",
"multiversion": true,
"cinnamon-version": [
"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"