diff --git a/.untranslated-messages.json b/.untranslated-messages.json index c3c8d17..4d84180 100644 --- a/.untranslated-messages.json +++ b/.untranslated-messages.json @@ -7,6 +7,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -40,6 +44,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -66,6 +74,10 @@ ], "cs": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesPlaylistCount", @@ -93,6 +105,10 @@ "actionsStar", "actionsUnstar", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -127,11 +143,19 @@ ], "de": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "settingsAboutShareLogs", "settingsAboutChooseLog" ], "es": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -165,6 +189,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -190,6 +218,13 @@ "settingsServersFieldsName" ], + "gl": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs" + ], + "it": [ "actionsCancel", "actionsDelete", @@ -198,6 +233,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -234,6 +273,10 @@ "actionsUnstar", "controlsShuffle", "messagesNothingHere", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumActionsPlay", "resourcesAlbumActionsView", "resourcesAlbumCount", @@ -309,6 +352,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -342,6 +389,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -375,6 +426,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -401,6 +456,10 @@ ], "pt": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterOwner", @@ -416,6 +475,13 @@ "settingsServersFieldsName" ], + "ru": [ + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs" + ], + "tr": [ "actionsCancel", "actionsDelete", @@ -424,6 +490,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -457,6 +527,10 @@ "actionsDownloadDelete", "actionsOk", "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesFilterAlbum", @@ -484,6 +558,10 @@ "zh": [ "controlsShuffle", + "navigationTabsAlbums", + "navigationTabsArtists", + "navigationTabsPlaylists", + "navigationTabsSongs", "resourcesAlbumCount", "resourcesArtistCount", "resourcesPlaylistCount", diff --git a/lib/app/screens/library_screen.dart b/lib/app/screens/library_screen.dart index 4455ce2..ca57384 100644 --- a/lib/app/screens/library_screen.dart +++ b/lib/app/screens/library_screen.dart @@ -4,9 +4,11 @@ import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:material_symbols_icons/symbols.dart'; +import '../../l10n/generated/app_localizations.dart'; import '../lists/albums_grid.dart'; import '../lists/artists_list.dart'; import '../state/services.dart'; +import '../ui/text.dart'; import '../util/custom_scroll_fix.dart'; const kIconSize = 26.0; @@ -159,21 +161,26 @@ class TabTitleText extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final theme = Theme.of(context); - final tabText = useState(LibraryTab.home.toString()); + final l = AppLocalizations.of(context); + + String tabLocalization(LibraryTab tab) => switch (tab) { + LibraryTab.albums => l.navigationTabsAlbums, + LibraryTab.home => l.navigationTabsHome, + LibraryTab.artists => l.navigationTabsArtists, + LibraryTab.songs => l.navigationTabsSongs, + LibraryTab.playlists => l.navigationTabsPlaylists, + }; + + final tabName = tabLocalization(LibraryTab.values[tabController.index]); + final tabText = useState(tabName); useListenable(tabController); useEffect(() { - tabText.value = LibraryTab.values[tabController.index].toString(); + tabText.value = tabName; return; - }, [tabController.index]); + }, [tabName]); - return Text( - tabText.value, - style: theme.textTheme.headlineLarge?.copyWith( - fontWeight: FontWeight.w800, - ), - ); + return TextH1(tabText.value); } } diff --git a/lib/app/ui/text.dart b/lib/app/ui/text.dart new file mode 100644 index 0000000..08941b6 --- /dev/null +++ b/lib/app/ui/text.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; + +class TextH1 extends StatelessWidget { + const TextH1( + this.data, { + super.key, + }); + + final String data; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Text( + data, + style: theme.textTheme.headlineLarge?.copyWith( + fontWeight: FontWeight.w800, + ), + ); + } +} + +class TextH2 extends StatelessWidget { + const TextH2( + this.data, { + super.key, + }); + + final String data; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Text( + data, + style: theme.textTheme.headlineMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ); + } +} diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index cfb09ea..fe5983d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -1,4 +1,5 @@ { + "@@locale": "en", "actionsCancel": "Cancel", "@actionsCancel": {}, "actionsDelete": "Delete", @@ -21,6 +22,14 @@ "@messagesNothingHere": {}, "navigationTabsHome": "Home", "@navigationTabsHome": {}, + "navigationTabsAlbums": "Albums", + "@navigationTabsAlbums": {}, + "navigationTabsArtists": "Artists", + "@navigationTabsArtists": {}, + "navigationTabsPlaylists": "Playlists", + "@navigationTabsPlaylists": {}, + "navigationTabsSongs": "Songs", + "@navigationTabsSongs": {}, "navigationTabsLibrary": "Library", "@navigationTabsLibrary": {}, "navigationTabsSearch": "Search", diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index 0d83e37..b32f788 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -198,6 +198,30 @@ abstract class AppLocalizations { /// **'Home'** String get navigationTabsHome; + /// No description provided for @navigationTabsAlbums. + /// + /// In en, this message translates to: + /// **'Albums'** + String get navigationTabsAlbums; + + /// No description provided for @navigationTabsArtists. + /// + /// In en, this message translates to: + /// **'Artists'** + String get navigationTabsArtists; + + /// No description provided for @navigationTabsPlaylists. + /// + /// In en, this message translates to: + /// **'Playlists'** + String get navigationTabsPlaylists; + + /// No description provided for @navigationTabsSongs. + /// + /// In en, this message translates to: + /// **'Songs'** + String get navigationTabsSongs; + /// No description provided for @navigationTabsLibrary. /// /// In en, this message translates to: diff --git a/lib/l10n/generated/app_localizations_ar.dart b/lib/l10n/generated/app_localizations_ar.dart index f867570..3f522a8 100644 --- a/lib/l10n/generated/app_localizations_ar.dart +++ b/lib/l10n/generated/app_localizations_ar.dart @@ -41,6 +41,18 @@ class AppLocalizationsAr extends AppLocalizations { @override String get navigationTabsHome => 'الرئيسية'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'المكتبة'; diff --git a/lib/l10n/generated/app_localizations_ca.dart b/lib/l10n/generated/app_localizations_ca.dart index 0ef0f26..1f471a0 100644 --- a/lib/l10n/generated/app_localizations_ca.dart +++ b/lib/l10n/generated/app_localizations_ca.dart @@ -41,6 +41,18 @@ class AppLocalizationsCa extends AppLocalizations { @override String get navigationTabsHome => 'Inici'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Biblioteca'; diff --git a/lib/l10n/generated/app_localizations_cs.dart b/lib/l10n/generated/app_localizations_cs.dart index b4c8ce2..4e5e17d 100644 --- a/lib/l10n/generated/app_localizations_cs.dart +++ b/lib/l10n/generated/app_localizations_cs.dart @@ -41,6 +41,18 @@ class AppLocalizationsCs extends AppLocalizations { @override String get navigationTabsHome => 'Domů'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Knihovna'; diff --git a/lib/l10n/generated/app_localizations_da.dart b/lib/l10n/generated/app_localizations_da.dart index 96dadc7..1a4de9e 100644 --- a/lib/l10n/generated/app_localizations_da.dart +++ b/lib/l10n/generated/app_localizations_da.dart @@ -41,6 +41,18 @@ class AppLocalizationsDa extends AppLocalizations { @override String get navigationTabsHome => 'Hjem'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Bibliotek'; diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 744b692..36091ca 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -41,6 +41,18 @@ class AppLocalizationsDe extends AppLocalizations { @override String get navigationTabsHome => 'Startseite'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Bibliothek'; diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index 07ce50e..b76a708 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -41,6 +41,18 @@ class AppLocalizationsEn extends AppLocalizations { @override String get navigationTabsHome => 'Home'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Library'; diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart index fff8ae4..74aa369 100644 --- a/lib/l10n/generated/app_localizations_es.dart +++ b/lib/l10n/generated/app_localizations_es.dart @@ -41,6 +41,18 @@ class AppLocalizationsEs extends AppLocalizations { @override String get navigationTabsHome => 'Casa'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Biblioteca'; diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart index 47527df..d6a98ad 100644 --- a/lib/l10n/generated/app_localizations_fr.dart +++ b/lib/l10n/generated/app_localizations_fr.dart @@ -41,6 +41,18 @@ class AppLocalizationsFr extends AppLocalizations { @override String get navigationTabsHome => 'Accueil'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Bibliothèque'; diff --git a/lib/l10n/generated/app_localizations_gl.dart b/lib/l10n/generated/app_localizations_gl.dart index 33e4128..72e9d58 100644 --- a/lib/l10n/generated/app_localizations_gl.dart +++ b/lib/l10n/generated/app_localizations_gl.dart @@ -41,6 +41,18 @@ class AppLocalizationsGl extends AppLocalizations { @override String get navigationTabsHome => 'Inicio'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Biblioteca'; diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart index 5b41fe6..f8da8d4 100644 --- a/lib/l10n/generated/app_localizations_it.dart +++ b/lib/l10n/generated/app_localizations_it.dart @@ -41,6 +41,18 @@ class AppLocalizationsIt extends AppLocalizations { @override String get navigationTabsHome => 'Home'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Libreria'; diff --git a/lib/l10n/generated/app_localizations_ja.dart b/lib/l10n/generated/app_localizations_ja.dart index de58c87..bfb3bfe 100644 --- a/lib/l10n/generated/app_localizations_ja.dart +++ b/lib/l10n/generated/app_localizations_ja.dart @@ -41,6 +41,18 @@ class AppLocalizationsJa extends AppLocalizations { @override String get navigationTabsHome => 'ホーム'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'ライブラリ'; diff --git a/lib/l10n/generated/app_localizations_nb.dart b/lib/l10n/generated/app_localizations_nb.dart index a24330c..d7a6334 100644 --- a/lib/l10n/generated/app_localizations_nb.dart +++ b/lib/l10n/generated/app_localizations_nb.dart @@ -41,6 +41,18 @@ class AppLocalizationsNb extends AppLocalizations { @override String get navigationTabsHome => 'Hjem'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Bibliotek'; diff --git a/lib/l10n/generated/app_localizations_pa.dart b/lib/l10n/generated/app_localizations_pa.dart index 0264849..8fb597e 100644 --- a/lib/l10n/generated/app_localizations_pa.dart +++ b/lib/l10n/generated/app_localizations_pa.dart @@ -41,6 +41,18 @@ class AppLocalizationsPa extends AppLocalizations { @override String get navigationTabsHome => 'ਘਰ'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'ਲਾਇਬ੍ਰੇਰੀ'; diff --git a/lib/l10n/generated/app_localizations_pl.dart b/lib/l10n/generated/app_localizations_pl.dart index 5706ab1..2c630f1 100644 --- a/lib/l10n/generated/app_localizations_pl.dart +++ b/lib/l10n/generated/app_localizations_pl.dart @@ -41,6 +41,18 @@ class AppLocalizationsPl extends AppLocalizations { @override String get navigationTabsHome => 'Strona główna'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Kolekcja'; diff --git a/lib/l10n/generated/app_localizations_pt.dart b/lib/l10n/generated/app_localizations_pt.dart index 5bd8ab4..b221533 100644 --- a/lib/l10n/generated/app_localizations_pt.dart +++ b/lib/l10n/generated/app_localizations_pt.dart @@ -41,6 +41,18 @@ class AppLocalizationsPt extends AppLocalizations { @override String get navigationTabsHome => 'Início'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Biblioteca'; diff --git a/lib/l10n/generated/app_localizations_ru.dart b/lib/l10n/generated/app_localizations_ru.dart index c24d48b..dd45d20 100644 --- a/lib/l10n/generated/app_localizations_ru.dart +++ b/lib/l10n/generated/app_localizations_ru.dart @@ -41,6 +41,18 @@ class AppLocalizationsRu extends AppLocalizations { @override String get navigationTabsHome => 'Главная'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Библиотека'; diff --git a/lib/l10n/generated/app_localizations_tr.dart b/lib/l10n/generated/app_localizations_tr.dart index 67cd6c4..835fea0 100644 --- a/lib/l10n/generated/app_localizations_tr.dart +++ b/lib/l10n/generated/app_localizations_tr.dart @@ -41,6 +41,18 @@ class AppLocalizationsTr extends AppLocalizations { @override String get navigationTabsHome => 'Giriş'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Kütüphane'; diff --git a/lib/l10n/generated/app_localizations_vi.dart b/lib/l10n/generated/app_localizations_vi.dart index 19f0614..e4958f6 100644 --- a/lib/l10n/generated/app_localizations_vi.dart +++ b/lib/l10n/generated/app_localizations_vi.dart @@ -41,6 +41,18 @@ class AppLocalizationsVi extends AppLocalizations { @override String get navigationTabsHome => 'Trang chủ'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => 'Thư Viện'; diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index 307c37d..e76c98b 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -41,6 +41,18 @@ class AppLocalizationsZh extends AppLocalizations { @override String get navigationTabsHome => '首页'; + @override + String get navigationTabsAlbums => 'Albums'; + + @override + String get navigationTabsArtists => 'Artists'; + + @override + String get navigationTabsPlaylists => 'Playlists'; + + @override + String get navigationTabsSongs => 'Songs'; + @override String get navigationTabsLibrary => '所有';