fix: search screen translations
This commit is contained in:
+18
-2
@@ -4,9 +4,9 @@
|
||||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 4
|
||||
/// Strings: 1240 (310 per locale)
|
||||
/// Strings: 1248 (312 per locale)
|
||||
///
|
||||
/// Built on 2025-11-12 at 20:36 UTC
|
||||
/// Built on 2025-11-13 at 08:01 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint
|
||||
@@ -361,6 +361,8 @@ class _StringsSearchEn {
|
||||
// Translations
|
||||
String get hint => 'Search movies, shows, music...';
|
||||
String get tryDifferentTerm => 'Try a different search term';
|
||||
String get searchYourMedia => 'Search your media';
|
||||
String get enterTitleActorOrKeyword => 'Enter a title, actor, or keyword';
|
||||
}
|
||||
|
||||
// Path: hotkeys
|
||||
@@ -967,6 +969,8 @@ class _StringsSearchIt implements _StringsSearchEn {
|
||||
// Translations
|
||||
@override String get hint => 'Cerca film. spettacoli, musica...';
|
||||
@override String get tryDifferentTerm => 'Prova altri termini di ricerca';
|
||||
@override String get searchYourMedia => 'Cerca nei tuoi media';
|
||||
@override String get enterTitleActorOrKeyword => 'Inserisci un titolo, attore o parola chiave';
|
||||
}
|
||||
|
||||
// Path: hotkeys
|
||||
@@ -1573,6 +1577,8 @@ class _StringsSearchNl implements _StringsSearchEn {
|
||||
// Translations
|
||||
@override String get hint => 'Zoek films, series, muziek...';
|
||||
@override String get tryDifferentTerm => 'Probeer een andere zoekterm';
|
||||
@override String get searchYourMedia => 'Zoek in je media';
|
||||
@override String get enterTitleActorOrKeyword => 'Voer een titel, acteur of trefwoord in';
|
||||
}
|
||||
|
||||
// Path: hotkeys
|
||||
@@ -2179,6 +2185,8 @@ class _StringsSearchSv implements _StringsSearchEn {
|
||||
// Translations
|
||||
@override String get hint => 'Sök filmer, serier, musik...';
|
||||
@override String get tryDifferentTerm => 'Prova en annan sökterm';
|
||||
@override String get searchYourMedia => 'Sök i dina media';
|
||||
@override String get enterTitleActorOrKeyword => 'Ange en titel, skådespelare eller nyckelord';
|
||||
}
|
||||
|
||||
// Path: hotkeys
|
||||
@@ -2677,6 +2685,8 @@ extension on Translations {
|
||||
case 'settings.shortcutUpdated': return ({required Object action}) => 'Shortcut updated for ${action}';
|
||||
case 'search.hint': return 'Search movies, shows, music...';
|
||||
case 'search.tryDifferentTerm': return 'Try a different search term';
|
||||
case 'search.searchYourMedia': return 'Search your media';
|
||||
case 'search.enterTitleActorOrKeyword': return 'Enter a title, actor, or keyword';
|
||||
case 'hotkeys.setShortcutFor': return ({required Object actionName}) => 'Set Shortcut for ${actionName}';
|
||||
case 'hotkeys.clearShortcut': return 'Clear shortcut';
|
||||
case 'pinEntry.enterPin': return 'Enter PIN';
|
||||
@@ -2995,6 +3005,8 @@ extension on _StringsIt {
|
||||
case 'settings.shortcutUpdated': return ({required Object action}) => 'Scorciatoia aggiornata per ${action}';
|
||||
case 'search.hint': return 'Cerca film. spettacoli, musica...';
|
||||
case 'search.tryDifferentTerm': return 'Prova altri termini di ricerca';
|
||||
case 'search.searchYourMedia': return 'Cerca nei tuoi media';
|
||||
case 'search.enterTitleActorOrKeyword': return 'Inserisci un titolo, attore o parola chiave';
|
||||
case 'hotkeys.setShortcutFor': return ({required Object actionName}) => 'Imposta scorciatoia per ${actionName}';
|
||||
case 'hotkeys.clearShortcut': return 'Elimina scorciatoia';
|
||||
case 'pinEntry.enterPin': return 'Inserisci PIN';
|
||||
@@ -3313,6 +3325,8 @@ extension on _StringsNl {
|
||||
case 'settings.shortcutUpdated': return ({required Object action}) => 'Sneltoets bijgewerkt voor ${action}';
|
||||
case 'search.hint': return 'Zoek films, series, muziek...';
|
||||
case 'search.tryDifferentTerm': return 'Probeer een andere zoekterm';
|
||||
case 'search.searchYourMedia': return 'Zoek in je media';
|
||||
case 'search.enterTitleActorOrKeyword': return 'Voer een titel, acteur of trefwoord in';
|
||||
case 'hotkeys.setShortcutFor': return ({required Object actionName}) => 'Stel sneltoets in voor ${actionName}';
|
||||
case 'hotkeys.clearShortcut': return 'Wis sneltoets';
|
||||
case 'pinEntry.enterPin': return 'Voer PIN in';
|
||||
@@ -3631,6 +3645,8 @@ extension on _StringsSv {
|
||||
case 'settings.shortcutUpdated': return ({required Object action}) => 'Genväg uppdaterad för ${action}';
|
||||
case 'search.hint': return 'Sök filmer, serier, musik...';
|
||||
case 'search.tryDifferentTerm': return 'Prova en annan sökterm';
|
||||
case 'search.searchYourMedia': return 'Sök i dina media';
|
||||
case 'search.enterTitleActorOrKeyword': return 'Ange en titel, skådespelare eller nyckelord';
|
||||
case 'hotkeys.setShortcutFor': return ({required Object actionName}) => 'Sätt genväg för ${actionName}';
|
||||
case 'hotkeys.clearShortcut': return 'Rensa genväg';
|
||||
case 'pinEntry.enterPin': return 'Ange PIN';
|
||||
|
||||
@@ -132,7 +132,9 @@
|
||||
},
|
||||
"search": {
|
||||
"hint": "Search movies, shows, music...",
|
||||
"tryDifferentTerm": "Try a different search term"
|
||||
"tryDifferentTerm": "Try a different search term",
|
||||
"searchYourMedia": "Search your media",
|
||||
"enterTitleActorOrKeyword": "Enter a title, actor, or keyword"
|
||||
},
|
||||
"hotkeys": {
|
||||
"setShortcutFor": "Set Shortcut for ${actionName}",
|
||||
@@ -363,4 +365,4 @@
|
||||
"libraries": "Libraries",
|
||||
"settings": "Settings"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +132,9 @@
|
||||
},
|
||||
"search": {
|
||||
"hint": "Cerca film. spettacoli, musica...",
|
||||
"tryDifferentTerm": "Prova altri termini di ricerca"
|
||||
"tryDifferentTerm": "Prova altri termini di ricerca",
|
||||
"searchYourMedia": "Cerca nei tuoi media",
|
||||
"enterTitleActorOrKeyword": "Inserisci un titolo, attore o parola chiave"
|
||||
},
|
||||
"hotkeys": {
|
||||
"setShortcutFor": "Imposta scorciatoia per ${actionName}",
|
||||
|
||||
@@ -132,7 +132,9 @@
|
||||
},
|
||||
"search": {
|
||||
"hint": "Zoek films, series, muziek...",
|
||||
"tryDifferentTerm": "Probeer een andere zoekterm"
|
||||
"tryDifferentTerm": "Probeer een andere zoekterm",
|
||||
"searchYourMedia": "Zoek in je media",
|
||||
"enterTitleActorOrKeyword": "Voer een titel, acteur of trefwoord in"
|
||||
},
|
||||
"hotkeys": {
|
||||
"setShortcutFor": "Stel sneltoets in voor ${actionName}",
|
||||
|
||||
@@ -132,7 +132,9 @@
|
||||
},
|
||||
"search": {
|
||||
"hint": "Sök filmer, serier, musik...",
|
||||
"tryDifferentTerm": "Prova en annan sökterm"
|
||||
"tryDifferentTerm": "Prova en annan sökterm",
|
||||
"searchYourMedia": "Sök i dina media",
|
||||
"enterTitleActorOrKeyword": "Ange en titel, skådespelare eller nyckelord"
|
||||
},
|
||||
"hotkeys": {
|
||||
"setShortcutFor": "Sätt genväg för ${actionName}",
|
||||
@@ -363,4 +365,4 @@
|
||||
"libraries": "Bibliotek",
|
||||
"settings": "Inställningar"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../client/plex_client.dart';
|
||||
import '../models/plex_metadata.dart';
|
||||
import '../services/settings_service.dart';
|
||||
import '../providers/settings_provider.dart';
|
||||
import '../utils/provider_extensions.dart';
|
||||
import '../utils/app_logger.dart';
|
||||
import '../widgets/media_card.dart';
|
||||
import '../widgets/desktop_app_bar.dart';
|
||||
import '../mixins/refreshable.dart';
|
||||
import '../mixins/item_updatable.dart';
|
||||
import '../i18n/strings.g.dart';
|
||||
import '../mixins/item_updatable.dart';
|
||||
import '../mixins/refreshable.dart';
|
||||
import '../models/plex_metadata.dart';
|
||||
import '../providers/settings_provider.dart';
|
||||
import '../services/settings_service.dart';
|
||||
import '../utils/app_logger.dart';
|
||||
import '../utils/provider_extensions.dart';
|
||||
import '../widgets/desktop_app_bar.dart';
|
||||
import '../widgets/media_card.dart';
|
||||
|
||||
class SearchScreen extends StatefulWidget {
|
||||
const SearchScreen({super.key});
|
||||
@@ -107,9 +109,9 @@ class _SearchScreenState extends State<SearchScreen>
|
||||
setState(() {
|
||||
_isSearching = false;
|
||||
});
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text(t.errors.searchFailed(error: e))));
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(t.errors.searchFailed(error: e))),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -124,7 +126,9 @@ class _SearchScreenState extends State<SearchScreen>
|
||||
|
||||
// Public method to fully reload all content (for profile switches)
|
||||
void fullRefresh() {
|
||||
appLogger.d('SearchScreen.fullRefresh() called - clearing search and reloading');
|
||||
appLogger.d(
|
||||
'SearchScreen.fullRefresh() called - clearing search and reloading',
|
||||
);
|
||||
// Clear search results and search text for new profile
|
||||
_searchController.clear();
|
||||
setState(() {
|
||||
@@ -186,14 +190,14 @@ class _SearchScreenState extends State<SearchScreen>
|
||||
Icon(Icons.search, size: 80, color: Colors.grey.shade400),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'Search your media',
|
||||
t.search.searchYourMedia,
|
||||
style: Theme.of(context).textTheme.titleLarge?.copyWith(
|
||||
color: Colors.grey.shade600,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Enter a title, actor, or keyword',
|
||||
t.search.enterTitleActorOrKeyword,
|
||||
style: TextStyle(color: Colors.grey.shade600),
|
||||
),
|
||||
],
|
||||
@@ -234,17 +238,14 @@ class _SearchScreenState extends State<SearchScreen>
|
||||
return SliverPadding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
sliver: SliverList(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(context, index) {
|
||||
final item = _searchResults[index];
|
||||
return MediaCard(
|
||||
key: Key(item.ratingKey),
|
||||
item: item,
|
||||
onRefresh: updateItem,
|
||||
);
|
||||
},
|
||||
childCount: _searchResults.length,
|
||||
),
|
||||
delegate: SliverChildBuilderDelegate((context, index) {
|
||||
final item = _searchResults[index];
|
||||
return MediaCard(
|
||||
key: Key(item.ratingKey),
|
||||
item: item,
|
||||
onRefresh: updateItem,
|
||||
);
|
||||
}, childCount: _searchResults.length),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user