From 8079a439b85c387f4cac1f2552dc2abe282fea00 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 10 Apr 2019 17:26:24 +0200 Subject: [PATCH 01/37] docs: improve new release --- docs/new-release.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/new-release.md b/docs/new-release.md index 665c098b..8ac7ac03 100644 --- a/docs/new-release.md +++ b/docs/new-release.md @@ -29,11 +29,11 @@ This repository follows [git flow](https://nvie.com/posts/a-successful-git-branc 1. On Visual Studio, set the Solution Configuration to "Release". 2. Build the solution. 3. Create a new _zip_ archive containing the necessary files created under `src\BandcampDownloader\bin\Release`. -4. Compute hashes (MD5, SHA-1...) for the files. +4. Compute checksums (MD5, SHA-1...) for the files. 5. Draft a new [release](https://github.com/Otiel/BandcampDownloader/releases) on GitHub: * Choose the newly created tag (if you forgot to push it, now's the time to do it). * Set the title equal to `X.Y.Z`. * Copy-paste the changes from `CHANGELOG.md`. - * Add the hashes to the description. + * Add the checksums to the description of the release. * Attach the _zip_ file. 6. Publish the release! From 02f80e6bf82f19643e2f3d7c5ebb52c7d26f00a5 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 10 Apr 2019 18:10:49 +0200 Subject: [PATCH 02/37] feat: Add german translations --- .../Properties/Resources.de.resx | 444 ++++++++++++++++++ 1 file changed, 444 insertions(+) create mode 100644 src/BandcampDownloader/Properties/Resources.de.resx diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx new file mode 100644 index 00000000..906d7aad --- /dev/null +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\ArrowCircle225Left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Cloud.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Cloud.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ExclamationSmall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\InformationSmallWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ... + + + Order aussuchen + + + _Abbrechen + + + Jetzt suchen + + + _Einstellungen + + + Einstellungen öffnen + + + Einstellungen zurücksetzen + + + _Speichern + + + Herunterladen + + + _Abbrechen + + + Beim start auf _updates prüfen + + + Wenn ausgewählt wird die Anwendung beim Start diese URL abrufen: + + + Zu _jpg umwandeln + + + Wenn ausgewählt wird das Cover zu jpeg mit einer Kompression von 90 umgewandelt (welche der perfekte Mittelwert zwischen Speicherbedarf und Qualität ist) + + + _Maximale Breite/Höhe einschränken + + + Wenn ausgewählt wird das Cover auf die angegebene größe skaliert. + + + Cover zu jp_g umwandeln + + + Wenn ausgewählt wird das Cover zu jpeg mit einer Kompression von 90 umgewandelt (welche der perfekte Mittelwert zwischen Speicherbedarf und Qualität ist) + + + M_aximale breite/höhe einschränken + + + Wenn ausgewählt wird das Cover auf die angegebene Größe skaliert. + + + Diskografie vom _Artisten herunterladen + + + Wenn ausgewählt wird die gesamte Diskografie vom Artisten heruntergeladen. + + + _Benachrichtigungen lautschalten + + + Wenn ausgewählt wird ein Benachrichtigungston nach erfolgreichem Download abgespielt. + + + _ID3 tags editieren + + + Wenn ausgewählt werden die ID3 tags nachträglich, wie unten beschrieben, modifiziert. + +Wenn nicht werden sie ignoriert und beim ursprünglichen Zustand beibehalten. +Entspricht dem setzen von Nicht verändern bei jedem tag. + + + Ein album auf einmal _Herunterladen. + + + Wenn ausgewählt wird nur ein Album auf einmal heruntergeladen. +Wenn nicht werden alle auf einmal heruntergeladen (Empfohlen wenn eine hohe bandbreite zur verfügung steht). + + + _Dateigrößen vorkalkulieren. + + + Wenn ausgewählt werden die Dateigrößen im vornherein abgerufen so dass eine genaue verbleibende Dauer berechnet werden kann. +Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. + + + In _Ordner speichern + + + Wenn ausgewählt wird das Cover in den Album Ordner heruntergeladen. + + + In _Tags speichern + + + Wenn ausgewählt wird das Cover in den tracks gespeichert + + + _Ausführliches Log anzeigen + + + Wenn ausgewählt werden mehr Informationen ausgegeben + + + Ordner auswählen um + + + Album Art_ist + + + Album _Name + + + Erlaubte _dateigrößen unterschied in Prozent + + + _Artist + + + Einstellungen _Zurücksetzen + + + Komm_entare + + + Maximale Größe (_px) + + + Maximale Größe (p_x) + + + _Maximale Dwnloadversuche + + + Wiederholungs Q_artezeit + + + Wiederholungs _Exponent + + + Alben speicher _in + + + _Datei-name format: + + + _HTTP(S) proxy + + + _Port + + + Änderungen folgender Einstellungen auf eigener Gefahr: + + + _Sprache + + + _Songtexte + + + Einige Einstellungen können nicht übernommen werden wärend ein Download stattfindet. + + + Song N_ummer + + + _Titel + + + (Die Logdatei ist immer ausführlich) + + + Klicken um zur Homepage diese Projektes zu gelangen: + + + Konnte nicht auf Updates prüfen + + + Eine neue Version ({0}) ist verfügbar + + + Album _Veröffentlichungsjahr + + + Erweiterte Einstellungen + + + Cover + + + Downloads + + + Generell + + + Netzwerk + + + Benennungen und Tags + + + &Abbrechen + + + &Nein + + + &OK + + + &Ja + + + Alle downloads abbrechen? + + + Währen nach updates gesucht wurde ist ein Fehler aufgetreten, versuchen sie es später erneut. + + + Zurzeit sind Downloads aktiv. Wollen sie die Anwendung wirklich schließen und diese abbrechen? + + + Das Programm ist auf dem neusten stand ({0}). + + + Alle Einstellungen zurücksetzen? + + + Eine neue Version ist verfügbar: +Aktuelle Version = {0} +Neueste Version = {1} + +Wollen sie zur Homepage gehen um die neuste version herunterzuladen? + + + _Manuelle Proxy-einstellungen + + + _Keine Proxy + + + _System Proxy + + + Wenn ein Song heruntergeladen wird, und einer mit dem selben Namen schon existiert, wird geprüft ob der größen-unterschied +größer ist als die angegebene Zahl in prozent. Wenn dem so ist wird die Datei übersprungen. + +Empfohlender Wert = 5 + + + Maximale anzahl wie oft versucht werden soll den Song herunterzuladen. +Wenn dieser überschritten wird, wird der Song übersprungen. + +Empfohlender Wert = 7 + + + Kontrolliert den expotentiellen Wiederholversuch von downloads. +Jedes mal, nachdem ein Download fehlschlägt, wartet Bandcamp Downloader eine gewisse zeit +um die aktiviertung des Bandcamp anti-spam-filter zu verhindern. +Um diese zeit zu berechnen wird folgende Formel verwendet: +Zeit = Wartezeit * (Exponent ^ Wiederholungsversuche) + +Empfohlender Wert = 0.2 + + + Kontrolliert den expotentiellen Wiederholversuch von downloads. +Jedes mal, nachdem ein Download fehlschlägt, wartet Bandcamp Downloader eine gewisse zeit +um die aktiviertung des Bandcamp anti-spam-filter zu verhindern. +Um diese zeit zu berechnen wird folgende Formel verwendet: +Zeit = Wartezeit * (Exponent ^ Wiederholungsversuche) + +Empfohlender Wert = 4 + + + Sie können Platzhalter verweden um den Namen des download-ordners, abhängig vom Album, zu modifizieren: +- {artist} wird ersetzt mit dem Künstlernamen des Albums +- {album} wird mit dem Albumname ersetzt +- {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt + + + Es können folgende Platzhalter verwendet werden um den Dateinamen zu modifizieren: +- {artist} wird ersetzt mit dem Künstlernamen des Albums +- {title} wird mit dem Songtitel ersetzt +- {tracknum} wird mit der Track-nummer ersetzt +- {album} Wird mit dem albumnamen ersetzt +- {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt + + + Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. + +Eine Bandcamp URL sieht so aus: http://[artist].bandcamp.com/album/[album] / http://[artist].bandcamp.com/track/[track] +Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle seine alben herunterzuladen. + + + Einstellungen + + \ No newline at end of file From 3f24770ef23a1e7174ec0f106ca09c655d351d44 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 11 Apr 2019 16:24:32 +0200 Subject: [PATCH 03/37] feat: display English name next to local language name --- src/BandcampDownloader/Core/UserSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Core/UserSettings.cs b/src/BandcampDownloader/Core/UserSettings.cs index 819f73fc..3c00b935 100644 --- a/src/BandcampDownloader/Core/UserSettings.cs +++ b/src/BandcampDownloader/Core/UserSettings.cs @@ -7,7 +7,7 @@ namespace BandcampDownloader { public enum Language { [Description("English")] en, - [Description("Français")] + [Description("Français (French)")] fr } From 1ca19c1c7c6b4c2afd5eaddd50e98f7e1ee3c342 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 11 Apr 2019 19:30:30 +0200 Subject: [PATCH 04/37] feat: Fix german grammar and update translations --- .../Properties/Resources.de.resx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 906d7aad..0a146340 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -247,7 +247,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Wenn ausgewählt werden mehr Informationen ausgegeben - Ordner auswählen um + Ordner auswählen um Album Art_ist @@ -256,13 +256,13 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Album _Name - Erlaubte _dateigrößen unterschied in Prozent + Erlaubter _dateigrößen-unterschied in Prozent _Artist - Einstellungen _Zurücksetzen + _Zurücksetzen Komm_entare @@ -274,10 +274,10 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Maximale Größe (p_x) - _Maximale Dwnloadversuche + _Maximale Downloadversuche - Wiederholungs Q_artezeit + Wiederholungs W_artezeit Wiederholungs _Exponent @@ -286,7 +286,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Alben speicher _in - _Datei-name format: + _Dateiname format: _HTTP(S) proxy @@ -361,7 +361,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Alle downloads abbrechen? - Währen nach updates gesucht wurde ist ein Fehler aufgetreten, versuchen sie es später erneut. + Während nach updates gesucht wurde ist ein Fehler aufgetreten, versuchen sie es später erneut. Zurzeit sind Downloads aktiv. Wollen sie die Anwendung wirklich schließen und diese abbrechen? From 8f66aad251ee50ceec1b7af8b625740c82eaea1d Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:18:54 +0200 Subject: [PATCH 05/37] feat: add German language to solution --- src/BandcampDownloader/BandcampDownloader.csproj | 1 + src/BandcampDownloader/Core/UserSettings.cs | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/BandcampDownloader.csproj b/src/BandcampDownloader/BandcampDownloader.csproj index 4a6a2f90..b4d6187b 100644 --- a/src/BandcampDownloader/BandcampDownloader.csproj +++ b/src/BandcampDownloader/BandcampDownloader.csproj @@ -236,6 +236,7 @@ Settings.settings True + Resources.fr.Designer.cs diff --git a/src/BandcampDownloader/Core/UserSettings.cs b/src/BandcampDownloader/Core/UserSettings.cs index 819f73fc..b52be930 100644 --- a/src/BandcampDownloader/Core/UserSettings.cs +++ b/src/BandcampDownloader/Core/UserSettings.cs @@ -7,8 +7,10 @@ namespace BandcampDownloader { public enum Language { [Description("English")] en, - [Description("Français")] - fr + [Description("Français (French)")] + fr, + [Description("Deutsch (German)")] + de } public enum ProxyType { From f986fd951f2998231418254c914cc6056bf977f2 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:22:05 +0200 Subject: [PATCH 06/37] refactor: remove images from German resx --- .../Properties/Resources.de.resx | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 0a146340..84a18858 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -117,22 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\ArrowCircle225Left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Cloud.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Cloud.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ExclamationSmall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\InformationSmallWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ... From c21de15972bbb61c2ebc2afdd5c1472254ec7a99 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:40:06 +0200 Subject: [PATCH 07/37] fix: German capitalization --- src/BandcampDownloader/Properties/Resources.de.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 84a18858..aeca157b 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -163,7 +163,7 @@ _Maximale Breite/Höhe einschränken - Wenn ausgewählt wird das Cover auf die angegebene größe skaliert. + Wenn ausgewählt wird das Cover auf die angegebene Größe skaliert. Cover zu jp_g umwandeln From a43fd0d3874da17d3ca6d959e05f2c3e91281348 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:40:58 +0200 Subject: [PATCH 08/37] fix: reduce width of German help text --- src/BandcampDownloader/Properties/Resources.de.resx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index aeca157b..1371a70c 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -420,7 +420,8 @@ Empfohlender Wert = 4 Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. Eine Bandcamp URL sieht so aus: http://[artist].bandcamp.com/album/[album] / http://[artist].bandcamp.com/track/[track] -Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle seine alben herunterzuladen. +Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle +seine alben herunterzuladen. Einstellungen From 36f47f3bafe924ff6855a4e2e267ed529b136e19 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:41:14 +0200 Subject: [PATCH 09/37] fix: conflicting mnemonics --- .../Properties/Resources.de.resx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 1371a70c..74d97123 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -127,7 +127,7 @@ _Abbrechen - Jetzt suchen + _Jetzt suchen _Einstellungen @@ -142,7 +142,7 @@ _Speichern - Herunterladen + _Herunterladen _Abbrechen @@ -172,13 +172,13 @@ Wenn ausgewählt wird das Cover zu jpeg mit einer Kompression von 90 umgewandelt (welche der perfekte Mittelwert zwischen Speicherbedarf und Qualität ist) - M_aximale breite/höhe einschränken + Max_imale Breite/Höhe einschränken Wenn ausgewählt wird das Cover auf die angegebene Größe skaliert. - Diskografie vom _Artisten herunterladen + _Diskografie vom Artisten herunterladen Wenn ausgewählt wird die gesamte Diskografie vom Artisten heruntergeladen. @@ -225,7 +225,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Wenn ausgewählt wird das Cover in den tracks gespeichert - _Ausführliches Log anzeigen + Ausführliches _Log anzeigen Wenn ausgewählt werden mehr Informationen ausgegeben @@ -234,7 +234,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Ordner auswählen um - Album Art_ist + Albu_m Artist Album _Name @@ -243,7 +243,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Erlaubter _dateigrößen-unterschied in Prozent - _Artist + A_rtist _Zurücksetzen @@ -261,7 +261,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. _Maximale Downloadversuche - Wiederholungs W_artezeit + Wiederholungs _Wartezeit Wiederholungs _Exponent @@ -282,10 +282,10 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Änderungen folgender Einstellungen auf eigener Gefahr: - _Sprache + S_prache - _Songtexte + Son_gtexte Einige Einstellungen können nicht übernommen werden wärend ein Download stattfindet. @@ -370,7 +370,7 @@ Wollen sie zur Homepage gehen um die neuste version herunterzuladen? _Keine Proxy - _System Proxy + S_ystem Proxy Wenn ein Song heruntergeladen wird, und einer mit dem selben Namen schon existiert, wird geprüft ob der größen-unterschied From d10bc58da6b9a3803c6f27ad83eac0cd50bf514c Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 11:59:50 +0200 Subject: [PATCH 10/37] fix: tooltip text wasn't calling the translations --- .../UI/Dialogs/Settings/UserControlSettingsGeneral.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml index f3a749c4..c94b3615 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml @@ -83,7 +83,7 @@ Content="{lex:Loc}" IsChecked="{Binding EnableApplicationSounds, UpdateSourceTrigger=Explicit}" TabIndex="3" - ToolTip="If checked, a notification sound will be played when downloads are finished." + ToolTip="{lex:Loc}" ToolTipService.ShowDuration="60000" /> Date: Fri, 12 Apr 2019 12:08:38 +0200 Subject: [PATCH 11/37] refactor: fix German resx formatting --- .../Properties/Resources.de.resx | 298 +++++++++--------- 1 file changed, 149 insertions(+), 149 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 74d97123..9ba2b6f3 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -1,6 +1,6 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ... - + Order aussuchen - + _Abbrechen - + _Jetzt suchen - + _Einstellungen - + Einstellungen öffnen - + Einstellungen zurücksetzen - + _Speichern - + _Herunterladen - + _Abbrechen - + Beim start auf _updates prüfen - + Wenn ausgewählt wird die Anwendung beim Start diese URL abrufen: - + Zu _jpg umwandeln - + Wenn ausgewählt wird das Cover zu jpeg mit einer Kompression von 90 umgewandelt (welche der perfekte Mittelwert zwischen Speicherbedarf und Qualität ist) - + _Maximale Breite/Höhe einschränken - + Wenn ausgewählt wird das Cover auf die angegebene Größe skaliert. - + Cover zu jp_g umwandeln - + Wenn ausgewählt wird das Cover zu jpeg mit einer Kompression von 90 umgewandelt (welche der perfekte Mittelwert zwischen Speicherbedarf und Qualität ist) - + Max_imale Breite/Höhe einschränken - + Wenn ausgewählt wird das Cover auf die angegebene Größe skaliert. - + _Diskografie vom Artisten herunterladen - + Wenn ausgewählt wird die gesamte Diskografie vom Artisten heruntergeladen. - + _Benachrichtigungen lautschalten - + Wenn ausgewählt wird ein Benachrichtigungston nach erfolgreichem Download abgespielt. - + _ID3 tags editieren - + Wenn ausgewählt werden die ID3 tags nachträglich, wie unten beschrieben, modifiziert. Wenn nicht werden sie ignoriert und beim ursprünglichen Zustand beibehalten. Entspricht dem setzen von Nicht verändern bei jedem tag. - + Ein album auf einmal _Herunterladen. - + Wenn ausgewählt wird nur ein Album auf einmal heruntergeladen. Wenn nicht werden alle auf einmal heruntergeladen (Empfohlen wenn eine hohe bandbreite zur verfügung steht). - + _Dateigrößen vorkalkulieren. - + Wenn ausgewählt werden die Dateigrößen im vornherein abgerufen so dass eine genaue verbleibende Dauer berechnet werden kann. Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. - + In _Ordner speichern - + Wenn ausgewählt wird das Cover in den Album Ordner heruntergeladen. - + In _Tags speichern - + Wenn ausgewählt wird das Cover in den tracks gespeichert - + Ausführliches _Log anzeigen - + Wenn ausgewählt werden mehr Informationen ausgegeben - + Ordner auswählen um - + Albu_m Artist - + Album _Name - + Erlaubter _dateigrößen-unterschied in Prozent - + A_rtist - + _Zurücksetzen - + Komm_entare - + Maximale Größe (_px) - + Maximale Größe (p_x) - + _Maximale Downloadversuche - + Wiederholungs _Wartezeit - + Wiederholungs _Exponent - + Alben speicher _in - + _Dateiname format: - + _HTTP(S) proxy - + _Port - + Änderungen folgender Einstellungen auf eigener Gefahr: - + S_prache - + Son_gtexte - + Einige Einstellungen können nicht übernommen werden wärend ein Download stattfindet. - + Song N_ummer - + _Titel - + (Die Logdatei ist immer ausführlich) - + Klicken um zur Homepage diese Projektes zu gelangen: - + Konnte nicht auf Updates prüfen - + Eine neue Version ({0}) ist verfügbar - + Album _Veröffentlichungsjahr - + Erweiterte Einstellungen - + Cover - + Downloads - + Generell - + Netzwerk - + Benennungen und Tags - + &Abbrechen - + &Nein - + &OK - + &Ja - + Alle downloads abbrechen? - + Während nach updates gesucht wurde ist ein Fehler aufgetreten, versuchen sie es später erneut. - + Zurzeit sind Downloads aktiv. Wollen sie die Anwendung wirklich schließen und diese abbrechen? - + Das Programm ist auf dem neusten stand ({0}). - + Alle Einstellungen zurücksetzen? - + Eine neue Version ist verfügbar: Aktuelle Version = {0} Neueste Version = {1} Wollen sie zur Homepage gehen um die neuste version herunterzuladen? - + _Manuelle Proxy-einstellungen - + _Keine Proxy - + S_ystem Proxy - + Wenn ein Song heruntergeladen wird, und einer mit dem selben Namen schon existiert, wird geprüft ob der größen-unterschied größer ist als die angegebene Zahl in prozent. Wenn dem so ist wird die Datei übersprungen. Empfohlender Wert = 5 - + Maximale anzahl wie oft versucht werden soll den Song herunterzuladen. Wenn dieser überschritten wird, wird der Song übersprungen. Empfohlender Wert = 7 - + Kontrolliert den expotentiellen Wiederholversuch von downloads. Jedes mal, nachdem ein Download fehlschlägt, wartet Bandcamp Downloader eine gewisse zeit um die aktiviertung des Bandcamp anti-spam-filter zu verhindern. @@ -393,7 +393,7 @@ Zeit = Wartezeit * (Exponent ^ Wiederholungsversuche) Empfohlender Wert = 0.2 - + Kontrolliert den expotentiellen Wiederholversuch von downloads. Jedes mal, nachdem ein Download fehlschlägt, wartet Bandcamp Downloader eine gewisse zeit um die aktiviertung des Bandcamp anti-spam-filter zu verhindern. @@ -402,13 +402,13 @@ Zeit = Wartezeit * (Exponent ^ Wiederholungsversuche) Empfohlender Wert = 4 - + Sie können Platzhalter verweden um den Namen des download-ordners, abhängig vom Album, zu modifizieren: - {artist} wird ersetzt mit dem Künstlernamen des Albums - {album} wird mit dem Albumname ersetzt - {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt - + Es können folgende Platzhalter verwendet werden um den Dateinamen zu modifizieren: - {artist} wird ersetzt mit dem Künstlernamen des Albums - {title} wird mit dem Songtitel ersetzt @@ -416,14 +416,14 @@ Empfohlender Wert = 4 - {album} Wird mit dem albumnamen ersetzt - {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt - + Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. Eine Bandcamp URL sieht so aus: http://[artist].bandcamp.com/album/[album] / http://[artist].bandcamp.com/track/[track] Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle seine alben herunterzuladen. - + Einstellungen \ No newline at end of file From 1c9406ba51edfa7acf4c394cf34232ff7c360fdc Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 13:08:49 +0200 Subject: [PATCH 12/37] feat: add hyperlink to translation help webpage --- src/BandcampDownloader/Core/Constants.cs | 4 ++++ .../Properties/Resources.Designer.cs | 9 +++++++++ .../Properties/Resources.de.resx | 3 +++ .../Properties/Resources.fr.resx | 3 +++ src/BandcampDownloader/Properties/Resources.resx | 3 +++ .../Settings/UserControlSettingsGeneral.xaml | 14 ++++++++++++-- .../Settings/UserControlSettingsGeneral.xaml.cs | 5 +++++ 7 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/Core/Constants.cs b/src/BandcampDownloader/Core/Constants.cs index 80eb21b6..c12208e0 100644 --- a/src/BandcampDownloader/Core/Constants.cs +++ b/src/BandcampDownloader/Core/Constants.cs @@ -10,6 +10,10 @@ internal static class Constants { /// public static readonly String AppVersion = Assembly.GetEntryAssembly().GetName().Version.ToString(); /// + /// The URL redirecting to the help page on translating the app on GitHub. + /// + public static readonly String HelpTranslateWebsite = "https://github.com/Otiel/BandcampDownloader/blob/master/docs/help-translate.md"; + /// /// The URL redirecting to the latest release on GitHub. /// public static readonly String LatestReleaseWebsite = "https://github.com/Otiel/BandcampDownloader/releases/latest"; diff --git a/src/BandcampDownloader/Properties/Resources.Designer.cs b/src/BandcampDownloader/Properties/Resources.Designer.cs index 7398b890..e5a1e29e 100644 --- a/src/BandcampDownloader/Properties/Resources.Designer.cs +++ b/src/BandcampDownloader/Properties/Resources.Designer.cs @@ -857,6 +857,15 @@ internal static string radioButtonSystemProxy { } } + /// + /// Looks up a localized string similar to Help translate. + /// + internal static string textBlockTranslationHelp { + get { + return ResourceManager.GetString("textBlockTranslationHelp", resourceCulture); + } + } + /// /// Looks up a localized string similar to When downloading a track, if the same file (name) already exists, it will be checked against the track to download. ///If the size of both files differ from less than this value (in percent), the track download will be skipped. diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 9ba2b6f3..c87094ca 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -416,6 +416,9 @@ Empfohlender Wert = 4 - {album} Wird mit dem albumnamen ersetzt - {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt + + Hilfe zur Übersetzung + Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. diff --git a/src/BandcampDownloader/Properties/Resources.fr.resx b/src/BandcampDownloader/Properties/Resources.fr.resx index 60d03292..5ebc4c73 100644 --- a/src/BandcampDownloader/Properties/Resources.fr.resx +++ b/src/BandcampDownloader/Properties/Resources.fr.resx @@ -416,6 +416,9 @@ Valeur conseillée = 4 - {album} sera remplacé par le nom de l'album - {year} (année), {month} (mois) et {day} (jour) seront remplacés par la date de parution de l'album + + Aider à la traduction + Copiez les URL d'albums à télécharger ici. Vous pouvez spécifier plusieurs URL en ayant un URL par ligne. diff --git a/src/BandcampDownloader/Properties/Resources.resx b/src/BandcampDownloader/Properties/Resources.resx index 45280db0..20f73890 100644 --- a/src/BandcampDownloader/Properties/Resources.resx +++ b/src/BandcampDownloader/Properties/Resources.resx @@ -432,6 +432,9 @@ Recommended value = 4 - {album} will be replaced by the album name - {year}, {month} and {day} will be replaced by the album release date + + Help translate + Paste URLs of albums to download here. You can specify multiple URLs by writing one URL per line. diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml index c94b3615..2445f7c9 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml @@ -91,7 +91,8 @@ VerticalAlignment="Top"> - + + private List _pendingDownloads; /// - /// Random class used to create random numbers. - /// - private Random _random = new Random(); - /// /// Used when user clicks on 'Cancel' to manage the cancelation (UI...). /// private Boolean _userCancelled; From 745b83e9e40cc0252ef6dd69e54c3381c972c637 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 15:28:01 +0200 Subject: [PATCH 20/37] refactor: remove useless parentheses --- .../UI/Converters/InverseBooleanConverter.cs | 4 ++-- src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/BandcampDownloader/UI/Converters/InverseBooleanConverter.cs b/src/BandcampDownloader/UI/Converters/InverseBooleanConverter.cs index b9f13574..b96391b1 100644 --- a/src/BandcampDownloader/UI/Converters/InverseBooleanConverter.cs +++ b/src/BandcampDownloader/UI/Converters/InverseBooleanConverter.cs @@ -10,11 +10,11 @@ namespace BandcampDownloader { internal class InverseBooleanConverter: IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - return !((Boolean) value); + return !(Boolean) value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { - return !((Boolean) value); + return !(Boolean) value; } } } \ No newline at end of file diff --git a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs index f3674533..aa0e0f7e 100644 --- a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs @@ -876,7 +876,7 @@ private void UpdateProgress() { private void WaitForCooldown(int triesNumber) { if (App.UserSettings.DownloadRetryCooldown != 0) { - Thread.Sleep((int) ((Math.Pow(App.UserSettings.DownloadRetryExponent, triesNumber)) * App.UserSettings.DownloadRetryCooldown * 1000)); + Thread.Sleep((int) (Math.Pow(App.UserSettings.DownloadRetryExponent, triesNumber) * App.UserSettings.DownloadRetryCooldown * 1000)); } } @@ -986,7 +986,7 @@ private void ButtonStart_Click(object sender, RoutedEventArgs e) { if (App.UserSettings.EnableApplicationSounds) { // Play a sound try { - (new SoundPlayer(@"C:\Windows\Media\Windows Ding.wav")).Play(); + new SoundPlayer(@"C:\Windows\Media\Windows Ding.wav").Play(); } catch { } } From 2fa63b93c297d5a6aa19f886c7a5b4bba7f58e87 Mon Sep 17 00:00:00 2001 From: Otiel Date: Fri, 12 Apr 2019 15:28:47 +0200 Subject: [PATCH 21/37] refactor: remove useless value assignation --- src/BandcampDownloader/Helpers/UpdatesHelper.cs | 2 +- .../UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/Helpers/UpdatesHelper.cs b/src/BandcampDownloader/Helpers/UpdatesHelper.cs index 037bfd72..f180fccd 100644 --- a/src/BandcampDownloader/Helpers/UpdatesHelper.cs +++ b/src/BandcampDownloader/Helpers/UpdatesHelper.cs @@ -25,7 +25,7 @@ public static Version GetLatestVersion() { } // Extract the version number from the URL - String latestVersionNumber = ""; + String latestVersionNumber; try { latestVersionNumber = redirectPage.Substring(redirectPage.LastIndexOf("/v") + 2); // X.X.X.X } catch { diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs index 882891f8..0d0586c6 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs @@ -46,7 +46,7 @@ public void SaveSettings() { } private void ButtonCheckForUpdates_Click(object sender, RoutedEventArgs e) { - Version latestVersion = null; + Version latestVersion; try { latestVersion = UpdatesHelper.GetLatestVersion(); } catch (CouldNotCheckForUpdatesException) { From 9bdc0502e4b5265ffa2579baf75f20bb22523531 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 11:19:24 +0200 Subject: [PATCH 22/37] fix: (German) add units --- src/BandcampDownloader/Properties/Resources.de.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index c87094ca..c3c72b94 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -261,7 +261,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. _Maximale Downloadversuche - Wiederholungs _Wartezeit + Wiederholungs _Wartezeit (in Sekunde) Wiederholungs _Exponent From 72e4426d875db86834d178a8bba37d496164327f Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 11:19:42 +0200 Subject: [PATCH 23/37] fix: (German) add parentheses around units --- src/BandcampDownloader/Properties/Resources.de.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index c3c72b94..8470052d 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -240,7 +240,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Album _Name - Erlaubter _dateigrößen-unterschied in Prozent + Erlaubter _dateigrößen-unterschied (in Prozent) A_rtist From bdcc2d66e175d06f7233eccbe604506af6bab61a Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 11:53:40 +0200 Subject: [PATCH 24/37] feat: force file name to end with '.mp3' Closes #80 --- .../BandcampDownloader.csproj | 1 + .../Settings/UserControlSettingsTags.xaml | 10 ++++++++-- .../Settings/UserControlSettingsTags.xaml.cs | 4 ++++ .../UI/Validation/Mp3ExtensionRule.cs | 19 +++++++++++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/BandcampDownloader/UI/Validation/Mp3ExtensionRule.cs diff --git a/src/BandcampDownloader/BandcampDownloader.csproj b/src/BandcampDownloader/BandcampDownloader.csproj index b4d6187b..0a8ae419 100644 --- a/src/BandcampDownloader/BandcampDownloader.csproj +++ b/src/BandcampDownloader/BandcampDownloader.csproj @@ -144,6 +144,7 @@ + diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml index 30bc5044..db235735 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml @@ -30,10 +30,16 @@ Grid.Column="1" Height="20" Margin="0,0,5,0" + TextChanged="TextBox_TextChanged" TabIndex="0" - Text="{Binding FileNameFormat, UpdateSourceTrigger=Explicit}" ToolTip="{lex:Loc}" - ToolTipService.ShowDuration="60000" /> + ToolTipService.ShowDuration="60000"> + + + + + + Date: Wed, 17 Apr 2019 12:02:51 +0200 Subject: [PATCH 25/37] refactor: format XAML --- .../UI/Dialogs/Settings/UserControlSettingsTags.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml index db235735..acb6cfdf 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsTags.xaml @@ -30,8 +30,8 @@ Grid.Column="1" Height="20" Margin="0,0,5,0" - TextChanged="TextBox_TextChanged" TabIndex="0" + TextChanged="TextBox_TextChanged" ToolTip="{lex:Loc}" ToolTipService.ShowDuration="60000"> From 73a6b5f4594cbbb4b57e030afc28377b39e12bde Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 12:03:12 +0200 Subject: [PATCH 26/37] feat: add validation on proxy port textbox --- .../UI/Dialogs/Settings/UserControlSettingsNetwork.xaml | 3 ++- .../UI/Dialogs/Settings/UserControlSettingsNetwork.xaml.cs | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml index e6a88017..ce4456bb 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml @@ -75,7 +75,8 @@ Width="50" Height="20" IsEnabled="{Binding ElementName=radioButtonManualProxy, Path=IsChecked}" - Text="{Binding ProxyHttpPort, UpdateSourceTrigger=Explicit}" /> + Text="{Binding ProxyHttpPort, UpdateSourceTrigger=Explicit}" + TextChanged="TextBox_TextChanged" /> \ No newline at end of file diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml.cs b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml.cs index 8ba454a3..6d56e132 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsNetwork.xaml.cs @@ -29,5 +29,9 @@ public void SaveSettings() { textBoxHttpAddress.GetBindingExpression(TextBox.TextProperty).UpdateSource(); textBoxHttpPort.GetBindingExpression(TextBox.TextProperty).UpdateSource(); } + + private void TextBox_TextChanged(object sender, TextChangedEventArgs e) { + ((TextBox) sender).GetBindingExpression(TextBox.TextProperty).ValidateWithoutUpdate(); + } } } \ No newline at end of file From 6aba4aa1c45e70d802ae86d18b1d6c41b217f8c4 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 12:09:22 +0200 Subject: [PATCH 27/37] refactor: fix translations resx order --- src/BandcampDownloader/Properties/Resources.de.resx | 6 +++--- src/BandcampDownloader/Properties/Resources.fr.resx | 6 +++--- src/BandcampDownloader/Properties/Resources.resx | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 8470052d..8ff8ef51 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -372,6 +372,9 @@ Wollen sie zur Homepage gehen um die neuste version herunterzuladen? S_ystem Proxy + + Hilfe zur Übersetzung + Wenn ein Song heruntergeladen wird, und einer mit dem selben Namen schon existiert, wird geprüft ob der größen-unterschied größer ist als die angegebene Zahl in prozent. Wenn dem so ist wird die Datei übersprungen. @@ -416,9 +419,6 @@ Empfohlender Wert = 4 - {album} Wird mit dem albumnamen ersetzt - {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt - - Hilfe zur Übersetzung - Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. diff --git a/src/BandcampDownloader/Properties/Resources.fr.resx b/src/BandcampDownloader/Properties/Resources.fr.resx index 5ebc4c73..09c47073 100644 --- a/src/BandcampDownloader/Properties/Resources.fr.resx +++ b/src/BandcampDownloader/Properties/Resources.fr.resx @@ -372,6 +372,9 @@ Voulez-vous aller sur le site web du projet afin de récupérer la dernière ver Proxy _système + + Aider à la traduction + Quand une chanson est téléchargée, si le même nom de fichier existe déjà dans le dossier, il sera comparé au fichier à télécharger. Si la taille des deux fichiers diffère moins que cette valeur (en pourcentage), la chanson ne sera pas re-téléchargée. @@ -416,9 +419,6 @@ Valeur conseillée = 4 - {album} sera remplacé par le nom de l'album - {year} (année), {month} (mois) et {day} (jour) seront remplacés par la date de parution de l'album - - Aider à la traduction - Copiez les URL d'albums à télécharger ici. Vous pouvez spécifier plusieurs URL en ayant un URL par ligne. diff --git a/src/BandcampDownloader/Properties/Resources.resx b/src/BandcampDownloader/Properties/Resources.resx index 20f73890..a8784c45 100644 --- a/src/BandcampDownloader/Properties/Resources.resx +++ b/src/BandcampDownloader/Properties/Resources.resx @@ -388,6 +388,9 @@ Would you like to go to the project website in order to download the latest vers _System proxy + + Help translate + When downloading a track, if the same file (name) already exists, it will be checked against the track to download. If the size of both files differ from less than this value (in percent), the track download will be skipped. @@ -432,9 +435,6 @@ Recommended value = 4 - {album} will be replaced by the album name - {year}, {month} and {day} will be replaced by the album release date - - Help translate - Paste URLs of albums to download here. You can specify multiple URLs by writing one URL per line. From 2c5eb9288eb452f5dcf477b0d8d26506758a3d77 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 12:28:30 +0200 Subject: [PATCH 28/37] refactor: rename ParseFileName() by ParseTrackFileName() --- .../UI/Dialogs/WindowMain.xaml.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs index aa0e0f7e..a0f8886d 100644 --- a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs @@ -183,12 +183,12 @@ private Boolean DownloadAndTagTrack(String albumDirectoryPath, Album album, Trac Log($"Downloading track \"{track.Title}\" from url: {track.Mp3Url}", LogType.VerboseInfo); // Set path to save the file - String trackPath = albumDirectoryPath + "\\" + ParseFileName(album, track); + String trackPath = albumDirectoryPath + "\\" + ParseTrackFileName(album, track); if (trackPath.Length >= 260) { // Windows doesn't do well with path + filename >= 260 characters (and path >= 248 characters) // Path has been shorten to 247 characters before, so we have 12 characters max left for filename.ext int fileNameMaxLength = 12 - Path.GetExtension(trackPath).ToString().Length; - trackPath = albumDirectoryPath + "\\" + ParseFileName(album, track).Substring(0, fileNameMaxLength) + Path.GetExtension(trackPath); + trackPath = albumDirectoryPath + "\\" + ParseTrackFileName(album, track).Substring(0, fileNameMaxLength) + Path.GetExtension(trackPath); } int tries = 0; Boolean trackDownloaded = false; @@ -199,7 +199,7 @@ private Boolean DownloadAndTagTrack(String albumDirectoryPath, Album album, Trac if (track.Mp3Url == trackFile.Url && trackFile.Size > length - (trackFile.Size * App.UserSettings.AllowedFileSizeDifference) && trackFile.Size < length + (trackFile.Size * App.UserSettings.AllowedFileSizeDifference)) { - Log($"Track already exists within allowed file size range: track \"{ParseFileName(album, track)}\" from album \"{album.Title}\" - Skipping download!", LogType.IntermediateSuccess); + Log($"Track already exists within allowed file size range: track \"{ParseTrackFileName(album, track)}\" from album \"{album.Title}\" - Skipping download!", LogType.IntermediateSuccess); return false; } } @@ -260,12 +260,12 @@ private Boolean DownloadAndTagTrack(String albumDirectoryPath, Album album, Trac // Note the file as downloaded TrackFile currentFile = _filesDownload.Where(f => f.Url == track.Mp3Url).First(); currentFile.Downloaded = true; - Log($"Downloaded track \"{ParseFileName(album, track)}\" from album \"{album.Title}\"", LogType.IntermediateSuccess); + Log($"Downloaded track \"{ParseTrackFileName(album, track)}\" from album \"{album.Title}\"", LogType.IntermediateSuccess); } else if (!e.Cancelled && e.Error != null) { if (tries + 1 < App.UserSettings.DownloadMaxTries) { - Log($"Unable to download track \"{ParseFileName(album, track)}\" from album \"{album.Title}\". Try {tries + 1} of {App.UserSettings.DownloadMaxTries}", LogType.Warning); + Log($"Unable to download track \"{ParseTrackFileName(album, track)}\" from album \"{album.Title}\". Try {tries + 1} of {App.UserSettings.DownloadMaxTries}", LogType.Warning); } else { - Log($"Unable to download track \"{ParseFileName(album, track)}\" from album \"{album.Title}\". Hit max retries of {App.UserSettings.DownloadMaxTries}", LogType.Error); + Log($"Unable to download track \"{ParseTrackFileName(album, track)}\" from album \"{album.Title}\". Hit max retries of {App.UserSettings.DownloadMaxTries}", LogType.Error); } } // Else the download has been cancelled (by the user) @@ -765,7 +765,7 @@ private String ParseDownloadPath(String downloadPath, Album album) { /// /// The album currently downloaded. /// The track currently downloaded. - private String ParseFileName(Album album, Track track) { + private String ParseTrackFileName(Album album, Track track) { String fileName = App.UserSettings.FileNameFormat .Replace("{year}", album.ReleaseDate.Year.ToString()) .Replace("{month}", album.ReleaseDate.Month.ToString("00")) From 97e2c1c55c06389fcffa216be4fcc94b09744721 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 12:29:30 +0200 Subject: [PATCH 29/37] docs: improve XML doc --- src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs index a0f8886d..990abe8d 100644 --- a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs @@ -741,7 +741,8 @@ private void Log(String message, LogType logType) { } /// - /// Replaces placeholders strings by the corresponding values in the specified download path. + /// Returns the download path for the specified album from the specified path format, by replacing the + /// placeholders strings with their corresponding values. /// /// The download path to parse. /// The album currently downloaded. @@ -761,7 +762,8 @@ private String ParseDownloadPath(String downloadPath, Album album) { } /// - /// Replaces placeholders strings by the corresponding values in the specified filenameFormat path. + /// Returns the file name to be used for the specified track from the file name format saved in the UserSettings, + /// by replacing the placeholders strings with their corresponding values. /// /// The album currently downloaded. /// The track currently downloaded. From eab5e274071ff81a2ab95b184e1e770fc1392e4b Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 15:16:21 +0200 Subject: [PATCH 30/37] feat: add option to customize cover art file name Closes #77 --- src/BandcampDownloader/Core/UserSettings.cs | 3 ++ .../Properties/Resources.Designer.cs | 14 +++++- .../Properties/Resources.de.resx | 6 +++ .../Properties/Resources.fr.resx | 6 +++ .../Properties/Resources.resx | 6 +++ .../Settings/UserControlSettingsCoverArt.xaml | 43 +++++++++++++++---- .../UserControlSettingsCoverArt.xaml.cs | 1 + .../UI/Dialogs/WindowMain.xaml.cs | 23 ++++++++-- 8 files changed, 89 insertions(+), 13 deletions(-) diff --git a/src/BandcampDownloader/Core/UserSettings.cs b/src/BandcampDownloader/Core/UserSettings.cs index b52be930..6e963311 100644 --- a/src/BandcampDownloader/Core/UserSettings.cs +++ b/src/BandcampDownloader/Core/UserSettings.cs @@ -43,6 +43,9 @@ public interface IUserSettings { [Option(DefaultValue = true)] Boolean CheckForUpdates { get; set; } + [Option(DefaultValue = "{album}")] + String CoverArtFileNameFormat { get; set; } + [Option(DefaultValue = true)] Boolean CoverArtInFolderConvertToJpg { get; set; } diff --git a/src/BandcampDownloader/Properties/Resources.Designer.cs b/src/BandcampDownloader/Properties/Resources.Designer.cs index e5a1e29e..f8ae1ca4 100644 --- a/src/BandcampDownloader/Properties/Resources.Designer.cs +++ b/src/BandcampDownloader/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace BandcampDownloader.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -878,6 +878,18 @@ internal static string textBoxAllowedFileSizeDifference_ToolTip { } } + /// + /// Looks up a localized string similar to You can use placeholders to customize the file name: + ///- {artist} will be replaced by the album artist + ///- {album} will be replaced by the album name + ///- {year}, {month} and {day} will be replaced by the album release date. + /// + internal static string textBoxCoverArtFileNameFormat_ToolTip { + get { + return ResourceManager.GetString("textBoxCoverArtFileNameFormat_ToolTip", resourceCulture); + } + } + /// /// Looks up a localized string similar to Maximum number of tries performed to download a track if it fails. ///After that number is reached (for each track), the track download will be skipped. diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 8ff8ef51..2e1ecb86 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -380,6 +380,12 @@ Wollen sie zur Homepage gehen um die neuste version herunterzuladen? größer ist als die angegebene Zahl in prozent. Wenn dem so ist wird die Datei übersprungen. Empfohlender Wert = 5 + + + Es können folgende Platzhalter verwendet werden um den Dateinamen zu modifizieren: +- {artist} wird ersetzt mit dem Künstlernamen des Albums +- {album} Wird mit dem albumnamen ersetzt +- {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt Maximale anzahl wie oft versucht werden soll den Song herunterzuladen. diff --git a/src/BandcampDownloader/Properties/Resources.fr.resx b/src/BandcampDownloader/Properties/Resources.fr.resx index 09c47073..b74e2311 100644 --- a/src/BandcampDownloader/Properties/Resources.fr.resx +++ b/src/BandcampDownloader/Properties/Resources.fr.resx @@ -380,6 +380,12 @@ Voulez-vous aller sur le site web du projet afin de récupérer la dernière ver Si la taille des deux fichiers diffère moins que cette valeur (en pourcentage), la chanson ne sera pas re-téléchargée. Valeur conseillée = 5 + + + Vous pouvez utiliser des paramètres de substitution pour personnaliser le nom des fichiers : +- {artist} sera remplacé par l'interprète de l'album +- {album} sera remplacé par le nom de l'album +- {year} (année), {month} (mois) et {day} (jour) seront remplacés par la date de parution de l'album Nombre maximum d'essais quand un téléchargement échoue. diff --git a/src/BandcampDownloader/Properties/Resources.resx b/src/BandcampDownloader/Properties/Resources.resx index a8784c45..117f514b 100644 --- a/src/BandcampDownloader/Properties/Resources.resx +++ b/src/BandcampDownloader/Properties/Resources.resx @@ -396,6 +396,12 @@ Would you like to go to the project website in order to download the latest vers If the size of both files differ from less than this value (in percent), the track download will be skipped. Recommended value = 5 + + + You can use placeholders to customize the file name: +- {artist} will be replaced by the album artist +- {album} will be replaced by the album name +- {year}, {month} and {day} will be replaced by the album release date Maximum number of tries performed to download a track if it fails. diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml index 2714402f..0fe9d82b 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml @@ -8,7 +8,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Name="userControlSettingsCoverArt" Width="410" - Height="180" + Height="240" lex:LocalizeDictionary.DesignCulture="en" lex:ResxLocalizationProvider.DefaultAssembly="BandcampDownloader" lex:ResxLocalizationProvider.DefaultDictionary="Resources" @@ -29,10 +29,37 @@ TabIndex="0" ToolTip="{lex:Loc}" ToolTipService.ShowDuration="60000" /> + + + + + + @@ -87,7 +114,7 @@ diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml.cs b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml.cs index 3263b850..29fe122a 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml.cs @@ -24,6 +24,7 @@ public void LoadSettings() { /// public void SaveSettings() { checkBoxSaveCoverArtInFolder.GetBindingExpression(CheckBox.IsCheckedProperty).UpdateSource(); + textBoxCoverArtFileNameFormat.GetBindingExpression(TextBox.TextProperty).UpdateSource(); checkBoxCoverArtInFolderConvertToJpg.GetBindingExpression(CheckBox.IsCheckedProperty).UpdateSource(); checkBoxCoverArtInFolderResize.GetBindingExpression(CheckBox.IsCheckedProperty).UpdateSource(); textBoxCoverArtInFolderMaxSize.GetBindingExpression(TextBox.TextProperty).UpdateSource(); diff --git a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs index 990abe8d..5bc23e6b 100644 --- a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml.cs @@ -310,8 +310,8 @@ private TagLib.Picture DownloadCoverArt(Album album, String downloadsFolder) { String randomNumber = _random.Next(1, 1000).ToString("00#"); // Compute paths where to save artwork - String artworkTempPath = Path.GetTempPath() + "\\" + album.Title.ToAllowedFileName() + randomNumber + artworkFileExt; - String artworkFolderPath = downloadsFolder + "\\" + album.Title.ToAllowedFileName() + artworkFileExt; + String artworkTempPath = Path.GetTempPath() + "\\" + ParseCoverArtFileName(album) + randomNumber + artworkFileExt; + String artworkFolderPath = downloadsFolder + "\\" + ParseCoverArtFileName(album) + artworkFileExt; if (artworkTempPath.Length >= 260 || artworkFolderPath.Length >= 260) { // Windows doesn't do well with path + filename >= 260 characters (and path >= 248 characters) @@ -319,8 +319,8 @@ private TagLib.Picture DownloadCoverArt(Album album, String downloadsFolder) { // There may be only one path needed to shorten, but it's better to use the same file name in both places int fileNameInTempMaxLength = 12 - randomNumber.Length - artworkFileExt.Length; int fileNameInFolderMaxLength = 12 - artworkFileExt.ToString().Length; - artworkTempPath = Path.GetTempPath() + "\\" + album.Title.ToAllowedFileName().Substring(0, fileNameInTempMaxLength) + randomNumber + artworkFileExt; - artworkFolderPath = downloadsFolder + "\\" + album.Title.ToAllowedFileName().Substring(0, fileNameInFolderMaxLength) + artworkFileExt; + artworkTempPath = Path.GetTempPath() + "\\" + ParseCoverArtFileName(album).Substring(0, fileNameInTempMaxLength) + randomNumber + artworkFileExt; + artworkFolderPath = downloadsFolder + "\\" + ParseCoverArtFileName(album).Substring(0, fileNameInFolderMaxLength) + artworkFileExt; } TagLib.Picture artworkInTags = null; @@ -740,6 +740,21 @@ private void Log(String message, LogType logType) { } } + /// + /// Returns the file name to be used for the cover art of the specified from the file name format saved in the + /// UserSettings, by replacing the placeholders strings with their corresponding values. + /// + /// The album currently downloaded. + private String ParseCoverArtFileName(Album album) { + String fileName = App.UserSettings.CoverArtFileNameFormat + .Replace("{year}", album.ReleaseDate.Year.ToString()) + .Replace("{month}", album.ReleaseDate.Month.ToString("00")) + .Replace("{day}", album.ReleaseDate.Day.ToString("00")) + .Replace("{album}", album.Title) + .Replace("{artist}", album.Artist); + return fileName.ToAllowedFileName(); + } + /// /// Returns the download path for the specified album from the specified path format, by replacing the /// placeholders strings with their corresponding values. From 81275eb1136709b199698d5b322b7fe1d4b200dd Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 17:24:47 +0200 Subject: [PATCH 31/37] fix: remove useless punctuation --- src/BandcampDownloader/Properties/Resources.de.resx | 6 +++--- src/BandcampDownloader/Properties/Resources.fr.resx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 2e1ecb86..b8fe600e 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -199,14 +199,14 @@ Wenn nicht werden sie ignoriert und beim ursprünglichen Zustand beibehalten. Entspricht dem setzen von Nicht verändern bei jedem tag. - Ein album auf einmal _Herunterladen. + Ein album auf einmal _Herunterladen Wenn ausgewählt wird nur ein Album auf einmal heruntergeladen. Wenn nicht werden alle auf einmal heruntergeladen (Empfohlen wenn eine hohe bandbreite zur verfügung steht). - _Dateigrößen vorkalkulieren. + _Dateigrößen vorkalkulieren Wenn ausgewählt werden die Dateigrößen im vornherein abgerufen so dass eine genaue verbleibende Dauer berechnet werden kann. @@ -270,7 +270,7 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Alben speicher _in - _Dateiname format: + _Dateiname format _HTTP(S) proxy diff --git a/src/BandcampDownloader/Properties/Resources.fr.resx b/src/BandcampDownloader/Properties/Resources.fr.resx index b74e2311..e79f5807 100644 --- a/src/BandcampDownloader/Properties/Resources.fr.resx +++ b/src/BandcampDownloader/Properties/Resources.fr.resx @@ -270,7 +270,7 @@ Décocher cette option permet de gagner du temps. _Enregistrer les albums sous - _Format du nom de fichier : + _Format du nom de fichier Proxy _HTTP(S) From fed54a625c8427bd7bc9543734f7e50e71fb05fd Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 17 Apr 2019 17:25:36 +0200 Subject: [PATCH 32/37] feat: translate label --- src/BandcampDownloader/Properties/Resources.Designer.cs | 9 +++++++++ src/BandcampDownloader/Properties/Resources.de.resx | 3 +++ src/BandcampDownloader/Properties/Resources.fr.resx | 3 +++ src/BandcampDownloader/Properties/Resources.resx | 3 +++ .../UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml | 2 +- 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.Designer.cs b/src/BandcampDownloader/Properties/Resources.Designer.cs index f8ae1ca4..24b52281 100644 --- a/src/BandcampDownloader/Properties/Resources.Designer.cs +++ b/src/BandcampDownloader/Properties/Resources.Designer.cs @@ -511,6 +511,15 @@ internal static string labelComments { } } + /// + /// Looks up a localized string similar to File _name format. + /// + internal static string labelCoverArtFileNameFormat { + get { + return ResourceManager.GetString("labelCoverArtFileNameFormat", resourceCulture); + } + } + /// /// Looks up a localized string similar to Max size (_px). /// diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index b8fe600e..191d78ab 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -251,6 +251,9 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Komm_entare + + _Dateiname format + Maximale Größe (_px) diff --git a/src/BandcampDownloader/Properties/Resources.fr.resx b/src/BandcampDownloader/Properties/Resources.fr.resx index e79f5807..2d45c361 100644 --- a/src/BandcampDownloader/Properties/Resources.fr.resx +++ b/src/BandcampDownloader/Properties/Resources.fr.resx @@ -251,6 +251,9 @@ Décocher cette option permet de gagner du temps. C_ommentaires + + Format du _nom de fichier + Taille maximale (_px) diff --git a/src/BandcampDownloader/Properties/Resources.resx b/src/BandcampDownloader/Properties/Resources.resx index 117f514b..1b4c2c5f 100644 --- a/src/BandcampDownloader/Properties/Resources.resx +++ b/src/BandcampDownloader/Properties/Resources.resx @@ -267,6 +267,9 @@ Uncheck this option to save some time. Comm_ents + + File _name format + Max size (_px) diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml index 0fe9d82b..aa7511ae 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsCoverArt.xaml @@ -40,7 +40,7 @@