imap-backup 16.5.0 → 16.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d4ce42bf0d3de92eaa3355305f422bdccaf627e4d9cc31cb14c128417d2b87d
4
- data.tar.gz: 513fc795468450786093972b7ad3fc5ec024a0ed86f11728443342dd41b04980
3
+ metadata.gz: 325c46cce0eff42c96d4c44e686b32f0d52352cdfa038c17a132069b71bdf11e
4
+ data.tar.gz: 349426301b37fa38db3da6c2d71a3979892345828b88ffa2b52752a559f6a95b
5
5
  SHA512:
6
- metadata.gz: 460cc300cb717a129a440a3d7c542475ed6122f6dfc55e1b643c707e6575450c35d5c331b328596763b87a5426a2ce5f15a27830d739d772dfd14ae1f7b75a8b
7
- data.tar.gz: 20917771c877b133363f7d192df3293a9eb4fd234e23aee7f9018365e9caed492cc03c283526a069260f5091333a50f0b9c011a59de96d6027cb510e8cf5d6dc
6
+ metadata.gz: 6c4735412c68747d5365048e7748cc849bb1302a2da6e4af60354bf2a44c3c4dab5f14cf9ea7111cd7c6f416faea8ad429657a551755167662998e20ff7aae3a
7
+ data.tar.gz: 213bc6df849b8e7d72ded14920695e1a158d8657ac0d3bcd6632068f0c76258d2b5d0f37a5073867cf1f549249b1a2df651a0327ce803051311ed33fe5e757a0
data/docs/TODO.md CHANGED
@@ -14,3 +14,22 @@ Add internationalization support to make imap-backup accessible to non-English-s
14
14
  - Prioritize translating the menu-driven setup interface (`lib/imap/backup/setup.rb` and related files)
15
15
  - Extract all user-facing strings into translation files with locale "en"
16
16
  - Add Italian translations
17
+
18
+ # Add Localized Help to All Setup Screens
19
+
20
+ Status: [x]
21
+
22
+ ## Description
23
+
24
+ Currently, only the Download Strategy Chooser screen has localized help functionality (via the `show_help` method). This TODO involves adding similar localized help to all other setup screens in the menu-driven interface to provide users with context-sensitive assistance in their preferred language.
25
+
26
+ ## Technical Specifics
27
+
28
+ - The Download Strategy Chooser at [lib/imap/backup/setup/global_options/download_strategy_chooser.rb](lib/imap/backup/setup/global_options/download_strategy_chooser.rb#L52-L56) already implements localized help as a reference implementation
29
+ - Screens that need localized help added:
30
+ - Main menu ([lib/imap/backup/setup.rb](lib/imap/backup/setup.rb))
31
+ - Account setup menu ([lib/imap/backup/setup/account.rb](lib/imap/backup/setup/account.rb))
32
+ - Global options menu ([lib/imap/backup/setup/global_options.rb](lib/imap/backup/setup/global_options.rb))
33
+ - Other setup screens (folder chooser, backup path, etc.)
34
+ - Add translation keys for help text to locale files (`lib/imap/backup/locales/en.yml` and `lib/imap/backup/locales/it.yml`)
35
+ - Follow the pattern: menu choice for "help" that displays localized help text and waits for key press
data/docs/i18n.md CHANGED
@@ -41,9 +41,9 @@ Translation files use a hierarchical structure with nested keys. Here's an examp
41
41
  ---
42
42
  en:
43
43
  setup:
44
+ choose_action: "Choose an action"
44
45
  main_menu:
45
46
  title: "Main Menu"
46
- choose_action: "Choose an action"
47
47
  add_account: "add account"
48
48
  ```
49
49
 
@@ -87,9 +87,9 @@ To add support for a new language:
87
87
  ---
88
88
  fr:
89
89
  setup:
90
+ choose_action: "Choisissez une action"
90
91
  main_menu:
91
92
  title: "Menu Principal"
92
- choose_action: "Choisissez une action"
93
93
  # ... continue translating all keys
94
94
  ```
95
95
 
@@ -0,0 +1,218 @@
1
+ ---
2
+ de:
3
+ setup:
4
+ return_to_main_menu: "(q) Zurück zum Hauptmenü"
5
+ press_key: "Drück eine Taste "
6
+ choose_action: "Wählen eine Aktion aus"
7
+ main_menu:
8
+ title: "Hauptmenü"
9
+ add_account: "Konto hinzufügen"
10
+ modify_global_options: "Globale Einstellungen ändern"
11
+ help: "Hilfe"
12
+ help_text: |
13
+ imap-backup hilft dir dabei, deine E-Mail-Konten zu sichern und wiederherzustellen.
14
+
15
+ Aus diesem Menü kannst du folgende Aktionen durchführen:
16
+ - Neue E-Mail-Konten für die Sicherung hinzufügen
17
+ - Bestehende Konto-Einstellungen bearbeiten
18
+ - Globale Einstellungen ändern
19
+ save_and_exit: "Speichern und Beenden"
20
+ exit_without_saving: "Ohne Speichern Beenden"
21
+ quit: "(q) Beenden"
22
+ account:
23
+ title: "Konto"
24
+ email: "E-Mail-Adresse"
25
+ password: "Passwort"
26
+ password_unset: "(Nicht festgelegt)"
27
+ server: "Server"
28
+ connection_options: "Verbindungsoptionen"
29
+ mode: "Modus"
30
+ mirror_emails: "E-Mails spiegeln"
31
+ keep_all_emails: "Alle E-Mails behalten"
32
+ path: "Sicherungspfad"
33
+ exclude: "Ausschließen"
34
+ include: "Einschließen"
35
+ all_folders: "(Alle Ordner)"
36
+ no_folders_warning: "(Alle Ordner) <- Du hast dich dazu entschieden, keine Ordner zu sichern!"
37
+ multi_fetch: "Multi-Abruf"
38
+ reset_seen_flags_message: "Änderungen an „UNREAD“-Kennzeichnungen werden während des Downloads zurückgesetzt"
39
+ status: "Status"
40
+ connection_configuration: "Verbindungskonfiguration"
41
+ modify_email: "E-Mail-Adresse ändern"
42
+ modify_password: "Passwort ändern"
43
+ modify_server: "Server ändern"
44
+ server_prompt: "Server: "
45
+ modify_connection_options: "Verbindungsoptionen ändern"
46
+ connection_options_prompt: "Verbindungsoptionen (als JSON): "
47
+ malformed_json: "Fehlerhaftes JSON, bitte versuche es erneut"
48
+ test_connection: "Verbindung testen"
49
+ backup_configuration: "Sicherungskonfiguration"
50
+ toggle_mirror_mode: "Modus umschalten („Behalten“/„Spiegeln“)"
51
+ modify_backup_path: "Sicherungspfad ändern"
52
+ toggle_folder_blacklist: "Ordner-Einschließmodus umschalten (Whitelist/Blacklist)"
53
+ choose_folders: "Ordner zu %{action} auswählen"
54
+ exclude_from_backups: "Aus Sicherungen ausschließen"
55
+ include_in_backups: "In Sicherungen einschließen"
56
+ modify_multi_fetch_size: "Größe des Multi-Abrufs ändern (Anzahl der E-Mails, die gleichzeitig abgerufen werden sollen)"
57
+ size_prompt: "Größe: "
58
+ dont_fix_unread_flags: "Änderung an „UNREAD“-Kennzeichnungen während des Downloads nicht korrigieren"
59
+ fix_unread_flags: "Änderungen an „UNREAD“-Kennzeichnungen während des Downloads korrigieren"
60
+ change_status: "Status ändern (%{current} -> %{next})"
61
+ danger_area: "Gefahrenbereich"
62
+ delete: "Löschen"
63
+ delete_confirm: "Bist du sicher? (y/n) "
64
+ other_actions: "Andere Aktionen"
65
+ help: "Hilfe"
66
+ help_text: |
67
+ Dieses Menü ermöglicht es dir, Verbindungs- und Sicherungseinstellungen für ein einzelnes E-Mail-Konto zu konfigurieren.
68
+
69
+ Verbindungseinstellungen:
70
+ - `E-Mail-Adresse` und `Passwort` - Die Zugangsdaten für das Konto
71
+ - `Server` - Der Server, mit dem eine Verbindung für dieses Konto hergestellt wird.
72
+ Du musst dies nicht einstellen, wenn du einen der folgenden Anbieter verwendest: GMail, Apple Mail, FastMail, PurelyMail.
73
+ Andernfalls musst du hier den IMAP-Server deines E-Mail-Anbieters angeben.
74
+ - `Verbindungsoptionen` - (Erweiterte Einstellung) Damit kannst du zusätzliche Optionen für die IMAP-Verbindung angeben.
75
+ Dies sollte ein JSON-Objekt sein mit Schlüsseln, die den in der Ruby-Standardbibliothek `net/imap` beschriebenen Optionen entsprechen:
76
+ https://ruby-doc.org/stdlib-3.2/libdoc/net/imap/rdoc/Net/IMAP.html#initialize-instance_method
77
+ Wenn dein Server zum Beispiel SSL unterstützt aber ein ungültiges Zertifikat hat, kannst du diese Einstellung verwenden: `{"ssl": {"verify_mode": "none"}}`.
78
+
79
+ Du kannst überprüfen, ob deine Verbindungseinstellungen korrekt sind, indem du die Option „Verbindung testen“ auswählst.
80
+
81
+ Sicherungseinstellungen:
82
+ - `Modus` - „Alle E-Mails behalten“ bedeutet, dass E-Mails, die vom Server gelöscht wurden, weiterhin in der Sicherung behalten werden,
83
+ während „E-Mails spiegeln“ bedeutet, dass E-Mails, die vom Server gelöscht wurden, auch aus der Sicherung gelöscht werden.
84
+ - `Sicherungspfad` - Das Verzeichnis auf deinem lokalen Rechner, in dem die Sicherung für dieses Konto gespeichert wird.
85
+ - `Ordner-Einbindungsmodus` - Diese Einstellung bestimmt, ob du Ordner zum *Einschließen* in die Sicherung auswählst (Whitelist-Modus)
86
+ oder Ordner zum *Ausschließen* aus der Sicherung auswählst (Blacklist-Modus).
87
+ Im Whitelist-Modus startest du ohne Ordner und wählst aus, welche Ordner zur Sicherung hinzugefügt werden sollen.
88
+ Im Blacklist-Modus startest du mit allen Ordnern in der Sicherung und wählst aus, welche Ordner ausgeschlossen werden sollen.
89
+ - `Multi-Abruf-Größe` - Die Anzahl der E-Mails, die gleichzeitig vom Server abgerufen werden, wenn die Sicherung läuft.
90
+ Eine Erhöhung dieser Größe kann die Sicherung beschleunigen, aber auch den Speicherverbrauch erhöhen.
91
+ - `Änderungen an „UNREAD“-Kennzeichnungen korrigieren` - Legt fest, ob Änderungen an „UNREAD“-Kennzeichnungen während des Downloads zurückgesetzt werden sollen.
92
+ Diese Kennzeichnung ist nützlich, wenn der E-Mail-Anbieter (z.B. Apple Mail) E-Mails als gelesen markiert, wenn sie z.B. durch imap-backup heruntergeladen werden.
93
+ - `Status`- Standardmäßig ist ein Konto „aktiv“ und wird gesichert, wenn du den Sicherungsbefehl ausführst.
94
+ Du kannst den Status auf „Archiviert“ stellen, wenn du die Sicherungen nicht mehr ausführen möchtest, aber sie in Zukunft mit dem `copy`-Befehl auf einen neuen Server migrieren möchtest. Andernfalls kannst du ihn auf „Offline“ stellen, wenn du nur die Sicherung des Kontos auf dem Datenträger behalten möchtest.
95
+ global_options:
96
+ title: "Globale Optionen"
97
+ description: "Diese Einstellungen betreffen alle Konten."
98
+ change_download_strategy: "Download-Strategie ändern (Ausgewählt: „%{current}“)"
99
+ help: "Hilfe"
100
+ help_text: |
101
+ Dieses Menü ermöglicht es dir, Einstellungen zu konfigurieren, die alle Konten betreffen.
102
+
103
+ Verfügbaren globale Optionen:
104
+ - `Download-Strategie` - Diese Einstellung bestimmt, wie oft Daten während der Sicherung auf den Datenträger geschrieben werden.
105
+ Die Standardeinstellung („Metadaten verzögert schreiben“) ist schneller und schonender für den Datenträger,
106
+ während „Direkt auf den Datenträger schreiben“ weniger Arbeitsspeicher verwendet und für Geräte mit begrenztem Arbeitsspeicher geeignet ist.
107
+ Wähle die Option für weitere Details zu den Unterschieden zwischen diesen Strategien.
108
+ download_strategy_chooser:
109
+ title: "Wähle eine Download-Strategie aus"
110
+ current_marker: " <- Ausgewählt"
111
+ help: "Hilfe"
112
+ help_text: |
113
+ Die Einstellung ändert, wie oft Daten während der Sicherung auf den Datenträger geschrieben werden.
114
+
115
+ imap-backup verwendet zwei Dateien pro Ordner, eine .mbox-Datei mit den eigentlichen
116
+ Nachrichten und eine .imap-Datei mit Metadaten wie Nachrichtenlängen und deren
117
+ Offsets innerhalb der .mbox-Datei.
118
+
119
+ # „Direkt auf den Datenträger schreiben“
120
+
121
+ Mit dieser Einstellung werden jede Nachricht und ihre Metadaten
122
+ auf den Datenträger geschrieben, sobald sie heruntergeladen werden.
123
+
124
+ Diese Option verwendet am wenigsten Arbeitsspeicher und ist daher für
125
+ Sicherungen auf Geräten mit begrenztem Arbeitsspeicher, wie Raspberry Pis, geeignet.
126
+
127
+ # „Metadaten verzögert schreiben“
128
+
129
+ Dies ist die Standardeinstellung.
130
+
131
+ Hier werden Nachrichten (die potenziell sehr groß sind) an die
132
+ .mbox-Datei angehängt, sobald sie empfangen werden, aber die
133
+ Metadaten werden erst geschrieben, wenn alle Nachrichten des
134
+ Ordners heruntergeladen wurden.
135
+
136
+ Diese Option verwendet etwas mehr Arbeitsspeicher als die vorherige
137
+ Einstellung, ist aber **viel** schneller für große Ordner (potenziell
138
+ >30 mal für Ordner mit >100k Nachrichten) und ist schonender für den Datenträger.
139
+
140
+ # Andere Leistungseinstellungen
141
+
142
+ Eine weitere Einstellung, die die Leistung der Sicherung beeinflusst,
143
+ ist die `Multi-Abruf-Größe` Kontoeinstellung.
144
+ asker:
145
+ email_prompt: "E-Mail-Adresse: "
146
+ email_validation_error: "Gib eine gültige E-Mail-Adresse ein "
147
+ password_prompt: "Passwort: "
148
+ password_confirmation_prompt: "Passwort wiederholen: "
149
+ password_mismatch: "Das Passwort und die Wiederholung stimmen nicht überein.\nWeiter? (y/n) "
150
+ folder_chooser:
151
+ title: "Ordner hinzufügen/entfernen"
152
+ select_folder: "Wähle eine Ordner aus (Aktivieren/Deaktivieren)"
153
+ help: "Hilfe"
154
+ help_text: |
155
+ Verwende dieses Menü, um auszuwählen, welche Ordner gesichert werden sollen.
156
+
157
+ Klick auf einen Ordner, um seinen Sicherungsstatus umzuschalten:
158
+ - Ordner mit einem „+“ markiert werden gesichert
159
+ - Ordner mit einem „-“ markiert werden nicht gesichert
160
+
161
+ Wenn du keine Ordner auswählst, werden alle Ordner gesichert.
162
+ return_to_account_menu: "(q) Zum Kontomenü zurückkehren"
163
+ unable_to_get_folder_list: "Ordnerliste konnte nicht abgerufen werden"
164
+ folders_removed: "Die folgenden Ordner wurden entfernt: %{folders}"
165
+ connection_failed: "Verbindung fehlgeschlagen"
166
+ backup_path:
167
+ prompt: "Sicherungsverzeichnis: "
168
+ validation_error: "Wähle ein anderes Verzeichnis aus "
169
+ path_in_use: "Der Pfad „%{path}“ wird bereits für die Sicherung des Kontos „%{username}“ verwendet"
170
+ cli:
171
+ version: "imap-backup %{version}"
172
+ stats:
173
+ folder: "Ordner"
174
+ remote: "Entfernt"
175
+ both: "Beide"
176
+ local: "Lokal"
177
+ local:
178
+ check:
179
+ account: "Konto: %{account}"
180
+ folder_not_found: "Ordner „%{folder}“ nicht gefunden"
181
+ remote:
182
+ namespaces:
183
+ name: "Name"
184
+ prefix: "Prefix"
185
+ delimiter: "Trennzeichen"
186
+ not_defined: "(Nicht festgelegt)"
187
+ restore:
188
+ missing_email_parameter: "Fehlender EMAIL-Parameter"
189
+ transfer:
190
+ same_account_error: "Quell- und Zielkonto dürfen nicht identisch sein!"
191
+ destination_not_found: "Das Konto „%{email}“ existiert nicht"
192
+ source_not_found: "Das Konto „%{email}“ existiert nicht"
193
+ source_not_available: "Das Konto „%{email}“ ist für die Migration nicht verfügbar (Status: %{status})"
194
+ destination_not_available: "Das Konto „%{email}“ ist für die Migration nicht verfügbar (Status: %{status})"
195
+ incompatible_destination_delimiter: "--automatic-namespaces ist inkompatibel mit --destination-delimiter"
196
+ incompatible_destination_prefix: "--automatic-namespaces ist inkompatibel mit --destination-prefix"
197
+ incompatible_source_delimiter: "--automatic-namespaces ist inkompatibel mit --source-delimiter"
198
+ incompatible_source_prefix: "--automatic-namespaces ist inkompatibel mit --source-prefix"
199
+ helpers:
200
+ config_mutual_exclusivity: "--config und --erb-configuration Optionen können nicht zusammen verwendet werden"
201
+ config_not_found: "Konfigurationsdatei „%{path}“ nicht gefunden"
202
+ account_not_configured: "%{email} ist kein konfiguriertes Konto"
203
+ erb_config_not_found: "Die ERB-Konfigurationsdatei „%{path}“ wurde nicht gefunden"
204
+ erb_syntax_error: "Die ERB-Vorlage hat einen Syntaxfehler: %{message}"
205
+ erb_processing_error: "Fehler beim Verarbeiten der ERB-Vorlage: %{message}"
206
+ erb_invalid_json: "Die ERB-Vorlage hat ein ungültiges JSON erzeugt: %{message}"
207
+ utils:
208
+ thunderbird_profile_not_found: "Thunderbird-Profil „%{profile}“ nicht gefunden"
209
+ default_thunderbird_profile_not_found: "Standard Thunderbird-Profil nicht gefunden"
210
+ no_serialized_folders: "Für das Konto „%{email}“ wurden keine serialisierten Ordner gefunden"
211
+ configuration:
212
+ download_strategy:
213
+ direct:
214
+ short: "Direkt auf den Datenträger schreiben"
215
+ long: "Auf Datenträger schreiben, sobald Nachrichten heruntergeladen werden"
216
+ delay_metadata:
217
+ short: "Verzögertes Schreiben der Metadaten"
218
+ long: "Metadaten erst schreiben, wenn alle Nachrichten heruntergeladen wurden"
@@ -1,62 +1,112 @@
1
1
  ---
2
2
  en:
3
3
  setup:
4
+ return_to_main_menu: "(q) return to main menu"
5
+ press_key: "Press a key "
6
+ choose_action: "Choose an action"
4
7
  main_menu:
5
8
  title: "Main Menu"
6
- choose_action: "Choose an action"
7
9
  add_account: "add account"
8
10
  modify_global_options: "modify global options"
11
+ help: "help"
12
+ help_text: |
13
+ imap-backup helps you backup and restore your email accounts.
14
+
15
+ From this main menu, you can:
16
+ - Add new email accounts to backup
17
+ - Edit existing account settings
18
+ - Modify global options
9
19
  save_and_exit: "save and exit"
10
20
  exit_without_saving: "exit without saving changes"
11
21
  quit: "(q) quit"
12
22
  account:
13
23
  title: "Account"
14
- choose_action: "Choose an action"
24
+ email: "email"
25
+ password: "password"
26
+ password_unset: "(unset)"
27
+ server: "server"
28
+ connection_options: "connection options"
29
+ mode: "mode"
30
+ mirror_emails: "mirror emails"
31
+ keep_all_emails: "keep all emails"
32
+ path: "backup path"
33
+ exclude: "exclude"
34
+ include: "include"
35
+ all_folders: "(all folders)"
36
+ no_folders_warning: "(all folders) <- you have opted to not backup any folders!"
37
+ multi_fetch: "multi-fetch"
38
+ reset_seen_flags_message: "changes to 'UNSEEN' flags will be reset during download"
39
+ status: "status"
40
+ connection_configuration: "Connection Configuration"
15
41
  modify_email: "modify email"
16
42
  modify_password: "modify password"
43
+ modify_server: "modify server"
44
+ server_prompt: "server: "
45
+ modify_connection_options: "modify connection options"
46
+ connection_options_prompt: "connection options (as JSON): "
47
+ malformed_json: "Malformed JSON, please try again"
48
+ test_connection: "test connection"
49
+ backup_configuration: "Backup Configuration"
50
+ toggle_mirror_mode: "toggle mode ('keep'/'mirror')"
17
51
  modify_backup_path: "modify backup path"
18
52
  toggle_folder_blacklist: "toggle folder inclusion mode (whitelist/blacklist)"
19
53
  choose_folders: "choose folders to %{action}"
20
54
  exclude_from_backups: "exclude from backups"
21
55
  include_in_backups: "include in backups"
22
- toggle_mirror_mode: "toggle mode ('keep'/'mirror')"
23
56
  modify_multi_fetch_size: "modify multi-fetch size (number of emails to fetch at a time)"
24
57
  size_prompt: "size: "
25
- modify_server: "modify server"
26
- server_prompt: "server: "
27
- modify_connection_options: "modify connection options"
28
- connection_options_prompt: "connection options (as JSON): "
29
- malformed_json: "Malformed JSON, please try again"
30
- press_key: "Press a key "
31
58
  dont_fix_unread_flags: "don't fix changes to 'UNSEEN' flags during download"
32
59
  fix_unread_flags: "fix changes to 'UNSEEN' flags during download"
33
60
  change_status: "change status (%{current} -> %{next})"
34
- test_connection: "test connection"
61
+ danger_area: "Danger Area"
35
62
  delete: "delete"
36
63
  delete_confirm: "Are you sure? (y/n) "
37
- return_to_main_menu: "(q) return to main menu"
38
- email: "email"
39
- password: "password"
40
- unset: "(unset)"
41
- path: "path"
42
- exclude: "exclude"
43
- include: "include"
44
- all_folders: "(all folders)"
45
- no_folders_warning: "(all folders) <- you have opted to not backup any folders!"
46
- mirror_emails: "mirror emails"
47
- keep_all_emails: "keep all emails"
48
- mode: "mode"
49
- multi_fetch: "multi-fetch"
50
- server: "server"
51
- connection_options: "connection options"
52
- reset_seen_flags_message: "changes to 'UNSEEN' flags will be reset during download"
53
- status: "status"
64
+ other_actions: "Other Actions"
65
+ help: "help"
66
+ help_text: |
67
+ This screen allows you to configure connection and backup settings for a single email account.
68
+
69
+ Connection settings:
70
+ - `email` and `password` - The credentials for the account
71
+ - `server` - The server to connect to for this account. You won't need to set this if you use
72
+ one of the following: GMail, Apple Mail, FastMail, PurelyMail.
73
+ Otherwise, you'll need to set this to your email provider's IMAP server.
74
+ - `connection_options` - (Advanced setting) This allows you to specify additional options for the IMAP connection.
75
+ This should be a JSON object with keys corresponding to the options described in the `net/imap` Ruby standard library documentation:
76
+ https://ruby-doc.org/stdlib-3.2/libdoc/net/imap/rdoc/Net/IMAP.html#initialize-instance_method
77
+ For example, if your server uses SSL but has an invalid certificate, you could set this to `{"ssl": {"verify_mode": "none"}}`.
78
+
79
+ You can test whether your connection settings are correct by selecting the "test connection" option.
80
+
81
+ Backup settings:
82
+ - `mode` - "keep all emails" means that emails deleted from the server will still be kept in the backup,
83
+ while "mirror emails" means that emails deleted from the server will also be deleted from the backup.
84
+ - `backup path` - The directory on your local machine where the backup for this account will be stored.
85
+ - `folder inclusion mode` - This setting determines whether you choose folders to *include* in the backup (whitelist mode)
86
+ or *exclude* from the backup (blacklist mode).
87
+ In whitelist mode, you start with an empty set of folders and choose which folders to add to the backup.
88
+ In blacklist mode, you start with all folders included in the backup and choose which folders to exclude.
89
+ - `multi-fetch size` - The number of emails to fetch at a time when backing up.
90
+ Increasing this can speed up backups, but also increases memory usage.
91
+ - `fix changes to 'UNSEEN' flags` - Whether to reset changes to 'UNSEEN' flags during download.
92
+ This flag is useful when the email provider (e.g. Apple Mail) marks emails as read when they are downloaded
93
+ e.g. by imap-backup.
94
+ - `status` - By default, an account is "active" and will be backed up when you run the backup command.
95
+ You can set this to "archived" if you want to stop running backups, but allow it to be migrated to a new server in the future using the `copy` command.
96
+ Otherwise, you can set this to "offline" if you want to just keep the account's backup on disk.
54
97
  global_options:
55
98
  title: "Global Options"
56
99
  description: "These settings affect all accounts."
57
- choose_action: "Choose an action"
58
100
  change_download_strategy: "change download strategy (currently: '%{current}')"
59
- return_to_main_menu: "(q) return to main menu"
101
+ help: "help"
102
+ help_text: |
103
+ This screen allows you to configure settings that affect all accounts.
104
+
105
+ Available global options:
106
+ - `download strategy` - This setting determines how often data is written to disk during backups.
107
+ The default setting ("delay writing metadata") is faster and less wearing on the disk,
108
+ while "write straight to disk" uses less memory and is suitable for devices with limited memory.
109
+ Choose the option for more details on the differences between these strategies.
60
110
  download_strategy_chooser:
61
111
  title: "Choose a Download Strategy"
62
112
  current_marker: " <- current"
@@ -68,7 +118,7 @@ en:
68
118
  messages and a .imap file with metadata like message lengths and their
69
119
  offsets within the .mbox file.
70
120
 
71
- # write straight to disk
121
+ # 'write straight to disk'
72
122
 
73
123
  With this setting, each message and its metadata are written to disk
74
124
  as they are downloaded.
@@ -76,7 +126,7 @@ en:
76
126
  This choice uses least memory and so is suitable for backing up onto
77
127
  devices with limited memory, like Raspberry Pis.
78
128
 
79
- # delay writing metadata
129
+ # 'delay writing metadata'
80
130
 
81
131
  This is the default setting.
82
132
 
@@ -92,8 +142,6 @@ en:
92
142
 
93
143
  Another configuration which affects backup performance is the
94
144
  `multi_fetch_size` account-level setting.
95
- press_key: "Press a key "
96
- return_to_main_menu: "(q) return to main menu"
97
145
  asker:
98
146
  email_prompt: "email address: "
99
147
  email_validation_error: "Enter a valid email address "
@@ -103,8 +151,16 @@ en:
103
151
  folder_chooser:
104
152
  title: "Add/remove folders"
105
153
  select_folder: "Select a folder (toggles)"
154
+ help: "help"
155
+ help_text: |
156
+ Use this screen to select which folders to backup.
157
+
158
+ Click a folder to toggle its backup status:
159
+ - Folders marked with '+' will be backed up
160
+ - Folders marked with '-' will not be backed up
161
+
162
+ If you don't select any folders, all folders will be backed up.
106
163
  return_to_account_menu: "(q) return to the account menu"
107
- press_key: "Press a key "
108
164
  unable_to_get_folder_list: "Unable to get folder list"
109
165
  folders_removed: "The following folders have been removed: %{folders}"
110
166
  connection_failed: "Connection failed"
@@ -122,6 +178,7 @@ en:
122
178
  local:
123
179
  check:
124
180
  account: "Account: %{account}"
181
+ folder_not_found: "Folder '%{folder}' not found"
125
182
  remote:
126
183
  namespaces:
127
184
  name: "Name"
@@ -148,10 +205,6 @@ en:
148
205
  erb_syntax_error: "ERB template has syntax error: %{message}"
149
206
  erb_processing_error: "Error processing ERB template: %{message}"
150
207
  erb_invalid_json: "ERB template rendered invalid JSON: %{message}"
151
- local:
152
- check:
153
- account: "Account: %{account}"
154
- folder_not_found: "Folder '%{folder}' not found"
155
208
  utils:
156
209
  thunderbird_profile_not_found: "Thunderbird profile '%{profile}' not found"
157
210
  default_thunderbird_profile_not_found: "Default Thunderbird profile not found"
@@ -1,62 +1,109 @@
1
1
  ---
2
2
  it:
3
3
  setup:
4
+ return_to_main_menu: "(q) torna al menu principale"
5
+ press_key: "Premi un tasto "
6
+ choose_action: "Scegli un'azione"
4
7
  main_menu:
5
8
  title: "Menu Principale"
6
- choose_action: "Scegli un'azione"
7
9
  add_account: "aggiungi account"
8
10
  modify_global_options: "modifica opzioni globali"
11
+ help: "aiuto"
12
+ help_text: |
13
+ imap-backup ti aiuta a fare il backup e il ripristino dei tuoi account email.
14
+
15
+ Da questo menu principale, puoi:
16
+ - Aggiungere nuovi account email da cui fare il backup
17
+ - Modificare le impostazioni degli account esistenti
18
+ - Modificare le opzioni globali
9
19
  save_and_exit: "salva ed esci"
10
20
  exit_without_saving: "esci senza salvare le modifiche"
11
21
  quit: "(q) esci"
12
22
  account:
13
23
  title: "Account"
14
- choose_action: "Scegli un'azione"
24
+ email: "email"
25
+ password: "password"
26
+ password_unset: "(non impostato)"
27
+ server: "server"
28
+ connection_options: "opzioni di connessione"
29
+ mode: "modalità"
30
+ mirror_emails: "modalità 'mirror'"
31
+ keep_all_emails: "modalità 'keep'"
32
+ path: "percorso di backup"
33
+ exclude: "escludi"
34
+ include: "includi"
35
+ all_folders: "(tutte le cartelle)"
36
+ no_folders_warning: "(tutte le cartelle) <- hai scelto di non fare il backup di nessuna cartella!"
37
+ multi_fetch: "multi-fetch"
38
+ reset_seen_flags_message: "le modifiche ai flag 'UNSEEN' verranno ripristinate durante il download"
39
+ status: "stato"
40
+ connection_configuration: "Configurazione della connessione"
15
41
  modify_email: "modifica email"
16
42
  modify_password: "modifica password"
43
+ modify_server: "modifica server"
44
+ server_prompt: "server: "
45
+ modify_connection_options: "modifica opzioni di connessione"
46
+ connection_options_prompt: "opzioni di connessione (in formato JSON): "
47
+ malformed_json: "JSON malformato, riprova"
48
+ test_connection: "testare connessione"
49
+ backup_configuration: "Configurazione backup"
50
+ toggle_mirror_mode: "attiva/disattiva modalità ('keep'/'mirror')"
17
51
  modify_backup_path: "modifica percorso di backup"
18
52
  toggle_folder_blacklist: "attiva/disattiva modalità di inclusione cartelle (whitelist/blacklist)"
19
53
  choose_folders: "scegli cartelle da %{action}"
20
54
  exclude_from_backups: "escludere dai backup"
21
55
  include_in_backups: "includere nei backup"
22
- toggle_mirror_mode: "attiva/disattiva modalità ('keep'/'mirror')"
23
56
  modify_multi_fetch_size: "modifica dimensione multi-fetch (numero di email da scaricare alla volta)"
24
57
  size_prompt: "dimensione: "
25
- modify_server: "modifica server"
26
- server_prompt: "server: "
27
- modify_connection_options: "modifica opzioni di connessione"
28
- connection_options_prompt: "opzioni di connessione (in formato JSON): "
29
- malformed_json: "JSON malformato, riprova"
30
- press_key: "Premi un tasto "
31
58
  dont_fix_unread_flags: "non correggere modifiche ai flag 'UNSEEN' durante il download"
32
59
  fix_unread_flags: "correggi modifiche ai flag 'UNSEEN' durante il download"
33
60
  change_status: "cambia stato (%{current} -> %{next})"
34
- test_connection: "testare la connessione"
61
+ danger_area: "Area pericolosa"
35
62
  delete: "elimina"
36
63
  delete_confirm: "Sei sicuro? (y/n) "
37
- return_to_main_menu: "(q) torna al menu principale"
38
- email: "email"
39
- password: "password"
40
- unset: "(non impostato)"
41
- path: "percorso"
42
- exclude: "escludi"
43
- include: "includi"
44
- all_folders: "(tutte le cartelle)"
45
- no_folders_warning: "(tutte le cartelle) <- hai scelto di non fare il backup di nessuna cartella!"
46
- mirror_emails: "modalità 'mirror'"
47
- keep_all_emails: "modalità 'keep'"
48
- mode: "modalità"
49
- multi_fetch: "multi-fetch"
50
- server: "server"
51
- connection_options: "opzioni di connessione"
52
- reset_seen_flags_message: "le modifiche ai flag 'UNSEEN' verranno ripristinate durante il download"
53
- status: "stato"
64
+ other_actions: "Altre azioni"
65
+ help: "aiuto"
66
+ help_text: |
67
+ Questa schermata ti permette di configurare le impostazioni per un singolo account email.
68
+
69
+ Configurazione della connessione:
70
+ - `email` e `password` - Le credenziali per l'account
71
+ - `server` - Il server a cui connettersi per questo account. Non sarà necessario impostarlo se si utilizza
72
+ uno dei seguenti: GMail, Apple Mail, FastMail, PurelyMail.
73
+ Altrimenti, sarà necessario impostarlo sul server IMAP del provider di posta elettronica.
74
+ - `connection_options` - (Impostazione avanzata) Questa configurazione consente di specificare opzioni aggiuntive per la connessione IMAP.
75
+ Deve essere un oggetto JSON con chiavi corrispondenti alle opzioni descritte nella documentazione della libreria standard Ruby `net/imap`:
76
+ https://ruby-doc.org/stdlib-3.2/libdoc/net/imap/rdoc/Net/IMAP.html#initialize-instance_method
77
+ Ad esempio, se il server utilizza SSL ma ha un certificato non valido, è possibile impostare questa opzione su `{"ssl": {"verify_mode": "none"}}`.
78
+
79
+ Puoi testare se le impostazioni di connessione sono corrette selezionando l'opzione "testare connessione".
80
+
81
+ Configurazione del backup:
82
+ - `mode` - "modalità 'keep'" significa che le email eliminate dal server saranno comunque conservate nel backup,
83
+ mentre "modalità 'mirror'" significa che le email eliminate dal server saranno anche eliminate dal backup.
84
+ - `backup path` - La directory sul tuo computer locale dove verrà memorizzato il backup per questo account.
85
+ - `modalità di inclusione cartelle` - Questa opzione ti permette di scegliere se specificare le cartelle da *includere* nei backup
86
+ (modalità whitelist) o da *escludere* dai backup (modalità blacklist).
87
+ In modalità whitelist, cominci con tutte le cartelle escluse e puoi scegliere di includere solo quelle di cui vuoi fare il backup.
88
+ In modalità blacklist, cominci con tutte le cartelle incluse e puoi scegliere di escludere solo quelle di cui non vuoi fare il backup.
89
+ - `multi-fetch` - Questa opzione ti permette di configurare quanti messaggi scaricare alla volta durante i backup.
90
+ - `stato` - Questa opzione ti permette di modificare lo stato dell'account tra "active", "archived" e "offline".
91
+ Un account attivo ("active") è un account normale che viene incluso nei backup regolari.
92
+ Un account archiviato ("archived") è un account che non viene incluso nei backup regolari, ma i cui dati rimangono intatti su disco e possono essere migrati a un nuovo server in futuro usando il comando `copy`.
93
+ Un account offline ("offline") è un account che non viene incluso nei backup regolari e i cui dati vengono mantenuti su disco, ma non può essere migrato a un nuovo server in futuro usando il comando `copy`.
54
94
  global_options:
55
95
  title: "Opzioni Globali"
56
96
  description: "Queste impostazioni influenzano tutti gli account."
57
- choose_action: "Scegli un'azione"
58
97
  change_download_strategy: "cambia strategia di download (attualmente: '%{current}')"
59
- return_to_main_menu: "(q) torna al menu principale"
98
+ help: "aiuto"
99
+ help_text: |
100
+ Questa schermata ti permette di configurare le impostazioni che influenzano tutti gli account.
101
+
102
+ Opzioni globali disponibili:
103
+ - `strategia di download` - Questa impostazione determina la frequenza con cui i dati vengono scritti su disco durante i backup.
104
+ L'impostazione predefinita ("ritarda la scrittura dei metadati") è più veloce e consuma meno il disco,
105
+ mentre "scrivi direttamente su disco" utilizza meno memoria ed è adatta per dispositivi con memoria limitata.
106
+ Scegli l'opzione per maggiori dettagli sulle differenze tra queste strategie.
60
107
  download_strategy_chooser:
61
108
  title: "Scegli una Strategia di Download"
62
109
  current_marker: " <- attuale"
@@ -69,7 +116,7 @@ it:
69
116
  effettivi e un file .imap con metadati come le lunghezze dei messaggi e
70
117
  i loro offset all'interno del file .mbox.
71
118
 
72
- # scrivi direttamente su disco
119
+ # 'scrivi direttamente su disco'
73
120
 
74
121
  Con questa impostazione, ogni messaggio e i suoi metadati vengono scritti
75
122
  su disco man mano che vengono scaricati.
@@ -77,7 +124,7 @@ it:
77
124
  Questa scelta utilizza meno memoria ed è quindi adatta per fare backup su
78
125
  dispositivi con memoria limitata, come i Raspberry Pi.
79
126
 
80
- # ritarda la scrittura dei metadati
127
+ # 'ritarda la scrittura dei metadati'
81
128
 
82
129
  Questa è l'impostazione predefinita.
83
130
 
@@ -93,19 +140,25 @@ it:
93
140
 
94
141
  Un'altra configurazione che influisce sulle prestazioni del backup è
95
142
  l'impostazione `multi_fetch_size` a livello di account.
96
- press_key: "Premi un tasto "
97
- return_to_main_menu: "(q) torna al menu principale"
98
143
  asker:
99
144
  email_prompt: "indirizzo email: "
100
145
  email_validation_error: "Inserisci un indirizzo email valido "
101
146
  password_prompt: "password: "
102
147
  password_confirmation_prompt: "ripeti password: "
103
- password_mismatch: "la password e la conferma non corrispondono.\nContinuare? (s/n) "
148
+ password_mismatch: "la password e la conferma non corrispondono.\nContinuare? (y/n) "
104
149
  folder_chooser:
105
150
  title: "Aggiungi/rimuovi cartelle"
106
151
  select_folder: "Seleziona una cartella (attiva/disattiva)"
152
+ help: "aiuto"
153
+ help_text: |
154
+ Utilizza questa schermata per selezionare quali cartelle eseguire il backup.
155
+
156
+ Clicca su una cartella per attivare/disattivare il suo stato di backup:
157
+ - Le cartelle contrassegnate con '+' verranno salvate
158
+ - Le cartelle contrassegnate con '-' non verranno salvate
159
+
160
+ Se non selezioni alcuna cartella, tutte le cartelle verranno salvate.
107
161
  return_to_account_menu: "(q) torna al menu account"
108
- press_key: "Premi un tasto "
109
162
  unable_to_get_folder_list: "Impossibile ottenere l'elenco delle cartelle"
110
163
  folders_removed: "Le seguenti cartelle sono state rimosse: %{folders}"
111
164
  connection_failed: "Connessione fallita"
@@ -123,6 +176,7 @@ it:
123
176
  local:
124
177
  check:
125
178
  account: "Account: %{account}"
179
+ folder_not_found: "Cartella '%{folder}' non trovata"
126
180
  remote:
127
181
  namespaces:
128
182
  name: "Nome"
@@ -149,10 +203,6 @@ it:
149
203
  erb_syntax_error: "Il template ERB ha un errore di sintassi: %{message}"
150
204
  erb_processing_error: "Errore durante l'elaborazione del template ERB: %{message}"
151
205
  erb_invalid_json: "Il template ERB ha generato JSON non valido: %{message}"
152
- local:
153
- check:
154
- account: "Account: %{account}"
155
- folder_not_found: "Cartella '%{folder}' non trovata"
156
206
  utils:
157
207
  thunderbird_profile_not_found: "Profilo Thunderbird '%{profile}' non trovato"
158
208
  default_thunderbird_profile_not_found: "Profilo Thunderbird predefinito non trovato"
@@ -39,7 +39,7 @@ module Imap::Backup
39
39
 
40
40
  #{format_rows(rows)}
41
41
 
42
- #{I18n.t('setup.account.choose_action')}
42
+ #{I18n.t('setup.account.connection_configuration')}
43
43
  HEADER
44
44
  end
45
45
 
@@ -59,7 +59,7 @@ module Imap::Backup
59
59
  def password
60
60
  masked_password =
61
61
  if (account.password == "") || account.password.nil?
62
- I18n.t("setup.account.unset")
62
+ I18n.t("setup.account.password_unset")
63
63
  else
64
64
  account.password.gsub(/./, "x")
65
65
  end
@@ -58,7 +58,8 @@ module Imap::Backup
58
58
  toggle_reset_seen_flags_after_fetch menu
59
59
  rotate_status menu
60
60
  delete_account menu
61
- menu.choice(I18n.t("setup.account.return_to_main_menu")) { throw :done }
61
+ show_help menu
62
+ menu.choice(I18n.t("setup.return_to_main_menu")) { throw :done }
62
63
  menu.hidden("quit") { throw :done }
63
64
  end
64
65
  end
@@ -81,6 +82,45 @@ module Imap::Backup
81
82
  end
82
83
  end
83
84
 
85
+ def modify_server(menu)
86
+ menu.choice(I18n.t("setup.account.modify_server")) do
87
+ server = highline.ask(I18n.t("setup.account.server_prompt"))
88
+ account.server = server if !server.nil?
89
+ end
90
+ end
91
+
92
+ def modify_connection_options(menu)
93
+ menu.choice(I18n.t("setup.account.modify_connection_options")) do
94
+ connection_options = highline.ask(I18n.t("setup.account.connection_options_prompt"))
95
+ if !connection_options.nil?
96
+ begin
97
+ account.connection_options = connection_options
98
+ rescue JSON::ParserError
99
+ Kernel.puts I18n.t("setup.account.malformed_json")
100
+ highline.ask I18n.t("setup.press_key")
101
+ end
102
+ end
103
+ end
104
+ end
105
+
106
+ def test_connection(menu)
107
+ text = "#{I18n.t('setup.account.test_connection')}\n\n" \
108
+ "#{I18n.t('setup.account.backup_configuration')}:"
109
+ menu.choice(text) do
110
+ result = Setup::ConnectionTester.new(account).test
111
+ Kernel.puts result
112
+ highline.ask I18n.t("setup.press_key")
113
+ end
114
+ end
115
+
116
+ def toggle_mirror_mode(menu)
117
+ menu_item = I18n.t("setup.account.toggle_mirror_mode")
118
+ new_value = account.mirror_mode ? nil : true
119
+ menu.choice(menu_item) do
120
+ account.mirror_mode = new_value
121
+ end
122
+ end
123
+
84
124
  def modify_backup_path(menu)
85
125
  menu.choice(I18n.t("setup.account.modify_backup_path")) do
86
126
  Setup::BackupPath.new(account: account, config: config).run
@@ -103,14 +143,6 @@ module Imap::Backup
103
143
  end
104
144
  end
105
145
 
106
- def toggle_mirror_mode(menu)
107
- menu_item = I18n.t("setup.account.toggle_mirror_mode")
108
- new_value = account.mirror_mode ? nil : true
109
- menu.choice(menu_item) do
110
- account.mirror_mode = new_value
111
- end
112
- end
113
-
114
146
  def modify_multi_fetch_size(menu)
115
147
  menu.choice(I18n.t("setup.account.modify_multi_fetch_size")) do
116
148
  size = highline.ask(I18n.t("setup.account.size_prompt"))
@@ -119,27 +151,6 @@ module Imap::Backup
119
151
  end
120
152
  end
121
153
 
122
- def modify_server(menu)
123
- menu.choice(I18n.t("setup.account.modify_server")) do
124
- server = highline.ask(I18n.t("setup.account.server_prompt"))
125
- account.server = server if !server.nil?
126
- end
127
- end
128
-
129
- def modify_connection_options(menu)
130
- menu.choice(I18n.t("setup.account.modify_connection_options")) do
131
- connection_options = highline.ask(I18n.t("setup.account.connection_options_prompt"))
132
- if !connection_options.nil?
133
- begin
134
- account.connection_options = connection_options
135
- rescue JSON::ParserError
136
- Kernel.puts I18n.t("setup.account.malformed_json")
137
- highline.ask I18n.t("setup.account.press_key")
138
- end
139
- end
140
- end
141
- end
142
-
143
154
  def toggle_reset_seen_flags_after_fetch(menu)
144
155
  menu_item =
145
156
  if account.reset_seen_flags_after_fetch
@@ -165,26 +176,30 @@ module Imap::Backup
165
176
  current: current_status,
166
177
  next: next_status
167
178
  )
168
- menu.choice(menu_item) do
179
+ following_section = I18n.t("setup.account.danger_area")
180
+ text = "#{menu_item}\n\n#{following_section}:"
181
+ menu.choice(text) do
169
182
  account.status = next_status
170
183
  end
171
184
  end
172
185
 
173
- def test_connection(menu)
174
- menu.choice(I18n.t("setup.account.test_connection")) do
175
- result = Setup::ConnectionTester.new(account).test
176
- Kernel.puts result
177
- highline.ask I18n.t("setup.account.press_key")
178
- end
179
- end
180
-
181
186
  def delete_account(menu)
182
- menu.choice(I18n.t("setup.account.delete")) do
187
+ menu_item = I18n.t("setup.account.delete")
188
+ following_section = I18n.t("setup.account.other_actions")
189
+ text = "#{menu_item}\n\n#{following_section}:"
190
+ menu.choice(text) do
183
191
  if highline.agree(I18n.t("setup.account.delete_confirm"))
184
192
  account.mark_for_deletion
185
193
  throw :done
186
194
  end
187
195
  end
188
196
  end
197
+
198
+ def show_help(menu)
199
+ menu.choice(I18n.t("setup.account.help")) do
200
+ Kernel.puts I18n.t("setup.account.help_text")
201
+ highline.ask I18n.t("setup.press_key")
202
+ end
203
+ end
189
204
  end
190
205
  end
@@ -16,13 +16,13 @@ module Imap::Backup
16
16
  # @return [void]
17
17
  def run
18
18
  if client.nil?
19
- highline.ask I18n.t("setup.folder_chooser.press_key")
19
+ highline.ask I18n.t("setup.press_key")
20
20
  return
21
21
  end
22
22
 
23
23
  if folder_names.empty?
24
24
  Logger.logger.warn I18n.t("setup.folder_chooser.unable_to_get_folder_list")
25
- highline.ask I18n.t("setup.folder_chooser.press_key")
25
+ highline.ask I18n.t("setup.press_key")
26
26
  return
27
27
  end
28
28
 
@@ -49,6 +49,7 @@ module Imap::Backup
49
49
  MENU
50
50
  menu.index = :number
51
51
  add_folders menu
52
+ show_help menu
52
53
  menu.choice(I18n.t("setup.folder_chooser.return_to_account_menu")) { throw :done }
53
54
  menu.hidden("quit") { throw :done }
54
55
  end
@@ -63,6 +64,13 @@ module Imap::Backup
63
64
  end
64
65
  end
65
66
 
67
+ def show_help(menu)
68
+ menu.choice(I18n.t("setup.folder_chooser.help")) do
69
+ Kernel.puts I18n.t("setup.folder_chooser.help_text")
70
+ highline.ask I18n.t("setup.press_key")
71
+ end
72
+ end
73
+
66
74
  def selected?(folder_name)
67
75
  account_folders.find { |f| f == folder_name }
68
76
  end
@@ -85,7 +93,7 @@ module Imap::Backup
85
93
 
86
94
  Kernel.puts I18n.t("setup.folder_chooser.folders_removed", folders: removed.join(", "))
87
95
 
88
- highline.ask I18n.t("setup.folder_chooser.press_key")
96
+ highline.ask I18n.t("setup.press_key")
89
97
  end
90
98
 
91
99
  def toggle_selection(folder_name)
@@ -42,7 +42,7 @@ class Imap::Backup::Setup::GlobalOptions
42
42
  end
43
43
  end
44
44
  show_help menu
45
- menu.choice(I18n.t("setup.global_options.download_strategy_chooser.return_to_main_menu")) do
45
+ menu.choice(I18n.t("setup.return_to_main_menu")) do
46
46
  throw :done
47
47
  end
48
48
  menu.hidden("quit") { throw :done }
@@ -52,7 +52,7 @@ class Imap::Backup::Setup::GlobalOptions
52
52
  def show_help(menu)
53
53
  menu.choice(I18n.t("setup.global_options.download_strategy_chooser.help")) do
54
54
  Kernel.puts I18n.t("setup.global_options.download_strategy_chooser.help_text")
55
- highline.ask I18n.t("setup.global_options.download_strategy_chooser.press_key")
55
+ highline.ask I18n.t("setup.press_key")
56
56
  end
57
57
  end
58
58
 
@@ -35,10 +35,11 @@ module Imap::Backup
35
35
 
36
36
  #{I18n.t('setup.global_options.description')}
37
37
 
38
- #{I18n.t('setup.global_options.choose_action')}
38
+ #{I18n.t('setup.choose_action')}
39
39
  MENU
40
40
  change_download_strategy menu
41
- menu.choice(I18n.t("setup.global_options.return_to_main_menu")) { throw :done }
41
+ show_help menu
42
+ menu.choice(I18n.t("setup.return_to_main_menu")) { throw :done }
42
43
  menu.hidden("quit") { throw :done }
43
44
  end
44
45
  end
@@ -57,6 +58,13 @@ module Imap::Backup
57
58
  end
58
59
  end
59
60
 
61
+ def show_help(menu)
62
+ menu.choice(I18n.t("setup.global_options.help")) do
63
+ Kernel.puts I18n.t("setup.global_options.help_text")
64
+ highline.ask I18n.t("setup.press_key")
65
+ end
66
+ end
67
+
60
68
  def highline
61
69
  Imap::Backup::Setup.highline
62
70
  end
@@ -44,11 +44,12 @@ module Imap::Backup
44
44
  menu.header = <<~MENU.chomp
45
45
  #{helpers.title_prefix} #{I18n.t('setup.main_menu.title')}
46
46
 
47
- #{I18n.translate('setup.main_menu.choose_action')}
47
+ #{I18n.t('setup.choose_action')}
48
48
  MENU
49
49
  account_items menu
50
50
  add_account_item menu
51
51
  modify_global_options menu
52
+ show_help menu
52
53
  if config.modified?
53
54
  menu.choice(I18n.t("setup.main_menu.save_and_exit")) do
54
55
  config.save
@@ -88,6 +89,13 @@ module Imap::Backup
88
89
  end
89
90
  end
90
91
 
92
+ def show_help(menu)
93
+ menu.choice(I18n.t("setup.main_menu.help")) do
94
+ Kernel.puts I18n.t("setup.main_menu.help_text")
95
+ self.class.highline.ask I18n.t("setup.press_key")
96
+ end
97
+ end
98
+
91
99
  def default_account_config(username)
92
100
  Imap::Backup::Account.new(
93
101
  username: username,
@@ -20,8 +20,10 @@ module Imap::Backup
20
20
  private
21
21
 
22
22
  def locale_files
23
- locales_path = File.expand_path("locales", __dir__)
24
- Dir.glob(File.join(locales_path, "*.yml"))
23
+ @locale_files ||= begin
24
+ path = File.expand_path("locales", __dir__)
25
+ Dir.glob(File.join(path, "*.yml"))
26
+ end
25
27
  end
26
28
 
27
29
  def detect_locale
@@ -40,9 +42,10 @@ module Imap::Backup
40
42
  end
41
43
 
42
44
  def available_locales
43
- locale_files.map do |file|
44
- File.basename(file, ".yml").to_sym
45
- end
45
+ @available_locales ||=
46
+ locale_files.map do |file|
47
+ File.basename(file, ".yml").to_sym
48
+ end
46
49
  end
47
50
  end
48
51
  end
@@ -4,7 +4,7 @@ module Imap::Backup
4
4
  # @private
5
5
  MAJOR = 16
6
6
  # @private
7
- MINOR = 5
7
+ MINOR = 6
8
8
  # @private
9
9
  REVISION = 0
10
10
  # @private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.5.0
4
+ version: 16.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
@@ -253,6 +253,7 @@ files:
253
253
  - lib/imap/backup/file_mode.rb
254
254
  - lib/imap/backup/flag_refresher.rb
255
255
  - lib/imap/backup/local_only_message_deleter.rb
256
+ - lib/imap/backup/locales/de.yml
256
257
  - lib/imap/backup/locales/en.yml
257
258
  - lib/imap/backup/locales/it.yml
258
259
  - lib/imap/backup/lockfile.rb