diff --git a/CHANGELOG.md b/CHANGELOG.md index 57b87c71..f62dbd72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +# 2.1.0 - 2025-07-18 + +### Added + +- Open links in the markdown editor in read-only mode + +### Fixed + +- JSON exports missing the note type +- JSON imports failing or creating corrupted notes +- Missing localizations causing crashes +- Force the editor to be writable when adding a new note +- Undo/Redo in the rich text editor +- Links color in the rich text editor +- Empty notes not being removed + # 2.0.0 - 2025-05-18 ### Added diff --git a/fastlane/metadata/android/cs-CZ/full_description.yaml b/fastlane/metadata/android/cs-CZ/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/de-DE/full_description.yaml b/fastlane/metadata/android/de-DE/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/en-US/changelogs/290.txt b/fastlane/metadata/android/en-US/changelogs/290.txt new file mode 100644 index 00000000..46960aa5 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/290.txt @@ -0,0 +1,11 @@ +ADDED +- Open links in the markdown editor in read-only mode + +FIXED +- JSON exports missing the note type +- JSON imports failing or creating corrupted notes +- Missing localizations causing crashes +- Force the editor to be writable when adding a new note +- Undo/Redo in the rich text editor +- Links color in the rich text editor +- Empty notes not being removed \ No newline at end of file diff --git a/fastlane/metadata/android/es-ES/full_description.yaml b/fastlane/metadata/android/es-ES/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/fr-FR/changelogs/290.txt b/fastlane/metadata/android/fr-FR/changelogs/290.txt new file mode 100644 index 00000000..a889359b --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/290.txt @@ -0,0 +1,11 @@ +AJOUTÉ +- Ouverture des liens dans l'éditeur markdown en mode lecture seule + +CORRIGÉ +- Type de note manquant dans les exports JSON +- Imports JSON échouant ou créant des notes corrompues +- Localisations manquantes provoquant des plantages +- Forcer l'éditeur à être en écriture lors de l'ajout d'une nouvelle note +- Annuler/Rétablir dans l'éditeur de texte riche +- Couleur des liens dans l'éditeur de texte riche +- Notes vides non supprimées \ No newline at end of file diff --git a/fastlane/metadata/android/he-IL/full_description.txt b/fastlane/metadata/android/he-IL/full_description.txt new file mode 100644 index 00000000..3b077880 --- /dev/null +++ b/fastlane/metadata/android/he-IL/full_description.txt @@ -0,0 +1 @@ +

Material Notes is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.

Take notes

Organize

Categorize

Share & backup

Protect

Customize

\ No newline at end of file diff --git a/fastlane/metadata/android/he-IL/full_description.yaml b/fastlane/metadata/android/he-IL/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/he-IL/short_description.txt b/fastlane/metadata/android/he-IL/short_description.txt new file mode 100644 index 00000000..029fe64e --- /dev/null +++ b/fastlane/metadata/android/he-IL/short_description.txt @@ -0,0 +1 @@ +Simple, local, material design notes \ No newline at end of file diff --git a/fastlane/metadata/android/he-IL/title.txt b/fastlane/metadata/android/he-IL/title.txt new file mode 100644 index 00000000..7e3764fc --- /dev/null +++ b/fastlane/metadata/android/he-IL/title.txt @@ -0,0 +1 @@ +Material Notes \ No newline at end of file diff --git a/fastlane/metadata/android/hi-IN/full_description.yaml b/fastlane/metadata/android/hi-IN/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/id/full_description.yaml b/fastlane/metadata/android/id/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/it-IT/full_description.yaml b/fastlane/metadata/android/it-IT/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/pl-PL/full_description.yaml b/fastlane/metadata/android/pl-PL/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/pt-PT/full_description.yaml b/fastlane/metadata/android/pt-PT/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/ru-RU/full_description.txt b/fastlane/metadata/android/ru-RU/full_description.txt index 3b077880..8fce4063 100644 --- a/fastlane/metadata/android/ru-RU/full_description.txt +++ b/fastlane/metadata/android/ru-RU/full_description.txt @@ -1 +1 @@ -

Material Notes is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.

Take notes

Organize

Categorize

Share & backup

Protect

Customize

\ No newline at end of file +

Material Notes - это приложение для создания текстовых заметок, ориентированное на простоту. Оно поддерживает дизайн Material Design. Оно хранит заметки локально и не имеет доступа к Интернету, поэтому доступ к заметкам можете получить только вы.

Делайте заметки

Упорядочить

Классифицировать

Общий доступ и резервное копирование

Защита

Настройка

\ No newline at end of file diff --git a/fastlane/metadata/android/ru-RU/full_description.yaml b/fastlane/metadata/android/ru-RU/full_description.yaml new file mode 100644 index 00000000..61b857d5 --- /dev/null +++ b/fastlane/metadata/android/ru-RU/full_description.yaml @@ -0,0 +1,63 @@ +full_description: | +

+ Material Notes - это приложение для создания текстовых заметок, ориентированное на простоту. Оно поддерживает дизайн Material Design. + Оно хранит заметки локально и не имеет доступа к Интернету, поэтому доступ к заметкам можете получить только вы. +

+ +

+ Делайте заметки +

+ + +

+ Упорядочить +

+ + +

+ Классифицировать +

+ + +

+ Общий доступ и резервное копирование +

+ + +

+ Защита +

+ + +

+ Настройка +

+ diff --git a/fastlane/metadata/android/tr-TR/full_description.yaml b/fastlane/metadata/android/tr-TR/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/zh-CN/full_description.yaml b/fastlane/metadata/android/zh-CN/full_description.yaml new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/zh-TW/full_description.txt b/fastlane/metadata/android/zh-TW/full_description.txt index 3b077880..d3455069 100644 --- a/fastlane/metadata/android/zh-TW/full_description.txt +++ b/fastlane/metadata/android/zh-TW/full_description.txt @@ -1 +1 @@ -

Material Notes is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.

Take notes

Organize

Categorize

Share & backup

Protect

Customize

\ No newline at end of file +

Material Notes 乃一款以文字為本的筆記應用程式,秉承簡約之風,擁抱 Material 設計。 筆記於本機儲存,並不索取任何網際網路權限,只有您可以存取筆記。

記事

整理

分類

分享與備份

保護

自訂

\ No newline at end of file diff --git a/fastlane/metadata/android/zh-TW/full_description.yaml b/fastlane/metadata/android/zh-TW/full_description.yaml new file mode 100644 index 00000000..b1298db9 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/full_description.yaml @@ -0,0 +1,64 @@ +full_description: | +

+ Material Notes 乃一款以文字為本的筆記應用程式,秉承簡約之風,擁抱 Material 設計。 + 筆記於本機儲存,並不索取任何網際網路權限,只有您可以存取筆記。 +

+ +

+ 記事 +

+ + +

+ 整理 +

+ + +

+ 分類 +

+ + +

+ 分享與備份 +

+ + +

+ 保護 +

+ + +

+ 自訂 +

+ diff --git a/lib/app.dart b/lib/app.dart index 878fbb2c..9af2a2a5 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -15,6 +15,7 @@ import 'common/preferences/preference_key.dart'; import 'common/system_utils.dart'; import 'common/ui/theme_utils.dart'; import 'l10n/app_localizations/app_localizations.g.dart'; +import 'l10n/fallback_localization_delegate.dart'; import 'navigation/router.dart'; import 'providers/labels/labels_list/labels_list_provider.dart'; import 'providers/labels/labels_navigation/labels_navigation_provider.dart'; @@ -139,8 +140,8 @@ class _AppState extends ConsumerState with AfterLayoutMixin { themeMode: themeMode, localizationsDelegates: [ ...AppLocalizations.localizationsDelegates, - ChecklistLocalizations.delegate, - FleatherLocalizations.delegate, + FallbackLocalizationDelegate(target: ChecklistLocalizations.delegate), + FallbackLocalizationDelegate(target: FleatherLocalizations.delegate), ], supportedLocales: SupportedLanguage.locales, locale: SystemUtils().appLocale, diff --git a/lib/common/enums/supported_language.dart b/lib/common/enums/supported_language.dart index 9820cd0c..600a17a2 100644 --- a/lib/common/enums/supported_language.dart +++ b/lib/common/enums/supported_language.dart @@ -17,13 +17,13 @@ enum SupportedLanguage { fr(Locale('fr'), 1), /// German. - de(Locale('de'), .79), + de(Locale('de'), .85), /// Hindi. hi(Locale('hi'), .52), /// Italian. - it(Locale('it'), .61), + it(Locale('it'), .86), /// Polish. pl(Locale('pl'), .37), @@ -32,7 +32,7 @@ enum SupportedLanguage { pt(Locale('pt'), .54), /// Russian. - ru(Locale('ru'), .61), + ru(Locale('ru'), .78), /// Turkish. tr(Locale('tr'), .48), diff --git a/lib/l10n/fallback_localization_delegate.dart b/lib/l10n/fallback_localization_delegate.dart new file mode 100644 index 00000000..3524ea42 --- /dev/null +++ b/lib/l10n/fallback_localization_delegate.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; + +/// Localization delegate with a fallback. +class FallbackLocalizationDelegate extends LocalizationsDelegate { + /// The fallback locale. + final Locale _fallbackLocale = Locale('en'); + + /// The target locale. + final LocalizationsDelegate target; + + /// Localization delegate of the [target] locale that falls back to `en` if the localizations are not available. + FallbackLocalizationDelegate({required this.target}); + + @override + bool isSupported(Locale locale) => true; + + @override + Future load(Locale locale) async { + try { + return await target.load(locale); + } catch (e) { + return await target.load(_fallbackLocale); + } + } + + @override + bool shouldReload(covariant LocalizationsDelegate old) => false; +} diff --git a/lib/l10n/translations/app_de.arb b/lib/l10n/translations/app_de.arb index d6787c6f..be5ec269 100644 --- a/lib/l10n/translations/app_de.arb +++ b/lib/l10n/translations/app_de.arb @@ -547,7 +547,7 @@ "@settings_auto_export_frequency": { "description": "Title of the settings tile to choose the frequency of the automatic exports." }, - "settings_auto_export_frequency_value": "Alle {frequency, select, 1{day} 7{week} 14{2 weeks} 30{month} other{}}", + "settings_auto_export_frequency_value": "{frequency, select, 1{Jeden Tag} 7{Jede Woche} 14{Jede 2 Wochen} 30{Jeden Monat} other{}}", "@settings_auto_export_frequency_value": { "description": "Frequency of the automatic exports.", "placeholders": { @@ -565,7 +565,7 @@ "@settings_auto_export_encryption": { "description": "Title of the settings tile to enable the encryption of the automatic exports." }, - "settings_auto_export_encryption_description": "Verschlüssele den Titel und den Inhalt er Notizen mit einem Passwort", + "settings_auto_export_encryption_description": "Verschlüssele den Titel und den Inhalt der Notizen mit einem Passwort", "@settings_auto_export_encryption_description": { "description": "Description of the settings tile to enable the encryption of the automatic exports." }, @@ -609,14 +609,36 @@ "@settings_application_lock_title": { "description": "Title of the setting tile to toggle whether the application is locked." }, + "settings_application_lock_description": "Sperre die App und Authentifizierung des Gerätes zum Entsperren anfordern", + "@settings_application_lock_description": { + "description": "Description of the setting tile to toggle whether the application is locked." + }, "settings_application_lock_delay_title": "Sperrverzögerung", "@settings_application_lock_delay_title": { "description": "Title of the setting tile to choose after which amount of time the application locks itself after it was moved to the background." }, + "settings_application_lock_delay_description": "Zeit, nach der die App gesperrt wird, nachdem sie minimiert wurde", + "@settings_application_lock_delay_description": { + "description": "Description of the setting tile to choose after which amount of time the application locks itself after it was moved to the background." + }, + "settings_lock_delay_value": "{delay, select, 0{Sofort} 3{Nach 3 Sekunden} 5{Nach 5 Sekunden} 10{Nach 10 Sekunden} 30{Nach 30 Sekunden} 60{Nach einer Minute} 120{Nach 2 Minuten} 300{} other{Nie}}", + "@settings_lock_delay_value": { + "description": "Value of the setting tile to choose after which amount of time the application/note/label locks itself after the application was moved to the background.", + "placeholders": { + "delay": { + "type": "String", + "description": "Delay in seconds." + } + } + }, "settings_note_lock_title": "Notizen Sperre", "@settings_note_lock_title": { "description": "Title of the setting tile to toggle whether the notes can be locked." }, + "settings_note_lock_description": "Sperre die Notiz und fordere eine Authentifizierung des Gerätes an, um sie zu sehen und zu bearbeiten", + "@settings_note_lock_description": { + "description": "Description of the setting tile to toggle whether the notes can be locked." + }, "settings_accessibility": "Barrierefreiheit", "@settings_accessibility": { "description": "Title of the settings page regarding the accessibility" @@ -769,6 +791,14 @@ "@settings_about_section_donate": { "description": "Title of the settings section to donate." }, + "settings_donate_kofi": "Ko-fi", + "@settings_donate_kofi": { + "description": "Title of the settings tile to donate via Ko-fi." + }, + "settings_donate_paypal": "PayPal", + "@settings_donate_paypal": { + "description": "Title of the settings tile to donate via PayPal." + }, "hint_title": "Titel", "@hint_title": { "description": "Hint for the text field of the title of the notes." @@ -981,6 +1011,10 @@ "@placeholder_labels": { "description": "Placeholder on the tags page when there are no tags." }, + "placeholder_archives": "Keine archivierten Notizen", + "@placeholder_archives": { + "description": "Placeholder on the archives notes page when there are no archived notes." + }, "placeholder_bin": "Keine gelöschten Notizen", "@placeholder_bin": { "description": "Placeholder on the bin page when there are no deleted notes." @@ -989,6 +1023,10 @@ "@action_disabled": { "description": "Swipe action that is disabled in the settings." }, + "action_pin_unpin": "Anpinnen / Pin entfernen", + "@action_pin_unpin": { + "description": "Swipe action to pin or unpin a note." + }, "action_pin": "Anheften", "@action_pin": { "description": "Swipe or menu action to pin a note." @@ -1011,6 +1049,10 @@ } } }, + "action_archive": "Archivieren", + "@action_archive": { + "description": "Swipe or menu action to archive a note (moving it to the archives)." + }, "action_delete": "Löschen", "@action_delete": { "description": "Swipe or menu action to delete a note (moving it to the bin)." @@ -1055,6 +1097,10 @@ "@about_time_at": { "description": "Preposition shown between the date and the time in the about dialog (example: 'January 5, 2024 at 5:15 PM')." }, + "action_labels_show_hide": "Zeigen / Verstecken", + "@action_labels_show_hide": { + "description": "Swipe action to show or hide a tag." + }, "action_labels_toggle_pins": "Fixierung umschalten", "@action_labels_toggle_pins": { "description": "Menu action to toggle whether the selected tags are pinned." @@ -1083,6 +1129,10 @@ "@filter_labels_pinned": { "description": "Filter chip in the tags page to show only the pinned tags." }, + "snack_bar_authentication_failed": "Die Authentifizierung ist fehlgeschlagen, bitte versuche es noch einmal.", + "@snack_bar_authentication_failed": { + "description": "Snack bar informing that the authentication on the lock screen has failed." + }, "snack_bar_archived": "Die {count, plural, one{Notiz wurde} other{Notizen wurden}} archiviert", "@snack_bar_archived": { "description": "Snack bar informing that the note was archived.", @@ -1103,6 +1153,16 @@ } } }, + "snack_bar_deleted": "Die {count, plural, one{Notiz wurde} other{Notizen wurden}} entfernt", + "@snack_bar_deleted": { + "description": "Snack bar informing that the note was deleted.", + "placeholders": { + "count": { + "description": "Number of notes that were deleted.", + "type": "int" + } + } + }, "snack_bar_import_success": "Das Backup wurde erfolgreich importiert.", "@snack_bar_import_success": { "description": "Snack bar informing that the backup was successfully imported." @@ -1142,5 +1202,21 @@ "note_type_rich_text": "Formatierter Text", "@note_type_rich_text": { "description": "Note with rich text." + }, + "rich_text_editor_toolbar_dialog_color_title_background": "Hintergrundfarbe", + "@rich_text_editor_toolbar_dialog_color_title_background": { + "description": "Title of the dialog to choose the background color of the text in the rich text editor." + }, + "rich_text_editor_toolbar_dialog_color_description": "Vordergrundfarbe", + "@rich_text_editor_toolbar_dialog_color_description": { + "description": "Description of the dialog to choose the foreground/background color of the text." + }, + "toolbar_style_one_row_simple_title": "Eine Zeile (einfache Optionen)", + "@toolbar_style_one_row_simple_title": { + "description": "Title for the style of the rich text editor toolbar with one row and only simple formatting options." + }, + "toolbar_style_one_row_simple_description": "Nur einfache Optionen in einer Zeile", + "@toolbar_style_one_row_simple_description": { + "description": "Description for the style of the rich text editor toolbar with one row and only simple formatting options." } } \ No newline at end of file diff --git a/lib/l10n/translations/app_it.arb b/lib/l10n/translations/app_it.arb index f06f1f1f..51b8a2a0 100644 --- a/lib/l10n/translations/app_it.arb +++ b/lib/l10n/translations/app_it.arb @@ -65,6 +65,10 @@ "@navigation_manage_labels_page": { "description": "Title of the page to manage the tags." }, + "navigation_archives": "Archivio", + "@navigation_archives": { + "description": "Title of the archives page." + }, "navigation_bin": "Cestino", "@navigation_bin": { "description": "Title of the bin page." @@ -77,6 +81,10 @@ "@navigation_settings_appearance": { "description": "Title of the settings page regarding the application's appearance." }, + "navigation_settings_notes_types": "Tipi di note", + "@navigation_settings_notes_types": { + "description": "Title of the settings page regarding the notes types." + }, "navigation_settings_notes_tiles": "Riquadri delle note", "@navigation_settings_notes_tiles": { "description": "Title of the settings page regarding the notes tiles appearance." @@ -97,10 +105,18 @@ "@navigation_settings_backup": { "description": "Title of the settings page regarding the backup functionality." }, + "navigation_settings_security": "Sicurezza", + "@navigation_settings_security": { + "description": "Title of the settings page regarding the security." + }, "navigation_settings_accessibility": "Accessibilità", "@navigation_settings_accessibility": { "description": "Title of the settings page regarding the accessibility." }, + "navigation_settings_help": "Aiuto", + "@navigation_settings_help": { + "description": "Title of the settings page to receive help." + }, "navigation_settings_about": "Info su", "@navigation_settings_about": { "description": "Title of the settings page regarding the information about the application." @@ -217,6 +233,14 @@ "@settings_show_separators_description": { "description": "Description of the setting tile to show the separators between the notes tiles." }, + "settings_show_note_type_icon": "Mostra icona del tipo", + "@settings_show_note_type_icon": { + "description": "Title of the setting tile to show the icon of the type of the note." + }, + "settings_show_note_type_icon_description": "Mostra l''icona del tipo della nota", + "@settings_show_note_type_icon_description": { + "description": "Description of the setting tile to show the icon of the type of the note." + }, "settings_show_titles_only": "Solo titoli", "@settings_show_titles_only": { "description": "Title of the setting tile to only show the titles of the notes in the notes tiles." @@ -245,6 +269,10 @@ "@settings_behavior": { "description": "Title of the settings page regarding the application's behavior." }, + "settings_behavior_description": "Conferme, azioni di scorrimento", + "@settings_behavior_description": { + "description": "Description of the behavior settings page." + }, "settings_behavior_application": "Applicazione", "@settings_behavior_application": { "description": "Title of the sub-section regarding the application under the behavior settings." @@ -269,10 +297,32 @@ "@settings_confirmations_title_all": { "description": "Value of the setting to always show a confirmation dialog when performing an action on a note." }, + "settings_auto_remove_from_bin_title": "Rimozione automatica", + "@settings_auto_remove_from_bin_title": { + "description": "Title of the setting tile to automatically remove notes from the bin after a certain delay." + }, + "settings_auto_remove_from_bin_description": "Rimuove automaticamente le note dal cestino", + "@settings_auto_remove_from_bin_description": { + "description": "Description of the setting tile to automatically remove notes from the bin after a certain delay." + }, + "settings_auto_remove_from_bin_value": "{delay, select, 7{Dopo 1 settimana} 14{Dopo 2 settimane} 30{Dopo 1 mese} 90{Dopo 3 mesi} 180{Dopo 6 mesi} 365{Dopo 1 anno} other{Mai}}", + "@settings_auto_remove_from_bin_value": { + "description": "Value of the setting tile to choose after which amount of time the application/note/label locks itself after the application was moved to the background.", + "placeholders": { + "delay": { + "type": "String", + "description": "Delay in days." + } + } + }, "settings_behavior_swipe_actions": "Azioni di scorrimento", "@settings_behavior_swipe_actions": { "description": "Title of the section regarding the swipe actions on the notes tiles under the behavior settings." }, + "settings_behavior_swipe_actions_archives": "Azioni di scorrimento (Archivio)", + "@settings_behavior_swipe_actions_archives": { + "description": "Title of the section regarding the swipe actions on the notes tiles in the archives under the behavior settings." + }, "settings_behavior_swipe_actions_bin": "Azioni di scorrimento (nel cestino)", "@settings_behavior_swipe_actions_bin": { "description": "Title of the section regarding the swipe actions on the notes tiles in the bin under the behavior settings." @@ -301,10 +351,42 @@ "@settings_bin_swipe_action_left_description": { "description": "Description of the setting tile to choose which action to trigger when a left swipe is performed on a note tile in the bin." }, + "settings_page_notes_types": "Tipi di note", + "@settings_page_notes_types": { + "description": "Title of the settings page regarding the notes types." + }, + "settings_page_notes_types_description": "Tipi da utilizzare, testo avanzato", + "@settings_page_notes_types_description": { + "description": "Description of the settings page regarding the notes types." + }, + "settings_section_types_to_use": "Tipi da utilizzare", + "@settings_section_types_to_use": { + "description": "Title of the settings section regarding the notes types to use." + }, + "settings_available_notes_types": "Tipi di note disponibili", + "@settings_available_notes_types": { + "description": "Title of the setting tile to choose the available notes types." + }, + "settings_available_notes_types_description": "La lista di tipi di note che posso essere creati con il pulsante \"+\" dalla pagina delle note. Quando rimuovi un tipo, le note esistenti di quel tipo non saranno rimosse e rimarranno utilizzabili", + "@settings_available_notes_types_description": { + "description": "Description of the setting tile to choose the available notes types." + }, + "settings_available_default_share_type": "Tipo da condivisione", + "@settings_available_default_share_type": { + "description": "Title of the setting tile to choose the default note type to use when creating a note from a share action." + }, + "settings_available_default_share_type_description": "Il tipo predefinito di nota da utilizzare quando si crea una nota da una condivisione. Può essere un tipo non disponibile dal tasto \"+\"", + "@settings_available_default_share_type_description": { + "description": "Description of the setting tile to choose the default note type to use when creating a note from a share action." + }, "settings_editor": "Editor", "@settings_editor": { "description": "Title of the settings page regarding the notes content editor." }, + "settings_editor_description": "Comportamenti", + "@settings_editor_description": { + "description": "Description of the editor settings page." + }, "settings_editor_behavior": "Comportamenti", "@settings_editor_behavior": { "description": "Title of the settings section regarding the behavior of the editor" @@ -337,6 +419,14 @@ "@settings_editor_appearance": { "description": "Title of the settings section regarding the appearance of the editor" }, + "settings_toolbar_style_title": "Stile barra degli strumenti", + "@settings_toolbar_style_title": { + "description": "Title of the setting tile to choose the toolbar style." + }, + "settings_toolbar_style_description": "Stile della barra degli strumenti dell''editor di testo avanzato", + "@settings_toolbar_style_description": { + "description": "Description of the setting tile to choose the toolbar style." + }, "settings_use_paragraph_spacing": "Spaziatura dei paragrafi", "@settings_use_paragraph_spacing": { "description": "Title of the setting tile to enable the spacing between paragraphs in the notes content." @@ -381,6 +471,26 @@ "@settings_show_labels_editor_description": { "description": "Description of the setting tile to show the tags in the editor." }, + "settings_labels_section_behavior": "Comportamento", + "@settings_labels_section_behavior": { + "description": "Title of the settings section regarding the behavior of the tags." + }, + "settings_labels_swipe_action_right": "Azione di scorrimento a destra", + "@settings_labels_swipe_action_right": { + "description": "Title of the setting tile to choose which action to trigger when a right swapping a label tile." + }, + "settings_labels_swipe_action_right_description": "Azione che viene eseguita dopo uno scorrimento verso destra su una nota", + "@settings_labels_swipe_action_right_description": { + "description": "Description of the setting tile to choose which action to trigger when a right swipe is performed on a label tile." + }, + "settings_labels_swipe_action_left": "Azione di scorrimento a sinistra", + "@settings_labels_swipe_action_left": { + "description": "Title of the setting tile to choose which action to trigger when a left swapping a label tile." + }, + "settings_labels_swipe_action_left_description": "Azione che viene eseguita dopo uno scorrimento verso sinistra su una nota", + "@settings_labels_swipe_action_left_description": { + "description": "Description of the setting tile to choose which action to trigger when a left swipe is performed on a label tile." + }, "settings_backup": "Backup", "@settings_backup": { "description": "Title of the settings page regarding the backup functionality." @@ -409,10 +519,18 @@ "@settings_export_json": { "description": "Title of the setting tile to manually export the notes as JSON." }, + "settings_export_json_description": "Esposta immediatamente tutte le note, le etichette e le impostazioni in un file JSON che può essere importato nuovamente", + "@settings_export_json_description": { + "description": "Description of the setting tile to manually export the notes as JSON." + }, "settings_export_markdown": "Esporta come Markdown", "@settings_export_markdown": { "description": "Title of the setting tile to manually export the notes as Markdown." }, + "settings_export_markdown_description": "Esporta immediatamente tutte le note in un file Markdown", + "@settings_export_markdown_description": { + "description": "Description of the setting tile to manually export the notes as Markdown." + }, "settings_backup_auto_export": "Esportazione automatica", "@settings_backup_auto_export": { "description": "Title of the settings section regarding the automatic export of the notes." @@ -421,10 +539,24 @@ "@settings_auto_export": { "description": "Title of the settings tile to enable the automatic export of the notes." }, + "settings_auto_export_description": "Esposta automaticamente tutte le note, le etichette e le impostazioni in un file JSON che può essere importato nuovamente", + "@settings_auto_export_description": { + "description": "Description of the settings tile to enable the automatic export." + }, "settings_auto_export_frequency": "Frequenza", "@settings_auto_export_frequency": { "description": "Title of the settings tile to choose the frequency of the automatic exports." }, + "settings_auto_export_frequency_value": "Ogni {frequency, select, 1{giorno} 7{settimana} 14{2 settimane} 30{mese} other{}}", + "@settings_auto_export_frequency_value": { + "description": "Frequency of the automatic exports.", + "placeholders": { + "frequency": { + "description": "Frequency in days.", + "type": "String" + } + } + }, "settings_auto_export_frequency_description": "Frequenza delle esportazioni automatiche", "@settings_auto_export_frequency_description": { "description": "Description of the settings tile to choose the frequency of the automatic exports of the notes." @@ -445,6 +577,26 @@ "@settings_auto_export_directory_description": { "description": "Description of the settings tile to choose the directory where to save the automatic exports." }, + "settings_security": "Sicurezza", + "@settings_security": { + "description": "Title of the settings page regarding the security." + }, + "settings_security_description": "Contrassegno sicurezza, blocco applicazione, blocco note", + "@settings_security_description": { + "description": "Description of the settings page regarding the security." + }, + "settings_security_application": "Applicazione", + "@settings_security_application": { + "description": "Title of the sub-section regarding the application under the security settings." + }, + "settings_security_application_lock": "Blocca applicazione", + "@settings_security_application_lock": { + "description": "Title of the sub-section regarding the application lock under the security settings." + }, + "settings_security_note_lock": "Blocca note", + "@settings_security_note_lock": { + "description": "Title of the sub-section regarding the note lock under the security settings." + }, "settings_flag_secure": "Contrassegna l''applicazione come sicura", "@settings_flag_secure": { "description": "Title of the setting tile to flag the application as secure (hiding it from the recent apps and prevent screenshots from being made)." @@ -453,6 +605,44 @@ "@settings_flag_secure_description": { "description": "Description of the setting tile to flag the application as secure (hiding it from the recent apps and prevent screenshots from being made)." }, + "settings_application_lock_title": "Blocca", + "@settings_application_lock_title": { + "description": "Title of the setting tile to toggle whether the application is locked." + }, + "settings_application_lock_description": "Blocca l'applicazione e richiedi l'autenticazione sul dispositivo per lo sblocco", + "@settings_application_lock_description": { + "description": "Description of the setting tile to toggle whether the application is locked." + }, + "settings_application_lock_delay_title": "Ritardo di blocco", + "@settings_application_lock_delay_title": { + "description": "Title of the setting tile to choose after which amount of time the application locks itself after it was moved to the background." + }, + "settings_application_lock_delay_description": "Tempo dopo il quale l''applicazione si blocca una volta messa in secondo piano", + "@settings_application_lock_delay_description": { + "description": "Description of the setting tile to choose after which amount of time the application locks itself after it was moved to the background." + }, + "settings_lock_delay_value": "{delay, select, 0{Immediatamente} 3{Dopo 3 secondi} 5{Dopo 5 secondi} 10{Dopo 10 secondi} 30{Dopo 30 secondi} 60{Dopo 1 minuto} 120{Dopo 2 minuti} 300{Dopo 5 minuti} other{Mai}}", + "@settings_lock_delay_value": { + "description": "Value of the setting tile to choose after which amount of time the application/note/label locks itself after the application was moved to the background.", + "placeholders": { + "delay": { + "type": "String", + "description": "Delay in seconds." + } + } + }, + "settings_note_lock_title": "Blocca le note", + "@settings_note_lock_title": { + "description": "Title of the setting tile to toggle whether the notes can be locked." + }, + "settings_note_lock_description": "Blocca le note e richiedi l''autenticazione sul dispositivo per visualizzarle e modificarle", + "@settings_note_lock_description": { + "description": "Description of the setting tile to toggle whether the notes can be locked." + }, + "settings_label_lock_title": "Blocca le etichette", + "@settings_label_lock_title": { + "description": "Title of the setting tile to toggle whether the tags can be locked." + }, "settings_accessibility": "Accessibilità", "@settings_accessibility": { "description": "Title of the settings page regarding the accessibility" @@ -613,6 +803,18 @@ "@tooltip_fab_add_note": { "description": "Floating action button in the notes page to add a new note." }, + "tooltip_fab_add_plain_text_note": "Aggiungi una nota in testo semplice", + "@tooltip_fab_add_plain_text_note": { + "description": "Floating action button in the notes page to add a new plain text note." + }, + "tooltip_fab_add_markdown_note": "Aggiungi una nota in Markdown", + "@tooltip_fab_add_markdown_note": { + "description": "Floating action button in the notes page to add a new markdown note." + }, + "tooltip_fab_add_rich_text_note": "Aggiungi una nota in testo avanzato", + "@tooltip_fab_add_rich_text_note": { + "description": "Floating action button in the notes page to add a new rich text note." + }, "tooltip_fab_add_label": "Aggiungi un''etichetta", "@tooltip_fab_add_label": { "description": "Floating action button in the tags page to add a new tag." @@ -657,6 +859,34 @@ "@dialog_add_link": { "description": "Tooltip for the button to validate the dialog to add a link in the note editor." }, + "dialog_archive": "Archivio", + "@dialog_archive": { + "description": "Title of the the dialog to archive one or multiple notes (moving them to the archives), and text for the confirmation button." + }, + "dialog_archive_body": "Vuoi davvero archiviare {count} {count, plural, one{nota} other{note}}?", + "@dialog_archive_body": { + "description": "Text for the dialog to confirm the archival of one or multiple notes.", + "placeholders": { + "count": { + "description": "Number of notes to archive.", + "type": "int" + } + } + }, + "dialog_unarchive": "Ripristina", + "@dialog_unarchive": { + "description": "Title of the the dialog to unarchive one or multiple notes, and text for the confirmation button." + }, + "dialog_unarchive_body": "Vuoi davvero ripristinare {count} {count, plural, one{nota} other{note}}?", + "@dialog_unarchive_body": { + "description": "Text for the dialog to confirm the unarchival of one or multiple notes.", + "placeholders": { + "count": { + "description": "Number of notes to unarchive.", + "type": "int" + } + } + }, "dialog_delete": "Elimina", "@dialog_delete": { "description": "Title of the the dialog to delete one or multiple notes (moving them to the bin), and text for the confirmation button." @@ -781,6 +1011,10 @@ "@placeholder_labels": { "description": "Placeholder on the tags page when there are no tags." }, + "placeholder_archives": "Nessuna nota archiviata", + "@placeholder_archives": { + "description": "Placeholder on the archives notes page when there are no archived notes." + }, "placeholder_bin": "Nessuna nota eliminata", "@placeholder_bin": { "description": "Placeholder on the bin page when there are no deleted notes." @@ -883,6 +1117,46 @@ "@filter_labels_pinned": { "description": "Filter chip in the tags page to show only the pinned tags." }, + "snack_bar_archived": "{count, plural, one{La nota è stata archiviata} other{Le note sono state archiviate}}", + "@snack_bar_archived": { + "description": "Snack bar informing that the note was archived.", + "placeholders": { + "count": { + "description": "Number of notes that were archived.", + "type": "int" + } + } + }, + "snack_bar_unarchived": "{count, plural, one{La nota è stata ripristinata} other{Le note sono state ripristinate}}", + "@snack_bar_unarchived": { + "description": "Snack bar informing that the note was unarchived.", + "placeholders": { + "count": { + "description": "Number of notes that were unarchived.", + "type": "int" + } + } + }, + "snack_bar_deleted": "{count, plural, one{La nota è stata cancellate} other{Le note sono state cancellate}}", + "@snack_bar_deleted": { + "description": "Snack bar informing that the note was deleted.", + "placeholders": { + "count": { + "description": "Number of notes that were deleted.", + "type": "int" + } + } + }, + "snack_bar_restored": "{count, plural, one{La nota è stata ripristinata} other{Le note sono state ripristinate}}", + "@snack_bar_restored": { + "description": "Snack bar informing that the note was restored.", + "placeholders": { + "count": { + "description": "Number of notes that were restored.", + "type": "int" + } + } + }, "snack_bar_import_success": "Il backup è stato importato con successo.", "@snack_bar_import_success": { "description": "Snack bar informing that the backup was successfully imported." diff --git a/lib/l10n/translations/app_ru.arb b/lib/l10n/translations/app_ru.arb index e446c9c5..46e9c3c1 100644 --- a/lib/l10n/translations/app_ru.arb +++ b/lib/l10n/translations/app_ru.arb @@ -65,6 +65,10 @@ "@navigation_manage_labels_page": { "description": "Title of the page to manage the tags." }, + "navigation_archives": "Архив", + "@navigation_archives": { + "description": "Title of the archives page." + }, "navigation_bin": "Корзина", "@navigation_bin": { "description": "Title of the bin page." @@ -77,6 +81,10 @@ "@navigation_settings_appearance": { "description": "Title of the settings page regarding the application's appearance." }, + "navigation_settings_notes_types": "Тип заметки", + "@navigation_settings_notes_types": { + "description": "Title of the settings page regarding the notes types." + }, "navigation_settings_notes_tiles": "Плитки заметок", "@navigation_settings_notes_tiles": { "description": "Title of the settings page regarding the notes tiles appearance." @@ -97,10 +105,18 @@ "@navigation_settings_backup": { "description": "Title of the settings page regarding the backup functionality." }, + "navigation_settings_security": "Безопасность", + "@navigation_settings_security": { + "description": "Title of the settings page regarding the security." + }, "navigation_settings_accessibility": "Специальные возможности", "@navigation_settings_accessibility": { "description": "Title of the settings page regarding the accessibility." }, + "navigation_settings_help": "Помощь", + "@navigation_settings_help": { + "description": "Title of the settings page to receive help." + }, "navigation_settings_about": "О приложении", "@navigation_settings_about": { "description": "Title of the settings page regarding the information about the application." @@ -217,6 +233,14 @@ "@settings_show_separators_description": { "description": "Description of the setting tile to show the separators between the notes tiles." }, + "settings_show_note_type_icon": "Показать тип значка", + "@settings_show_note_type_icon": { + "description": "Title of the setting tile to show the icon of the type of the note." + }, + "settings_show_note_type_icon_description": "Показать иконку типа заметки", + "@settings_show_note_type_icon_description": { + "description": "Description of the setting tile to show the icon of the type of the note." + }, "settings_show_titles_only": "Только заголовки", "@settings_show_titles_only": { "description": "Title of the setting tile to only show the titles of the notes in the notes tiles." @@ -245,6 +269,10 @@ "@settings_behavior": { "description": "Title of the settings page regarding the application's behavior." }, + "settings_behavior_description": "Подтверждать действия свайпом", + "@settings_behavior_description": { + "description": "Description of the behavior settings page." + }, "settings_behavior_application": "Приложение", "@settings_behavior_application": { "description": "Title of the sub-section regarding the application under the behavior settings." @@ -269,10 +297,32 @@ "@settings_confirmations_title_all": { "description": "Value of the setting to always show a confirmation dialog when performing an action on a note." }, + "settings_auto_remove_from_bin_title": "Авто удаление из корзины", + "@settings_auto_remove_from_bin_title": { + "description": "Title of the setting tile to automatically remove notes from the bin after a certain delay." + }, + "settings_auto_remove_from_bin_description": "Авто удаление из корзины", + "@settings_auto_remove_from_bin_description": { + "description": "Description of the setting tile to automatically remove notes from the bin after a certain delay." + }, + "settings_auto_remove_from_bin_value": "{delay, select, 7{Через 1 неделю} 14{Через 2 недели} 30{Через 1 месяц} 90{Через 3 месяца} 180{Через 6 месяцев} 365{Через 1 год} other{Никогда}}", + "@settings_auto_remove_from_bin_value": { + "description": "Value of the setting tile to choose after which amount of time the application/note/label locks itself after the application was moved to the background.", + "placeholders": { + "delay": { + "type": "String", + "description": "Delay in days." + } + } + }, "settings_behavior_swipe_actions": "Действия при свайпе", "@settings_behavior_swipe_actions": { "description": "Title of the section regarding the swipe actions on the notes tiles under the behavior settings." }, + "settings_behavior_swipe_actions_archives": "Действие свайпа (архив)", + "@settings_behavior_swipe_actions_archives": { + "description": "Title of the section regarding the swipe actions on the notes tiles in the archives under the behavior settings." + }, "settings_behavior_swipe_actions_bin": "Действия при свайпе (в корзине)", "@settings_behavior_swipe_actions_bin": { "description": "Title of the section regarding the swipe actions on the notes tiles in the bin under the behavior settings." @@ -301,10 +351,42 @@ "@settings_bin_swipe_action_left_description": { "description": "Description of the setting tile to choose which action to trigger when a left swipe is performed on a note tile in the bin." }, + "settings_page_notes_types": "Типы заметок", + "@settings_page_notes_types": { + "description": "Title of the settings page regarding the notes types." + }, + "settings_page_notes_types_description": "Типы форматирования текста", + "@settings_page_notes_types_description": { + "description": "Description of the settings page regarding the notes types." + }, + "settings_section_types_to_use": "Тип для использования", + "@settings_section_types_to_use": { + "description": "Title of the settings section regarding the notes types to use." + }, + "settings_available_notes_types": "Доступные типы заметок", + "@settings_available_notes_types": { + "description": "Title of the setting tile to choose the available notes types." + }, + "settings_available_notes_types_description": "Список типов заметок, которые можно создать с помощью кнопки «Добавить» на странице заметок. При удалении типа уже существующие заметки с этим типом не удаляются и могут быть использованы в обычном режиме", + "@settings_available_notes_types_description": { + "description": "Description of the setting tile to choose the available notes types." + }, + "settings_available_default_share_type": "Общий ресурс по умолчанию", + "@settings_available_default_share_type": { + "description": "Title of the setting tile to choose the default note type to use when creating a note from a share action." + }, + "settings_available_default_share_type_description": "Тип заметки по умолчанию, используемый при создании заметки из действия «Поделиться». Это может быть тип, недоступный из кнопки «Добавить»", + "@settings_available_default_share_type_description": { + "description": "Description of the setting tile to choose the default note type to use when creating a note from a share action." + }, "settings_editor": "Редактор", "@settings_editor": { "description": "Title of the settings page regarding the notes content editor." }, + "settings_editor_description": "Поведение", + "@settings_editor_description": { + "description": "Description of the editor settings page." + }, "settings_editor_behavior": "Поведение", "@settings_editor_behavior": { "description": "Title of the settings section regarding the behavior of the editor" @@ -337,6 +419,14 @@ "@settings_editor_appearance": { "description": "Title of the settings section regarding the appearance of the editor" }, + "settings_toolbar_style_title": "Стиль панели инструментов", + "@settings_toolbar_style_title": { + "description": "Title of the setting tile to choose the toolbar style." + }, + "settings_toolbar_style_description": "Стиль панели инструментов редактора форматированного текста", + "@settings_toolbar_style_description": { + "description": "Description of the setting tile to choose the toolbar style." + }, "settings_use_paragraph_spacing": "Расстояние между абзацами", "@settings_use_paragraph_spacing": { "description": "Title of the setting tile to enable the spacing between paragraphs in the notes content." @@ -381,6 +471,18 @@ "@settings_show_labels_editor_description": { "description": "Description of the setting tile to show the tags in the editor." }, + "settings_labels_section_behavior": "Поведение", + "@settings_labels_section_behavior": { + "description": "Title of the settings section regarding the behavior of the tags." + }, + "settings_labels_swipe_action_right": "Действие при смахивании вправо", + "@settings_labels_swipe_action_right": { + "description": "Title of the setting tile to choose which action to trigger when a right swapping a label tile." + }, + "settings_labels_swipe_action_left": "Действие при смахивании влево", + "@settings_labels_swipe_action_left": { + "description": "Title of the setting tile to choose which action to trigger when a left swapping a label tile." + }, "settings_backup": "Резервное копирование", "@settings_backup": { "description": "Title of the settings page regarding the backup functionality." @@ -445,6 +547,22 @@ "@settings_auto_export_directory_description": { "description": "Description of the settings tile to choose the directory where to save the automatic exports." }, + "settings_security": "Безопасность", + "@settings_security": { + "description": "Title of the settings page regarding the security." + }, + "settings_security_application": "Приложение", + "@settings_security_application": { + "description": "Title of the sub-section regarding the application under the security settings." + }, + "settings_security_application_lock": "Блокировка приложения", + "@settings_security_application_lock": { + "description": "Title of the sub-section regarding the application lock under the security settings." + }, + "settings_security_note_lock": "Блокировка заметки", + "@settings_security_note_lock": { + "description": "Title of the sub-section regarding the note lock under the security settings." + }, "settings_flag_secure": "Помечать приложение как защищённое", "@settings_flag_secure": { "description": "Title of the setting tile to flag the application as secure (hiding it from the recent apps and prevent screenshots from being made)." @@ -453,6 +571,14 @@ "@settings_flag_secure_description": { "description": "Description of the setting tile to flag the application as secure (hiding it from the recent apps and prevent screenshots from being made)." }, + "settings_application_lock_title": "Блокировать", + "@settings_application_lock_title": { + "description": "Title of the setting tile to toggle whether the application is locked." + }, + "settings_application_lock_delay_title": "Задержка блокировки", + "@settings_application_lock_delay_title": { + "description": "Title of the setting tile to choose after which amount of time the application locks itself after it was moved to the background." + }, "settings_accessibility": "Специальные возможности", "@settings_accessibility": { "description": "Title of the settings page regarding the accessibility" @@ -493,6 +619,10 @@ "@settings_disable_subdued_note_content_preview_description": { "description": "Description of the setting tile to disable the subdued color of the notes content preview text in the notes tiles." }, + "settings_help_section_contact": "Обратная связь", + "@settings_help_section_contact": { + "description": "Title of the settings section regarding how to get in contact." + }, "settings_github_issues": "Сообщить об ошибке или запросить функцию", "@settings_github_issues": { "description": "Title of the settings tile to open the GitHub issues and report a bug or request a feature." @@ -509,10 +639,22 @@ "@settings_github_discussions_description": { "description": "Description of the settings tile to open the GitHub discussions and ask a question." }, + "settings_contact_developer": "Связаться с разработчиком", + "@settings_contact_developer": { + "description": "Title of the settings tile to contact the developer via mail." + }, "settings_get_in_touch_description": "Свяжитесь с разработчиком по почте {email}", "@settings_get_in_touch_description": { "description": "Description of the settings tile to contact the developer via mail." }, + "settings_help": "Помощь", + "@settings_help": { + "description": "Title of the settings page to receive help." + }, + "settings_help_section_logs": "Журналы", + "@settings_help_section_logs": { + "description": "Title of the settings section regarding the logs of the application." + }, "settings_copy_logs": "Скопировать журналы", "@settings_copy_logs": { "description": "Title of the settings tile to copy the logs of the application to the clipboard." @@ -577,10 +719,26 @@ "@settings_licence_description": { "description": "Description of the settings tile to open the license of the application." }, + "settings_about_section_donate": "Отдарить", + "@settings_about_section_donate": { + "description": "Title of the settings section to donate." + }, + "settings_donate_kofi": "Ko-fi", + "@settings_donate_kofi": { + "description": "Title of the settings tile to donate via Ko-fi." + }, + "settings_donate_paypal": "PayPal", + "@settings_donate_paypal": { + "description": "Title of the settings tile to donate via PayPal." + }, "hint_title": "Заголовок", "@hint_title": { "description": "Hint for the text field of the title of the notes." }, + "hint_content": "Заметка", + "@hint_content": { + "description": "Hint for the text field of the content of the notes." + }, "hint_link": "Ссылка", "@hint_link": { "description": "Hint for the link text field in the dialog to add a link in the editor." @@ -613,6 +771,18 @@ "@tooltip_fab_add_note": { "description": "Floating action button in the notes page to add a new note." }, + "tooltip_fab_add_markdown_note": "Добавить Markdown заметку", + "@tooltip_fab_add_markdown_note": { + "description": "Floating action button in the notes page to add a new markdown note." + }, + "tooltip_fab_add_rich_text_note": "Добавить текстовую заметку", + "@tooltip_fab_add_rich_text_note": { + "description": "Floating action button in the notes page to add a new rich text note." + }, + "tooltip_fab_add_checklist_note": "Добавить контрольный список", + "@tooltip_fab_add_checklist_note": { + "description": "Floating action button in the notes page to add a new checklist note." + }, "tooltip_fab_add_label": "Добавить новый тег", "@tooltip_fab_add_label": { "description": "Floating action button in the tags page to add a new tag." @@ -657,6 +827,14 @@ "@dialog_add_link": { "description": "Tooltip for the button to validate the dialog to add a link in the note editor." }, + "dialog_archive": "Архивирование", + "@dialog_archive": { + "description": "Title of the the dialog to archive one or multiple notes (moving them to the archives), and text for the confirmation button." + }, + "dialog_unarchive": "Разархивировать", + "@dialog_unarchive": { + "description": "Title of the the dialog to unarchive one or multiple notes, and text for the confirmation button." + }, "dialog_delete": "Удалить", "@dialog_delete": { "description": "Title of the the dialog to delete one or multiple notes (moving them to the bin), and text for the confirmation button." @@ -789,6 +967,10 @@ "@action_disabled": { "description": "Swipe action that is disabled in the settings." }, + "action_pin_unpin": "Закрепить / Открепить", + "@action_pin_unpin": { + "description": "Swipe action to pin or unpin a note." + }, "action_pin": "Закрепить", "@action_pin": { "description": "Swipe or menu action to pin a note." @@ -797,6 +979,22 @@ "@action_unpin": { "description": "Swipe or menu action to unpin a note." }, + "action_toggle_lock": "Переключить блокировку", + "@action_toggle_lock": { + "description": "Menu action to toggle whether the notes are locked." + }, + "action_lock_unlock": "Блокировать / Разблокировать", + "@action_lock_unlock": { + "description": "Swipe action to lock or unlock a note." + }, + "action_lock": "Блокировать", + "@action_lock": { + "description": "Swipe or menu action to lock a note." + }, + "action_unlock": "Разблокировать", + "@action_unlock": { + "description": "Swipe or menu action to unlock a note." + }, "action_share": "Поделиться", "@action_share": { "description": "Swipe or menu action to share a note." @@ -811,6 +1009,14 @@ } } }, + "action_archive": "Архивировать", + "@action_archive": { + "description": "Swipe or menu action to archive a note (moving it to the archives)." + }, + "action_unarchive": "Разархивировать", + "@action_unarchive": { + "description": "Swipe or menu action to unarchive a note." + }, "action_delete": "Удалить", "@action_delete": { "description": "Swipe or menu action to delete a note (moving it to the bin)." @@ -855,10 +1061,62 @@ "@about_time_at": { "description": "Preposition shown between the date and the time in the about dialog (example: 'January 5, 2024 at 5:15 PM')." }, + "menu_action_select_labels": "Теги", + "@menu_action_select_labels": { + "description": "Menu action to select the tags of a note." + }, + "menu_action_add_labels": "Добавить теги", + "@menu_action_add_labels": { + "description": "Menu action to add tags to multiple notes." + }, + "action_labels_toggle_visibile": "Переключить видимость", + "@action_labels_toggle_visibile": { + "description": "Tooltip for the button to toggle whether the selected tags are visible." + }, + "action_labels_show_hide": "Показать / Скрыть", + "@action_labels_show_hide": { + "description": "Swipe action to show or hide a tag." + }, + "action_labels_show": "Показать", + "@action_labels_show": { + "description": "Menu or swipe action to make tag visible." + }, + "action_labels_hide": "Скрыть", + "@action_labels_hide": { + "description": "Menu or swipe action to hide a tag." + }, "action_labels_toggle_pins": "Закрепить/Открепить", "@action_labels_toggle_pins": { "description": "Menu action to toggle whether the selected tags are pinned." }, + "action_labels_pin_unpin": "Закрепить / Открепить", + "@action_labels_pin_unpin": { + "description": "Swipe action to pin or unpin a tag." + }, + "action_labels_pin": "Закрепить", + "@action_labels_pin": { + "description": "Menu or swipe action to pin a tag." + }, + "action_labels_unpin": "Открепить", + "@action_labels_unpin": { + "description": "Menu or swipe action to unpin a tag." + }, + "action_labels_toggle_lock": "Переключить блокировку", + "@action_labels_toggle_lock": { + "description": "Tooltip for the button to toggle whether the selected tags are locked." + }, + "action_labels_lock_unlock": "Блокировать / Разблокировать", + "@action_labels_lock_unlock": { + "description": "Swipe action to lock or unlock a tag." + }, + "action_labels_lock": "Блокировать", + "@action_labels_lock": { + "description": "Menu or swipe action to lock a tag." + }, + "action_labels_unlock": "Разблокировать", + "@action_labels_unlock": { + "description": "Menu or swipe action to unlock a tag." + }, "action_labels_edit": "Редактировать", "@action_labels_edit": { "description": "Menu or swipe action to edit a tag." @@ -883,6 +1141,14 @@ "@filter_labels_pinned": { "description": "Filter chip in the tags page to show only the pinned tags." }, + "filter_labels_locked": "Заблокирован", + "@filter_labels_locked": { + "description": "Filter chip in the tags page to show only the locked tags." + }, + "snack_bar_authentication_failed": "Аутентификация не удалась, пожалуйста попробуйте сново.", + "@snack_bar_authentication_failed": { + "description": "Snack bar informing that the authentication on the lock screen has failed." + }, "snack_bar_import_success": "Резервная копия была успешно импортирована.", "@snack_bar_import_success": { "description": "Snack bar informing that the backup was successfully imported." @@ -903,6 +1169,18 @@ "@snack_bar_no_labels": { "description": "Snack bar message shown when the user tries to select the tags for a note, but there are no tags available." }, + "quick_action_add_plain_text_note_title": "Добавить простую текстовую заметку", + "@quick_action_add_plain_text_note_title": { + "description": "Title of the home screen action to add a new plain text note." + }, + "quick_action_add_markdown_note_title": "Добавить Markdown заметку", + "@quick_action_add_markdown_note_title": { + "description": "Title of the home screen action to add a new markdown note." + }, + "quick_action_add_checklist_note_title": "Добавить контрольный список", + "@quick_action_add_checklist_note_title": { + "description": "Title of the home screen action to add a new checklist note." + }, "welcome_note_title": "Добро пожаловать в Material Notes!", "@welcome_note_title": { "description": "Title of the welcome note automatically created on the first run of the application." @@ -919,8 +1197,64 @@ "@note_type_plain_text": { "description": "Note with plain text." }, + "note_type_markdown": "Markdown", + "@note_type_markdown": { + "description": "Note with markdown text." + }, "note_type_rich_text": "Rich text", "@note_type_rich_text": { "description": "Note with rich text." + }, + "note_type_checklist": "Контрольный список", + "@note_type_checklist": { + "description": "Note with a checklist." + }, + "lock_page_reason_app": "Разблокировать Material Notes", + "@lock_page_reason_app": { + "description": "Reason for the lock screen of the application to request a system authentication." + }, + "lock_page_reason_note": "Разблокировать эту заметку", + "@lock_page_reason_note": { + "description": "Reason for the lock screen of a locked note to request a system authentication." + }, + "lock_page_reason_action": "Авторизовать это действие", + "@lock_page_reason_action": { + "description": "Reason for the lock screen for a secure action to request a system authentication." + }, + "lock_page_description_app": "Приложение заблокировано.", + "@lock_page_description_app": { + "description": "Description shown in the lock page for the application." + }, + "lock_page_description_note": "Эта заметка заблокирована.", + "@lock_page_description_note": { + "description": "Description shown in the lock page for a locked note." + }, + "lock_page_unlock": "Разблокировать", + "@lock_page_unlock": { + "description": "Button to unlock the lock page by requesting a system authentication." + }, + "rich_text_editor_toolbar_dialog_color_title_foreground": "Основной цвет", + "@rich_text_editor_toolbar_dialog_color_title_foreground": { + "description": "Title of the dialog to choose the foreground color of the text in the rich text editor." + }, + "rich_text_editor_toolbar_dialog_color_title_background": "Цвет фона", + "@rich_text_editor_toolbar_dialog_color_title_background": { + "description": "Title of the dialog to choose the background color of the text in the rich text editor." + }, + "rich_text_editor_toolbar_dialog_color_description": "Основной цвет", + "@rich_text_editor_toolbar_dialog_color_description": { + "description": "Description of the dialog to choose the foreground/background color of the text." + }, + "settings_confirm_before_exiting_title": "Подтвердить перед выходом", + "@settings_confirm_before_exiting_title": { + "description": "Title of the setting tile for whether a confirmation is required before exiting the application." + }, + "settings_confirm_before_exiting_description": "Спрашивать подтверждение перед выходом из приложения", + "@settings_confirm_before_exiting_description": { + "description": "Description of the setting tile for whether a confirmation is required before exiting the application." + }, + "snack_bar_confirm_exiting": "Нажмите Назад еще раз, чтобы выйти из приложения.", + "@snack_bar_confirm_exiting": { + "description": "Snack bar asking the user to confirm exiting the application by pressing back again." } } \ No newline at end of file diff --git a/lib/l10n/translations/app_zh-TW.arb b/lib/l10n/translations/app_zh-TW.arb deleted file mode 100644 index 9e26dfee..00000000 --- a/lib/l10n/translations/app_zh-TW.arb +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/lib/pages/settings/pages/settings_about_page.dart b/lib/pages/settings/pages/settings_about_page.dart index c887265e..2600c0ff 100644 --- a/lib/pages/settings/pages/settings_about_page.dart +++ b/lib/pages/settings/pages/settings_about_page.dart @@ -54,12 +54,11 @@ class SettingsAboutPage extends StatelessWidget { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_about_application, + title: SettingSectionTitle(context.l.settings_about_application), tiles: [ SettingAboutTile( - title: context.l.app_name, - description: 'v$appVersion ($appBuildNumber)', + applicationName: context.l.app_name, + applicationVersion: 'v$appVersion ($appBuildNumber)', applicationIcon: Image.asset(Asset.icon.path, fit: BoxFit.fitWidth, width: Sizes.appIcon.size), applicationLegalese: context.l.settings_licence_description, dialogChildren: [ @@ -70,44 +69,46 @@ class SettingsAboutPage extends StatelessWidget { ], ), SettingTextTile( - icon: Icons.build, - title: context.l.settings_build_mode, - description: SystemUtils().buildMode(context), + icon: SettingTileIcon(Icons.build), + title: Text(context.l.settings_build_mode), + description: Text(SystemUtils().buildMode(context)), ), ], ), SettingSection( - divider: null, - title: context.l.settings_about_links, + title: SettingSectionTitle(context.l.settings_about_links), tiles: [ SettingActionTile( - icon: SimpleIcons.github, - title: context.l.settings_github, - description: context.l.settings_github_description, + icon: SettingTileIcon(SimpleIcons.github), + title: Text(context.l.settings_github), + description: Text(context.l.settings_github_description), onTap: openGitHub, ), SettingActionTile( - icon: SimpleIcons.crowdin, - title: context.l.settings_localizations, - description: context.l.settings_localizations_description, + icon: SettingTileIcon(SimpleIcons.crowdin), + title: Text(context.l.settings_localizations), + description: Text(context.l.settings_localizations_description), onTap: openCrowdin, ), SettingActionTile( - icon: Icons.balance, - title: context.l.settings_licence, - description: context.l.settings_licence_description, + icon: SettingTileIcon(Icons.balance), + title: Text(context.l.settings_licence), + description: Text(context.l.settings_licence_description), onTap: openLicense, ), ], ), SettingSection( - divider: null, - title: context.l.settings_about_section_donate, + title: SettingSectionTitle(context.l.settings_about_section_donate), tiles: [ - SettingActionTile(icon: SimpleIcons.kofi, title: context.l.settings_donate_kofi, onTap: donateKoFi), SettingActionTile( - icon: SimpleIcons.paypal, - title: context.l.settings_donate_paypal, + icon: SettingTileIcon(SimpleIcons.kofi), + title: Text(context.l.settings_donate_kofi), + onTap: donateKoFi, + ), + SettingActionTile( + icon: SettingTileIcon(SimpleIcons.paypal), + title: Text(context.l.settings_donate_paypal), onTap: donatePayPal, ), ], diff --git a/lib/pages/settings/pages/settings_accessibility_page.dart b/lib/pages/settings/pages/settings_accessibility_page.dart index 99d9044b..03bae5e3 100644 --- a/lib/pages/settings/pages/settings_accessibility_page.dart +++ b/lib/pages/settings/pages/settings_accessibility_page.dart @@ -82,13 +82,14 @@ class _SettingsAppearancePageState extends ConsumerState (textScaling as num).formatAsPercentage(locale: SystemUtils().appLocaleLanguageCode), @@ -101,30 +102,30 @@ class _SettingsAppearancePageState extends ConsumerState child: Column( children: [ SettingSingleOptionTile.detailed( - icon: Icons.language, - title: context.l.settings_language, + icon: SettingTileIcon(Icons.language), + title: Text(context.l.settings_language), trailing: TextButton.icon(onPressed: _openCrowdin, label: Text(context.l.settings_language_contribute)), - value: locale.nativeDisplayLanguage.capitalizeFirstLetter, + value: SettingTileValue(locale.nativeDisplayLanguage.capitalizeFirstLetter), dialogTitle: context.l.settings_language, options: SupportedLanguage.values .map( @@ -115,13 +115,12 @@ class _SettingsAppearancePageState extends ConsumerState onSubmitted: _submittedLanguage, ), SettingSection( - divider: null, - title: context.l.settings_appearance_section_theming, + title: SettingSectionTitle(context.l.settings_appearance_section_theming), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.palette, - title: context.l.settings_theme, - value: ThemeUtils().themeModeTitle(context), + icon: SettingTileIcon(Icons.palette), + title: Text(context.l.settings_theme), + value: SettingTileValue(ThemeUtils().themeModeTitle(context)), dialogTitle: context.l.settings_theme, options: [ (value: ThemeMode.light, title: context.l.settings_theme_light, subtitle: null), @@ -133,31 +132,30 @@ class _SettingsAppearancePageState extends ConsumerState ), SettingSwitchTile( enabled: ThemeUtils().isDynamicThemingAvailable, - icon: Icons.bolt, - title: context.l.settings_dynamic_theming, - description: context.l.settings_dynamic_theming_description, + icon: SettingTileIcon(Icons.bolt), + title: Text(context.l.settings_dynamic_theming), + description: Text(context.l.settings_dynamic_theming_description), toggled: dynamicTheming, onChanged: _toggleDynamicTheming, ), SettingSwitchTile( enabled: isDarkMode, - icon: Icons.nightlight, - title: context.l.settings_black_theming, - description: context.l.settings_black_theming_description, + icon: SettingTileIcon(Icons.nightlight), + title: Text(context.l.settings_black_theming), + description: Text(context.l.settings_black_theming_description), toggled: blackTheming, onChanged: _toggleBlackTheming, ), ], ), SettingSection( - divider: null, - title: context.l.settings_appearance_section_fonts, + title: SettingSectionTitle(context.l.settings_appearance_section_fonts), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.font_download, - title: context.l.settings_app_font, - description: context.l.settings_app_font_description, - value: appFont.displayName(context), + icon: SettingTileIcon(Icons.font_download), + title: Text(context.l.settings_app_font), + description: Text(context.l.settings_app_font_description), + value: SettingTileValue(appFont.displayName(context)), dialogTitle: context.l.settings_app_font, options: Font.values .map((font) => (value: font, title: font.displayName(context), subtitle: null)) @@ -166,10 +164,10 @@ class _SettingsAppearancePageState extends ConsumerState onSubmitted: _submittedAppFont, ), SettingSingleOptionTile.detailed( - icon: Icons.font_download, - title: context.l.settings_editor_font, - description: context.l.settings_editor_font_description, - value: editorFont.displayName(context), + icon: SettingTileIcon(Icons.font_download), + title: Text(context.l.settings_editor_font), + description: Text(context.l.settings_editor_font_description), + value: SettingTileValue(editorFont.displayName(context)), dialogTitle: context.l.settings_editor_font, options: Font.values .map((font) => (value: font, title: font.displayName(context), subtitle: null)) diff --git a/lib/pages/settings/pages/settings_backup_page.dart b/lib/pages/settings/pages/settings_backup_page.dart index 5200616d..815c3905 100644 --- a/lib/pages/settings/pages/settings_backup_page.dart +++ b/lib/pages/settings/pages/settings_backup_page.dart @@ -214,60 +214,59 @@ class _SettingsBackupPageState extends ConsumerState { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_backup_import, + title: SettingSectionTitle(context.l.settings_backup_import), tiles: [ SettingActionTile( - icon: Icons.file_upload, - title: context.l.settings_import, - description: context.l.settings_import_description, + icon: SettingTileIcon(Icons.file_upload), + title: Text(context.l.settings_import), + description: Text(context.l.settings_import_description), onTap: _import, ), ], ), SettingSection( - divider: null, - title: context.l.settings_backup_manual_export, + title: SettingSectionTitle(context.l.settings_backup_manual_export), tiles: [ SettingActionTile( - icon: SimpleIcons.json, - title: context.l.settings_export_json, - description: context.l.settings_export_json_description, + icon: SettingTileIcon(SimpleIcons.json), + title: Text(context.l.settings_export_json), + description: Text(context.l.settings_export_json_description), onTap: _exportAsJson, ), SettingActionTile( - icon: SimpleIcons.markdown, - title: context.l.settings_export_markdown, - description: context.l.settings_export_markdown_description, + icon: SettingTileIcon(SimpleIcons.markdown), + title: Text(context.l.settings_export_markdown), + description: Text(context.l.settings_export_markdown_description), onTap: _exportAsMarkdown, ), ], ), SettingSection( - divider: null, - title: context.l.settings_backup_auto_export, + title: SettingSectionTitle(context.l.settings_backup_auto_export), tiles: [ SettingSwitchTile( - icon: Icons.settings_backup_restore, - title: context.l.settings_auto_export, - description: context.l.settings_auto_export_description, + icon: SettingTileIcon(Icons.settings_backup_restore), + title: Text(context.l.settings_auto_export), + description: Text(context.l.settings_auto_export_description), toggled: enableAutoExport, onChanged: _toggleEnableAutoExport, ), SettingSwitchTile( enabled: enableAutoExport, - icon: Icons.enhanced_encryption, - title: context.l.settings_auto_export_encryption, - description: context.l.settings_auto_export_encryption_description, + icon: SettingTileIcon(Icons.enhanced_encryption), + title: Text(context.l.settings_auto_export_encryption), + description: Text(context.l.settings_auto_export_encryption_description), toggled: autoExportEncryption, onChanged: _toggleAutoExportEncryption, ), SettingCustomSliderTile( enabled: enableAutoExport, - icon: Symbols.calendar_clock, - title: context.l.settings_auto_export_frequency, - value: context.l.settings_auto_export_frequency_value(autoExportFrequency.toString()), - description: context.l.settings_auto_export_frequency_description, + icon: SettingTileIcon(Symbols.calendar_clock), + title: Text(context.l.settings_auto_export_frequency), + value: SettingTileValue( + context.l.settings_auto_export_frequency_value(autoExportFrequency.toString()), + ), + description: Text(context.l.settings_auto_export_frequency_description), dialogTitle: context.l.settings_auto_export_frequency, label: (frequency) => context.l.settings_auto_export_frequency_value(frequency.toInt().toString()), values: automaticExportFrequenciesValues, @@ -276,10 +275,10 @@ class _SettingsBackupPageState extends ConsumerState { ), SettingActionTile( enabled: enableAutoExport, - icon: Icons.folder, - title: context.l.settings_auto_export_directory, - value: autoExportDirectory, - description: context.l.settings_auto_export_directory_description, + icon: SettingTileIcon(Icons.folder), + title: Text(context.l.settings_auto_export_directory), + value: SettingTileValue(autoExportDirectory), + description: Text(context.l.settings_auto_export_directory_description), trailing: IconButton( icon: const Icon(Symbols.reset_settings), tooltip: context.l.tooltip_reset, diff --git a/lib/pages/settings/pages/settings_behavior_page.dart b/lib/pages/settings/pages/settings_behavior_page.dart index 02bab051..77df38dc 100644 --- a/lib/pages/settings/pages/settings_behavior_page.dart +++ b/lib/pages/settings/pages/settings_behavior_page.dart @@ -122,21 +122,20 @@ class _SettingsBehaviorPageState extends ConsumerState { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_behavior_application, + title: SettingSectionTitle(context.l.settings_behavior_application), tiles: [ SettingSwitchTile( - icon: Icons.exit_to_app, - title: context.l.settings_confirm_before_exiting_title, - description: context.l.settings_confirm_before_exiting_description, + icon: SettingTileIcon(Icons.exit_to_app), + title: Text(context.l.settings_confirm_before_exiting_title), + description: Text(context.l.settings_confirm_before_exiting_description), toggled: confirmBeforeExiting, onChanged: submittedConfirmBeforeExiting, ), SettingSingleOptionTile.detailed( - icon: Icons.warning, - title: context.l.settings_confirmations, - value: confirmations.title(context), - description: context.l.settings_confirmations_description, + icon: SettingTileIcon(Icons.warning), + title: Text(context.l.settings_confirmations), + value: SettingTileValue(confirmations.title(context)), + description: Text(context.l.settings_confirmations_description), dialogTitle: context.l.settings_confirmations, options: Confirmations.values .map( @@ -147,10 +146,12 @@ class _SettingsBehaviorPageState extends ConsumerState { onSubmitted: submittedConfirmations, ), SettingCustomSliderTile( - icon: Icons.auto_delete, - title: context.l.settings_auto_remove_from_bin_title, - value: context.l.settings_auto_remove_from_bin_value(autoRemoveFromBinDelay.toString()), - description: context.l.settings_auto_remove_from_bin_description, + icon: SettingTileIcon(Icons.auto_delete), + title: Text(context.l.settings_auto_remove_from_bin_title), + value: SettingTileValue( + context.l.settings_auto_remove_from_bin_value(autoRemoveFromBinDelay.toString()), + ), + description: Text(context.l.settings_auto_remove_from_bin_description), dialogTitle: context.l.settings_auto_remove_from_bin_title, label: (delay) => context.l.settings_auto_remove_from_bin_value(delay.toInt().toString()), values: autoRemoveFromBinValues, @@ -160,14 +161,13 @@ class _SettingsBehaviorPageState extends ConsumerState { ], ), SettingSection( - divider: null, - title: context.l.settings_behavior_swipe_actions, + title: SettingSectionTitle(context.l.settings_behavior_swipe_actions), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.swipe_right, - title: context.l.settings_swipe_action_right, - value: availableSwipeActions.right.title(context), - description: context.l.settings_swipe_action_right_description, + icon: SettingTileIcon(Icons.swipe_right), + title: Text(context.l.settings_swipe_action_right), + value: SettingTileValue(availableSwipeActions.right.title(context)), + description: Text(context.l.settings_swipe_action_right_description), dialogTitle: context.l.settings_swipe_action_right, options: AvailableSwipeAction.settings .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -176,10 +176,10 @@ class _SettingsBehaviorPageState extends ConsumerState { onSubmitted: submittedAvailableSwipeRightAction, ), SettingSingleOptionTile.detailed( - icon: Icons.swipe_left, - title: context.l.settings_swipe_action_left, - value: availableSwipeActions.left.title(context), - description: context.l.settings_swipe_action_left_description, + icon: SettingTileIcon(Icons.swipe_left), + title: Text(context.l.settings_swipe_action_left), + value: SettingTileValue(availableSwipeActions.left.title(context)), + description: Text(context.l.settings_swipe_action_left_description), dialogTitle: context.l.settings_swipe_action_left, options: AvailableSwipeAction.settings .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -190,14 +190,13 @@ class _SettingsBehaviorPageState extends ConsumerState { ], ), SettingSection( - divider: null, - title: context.l.settings_behavior_swipe_actions_archives, + title: SettingSectionTitle(context.l.settings_behavior_swipe_actions_archives), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.swipe_right, - title: context.l.settings_swipe_action_right, - value: archivedSwipeActions.right.title(context), - description: context.l.settings_swipe_action_right_description, + icon: SettingTileIcon(Icons.swipe_right), + title: Text(context.l.settings_swipe_action_right), + value: SettingTileValue(archivedSwipeActions.right.title(context)), + description: Text(context.l.settings_swipe_action_right_description), dialogTitle: context.l.settings_swipe_action_right, options: ArchivedSwipeAction.values .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -206,10 +205,10 @@ class _SettingsBehaviorPageState extends ConsumerState { onSubmitted: submittedArchivedSwipeRightAction, ), SettingSingleOptionTile.detailed( - icon: Icons.swipe_left, - title: context.l.settings_swipe_action_left, - value: archivedSwipeActions.left.title(context), - description: context.l.settings_swipe_action_left_description, + icon: SettingTileIcon(Icons.swipe_left), + title: Text(context.l.settings_swipe_action_left), + value: SettingTileValue(archivedSwipeActions.left.title(context)), + description: Text(context.l.settings_swipe_action_left_description), dialogTitle: context.l.settings_swipe_action_left, options: ArchivedSwipeAction.values .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -220,14 +219,13 @@ class _SettingsBehaviorPageState extends ConsumerState { ], ), SettingSection( - divider: null, - title: context.l.settings_behavior_swipe_actions_bin, + title: SettingSectionTitle(context.l.settings_behavior_swipe_actions_bin), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.swipe_right, - title: context.l.settings_swipe_action_right, - value: deletedSwipeActions.right.title(context), - description: context.l.settings_bin_swipe_action_right_description, + icon: SettingTileIcon(Icons.swipe_right), + title: Text(context.l.settings_swipe_action_right), + value: SettingTileValue(deletedSwipeActions.right.title(context)), + description: Text(context.l.settings_bin_swipe_action_right_description), dialogTitle: context.l.settings_swipe_action_right, options: DeletedSwipeAction.values .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -236,10 +234,10 @@ class _SettingsBehaviorPageState extends ConsumerState { onSubmitted: submittedDeletedSwipeRightAction, ), SettingSingleOptionTile.detailed( - icon: Icons.swipe_left, - title: context.l.settings_swipe_action_left, - value: deletedSwipeActions.left.title(context), - description: context.l.settings_bin_swipe_action_left_description, + icon: SettingTileIcon(Icons.swipe_left), + title: Text(context.l.settings_swipe_action_left), + value: SettingTileValue(deletedSwipeActions.left.title(context)), + description: Text(context.l.settings_bin_swipe_action_left_description), dialogTitle: context.l.settings_swipe_action_left, options: DeletedSwipeAction.values .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) diff --git a/lib/pages/settings/pages/settings_editor_page.dart b/lib/pages/settings/pages/settings_editor_page.dart index b2bf297b..cb8a842f 100644 --- a/lib/pages/settings/pages/settings_editor_page.dart +++ b/lib/pages/settings/pages/settings_editor_page.dart @@ -52,28 +52,27 @@ class _SettingsEditorPageState extends State { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_editor_behavior, + title: SettingSectionTitle(context.l.settings_editor_behavior), tiles: [ SettingSwitchTile( - icon: Icons.edit, - title: context.l.settings_show_editor_mode_button, - description: context.l.settings_show_editor_mode_button_description, + icon: SettingTileIcon(Icons.edit), + title: Text(context.l.settings_show_editor_mode_button), + description: Text(context.l.settings_show_editor_mode_button_description), toggled: showEditorModeButton, onChanged: _toggleShowEditorModeButton, ), SettingSwitchTile( enabled: showEditorModeButton, - icon: Icons.visibility, - title: context.l.settings_open_editor_reading_mode, - description: context.l.settings_open_editor_reading_mode_description, + icon: SettingTileIcon(Icons.visibility), + title: Text(context.l.settings_open_editor_reading_mode), + description: Text(context.l.settings_open_editor_reading_mode_description), toggled: openEditorInReadMode, onChanged: _toggleOpenEditorInReadMode, ), SettingSwitchTile( - icon: Icons.filter_center_focus, - title: context.l.settings_focus_title_on_new_note, - description: context.l.settings_focus_title_on_new_note_description, + icon: SettingTileIcon(Icons.filter_center_focus), + title: Text(context.l.settings_focus_title_on_new_note), + description: Text(context.l.settings_focus_title_on_new_note_description), toggled: focusTitleOnNewNote, onChanged: _toggleFocusTitleOnNewNote, ), diff --git a/lib/pages/settings/pages/settings_help_page.dart b/lib/pages/settings/pages/settings_help_page.dart index 95656444..94fffee8 100644 --- a/lib/pages/settings/pages/settings_help_page.dart +++ b/lib/pages/settings/pages/settings_help_page.dart @@ -67,43 +67,41 @@ class SettingsHelpPage extends StatelessWidget { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_help_section_contact, + title: SettingSectionTitle(context.l.settings_help_section_contact), tiles: [ SettingActionTile( - icon: Icons.bug_report, - title: context.l.settings_github_issues, - description: context.l.settings_github_issues_description, + icon: SettingTileIcon(Icons.bug_report), + title: Text(context.l.settings_github_issues), + description: Text(context.l.settings_github_issues_description), onTap: openGitHubIssues, ), SettingActionTile( - icon: Icons.forum, - title: context.l.settings_github_discussions, - description: context.l.settings_github_discussions_description, + icon: SettingTileIcon(Icons.forum), + title: Text(context.l.settings_github_discussions), + description: Text(context.l.settings_github_discussions_description), onTap: openGitHubDiscussions, ), SettingActionTile( - icon: Icons.mail, - title: context.l.settings_contact_developer, - description: context.l.settings_get_in_touch_description(contactEmail), + icon: SettingTileIcon(Icons.mail), + title: Text(context.l.settings_contact_developer), + description: Text(context.l.settings_get_in_touch_description(contactEmail)), onTap: sendMail, ), ], ), SettingSection( - divider: null, - title: context.l.settings_help_section_logs, + title: SettingSectionTitle(context.l.settings_help_section_logs), tiles: [ SettingActionTile( - icon: Icons.copy_all, - title: context.l.settings_copy_logs, - description: context.l.settings_copy_logs_description, + icon: SettingTileIcon(Icons.copy_all), + title: Text(context.l.settings_copy_logs), + description: Text(context.l.settings_copy_logs_description), onTap: () => copyLogs(context), ), SettingActionTile( - icon: Symbols.file_save, - title: context.l.settings_export_logs, - description: context.l.settings_export_logs_description, + icon: SettingTileIcon(Symbols.file_save), + title: Text(context.l.settings_export_logs), + description: Text(context.l.settings_export_logs_description), onTap: () => exportLogs(context), ), ], diff --git a/lib/pages/settings/pages/settings_labels_page.dart b/lib/pages/settings/pages/settings_labels_page.dart index 655ccda4..7535b447 100644 --- a/lib/pages/settings/pages/settings_labels_page.dart +++ b/lib/pages/settings/pages/settings_labels_page.dart @@ -77,48 +77,45 @@ class _SettingsLabelsPageState extends State { child: Column( children: [ SettingSection( - divider: null, tiles: [ SettingSwitchTile( - icon: Icons.label, - title: context.l.settings_enable_labels, - description: context.l.settings_enable_labels_description, + icon: SettingTileIcon(Icons.label), + title: Text(context.l.settings_enable_labels), + description: Text(context.l.settings_enable_labels_description), toggled: isLabelsEnabled, onChanged: toggleEnableLabels, ), ], ), SettingSection( - divider: null, - title: context.l.settings_labels_appearance, + title: SettingSectionTitle(context.l.settings_labels_appearance), tiles: [ SettingSwitchTile( enabled: isLabelsEnabled, - icon: Symbols.tile_small, - title: context.l.settings_show_labels_note_tile, - description: context.l.settings_show_labels_note_tile_description, + icon: SettingTileIcon(Symbols.tile_small), + title: Text(context.l.settings_show_labels_note_tile), + description: Text(context.l.settings_show_labels_note_tile_description), toggled: showLabelsListOnNoteTile, onChanged: toggleShowLabelsListOnNoteTile, ), SettingSwitchTile( enabled: isLabelsEnabled, - icon: Icons.edit, - title: context.l.settings_show_labels_editor, - description: context.l.settings_show_labels_editor_description, + icon: SettingTileIcon(Icons.edit), + title: Text(context.l.settings_show_labels_editor), + description: Text(context.l.settings_show_labels_editor_description), toggled: showLabelsListInEditorPage, onChanged: toggleShowLabelsListInEditor, ), ], ), SettingSection( - divider: null, - title: context.l.settings_labels_section_behavior, + title: SettingSectionTitle(context.l.settings_labels_section_behavior), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.swipe_right, - title: context.l.settings_swipe_action_right, - value: labelSwipeActions.right.title(context), - description: context.l.settings_swipe_action_right_description, + icon: SettingTileIcon(Icons.swipe_right), + title: Text(context.l.settings_swipe_action_right), + value: SettingTileValue(labelSwipeActions.right.title(context)), + description: Text(context.l.settings_swipe_action_right_description), dialogTitle: context.l.settings_swipe_action_right, options: LabelSwipeAction.settings .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) @@ -127,10 +124,10 @@ class _SettingsLabelsPageState extends State { onSubmitted: submittedLabelSwipeRightAction, ), SettingSingleOptionTile.detailed( - icon: Icons.swipe_left, - title: context.l.settings_swipe_action_left, - value: labelSwipeActions.left.title(context), - description: context.l.settings_swipe_action_left_description, + icon: SettingTileIcon(Icons.swipe_left), + title: Text(context.l.settings_swipe_action_left), + value: SettingTileValue(labelSwipeActions.left.title(context)), + description: Text(context.l.settings_swipe_action_left_description), dialogTitle: context.l.settings_swipe_action_left, options: LabelSwipeAction.settings .map((swipeAction) => (value: swipeAction, title: swipeAction.title(context), subtitle: null)) diff --git a/lib/pages/settings/pages/settings_notes_tiles_page.dart b/lib/pages/settings/pages/settings_notes_tiles_page.dart index c8e90f39..a7b43c49 100644 --- a/lib/pages/settings/pages/settings_notes_tiles_page.dart +++ b/lib/pages/settings/pages/settings_notes_tiles_page.dart @@ -78,49 +78,47 @@ class _SettingsNotesTilesPageState extends ConsumerState child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_page_notes_tiles_appearance_section, + title: SettingSectionTitle(context.l.settings_page_notes_tiles_appearance_section), tiles: [ SettingSwitchTile( - icon: Icons.gradient, - title: context.l.settings_show_tiles_background, - description: context.l.settings_show_tiles_background_description, + icon: SettingTileIcon(Icons.gradient), + title: Text(context.l.settings_show_tiles_background), + description: Text(context.l.settings_show_tiles_background_description), toggled: showTilesBackground, onChanged: _toggleShowTilesBackground, ), SettingSwitchTile( - icon: Icons.safety_divider, - title: context.l.settings_show_separators, - description: context.l.settings_show_separators_description, + icon: SettingTileIcon(Icons.safety_divider), + title: Text(context.l.settings_show_separators), + description: Text(context.l.settings_show_separators_description), toggled: showSeparators, onChanged: _toggleShowSeparators, ), ], ), SettingSection( - divider: null, - title: context.l.settings_page_notes_tiles_content_section, + title: SettingSectionTitle(context.l.settings_page_notes_tiles_content_section), tiles: [ SettingSwitchTile( - icon: Icons.title, - title: context.l.settings_show_titles_only, - description: context.l.settings_show_titles_only_description, + icon: SettingTileIcon(Icons.title), + title: Text(context.l.settings_show_titles_only), + description: Text(context.l.settings_show_titles_only_description), toggled: showTitlesOnly, onChanged: _toggleShowTitlesOnly, ), SettingSwitchTile( enabled: showTitlesOnly, - icon: Symbols.feature_search, - title: context.l.settings_show_titles_only_disable_in_search_view, - description: context.l.settings_show_titles_only_disable_in_search_view_description, + icon: SettingTileIcon(Symbols.feature_search), + title: Text(context.l.settings_show_titles_only_disable_in_search_view), + description: Text(context.l.settings_show_titles_only_disable_in_search_view_description), toggled: showTitlesOnlyDisableInSearchView, onChanged: _toggleShowTitlesOnlyDisableInSearchView, ), SettingSliderTile( - icon: Icons.short_text, - title: context.l.settings_content_preview_max_lines, - description: context.l.settings_content_preview_max_lines_description, - value: '$maximumContentPreviewLines', + icon: SettingTileIcon(Icons.short_text), + title: Text(context.l.settings_content_preview_max_lines), + description: Text(context.l.settings_content_preview_max_lines_description), + value: SettingTileValue('$maximumContentPreviewLines'), dialogTitle: context.l.settings_content_preview_max_lines, label: (maximumContentPreviewLines) => '${maximumContentPreviewLines.toInt()}', min: 1.0, @@ -130,9 +128,9 @@ class _SettingsNotesTilesPageState extends ConsumerState onSubmitted: _submittedMaximumContentPreviewLines, ), SettingSwitchTile( - icon: Icons.edit_note, - title: context.l.settings_show_note_type_icon, - description: context.l.settings_show_note_type_icon_description, + icon: SettingTileIcon(Icons.edit_note), + title: Text(context.l.settings_show_note_type_icon), + description: Text(context.l.settings_show_note_type_icon_description), toggled: showNoteTypeIcon, onChanged: _toggleShowNoteTypeIcon, ), diff --git a/lib/pages/settings/pages/settings_notes_types_page.dart b/lib/pages/settings/pages/settings_notes_types_page.dart index 301a6697..ad096f11 100644 --- a/lib/pages/settings/pages/settings_notes_types_page.dart +++ b/lib/pages/settings/pages/settings_notes_types_page.dart @@ -78,14 +78,13 @@ class _SettingsNotesTypesPageState extends ConsumerState child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_section_types_to_use, + title: SettingSectionTitle(context.l.settings_section_types_to_use), tiles: [ SettingMultipleOptionsTile.detailed( - icon: Icons.edit_note, - title: context.l.settings_available_notes_types, - value: availableNotesTypesString, - description: context.l.settings_available_notes_types_description, + icon: SettingTileIcon(Icons.edit_note), + title: Text(context.l.settings_available_notes_types), + value: SettingTileValue(availableNotesTypesString), + description: Text(context.l.settings_available_notes_types_description), dialogTitle: context.l.settings_available_notes_types, options: notesTypes, initialOptions: availableNotesTypes, @@ -93,10 +92,10 @@ class _SettingsNotesTypesPageState extends ConsumerState onSubmitted: onSubmittedAvailableNotesTypes, ), SettingSingleOptionTile.detailed( - icon: Icons.share, - title: context.l.settings_available_default_share_type, - value: defaultShareNoteType.title(context), - description: context.l.settings_available_default_share_type_description, + icon: SettingTileIcon(Icons.share), + title: Text(context.l.settings_available_default_share_type), + value: SettingTileValue(defaultShareNoteType.title(context)), + description: Text(context.l.settings_available_default_share_type_description), dialogTitle: context.l.settings_available_default_share_type, options: shareNotesTypes, initialOption: defaultShareNoteType, @@ -105,23 +104,22 @@ class _SettingsNotesTypesPageState extends ConsumerState ], ), SettingSection( - divider: null, - title: NoteType.richText.title(context), + title: SettingSectionTitle(NoteType.richText.title(context)), tiles: [ SettingSingleOptionTile.detailed( - icon: Icons.format_paint, - title: context.l.settings_toolbar_style_title, - value: toolbarStyle.title(context), - description: context.l.settings_toolbar_style_description, + icon: SettingTileIcon(Icons.format_paint), + title: Text(context.l.settings_toolbar_style_title), + value: SettingTileValue(toolbarStyle.title(context)), + description: Text(context.l.settings_toolbar_style_description), dialogTitle: context.l.settings_toolbar_style_title, options: toolbarStyleOptions, initialOption: toolbarStyle, onSubmitted: onSubmittedToolbarStyle, ), SettingSwitchTile( - icon: Icons.format_line_spacing, - title: context.l.settings_use_paragraph_spacing, - description: context.l.settings_use_paragraph_spacing_description, + icon: SettingTileIcon(Icons.format_line_spacing), + title: Text(context.l.settings_use_paragraph_spacing), + description: Text(context.l.settings_use_paragraph_spacing_description), toggled: useParagraphsSpacing, onChanged: _toggleUseParagraphSpacing, ), diff --git a/lib/pages/settings/pages/settings_security_page.dart b/lib/pages/settings/pages/settings_security_page.dart index 2a815aca..6c1dccb1 100644 --- a/lib/pages/settings/pages/settings_security_page.dart +++ b/lib/pages/settings/pages/settings_security_page.dart @@ -123,36 +123,34 @@ class _SettingsBehaviorPageState extends ConsumerState { child: Column( children: [ SettingSection( - divider: null, - title: context.l.settings_security_application, + title: SettingSectionTitle(context.l.settings_security_application), tiles: [ SettingSwitchTile( - icon: Icons.screenshot, - title: context.l.settings_flag_secure, - description: context.l.settings_flag_secure_description, + icon: SettingTileIcon(Icons.screenshot), + title: Text(context.l.settings_flag_secure), + description: Text(context.l.settings_flag_secure_description), toggled: flagSecure, onChanged: toggledFlagSecure, ), ], ), SettingSection( - divider: null, - title: context.l.settings_security_application_lock, + title: SettingSectionTitle(context.l.settings_security_application_lock), tiles: [ SettingSwitchTile( enabled: isSystemAuthenticationAvailable, - icon: Icons.lock, - title: context.l.settings_application_lock_title, - description: context.l.settings_application_lock_description, + icon: SettingTileIcon(Icons.lock), + title: Text(context.l.settings_application_lock_title), + description: Text(context.l.settings_application_lock_description), toggled: lockApp, onChanged: toggledLockApp, ), SettingCustomSliderTile( enabled: isSystemAuthenticationAvailable && lockApp, - icon: Icons.timelapse, - title: context.l.settings_application_lock_delay_title, - value: context.l.settings_lock_delay_value(lockAppDelay.toString()), - description: context.l.settings_application_lock_delay_description, + icon: SettingTileIcon(Icons.timelapse), + title: Text(context.l.settings_application_lock_delay_title), + value: SettingTileValue(context.l.settings_lock_delay_value(lockAppDelay.toString())), + description: Text(context.l.settings_application_lock_delay_description), dialogTitle: context.l.settings_application_lock_delay_title, label: (delay) => context.l.settings_lock_delay_value(delay.toInt().toString()), values: lockDelayValues, @@ -162,31 +160,30 @@ class _SettingsBehaviorPageState extends ConsumerState { ], ), SettingSection( - divider: null, - title: context.l.settings_security_note_lock, + title: SettingSectionTitle(context.l.settings_security_note_lock), tiles: [ SettingSwitchTile( enabled: isSystemAuthenticationAvailable, - icon: Icons.notes, - title: context.l.settings_note_lock_title, - description: context.l.settings_note_lock_description, + icon: SettingTileIcon(Icons.notes), + title: Text(context.l.settings_note_lock_title), + description: Text(context.l.settings_note_lock_description), toggled: lockNote, onChanged: toggledLockNote, ), SettingSwitchTile( enabled: isSystemAuthenticationAvailable, - icon: Icons.label, - title: context.l.settings_label_lock_title, - description: context.l.settings_label_lock_description, + icon: SettingTileIcon(Icons.label), + title: Text(context.l.settings_label_lock_title), + description: Text(context.l.settings_label_lock_description), toggled: lockLabel, onChanged: toggledLockLabel, ), SettingCustomSliderTile( enabled: isSystemAuthenticationAvailable && lockNote, - icon: Icons.timelapse, - title: context.l.settings_note_lock_delay_title, - value: context.l.settings_lock_delay_value(lockNoteDelay.toString()), - description: context.l.settings_note_lock_delay_description, + icon: SettingTileIcon(Icons.timelapse), + title: Text(context.l.settings_note_lock_delay_title), + value: SettingTileValue(context.l.settings_lock_delay_value(lockNoteDelay.toString())), + description: Text(context.l.settings_note_lock_delay_description), dialogTitle: context.l.settings_note_lock_delay_title, label: (delay) => context.l.settings_lock_delay_value(delay.toInt().toString()), values: lockDelayValues, diff --git a/lib/pages/settings/settings_main_page.dart b/lib/pages/settings/settings_main_page.dart index 42b92128..d0a572c1 100644 --- a/lib/pages/settings/settings_main_page.dart +++ b/lib/pages/settings/settings_main_page.dart @@ -25,72 +25,71 @@ class SettingsMainPage extends StatelessWidget { child: Column( children: [ SettingSection( - divider: null, tiles: [ SettingActionTile( - icon: Icons.palette, - title: context.l.settings_page_appearance, - description: context.l.settings_page_appearance_description, + icon: SettingTileIcon(Icons.palette), + title: Text(context.l.settings_page_appearance), + description: Text(context.l.settings_page_appearance_description), onTap: () => context.goNamed(NavigationRoute.settingsAppearance.name), ), SettingActionTile( - icon: Icons.dashboard, - title: context.l.settings_page_notes_tiles, - description: context.l.settings_page_notes_tiles_description, + icon: SettingTileIcon(Icons.dashboard), + title: Text(context.l.settings_page_notes_tiles), + description: Text(context.l.settings_page_notes_tiles_description), onTap: () => context.goNamed(NavigationRoute.settingsNotesTiles.name), ), SettingActionTile( - icon: Icons.swipe, - title: context.l.settings_behavior, - description: context.l.settings_behavior_description, + icon: SettingTileIcon(Icons.swipe), + title: Text(context.l.settings_behavior), + description: Text(context.l.settings_behavior_description), onTap: () => context.goNamed(NavigationRoute.settingsBehavior.name), ), SettingActionTile( - icon: Icons.category, - title: context.l.settings_page_notes_types, - description: context.l.settings_page_notes_types_description, + icon: SettingTileIcon(Icons.category), + title: Text(context.l.settings_page_notes_types), + description: Text(context.l.settings_page_notes_types_description), onTap: () => context.goNamed(NavigationRoute.settingsNotesTypes.name), ), SettingActionTile( - icon: Icons.edit, - title: context.l.settings_editor, - description: context.l.settings_editor_description, + icon: SettingTileIcon(Icons.edit), + title: Text(context.l.settings_editor), + description: Text(context.l.settings_editor_description), onTap: () => context.goNamed(NavigationRoute.settingsEditor.name), ), SettingActionTile( - icon: Icons.label, - title: context.l.settings_labels, - description: context.l.settings_labels_description, + icon: SettingTileIcon(Icons.label), + title: Text(context.l.settings_labels), + description: Text(context.l.settings_labels_description), onTap: () => context.goNamed(NavigationRoute.settingsLabels.name), ), SettingActionTile( - icon: Icons.settings_backup_restore, - title: context.l.settings_backup, - description: context.l.settings_backup_description, + icon: SettingTileIcon(Icons.settings_backup_restore), + title: Text(context.l.settings_backup), + description: Text(context.l.settings_backup_description), onTap: () => context.goNamed(NavigationRoute.settingsBackup.name), ), SettingActionTile( - icon: Icons.security, - title: context.l.settings_security, - description: context.l.settings_security_description, + icon: SettingTileIcon(Icons.security), + title: Text(context.l.settings_security), + description: Text(context.l.settings_security_description), onTap: () => context.goNamed(NavigationRoute.settingsSecurity.name), ), SettingActionTile( - icon: Icons.accessibility, - title: context.l.settings_accessibility, - description: context.l.settings_accessibility_description, + icon: SettingTileIcon(Icons.accessibility), + title: Text(context.l.settings_accessibility), + description: Text(context.l.settings_accessibility_description), onTap: () => context.goNamed(NavigationRoute.settingsAccessibility.name), ), SettingActionTile( - icon: Icons.help, - title: context.l.settings_help, - description: context.l.settings_help_description, + icon: SettingTileIcon(Icons.help), + title: Text(context.l.settings_help), + description: Text(context.l.settings_help_description), onTap: () => context.goNamed(NavigationRoute.settingsHelp.name), ), SettingActionTile( - icon: Icons.info, - title: context.l.settings_about, - description: context.l.settings_about_description, + icon: SettingTileIcon(Icons.info), + title: Text(context.l.settings_about), + description: Text(context.l.settings_about_description), onTap: () => context.goNamed(NavigationRoute.settingsAbout.name), ), ], diff --git a/lib/providers/notes/notes_provider.dart b/lib/providers/notes/notes_provider.dart index 620e6dc5..4e4f4047 100644 --- a/lib/providers/notes/notes_provider.dart +++ b/lib/providers/notes/notes_provider.dart @@ -288,7 +288,7 @@ class Notes extends _$Notes { /// Removes the empty notes. Future removeEmpty() async { final emptyNotes = state.value?.where((note) => note.isEmpty).toList() ?? []; - + print(emptyNotes); try { await _notesService.deleteAll(emptyNotes); } catch (exception, stackTrace) { diff --git a/lib/services/notes/notes_service.dart b/lib/services/notes/notes_service.dart index 95755a12..e3fea689 100644 --- a/lib/services/notes/notes_service.dart +++ b/lib/services/notes/notes_service.dart @@ -284,8 +284,8 @@ class NotesService { await _database.writeTxn(() async { await _plainTextNotes.deleteAll(plainTextNotesIds); - await _markdownNotes.deleteAll(richTextNotesIds); - await _richTextNotes.deleteAll(markdownNotesIds); + await _markdownNotes.deleteAll(markdownNotesIds); + await _richTextNotes.deleteAll(richTextNotesIds); await _checklistNotes.deleteAll(checklistNotesIds); }); diff --git a/pubspec.lock b/pubspec.lock index 071f52c4..7f17599e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -170,10 +170,10 @@ packages: dependency: transitive description: name: built_value - sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" + sha256: "0b1b12a0a549605e5f04476031cd0bc91ead1d7c8e830773a18ee54179b3cb62" url: "https://pub.dev" source: hosted - version: "8.10.1" + version: "8.11.0" chalkdart: dependency: transitive description: @@ -846,10 +846,10 @@ packages: dependency: transitive description: name: local_auth_android - sha256: "63ad7ca6396290626dc0cb34725a939e4cfe965d80d36112f08d49cf13a8136e" + sha256: "82b2bdeee2199a510d3b7716121e96a6609da86693bb0863edd8566355406b79" url: "https://pub.dev" source: hosted - version: "1.0.49" + version: "1.0.50" local_auth_darwin: dependency: transitive description: @@ -1255,10 +1255,10 @@ packages: dependency: "direct main" description: name: saf_util - sha256: b18e57677fc704918b2a67d7b5aa1c9c61dc5f3f2e7e70480576db77d18bec4a + sha256: "219f983e5f17b28998335158cdc97add9d52af9884e38b5a43f10dcc070510ec" url: "https://pub.dev" source: hosted - version: "0.10.0" + version: "0.11.0" sanitize_filename: dependency: "direct main" description: @@ -1271,10 +1271,10 @@ packages: dependency: "direct main" description: name: settings_tiles - sha256: "7752b2b1d0828ddce79aa2b91cd8f75973a45597fcb12b0815f4e50ba173d513" + sha256: "13cfedde953c6c873b9defa387fe8f038abc2d8436ee45f4f941f336746ee34a" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "6.0.1" share_plus: dependency: "direct main" description: @@ -1737,5 +1737,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.8.0 <4.0.0" - flutter: ">=3.32.0" + dart: ">=3.8.1 <4.0.0" + flutter: ">=3.32.7" diff --git a/pubspec.yaml b/pubspec.yaml index 2442d942..b2f1c5f1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,12 +2,12 @@ name: localmaterialnotes description: Simple, local, material design notes repository: https://github.com/maelchiotti/LocalMaterialNotes -version: 2.0.0+28 +version: 2.1.0+29 publish_to: none environment: - sdk: ^3.8.0 - flutter: 3.32.0 + sdk: ^3.8.1 + flutter: 3.32.7 dependencies: after_layout: ^1.2.0 @@ -66,9 +66,9 @@ dependencies: restart_app: ^1.3.2 riverpod_annotation: ^2.6.1 saf_stream: ^0.11.3 - saf_util: ^0.10.0 + saf_util: ^0.11.0 sanitize_filename: ^1.0.5 - settings_tiles: ^4.1.0 + settings_tiles: ^6.0.1 share_plus: ^11.0.0 shared_preferences: ^2.5.3 simple_icons: ^14.6.1 diff --git a/scripts/generate_full_description.py b/scripts/generate_full_description.py index 1a41108b..85334d95 100644 --- a/scripts/generate_full_description.py +++ b/scripts/generate_full_description.py @@ -19,6 +19,11 @@ try: # Read and minimize the description inside the YAML file yaml_file = yaml.safe_load(yaml_stream) + + if yaml_file is None: + print("Skipped empty file for language " + language) + continue + full_description = yaml_file["full_description"] full_description_minified = minify_html.minify( full_description, keep_closing_tags=True