feat: donation button

This commit is contained in:
edde746
2026-04-19 11:52:46 +02:00
parent ff2928b18f
commit b4e78febc0
35 changed files with 164 additions and 40 deletions
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Indstillinger",
"supportDeveloper": "Støt Plezy",
"supportDeveloperDescription": "Doner via Liberapay for at finansiere udviklingen",
"language": "Sprog",
"theme": "Tema",
"appearance": "Udseende",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Einstellungen",
"supportDeveloper": "Plezy unterstützen",
"supportDeveloperDescription": "Per Liberapay spenden, um die Entwicklung zu fördern",
"language": "Sprache",
"theme": "Design",
"appearance": "Darstellung",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Settings",
"supportDeveloper": "Support Plezy",
"supportDeveloperDescription": "Donate via Liberapay to fund development",
"language": "Language",
"theme": "Theme",
"appearance": "Appearance",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Configuración",
"supportDeveloper": "Apoya Plezy",
"supportDeveloperDescription": "Dona vía Liberapay para financiar el desarrollo",
"language": "Idioma",
"theme": "Tema",
"appearance": "Apariencia",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Paramètres",
"supportDeveloper": "Soutenir Plezy",
"supportDeveloperDescription": "Faites un don via Liberapay pour financer le développement",
"language": "Langue",
"theme": "Thème",
"appearance": "Apparence",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Impostazioni",
"supportDeveloper": "Supporta Plezy",
"supportDeveloperDescription": "Dona tramite Liberapay per finanziare lo sviluppo",
"language": "Lingua",
"theme": "Tema",
"appearance": "Aspetto",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "設定",
"supportDeveloper": "Plezy を支援",
"supportDeveloperDescription": "Liberapay で寄付して開発を支援",
"language": "言語",
"theme": "テーマ",
"appearance": "外観",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "설정",
"supportDeveloper": "Plezy 후원하기",
"supportDeveloperDescription": "Liberapay로 후원하여 개발 지원",
"language": "언어",
"theme": "테마",
"appearance": "외관",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Innstillinger",
"supportDeveloper": "Støtt Plezy",
"supportDeveloperDescription": "Doner via Liberapay for å finansiere utviklingen",
"language": "Språk",
"theme": "Tema",
"appearance": "Utseende",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Instellingen",
"supportDeveloper": "Steun Plezy",
"supportDeveloperDescription": "Doneer via Liberapay om de ontwikkeling te steunen",
"language": "Taal",
"theme": "Thema",
"appearance": "Uiterlijk",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Ustawienia",
"supportDeveloper": "Wesprzyj Plezy",
"supportDeveloperDescription": "Wspomóż rozwój darowizną na Liberapay",
"language": "Język",
"theme": "Motyw",
"appearance": "Wygląd",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Configurações",
"supportDeveloper": "Apoie o Plezy",
"supportDeveloperDescription": "Doe via Liberapay para financiar o desenvolvimento",
"language": "Idioma",
"theme": "Tema",
"appearance": "Aparência",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Настройки",
"supportDeveloper": "Поддержать Plezy",
"supportDeveloperDescription": "Пожертвуйте через Liberapay на развитие",
"language": "Язык",
"theme": "Тема",
"appearance": "Внешний вид",
+2 -2
View File
@@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 15
/// Strings: 13575 (905 per locale)
/// Strings: 13605 (907 per locale)
///
/// Built on 2026-04-19 at 09:09 UTC
/// Built on 2026-04-19 at 09:37 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn {
// Translations
@override String get title => 'Indstillinger';
@override String get supportDeveloper => 'Støt Plezy';
@override String get supportDeveloperDescription => 'Doner via Liberapay for at finansiere udviklingen';
@override String get language => 'Sprog';
@override String get theme => 'Tema';
@override String get appearance => 'Udseende';
@@ -1476,6 +1478,8 @@ extension on TranslationsDa {
'update.latestVersion' => 'Du har den nyeste version',
'update.checkFailed' => 'Kunne ikke søge efter opdateringer',
'settings.title' => 'Indstillinger',
'settings.supportDeveloper' => 'Støt Plezy',
'settings.supportDeveloperDescription' => 'Doner via Liberapay for at finansiere udviklingen',
'settings.language' => 'Sprog',
'settings.theme' => 'Tema',
'settings.appearance' => 'Udseende',
@@ -1922,10 +1926,10 @@ extension on TranslationsDa {
'libraries.noFoldersFound' => 'Ingen mapper fundet',
'libraries.folders' => 'mapper',
'libraries.tabs.recommended' => 'Anbefalet',
'libraries.tabs.browse' => 'Gennemse',
'libraries.tabs.collections' => 'Samlinger',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Gennemse',
'libraries.tabs.collections' => 'Samlinger',
'libraries.tabs.playlists' => 'Playlister',
'libraries.groupings.title' => 'Gruppering',
'libraries.groupings.all' => 'Alle',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn {
// Translations
@override String get title => 'Einstellungen';
@override String get supportDeveloper => 'Plezy unterstützen';
@override String get supportDeveloperDescription => 'Per Liberapay spenden, um die Entwicklung zu fördern';
@override String get language => 'Sprache';
@override String get theme => 'Design';
@override String get appearance => 'Darstellung';
@@ -1476,6 +1478,8 @@ extension on TranslationsDe {
'update.latestVersion' => 'Aktuellste Version installiert',
'update.checkFailed' => 'Fehler bei der Updateprüfung',
'settings.title' => 'Einstellungen',
'settings.supportDeveloper' => 'Plezy unterstützen',
'settings.supportDeveloperDescription' => 'Per Liberapay spenden, um die Entwicklung zu fördern',
'settings.language' => 'Sprache',
'settings.theme' => 'Design',
'settings.appearance' => 'Darstellung',
@@ -1922,10 +1926,10 @@ extension on TranslationsDe {
'libraries.noFoldersFound' => 'Keine Ordner gefunden',
'libraries.folders' => 'Ordner',
'libraries.tabs.recommended' => 'Empfohlen',
'libraries.tabs.browse' => 'Durchsuchen',
'libraries.tabs.collections' => 'Sammlungen',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Durchsuchen',
'libraries.tabs.collections' => 'Sammlungen',
'libraries.tabs.playlists' => 'Wiedergabelisten',
'libraries.groupings.title' => 'Gruppierung',
'libraries.groupings.all' => 'Alle',
+10 -2
View File
@@ -326,6 +326,12 @@ class TranslationsSettingsEn {
/// en: 'Settings'
String get title => 'Settings';
/// en: 'Support Plezy'
String get supportDeveloper => 'Support Plezy';
/// en: 'Donate via Liberapay to fund development'
String get supportDeveloperDescription => 'Donate via Liberapay to fund development';
/// en: 'Language'
String get language => 'Language';
@@ -3293,6 +3299,8 @@ extension on Translations {
'update.latestVersion' => 'You are on the latest version',
'update.checkFailed' => 'Failed to check for updates',
'settings.title' => 'Settings',
'settings.supportDeveloper' => 'Support Plezy',
'settings.supportDeveloperDescription' => 'Donate via Liberapay to fund development',
'settings.language' => 'Language',
'settings.theme' => 'Theme',
'settings.appearance' => 'Appearance',
@@ -3739,10 +3747,10 @@ extension on Translations {
'libraries.noFoldersFound' => 'No folders found',
'libraries.folders' => 'folders',
'libraries.tabs.recommended' => 'Recommended',
'libraries.tabs.browse' => 'Browse',
'libraries.tabs.collections' => 'Collections',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Browse',
'libraries.tabs.collections' => 'Collections',
'libraries.tabs.playlists' => 'Playlists',
'libraries.groupings.title' => 'Grouping',
'libraries.groupings.all' => 'All',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn {
// Translations
@override String get title => 'Configuración';
@override String get supportDeveloper => 'Apoya Plezy';
@override String get supportDeveloperDescription => 'Dona vía Liberapay para financiar el desarrollo';
@override String get language => 'Idioma';
@override String get theme => 'Tema';
@override String get appearance => 'Apariencia';
@@ -1476,6 +1478,8 @@ extension on TranslationsEs {
'update.latestVersion' => 'Ya estás en la última versión',
'update.checkFailed' => 'Error al buscar actualizaciones',
'settings.title' => 'Configuración',
'settings.supportDeveloper' => 'Apoya Plezy',
'settings.supportDeveloperDescription' => 'Dona vía Liberapay para financiar el desarrollo',
'settings.language' => 'Idioma',
'settings.theme' => 'Tema',
'settings.appearance' => 'Apariencia',
@@ -1922,10 +1926,10 @@ extension on TranslationsEs {
'libraries.noFoldersFound' => 'No se encontraron carpetas',
'libraries.folders' => 'carpetas',
'libraries.tabs.recommended' => 'Recomendado',
'libraries.tabs.browse' => 'Explorar',
'libraries.tabs.collections' => 'Colecciones',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Explorar',
'libraries.tabs.collections' => 'Colecciones',
'libraries.tabs.playlists' => 'Listas',
'libraries.groupings.title' => 'Agrupación',
'libraries.groupings.all' => 'Todo',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn {
// Translations
@override String get title => 'Paramètres';
@override String get supportDeveloper => 'Soutenir Plezy';
@override String get supportDeveloperDescription => 'Faites un don via Liberapay pour financer le développement';
@override String get language => 'Langue';
@override String get theme => 'Thème';
@override String get appearance => 'Apparence';
@@ -1476,6 +1478,8 @@ extension on TranslationsFr {
'update.latestVersion' => 'Vous utilisez la dernière version',
'update.checkFailed' => 'Échec de la vérification des mises à jour',
'settings.title' => 'Paramètres',
'settings.supportDeveloper' => 'Soutenir Plezy',
'settings.supportDeveloperDescription' => 'Faites un don via Liberapay pour financer le développement',
'settings.language' => 'Langue',
'settings.theme' => 'Thème',
'settings.appearance' => 'Apparence',
@@ -1922,10 +1926,10 @@ extension on TranslationsFr {
'libraries.noFoldersFound' => 'Aucun dossier trouvé',
'libraries.folders' => 'dossiers',
'libraries.tabs.recommended' => 'Recommandé',
'libraries.tabs.browse' => 'Parcourir',
'libraries.tabs.collections' => 'Collections',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Parcourir',
'libraries.tabs.collections' => 'Collections',
'libraries.tabs.playlists' => 'Playlists',
'libraries.groupings.title' => 'Regroupement',
'libraries.groupings.all' => 'Tous',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn {
// Translations
@override String get title => 'Impostazioni';
@override String get supportDeveloper => 'Supporta Plezy';
@override String get supportDeveloperDescription => 'Dona tramite Liberapay per finanziare lo sviluppo';
@override String get language => 'Lingua';
@override String get theme => 'Tema';
@override String get appearance => 'Aspetto';
@@ -1476,6 +1478,8 @@ extension on TranslationsIt {
'update.latestVersion' => 'La versione installata è l\'ultima disponibile',
'update.checkFailed' => 'Impossibile controllare gli aggiornamenti',
'settings.title' => 'Impostazioni',
'settings.supportDeveloper' => 'Supporta Plezy',
'settings.supportDeveloperDescription' => 'Dona tramite Liberapay per finanziare lo sviluppo',
'settings.language' => 'Lingua',
'settings.theme' => 'Tema',
'settings.appearance' => 'Aspetto',
@@ -1922,10 +1926,10 @@ extension on TranslationsIt {
'libraries.noFoldersFound' => 'Nessuna cartella trovata',
'libraries.folders' => 'cartelle',
'libraries.tabs.recommended' => 'Consigliati',
'libraries.tabs.browse' => 'Esplora',
'libraries.tabs.collections' => 'Raccolte',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Esplora',
'libraries.tabs.collections' => 'Raccolte',
'libraries.tabs.playlists' => 'Playlist',
'libraries.groupings.title' => 'Raggruppamento',
'libraries.groupings.all' => 'Tutti',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn {
// Translations
@override String get title => '設定';
@override String get supportDeveloper => 'Plezy を支援';
@override String get supportDeveloperDescription => 'Liberapay で寄付して開発を支援';
@override String get language => '言語';
@override String get theme => 'テーマ';
@override String get appearance => '外観';
@@ -1476,6 +1478,8 @@ extension on TranslationsJa {
'update.latestVersion' => '最新バージョンです',
'update.checkFailed' => 'アップデートの確認に失敗しました',
'settings.title' => '設定',
'settings.supportDeveloper' => 'Plezy を支援',
'settings.supportDeveloperDescription' => 'Liberapay で寄付して開発を支援',
'settings.language' => '言語',
'settings.theme' => 'テーマ',
'settings.appearance' => '外観',
@@ -1922,10 +1926,10 @@ extension on TranslationsJa {
'libraries.noFoldersFound' => 'フォルダが見つかりません',
'libraries.folders' => 'フォルダ',
'libraries.tabs.recommended' => 'おすすめ',
'libraries.tabs.browse' => 'ブラウズ',
'libraries.tabs.collections' => 'コレクション',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'ブラウズ',
'libraries.tabs.collections' => 'コレクション',
'libraries.tabs.playlists' => 'プレイリスト',
'libraries.groupings.title' => 'グループ',
'libraries.groupings.all' => 'すべて',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn {
// Translations
@override String get title => '설정';
@override String get supportDeveloper => 'Plezy 후원하기';
@override String get supportDeveloperDescription => 'Liberapay로 후원하여 개발 지원';
@override String get language => '언어';
@override String get theme => '테마';
@override String get appearance => '외관';
@@ -1476,6 +1478,8 @@ extension on TranslationsKo {
'update.latestVersion' => '최신 버전을 사용 중입니다',
'update.checkFailed' => '업데이트 확인 실패',
'settings.title' => '설정',
'settings.supportDeveloper' => 'Plezy 후원하기',
'settings.supportDeveloperDescription' => 'Liberapay로 후원하여 개발 지원',
'settings.language' => '언어',
'settings.theme' => '테마',
'settings.appearance' => '외관',
@@ -1922,10 +1926,10 @@ extension on TranslationsKo {
'libraries.noFoldersFound' => '폴더를 찾을 수 없습니다',
'libraries.folders' => '폴더',
'libraries.tabs.recommended' => '추천',
'libraries.tabs.browse' => '찾아보기',
'libraries.tabs.collections' => '컬렉션',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => '찾아보기',
'libraries.tabs.collections' => '컬렉션',
'libraries.tabs.playlists' => '재생 목록',
'libraries.groupings.title' => '그룹',
'libraries.groupings.all' => '전체',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn {
// Translations
@override String get title => 'Innstillinger';
@override String get supportDeveloper => 'Støtt Plezy';
@override String get supportDeveloperDescription => 'Doner via Liberapay for å finansiere utviklingen';
@override String get language => 'Språk';
@override String get theme => 'Tema';
@override String get appearance => 'Utseende';
@@ -1476,6 +1478,8 @@ extension on TranslationsNb {
'update.latestVersion' => 'Du har den nyeste versjonen',
'update.checkFailed' => 'Kunne ikke se etter oppdateringer',
'settings.title' => 'Innstillinger',
'settings.supportDeveloper' => 'Støtt Plezy',
'settings.supportDeveloperDescription' => 'Doner via Liberapay for å finansiere utviklingen',
'settings.language' => 'Språk',
'settings.theme' => 'Tema',
'settings.appearance' => 'Utseende',
@@ -1922,10 +1926,10 @@ extension on TranslationsNb {
'libraries.noFoldersFound' => 'Ingen mapper funnet',
'libraries.folders' => 'mapper',
'libraries.tabs.recommended' => 'Anbefalt',
'libraries.tabs.browse' => 'Bla gjennom',
'libraries.tabs.collections' => 'Samlinger',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Bla gjennom',
'libraries.tabs.collections' => 'Samlinger',
'libraries.tabs.playlists' => 'Spillelister',
'libraries.groupings.title' => 'Gruppering',
'libraries.groupings.all' => 'Alle',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn {
// Translations
@override String get title => 'Instellingen';
@override String get supportDeveloper => 'Steun Plezy';
@override String get supportDeveloperDescription => 'Doneer via Liberapay om de ontwikkeling te steunen';
@override String get language => 'Taal';
@override String get theme => 'Thema';
@override String get appearance => 'Uiterlijk';
@@ -1476,6 +1478,8 @@ extension on TranslationsNl {
'update.latestVersion' => 'Je hebt de nieuwste versie',
'update.checkFailed' => 'Kon niet controleren op updates',
'settings.title' => 'Instellingen',
'settings.supportDeveloper' => 'Steun Plezy',
'settings.supportDeveloperDescription' => 'Doneer via Liberapay om de ontwikkeling te steunen',
'settings.language' => 'Taal',
'settings.theme' => 'Thema',
'settings.appearance' => 'Uiterlijk',
@@ -1922,10 +1926,10 @@ extension on TranslationsNl {
'libraries.noFoldersFound' => 'Geen mappen gevonden',
'libraries.folders' => 'mappen',
'libraries.tabs.recommended' => 'Aanbevolen',
'libraries.tabs.browse' => 'Bladeren',
'libraries.tabs.collections' => 'Collecties',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Bladeren',
'libraries.tabs.collections' => 'Collecties',
'libraries.tabs.playlists' => 'Afspeellijsten',
'libraries.groupings.title' => 'Groepering',
'libraries.groupings.all' => 'Alles',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn {
// Translations
@override String get title => 'Ustawienia';
@override String get supportDeveloper => 'Wesprzyj Plezy';
@override String get supportDeveloperDescription => 'Wspomóż rozwój darowizną na Liberapay';
@override String get language => 'Język';
@override String get theme => 'Motyw';
@override String get appearance => 'Wygląd';
@@ -1476,6 +1478,8 @@ extension on TranslationsPl {
'update.latestVersion' => 'Masz najnowszą wersję',
'update.checkFailed' => 'Nie udało się sprawdzić aktualizacji',
'settings.title' => 'Ustawienia',
'settings.supportDeveloper' => 'Wesprzyj Plezy',
'settings.supportDeveloperDescription' => 'Wspomóż rozwój darowizną na Liberapay',
'settings.language' => 'Język',
'settings.theme' => 'Motyw',
'settings.appearance' => 'Wygląd',
@@ -1922,10 +1926,10 @@ extension on TranslationsPl {
'libraries.noFoldersFound' => 'Nie znaleziono folderów',
'libraries.folders' => 'foldery',
'libraries.tabs.recommended' => 'Rekomendowane',
'libraries.tabs.browse' => 'Przeglądaj',
'libraries.tabs.collections' => 'Kolekcje',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Przeglądaj',
'libraries.tabs.collections' => 'Kolekcje',
'libraries.tabs.playlists' => 'Playlisty',
'libraries.groupings.title' => 'Grupowanie',
'libraries.groupings.all' => 'Wszystkie',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn {
// Translations
@override String get title => 'Configurações';
@override String get supportDeveloper => 'Apoie o Plezy';
@override String get supportDeveloperDescription => 'Doe via Liberapay para financiar o desenvolvimento';
@override String get language => 'Idioma';
@override String get theme => 'Tema';
@override String get appearance => 'Aparência';
@@ -1476,6 +1478,8 @@ extension on TranslationsPt {
'update.latestVersion' => 'Você está na versão mais recente',
'update.checkFailed' => 'Falha ao verificar atualizações',
'settings.title' => 'Configurações',
'settings.supportDeveloper' => 'Apoie o Plezy',
'settings.supportDeveloperDescription' => 'Doe via Liberapay para financiar o desenvolvimento',
'settings.language' => 'Idioma',
'settings.theme' => 'Tema',
'settings.appearance' => 'Aparência',
@@ -1922,10 +1926,10 @@ extension on TranslationsPt {
'libraries.noFoldersFound' => 'Nenhuma pasta encontrada',
'libraries.folders' => 'pastas',
'libraries.tabs.recommended' => 'Recomendados',
'libraries.tabs.browse' => 'Navegar',
'libraries.tabs.collections' => 'Coleções',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Navegar',
'libraries.tabs.collections' => 'Coleções',
'libraries.tabs.playlists' => 'Playlists',
'libraries.groupings.title' => 'Agrupamento',
'libraries.groupings.all' => 'Todos',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn {
// Translations
@override String get title => 'Настройки';
@override String get supportDeveloper => 'Поддержать Plezy';
@override String get supportDeveloperDescription => 'Пожертвуйте через Liberapay на развитие';
@override String get language => 'Язык';
@override String get theme => 'Тема';
@override String get appearance => 'Внешний вид';
@@ -1476,6 +1478,8 @@ extension on TranslationsRu {
'update.latestVersion' => 'У вас последняя версия',
'update.checkFailed' => 'Не удалось проверить обновления',
'settings.title' => 'Настройки',
'settings.supportDeveloper' => 'Поддержать Plezy',
'settings.supportDeveloperDescription' => 'Пожертвуйте через Liberapay на развитие',
'settings.language' => 'Язык',
'settings.theme' => 'Тема',
'settings.appearance' => 'Внешний вид',
@@ -1922,10 +1926,10 @@ extension on TranslationsRu {
'libraries.noFoldersFound' => 'Папки не найдены',
'libraries.folders' => 'папки',
'libraries.tabs.recommended' => 'Рекомендуемые',
'libraries.tabs.browse' => 'Обзор',
'libraries.tabs.collections' => 'Коллекции',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Обзор',
'libraries.tabs.collections' => 'Коллекции',
'libraries.tabs.playlists' => 'Плейлисты',
'libraries.groupings.title' => 'Группировка',
'libraries.groupings.all' => 'Все',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn {
// Translations
@override String get title => 'Inställningar';
@override String get supportDeveloper => 'Stöd Plezy';
@override String get supportDeveloperDescription => 'Donera via Liberapay för att finansiera utvecklingen';
@override String get language => 'Språk';
@override String get theme => 'Tema';
@override String get appearance => 'Utseende';
@@ -1476,6 +1478,8 @@ extension on TranslationsSv {
'update.latestVersion' => 'Du har den senaste versionen',
'update.checkFailed' => 'Misslyckades att kontrollera uppdateringar',
'settings.title' => 'Inställningar',
'settings.supportDeveloper' => 'Stöd Plezy',
'settings.supportDeveloperDescription' => 'Donera via Liberapay för att finansiera utvecklingen',
'settings.language' => 'Språk',
'settings.theme' => 'Tema',
'settings.appearance' => 'Utseende',
@@ -1922,10 +1926,10 @@ extension on TranslationsSv {
'libraries.noFoldersFound' => 'Inga mappar hittades',
'libraries.folders' => 'mappar',
'libraries.tabs.recommended' => 'Rekommenderat',
'libraries.tabs.browse' => 'Bläddra',
'libraries.tabs.collections' => 'Samlingar',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => 'Bläddra',
'libraries.tabs.collections' => 'Samlingar',
'libraries.tabs.playlists' => 'Spellistor',
'libraries.groupings.title' => 'Gruppering',
'libraries.groupings.all' => 'Alla',
+6 -2
View File
@@ -194,6 +194,8 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn {
// Translations
@override String get title => '设置';
@override String get supportDeveloper => '支持 Plezy';
@override String get supportDeveloperDescription => '通过 Liberapay 捐赠支持开发';
@override String get language => '语言';
@override String get theme => '主题';
@override String get appearance => '外观';
@@ -1476,6 +1478,8 @@ extension on TranslationsZh {
'update.latestVersion' => '已安装的版本是可用的最新版本',
'update.checkFailed' => '无法检查更新',
'settings.title' => '设置',
'settings.supportDeveloper' => '支持 Plezy',
'settings.supportDeveloperDescription' => '通过 Liberapay 捐赠支持开发',
'settings.language' => '语言',
'settings.theme' => '主题',
'settings.appearance' => '外观',
@@ -1922,10 +1926,10 @@ extension on TranslationsZh {
'libraries.noFoldersFound' => '未找到文件夹',
'libraries.folders' => '文件夹',
'libraries.tabs.recommended' => '推荐',
'libraries.tabs.browse' => '浏览',
'libraries.tabs.collections' => '合集',
_ => null,
} ?? switch (path) {
'libraries.tabs.browse' => '浏览',
'libraries.tabs.collections' => '合集',
'libraries.tabs.playlists' => '播放列表',
'libraries.groupings.title' => '分组',
'libraries.groupings.all' => '全部',
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "Inställningar",
"supportDeveloper": "Stöd Plezy",
"supportDeveloperDescription": "Donera via Liberapay för att finansiera utvecklingen",
"language": "Språk",
"theme": "Tema",
"appearance": "Utseende",
+2
View File
@@ -74,6 +74,8 @@
},
"settings": {
"title": "设置",
"supportDeveloper": "支持 Plezy",
"supportDeveloperDescription": "通过 Liberapay 捐赠支持开发",
"language": "语言",
"theme": "主题",
"appearance": "外观",
+22 -1
View File
@@ -14,6 +14,7 @@ import '../../focus/input_mode_tracker.dart';
import '../../i18n/strings.g.dart';
import '../main_screen.dart';
import '../../mixins/refreshable.dart';
import '../../services/donation_service.dart';
import '../../services/download_storage_service.dart';
import '../../services/file_picker_service.dart';
import '../../services/saf_storage_service.dart';
@@ -46,6 +47,7 @@ class _SettingsScreenState extends State<SettingsScreen> with FocusableTab {
late final FocusMemoryTracker _focusTracker;
// Focus tracking keys
static const _kDonate = 'donate';
static const _kAppearance = 'appearance';
static const _kPlayback = 'playback';
static const _kTrakt = 'trakt';
@@ -100,7 +102,7 @@ class _SettingsScreenState extends State<SettingsScreen> with FocusableTab {
@override
void focusActiveTabIfReady() {
if (InputModeTracker.isKeyboardMode(context)) {
_focusTracker.restoreFocus(fallbackKey: _kAppearance);
_focusTracker.restoreFocus(fallbackKey: DonationService.isEnabled ? _kDonate : _kAppearance);
}
}
@@ -149,6 +151,9 @@ class _SettingsScreenState extends State<SettingsScreen> with FocusableTab {
ExcludeFocus(child: CustomAppBar(title: Text(t.settings.title), pinned: true)),
SliverList(
delegate: SliverChildListDelegate([
// --- Donate (non-store builds only) ---
if (DonationService.isEnabled) _buildDonateTile(),
// --- Appearance (navigation tile) ---
_buildAppearanceTile(),
@@ -190,6 +195,22 @@ class _SettingsScreenState extends State<SettingsScreen> with FocusableTab {
);
}
Widget _buildDonateTile() {
return ListTile(
focusNode: _focusTracker.get(_kDonate),
leading: const AppIcon(Symbols.favorite_rounded, fill: 1),
title: Text(t.settings.supportDeveloper),
subtitle: Text(t.settings.supportDeveloperDescription),
trailing: const AppIcon(Symbols.open_in_new_rounded, fill: 1),
onTap: () async {
final url = Uri.parse(DonationService.donationUrl);
if (await canLaunchUrl(url)) {
await launchUrl(url, mode: LaunchMode.externalApplication);
}
},
);
}
Widget _buildAppearanceTile() {
return Consumer2<ThemeProvider, SettingsProvider>(
builder: (context, themeProvider, settingsProvider, child) {
+7
View File
@@ -0,0 +1,7 @@
class DonationService {
static const String donationUrl = 'https://liberapay.com/edde746';
static bool get isEnabled {
return const bool.fromEnvironment('ENABLE_DONATIONS', defaultValue: false);
}
}