From 7fdf0601fcbb15d103651f6c0b0e38733ddd12f8 Mon Sep 17 00:00:00 2001
From: nautilusx
Date: Tue, 30 Jun 2020 16:14:30 +0000
Subject: [PATCH 1/7] Translated using Weblate (German)
Currently translated at 99.8% (1278 of 1280 strings)
---
plinth/locale/de/LC_MESSAGES/django.po | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po
index 45fc22b51..57061aa22 100644
--- a/plinth/locale/de/LC_MESSAGES/django.po
+++ b/plinth/locale/de/LC_MESSAGES/django.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 15:43-0700\n"
-"PO-Revision-Date: 2020-06-24 11:41+0000\n"
-"Last-Translator: Michael Breidenbach \n"
+"PO-Revision-Date: 2020-07-01 16:41+0000\n"
+"Last-Translator: nautilusx \n"
"Language-Team: German \n"
"Language: de\n"
@@ -6535,26 +6535,19 @@ msgid "Update now"
msgstr "Jetzt aktualisieren"
#: plinth/modules/upgrades/templates/upgrades_configure.html:31
-#, fuzzy
-#| msgid ""
-#| "This may take a long time to complete. During an update, "
-#| "you cannot install apps. Also, this web interface may be temporarily "
-#| "unavailable and show an error. In that case, refresh the page to continue."
msgid ""
"This may take a long time to complete. During an update, "
"you cannot install apps. Also, this web interface may be temporarily "
"unavailable and show an error. In that case, refresh the page to continue."
msgstr ""
-"Bis der Vorgang abgeschlossen ist, kann es lange dauern. "
+"Bis der Vorgang abgeschlossen ist, kann es lange dauern. "
"Während eines Updates können Sie keine Apps installieren. Außerdem ist diese "
"Weboberfläche möglicherweise vorübergehend nicht verfügbar und zeigt einen "
"Fehler an. In diesem Fall aktualisieren Sie die Seite, um fortzufahren."
#: plinth/modules/upgrades/templates/upgrades_configure.html:45
-#, fuzzy
-#| msgid "Toggle recent update logs"
msgid "Show recent update logs"
-msgstr "Umschalten der letzten Update-Protokolle"
+msgstr "Letzte Update-Protokolle anzeigen"
#: plinth/modules/upgrades/views.py:53
#, python-brace-format
From 6f085abcb19c4793824f9de8a13aca10e0095455 Mon Sep 17 00:00:00 2001
From: Robert Pollak
Date: Wed, 1 Jul 2020 21:07:27 +0000
Subject: [PATCH 2/7] Translated using Weblate (German)
Currently translated at 99.7% (1277 of 1280 strings)
---
plinth/locale/de/LC_MESSAGES/django.po | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po
index 57061aa22..a377a14d0 100644
--- a/plinth/locale/de/LC_MESSAGES/django.po
+++ b/plinth/locale/de/LC_MESSAGES/django.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 15:43-0700\n"
-"PO-Revision-Date: 2020-07-01 16:41+0000\n"
-"Last-Translator: nautilusx \n"
+"PO-Revision-Date: 2020-07-02 22:41+0000\n"
+"Last-Translator: Robert Pollak \n"
"Language-Team: German \n"
"Language: de\n"
@@ -1469,8 +1469,9 @@ msgstr "Letztes Update"
#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:51
#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47
+#, fuzzy
msgid "About"
-msgstr "Über"
+msgstr "Info"
#: plinth/modules/dynamicdns/views.py:32
#: plinth/modules/firewall/templates/firewall.html:10
From 96caad1bce9b7123fab90f0442c59048bfeba4ac Mon Sep 17 00:00:00 2001
From: "J. Lavoie"
Date: Wed, 1 Jul 2020 22:41:33 +0000
Subject: [PATCH 3/7] Translated using Weblate (French)
Currently translated at 99.0% (1268 of 1280 strings)
---
plinth/locale/fr/LC_MESSAGES/django.po | 68 ++++++++------------------
1 file changed, 21 insertions(+), 47 deletions(-)
diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po
index 5ca0ef864..76c65ca06 100644
--- a/plinth/locale/fr/LC_MESSAGES/django.po
+++ b/plinth/locale/fr/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 15:43-0700\n"
-"PO-Revision-Date: 2020-06-25 19:41+0000\n"
-"Last-Translator: Éfrit \n"
+"PO-Revision-Date: 2020-07-02 22:41+0000\n"
+"Last-Translator: J. Lavoie \n"
"Language-Team: French \n"
"Language: fr\n"
@@ -423,7 +423,7 @@ msgstr ""
#: plinth/modules/backups/templates/backups_repository.html:77
msgid "Download"
-msgstr "Téléchargement"
+msgstr "Télécharger"
#: plinth/modules/backups/templates/backups_repository.html:81
#: plinth/modules/backups/templates/backups_restore.html:27
@@ -1709,7 +1709,7 @@ msgstr ""
#: plinth/modules/networks/templates/networks_configuration.html:49
#: plinth/modules/storage/templates/storage.html:94
msgid "Advanced"
-msgstr ""
+msgstr "Avancées"
#: plinth/modules/firewall/templates/firewall.html:98
msgid ""
@@ -1938,7 +1938,7 @@ msgstr "Manuel"
#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
-msgstr "Obtenir de l'aide"
+msgstr "Obtenir de l’aide"
#: plinth/modules/help/__init__.py:43
#: plinth/modules/help/templates/help_feedback.html:9
@@ -1971,9 +1971,9 @@ msgstr ""
"réseau faisant l’interface entre vous et le reste de l’Internet tout en "
"protégeant votre vie privée et vos données. %(box_name)s intègre des "
"applications permettant d’héberger par exemple un blogue, un wiki, un site "
-"Internet, un réseau social, de gérer des courriels, un serveur mandataire "
-"web ou un relais Tor, sur une machine qui peut également remplacer votre "
-"routeur Wi-Fi. De cette manière vos données restent sous votre contrôle."
+"web, un réseau social, de gérer des courriels, un serveur mandataire web ou "
+"un relais Tor, sur une machine qui peut également remplacer votre routeur Wi-"
+"Fi. De cette manière vos données restent sous votre contrôle."
#: plinth/modules/help/templates/help_about.html:30
msgid ""
@@ -4989,14 +4989,6 @@ msgstr ""
"correcteur orthographique."
#: plinth/modules/roundcube/__init__.py:26
-#, fuzzy
-#| msgid ""
-#| "You can access Roundcube from /roundcube. Provide the username and password of the email "
-#| "account you wish to access followed by the domain name of the IMAP server "
-#| "for your email provider, like imap.example.com. For IMAP "
-#| "over SSL (recommended), fill the server field like imaps://imap."
-#| "example.com."
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5004,12 +4996,11 @@ msgid ""
"(recommended), fill the server field like imaps://imap.example.com"
"code>."
msgstr ""
-"Vous pouvez accéder à RoundCube depuis la page /roundcube. Renseignez le nom d’utilisateur et le "
-"mot de passe du compte de courrier électronique auquel vous souhaitez "
-"accéder, suivis du nom de domaine du serveur IMAP de votre fournisseur de "
-"courriel, comme imap.example.com. Pour un connexion IMAP sur "
-"SSL (recommandé), remplissez le champ serveur avec une adresse du type "
+"Vous pouvez l’utiliser en renseignant le nom d’utilisateur et le mot de "
+"passe du compte de courrier électronique auquel vous souhaitez accéder, "
+"suivis du nom de domaine du serveur IMAP de votre fournisseur de courriel, "
+"comme imap.example.com. Pour un connexion IMAP sur SSL "
+"(recommandé), remplissez le champ serveur avec une adresse du type "
"imaps://imap.example.com."
#: plinth/modules/roundcube/__init__.py:31
@@ -5092,10 +5083,8 @@ msgid "Network File Storage"
msgstr "Stockage de fichiers réseau"
#: plinth/modules/samba/manifest.py:15
-#, fuzzy
-#| msgid "Add Client"
msgid "Android Samba Client"
-msgstr "Ajouter un client"
+msgstr "Client Android Samba"
#: plinth/modules/samba/manifest.py:28
msgid "Ghost Commander - Samba plugin"
@@ -5103,17 +5092,15 @@ msgstr ""
#: plinth/modules/samba/manifest.py:42
msgid "VLC media player"
-msgstr ""
+msgstr "Lecteur multimédia VLC"
#: plinth/modules/samba/manifest.py:56
-#, fuzzy
-#| msgid "GNOME Calendar"
msgid "GNOME Files"
-msgstr "Agenda GNOME"
+msgstr "Fichiers GNOME"
#: plinth/modules/samba/manifest.py:68
msgid "Dolphin"
-msgstr ""
+msgstr "Dolphin"
#: plinth/modules/samba/templates/samba.html:24
#: plinth/modules/samba/templates/samba.html:35
@@ -5409,20 +5396,12 @@ msgid "Shaarli allows you to save and share bookmarks."
msgstr "Shaarli permet de sauvegarder et de partager vos signets."
#: plinth/modules/shaarli/__init__.py:21
-#, fuzzy
-#| msgid ""
-#| "When enabled, Shaarli will be available from /shaarli path on the web server. Note that "
-#| "Shaarli only supports a single user account, which you will need to setup "
-#| "on the initial visit."
msgid ""
"Note that Shaarli only supports a single user account, which you will need "
"to setup on the initial visit."
msgstr ""
-"Une fois activé, Shaarli est accessible depuis la page /shaarli sur ce serveur web. Notez que Shaarli "
-"ne supporte qu’un unique compte utilisateur, que vous devrez configurer lors "
-"de votre première visite."
+"Notez que Shaarli ne supporte qu’un unique compte utilisateur, que vous "
+"devrez configurer lors de votre première visite."
#: plinth/modules/shaarli/__init__.py:37 plinth/modules/shaarli/manifest.py:8
msgid "Shaarli"
@@ -6495,18 +6474,13 @@ msgstr ""
"\"{users_url}\">utilisateur disposant d’un compte sur la {box_name}."
#: plinth/modules/ttrss/__init__.py:37
-#, fuzzy
-#| msgid ""
-#| "When using a mobile or desktop application for Tiny Tiny RSS, use the URL "
-#| "/tt-rss-app for "
-#| "connecting."
msgid ""
"When using a mobile or desktop application for Tiny Tiny RSS, use the URL /tt-rss-app for connecting."
msgstr ""
"Si vous utilisez Tiny Tiny RSS avec une application pour téléphone ou "
-"ordinateur, saisissez l’URL tt-rss-app pour vous connecter."
+"ordinateur, saisissez l’URL tt-rss-app pour "
+"vous connecter."
#: plinth/modules/ttrss/__init__.py:53
msgid "Read and subscribe to news feeds"
From 00b38c8bdb451a81b844d59aeb1762358214bd0b Mon Sep 17 00:00:00 2001
From: Petter Reinholdtsen
Date: Fri, 3 Jul 2020 18:42:54 +0000
Subject: [PATCH 4/7] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?=
=?UTF-8?q?=20Bokm=C3=A5l)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Currently translated at 85.0% (1089 of 1280 strings)
---
plinth/locale/nb/LC_MESSAGES/django.po | 85 ++++++++++----------------
1 file changed, 31 insertions(+), 54 deletions(-)
diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po
index b0fb3129d..432f5594a 100644
--- a/plinth/locale/nb/LC_MESSAGES/django.po
+++ b/plinth/locale/nb/LC_MESSAGES/django.po
@@ -16,7 +16,7 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 15:43-0700\n"
-"PO-Revision-Date: 2020-06-02 00:57+0000\n"
+"PO-Revision-Date: 2020-07-04 19:41+0000\n"
"Last-Translator: Petter Reinholdtsen \n"
"Language-Team: Norwegian Bokmål \n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
@@ -737,20 +737,19 @@ msgid ""
"firewall ports and advanced networking such as bonding, bridging and VLAN "
"management."
msgstr ""
+"Cockpit kan brukes for å utføre avanserte lagringsoperasjoner som "
+"diskpartisjonering og RAID-administrasjon. Den kan også brukes for å åpne "
+"tilpassede brannmursporter og avansert nettverksoppsett som bonding, "
+"bridging og VLAN-administrasjon."
#: plinth/modules/cockpit/__init__.py:43
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "When enabled, Cockpit will be available from /"
-#| "_cockpit/ path on the web server. It can be accessed by any user on {box_name} belonging to the admin group."
+#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
"belonging to the admin group."
msgstr ""
-"Når aktivert, er Cockpit tilgjengelig fra /_cockpit/"
-"a>-banen på nettjeneren. Den kan brukes av enhver "
-"bruker på {box_name} som er medlem i admin-gruppen."
+"Den kan brukes av enhver bruker på {box_name} "
+"som er medlem i admin-gruppen."
#: plinth/modules/cockpit/__init__.py:47
msgid ""
@@ -1717,18 +1716,15 @@ msgid ""
msgstr ""
#: plinth/modules/first_boot/forms.py:14
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Enter the secret generated during FreedomBox installation. This secret "
-#| "can also be obtained from the file /var/lib/plinth/firstboot-wizard-secret"
+#, python-brace-format
msgid ""
"Enter the secret generated during FreedomBox installation. This secret can "
"also be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-"
"wizard-secret\" on your {box_name}"
msgstr ""
"Skriv inn hemmeligheten laget under installasjon av FreedomBox. Denne "
-"hemmeligheten kan også hentes fra filen /var/lib/plinth/firstboot-wizard-"
-"secret"
+"hemmeligheten kan også hentes ved å kjøre kommandoen «sudo cat /var/lib/"
+"plinth/firstboot-wizard-secret» på din {box_name}"
#: plinth/modules/first_boot/forms.py:19
msgid "Firstboot Wizard Secret"
@@ -1892,10 +1888,9 @@ msgid "No repositories available."
msgstr "Tor relay-port tilgjengelig"
#: plinth/modules/gitweb/templates/gitweb_configure.html:52
-#, fuzzy, python-format
-#| msgid "Delete user %(username)s"
+#, python-format
msgid "Delete repository %(repo.name)s"
-msgstr "Slette bruker %(username)s"
+msgstr "Slett depot %(repo.name)s"
#: plinth/modules/gitweb/templates/gitweb_configure.html:68
#, fuzzy
@@ -1903,10 +1898,9 @@ msgid "Cloning…"
msgstr "Kloner…"
#: plinth/modules/gitweb/templates/gitweb_configure.html:73
-#, fuzzy, python-format
-#| msgid "Go to site %(site)s"
+#, python-format
msgid "Go to repository %(repo.name)s"
-msgstr "Gå til siden %(site)s"
+msgstr "Gå til depot %(repo.name)s"
#: plinth/modules/gitweb/templates/gitweb_delete.html:12
#, fuzzy, python-format
@@ -2492,10 +2486,9 @@ msgid "{title} deleted."
msgstr "{title} slettet."
#: plinth/modules/ikiwiki/views.py:105
-#, fuzzy, python-brace-format
-#| msgid "Could not delete {name}: {error}"
+#, python-brace-format
msgid "Could not delete {title}: {error}"
-msgstr "Kunne ikke slette {name}: {error}"
+msgstr "Kunne ikke slette {title}: {error}"
#: plinth/modules/infinoted/__init__.py:25
msgid "infinoted is a server for Gobby, a collaborative text editor."
@@ -4906,14 +4899,6 @@ msgstr ""
"mappebehandling, søk etter meldinger og stavekontroll."
#: plinth/modules/roundcube/__init__.py:26
-#, fuzzy
-#| msgid ""
-#| "You can access Roundcube from /roundcube. Provide the username and password of the email "
-#| "account you wish to access followed by the domain name of the IMAP server "
-#| "for your email provider, like imap.example.com. For IMAP "
-#| "over SSL (recommended), fill the server field like imaps://imap."
-#| "example.com."
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4921,12 +4906,10 @@ msgid ""
"(recommended), fill the server field like imaps://imap.example.com"
"code>."
msgstr ""
-"Du får tilgang til Roundcube fra /roundcube. Gi brukernavn og passord til e-postkontoen du "
-"ønsker å åpne, fulgt av domenenavnet til IMAP-tjeneren til din e-"
-"postleverandør, som imap.example.com. For IMAP over SSL "
-"(anbefalt), fyll feltet for tjeneren, som imaps://imap.example.com"
-"code>."
+"Du får tilgang ved å oppgi brukernavn og passord til e-postkontoen du ønsker "
+"å åpne, fulgt av domenenavnet til IMAP-tjeneren til din e-postleverandør, "
+"som imap.example.com. For IMAP over SSL (anbefalt), fyll "
+"feltet for tjeneren, som imaps://imap.example.com."
#: plinth/modules/roundcube/__init__.py:31
msgid ""
@@ -6401,18 +6384,13 @@ msgstr ""
"virkelig skrivebordsenhet som mulig."
#: plinth/modules/ttrss/__init__.py:33
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "When enabled, Tiny Tiny RSS will be available from /"
-#| "tt-rss path on the web server. It can be accessed by any user with a {box_name} login."
+#, python-brace-format
msgid ""
"When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
msgstr ""
-"Tiny Tiny RSS er tilgjengelig fra /tt-rss-banen på "
-"vevtjeneren når den er aktivert. Den er tilgjengelig for enhver bruker med et {box_name}-brukernavn."
+"Tiny Tiny RSS er tilgjengelig for enhver bruker med "
+"et {box_name}-brukernavn."
#: plinth/modules/ttrss/__init__.py:37
#, fuzzy
@@ -6909,7 +6887,7 @@ msgstr ""
#: plinth/modules/wireguard/forms.py:107
msgid "Typically checked for a VPN service though which all traffic is sent."
-msgstr ""
+msgstr "Typisk markert for en VPN-tjeneste som all trafikk sendes gjennom."
#: plinth/modules/wireguard/templates/wireguard.html:10
#, fuzzy
@@ -6938,10 +6916,9 @@ msgid "No peers configured to connect to this %(box_name)s yet."
msgstr "Ingen likemenn er oppsett for tilkobling til denne %(box_name)s enda."
#: plinth/modules/wireguard/templates/wireguard.html:47
-#, fuzzy, python-format
-#| msgid "Public key of this machine:"
+#, python-format
msgid "Public key for this %(box_name)s:"
-msgstr "Offentlig nøkkel tilhørende denne maskinen:"
+msgstr "Offentlig nøkkel for denne %(box_name)s:"
#: plinth/modules/wireguard/templates/wireguard.html:53
#, fuzzy
@@ -7446,13 +7423,13 @@ msgid "Mailing list"
msgstr "Adresseliste"
#: plinth/templates/internal-zone.html:11
-#, fuzzy, python-format
-#| msgid "%(service_name)s is available only on internal networks."
+#, python-format
msgid ""
"%(service_name)s is available only on internal networks or when the "
"client is connected to %(box_name)s through VPN."
msgstr ""
-"Tjenesten %(service_name)s er kun tilgjengelig på interne nettverk."
+"Tjenesten %(service_name)s er kun tilgjengelig på interne nettverk "
+"eller når klienten er koblet til %(box_name)s via VPN."
#: plinth/templates/internal-zone.html:17
msgid "Currently there are no network interfaces configured as internal."
From 144c8c9d95380e9e9125cdc9af3a7689ebb48500 Mon Sep 17 00:00:00 2001
From: Sunil Mohan Adapa
Date: Sun, 5 Jul 2020 11:31:06 -0700
Subject: [PATCH 5/7] cfg, frontpage: Ignore errors while reading config and
shortcuts
- Ignore errors while trying to expand a file path list into its .d components
path list.
- Ignore errors when reading shortcuts fails a file for any reason.
- Errors when reading configuration file already ignored. os.path.isfile() and
configparser.Configparser.read() do not raise an exception under any
circumstances.
Analysis:
Regression in 20.12 reported at
https://discuss.freedombox.org/t/fb-20-12-solved-plinth-fails-to-start-due-to-new-frontpage-py-shortcuts-and-filesystem-permissions/994/4
- freedom-maker creates /var/lib/freedombox/ with mode 755 as root but this only
applies for disk images.
- freedombox.postinst, networks, apache check for the existence of
/var/lib/freedombox/is-freedombox-disk-image .
- Samba creates /var/lib/freedombox with mode 755 as root.
- Backups creates /var/lib/freedombox/borgbackup but not the parent directory?
- Shortcuts are now read from /var/lib/freedombox/.
Tests performed:
- Create directories /var/lib/freedombox and /etc/freedombox with permission set
to 750. In case of configuration, an early warning message is printed and in
case of shortcuts warnings are printed but service starts properly. Changing the
permission to 755 removes the warnings.
- Ensure 755 permission on above two directories. Create non-empty files
custom-shortcuts.json and freedombox.config with permissions 640. In case of
config no warning is printed (silently ignored) and in case of shortcuts,
warning is printed that file could not be read but service starts properly.
Changing the permission to 644, no warnings are printed.
Signed-off-by: Sunil Mohan Adapa
Reviewed-by: James Valleroy
---
plinth/cfg.py | 12 ++++++++----
plinth/frontpage.py | 15 ++++++++-------
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/plinth/cfg.py b/plinth/cfg.py
index d03d2cadd..0ab90174c 100644
--- a/plinth/cfg.py
+++ b/plinth/cfg.py
@@ -57,8 +57,12 @@ def expand_to_dot_d_paths(file_paths):
final_list.append(str(file_path))
path = pathlib.Path(file_path)
path_d = path.with_suffix(path.suffix + '.d')
- for dot_d_file in sorted(path_d.glob('*' + path.suffix)):
- final_list.append(str(dot_d_file))
+ try:
+ for dot_d_file in sorted(path_d.glob('*' + path.suffix)):
+ final_list.append(str(dot_d_file))
+ except Exception as exception:
+ logger.warning('Unable to read from directory %s: %s', path_d,
+ exception)
return final_list
@@ -89,7 +93,7 @@ def read():
def read_file(config_path):
"""Read and merge into defaults a single configuration file."""
- if not os.path.isfile(config_path):
+ if not os.path.isfile(config_path): # Does not throw exceptions
# Ignore missing configuration files
return
@@ -103,7 +107,7 @@ def read_file(config_path):
'parent_parent_dir':
pathlib.Path(config_path).parent.parent.resolve(),
})
- parser.read(config_path)
+ parser.read(config_path) # Ignores all read errors
config_items = (
('Path', 'file_root', 'string'),
diff --git a/plinth/frontpage.py b/plinth/frontpage.py
index 49d1b02dd..fcaa05325 100644
--- a/plinth/frontpage.py
+++ b/plinth/frontpage.py
@@ -174,14 +174,15 @@ def get_custom_shortcuts():
shortcuts = {'shortcuts': []}
for file_path in get_custom_shortcuts_paths():
file_path = pathlib.Path(file_path)
- if not file_path.is_file() or not file_path.stat().st_size:
- continue
+ try:
+ if not file_path.is_file() or not file_path.stat().st_size:
+ continue
- logger.info('Loading custom shortcuts from %s', file_path)
- with file_path.open() as file_handle:
- try:
+ logger.info('Loading custom shortcuts from %s', file_path)
+ with file_path.open() as file_handle:
shortcuts['shortcuts'] += json.load(file_handle)['shortcuts']
- except (KeyError, json.JSONDecodeError):
- logger.info('Error loading shortcuts from %s', file_path)
+ except Exception as exception:
+ logger.warning('Error loading shortcuts from %s: %s', file_path,
+ exception)
return shortcuts
From 4cc254da1e9b042b0d2f82b88656c7c2b8f6db42 Mon Sep 17 00:00:00 2001
From: Milo Ivir
Date: Sat, 4 Jul 2020 20:38:44 +0000
Subject: [PATCH 6/7] Translated using Weblate (German)
Currently translated at 100.0% (1280 of 1280 strings)
---
plinth/locale/de/LC_MESSAGES/django.po | 42 +++++++++++---------------
1 file changed, 17 insertions(+), 25 deletions(-)
diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po
index a377a14d0..641a6d35e 100644
--- a/plinth/locale/de/LC_MESSAGES/django.po
+++ b/plinth/locale/de/LC_MESSAGES/django.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 15:43-0700\n"
-"PO-Revision-Date: 2020-07-02 22:41+0000\n"
-"Last-Translator: Robert Pollak \n"
+"PO-Revision-Date: 2020-07-05 19:35+0000\n"
+"Last-Translator: Milo Ivir \n"
"Language-Team: German \n"
"Language: de\n"
@@ -443,8 +443,8 @@ msgid ""
"from the listing on the backup page, you can add it again later on."
msgstr ""
"Das Remote-Archiv wird nicht gelöscht. Diese Aktion entfernt das Archiv "
-"lediglich aus der Liste auf der Backup-Seite, Sie\n"
-"können es später erneut hinzufügen."
+"lediglich aus der Liste auf der Backup-Seite, Sie können es später erneut "
+"hinzufügen."
#: plinth/modules/backups/templates/backups_repository_remove.html:31
msgid "Remove Location"
@@ -1469,7 +1469,6 @@ msgstr "Letztes Update"
#: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:51
#: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47
-#, fuzzy
msgid "About"
msgstr "Info"
@@ -2015,7 +2014,7 @@ msgstr ""
#: plinth/modules/help/templates/help_about.html:60
msgid "Learn more »"
-msgstr "Mehr lernen"
+msgstr "Mehr erfahren »"
#: plinth/modules/help/templates/help_about.html:63
#, python-format
@@ -2740,8 +2739,8 @@ msgid ""
" "
msgstr ""
"\n"
-" Warnung! Eine Änderung der Domain nach der ersten "
-"Konfiguration wird nicht unterstützt.\n"
+" Warnung! Eine Änderung der Domain nach der ersten\n"
+" Konfiguration wird nicht unterstützt.\n"
" "
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:35
@@ -3718,15 +3717,7 @@ msgstr ""
"Option zu wählen.
"
#: plinth/modules/networks/forms.py:357
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "I have a public IP address that does not change overtime (recommended)This means that devices on the Internet can reach "
-#| "you when you are connected to the Internet. Every time you connect to the "
-#| "Internet with your Internet Service Provider (ISP), you always get the "
-#| "same IP address. This is the most trouble-free setup for many {box_name} "
-#| "services but very few ISPs offer this. You may be able to get this "
-#| "service from your ISP by making an additional payment.
"
+#, python-brace-format
msgid ""
"I have a public IP address that does not change over time (recommended)This means that devices on the Internet can reach you "
@@ -3736,8 +3727,8 @@ msgid ""
"but very few ISPs offer this. You may be able to get this service from your "
"ISP by making an additional payment.
"
msgstr ""
-"Ich habe eine feste öffentliche IP-Adresse, die sich nicht ändert "
-"(empfohlen). Jedes Mal, wenn Sie mit Ihrem Internet "
+"Ich habe eine feste öffentliche IP-Adresse, die sich nicht ändert (empfohlen)"
+".
Jedes Mal, wenn Sie mit Ihrem Internet "
"Dienstanbieter eine Verbindung zum Internet herstellen, erhalten Sie immer "
"die gleiche IP-Adresse. Dies ist die störungsfreieste Einrichtung für viele "
"Dienste von {box_name}, aber nur sehr wenige ISPs bieten dies an. "
@@ -4006,6 +3997,8 @@ msgid ""
"This interface is not maintained by %(box_name)s. For security, it is "
"automatically assigned to the external zone."
msgstr ""
+"Diese Schnittstelle wird nicht von %(box_name)s gepflegt. Aus "
+"Sicherheitsgründen wird sie automatisch der externen Zone zugeordnet."
#: plinth/modules/networks/templates/connections_create.html:19
msgid "Create Connection"
@@ -6578,7 +6571,7 @@ msgid ""
"account to be part of a group to authorize the user to access the app."
msgstr ""
"Erstellen und Verwalten von Benutzerkonten. Diese Konten dienen für die "
-"meisten Apps als zentraler Authentifizierungsmechanismus. Für manche Apps "
+"meisten Apps als zentraler Authentifizierungsmechanismus. Für manche Apps "
"muss ein Benutzerkonto Teil einer Gruppe sein, damit ein Benutzer auf die "
"App zugreifen kann."
@@ -7384,11 +7377,10 @@ msgid ""
"communication tools respecting your privacy and data ownership."
msgstr ""
"%(box_name)s ist ein Debian „Pure Blend“-Projekt und basiert auf 100 %% "
-"freier Software.\n"
-"Es ermöglicht, verschiedene Internetdienste und soziale Anwendungen auf "
-"einem eigenen kleinen Rechner zu betreiben.\n"
-"Es bietet Online-Kommunikationswerkzeuge, die Ihre Privatsphäre und Ihr "
-"Eigentum an Ihren Daten respektieren."
+"freier Software. Es ermöglicht, verschiedene Internetdienste und soziale "
+"Anwendungen auf einem eigenen kleinen Rechner zu betreiben. Es bietet Online-"
+"Kommunikationswerkzeuge, die Ihre Privatsphäre und Ihr Eigentum an Ihren "
+"Daten respektieren."
#: plinth/templates/index.html:117
#, python-format
From c544160a946fb93d0a408b51d24ba16266062967 Mon Sep 17 00:00:00 2001
From: James Valleroy
Date: Sun, 5 Jul 2020 15:41:09 -0400
Subject: [PATCH 7/7] Release v20.12.1 to unstable
Signed-off-by: James Valleroy
---
debian/changelog | 22 ++++++++++++++++++++++
plinth/__init__.py | 2 +-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index 5b54a8d31..0ac385335 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,25 @@
+plinth (20.12.1) unstable; urgency=high
+
+ [ nautilusx ]
+ * Translated using Weblate (German)
+
+ [ Robert Pollak ]
+ * Translated using Weblate (German)
+
+ [ J. Lavoie ]
+ * Translated using Weblate (French)
+
+ [ Petter Reinholdtsen ]
+ * Translated using Weblate (Norwegian Bokmål)
+
+ [ Sunil Mohan Adapa ]
+ * cfg, frontpage: Ignore errors while reading config and shortcuts
+
+ [ Milo Ivir ]
+ * Translated using Weblate (German)
+
+ -- James Valleroy Sun, 05 Jul 2020 15:40:30 -0400
+
plinth (20.12) unstable; urgency=medium
[ Oğuz Ersen ]
diff --git a/plinth/__init__.py b/plinth/__init__.py
index 017eba56b..74c23b379 100644
--- a/plinth/__init__.py
+++ b/plinth/__init__.py
@@ -3,4 +3,4 @@
Package init file.
"""
-__version__ = '20.12'
+__version__ = '20.12.1'