Files
plezy/lib/i18n/strings.g.dart
T
2025-12-01 11:08:03 +01:00

13799 lines
473 KiB
Dart
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/// Generated file. Do not edit.
///
/// Original: lib/i18n
/// To regenerate, run: `dart run slang`
///
/// Locales: 6
/// Strings: 2704 (450 per locale)
///
/// Built on 2025-12-01 at 09:54 UTC
// coverage:ignore-file
// ignore_for_file: type=lint
import 'package:flutter/widgets.dart';
import 'package:slang/builder/model/node.dart';
import 'package:slang_flutter/slang_flutter.dart';
export 'package:slang_flutter/slang_flutter.dart';
const AppLocale _baseLocale = AppLocale.en;
/// Supported locales, see extension methods below.
///
/// Usage:
/// - LocaleSettings.setLocale(AppLocale.en) // set locale
/// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
en(languageCode: 'en', build: Translations.build),
de(languageCode: 'de', build: _StringsDe.build),
it(languageCode: 'it', build: _StringsIt.build),
nl(languageCode: 'nl', build: _StringsNl.build),
sv(languageCode: 'sv', build: _StringsSv.build),
zh(languageCode: 'zh', build: _StringsZh.build);
const AppLocale({
required this.languageCode,
this.scriptCode,
this.countryCode,
required this.build,
}); // ignore: unused_element
@override
final String languageCode;
@override
final String? scriptCode;
@override
final String? countryCode;
@override
final TranslationBuilder<AppLocale, Translations> build;
/// Gets current instance managed by [LocaleSettings].
Translations get translations =>
LocaleSettings.instance.translationMap[this]!;
}
/// Method A: Simple
///
/// No rebuild after locale change.
/// Translation happens during initialization of the widget (call of t).
/// Configurable via 'translate_var'.
///
/// Usage:
/// String a = t.someKey.anotherKey;
/// String b = t['someKey.anotherKey']; // Only for edge cases!
Translations get t => LocaleSettings.instance.currentTranslations;
/// Method B: Advanced
///
/// All widgets using this method will trigger a rebuild when locale changes.
/// Use this if you have e.g. a settings page where the user can select the locale during runtime.
///
/// Step 1:
/// wrap your App with
/// TranslationProvider(
/// child: MyApp()
/// );
///
/// Step 2:
/// final t = Translations.of(context); // Get t variable.
/// String a = t.someKey.anotherKey; // Use t variable.
/// String b = t['someKey.anotherKey']; // Only for edge cases!
class TranslationProvider
extends BaseTranslationProvider<AppLocale, Translations> {
TranslationProvider({required super.child})
: super(settings: LocaleSettings.instance);
static InheritedLocaleData<AppLocale, Translations> of(
BuildContext context,
) => InheritedLocaleData.of<AppLocale, Translations>(context);
}
/// Method B shorthand via [BuildContext] extension method.
/// Configurable via 'translate_var'.
///
/// Usage (e.g. in a widget's build method):
/// context.t.someKey.anotherKey
extension BuildContextTranslationsExtension on BuildContext {
Translations get t => TranslationProvider.of(this).translations;
}
/// Manages all translation instances and the current locale
class LocaleSettings
extends BaseFlutterLocaleSettings<AppLocale, Translations> {
LocaleSettings._() : super(utils: AppLocaleUtils.instance);
static final instance = LocaleSettings._();
// static aliases (checkout base methods for documentation)
static AppLocale get currentLocale => instance.currentLocale;
static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
static AppLocale setLocale(
AppLocale locale, {
bool? listenToDeviceLocale = false,
}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
static AppLocale setLocaleRaw(
String rawLocale, {
bool? listenToDeviceLocale = false,
}) => instance.setLocaleRaw(
rawLocale,
listenToDeviceLocale: listenToDeviceLocale,
);
static AppLocale useDeviceLocale() => instance.useDeviceLocale();
@Deprecated('Use [AppLocaleUtils.supportedLocales]')
static List<Locale> get supportedLocales => instance.supportedLocales;
@Deprecated('Use [AppLocaleUtils.supportedLocalesRaw]')
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
static void setPluralResolver({
String? language,
AppLocale? locale,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) => instance.setPluralResolver(
language: language,
locale: locale,
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
}
/// Provides utility functions without any side effects.
class AppLocaleUtils extends BaseAppLocaleUtils<AppLocale, Translations> {
AppLocaleUtils._()
: super(baseLocale: _baseLocale, locales: AppLocale.values);
static final instance = AppLocaleUtils._();
// static aliases (checkout base methods for documentation)
static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
static AppLocale parseLocaleParts({
required String languageCode,
String? scriptCode,
String? countryCode,
}) => instance.parseLocaleParts(
languageCode: languageCode,
scriptCode: scriptCode,
countryCode: countryCode,
);
static AppLocale findDeviceLocale() => instance.findDeviceLocale();
static List<Locale> get supportedLocales => instance.supportedLocales;
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
}
// translations
// Path: <root>
class Translations implements BaseTranslations<AppLocale, Translations> {
/// Returns the current translations of the given [context].
///
/// Usage:
/// final t = Translations.of(context);
static Translations of(BuildContext context) =>
InheritedLocaleData.of<AppLocale, Translations>(context).translations;
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
Translations.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.en,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <en>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
dynamic operator [](String key) => $meta.getTranslation(key);
late final Translations _root = this; // ignore: unused_field
// Translations
late final _StringsAppEn app = _StringsAppEn._(_root);
late final _StringsAuthEn auth = _StringsAuthEn._(_root);
late final _StringsCommonEn common = _StringsCommonEn._(_root);
late final _StringsScreensEn screens = _StringsScreensEn._(_root);
late final _StringsUpdateEn update = _StringsUpdateEn._(_root);
late final _StringsSettingsEn settings = _StringsSettingsEn._(_root);
late final _StringsSearchEn search = _StringsSearchEn._(_root);
late final _StringsHotkeysEn hotkeys = _StringsHotkeysEn._(_root);
late final _StringsPinEntryEn pinEntry = _StringsPinEntryEn._(_root);
late final _StringsFileInfoEn fileInfo = _StringsFileInfoEn._(_root);
late final _StringsMediaMenuEn mediaMenu = _StringsMediaMenuEn._(_root);
late final _StringsAccessibilityEn accessibility = _StringsAccessibilityEn._(
_root,
);
late final _StringsTooltipsEn tooltips = _StringsTooltipsEn._(_root);
late final _StringsVideoControlsEn videoControls = _StringsVideoControlsEn._(
_root,
);
late final _StringsUserStatusEn userStatus = _StringsUserStatusEn._(_root);
late final _StringsMessagesEn messages = _StringsMessagesEn._(_root);
late final _StringsProfileEn profile = _StringsProfileEn._(_root);
late final _StringsSubtitlingStylingEn subtitlingStyling =
_StringsSubtitlingStylingEn._(_root);
late final _StringsDialogEn dialog = _StringsDialogEn._(_root);
late final _StringsDiscoverEn discover = _StringsDiscoverEn._(_root);
late final _StringsErrorsEn errors = _StringsErrorsEn._(_root);
late final _StringsLibrariesEn libraries = _StringsLibrariesEn._(_root);
late final _StringsAboutEn about = _StringsAboutEn._(_root);
late final _StringsServerSelectionEn serverSelection =
_StringsServerSelectionEn._(_root);
late final _StringsHubDetailEn hubDetail = _StringsHubDetailEn._(_root);
late final _StringsLogsEn logs = _StringsLogsEn._(_root);
late final _StringsLicensesEn licenses = _StringsLicensesEn._(_root);
late final _StringsNavigationEn navigation = _StringsNavigationEn._(_root);
late final _StringsCollectionsEn collections = _StringsCollectionsEn._(_root);
late final _StringsPlaylistsEn playlists = _StringsPlaylistsEn._(_root);
}
// Path: app
class _StringsAppEn {
_StringsAppEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Plezy';
String get loading => 'Loading...';
}
// Path: auth
class _StringsAuthEn {
_StringsAuthEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get signInWithPlex => 'Sign in with Plex';
String get showQRCode => 'Show QR Code';
String get cancel => 'Cancel';
String get authenticate => 'Authenticate';
String get retry => 'Retry';
String get debugEnterToken => 'Debug: Enter Plex Token';
String get plexTokenLabel => 'Plex Auth Token';
String get plexTokenHint => 'Enter your Plex.tv token';
String get authenticationTimeout =>
'Authentication timed out. Please try again.';
String get scanQRCodeInstruction =>
'Scan this QR code with a device logged into Plex to authenticate.';
String get waitingForAuth =>
'Waiting for authentication...\nPlease complete sign-in in your browser.';
}
// Path: common
class _StringsCommonEn {
_StringsCommonEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get cancel => 'Cancel';
String get save => 'Save';
String get close => 'Close';
String get clear => 'Clear';
String get reset => 'Reset';
String get later => 'Later';
String get submit => 'Submit';
String get confirm => 'Confirm';
String get retry => 'Retry';
String get playNow => 'Play Now';
String get logout => 'Logout';
String get online => 'Online';
String get offline => 'Offline';
String get owned => 'Owned';
String get shared => 'Shared';
String get current => 'CURRENT';
String get unknown => 'Unknown';
String get refresh => 'Refresh';
String get yes => 'Yes';
String get no => 'No';
String get server => 'Server';
String get delete => 'Delete';
String get shuffle => 'Shuffle';
String get addTo => 'Add to...';
}
// Path: screens
class _StringsScreensEn {
_StringsScreensEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get licenses => 'Licenses';
String get switchProfile => 'Switch Profile';
String get subtitleStyling => 'Subtitle Styling';
String get search => 'Search';
String get logs => 'Logs';
}
// Path: update
class _StringsUpdateEn {
_StringsUpdateEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get available => 'Update Available';
String versionAvailable({required Object version}) =>
'Version ${version} is available';
String currentVersion({required Object version}) => 'Current: ${version}';
String get skipVersion => 'Skip This Version';
String get viewRelease => 'View Release';
String get latestVersion => 'You are on the latest version';
String get checkFailed => 'Failed to check for updates';
}
// Path: settings
class _StringsSettingsEn {
_StringsSettingsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Settings';
String get language => 'Language';
String get theme => 'Theme';
String get appearance => 'Appearance';
String get videoPlayback => 'Video Playback';
String get shufflePlay => 'Shuffle Play';
String get advanced => 'Advanced';
String get useSeasonPostersDescription =>
'Show season poster instead of series poster for episodes';
String get showHeroSectionDescription =>
'Display featured content carousel on home screen';
String get secondsLabel => 'Seconds';
String get minutesLabel => 'Minutes';
String get secondsShort => 's';
String get minutesShort => 'm';
String durationHint({required Object min, required Object max}) =>
'Enter duration (${min}-${max})';
String get systemTheme => 'System';
String get systemThemeDescription => 'Follow system settings';
String get lightTheme => 'Light';
String get darkTheme => 'Dark';
String get libraryDensity => 'Library Density';
String get compact => 'Compact';
String get compactDescription => 'Smaller cards, more items visible';
String get normal => 'Normal';
String get normalDescription => 'Default size';
String get comfortable => 'Comfortable';
String get comfortableDescription => 'Larger cards, fewer items visible';
String get viewMode => 'View Mode';
String get gridView => 'Grid';
String get gridViewDescription => 'Display items in a grid layout';
String get listView => 'List';
String get listViewDescription => 'Display items in a list layout';
String get useSeasonPosters => 'Use Season Posters';
String get showHeroSection => 'Show Hero Section';
String get hardwareDecoding => 'Hardware Decoding';
String get hardwareDecodingDescription =>
'Use hardware acceleration when available';
String get bufferSize => 'Buffer Size';
String bufferSizeMB({required Object size}) => '${size}MB';
String get subtitleStyling => 'Subtitle Styling';
String get subtitleStylingDescription => 'Customize subtitle appearance';
String get smallSkipDuration => 'Small Skip Duration';
String get largeSkipDuration => 'Large Skip Duration';
String secondsUnit({required Object seconds}) => '${seconds} seconds';
String get defaultSleepTimer => 'Default Sleep Timer';
String minutesUnit({required Object minutes}) => '${minutes} minutes';
String get rememberTrackSelections =>
'Remember track selections per show/movie';
String get rememberTrackSelectionsDescription =>
'Automatically save audio and subtitle language preferences when you change tracks during playback';
String get unwatchedOnly => 'Unwatched Only';
String get unwatchedOnlyDescription =>
'Only include unwatched episodes in shuffle queue';
String get shuffleOrderNavigation => 'Shuffle Order Navigation';
String get shuffleOrderNavigationDescription =>
'Next/previous buttons follow shuffled order';
String get loopShuffleQueue => 'Loop Shuffle Queue';
String get loopShuffleQueueDescription =>
'Restart queue when reaching the end';
String get videoPlayerControls => 'Video Player Controls';
String get keyboardShortcuts => 'Keyboard Shortcuts';
String get keyboardShortcutsDescription => 'Customize keyboard shortcuts';
String get debugLogging => 'Debug Logging';
String get debugLoggingDescription =>
'Enable detailed logging for troubleshooting';
String get viewLogs => 'View Logs';
String get viewLogsDescription => 'View application logs';
String get clearCache => 'Clear Cache';
String get clearCacheDescription =>
'This will clear all cached images and data. The app may take longer to load content after clearing the cache.';
String get clearCacheSuccess => 'Cache cleared successfully';
String get resetSettings => 'Reset Settings';
String get resetSettingsDescription =>
'This will reset all settings to their default values. This action cannot be undone.';
String get resetSettingsSuccess => 'Settings reset successfully';
String get shortcutsReset => 'Shortcuts reset to defaults';
String get about => 'About';
String get aboutDescription => 'App information and licenses';
String get updates => 'Updates';
String get updateAvailable => 'Update Available';
String get checkForUpdates => 'Check for Updates';
String get validationErrorEnterNumber => 'Please enter a valid number';
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => 'Duration must be between ${min} and ${max} ${unit}';
String shortcutAlreadyAssigned({required Object action}) =>
'Shortcut already assigned to ${action}';
String shortcutUpdated({required Object action}) =>
'Shortcut updated for ${action}';
String get autoSkip => 'Auto Skip';
String get autoSkipIntro => 'Auto Skip Intro';
String get autoSkipIntroDescription =>
'Automatically skip intro markers after a few seconds';
String get autoSkipCredits => 'Auto Skip Credits';
String get autoSkipCreditsDescription =>
'Automatically skip credits and play next episode';
String get autoSkipDelay => 'Auto Skip Delay';
String autoSkipDelayDescription({required Object seconds}) =>
'Wait ${seconds} seconds before auto-skipping';
}
// Path: search
class _StringsSearchEn {
_StringsSearchEn._(this._root);
final Translations _root; // ignore: unused_field
// 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
class _StringsHotkeysEn {
_StringsHotkeysEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String setShortcutFor({required Object actionName}) =>
'Set Shortcut for ${actionName}';
String get clearShortcut => 'Clear shortcut';
}
// Path: pinEntry
class _StringsPinEntryEn {
_StringsPinEntryEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get enterPin => 'Enter PIN';
String get showPin => 'Show PIN';
String get hidePin => 'Hide PIN';
}
// Path: fileInfo
class _StringsFileInfoEn {
_StringsFileInfoEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'File Info';
String get video => 'Video';
String get audio => 'Audio';
String get file => 'File';
String get advanced => 'Advanced';
String get codec => 'Codec';
String get resolution => 'Resolution';
String get bitrate => 'Bitrate';
String get frameRate => 'Frame Rate';
String get aspectRatio => 'Aspect Ratio';
String get profile => 'Profile';
String get bitDepth => 'Bit Depth';
String get colorSpace => 'Color Space';
String get colorRange => 'Color Range';
String get colorPrimaries => 'Color Primaries';
String get chromaSubsampling => 'Chroma Subsampling';
String get channels => 'Channels';
String get path => 'Path';
String get size => 'Size';
String get container => 'Container';
String get duration => 'Duration';
String get optimizedForStreaming => 'Optimized for Streaming';
String get has64bitOffsets => '64-bit Offsets';
}
// Path: mediaMenu
class _StringsMediaMenuEn {
_StringsMediaMenuEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get markAsWatched => 'Mark as Watched';
String get markAsUnwatched => 'Mark as Unwatched';
String get removeFromContinueWatching => 'Remove from Continue Watching';
String get goToSeries => 'Go to series';
String get goToSeason => 'Go to season';
String get shufflePlay => 'Shuffle Play';
String get fileInfo => 'File Info';
}
// Path: accessibility
class _StringsAccessibilityEn {
_StringsAccessibilityEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String mediaCardMovie({required Object title}) => '${title}, movie';
String mediaCardShow({required Object title}) => '${title}, TV show';
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
String get mediaCardWatched => 'watched';
String mediaCardPartiallyWatched({required Object percent}) =>
'${percent} percent watched';
String get mediaCardUnwatched => 'unwatched';
String get tapToPlay => 'Tap to play';
}
// Path: tooltips
class _StringsTooltipsEn {
_StringsTooltipsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get shufflePlay => 'Shuffle play';
String get markAsWatched => 'Mark as watched';
String get markAsUnwatched => 'Mark as unwatched';
}
// Path: videoControls
class _StringsVideoControlsEn {
_StringsVideoControlsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get audioLabel => 'Audio';
String get subtitlesLabel => 'Subtitles';
String get resetToZero => 'Reset to 0ms';
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
String playsLater({required Object label}) => '${label} plays later';
String playsEarlier({required Object label}) => '${label} plays earlier';
String get noOffset => 'No offset';
String get letterbox => 'Letterbox';
String get fillScreen => 'Fill screen';
String get stretch => 'Stretch';
String get lockRotation => 'Lock rotation';
String get unlockRotation => 'Unlock rotation';
String get sleepTimer => 'Sleep Timer';
String get timerActive => 'Timer Active';
String playbackWillPauseIn({required Object duration}) =>
'Playback will pause in ${duration}';
String get sleepTimerCompleted => 'Sleep timer completed - playback paused';
String get playButton => 'Play';
String get pauseButton => 'Pause';
String seekBackwardButton({required Object seconds}) =>
'Seek backward ${seconds} seconds';
String seekForwardButton({required Object seconds}) =>
'Seek forward ${seconds} seconds';
String get previousButton => 'Previous episode';
String get nextButton => 'Next episode';
String get previousChapterButton => 'Previous chapter';
String get nextChapterButton => 'Next chapter';
String get volumeButton => 'Volume';
String get muteButton => 'Mute';
String get unmuteButton => 'Unmute';
String get settingsButton => 'Video settings';
String get audioTrackButton => 'Audio tracks';
String get subtitlesButton => 'Subtitles';
String get chaptersButton => 'Chapters';
String get versionsButton => 'Video versions';
String get aspectRatioButton => 'Aspect ratio';
String get fullscreenButton => 'Enter fullscreen';
String get exitFullscreenButton => 'Exit fullscreen';
String get rotationLockButton => 'Rotation lock';
String get timelineSlider => 'Video timeline';
String get volumeSlider => 'Volume level';
String get backButton => 'Back';
}
// Path: userStatus
class _StringsUserStatusEn {
_StringsUserStatusEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get admin => 'Admin';
String get restricted => 'Restricted';
String get protected => 'Protected';
String get current => 'CURRENT';
}
// Path: messages
class _StringsMessagesEn {
_StringsMessagesEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get markedAsWatched => 'Marked as watched';
String get markedAsUnwatched => 'Marked as unwatched';
String get removedFromContinueWatching => 'Removed from Continue Watching';
String errorLoading({required Object error}) => 'Error: ${error}';
String get fileInfoNotAvailable => 'File information not available';
String errorLoadingFileInfo({required Object error}) =>
'Error loading file info: ${error}';
String get errorLoadingSeries => 'Error loading series';
String get errorLoadingSeason => 'Error loading season';
String get musicNotSupported => 'Music playback is not yet supported';
String get logsCleared => 'Logs cleared';
String get logsCopied => 'Logs copied to clipboard';
String get noLogsAvailable => 'No logs available';
String libraryScanning({required Object title}) => 'Scanning "${title}"...';
String libraryScanStarted({required Object title}) =>
'Library scan started for "${title}"';
String libraryScanFailed({required Object error}) =>
'Failed to scan library: ${error}';
String metadataRefreshing({required Object title}) =>
'Refreshing metadata for "${title}"...';
String metadataRefreshStarted({required Object title}) =>
'Metadata refresh started for "${title}"';
String metadataRefreshFailed({required Object error}) =>
'Failed to refresh metadata: ${error}';
String get noPlexToken => 'No Plex token found. Please login again.';
String get logoutConfirm => 'Are you sure you want to logout?';
String get noSeasonsFound => 'No seasons found';
String get noEpisodesFound => 'No episodes found in first season';
String get noEpisodesFoundGeneral => 'No episodes found';
String get noResultsFound => 'No results found';
String sleepTimerSet({required Object label}) =>
'Sleep timer set for ${label}';
String failedToSwitchProfile({required Object displayName}) =>
'Failed to switch to ${displayName}';
String get noItemsAvailable => 'No items available';
String get failedToCreatePlayQueue => 'Failed to create play queue';
String get failedToCreatePlayQueueNoItems =>
'Failed to create play queue - no items';
String failedPlayback({required Object action, required Object error}) =>
'Failed to ${action}: ${error}';
}
// Path: profile
class _StringsProfileEn {
_StringsProfileEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get noUsersAvailable => 'No users available';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get stylingOptions => 'Styling Options';
String get fontSize => 'Font Size';
String get textColor => 'Text Color';
String get borderSize => 'Border Size';
String get borderColor => 'Border Color';
String get backgroundOpacity => 'Background Opacity';
String get backgroundColor => 'Background Color';
}
// Path: dialog
class _StringsDialogEn {
_StringsDialogEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get confirmAction => 'Confirm Action';
String get areYouSure => 'Are you sure you want to perform this action?';
String get cancel => 'Cancel';
String get playNow => 'Play Now';
}
// Path: discover
class _StringsDiscoverEn {
_StringsDiscoverEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Discover';
String get switchProfile => 'Switch Profile';
String get logout => 'Logout';
String get noContentAvailable => 'No content available';
String get addMediaToLibraries => 'Add some media to your libraries';
String get continueWatching => 'Continue Watching';
String get recentlyAdded => 'Recently Added';
String get play => 'Play';
String get resume => 'Resume';
String playEpisode({required Object season, required Object episode}) =>
'Play S${season}, E${episode}';
String resumeEpisode({required Object season, required Object episode}) =>
'Resume S${season}, E${episode}';
String get pause => 'Pause';
String get overview => 'Overview';
String get cast => 'Cast';
String get seasons => 'Seasons';
String get studio => 'Studio';
String get rating => 'Rating';
String get watched => 'Watched';
String episodeCount({required Object count}) => '${count} episodes';
String watchedProgress({required Object watched, required Object total}) =>
'${watched}/${total} watched';
String get movie => 'Movie';
String get tvShow => 'TV Show';
String minutesLeft({required Object minutes}) => '${minutes} min left';
}
// Path: errors
class _StringsErrorsEn {
_StringsErrorsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String searchFailed({required Object error}) => 'Search failed: ${error}';
String connectionTimeout({required Object context}) =>
'Connection timeout while loading ${context}';
String get connectionFailed => 'Unable to connect to Plex server';
String failedToLoad({required Object context, required Object error}) =>
'Failed to load ${context}: ${error}';
String get noClientAvailable => 'No client available';
String authenticationFailed({required Object error}) =>
'Authentication failed: ${error}';
String get couldNotLaunchUrl => 'Could not launch auth URL';
String get pleaseEnterToken => 'Please enter a token';
String get invalidToken => 'Invalid token';
String failedToVerifyToken({required Object error}) =>
'Failed to verify token: ${error}';
String failedToSwitchProfile({required Object displayName}) =>
'Failed to switch to ${displayName}';
String get connectionFailedGeneric => 'Connection failed';
}
// Path: libraries
class _StringsLibrariesEn {
_StringsLibrariesEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Libraries';
String get scanLibraryFiles => 'Scan Library Files';
String get scanLibrary => 'Scan Library';
String get analyze => 'Analyze';
String get analyzeLibrary => 'Analyze Library';
String get refreshMetadata => 'Refresh Metadata';
String get emptyTrash => 'Empty Trash';
String emptyingTrash({required Object title}) =>
'Emptying trash for "${title}"...';
String trashEmptied({required Object title}) =>
'Trash emptied for "${title}"';
String failedToEmptyTrash({required Object error}) =>
'Failed to empty trash: ${error}';
String analyzing({required Object title}) => 'Analyzing "${title}"...';
String analysisStarted({required Object title}) =>
'Analysis started for "${title}"';
String failedToAnalyze({required Object error}) =>
'Failed to analyze library: ${error}';
String get noLibrariesFound => 'No libraries found';
String get thisLibraryIsEmpty => 'This library is empty';
String get all => 'All';
String get clearAll => 'Clear All';
String scanLibraryConfirm({required Object title}) =>
'Are you sure you want to scan "${title}"?';
String analyzeLibraryConfirm({required Object title}) =>
'Are you sure you want to analyze "${title}"?';
String refreshMetadataConfirm({required Object title}) =>
'Are you sure you want to refresh metadata for "${title}"?';
String emptyTrashConfirm({required Object title}) =>
'Are you sure you want to empty trash for "${title}"?';
String get manageLibraries => 'Manage Libraries';
String get sort => 'Sort';
String get sortBy => 'Sort By';
String get filters => 'Filters';
String loadingLibraryWithCount({required Object count}) =>
'Loading library... (${count} items loaded)';
String get confirmActionMessage =>
'Are you sure you want to perform this action?';
String get showLibrary => 'Show library';
String get hideLibrary => 'Hide library';
String get libraryOptions => 'Library options';
String get content => 'library content';
String get selectLibrary => 'Select library';
String filtersWithCount({required Object count}) => 'Filters (${count})';
String get noRecommendations => 'No recommendations available';
String get noCollections => 'No collections in this library';
String get noFoldersFound => 'No folders found';
String get folders => 'folders';
late final _StringsLibrariesTabsEn tabs = _StringsLibrariesTabsEn._(_root);
late final _StringsLibrariesGroupingsEn groupings =
_StringsLibrariesGroupingsEn._(_root);
}
// Path: about
class _StringsAboutEn {
_StringsAboutEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'About';
String get openSourceLicenses => 'Open Source Licenses';
String versionLabel({required Object version}) => 'Version ${version}';
String get appDescription => 'A beautiful Plex client for Flutter';
String get viewLicensesDescription =>
'View licenses of third-party libraries';
}
// Path: serverSelection
class _StringsServerSelectionEn {
_StringsServerSelectionEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get connectingToServer => 'Connecting to server...';
String get connectingToAllServers => 'Connecting to all servers...';
String get connectToAllServers => 'Connect to All Servers';
String get allServerConnectionsFailed =>
'Failed to connect to any servers. Please check your network and try again.';
String foundServers({required Object count}) => 'Found ${count} server(s)';
String get orSelectIndividually => 'Or select a server individually:';
String get serverDebugCopied => 'Server debug data copied to clipboard';
String get copyDebugData => 'Copy Debug Data';
String get noServersFound => 'No servers found';
String malformedServerData({required Object count}) =>
'Found ${count} server(s) with malformed data. No valid servers available.';
String get incompleteServerInfo =>
'Some servers have incomplete information and were skipped. Please check your Plex.tv account.';
String get incompleteConnectionInfo =>
'Server connection information is incomplete. Please try again.';
String malformedServerInfo({required Object message}) =>
'Server information is malformed: ${message}';
String get networkConnectionFailed =>
'Network connection failed. Please check your internet connection and try again.';
String get authenticationFailed =>
'Authentication failed. Please sign in again.';
String get plexServiceUnavailable =>
'Plex service unavailable. Please try again later.';
String failedToLoadServers({required Object error}) =>
'Failed to load servers: ${error}';
}
// Path: hubDetail
class _StringsHubDetailEn {
_StringsHubDetailEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Title';
String get releaseYear => 'Release Year';
String get dateAdded => 'Date Added';
String get rating => 'Rating';
String get noItemsFound => 'No items found';
}
// Path: logs
class _StringsLogsEn {
_StringsLogsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Logs';
String get clearLogs => 'Clear Logs';
String get copyLogs => 'Copy Logs';
String get exportLogs => 'Export Logs';
String get noLogsToShow => 'No logs to show';
String get error => 'Error:';
String get stackTrace => 'Stack Trace:';
}
// Path: licenses
class _StringsLicensesEn {
_StringsLicensesEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get relatedPackages => 'Related Packages';
String get license => 'License';
String licenseNumber({required Object number}) => 'License ${number}';
String licensesCount({required Object count}) => '${count} licenses';
}
// Path: navigation
class _StringsNavigationEn {
_StringsNavigationEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get home => 'Home';
String get search => 'Search';
String get libraries => 'Libraries';
String get settings => 'Settings';
}
// Path: collections
class _StringsCollectionsEn {
_StringsCollectionsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Collections';
String get collection => 'Collection';
String get empty => 'Collection is empty';
String get noItems => 'No items in this collection';
String get unknownLibrarySection => 'Cannot delete: Unknown library section';
String get deleteCollection => 'Delete Collection';
String deleteConfirm({required Object title}) =>
'Are you sure you want to delete "${title}"? This action cannot be undone.';
String get deleted => 'Collection deleted';
String get deleteFailed => 'Failed to delete collection';
String deleteFailedWithError({required Object error}) =>
'Failed to delete collection: ${error}';
String failedToLoadItems({required Object error}) =>
'Failed to load collection items: ${error}';
String get addTo => 'Add to collection';
String get selectCollection => 'Select Collection';
String get createNewCollection => 'Create New Collection';
String get collectionName => 'Collection Name';
String get enterCollectionName => 'Enter collection name';
String get addedToCollection => 'Added to collection';
String get errorAddingToCollection => 'Failed to add to collection';
String get created => 'Collection created';
String get removeFromCollection => 'Remove from collection';
String removeFromCollectionConfirm({required Object title}) =>
'Remove "${title}" from this collection?';
String get removedFromCollection => 'Removed from collection';
String get removeFromCollectionFailed => 'Failed to remove from collection';
String removeFromCollectionError({required Object error}) =>
'Error removing from collection: ${error}';
}
// Path: playlists
class _StringsPlaylistsEn {
_StringsPlaylistsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get title => 'Playlists';
String get playlist => 'Playlist';
String get noPlaylists => 'No playlists found';
String get create => 'Create Playlist';
String get newPlaylist => 'New Playlist';
String get playlistName => 'Playlist Name';
String get enterPlaylistName => 'Enter playlist name';
String get edit => 'Edit Playlist';
String get delete => 'Delete Playlist';
String get addTo => 'Add to Playlist';
String get addItems => 'Add Items';
String get removeItem => 'Remove from Playlist';
String get clearPlaylist => 'Clear Playlist';
String get playAll => 'Play All';
String get shuffle => 'Shuffle';
String get smartPlaylist => 'Smart Playlist';
String get regularPlaylist => 'Regular Playlist';
String itemCount({required Object count}) => '${count} items';
String get oneItem => '1 item';
String get emptyPlaylist => 'This playlist is empty';
String get deleteConfirm => 'Delete Playlist?';
String deleteMessage({required Object name}) =>
'Are you sure you want to delete "${name}"?';
String get created => 'Playlist created';
String get updated => 'Playlist updated';
String get deleted => 'Playlist deleted';
String get itemAdded => 'Added to playlist';
String get itemRemoved => 'Removed from playlist';
String get selectPlaylist => 'Select Playlist';
String get createNewPlaylist => 'Create New Playlist';
String get errorCreating => 'Failed to create playlist';
String get errorDeleting => 'Failed to delete playlist';
String get errorLoading => 'Failed to load playlists';
String get errorAdding => 'Failed to add to playlist';
String get errorReordering => 'Failed to reorder playlist item';
String get errorRemoving => 'Failed to remove from playlist';
}
// Path: libraries.tabs
class _StringsLibrariesTabsEn {
_StringsLibrariesTabsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get recommended => 'Recommended';
String get browse => 'Browse';
String get collections => 'Collections';
String get playlists => 'Playlists';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
String get all => 'All';
String get movies => 'Movies';
String get shows => 'TV Shows';
String get seasons => 'Seasons';
String get episodes => 'Episodes';
String get folders => 'Folders';
}
// Path: <root>
class _StringsDe implements Translations {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
_StringsDe.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.de,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <de>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override
dynamic operator [](String key) => $meta.getTranslation(key);
@override
late final _StringsDe _root = this; // ignore: unused_field
// Translations
@override
late final _StringsAppDe app = _StringsAppDe._(_root);
@override
late final _StringsAuthDe auth = _StringsAuthDe._(_root);
@override
late final _StringsCommonDe common = _StringsCommonDe._(_root);
@override
late final _StringsScreensDe screens = _StringsScreensDe._(_root);
@override
late final _StringsUpdateDe update = _StringsUpdateDe._(_root);
@override
late final _StringsSettingsDe settings = _StringsSettingsDe._(_root);
@override
late final _StringsSearchDe search = _StringsSearchDe._(_root);
@override
late final _StringsHotkeysDe hotkeys = _StringsHotkeysDe._(_root);
@override
late final _StringsPinEntryDe pinEntry = _StringsPinEntryDe._(_root);
@override
late final _StringsFileInfoDe fileInfo = _StringsFileInfoDe._(_root);
@override
late final _StringsMediaMenuDe mediaMenu = _StringsMediaMenuDe._(_root);
@override
late final _StringsAccessibilityDe accessibility = _StringsAccessibilityDe._(
_root,
);
@override
late final _StringsTooltipsDe tooltips = _StringsTooltipsDe._(_root);
@override
late final _StringsVideoControlsDe videoControls = _StringsVideoControlsDe._(
_root,
);
@override
late final _StringsUserStatusDe userStatus = _StringsUserStatusDe._(_root);
@override
late final _StringsMessagesDe messages = _StringsMessagesDe._(_root);
@override
late final _StringsProfileDe profile = _StringsProfileDe._(_root);
@override
late final _StringsSubtitlingStylingDe subtitlingStyling =
_StringsSubtitlingStylingDe._(_root);
@override
late final _StringsDialogDe dialog = _StringsDialogDe._(_root);
@override
late final _StringsDiscoverDe discover = _StringsDiscoverDe._(_root);
@override
late final _StringsErrorsDe errors = _StringsErrorsDe._(_root);
@override
late final _StringsLibrariesDe libraries = _StringsLibrariesDe._(_root);
@override
late final _StringsAboutDe about = _StringsAboutDe._(_root);
@override
late final _StringsServerSelectionDe serverSelection =
_StringsServerSelectionDe._(_root);
@override
late final _StringsHubDetailDe hubDetail = _StringsHubDetailDe._(_root);
@override
late final _StringsLogsDe logs = _StringsLogsDe._(_root);
@override
late final _StringsLicensesDe licenses = _StringsLicensesDe._(_root);
@override
late final _StringsNavigationDe navigation = _StringsNavigationDe._(_root);
@override
late final _StringsPlaylistsDe playlists = _StringsPlaylistsDe._(_root);
@override
late final _StringsCollectionsDe collections = _StringsCollectionsDe._(_root);
}
// Path: app
class _StringsAppDe implements _StringsAppEn {
_StringsAppDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Plezy';
@override
String get loading => 'Lädt...';
}
// Path: auth
class _StringsAuthDe implements _StringsAuthEn {
_StringsAuthDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get signInWithPlex => 'Mit Plex anmelden';
@override
String get showQRCode => 'QR-Code anzeigen';
@override
String get cancel => 'Abbrechen';
@override
String get authenticate => 'Authentifizieren';
@override
String get retry => 'Erneut versuchen';
@override
String get debugEnterToken => 'Debug: Plex-Token eingeben';
@override
String get plexTokenLabel => 'Plex-Auth-Token';
@override
String get plexTokenHint => 'Plex.tv-Token eingeben';
@override
String get authenticationTimeout =>
'Authentifizierung abgelaufen. Bitte erneut versuchen.';
@override
String get scanQRCodeInstruction =>
'Diesen QR-Code mit einem bei Plex angemeldeten Gerät scannen, um zu authentifizieren.';
@override
String get waitingForAuth =>
'Warte auf Authentifizierung...\nBitte Anmeldung im Browser abschließen.';
}
// Path: common
class _StringsCommonDe implements _StringsCommonEn {
_StringsCommonDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get cancel => 'Abbrechen';
@override
String get save => 'Speichern';
@override
String get close => 'Schließen';
@override
String get clear => 'Leeren';
@override
String get reset => 'Zurücksetzen';
@override
String get later => 'Später';
@override
String get submit => 'Senden';
@override
String get confirm => 'Bestätigen';
@override
String get retry => 'Erneut versuchen';
@override
String get playNow => 'Jetzt abspielen';
@override
String get logout => 'Abmelden';
@override
String get online => 'Online';
@override
String get offline => 'Offline';
@override
String get owned => 'Besitzer';
@override
String get shared => 'Geteilt';
@override
String get current => 'AKTUELL';
@override
String get unknown => 'Unbekannt';
@override
String get refresh => 'Aktualisieren';
@override
String get yes => 'Ja';
@override
String get no => 'Nein';
@override
String get server => 'Server';
@override
String get delete => 'Löschen';
@override
String get shuffle => 'Zufall';
@override
String get addTo => 'Hinzufügen zu...';
}
// Path: screens
class _StringsScreensDe implements _StringsScreensEn {
_StringsScreensDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get licenses => 'Lizenzen';
@override
String get selectServer => 'Server auswählen';
@override
String get switchProfile => 'Profil wechseln';
@override
String get subtitleStyling => 'Untertitel-Stil';
@override
String get search => 'Suche';
@override
String get logs => 'Protokolle';
}
// Path: update
class _StringsUpdateDe implements _StringsUpdateEn {
_StringsUpdateDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get available => 'Update verfügbar';
@override
String versionAvailable({required Object version}) =>
'Version ${version} ist verfügbar';
@override
String currentVersion({required Object version}) => 'Aktuell: ${version}';
@override
String get skipVersion => 'Diese Version überspringen';
@override
String get viewRelease => 'Release anzeigen';
@override
String get latestVersion => 'Aktuellste Version installiert';
@override
String get checkFailed => 'Fehler bei der Updateprüfung';
}
// Path: settings
class _StringsSettingsDe implements _StringsSettingsEn {
_StringsSettingsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Einstellungen';
@override
String get language => 'Sprache';
@override
String get theme => 'Design';
@override
String get appearance => 'Darstellung';
@override
String get videoPlayback => 'Videowiedergabe';
@override
String get shufflePlay => 'Zufallswiedergabe';
@override
String get advanced => 'Erweitert';
@override
String get useSeasonPostersDescription =>
'Staffelposter statt Serienposter für Episoden anzeigen';
@override
String get showHeroSectionDescription =>
'Bereich mit empfohlenen Inhalten auf der Startseite anzeigen';
@override
String get secondsLabel => 'Sekunden';
@override
String get minutesLabel => 'Minuten';
@override
String get secondsShort => 's';
@override
String get minutesShort => 'm';
@override
String durationHint({required Object min, required Object max}) =>
'Dauer eingeben (${min}-${max})';
@override
String get systemTheme => 'System';
@override
String get systemThemeDescription => 'Systemeinstellungen folgen';
@override
String get lightTheme => 'Hell';
@override
String get darkTheme => 'Dunkel';
@override
String get libraryDensity => 'Mediathekdichte';
@override
String get compact => 'Kompakt';
@override
String get compactDescription => 'Kleinere Karten, mehr Elemente sichtbar';
@override
String get normal => 'Normal';
@override
String get normalDescription => 'Standardgröße';
@override
String get comfortable => 'Großzügig';
@override
String get comfortableDescription =>
'Größere Karten, weniger Elemente sichtbar';
@override
String get viewMode => 'Ansichtsmodus';
@override
String get gridView => 'Raster';
@override
String get gridViewDescription => 'Elemente im Raster anzeigen';
@override
String get listView => 'Liste';
@override
String get listViewDescription => 'Elemente in Listenansicht anzeigen';
@override
String get useSeasonPosters => 'Staffelposter verwenden';
@override
String get showHeroSection => 'Hero-Bereich anzeigen';
@override
String get hardwareDecoding => 'Hardware-Decodierung';
@override
String get hardwareDecodingDescription =>
'Hardwarebeschleunigung verwenden, sofern verfügbar';
@override
String get bufferSize => 'Puffergröße';
@override
String bufferSizeMB({required Object size}) => '${size}MB';
@override
String get subtitleStyling => 'Untertitel-Stil';
@override
String get subtitleStylingDescription => 'Aussehen von Untertiteln anpassen';
@override
String get smallSkipDuration => 'Kleine Sprungdauer';
@override
String get largeSkipDuration => 'Große Sprungdauer';
@override
String secondsUnit({required Object seconds}) => '${seconds} Sekunden';
@override
String get defaultSleepTimer => 'Standard-Sleep-Timer';
@override
String minutesUnit({required Object minutes}) => '${minutes} Minuten';
@override
String get rememberTrackSelections => 'Spurauswahl pro Serie/Film merken';
@override
String get rememberTrackSelectionsDescription =>
'Audio- und Untertitelsprache automatisch speichern, wenn während der Wiedergabe geändert';
@override
String get unwatchedOnly => 'Nur ungesehene';
@override
String get unwatchedOnlyDescription =>
'Nur ungesehene Episoden in die Shuffle-Warteschlange aufnehmen';
@override
String get shuffleOrderNavigation => 'Navigation der Shuffle-Reihenfolge';
@override
String get shuffleOrderNavigationDescription =>
'Weiter/Zurück folgt der zufälligen Reihenfolge';
@override
String get loopShuffleQueue => 'Shuffle-Warteschlange wiederholen';
@override
String get loopShuffleQueueDescription =>
'Warteschlange neu starten, wenn das Ende erreicht ist';
@override
String get videoPlayerControls => 'Videoplayer-Steuerung';
@override
String get keyboardShortcuts => 'Tastenkürzel';
@override
String get keyboardShortcutsDescription => 'Tastenkürzel anpassen';
@override
String get debugLogging => 'Debug-Protokollierung';
@override
String get debugLoggingDescription =>
'Detaillierte Protokolle zur Fehleranalyse aktivieren';
@override
String get viewLogs => 'Protokolle anzeigen';
@override
String get viewLogsDescription => 'App-Protokolle anzeigen';
@override
String get clearCache => 'Cache löschen';
@override
String get clearCacheDescription =>
'Löscht alle zwischengespeicherten Bilder und Daten. Die App kann danach langsamer laden.';
@override
String get clearCacheSuccess => 'Cache erfolgreich gelöscht';
@override
String get resetSettings => 'Einstellungen zurücksetzen';
@override
String get resetSettingsDescription =>
'Alle Einstellungen auf Standard zurücksetzen. Dies kann nicht rückgängig gemacht werden.';
@override
String get resetSettingsSuccess => 'Einstellungen erfolgreich zurückgesetzt';
@override
String get shortcutsReset => 'Tastenkürzel auf Standard zurückgesetzt';
@override
String get about => 'Über';
@override
String get aboutDescription => 'App-Informationen und Lizenzen';
@override
String get updates => 'Updates';
@override
String get updateAvailable => 'Update verfügbar';
@override
String get checkForUpdates => 'Nach Updates suchen';
@override
String get validationErrorEnterNumber => 'Bitte eine gültige Zahl eingeben';
@override
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen';
@override
String shortcutAlreadyAssigned({required Object action}) =>
'Tastenkürzel bereits zugewiesen an ${action}';
@override
String shortcutUpdated({required Object action}) =>
'Tastenkürzel aktualisiert für ${action}';
@override
String get autoSkip => 'Automatisches Überspringen';
@override
String get autoSkipIntro => 'Intro automatisch überspringen';
@override
String get autoSkipIntroDescription =>
'Intro-Marker nach wenigen Sekunden automatisch überspringen';
@override
String get autoSkipCredits => 'Abspann automatisch überspringen';
@override
String get autoSkipCreditsDescription =>
'Abspann automatisch überspringen und nächste Episode abspielen';
@override
String get autoSkipDelay => 'Verzögerung für automatisches Überspringen';
@override
String autoSkipDelayDescription({required Object seconds}) =>
'${seconds} Sekunden vor dem automatischen Überspringen warten';
}
// Path: search
class _StringsSearchDe implements _StringsSearchEn {
_StringsSearchDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get hint => 'Filme, Serien, Musik suchen...';
@override
String get tryDifferentTerm => 'Anderen Suchbegriff versuchen';
@override
String get searchYourMedia => 'In den eigenen Medien suchen';
@override
String get enterTitleActorOrKeyword =>
'Titel, Schauspieler oder Stichwort eingeben';
}
// Path: hotkeys
class _StringsHotkeysDe implements _StringsHotkeysEn {
_StringsHotkeysDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String setShortcutFor({required Object actionName}) =>
'Tastenkürzel festlegen für ${actionName}';
@override
String get clearShortcut => 'Kürzel löschen';
}
// Path: pinEntry
class _StringsPinEntryDe implements _StringsPinEntryEn {
_StringsPinEntryDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get enterPin => 'PIN eingeben';
@override
String get showPin => 'PIN anzeigen';
@override
String get hidePin => 'PIN verbergen';
}
// Path: fileInfo
class _StringsFileInfoDe implements _StringsFileInfoEn {
_StringsFileInfoDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Dateiinfo';
@override
String get video => 'Video';
@override
String get audio => 'Audio';
@override
String get file => 'Datei';
@override
String get advanced => 'Erweitert';
@override
String get codec => 'Codec';
@override
String get resolution => 'Auflösung';
@override
String get bitrate => 'Bitrate';
@override
String get frameRate => 'Bildrate';
@override
String get aspectRatio => 'Seitenverhältnis';
@override
String get profile => 'Profil';
@override
String get bitDepth => 'Farbtiefe';
@override
String get colorSpace => 'Farbraum';
@override
String get colorRange => 'Farbbereich';
@override
String get colorPrimaries => 'Primärfarben';
@override
String get chromaSubsampling => 'Chroma-Subsampling';
@override
String get channels => 'Kanäle';
@override
String get path => 'Pfad';
@override
String get size => 'Größe';
@override
String get container => 'Container';
@override
String get duration => 'Dauer';
@override
String get optimizedForStreaming => 'Für Streaming optimiert';
@override
String get has64bitOffsets => '64-Bit-Offsets';
}
// Path: mediaMenu
class _StringsMediaMenuDe implements _StringsMediaMenuEn {
_StringsMediaMenuDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get markAsWatched => 'Als gesehen markieren';
@override
String get markAsUnwatched => 'Als ungesehen markieren';
@override
String get removeFromContinueWatching => 'Aus Weiterschauen entfernen';
@override
String get goToSeries => 'Zur Serie';
@override
String get goToSeason => 'Zur Staffel';
@override
String get shufflePlay => 'Zufallswiedergabe';
@override
String get fileInfo => 'Dateiinfo';
}
// Path: accessibility
class _StringsAccessibilityDe implements _StringsAccessibilityEn {
_StringsAccessibilityDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String mediaCardMovie({required Object title}) => '${title}, Film';
@override
String mediaCardShow({required Object title}) => '${title}, Serie';
@override
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
@override
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
@override
String get mediaCardWatched => 'angesehen';
@override
String mediaCardPartiallyWatched({required Object percent}) =>
'${percent} Prozent angesehen';
@override
String get mediaCardUnwatched => 'ungeschaut';
@override
String get tapToPlay => 'Zum Abspielen tippen';
}
// Path: tooltips
class _StringsTooltipsDe implements _StringsTooltipsEn {
_StringsTooltipsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get shufflePlay => 'Zufallswiedergabe';
@override
String get markAsWatched => 'Als gesehen markieren';
@override
String get markAsUnwatched => 'Als ungesehen markieren';
}
// Path: videoControls
class _StringsVideoControlsDe implements _StringsVideoControlsEn {
_StringsVideoControlsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get audioLabel => 'Audio';
@override
String get subtitlesLabel => 'Untertitel';
@override
String get resetToZero => 'Auf 0 ms zurücksetzen';
@override
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
@override
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
@override
String playsLater({required Object label}) => '${label} spielt später';
@override
String playsEarlier({required Object label}) => '${label} spielt früher';
@override
String get noOffset => 'Kein Offset';
@override
String get letterbox => 'Letterbox';
@override
String get fillScreen => 'Bild füllen';
@override
String get stretch => 'Strecken';
@override
String get lockRotation => 'Rotation sperren';
@override
String get unlockRotation => 'Rotation entsperren';
@override
String get sleepTimer => 'Schlaftimer';
@override
String get timerActive => 'Schlaftimer aktiv';
@override
String playbackWillPauseIn({required Object duration}) =>
'Wiedergabe wird in ${duration} pausiert';
@override
String get sleepTimerCompleted =>
'Schlaftimer abgelaufen Wiedergabe pausiert';
@override
String get playButton => 'Wiedergeben';
@override
String get pauseButton => 'Pause';
@override
String seekBackwardButton({required Object seconds}) =>
'${seconds} Sekunden zurück';
@override
String seekForwardButton({required Object seconds}) =>
'${seconds} Sekunden vor';
@override
String get previousButton => 'Vorherige Episode';
@override
String get nextButton => 'Nächste Episode';
@override
String get previousChapterButton => 'Vorheriges Kapitel';
@override
String get nextChapterButton => 'Nächstes Kapitel';
@override
String get volumeButton => 'Lautstärke';
@override
String get muteButton => 'Stumm schalten';
@override
String get unmuteButton => 'Stummschaltung aufheben';
@override
String get settingsButton => 'Videoeinstellungen';
@override
String get audioTrackButton => 'Tonspuren';
@override
String get subtitlesButton => 'Untertitel';
@override
String get chaptersButton => 'Kapitel';
@override
String get versionsButton => 'Videoversionen';
@override
String get aspectRatioButton => 'Seitenverhältnis';
@override
String get fullscreenButton => 'Vollbild aktivieren';
@override
String get exitFullscreenButton => 'Vollbild verlassen';
@override
String get rotationLockButton => 'Dreh­sperre';
@override
String get timelineSlider => 'Video-Zeitleiste';
@override
String get volumeSlider => 'Lautstärkepegel';
@override
String get backButton => 'Zurück';
}
// Path: userStatus
class _StringsUserStatusDe implements _StringsUserStatusEn {
_StringsUserStatusDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get admin => 'Eigentümer';
@override
String get restricted => 'Eingeschränkt';
@override
String get protected => 'Geschützt';
@override
String get current => 'AKTUELL';
}
// Path: messages
class _StringsMessagesDe implements _StringsMessagesEn {
_StringsMessagesDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get markedAsWatched => 'Als gesehen markiert';
@override
String get markedAsUnwatched => 'Als ungesehen markiert';
@override
String get removedFromContinueWatching => 'Aus Weiterschauen entfernt';
@override
String errorLoading({required Object error}) => 'Fehler: ${error}';
@override
String get fileInfoNotAvailable => 'Dateiinfo nicht verfügbar';
@override
String errorLoadingFileInfo({required Object error}) =>
'Fehler beim Laden der Dateiinfo: ${error}';
@override
String get errorLoadingSeries => 'Fehler beim Laden der Serie';
@override
String get errorLoadingSeason => 'Fehler beim Laden der Staffel';
@override
String get musicNotSupported => 'Musikwiedergabe wird noch nicht unterstützt';
@override
String get logsCleared => 'Protokolle gelöscht';
@override
String get logsCopied => 'Protokolle in Zwischenablage kopiert';
@override
String get noLogsAvailable => 'Keine Protokolle verfügbar';
@override
String libraryScanning({required Object title}) => 'Scanne „${title}“...';
@override
String libraryScanStarted({required Object title}) =>
'Mediathekscan gestartet für „${title}“';
@override
String libraryScanFailed({required Object error}) =>
'Fehler beim Scannen der Mediathek: ${error}';
@override
String metadataRefreshing({required Object title}) =>
'Metadaten werden aktualisiert für „${title}“...';
@override
String metadataRefreshStarted({required Object title}) =>
'Metadaten-Aktualisierung gestartet für „${title}“';
@override
String metadataRefreshFailed({required Object error}) =>
'Metadaten konnten nicht aktualisiert werden: ${error}';
@override
String get noPlexToken => 'Kein Plex-Token gefunden. Bitte erneut anmelden.';
@override
String get logoutConfirm => 'Abmeldung wirklich durchführen?';
@override
String get noSeasonsFound => 'Keine Staffeln gefunden';
@override
String get noEpisodesFound => 'Keine Episoden in der ersten Staffel gefunden';
@override
String get noEpisodesFoundGeneral => 'Keine Episoden gefunden';
@override
String get noResultsFound => 'Keine Ergebnisse gefunden';
@override
String sleepTimerSet({required Object label}) =>
'Sleep-Timer gesetzt auf ${label}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Profilwechsel zu ${displayName} fehlgeschlagen';
@override
String get noItemsAvailable => 'Keine Elemente verfügbar';
@override
String get failedToCreatePlayQueue =>
'Wiedergabewarteschlange konnte nicht erstellt werden';
@override
String get failedToCreatePlayQueueNoItems =>
'Wiedergabewarteschlange konnte nicht erstellt werden keine Elemente';
@override
String failedPlayback({required Object action, required Object error}) =>
'Wiedergabe für ${action} fehlgeschlagen: ${error}';
}
// Path: profile
class _StringsProfileDe implements _StringsProfileEn {
_StringsProfileDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get noUsersAvailable => 'Keine Benutzer verfügbar';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingDe implements _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get stylingOptions => 'Stiloptionen';
@override
String get fontSize => 'Schriftgröße';
@override
String get textColor => 'Textfarbe';
@override
String get borderSize => 'Rahmengröße';
@override
String get borderColor => 'Rahmenfarbe';
@override
String get backgroundOpacity => 'Hintergrunddeckkraft';
@override
String get backgroundColor => 'Hintergrundfarbe';
}
// Path: dialog
class _StringsDialogDe implements _StringsDialogEn {
_StringsDialogDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get confirmAction => 'Aktion bestätigen';
@override
String get areYouSure => 'Aktion wirklich ausführen?';
@override
String get cancel => 'Abbrechen';
@override
String get playNow => 'Jetzt abspielen';
}
// Path: discover
class _StringsDiscoverDe implements _StringsDiscoverEn {
_StringsDiscoverDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Entdecken';
@override
String get switchProfile => 'Profil wechseln';
@override
String get switchServer => 'Server wechseln';
@override
String get logout => 'Abmelden';
@override
String get noContentAvailable => 'Kein Inhalt verfügbar';
@override
String get addMediaToLibraries => 'Medien zur Mediathek hinzufügen';
@override
String get continueWatching => 'Weiterschauen';
@override
String get recentlyAdded => 'Kürzlich hinzugefügt';
@override
String get play => 'Abspielen';
@override
String get resume => 'Fortsetzen';
@override
String playEpisode({required Object season, required Object episode}) =>
'S${season}, E${episode} - Abspielen';
@override
String resumeEpisode({required Object season, required Object episode}) =>
'S${season}, E${episode} - Fortsetzen';
@override
String get pause => 'Pause';
@override
String get overview => 'Übersicht';
@override
String get cast => 'Besetzung';
@override
String get seasons => 'Staffeln';
@override
String get studio => 'Studio';
@override
String get rating => 'Altersfreigabe';
@override
String get watched => 'Gesehen';
@override
String episodeCount({required Object count}) => '${count} Episoden';
@override
String watchedProgress({required Object watched, required Object total}) =>
'${watched} von ${total} gesehen';
@override
String get movie => 'Film';
@override
String get tvShow => 'Serie';
@override
String minutesLeft({required Object minutes}) => '${minutes} Min übrig';
}
// Path: errors
class _StringsErrorsDe implements _StringsErrorsEn {
_StringsErrorsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String searchFailed({required Object error}) =>
'Suche fehlgeschlagen: ${error}';
@override
String connectionTimeout({required Object context}) =>
'Zeitüberschreitung beim Laden von ${context}';
@override
String get connectionFailed => 'Verbindung zum Plex-Server fehlgeschlagen';
@override
String failedToLoad({required Object context, required Object error}) =>
'Fehler beim Laden von ${context}: ${error}';
@override
String get noClientAvailable => 'Kein Client verfügbar';
@override
String authenticationFailed({required Object error}) =>
'Authentifizierung fehlgeschlagen: ${error}';
@override
String get couldNotLaunchUrl => 'Auth-URL konnte nicht geöffnet werden';
@override
String get pleaseEnterToken => 'Bitte Token eingeben';
@override
String get invalidToken => 'Ungültiges Token';
@override
String failedToVerifyToken({required Object error}) =>
'Token-Verifizierung fehlgeschlagen: ${error}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Profilwechsel zu ${displayName} fehlgeschlagen';
@override
String get connectionFailedGeneric => 'Verbindung fehlgeschlagen';
}
// Path: libraries
class _StringsLibrariesDe implements _StringsLibrariesEn {
_StringsLibrariesDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Mediatheken';
@override
String get scanLibraryFiles => 'Mediatheksdateien scannen';
@override
String get scanLibrary => 'Mediathek scannen';
@override
String get analyze => 'Analysieren';
@override
String get analyzeLibrary => 'Mediathek analysieren';
@override
String get refreshMetadata => 'Metadaten aktualisieren';
@override
String get emptyTrash => 'Papierkorb leeren';
@override
String emptyingTrash({required Object title}) =>
'Papierkorb für „${title}“ wird geleert...';
@override
String trashEmptied({required Object title}) =>
'Papierkorb für „${title}“ geleert';
@override
String failedToEmptyTrash({required Object error}) =>
'Papierkorb konnte nicht geleert werden: ${error}';
@override
String analyzing({required Object title}) => 'Analysiere „${title}“...';
@override
String analysisStarted({required Object title}) =>
'Analyse gestartet für „${title}“';
@override
String failedToAnalyze({required Object error}) =>
'Analyse der Mediathek fehlgeschlagen: ${error}';
@override
String get noLibrariesFound => 'Keine Mediatheken gefunden';
@override
String get thisLibraryIsEmpty => 'Diese Mediathek ist leer';
@override
String get all => 'Alle';
@override
String get clearAll => 'Alle löschen';
@override
String scanLibraryConfirm({required Object title}) =>
'„${title}“ wirklich scannen?';
@override
String analyzeLibraryConfirm({required Object title}) =>
'„${title}“ wirklich analysieren?';
@override
String refreshMetadataConfirm({required Object title}) =>
'Metadaten für „${title}“ wirklich aktualisieren?';
@override
String emptyTrashConfirm({required Object title}) =>
'Papierkorb für „${title}“ wirklich leeren?';
@override
String get manageLibraries => 'Mediatheken verwalten';
@override
String get sort => 'Sortieren';
@override
String get sortBy => 'Sortieren nach';
@override
String get filters => 'Filter';
@override
String loadingLibraryWithCount({required Object count}) =>
'Lade Mediathek... (${count} Elemente geladen)';
@override
String get confirmActionMessage => 'Aktion wirklich durchführen?';
@override
String get showLibrary => 'Mediathek anzeigen';
@override
String get hideLibrary => 'Mediathek ausblenden';
@override
String get libraryOptions => 'Mediatheksoptionen';
@override
String get content => 'Bibliotheksinhalt';
@override
String get selectLibrary => 'Bibliothek auswählen';
@override
String filtersWithCount({required Object count}) => 'Filter (${count})';
@override
String get noRecommendations => 'Keine Empfehlungen verfügbar';
@override
String get noCollections => 'Keine Sammlungen in dieser Mediathek';
@override
String get noFoldersFound => 'Keine Ordner gefunden';
@override
String get folders => 'Ordner';
@override
late final _StringsLibrariesTabsDe tabs = _StringsLibrariesTabsDe._(_root);
@override
late final _StringsLibrariesGroupingsDe groupings =
_StringsLibrariesGroupingsDe._(_root);
}
// Path: about
class _StringsAboutDe implements _StringsAboutEn {
_StringsAboutDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Über';
@override
String get openSourceLicenses => 'Open-Source-Lizenzen';
@override
String versionLabel({required Object version}) => 'Version ${version}';
@override
String get appDescription => 'Ein schöner Plex-Client für Flutter';
@override
String get viewLicensesDescription =>
'Lizenzen von Drittanbieter-Bibliotheken anzeigen';
}
// Path: serverSelection
class _StringsServerSelectionDe implements _StringsServerSelectionEn {
_StringsServerSelectionDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get connectingToServer => 'Verbinde mit Server...';
@override
String get connectingToAllServers => 'Verbinde mit allen Servern...';
@override
String get connectToAllServers => 'Mit allen Servern verbinden';
@override
String get allServerConnectionsFailed =>
'Verbindung zu allen Servern fehlgeschlagen. Bitte Netzwerk prüfen und erneut versuchen.';
@override
String foundServers({required Object count}) => '${count} Server gefunden';
@override
String get orSelectIndividually => 'Oder einzelnen Server auswählen:';
@override
String get serverDebugCopied => 'Server-Debugdaten kopiert';
@override
String get copyDebugData => 'Debugdaten kopieren';
@override
String get noServersFound => 'Keine Server gefunden';
@override
String malformedServerData({required Object count}) =>
'${count} Server mit fehlerhaften Daten gefunden. Keine gültigen Server verfügbar.';
@override
String get incompleteServerInfo =>
'Einige Serverinformationen sind unvollständig und wurden übersprungen. Plex.tv-Konto prüfen.';
@override
String get incompleteConnectionInfo =>
'Serververbindungsinformationen unvollständig. Bitte erneut versuchen.';
@override
String malformedServerInfo({required Object message}) =>
'Serverinformationen fehlerhaft: ${message}';
@override
String get networkConnectionFailed =>
'Netzwerkverbindung fehlgeschlagen. Internetverbindung prüfen und erneut versuchen.';
@override
String get authenticationFailed =>
'Authentifizierung fehlgeschlagen. Bitte erneut anmelden.';
@override
String get plexServiceUnavailable =>
'Plex-Dienst nicht verfügbar. Bitte später erneut versuchen.';
@override
String failedToLoadServers({required Object error}) =>
'Server konnten nicht geladen werden: ${error}';
}
// Path: hubDetail
class _StringsHubDetailDe implements _StringsHubDetailEn {
_StringsHubDetailDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Titel';
@override
String get releaseYear => 'Erscheinungsjahr';
@override
String get dateAdded => 'Hinzugefügt am';
@override
String get rating => 'Bewertung';
@override
String get noItemsFound => 'Keine Elemente gefunden';
}
// Path: logs
class _StringsLogsDe implements _StringsLogsEn {
_StringsLogsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Protokolle';
@override
String get clearLogs => 'Protokolle löschen';
@override
String get copyLogs => 'Protokolle kopieren';
@override
String get exportLogs => 'Protokolle exportieren';
@override
String get noLogsToShow => 'Keine Protokolle zum Anzeigen';
@override
String get error => 'Fehler:';
@override
String get stackTrace => 'Stacktrace:';
}
// Path: licenses
class _StringsLicensesDe implements _StringsLicensesEn {
_StringsLicensesDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get relatedPackages => 'Verwandte Pakete';
@override
String get license => 'Lizenz';
@override
String licenseNumber({required Object number}) => 'Lizenz ${number}';
@override
String licensesCount({required Object count}) => '${count} Lizenzen';
}
// Path: navigation
class _StringsNavigationDe implements _StringsNavigationEn {
_StringsNavigationDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get home => 'Start';
@override
String get search => 'Suche';
@override
String get libraries => 'Mediatheken';
@override
String get settings => 'Einstellungen';
}
// Path: playlists
class _StringsPlaylistsDe implements _StringsPlaylistsEn {
_StringsPlaylistsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Wiedergabelisten';
@override
String get noPlaylists => 'Keine Wiedergabelisten gefunden';
@override
String get create => 'Wiedergabeliste erstellen';
@override
String get newPlaylist => 'Neue Wiedergabeliste';
@override
String get playlistName => 'Name der Wiedergabeliste';
@override
String get enterPlaylistName => 'Name der Wiedergabeliste eingeben';
@override
String get edit => 'Wiedergabeliste bearbeiten';
@override
String get delete => 'Wiedergabeliste löschen';
@override
String get addTo => 'Zur Wiedergabeliste hinzufügen';
@override
String get addItems => 'Elemente hinzufügen';
@override
String get removeItem => 'Aus Wiedergabeliste entfernen';
@override
String get clearPlaylist => 'Wiedergabeliste leeren';
@override
String get playAll => 'Alle abspielen';
@override
String get shuffle => 'Zufällig';
@override
String get smartPlaylist => 'Intelligente Wiedergabeliste';
@override
String get regularPlaylist => 'Normale Wiedergabeliste';
@override
String itemCount({required Object count}) => '${count} Elemente';
@override
String get oneItem => '1 Element';
@override
String get emptyPlaylist => 'Diese Wiedergabeliste ist leer';
@override
String get deleteConfirm => 'Wiedergabeliste löschen?';
@override
String deleteMessage({required Object name}) =>
'Soll "${name}" wirklich gelöscht werden?';
@override
String get created => 'Wiedergabeliste erstellt';
@override
String get updated => 'Wiedergabeliste aktualisiert';
@override
String get deleted => 'Wiedergabeliste gelöscht';
@override
String get itemAdded => 'Zur Wiedergabeliste hinzugefügt';
@override
String get itemRemoved => 'Aus Wiedergabeliste entfernt';
@override
String get selectPlaylist => 'Wiedergabeliste auswählen';
@override
String get createNewPlaylist => 'Neue Wiedergabeliste erstellen';
@override
String get errorCreating => 'Wiedergabeliste konnte nicht erstellt werden';
@override
String get errorDeleting => 'Wiedergabeliste konnte nicht gelöscht werden';
@override
String get errorLoading => 'Wiedergabelisten konnten nicht geladen werden';
@override
String get errorAdding =>
'Konnte nicht zur Wiedergabeliste hinzugefügt werden';
@override
String get errorReordering =>
'Element der Wiedergabeliste konnte nicht neu geordnet werden';
@override
String get errorRemoving =>
'Konnte nicht aus der Wiedergabeliste entfernt werden';
@override
String get playlist => 'Wiedergabeliste';
}
// Path: collections
class _StringsCollectionsDe implements _StringsCollectionsEn {
_StringsCollectionsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get title => 'Sammlungen';
@override
String get collection => 'Sammlung';
@override
String get empty => 'Sammlung ist leer';
@override
String get noItems => 'Keine Elemente in dieser Sammlung';
@override
String get unknownLibrarySection =>
'Löschen nicht möglich: Unbekannte Bibliothekssektion';
@override
String get deleteCollection => 'Sammlung löschen';
@override
String deleteConfirm({required Object title}) =>
'Sind Sie sicher, dass Sie "${title}" löschen möchten? Dies kann nicht rückgängig gemacht werden.';
@override
String get deleted => 'Sammlung gelöscht';
@override
String get deleteFailed => 'Sammlung konnte nicht gelöscht werden';
@override
String deleteFailedWithError({required Object error}) =>
'Sammlung konnte nicht gelöscht werden: ${error}';
@override
String failedToLoadItems({required Object error}) =>
'Sammlungselemente konnten nicht geladen werden: ${error}';
@override
String get addTo => 'Zur Sammlung hinzufügen';
@override
String get selectCollection => 'Sammlung auswählen';
@override
String get createNewCollection => 'Neue Sammlung erstellen';
@override
String get collectionName => 'Sammlungsname';
@override
String get enterCollectionName => 'Sammlungsnamen eingeben';
@override
String get addedToCollection => 'Zur Sammlung hinzugefügt';
@override
String get errorAddingToCollection => 'Fehler beim Hinzufügen zur Sammlung';
@override
String get created => 'Sammlung erstellt';
@override
String get removeFromCollection => 'Aus Sammlung entfernen';
@override
String removeFromCollectionConfirm({required Object title}) =>
'"${title}" aus dieser Sammlung entfernen?';
@override
String get removedFromCollection => 'Aus Sammlung entfernt';
@override
String get removeFromCollectionFailed =>
'Entfernen aus Sammlung fehlgeschlagen';
@override
String removeFromCollectionError({required Object error}) =>
'Fehler beim Entfernen aus der Sammlung: ${error}';
}
// Path: libraries.tabs
class _StringsLibrariesTabsDe implements _StringsLibrariesTabsEn {
_StringsLibrariesTabsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get recommended => 'Empfohlen';
@override
String get browse => 'Durchsuchen';
@override
String get collections => 'Sammlungen';
@override
String get playlists => 'Wiedergabelisten';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsDe implements _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsDe._(this._root);
@override
final _StringsDe _root; // ignore: unused_field
// Translations
@override
String get all => 'Alle';
@override
String get movies => 'Filme';
@override
String get shows => 'Serien';
@override
String get seasons => 'Staffeln';
@override
String get episodes => 'Episoden';
@override
String get folders => 'Ordner';
}
// Path: <root>
class _StringsIt implements Translations {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
_StringsIt.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.it,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <it>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override
dynamic operator [](String key) => $meta.getTranslation(key);
@override
late final _StringsIt _root = this; // ignore: unused_field
// Translations
@override
late final _StringsAppIt app = _StringsAppIt._(_root);
@override
late final _StringsAuthIt auth = _StringsAuthIt._(_root);
@override
late final _StringsCommonIt common = _StringsCommonIt._(_root);
@override
late final _StringsScreensIt screens = _StringsScreensIt._(_root);
@override
late final _StringsUpdateIt update = _StringsUpdateIt._(_root);
@override
late final _StringsSettingsIt settings = _StringsSettingsIt._(_root);
@override
late final _StringsSearchIt search = _StringsSearchIt._(_root);
@override
late final _StringsHotkeysIt hotkeys = _StringsHotkeysIt._(_root);
@override
late final _StringsPinEntryIt pinEntry = _StringsPinEntryIt._(_root);
@override
late final _StringsFileInfoIt fileInfo = _StringsFileInfoIt._(_root);
@override
late final _StringsMediaMenuIt mediaMenu = _StringsMediaMenuIt._(_root);
@override
late final _StringsAccessibilityIt accessibility = _StringsAccessibilityIt._(
_root,
);
@override
late final _StringsTooltipsIt tooltips = _StringsTooltipsIt._(_root);
@override
late final _StringsVideoControlsIt videoControls = _StringsVideoControlsIt._(
_root,
);
@override
late final _StringsUserStatusIt userStatus = _StringsUserStatusIt._(_root);
@override
late final _StringsMessagesIt messages = _StringsMessagesIt._(_root);
@override
late final _StringsProfileIt profile = _StringsProfileIt._(_root);
@override
late final _StringsSubtitlingStylingIt subtitlingStyling =
_StringsSubtitlingStylingIt._(_root);
@override
late final _StringsDialogIt dialog = _StringsDialogIt._(_root);
@override
late final _StringsDiscoverIt discover = _StringsDiscoverIt._(_root);
@override
late final _StringsErrorsIt errors = _StringsErrorsIt._(_root);
@override
late final _StringsLibrariesIt libraries = _StringsLibrariesIt._(_root);
@override
late final _StringsAboutIt about = _StringsAboutIt._(_root);
@override
late final _StringsServerSelectionIt serverSelection =
_StringsServerSelectionIt._(_root);
@override
late final _StringsHubDetailIt hubDetail = _StringsHubDetailIt._(_root);
@override
late final _StringsLogsIt logs = _StringsLogsIt._(_root);
@override
late final _StringsLicensesIt licenses = _StringsLicensesIt._(_root);
@override
late final _StringsNavigationIt navigation = _StringsNavigationIt._(_root);
@override
late final _StringsPlaylistsIt playlists = _StringsPlaylistsIt._(_root);
@override
late final _StringsCollectionsIt collections = _StringsCollectionsIt._(_root);
}
// Path: app
class _StringsAppIt implements _StringsAppEn {
_StringsAppIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Plezy';
@override
String get loading => 'Caricamento...';
}
// Path: auth
class _StringsAuthIt implements _StringsAuthEn {
_StringsAuthIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get signInWithPlex => 'Accedi con Plex';
@override
String get showQRCode => 'Mostra QR Code';
@override
String get cancel => 'Cancella';
@override
String get authenticate => 'Autenticazione';
@override
String get retry => 'Riprova';
@override
String get debugEnterToken => 'Debug: Inserisci Token Plex';
@override
String get plexTokenLabel => 'Token Auth Plex';
@override
String get plexTokenHint => 'Inserisci il tuo token di Plex.tv';
@override
String get authenticationTimeout => 'Autenticazione scaduta. Riprova.';
@override
String get scanQRCodeInstruction =>
'Scansiona questo QR code con un dispositivo connesso a Plex per autenticarti.';
@override
String get waitingForAuth =>
'In attesa di autenticazione...\nCompleta l\'accesso dal tuo browser.';
}
// Path: common
class _StringsCommonIt implements _StringsCommonEn {
_StringsCommonIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get cancel => 'Cancella';
@override
String get save => 'Salva';
@override
String get close => 'Chiudi';
@override
String get clear => 'Pulisci';
@override
String get reset => 'Ripristina';
@override
String get later => 'Più tardi';
@override
String get submit => 'Invia';
@override
String get confirm => 'Conferma';
@override
String get retry => 'Riprova';
@override
String get playNow => 'Riproduci ora';
@override
String get logout => 'Disconnetti';
@override
String get online => 'Online';
@override
String get offline => 'Offline';
@override
String get owned => 'Di proprietà';
@override
String get shared => 'Condiviso';
@override
String get current => 'CORRENTE';
@override
String get unknown => 'Sconosciuto';
@override
String get refresh => 'Aggiorna';
@override
String get yes => 'Sì';
@override
String get no => 'No';
@override
String get server => 'Server';
@override
String get delete => 'Elimina';
@override
String get shuffle => 'Casuale';
@override
String get addTo => 'Aggiungi a...';
}
// Path: screens
class _StringsScreensIt implements _StringsScreensEn {
_StringsScreensIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get licenses => 'Licenze';
@override
String get selectServer => 'Seleziona server';
@override
String get switchProfile => 'Cambia profilo';
@override
String get subtitleStyling => 'Stile sottotitoli';
@override
String get search => 'Cerca';
@override
String get logs => 'Registro';
}
// Path: update
class _StringsUpdateIt implements _StringsUpdateEn {
_StringsUpdateIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get available => 'Aggiornamento disponibile';
@override
String versionAvailable({required Object version}) =>
'Versione ${version} disponibile';
@override
String currentVersion({required Object version}) => 'Corrente: ${version}';
@override
String get skipVersion => 'Salta questa versione';
@override
String get viewRelease => 'Visualizza dettagli release';
@override
String get latestVersion => 'La versione installata è l\'ultima disponibile';
@override
String get checkFailed => 'Impossibile controllare gli aggiornamenti';
}
// Path: settings
class _StringsSettingsIt implements _StringsSettingsEn {
_StringsSettingsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Impostazioni';
@override
String get language => 'Lingua';
@override
String get theme => 'Tema';
@override
String get appearance => 'Aspetto';
@override
String get videoPlayback => 'Riproduzione video';
@override
String get shufflePlay => 'Riproduzione casuale';
@override
String get advanced => 'Avanzate';
@override
String get useSeasonPostersDescription =>
'Mostra il poster della stagione invece del poster della serie per gli episodi';
@override
String get showHeroSectionDescription =>
'Visualizza il carosello dei contenuti in primo piano sulla schermata iniziale';
@override
String get secondsLabel => 'Secondi';
@override
String get minutesLabel => 'Minuti';
@override
String get secondsShort => 's';
@override
String get minutesShort => 'm';
@override
String durationHint({required Object min, required Object max}) =>
'Inserisci durata (${min}-${max})';
@override
String get systemTheme => 'Sistema';
@override
String get systemThemeDescription => 'Segui le impostazioni di sistema';
@override
String get lightTheme => 'Chiaro';
@override
String get darkTheme => 'Scuro';
@override
String get libraryDensity => 'Densità libreria';
@override
String get compact => 'Compatta';
@override
String get compactDescription => 'Schede più piccole, più elementi visibili';
@override
String get normal => 'Normale';
@override
String get normalDescription => 'Dimensione predefinita';
@override
String get comfortable => 'Comoda';
@override
String get comfortableDescription =>
'Schede più grandi, meno elementi visibili';
@override
String get viewMode => 'Modalità di visualizzazione';
@override
String get gridView => 'Griglia';
@override
String get gridViewDescription =>
'Visualizza gli elementi in un layout a griglia';
@override
String get listView => 'Elenco';
@override
String get listViewDescription =>
'Visualizza gli elementi in un layout a elenco';
@override
String get useSeasonPosters => 'Usa poster delle stagioni';
@override
String get showHeroSection => 'Mostra sezione principale';
@override
String get hardwareDecoding => 'Decodifica Hardware';
@override
String get hardwareDecodingDescription =>
'Utilizza l\'accelerazione hardware quando disponibile';
@override
String get bufferSize => 'Dimensione buffer';
@override
String bufferSizeMB({required Object size}) => '${size}MB';
@override
String get subtitleStyling => 'Stile sottotitoli';
@override
String get subtitleStylingDescription =>
'Personalizza l\'aspetto dei sottotitoli';
@override
String get smallSkipDuration => 'Durata skip breve';
@override
String get largeSkipDuration => 'Durata skip lungo';
@override
String secondsUnit({required Object seconds}) => '${seconds} secondi';
@override
String get defaultSleepTimer => 'Timer spegnimento predefinito';
@override
String minutesUnit({required Object minutes}) => '${minutes} minuti';
@override
String get rememberTrackSelections =>
'Ricorda selezioni tracce per serie/film';
@override
String get rememberTrackSelectionsDescription =>
'Salva automaticamente le preferenze delle lingue audio e sottotitoli quando cambi tracce durante la riproduzione';
@override
String get unwatchedOnly => 'Solo non guardati';
@override
String get unwatchedOnlyDescription =>
'Includi solo gli episodi non guardati nella coda di riproduzione casuale';
@override
String get shuffleOrderNavigation => 'Navigazione in ordine casuale';
@override
String get shuffleOrderNavigationDescription =>
'I pulsanti Avanti/Indietro seguono l\'ordine casuale';
@override
String get loopShuffleQueue => 'Coda di riproduzione casuale in loop';
@override
String get loopShuffleQueueDescription =>
'Riavvia la coda quando raggiungi la fine';
@override
String get videoPlayerControls => 'Controlli del lettore video';
@override
String get keyboardShortcuts => 'Scorciatoie da tastiera';
@override
String get keyboardShortcutsDescription =>
'Personalizza le scorciatoie da tastiera';
@override
String get debugLogging => 'Log di debug';
@override
String get debugLoggingDescription =>
'Abilita il logging dettagliato per la risoluzione dei problemi';
@override
String get viewLogs => 'Visualizza log';
@override
String get viewLogsDescription => 'Visualizza i log dell\'applicazione';
@override
String get clearCache => 'Svuota cache';
@override
String get clearCacheDescription =>
'Questa opzione cancellerà tutte le immagini e i dati memorizzati nella cache. Dopo aver cancellato la cache, l\'app potrebbe impiegare più tempo per caricare i contenuti.';
@override
String get clearCacheSuccess => 'Cache cancellata correttamente';
@override
String get resetSettings => 'Ripristina impostazioni';
@override
String get resetSettingsDescription =>
'Questa opzione ripristinerà tutte le impostazioni ai valori predefiniti. Non può essere annullata.';
@override
String get resetSettingsSuccess => 'Impostazioni ripristinate correttamente';
@override
String get shortcutsReset =>
'Scorciatoie ripristinate alle impostazioni predefinite';
@override
String get about => 'Informazioni';
@override
String get aboutDescription => 'Informazioni sull\'app e le licenze';
@override
String get updates => 'Aggiornamenti';
@override
String get updateAvailable => 'Aggiornamento disponibile';
@override
String get checkForUpdates => 'Controlla aggiornamenti';
@override
String get validationErrorEnterNumber => 'Inserisci un numero valido';
@override
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}';
@override
String shortcutAlreadyAssigned({required Object action}) =>
'Scorciatoia già assegnata a ${action}';
@override
String shortcutUpdated({required Object action}) =>
'Scorciatoia aggiornata per ${action}';
@override
String get autoSkip => 'Salto Automatico';
@override
String get autoSkipIntro => 'Salta Intro Automaticamente';
@override
String get autoSkipIntroDescription =>
'Salta automaticamente i marcatori dell\'intro dopo alcuni secondi';
@override
String get autoSkipCredits => 'Salta Crediti Automaticamente';
@override
String get autoSkipCreditsDescription =>
'Salta automaticamente i crediti e riproduci l\'episodio successivo';
@override
String get autoSkipDelay => 'Ritardo Salto Automatico';
@override
String autoSkipDelayDescription({required Object seconds}) =>
'Aspetta ${seconds} secondi prima del salto automatico';
}
// Path: search
class _StringsSearchIt implements _StringsSearchEn {
_StringsSearchIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// 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
class _StringsHotkeysIt implements _StringsHotkeysEn {
_StringsHotkeysIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String setShortcutFor({required Object actionName}) =>
'Imposta scorciatoia per ${actionName}';
@override
String get clearShortcut => 'Elimina scorciatoia';
}
// Path: pinEntry
class _StringsPinEntryIt implements _StringsPinEntryEn {
_StringsPinEntryIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get enterPin => 'Inserisci PIN';
@override
String get showPin => 'Mostra PIN';
@override
String get hidePin => 'Nascondi PIN';
}
// Path: fileInfo
class _StringsFileInfoIt implements _StringsFileInfoEn {
_StringsFileInfoIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Info sul file';
@override
String get video => 'Video';
@override
String get audio => 'Audio';
@override
String get file => 'File';
@override
String get advanced => 'Avanzate';
@override
String get codec => 'Codec';
@override
String get resolution => 'Risoluzione';
@override
String get bitrate => 'Bitrate';
@override
String get frameRate => 'Frame Rate';
@override
String get aspectRatio => 'Aspect Ratio';
@override
String get profile => 'Profilo';
@override
String get bitDepth => 'Profondità colore';
@override
String get colorSpace => 'Spazio colore';
@override
String get colorRange => 'Gamma colori';
@override
String get colorPrimaries => 'Colori primari';
@override
String get chromaSubsampling => 'Sottocampionamento cromatico';
@override
String get channels => 'Canali';
@override
String get path => 'Percorso';
@override
String get size => 'Dimensione';
@override
String get container => 'Contenitore';
@override
String get duration => 'Durata';
@override
String get optimizedForStreaming => 'Ottimizzato per lo streaming';
@override
String get has64bitOffsets => 'Offset a 64-bit';
}
// Path: mediaMenu
class _StringsMediaMenuIt implements _StringsMediaMenuEn {
_StringsMediaMenuIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get markAsWatched => 'Segna come visto';
@override
String get markAsUnwatched => 'Segna come non visto';
@override
String get removeFromContinueWatching => 'Rimuovi da Continua a guardare';
@override
String get goToSeries => 'Vai alle serie';
@override
String get goToSeason => 'Vai alla stagione';
@override
String get shufflePlay => 'Riproduzione casuale';
@override
String get fileInfo => 'Info sul file';
}
// Path: accessibility
class _StringsAccessibilityIt implements _StringsAccessibilityEn {
_StringsAccessibilityIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String mediaCardMovie({required Object title}) => '${title}, film';
@override
String mediaCardShow({required Object title}) => '${title}, serie TV';
@override
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
@override
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
@override
String get mediaCardWatched => 'visto';
@override
String mediaCardPartiallyWatched({required Object percent}) =>
'${percent} percento visto';
@override
String get mediaCardUnwatched => 'non visto';
@override
String get tapToPlay => 'Tocca per riprodurre';
}
// Path: tooltips
class _StringsTooltipsIt implements _StringsTooltipsEn {
_StringsTooltipsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get shufflePlay => 'Riproduzione casuale';
@override
String get markAsWatched => 'Segna come visto';
@override
String get markAsUnwatched => 'Segna come non visto';
}
// Path: videoControls
class _StringsVideoControlsIt implements _StringsVideoControlsEn {
_StringsVideoControlsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get audioLabel => 'Audio';
@override
String get subtitlesLabel => 'Sottotitoli';
@override
String get resetToZero => 'Riporta a 0ms';
@override
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
@override
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
@override
String playsLater({required Object label}) => '${label} riprodotto dopo';
@override
String playsEarlier({required Object label}) => '${label} riprodotto prima';
@override
String get noOffset => 'Nessun offset';
@override
String get letterbox => 'Letterbox';
@override
String get fillScreen => 'Riempi schermo';
@override
String get stretch => 'Allunga';
@override
String get lockRotation => 'Blocca rotazione';
@override
String get unlockRotation => 'Sblocca rotazione';
@override
String get sleepTimer => 'Timer di spegnimento';
@override
String get timerActive => 'Timer attivo';
@override
String playbackWillPauseIn({required Object duration}) =>
'La riproduzione si interromperà tra ${duration}';
@override
String get sleepTimerCompleted =>
'Timer di spegnimento completato - riproduzione in pausa';
@override
String get playButton => 'Riproduci';
@override
String get pauseButton => 'Pausa';
@override
String seekBackwardButton({required Object seconds}) =>
'Riavvolgi di ${seconds} secondi';
@override
String seekForwardButton({required Object seconds}) =>
'Avanza di ${seconds} secondi';
@override
String get previousButton => 'Episodio precedente';
@override
String get nextButton => 'Episodio successivo';
@override
String get previousChapterButton => 'Capitolo precedente';
@override
String get nextChapterButton => 'Capitolo successivo';
@override
String get volumeButton => 'Volume';
@override
String get muteButton => 'Silenzia';
@override
String get unmuteButton => 'Riattiva audio';
@override
String get settingsButton => 'Impostazioni video';
@override
String get audioTrackButton => 'Tracce audio';
@override
String get subtitlesButton => 'Sottotitoli';
@override
String get chaptersButton => 'Capitoli';
@override
String get versionsButton => 'Versioni video';
@override
String get aspectRatioButton => 'Proporzioni';
@override
String get fullscreenButton => 'Attiva schermo intero';
@override
String get exitFullscreenButton => 'Esci da schermo intero';
@override
String get rotationLockButton => 'Blocco rotazione';
@override
String get timelineSlider => 'Timeline video';
@override
String get volumeSlider => 'Livello volume';
@override
String get backButton => 'Indietro';
}
// Path: userStatus
class _StringsUserStatusIt implements _StringsUserStatusEn {
_StringsUserStatusIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get admin => 'Admin';
@override
String get restricted => 'Limitato';
@override
String get protected => 'Protetto';
@override
String get current => 'ATTUALE';
}
// Path: messages
class _StringsMessagesIt implements _StringsMessagesEn {
_StringsMessagesIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get markedAsWatched => 'Segna come visto';
@override
String get markedAsUnwatched => 'Segna come non visto';
@override
String get removedFromContinueWatching => 'Rimosso da Continua a guardare';
@override
String errorLoading({required Object error}) => 'Errore: ${error}';
@override
String get fileInfoNotAvailable => 'Informazioni sul file non disponibili';
@override
String errorLoadingFileInfo({required Object error}) =>
'Errore caricamento informazioni sul file: ${error}';
@override
String get errorLoadingSeries => 'Errore caricamento serie';
@override
String get errorLoadingSeason => 'Errore caricamento stagione';
@override
String get musicNotSupported =>
'La riproduzione musicale non è ancora supportata';
@override
String get logsCleared => 'Log eliminati';
@override
String get logsCopied => 'Log copiati negli appunti';
@override
String get noLogsAvailable => 'Nessun log disponibile';
@override
String libraryScanning({required Object title}) => 'Scansione "${title}"...';
@override
String libraryScanStarted({required Object title}) =>
'Scansione libreria iniziata per "${title}"';
@override
String libraryScanFailed({required Object error}) =>
'Impossibile eseguire scansione della libreria: ${error}';
@override
String metadataRefreshing({required Object title}) =>
'Aggiornamento metadati per "${title}"...';
@override
String metadataRefreshStarted({required Object title}) =>
'Aggiornamento metadati per "${title}"';
@override
String metadataRefreshFailed({required Object error}) =>
'Errore aggiornamento metadati: ${error}';
@override
String get noPlexToken => 'Nessun token Plex trovato. Riesegui l\'accesso.';
@override
String get logoutConfirm => 'Sei sicuro di volerti disconnettere?';
@override
String get noSeasonsFound => 'Nessuna stagione trovata';
@override
String get noEpisodesFound => 'Nessun episodio trovato nella prima stagione';
@override
String get noEpisodesFoundGeneral => 'Nessun episodio trovato';
@override
String get noResultsFound => 'Nessun risultato';
@override
String sleepTimerSet({required Object label}) =>
'Imposta timer spegnimento per ${label}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Impossibile passare a ${displayName}';
@override
String get noItemsAvailable => 'Nessun elemento disponibile';
@override
String get failedToCreatePlayQueue =>
'Impossibile creare la coda di riproduzione';
@override
String get failedToCreatePlayQueueNoItems =>
'Impossibile creare la coda di riproduzione - nessun elemento';
@override
String failedPlayback({required Object action, required Object error}) =>
'Impossibile ${action}: ${error}';
}
// Path: profile
class _StringsProfileIt implements _StringsProfileEn {
_StringsProfileIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get noUsersAvailable => 'Nessun utente disponibile';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingIt implements _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get stylingOptions => 'Opzioni stile';
@override
String get fontSize => 'Dimensione';
@override
String get textColor => 'Colore testo';
@override
String get borderSize => 'Dimensione bordo';
@override
String get borderColor => 'Colore bordo';
@override
String get backgroundOpacity => 'Opacità sfondo';
@override
String get backgroundColor => 'Colore sfondo';
}
// Path: dialog
class _StringsDialogIt implements _StringsDialogEn {
_StringsDialogIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get confirmAction => 'Conferma azione';
@override
String get areYouSure => 'Sei sicuro di voler eseguire questa azione?';
@override
String get cancel => 'Cancella';
@override
String get playNow => 'Riproduci ora';
}
// Path: discover
class _StringsDiscoverIt implements _StringsDiscoverEn {
_StringsDiscoverIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Esplora';
@override
String get switchProfile => 'Cambia profilo';
@override
String get switchServer => 'Cambia server';
@override
String get logout => 'Disconnetti';
@override
String get noContentAvailable => 'Nessun contenuto disponibile';
@override
String get addMediaToLibraries =>
'Aggiungi alcuni file multimediali alle tue librerie';
@override
String get continueWatching => 'Continua a guardare';
@override
String get recentlyAdded => 'Aggiunti di recente';
@override
String get play => 'Riproduci';
@override
String get resume => 'Riprendi';
@override
String playEpisode({required Object season, required Object episode}) =>
'Riproduci S${season}, E${episode}';
@override
String resumeEpisode({required Object season, required Object episode}) =>
'Riprendi S${season}, E${episode}';
@override
String get pause => 'Pausa';
@override
String get overview => 'Panoramica';
@override
String get cast => 'Attori';
@override
String get seasons => 'Stagioni';
@override
String get studio => 'Studio';
@override
String get rating => 'Classificazione';
@override
String get watched => 'Guardato';
@override
String episodeCount({required Object count}) => '${count} episodi';
@override
String watchedProgress({required Object watched, required Object total}) =>
'${watched}/${total} guardati';
@override
String get movie => 'Film';
@override
String get tvShow => 'Serie TV';
@override
String minutesLeft({required Object minutes}) =>
'${minutes} minuti rimanenti';
}
// Path: errors
class _StringsErrorsIt implements _StringsErrorsEn {
_StringsErrorsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String searchFailed({required Object error}) => 'Ricerca fallita: ${error}';
@override
String connectionTimeout({required Object context}) =>
'Timeout connessione durante caricamento di ${context}';
@override
String get connectionFailed => 'Impossibile connettersi al server Plex.';
@override
String failedToLoad({required Object context, required Object error}) =>
'Impossibile caricare ${context}: ${error}';
@override
String get noClientAvailable => 'Nessun client disponibile';
@override
String authenticationFailed({required Object error}) =>
'Autenticazione fallita: ${error}';
@override
String get couldNotLaunchUrl => 'Impossibile avviare URL di autenticazione';
@override
String get pleaseEnterToken => 'Inserisci token';
@override
String get invalidToken => 'Token non valido';
@override
String failedToVerifyToken({required Object error}) =>
'Verifica token fallita: ${error}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Impossibile passare a ${displayName}';
@override
String get connectionFailedGeneric => 'Connessione fallita';
}
// Path: libraries
class _StringsLibrariesIt implements _StringsLibrariesEn {
_StringsLibrariesIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Librerie';
@override
String get scanLibraryFiles => 'Scansiona file libreria';
@override
String get scanLibrary => 'Scansiona libreria';
@override
String get analyze => 'Analizza';
@override
String get analyzeLibrary => 'Analizza libreria';
@override
String get refreshMetadata => 'Aggiorna metadati';
@override
String get emptyTrash => 'Svuota cestino';
@override
String emptyingTrash({required Object title}) =>
'Svuotamento cestino per "${title}"...';
@override
String trashEmptied({required Object title}) =>
'Cestino svuotato per "${title}"';
@override
String failedToEmptyTrash({required Object error}) =>
'Impossibile svuotare cestino: ${error}';
@override
String analyzing({required Object title}) => 'Analisi "${title}"...';
@override
String analysisStarted({required Object title}) =>
'Analisi iniziata per "${title}"';
@override
String failedToAnalyze({required Object error}) =>
'Impossibile analizzare libreria: ${error}';
@override
String get noLibrariesFound => 'Nessuna libreria trovata';
@override
String get thisLibraryIsEmpty => 'Questa libreria è vuota';
@override
String get all => 'Tutto';
@override
String get clearAll => 'Cancella tutto';
@override
String scanLibraryConfirm({required Object title}) =>
'Sei sicuro di voler scansionare "${title}"?';
@override
String analyzeLibraryConfirm({required Object title}) =>
'Sei sicuro di voler analizzare "${title}"?';
@override
String refreshMetadataConfirm({required Object title}) =>
'Sei sicuro di voler aggiornare i metadati per "${title}"?';
@override
String emptyTrashConfirm({required Object title}) =>
'Sei sicuro di voler svuotare il cestino per "${title}"?';
@override
String get manageLibraries => 'Gestisci librerie';
@override
String get sort => 'Ordina';
@override
String get sortBy => 'Ordina per';
@override
String get filters => 'Filtri';
@override
String loadingLibraryWithCount({required Object count}) =>
'Caricamento librerie... (${count} oggetti caricati)';
@override
String get confirmActionMessage =>
'Sei sicuro di voler eseguire questa azione?';
@override
String get showLibrary => 'Mostra libreria';
@override
String get hideLibrary => 'Nascondi libreria';
@override
String get libraryOptions => 'Opzioni libreria';
@override
String get content => 'contenuto della libreria';
@override
String get selectLibrary => 'Seleziona libreria';
@override
String filtersWithCount({required Object count}) => 'Filtri (${count})';
@override
String get noRecommendations => 'Nessun consiglio disponibile';
@override
String get noCollections => 'Nessuna raccolta in questa libreria';
@override
String get noFoldersFound => 'Nessuna cartella trovata';
@override
String get folders => 'cartelle';
@override
late final _StringsLibrariesTabsIt tabs = _StringsLibrariesTabsIt._(_root);
@override
late final _StringsLibrariesGroupingsIt groupings =
_StringsLibrariesGroupingsIt._(_root);
}
// Path: about
class _StringsAboutIt implements _StringsAboutEn {
_StringsAboutIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Informazioni';
@override
String get openSourceLicenses => 'Licenze Open Source';
@override
String versionLabel({required Object version}) => 'Versione ${version}';
@override
String get appDescription => 'Un bellissimo client Plex per Flutter';
@override
String get viewLicensesDescription =>
'Visualizza le licenze delle librerie di terze parti';
}
// Path: serverSelection
class _StringsServerSelectionIt implements _StringsServerSelectionEn {
_StringsServerSelectionIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get connectingToServer => 'Connessione al server...';
@override
String get connectingToAllServers => 'Connessione a tutti i server...';
@override
String get connectToAllServers => 'Connetti a tutti i server';
@override
String get allServerConnectionsFailed =>
'Impossibile connettersi a nessun server. Controlla la tua rete e riprova.';
@override
String foundServers({required Object count}) => 'Trovati ${count} server';
@override
String get orSelectIndividually =>
'Oppure seleziona un server singolarmente:';
@override
String get serverDebugCopied =>
'Dati di debug del server copiati negli appunti';
@override
String get copyDebugData => 'Copia dati di debug';
@override
String get noServersFound => 'Nessun server trovato';
@override
String malformedServerData({required Object count}) =>
'Trovato ${count} server con dati difettosi. Nessun server valido disponibile.';
@override
String get incompleteServerInfo =>
'Alcuni server presentano informazioni incomplete e sono stati ignorati. Controlla il tuo account Plex.tv.';
@override
String get incompleteConnectionInfo =>
'Le informazioni di connessione al server sono incomplete. Riprova.';
@override
String malformedServerInfo({required Object message}) =>
'Le informazioni sul server sono errate: ${message}';
@override
String get networkConnectionFailed =>
'Connessione di rete non riuscita. Controlla la tua connessione Internet e riprova.';
@override
String get authenticationFailed =>
'Autenticazione fallita. Effettua nuovamente l\'accesso.';
@override
String get plexServiceUnavailable =>
'Servizio Plex non disponibile. Riprova più tardi.';
@override
String failedToLoadServers({required Object error}) =>
'Impossibile caricare i server: ${error}';
}
// Path: hubDetail
class _StringsHubDetailIt implements _StringsHubDetailEn {
_StringsHubDetailIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Titolo';
@override
String get releaseYear => 'Anno rilascio';
@override
String get dateAdded => 'Data aggiunta';
@override
String get rating => 'Valutazione';
@override
String get noItemsFound => 'Nessun elemento trovato';
}
// Path: logs
class _StringsLogsIt implements _StringsLogsEn {
_StringsLogsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Registro';
@override
String get clearLogs => 'Cancella log';
@override
String get copyLogs => 'Copia log';
@override
String get exportLogs => 'Esporta log';
@override
String get noLogsToShow => 'Nessun log da mostrare';
@override
String get error => 'Errore:';
@override
String get stackTrace => 'Traccia dello stack:';
}
// Path: licenses
class _StringsLicensesIt implements _StringsLicensesEn {
_StringsLicensesIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get relatedPackages => 'Pacchetti correlati';
@override
String get license => 'Licenza';
@override
String licenseNumber({required Object number}) => 'Licenza ${number}';
@override
String licensesCount({required Object count}) => '${count} licenze';
}
// Path: navigation
class _StringsNavigationIt implements _StringsNavigationEn {
_StringsNavigationIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get home => 'Home';
@override
String get search => 'Cerca';
@override
String get libraries => 'Librerie';
@override
String get settings => 'Impostazioni';
}
// Path: playlists
class _StringsPlaylistsIt implements _StringsPlaylistsEn {
_StringsPlaylistsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Playlist';
@override
String get noPlaylists => 'Nessuna playlist trovata';
@override
String get create => 'Crea playlist';
@override
String get newPlaylist => 'Nuova playlist';
@override
String get playlistName => 'Nome playlist';
@override
String get enterPlaylistName => 'Inserisci nome playlist';
@override
String get edit => 'Modifica playlist';
@override
String get delete => 'Elimina playlist';
@override
String get addTo => 'Aggiungi a playlist';
@override
String get addItems => 'Aggiungi elementi';
@override
String get removeItem => 'Rimuovi da playlist';
@override
String get clearPlaylist => 'Svuota playlist';
@override
String get playAll => 'Riproduci tutto';
@override
String get shuffle => 'Casuale';
@override
String get smartPlaylist => 'Playlist intelligente';
@override
String get regularPlaylist => 'Playlist normale';
@override
String itemCount({required Object count}) => '${count} elementi';
@override
String get oneItem => '1 elemento';
@override
String get emptyPlaylist => 'Questa playlist è vuota';
@override
String get deleteConfirm => 'Eliminare playlist?';
@override
String deleteMessage({required Object name}) =>
'Sei sicuro di voler eliminare "${name}"?';
@override
String get created => 'Playlist creata';
@override
String get updated => 'Playlist aggiornata';
@override
String get deleted => 'Playlist eliminata';
@override
String get itemAdded => 'Aggiunto alla playlist';
@override
String get itemRemoved => 'Rimosso dalla playlist';
@override
String get selectPlaylist => 'Seleziona playlist';
@override
String get createNewPlaylist => 'Crea nuova playlist';
@override
String get errorCreating => 'Errore durante la creazione della playlist';
@override
String get errorDeleting => 'Errore durante l\'eliminazione della playlist';
@override
String get errorLoading => 'Errore durante il caricamento delle playlist';
@override
String get errorAdding => 'Errore durante l\'aggiunta alla playlist';
@override
String get errorReordering =>
'Errore durante il riordino dell\'elemento della playlist';
@override
String get errorRemoving => 'Errore durante la rimozione dalla playlist';
@override
String get playlist => 'Playlist';
}
// Path: collections
class _StringsCollectionsIt implements _StringsCollectionsEn {
_StringsCollectionsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get title => 'Raccolte';
@override
String get collection => 'Raccolta';
@override
String get empty => 'La raccolta è vuota';
@override
String get noItems => 'Nessun elemento in questa raccolta';
@override
String get unknownLibrarySection =>
'Impossibile eliminare: sezione libreria sconosciuta';
@override
String get deleteCollection => 'Elimina raccolta';
@override
String deleteConfirm({required Object title}) =>
'Sei sicuro di voler eliminare "${title}"? Questa azione non può essere annullata.';
@override
String get deleted => 'Raccolta eliminata';
@override
String get deleteFailed => 'Impossibile eliminare la raccolta';
@override
String deleteFailedWithError({required Object error}) =>
'Impossibile eliminare la raccolta: ${error}';
@override
String failedToLoadItems({required Object error}) =>
'Impossibile caricare gli elementi della raccolta: ${error}';
@override
String get addTo => 'Aggiungi alla raccolta';
@override
String get selectCollection => 'Seleziona raccolta';
@override
String get createNewCollection => 'Crea nuova raccolta';
@override
String get collectionName => 'Nome raccolta';
@override
String get enterCollectionName => 'Inserisci nome raccolta';
@override
String get addedToCollection => 'Aggiunto alla raccolta';
@override
String get errorAddingToCollection => 'Errore nell\'aggiunta alla raccolta';
@override
String get created => 'Raccolta creata';
@override
String get removeFromCollection => 'Rimuovi dalla raccolta';
@override
String removeFromCollectionConfirm({required Object title}) =>
'Rimuovere "${title}" da questa raccolta?';
@override
String get removedFromCollection => 'Rimosso dalla raccolta';
@override
String get removeFromCollectionFailed =>
'Impossibile rimuovere dalla raccolta';
@override
String removeFromCollectionError({required Object error}) =>
'Errore durante la rimozione dalla raccolta: ${error}';
}
// Path: libraries.tabs
class _StringsLibrariesTabsIt implements _StringsLibrariesTabsEn {
_StringsLibrariesTabsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get recommended => 'Consigliati';
@override
String get browse => 'Esplora';
@override
String get collections => 'Raccolte';
@override
String get playlists => 'Playlist';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsIt implements _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsIt._(this._root);
@override
final _StringsIt _root; // ignore: unused_field
// Translations
@override
String get all => 'Tutti';
@override
String get movies => 'Film';
@override
String get shows => 'Serie TV';
@override
String get seasons => 'Stagioni';
@override
String get episodes => 'Episodi';
@override
String get folders => 'Cartelle';
}
// Path: <root>
class _StringsNl implements Translations {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
_StringsNl.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.nl,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <nl>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override
dynamic operator [](String key) => $meta.getTranslation(key);
@override
late final _StringsNl _root = this; // ignore: unused_field
// Translations
@override
late final _StringsAppNl app = _StringsAppNl._(_root);
@override
late final _StringsAuthNl auth = _StringsAuthNl._(_root);
@override
late final _StringsCommonNl common = _StringsCommonNl._(_root);
@override
late final _StringsScreensNl screens = _StringsScreensNl._(_root);
@override
late final _StringsUpdateNl update = _StringsUpdateNl._(_root);
@override
late final _StringsSettingsNl settings = _StringsSettingsNl._(_root);
@override
late final _StringsSearchNl search = _StringsSearchNl._(_root);
@override
late final _StringsHotkeysNl hotkeys = _StringsHotkeysNl._(_root);
@override
late final _StringsPinEntryNl pinEntry = _StringsPinEntryNl._(_root);
@override
late final _StringsFileInfoNl fileInfo = _StringsFileInfoNl._(_root);
@override
late final _StringsMediaMenuNl mediaMenu = _StringsMediaMenuNl._(_root);
@override
late final _StringsAccessibilityNl accessibility = _StringsAccessibilityNl._(
_root,
);
@override
late final _StringsTooltipsNl tooltips = _StringsTooltipsNl._(_root);
@override
late final _StringsVideoControlsNl videoControls = _StringsVideoControlsNl._(
_root,
);
@override
late final _StringsUserStatusNl userStatus = _StringsUserStatusNl._(_root);
@override
late final _StringsMessagesNl messages = _StringsMessagesNl._(_root);
@override
late final _StringsProfileNl profile = _StringsProfileNl._(_root);
@override
late final _StringsSubtitlingStylingNl subtitlingStyling =
_StringsSubtitlingStylingNl._(_root);
@override
late final _StringsDialogNl dialog = _StringsDialogNl._(_root);
@override
late final _StringsDiscoverNl discover = _StringsDiscoverNl._(_root);
@override
late final _StringsErrorsNl errors = _StringsErrorsNl._(_root);
@override
late final _StringsLibrariesNl libraries = _StringsLibrariesNl._(_root);
@override
late final _StringsAboutNl about = _StringsAboutNl._(_root);
@override
late final _StringsServerSelectionNl serverSelection =
_StringsServerSelectionNl._(_root);
@override
late final _StringsHubDetailNl hubDetail = _StringsHubDetailNl._(_root);
@override
late final _StringsLogsNl logs = _StringsLogsNl._(_root);
@override
late final _StringsLicensesNl licenses = _StringsLicensesNl._(_root);
@override
late final _StringsNavigationNl navigation = _StringsNavigationNl._(_root);
@override
late final _StringsPlaylistsNl playlists = _StringsPlaylistsNl._(_root);
@override
late final _StringsCollectionsNl collections = _StringsCollectionsNl._(_root);
}
// Path: app
class _StringsAppNl implements _StringsAppEn {
_StringsAppNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Plezy';
@override
String get loading => 'Laden...';
}
// Path: auth
class _StringsAuthNl implements _StringsAuthEn {
_StringsAuthNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get signInWithPlex => 'Inloggen met Plex';
@override
String get showQRCode => 'Toon QR-code';
@override
String get cancel => 'Annuleren';
@override
String get authenticate => 'Authenticeren';
@override
String get retry => 'Opnieuw proberen';
@override
String get debugEnterToken => 'Debug: Voer Plex Token in';
@override
String get plexTokenLabel => 'Plex Authenticatietoken';
@override
String get plexTokenHint => 'Voer je Plex.tv token in';
@override
String get authenticationTimeout =>
'Authenticatie verlopen. Probeer opnieuw.';
@override
String get scanQRCodeInstruction =>
'Scan deze QR-code met een apparaat dat is ingelogd op Plex om te authenticeren.';
@override
String get waitingForAuth =>
'Wachten op authenticatie...\nVoltooi het inloggen in je browser.';
}
// Path: common
class _StringsCommonNl implements _StringsCommonEn {
_StringsCommonNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get cancel => 'Annuleren';
@override
String get save => 'Opslaan';
@override
String get close => 'Sluiten';
@override
String get clear => 'Wissen';
@override
String get reset => 'Resetten';
@override
String get later => 'Later';
@override
String get submit => 'Verzenden';
@override
String get confirm => 'Bevestigen';
@override
String get retry => 'Opnieuw proberen';
@override
String get playNow => 'Nu afspelen';
@override
String get logout => 'Uitloggen';
@override
String get online => 'Online';
@override
String get offline => 'Offline';
@override
String get owned => 'Eigendom';
@override
String get shared => 'Gedeeld';
@override
String get current => 'HUIDIG';
@override
String get unknown => 'Onbekend';
@override
String get refresh => 'Vernieuwen';
@override
String get yes => 'Ja';
@override
String get no => 'Nee';
@override
String get server => 'Server';
@override
String get delete => 'Verwijderen';
@override
String get shuffle => 'Willekeurig';
@override
String get addTo => 'Toevoegen aan...';
}
// Path: screens
class _StringsScreensNl implements _StringsScreensEn {
_StringsScreensNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get licenses => 'Licenties';
@override
String get selectServer => 'Selecteer server';
@override
String get switchProfile => 'Wissel van profiel';
@override
String get subtitleStyling => 'Ondertitel opmaak';
@override
String get search => 'Zoeken';
@override
String get logs => 'Logbestanden';
}
// Path: update
class _StringsUpdateNl implements _StringsUpdateEn {
_StringsUpdateNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get available => 'Update beschikbaar';
@override
String versionAvailable({required Object version}) =>
'Versie ${version} is beschikbaar';
@override
String currentVersion({required Object version}) => 'Huidig: ${version}';
@override
String get skipVersion => 'Deze versie overslaan';
@override
String get viewRelease => 'Bekijk release';
@override
String get latestVersion => 'Je hebt de nieuwste versie';
@override
String get checkFailed => 'Kon niet controleren op updates';
}
// Path: settings
class _StringsSettingsNl implements _StringsSettingsEn {
_StringsSettingsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Instellingen';
@override
String get language => 'Taal';
@override
String get theme => 'Thema';
@override
String get appearance => 'Uiterlijk';
@override
String get videoPlayback => 'Video afspelen';
@override
String get shufflePlay => 'Willekeurig afspelen';
@override
String get advanced => 'Geavanceerd';
@override
String get useSeasonPostersDescription =>
'Toon seizoenposter in plaats van serieposter voor afleveringen';
@override
String get showHeroSectionDescription =>
'Toon uitgelichte inhoud carrousel op startscherm';
@override
String get secondsLabel => 'Seconden';
@override
String get minutesLabel => 'Minuten';
@override
String get secondsShort => 's';
@override
String get minutesShort => 'm';
@override
String durationHint({required Object min, required Object max}) =>
'Voer duur in (${min}-${max})';
@override
String get systemTheme => 'Systeem';
@override
String get systemThemeDescription => 'Volg systeeminstellingen';
@override
String get lightTheme => 'Licht';
@override
String get darkTheme => 'Donker';
@override
String get libraryDensity => 'Bibliotheek dichtheid';
@override
String get compact => 'Compact';
@override
String get compactDescription => 'Kleinere kaarten, meer items zichtbaar';
@override
String get normal => 'Normaal';
@override
String get normalDescription => 'Standaard grootte';
@override
String get comfortable => 'Comfortabel';
@override
String get comfortableDescription =>
'Grotere kaarten, minder items zichtbaar';
@override
String get viewMode => 'Weergavemodus';
@override
String get gridView => 'Raster';
@override
String get gridViewDescription => 'Items weergeven in een rasterindeling';
@override
String get listView => 'Lijst';
@override
String get listViewDescription => 'Items weergeven in een lijstindeling';
@override
String get useSeasonPosters => 'Gebruik seizoenposters';
@override
String get showHeroSection => 'Toon hoofdsectie';
@override
String get hardwareDecoding => 'Hardware decodering';
@override
String get hardwareDecodingDescription =>
'Gebruik hardware versnelling indien beschikbaar';
@override
String get bufferSize => 'Buffer grootte';
@override
String bufferSizeMB({required Object size}) => '${size}MB';
@override
String get subtitleStyling => 'Ondertitel opmaak';
@override
String get subtitleStylingDescription => 'Pas ondertitel uiterlijk aan';
@override
String get smallSkipDuration => 'Korte skip duur';
@override
String get largeSkipDuration => 'Lange skip duur';
@override
String secondsUnit({required Object seconds}) => '${seconds} seconden';
@override
String get defaultSleepTimer => 'Standaard slaap timer';
@override
String minutesUnit({required Object minutes}) => 'bij ${minutes} minuten';
@override
String get rememberTrackSelections =>
'Onthoud track selecties per serie/film';
@override
String get rememberTrackSelectionsDescription =>
'Bewaar automatisch audio- en ondertiteltaalvoorkeuren wanneer je tracks wijzigt tijdens afspelen';
@override
String get unwatchedOnly => 'Alleen ongekeken';
@override
String get unwatchedOnlyDescription =>
'Alleen ongekeken afleveringen opnemen in willekeurige wachtrij';
@override
String get shuffleOrderNavigation => 'Willekeurige volgorde navigatie';
@override
String get shuffleOrderNavigationDescription =>
'Volgende/vorige knoppen volgen willekeurige volgorde';
@override
String get loopShuffleQueue => 'Herhaal willekeurige wachtrij';
@override
String get loopShuffleQueueDescription =>
'Start wachtrij opnieuw bij het einde';
@override
String get videoPlayerControls => 'Videospeler bediening';
@override
String get keyboardShortcuts => 'Toetsenbord sneltoetsen';
@override
String get keyboardShortcutsDescription => 'Pas toetsenbord sneltoetsen aan';
@override
String get debugLogging => 'Debug logging';
@override
String get debugLoggingDescription =>
'Schakel gedetailleerde logging in voor probleemoplossing';
@override
String get viewLogs => 'Bekijk logs';
@override
String get viewLogsDescription => 'Bekijk applicatie logs';
@override
String get clearCache => 'Cache wissen';
@override
String get clearCacheDescription =>
'Dit wist alle gecachte afbeeldingen en gegevens. De app kan langer duren om inhoud te laden na het wissen van de cache.';
@override
String get clearCacheSuccess => 'Cache succesvol gewist';
@override
String get resetSettings => 'Instellingen resetten';
@override
String get resetSettingsDescription =>
'Dit reset alle instellingen naar hun standaard waarden. Deze actie kan niet ongedaan gemaakt worden.';
@override
String get resetSettingsSuccess => 'Instellingen succesvol gereset';
@override
String get shortcutsReset => 'Sneltoetsen gereset naar standaard';
@override
String get about => 'Over';
@override
String get aboutDescription => 'App informatie en licenties';
@override
String get updates => 'Updates';
@override
String get updateAvailable => 'Update beschikbaar';
@override
String get checkForUpdates => 'Controleer op updates';
@override
String get validationErrorEnterNumber => 'Voer een geldig nummer in';
@override
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn';
@override
String shortcutAlreadyAssigned({required Object action}) =>
'Sneltoets al toegewezen aan ${action}';
@override
String shortcutUpdated({required Object action}) =>
'Sneltoets bijgewerkt voor ${action}';
@override
String get autoSkip => 'Automatisch Overslaan';
@override
String get autoSkipIntro => 'Intro Automatisch Overslaan';
@override
String get autoSkipIntroDescription =>
'Intro-markeringen na enkele seconden automatisch overslaan';
@override
String get autoSkipCredits => 'Credits Automatisch Overslaan';
@override
String get autoSkipCreditsDescription =>
'Credits automatisch overslaan en volgende aflevering afspelen';
@override
String get autoSkipDelay => 'Vertraging Automatisch Overslaan';
@override
String autoSkipDelayDescription({required Object seconds}) =>
'${seconds} seconden wachten voor automatisch overslaan';
}
// Path: search
class _StringsSearchNl implements _StringsSearchEn {
_StringsSearchNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// 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
class _StringsHotkeysNl implements _StringsHotkeysEn {
_StringsHotkeysNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String setShortcutFor({required Object actionName}) =>
'Stel sneltoets in voor ${actionName}';
@override
String get clearShortcut => 'Wis sneltoets';
}
// Path: pinEntry
class _StringsPinEntryNl implements _StringsPinEntryEn {
_StringsPinEntryNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get enterPin => 'Voer PIN in';
@override
String get showPin => 'Toon PIN';
@override
String get hidePin => 'Verberg PIN';
}
// Path: fileInfo
class _StringsFileInfoNl implements _StringsFileInfoEn {
_StringsFileInfoNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Bestand info';
@override
String get video => 'Video';
@override
String get audio => 'Audio';
@override
String get file => 'Bestand';
@override
String get advanced => 'Geavanceerd';
@override
String get codec => 'Codec';
@override
String get resolution => 'Resolutie';
@override
String get bitrate => 'Bitrate';
@override
String get frameRate => 'Frame rate';
@override
String get aspectRatio => 'Beeldverhouding';
@override
String get profile => 'Profiel';
@override
String get bitDepth => 'Bit diepte';
@override
String get colorSpace => 'Kleurruimte';
@override
String get colorRange => 'Kleurbereik';
@override
String get colorPrimaries => 'Kleurprimaires';
@override
String get chromaSubsampling => 'Chroma subsampling';
@override
String get channels => 'Kanalen';
@override
String get path => 'Pad';
@override
String get size => 'Grootte';
@override
String get container => 'Container';
@override
String get duration => 'Duur';
@override
String get optimizedForStreaming => 'Geoptimaliseerd voor streaming';
@override
String get has64bitOffsets => '64-bit Offsets';
}
// Path: mediaMenu
class _StringsMediaMenuNl implements _StringsMediaMenuEn {
_StringsMediaMenuNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get markAsWatched => 'Markeer als gekeken';
@override
String get markAsUnwatched => 'Markeer als ongekeken';
@override
String get removeFromContinueWatching => 'Verwijder uit Doorgaan met kijken';
@override
String get goToSeries => 'Ga naar serie';
@override
String get goToSeason => 'Ga naar seizoen';
@override
String get shufflePlay => 'Willekeurig afspelen';
@override
String get fileInfo => 'Bestand info';
}
// Path: accessibility
class _StringsAccessibilityNl implements _StringsAccessibilityEn {
_StringsAccessibilityNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String mediaCardMovie({required Object title}) => '${title}, film';
@override
String mediaCardShow({required Object title}) => '${title}, TV-serie';
@override
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
@override
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
@override
String get mediaCardWatched => 'bekeken';
@override
String mediaCardPartiallyWatched({required Object percent}) =>
'${percent} procent bekeken';
@override
String get mediaCardUnwatched => 'niet bekeken';
@override
String get tapToPlay => 'Tik om af te spelen';
}
// Path: tooltips
class _StringsTooltipsNl implements _StringsTooltipsEn {
_StringsTooltipsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get shufflePlay => 'Willekeurig afspelen';
@override
String get markAsWatched => 'Markeer als gekeken';
@override
String get markAsUnwatched => 'Markeer als ongekeken';
}
// Path: videoControls
class _StringsVideoControlsNl implements _StringsVideoControlsEn {
_StringsVideoControlsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get audioLabel => 'Audio';
@override
String get subtitlesLabel => 'Ondertitels';
@override
String get resetToZero => 'Reset naar 0ms';
@override
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
@override
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
@override
String playsLater({required Object label}) => '${label} speelt later af';
@override
String playsEarlier({required Object label}) => '${label} speelt eerder af';
@override
String get noOffset => 'Geen offset';
@override
String get letterbox => 'Letterbox';
@override
String get fillScreen => 'Vul scherm';
@override
String get stretch => 'Uitrekken';
@override
String get lockRotation => 'Vergrendel rotatie';
@override
String get unlockRotation => 'Ontgrendel rotatie';
@override
String get sleepTimer => 'Slaaptimer';
@override
String get timerActive => 'Timer actief';
@override
String playbackWillPauseIn({required Object duration}) =>
'Afspelen wordt gepauzeerd over ${duration}';
@override
String get sleepTimerCompleted => 'Slaaptimer voltooid - afspelen gepauzeerd';
@override
String get playButton => 'Afspelen';
@override
String get pauseButton => 'Pauzeren';
@override
String seekBackwardButton({required Object seconds}) =>
'Terugspoelen ${seconds} seconden';
@override
String seekForwardButton({required Object seconds}) =>
'Vooruitspoelen ${seconds} seconden';
@override
String get previousButton => 'Vorige aflevering';
@override
String get nextButton => 'Volgende aflevering';
@override
String get previousChapterButton => 'Vorig hoofdstuk';
@override
String get nextChapterButton => 'Volgend hoofdstuk';
@override
String get volumeButton => 'Volume';
@override
String get muteButton => 'Dempen';
@override
String get unmuteButton => 'Dempen opheffen';
@override
String get settingsButton => 'Video-instellingen';
@override
String get audioTrackButton => 'Audiosporen';
@override
String get subtitlesButton => 'Ondertitels';
@override
String get chaptersButton => 'Hoofdstukken';
@override
String get versionsButton => 'Videoversies';
@override
String get aspectRatioButton => 'Beeldverhouding';
@override
String get fullscreenButton => 'Volledig scherm activeren';
@override
String get exitFullscreenButton => 'Volledig scherm verlaten';
@override
String get rotationLockButton => 'Rotatievergrendeling';
@override
String get timelineSlider => 'Videotijdlijn';
@override
String get volumeSlider => 'Volumeniveau';
@override
String get backButton => 'Terug';
}
// Path: userStatus
class _StringsUserStatusNl implements _StringsUserStatusEn {
_StringsUserStatusNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get admin => 'Beheerder';
@override
String get restricted => 'Beperkt';
@override
String get protected => 'Beschermd';
@override
String get current => 'HUIDIG';
}
// Path: messages
class _StringsMessagesNl implements _StringsMessagesEn {
_StringsMessagesNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get markedAsWatched => 'Gemarkeerd als gekeken';
@override
String get markedAsUnwatched => 'Gemarkeerd als ongekeken';
@override
String get removedFromContinueWatching =>
'Verwijderd uit Doorgaan met kijken';
@override
String errorLoading({required Object error}) => 'Fout: ${error}';
@override
String get fileInfoNotAvailable => 'Bestand informatie niet beschikbaar';
@override
String errorLoadingFileInfo({required Object error}) =>
'Fout bij laden bestand info: ${error}';
@override
String get errorLoadingSeries => 'Fout bij laden serie';
@override
String get errorLoadingSeason => 'Fout bij laden seizoen';
@override
String get musicNotSupported => 'Muziek afspelen wordt nog niet ondersteund';
@override
String get logsCleared => 'Logs gewist';
@override
String get logsCopied => 'Logs gekopieerd naar klembord';
@override
String get noLogsAvailable => 'Geen logs beschikbaar';
@override
String libraryScanning({required Object title}) => 'Scannen "${title}"...';
@override
String libraryScanStarted({required Object title}) =>
'Bibliotheek scan gestart voor "${title}"';
@override
String libraryScanFailed({required Object error}) =>
'Kon bibliotheek niet scannen: ${error}';
@override
String metadataRefreshing({required Object title}) =>
'Metadata vernieuwen voor "${title}"...';
@override
String metadataRefreshStarted({required Object title}) =>
'Metadata vernieuwen gestart voor "${title}"';
@override
String metadataRefreshFailed({required Object error}) =>
'Kon metadata niet vernieuwen: ${error}';
@override
String get noPlexToken => 'Geen Plex token gevonden. Log opnieuw in.';
@override
String get logoutConfirm => 'Weet je zeker dat je wilt uitloggen?';
@override
String get noSeasonsFound => 'Geen seizoenen gevonden';
@override
String get noEpisodesFound => 'Geen afleveringen gevonden in eerste seizoen';
@override
String get noEpisodesFoundGeneral => 'Geen afleveringen gevonden';
@override
String get noResultsFound => 'Geen resultaten gevonden';
@override
String sleepTimerSet({required Object label}) =>
'Slaap timer ingesteld voor ${label}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Kon niet wisselen naar ${displayName}';
@override
String get noItemsAvailable => 'Geen items beschikbaar';
@override
String get failedToCreatePlayQueue => 'Kan afspeelwachtrij niet maken';
@override
String get failedToCreatePlayQueueNoItems =>
'Kan afspeelwachtrij niet maken - geen items';
@override
String failedPlayback({required Object action, required Object error}) =>
'Afspelen van ${action} mislukt: ${error}';
}
// Path: profile
class _StringsProfileNl implements _StringsProfileEn {
_StringsProfileNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get noUsersAvailable => 'Geen gebruikers beschikbaar';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingNl implements _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get stylingOptions => 'Opmaak opties';
@override
String get fontSize => 'Lettergrootte';
@override
String get textColor => 'Tekstkleur';
@override
String get borderSize => 'Rand grootte';
@override
String get borderColor => 'Randkleur';
@override
String get backgroundOpacity => 'Achtergrond transparantie';
@override
String get backgroundColor => 'Achtergrondkleur';
}
// Path: dialog
class _StringsDialogNl implements _StringsDialogEn {
_StringsDialogNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get confirmAction => 'Bevestig actie';
@override
String get areYouSure => 'Weet je zeker dat je deze actie wilt uitvoeren?';
@override
String get cancel => 'Annuleren';
@override
String get playNow => 'Nu afspelen';
}
// Path: discover
class _StringsDiscoverNl implements _StringsDiscoverEn {
_StringsDiscoverNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Ontdekken';
@override
String get switchProfile => 'Wissel van profiel';
@override
String get switchServer => 'Wissel van server';
@override
String get logout => 'Uitloggen';
@override
String get noContentAvailable => 'Geen inhoud beschikbaar';
@override
String get addMediaToLibraries => 'Voeg wat media toe aan je bibliotheken';
@override
String get continueWatching => 'Verder kijken';
@override
String get recentlyAdded => 'Recent toegevoegd';
@override
String get play => 'Afspelen';
@override
String get resume => 'Hervatten';
@override
String playEpisode({required Object season, required Object episode}) =>
'Speel S${season}, E${episode}';
@override
String resumeEpisode({required Object season, required Object episode}) =>
'Hervat S${season}, E${episode}';
@override
String get pause => 'Pauzeren';
@override
String get overview => 'Overzicht';
@override
String get cast => 'Acteurs';
@override
String get seasons => 'Seizoenen';
@override
String get studio => 'Studio';
@override
String get rating => 'Leeftijd';
@override
String get watched => 'Bekeken';
@override
String episodeCount({required Object count}) => '${count} afleveringen';
@override
String watchedProgress({required Object watched, required Object total}) =>
'${watched}/${total} gekeken';
@override
String get movie => 'Film';
@override
String get tvShow => 'TV Serie';
@override
String minutesLeft({required Object minutes}) => '${minutes} min over';
}
// Path: errors
class _StringsErrorsNl implements _StringsErrorsEn {
_StringsErrorsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String searchFailed({required Object error}) => 'Zoeken mislukt: ${error}';
@override
String connectionTimeout({required Object context}) =>
'Verbinding time-out tijdens laden ${context}';
@override
String get connectionFailed => 'Kan geen verbinding maken met Plex server';
@override
String failedToLoad({required Object context, required Object error}) =>
'Kon ${context} niet laden: ${error}';
@override
String get noClientAvailable => 'Geen client beschikbaar';
@override
String authenticationFailed({required Object error}) =>
'Authenticatie mislukt: ${error}';
@override
String get couldNotLaunchUrl => 'Kon auth URL niet openen';
@override
String get pleaseEnterToken => 'Voer een token in';
@override
String get invalidToken => 'Ongeldig token';
@override
String failedToVerifyToken({required Object error}) =>
'Kon token niet verifiëren: ${error}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Kon niet wisselen naar ${displayName}';
@override
String get connectionFailedGeneric => 'Verbinding mislukt';
}
// Path: libraries
class _StringsLibrariesNl implements _StringsLibrariesEn {
_StringsLibrariesNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Bibliotheken';
@override
String get scanLibraryFiles => 'Scan bibliotheek bestanden';
@override
String get scanLibrary => 'Scan bibliotheek';
@override
String get analyze => 'Analyseren';
@override
String get analyzeLibrary => 'Analyseer bibliotheek';
@override
String get refreshMetadata => 'Vernieuw metadata';
@override
String get emptyTrash => 'Prullenbak legen';
@override
String emptyingTrash({required Object title}) =>
'Prullenbak legen voor "${title}"...';
@override
String trashEmptied({required Object title}) =>
'Prullenbak geleegd voor "${title}"';
@override
String failedToEmptyTrash({required Object error}) =>
'Kon prullenbak niet legen: ${error}';
@override
String analyzing({required Object title}) => 'Analyseren "${title}"...';
@override
String analysisStarted({required Object title}) =>
'Analyse gestart voor "${title}"';
@override
String failedToAnalyze({required Object error}) =>
'Kon bibliotheek niet analyseren: ${error}';
@override
String get noLibrariesFound => 'Geen bibliotheken gevonden';
@override
String get thisLibraryIsEmpty => 'Deze bibliotheek is leeg';
@override
String get all => 'Alles';
@override
String get clearAll => 'Alles wissen';
@override
String scanLibraryConfirm({required Object title}) =>
'Weet je zeker dat je "${title}" wilt scannen?';
@override
String analyzeLibraryConfirm({required Object title}) =>
'Weet je zeker dat je "${title}" wilt analyseren?';
@override
String refreshMetadataConfirm({required Object title}) =>
'Weet je zeker dat je metadata wilt vernieuwen voor "${title}"?';
@override
String emptyTrashConfirm({required Object title}) =>
'Weet je zeker dat je de prullenbak wilt legen voor "${title}"?';
@override
String get manageLibraries => 'Beheer bibliotheken';
@override
String get sort => 'Sorteren';
@override
String get sortBy => 'Sorteer op';
@override
String get filters => 'Filters';
@override
String loadingLibraryWithCount({required Object count}) =>
'Bibliotheek laden... (${count} items geladen)';
@override
String get confirmActionMessage =>
'Weet je zeker dat je deze actie wilt uitvoeren?';
@override
String get showLibrary => 'Toon bibliotheek';
@override
String get hideLibrary => 'Verberg bibliotheek';
@override
String get libraryOptions => 'Bibliotheek opties';
@override
String get content => 'bibliotheekinhoud';
@override
String get selectLibrary => 'Bibliotheek kiezen';
@override
String filtersWithCount({required Object count}) => 'Filters (${count})';
@override
String get noRecommendations => 'Geen aanbevelingen beschikbaar';
@override
String get noCollections => 'Geen collecties in deze bibliotheek';
@override
String get noFoldersFound => 'Geen mappen gevonden';
@override
String get folders => 'mappen';
@override
late final _StringsLibrariesTabsNl tabs = _StringsLibrariesTabsNl._(_root);
@override
late final _StringsLibrariesGroupingsNl groupings =
_StringsLibrariesGroupingsNl._(_root);
}
// Path: about
class _StringsAboutNl implements _StringsAboutEn {
_StringsAboutNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Over';
@override
String get openSourceLicenses => 'Open Source licenties';
@override
String versionLabel({required Object version}) => 'Versie ${version}';
@override
String get appDescription => 'Een mooie Plex client voor Flutter';
@override
String get viewLicensesDescription =>
'Bekijk licenties van third-party bibliotheken';
}
// Path: serverSelection
class _StringsServerSelectionNl implements _StringsServerSelectionEn {
_StringsServerSelectionNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get connectingToServer => 'Verbinden met server...';
@override
String get connectingToAllServers => 'Verbinden met alle servers...';
@override
String get connectToAllServers => 'Verbind met alle servers';
@override
String get allServerConnectionsFailed =>
'Kon niet verbinden met servers. Controleer je netwerk en probeer opnieuw.';
@override
String foundServers({required Object count}) => '${count} server(s) gevonden';
@override
String get orSelectIndividually => 'Of selecteer een server individueel:';
@override
String get serverDebugCopied =>
'Server debug gegevens gekopieerd naar klembord';
@override
String get copyDebugData => 'Kopieer debug gegevens';
@override
String get noServersFound => 'Geen servers gevonden';
@override
String malformedServerData({required Object count}) =>
'${count} server(s) gevonden met verkeerde data. Geen geldige servers beschikbaar.';
@override
String get incompleteServerInfo =>
'Sommige servers hebben incomplete informatie en zijn overgeslagen. Controleer je Plex.tv account.';
@override
String get incompleteConnectionInfo =>
'Server verbinding informatie is incompleet. Probeer opnieuw.';
@override
String malformedServerInfo({required Object message}) =>
'Server informatie is verkeerd geformatteerd: ${message}';
@override
String get networkConnectionFailed =>
'Netwerkverbinding mislukt. Controleer je internetverbinding en probeer opnieuw.';
@override
String get authenticationFailed => 'Authenticatie mislukt. Log opnieuw in.';
@override
String get plexServiceUnavailable =>
'Plex service niet beschikbaar. Probeer later opnieuw.';
@override
String failedToLoadServers({required Object error}) =>
'Kon servers niet laden: ${error}';
}
// Path: hubDetail
class _StringsHubDetailNl implements _StringsHubDetailEn {
_StringsHubDetailNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Titel';
@override
String get releaseYear => 'Uitgavejaar';
@override
String get dateAdded => 'Datum toegevoegd';
@override
String get rating => 'Beoordeling';
@override
String get noItemsFound => 'Geen items gevonden';
}
// Path: logs
class _StringsLogsNl implements _StringsLogsEn {
_StringsLogsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Logbestanden';
@override
String get clearLogs => 'Wis logs';
@override
String get copyLogs => 'Kopieer logs';
@override
String get exportLogs => 'Exporteer logs';
@override
String get noLogsToShow => 'Geen logs om te tonen';
@override
String get error => 'Fout:';
@override
String get stackTrace => 'Stacktracering:';
}
// Path: licenses
class _StringsLicensesNl implements _StringsLicensesEn {
_StringsLicensesNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get relatedPackages => 'Gerelateerde pakketten';
@override
String get license => 'Licentie';
@override
String licenseNumber({required Object number}) => 'Licentie ${number}';
@override
String licensesCount({required Object count}) => '${count} licenties';
}
// Path: navigation
class _StringsNavigationNl implements _StringsNavigationEn {
_StringsNavigationNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get home => 'Thuis';
@override
String get search => 'Zoeken';
@override
String get libraries => 'Bibliotheken';
@override
String get settings => 'Instellingen';
}
// Path: playlists
class _StringsPlaylistsNl implements _StringsPlaylistsEn {
_StringsPlaylistsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Afspeellijsten';
@override
String get noPlaylists => 'Geen afspeellijsten gevonden';
@override
String get create => 'Afspeellijst maken';
@override
String get newPlaylist => 'Nieuwe afspeellijst';
@override
String get playlistName => 'Naam afspeellijst';
@override
String get enterPlaylistName => 'Voer naam afspeellijst in';
@override
String get edit => 'Afspeellijst bewerken';
@override
String get delete => 'Afspeellijst verwijderen';
@override
String get addTo => 'Toevoegen aan afspeellijst';
@override
String get addItems => 'Items toevoegen';
@override
String get removeItem => 'Verwijderen uit afspeellijst';
@override
String get clearPlaylist => 'Afspeellijst wissen';
@override
String get playAll => 'Alles afspelen';
@override
String get shuffle => 'Willekeurig';
@override
String get smartPlaylist => 'Slimme afspeellijst';
@override
String get regularPlaylist => 'Normale afspeellijst';
@override
String itemCount({required Object count}) => '${count} items';
@override
String get oneItem => '1 item';
@override
String get emptyPlaylist => 'Deze afspeellijst is leeg';
@override
String get deleteConfirm => 'Afspeellijst verwijderen?';
@override
String deleteMessage({required Object name}) =>
'Weet je zeker dat je "${name}" wilt verwijderen?';
@override
String get created => 'Afspeellijst gemaakt';
@override
String get updated => 'Afspeellijst bijgewerkt';
@override
String get deleted => 'Afspeellijst verwijderd';
@override
String get itemAdded => 'Toegevoegd aan afspeellijst';
@override
String get itemRemoved => 'Verwijderd uit afspeellijst';
@override
String get selectPlaylist => 'Selecteer afspeellijst';
@override
String get createNewPlaylist => 'Nieuwe afspeellijst maken';
@override
String get errorCreating => 'Fout bij maken afspeellijst';
@override
String get errorDeleting => 'Fout bij verwijderen afspeellijst';
@override
String get errorLoading => 'Fout bij laden afspeellijsten';
@override
String get errorAdding => 'Fout bij toevoegen aan afspeellijst';
@override
String get errorReordering => 'Fout bij herschikken van afspeellijstitem';
@override
String get errorRemoving => 'Fout bij verwijderen uit afspeellijst';
@override
String get playlist => 'Afspeellijst';
}
// Path: collections
class _StringsCollectionsNl implements _StringsCollectionsEn {
_StringsCollectionsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get title => 'Collecties';
@override
String get collection => 'Collectie';
@override
String get empty => 'Collectie is leeg';
@override
String get noItems => 'Geen items in deze collectie';
@override
String get unknownLibrarySection =>
'Kan niet verwijderen: onbekende bibliotheeksectie';
@override
String get deleteCollection => 'Collectie verwijderen';
@override
String deleteConfirm({required Object title}) =>
'Weet je zeker dat je "${title}" wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.';
@override
String get deleted => 'Collectie verwijderd';
@override
String get deleteFailed => 'Collectie verwijderen mislukt';
@override
String deleteFailedWithError({required Object error}) =>
'Collectie verwijderen mislukt: ${error}';
@override
String failedToLoadItems({required Object error}) =>
'Collectie-items laden mislukt: ${error}';
@override
String get addTo => 'Toevoegen aan collectie';
@override
String get selectCollection => 'Selecteer collectie';
@override
String get createNewCollection => 'Nieuwe collectie maken';
@override
String get collectionName => 'Collectienaam';
@override
String get enterCollectionName => 'Voer collectienaam in';
@override
String get addedToCollection => 'Toegevoegd aan collectie';
@override
String get errorAddingToCollection => 'Fout bij toevoegen aan collectie';
@override
String get created => 'Collectie gemaakt';
@override
String get removeFromCollection => 'Verwijderen uit collectie';
@override
String removeFromCollectionConfirm({required Object title}) =>
'"${title}" uit deze collectie verwijderen?';
@override
String get removedFromCollection => 'Uit collectie verwijderd';
@override
String get removeFromCollectionFailed => 'Verwijderen uit collectie mislukt';
@override
String removeFromCollectionError({required Object error}) =>
'Fout bij verwijderen uit collectie: ${error}';
}
// Path: libraries.tabs
class _StringsLibrariesTabsNl implements _StringsLibrariesTabsEn {
_StringsLibrariesTabsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get recommended => 'Aanbevolen';
@override
String get browse => 'Bladeren';
@override
String get collections => 'Collecties';
@override
String get playlists => 'Afspeellijsten';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsNl implements _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsNl._(this._root);
@override
final _StringsNl _root; // ignore: unused_field
// Translations
@override
String get all => 'Alles';
@override
String get movies => 'Films';
@override
String get shows => 'Series';
@override
String get seasons => 'Seizoenen';
@override
String get episodes => 'Afleveringen';
@override
String get folders => 'Mappen';
}
// Path: <root>
class _StringsSv implements Translations {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
_StringsSv.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.sv,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <sv>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override
dynamic operator [](String key) => $meta.getTranslation(key);
@override
late final _StringsSv _root = this; // ignore: unused_field
// Translations
@override
late final _StringsAppSv app = _StringsAppSv._(_root);
@override
late final _StringsAuthSv auth = _StringsAuthSv._(_root);
@override
late final _StringsCommonSv common = _StringsCommonSv._(_root);
@override
late final _StringsScreensSv screens = _StringsScreensSv._(_root);
@override
late final _StringsUpdateSv update = _StringsUpdateSv._(_root);
@override
late final _StringsSettingsSv settings = _StringsSettingsSv._(_root);
@override
late final _StringsSearchSv search = _StringsSearchSv._(_root);
@override
late final _StringsHotkeysSv hotkeys = _StringsHotkeysSv._(_root);
@override
late final _StringsPinEntrySv pinEntry = _StringsPinEntrySv._(_root);
@override
late final _StringsFileInfoSv fileInfo = _StringsFileInfoSv._(_root);
@override
late final _StringsMediaMenuSv mediaMenu = _StringsMediaMenuSv._(_root);
@override
late final _StringsAccessibilitySv accessibility = _StringsAccessibilitySv._(
_root,
);
@override
late final _StringsTooltipsSv tooltips = _StringsTooltipsSv._(_root);
@override
late final _StringsVideoControlsSv videoControls = _StringsVideoControlsSv._(
_root,
);
@override
late final _StringsUserStatusSv userStatus = _StringsUserStatusSv._(_root);
@override
late final _StringsMessagesSv messages = _StringsMessagesSv._(_root);
@override
late final _StringsProfileSv profile = _StringsProfileSv._(_root);
@override
late final _StringsSubtitlingStylingSv subtitlingStyling =
_StringsSubtitlingStylingSv._(_root);
@override
late final _StringsDialogSv dialog = _StringsDialogSv._(_root);
@override
late final _StringsDiscoverSv discover = _StringsDiscoverSv._(_root);
@override
late final _StringsErrorsSv errors = _StringsErrorsSv._(_root);
@override
late final _StringsLibrariesSv libraries = _StringsLibrariesSv._(_root);
@override
late final _StringsAboutSv about = _StringsAboutSv._(_root);
@override
late final _StringsServerSelectionSv serverSelection =
_StringsServerSelectionSv._(_root);
@override
late final _StringsHubDetailSv hubDetail = _StringsHubDetailSv._(_root);
@override
late final _StringsLogsSv logs = _StringsLogsSv._(_root);
@override
late final _StringsLicensesSv licenses = _StringsLicensesSv._(_root);
@override
late final _StringsNavigationSv navigation = _StringsNavigationSv._(_root);
@override
late final _StringsPlaylistsSv playlists = _StringsPlaylistsSv._(_root);
@override
late final _StringsCollectionsSv collections = _StringsCollectionsSv._(_root);
}
// Path: app
class _StringsAppSv implements _StringsAppEn {
_StringsAppSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Plezy';
@override
String get loading => 'Laddar...';
}
// Path: auth
class _StringsAuthSv implements _StringsAuthEn {
_StringsAuthSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get signInWithPlex => 'Logga in med Plex';
@override
String get showQRCode => 'Visa QR-kod';
@override
String get cancel => 'Avbryt';
@override
String get authenticate => 'Autentisera';
@override
String get retry => 'Försök igen';
@override
String get debugEnterToken => 'Debug: Ange Plex-token';
@override
String get plexTokenLabel => 'Plex-autentiseringstoken';
@override
String get plexTokenHint => 'Ange din Plex.tv-token';
@override
String get authenticationTimeout =>
'Autentisering tog för lång tid. Försök igen.';
@override
String get scanQRCodeInstruction =>
'Skanna denna QR-kod med en enhet inloggad på Plex för att autentisera.';
@override
String get waitingForAuth =>
'Väntar på autentisering...\nVänligen slutför inloggning i din webbläsare.';
}
// Path: common
class _StringsCommonSv implements _StringsCommonEn {
_StringsCommonSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get cancel => 'Avbryt';
@override
String get save => 'Spara';
@override
String get close => 'Stäng';
@override
String get clear => 'Rensa';
@override
String get reset => 'Återställ';
@override
String get later => 'Senare';
@override
String get submit => 'Skicka';
@override
String get confirm => 'Bekräfta';
@override
String get retry => 'Försök igen';
@override
String get playNow => 'Spela nu';
@override
String get logout => 'Logga ut';
@override
String get online => 'Online';
@override
String get offline => 'Offline';
@override
String get owned => 'Egen';
@override
String get shared => 'Delad';
@override
String get current => 'NUVARANDE';
@override
String get unknown => 'Okänd';
@override
String get refresh => 'Uppdatera';
@override
String get yes => 'Ja';
@override
String get no => 'Nej';
@override
String get server => 'Server';
@override
String get delete => 'Ta bort';
@override
String get shuffle => 'Blanda';
@override
String get addTo => 'Lägg till i...';
}
// Path: screens
class _StringsScreensSv implements _StringsScreensEn {
_StringsScreensSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get licenses => 'Licenser';
@override
String get selectServer => 'Välj server';
@override
String get switchProfile => 'Byt profil';
@override
String get subtitleStyling => 'Undertext-styling';
@override
String get search => 'Sök';
@override
String get logs => 'Loggar';
}
// Path: update
class _StringsUpdateSv implements _StringsUpdateEn {
_StringsUpdateSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get available => 'Uppdatering tillgänglig';
@override
String versionAvailable({required Object version}) =>
'Version ${version} är tillgänglig';
@override
String currentVersion({required Object version}) => 'Nuvarande: ${version}';
@override
String get skipVersion => 'Hoppa över denna version';
@override
String get viewRelease => 'Visa release';
@override
String get latestVersion => 'Du har den senaste versionen';
@override
String get checkFailed => 'Misslyckades att kontrollera uppdateringar';
}
// Path: settings
class _StringsSettingsSv implements _StringsSettingsEn {
_StringsSettingsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Inställningar';
@override
String get language => 'Språk';
@override
String get theme => 'Tema';
@override
String get appearance => 'Utseende';
@override
String get videoPlayback => 'Videouppspelning';
@override
String get shufflePlay => 'Blanda uppspelning';
@override
String get advanced => 'Avancerat';
@override
String get useSeasonPostersDescription =>
'Visa säsongsaffisch istället för serieaffisch för avsnitt';
@override
String get showHeroSectionDescription =>
'Visa utvalda innehållskarusell på startsidan';
@override
String get secondsLabel => 'Sekunder';
@override
String get minutesLabel => 'Minuter';
@override
String get secondsShort => 's';
@override
String get minutesShort => 'm';
@override
String durationHint({required Object min, required Object max}) =>
'Ange tid (${min}-${max})';
@override
String get systemTheme => 'System';
@override
String get systemThemeDescription => 'Följ systeminställningar';
@override
String get lightTheme => 'Ljust';
@override
String get darkTheme => 'Mörkt';
@override
String get libraryDensity => 'Biblioteksdensitet';
@override
String get compact => 'Kompakt';
@override
String get compactDescription => 'Mindre kort, fler objekt synliga';
@override
String get normal => 'Normal';
@override
String get normalDescription => 'Standardstorlek';
@override
String get comfortable => 'Bekväm';
@override
String get comfortableDescription => 'Större kort, färre objekt synliga';
@override
String get viewMode => 'Visningsläge';
@override
String get gridView => 'Rutnät';
@override
String get gridViewDescription => 'Visa objekt i rutnätslayout';
@override
String get listView => 'Lista';
@override
String get listViewDescription => 'Visa objekt i listlayout';
@override
String get useSeasonPosters => 'Använd säsongsaffischer';
@override
String get showHeroSection => 'Visa hjältesektion';
@override
String get hardwareDecoding => 'Hårdvaruavkodning';
@override
String get hardwareDecodingDescription =>
'Använd hårdvaruacceleration när tillgängligt';
@override
String get bufferSize => 'Bufferstorlek';
@override
String bufferSizeMB({required Object size}) => '${size}MB';
@override
String get subtitleStyling => 'Undertext-styling';
@override
String get subtitleStylingDescription => 'Anpassa undertextutseende';
@override
String get smallSkipDuration => 'Kort hoppvaraktighet';
@override
String get largeSkipDuration => 'Lång hoppvaraktighet';
@override
String secondsUnit({required Object seconds}) => '${seconds} sekunder';
@override
String get defaultSleepTimer => 'Standard sovtimer';
@override
String minutesUnit({required Object minutes}) => '${minutes} minuter';
@override
String get rememberTrackSelections => 'Kom ihåg spårval per serie/film';
@override
String get rememberTrackSelectionsDescription =>
'Spara automatiskt ljud- och undertextspråkpreferenser när du ändrar spår under uppspelning';
@override
String get unwatchedOnly => 'Endast osedda';
@override
String get unwatchedOnlyDescription =>
'Inkludera endast osedda avsnitt i blandningskön';
@override
String get shuffleOrderNavigation => 'Blandningsordning-navigation';
@override
String get shuffleOrderNavigationDescription =>
'Nästa/föregående knappar följer blandad ordning';
@override
String get loopShuffleQueue => 'Loopa blandningskö';
@override
String get loopShuffleQueueDescription => 'Starta om kö när slutet nås';
@override
String get videoPlayerControls => 'Videospelar-kontroller';
@override
String get keyboardShortcuts => 'Tangentbordsgenvägar';
@override
String get keyboardShortcutsDescription => 'Anpassa tangentbordsgenvägar';
@override
String get debugLogging => 'Felsökningsloggning';
@override
String get debugLoggingDescription =>
'Aktivera detaljerad loggning för felsökning';
@override
String get viewLogs => 'Visa loggar';
@override
String get viewLogsDescription => 'Visa applikationsloggar';
@override
String get clearCache => 'Rensa cache';
@override
String get clearCacheDescription =>
'Detta rensar alla cachade bilder och data. Appen kan ta längre tid att ladda innehåll efter cache-rensning.';
@override
String get clearCacheSuccess => 'Cache rensad framgångsrikt';
@override
String get resetSettings => 'Återställ inställningar';
@override
String get resetSettingsDescription =>
'Detta återställer alla inställningar till standardvärden. Denna åtgärd kan inte ångras.';
@override
String get resetSettingsSuccess => 'Inställningar återställda framgångsrikt';
@override
String get shortcutsReset => 'Genvägar återställda till standard';
@override
String get about => 'Om';
@override
String get aboutDescription => 'Appinformation och licenser';
@override
String get updates => 'Uppdateringar';
@override
String get updateAvailable => 'Uppdatering tillgänglig';
@override
String get checkForUpdates => 'Kontrollera uppdateringar';
@override
String get validationErrorEnterNumber => 'Vänligen ange ett giltigt nummer';
@override
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}';
@override
String shortcutAlreadyAssigned({required Object action}) =>
'Genväg redan tilldelad ${action}';
@override
String shortcutUpdated({required Object action}) =>
'Genväg uppdaterad för ${action}';
@override
String get autoSkip => 'Auto Hoppa Över';
@override
String get autoSkipIntro => 'Hoppa Över Intro Automatiskt';
@override
String get autoSkipIntroDescription =>
'Hoppa automatiskt över intro-markörer efter några sekunder';
@override
String get autoSkipCredits => 'Hoppa Över Credits Automatiskt';
@override
String get autoSkipCreditsDescription =>
'Hoppa automatiskt över credits och spela nästa avsnitt';
@override
String get autoSkipDelay => 'Fördröjning Auto Hoppa Över';
@override
String autoSkipDelayDescription({required Object seconds}) =>
'Vänta ${seconds} sekunder innan automatisk överhoppning';
}
// Path: search
class _StringsSearchSv implements _StringsSearchEn {
_StringsSearchSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// 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
class _StringsHotkeysSv implements _StringsHotkeysEn {
_StringsHotkeysSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String setShortcutFor({required Object actionName}) =>
'Sätt genväg för ${actionName}';
@override
String get clearShortcut => 'Rensa genväg';
}
// Path: pinEntry
class _StringsPinEntrySv implements _StringsPinEntryEn {
_StringsPinEntrySv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get enterPin => 'Ange PIN';
@override
String get showPin => 'Visa PIN';
@override
String get hidePin => 'Dölj PIN';
}
// Path: fileInfo
class _StringsFileInfoSv implements _StringsFileInfoEn {
_StringsFileInfoSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Filinformation';
@override
String get video => 'Video';
@override
String get audio => 'Ljud';
@override
String get file => 'Fil';
@override
String get advanced => 'Avancerat';
@override
String get codec => 'Kodek';
@override
String get resolution => 'Upplösning';
@override
String get bitrate => 'Bithastighet';
@override
String get frameRate => 'Bildfrekvens';
@override
String get aspectRatio => 'Bildförhållande';
@override
String get profile => 'Profil';
@override
String get bitDepth => 'Bitdjup';
@override
String get colorSpace => 'Färgrymd';
@override
String get colorRange => 'Färgområde';
@override
String get colorPrimaries => 'Färggrunder';
@override
String get chromaSubsampling => 'Kroma-undersampling';
@override
String get channels => 'Kanaler';
@override
String get path => 'Sökväg';
@override
String get size => 'Storlek';
@override
String get container => 'Container';
@override
String get duration => 'Varaktighet';
@override
String get optimizedForStreaming => 'Optimerad för streaming';
@override
String get has64bitOffsets => '64-bit offset';
}
// Path: mediaMenu
class _StringsMediaMenuSv implements _StringsMediaMenuEn {
_StringsMediaMenuSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get markAsWatched => 'Markera som sedd';
@override
String get markAsUnwatched => 'Markera som osedd';
@override
String get removeFromContinueWatching => 'Ta bort från Fortsätt titta';
@override
String get goToSeries => 'Gå till serie';
@override
String get goToSeason => 'Gå till säsong';
@override
String get shufflePlay => 'Blanda uppspelning';
@override
String get fileInfo => 'Filinformation';
}
// Path: accessibility
class _StringsAccessibilitySv implements _StringsAccessibilityEn {
_StringsAccessibilitySv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String mediaCardMovie({required Object title}) => '${title}, film';
@override
String mediaCardShow({required Object title}) => '${title}, TV-serie';
@override
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
@override
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
@override
String get mediaCardWatched => 'sedd';
@override
String mediaCardPartiallyWatched({required Object percent}) =>
'${percent} procent sedd';
@override
String get mediaCardUnwatched => 'osedd';
@override
String get tapToPlay => 'Tryck för att spela';
}
// Path: tooltips
class _StringsTooltipsSv implements _StringsTooltipsEn {
_StringsTooltipsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get shufflePlay => 'Blanda uppspelning';
@override
String get markAsWatched => 'Markera som sedd';
@override
String get markAsUnwatched => 'Markera som osedd';
}
// Path: videoControls
class _StringsVideoControlsSv implements _StringsVideoControlsEn {
_StringsVideoControlsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get audioLabel => 'Ljud';
@override
String get subtitlesLabel => 'Undertexter';
@override
String get resetToZero => 'Återställ till 0ms';
@override
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
@override
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
@override
String playsLater({required Object label}) => '${label} spelas senare';
@override
String playsEarlier({required Object label}) => '${label} spelas tidigare';
@override
String get noOffset => 'Ingen offset';
@override
String get letterbox => 'Letterbox';
@override
String get fillScreen => 'Fyll skärm';
@override
String get stretch => 'Sträck';
@override
String get lockRotation => 'Lås rotation';
@override
String get unlockRotation => 'Lås upp rotation';
@override
String get sleepTimer => 'Sovtimer';
@override
String get timerActive => 'Timer aktiv';
@override
String playbackWillPauseIn({required Object duration}) =>
'Uppspelningen pausas om ${duration}';
@override
String get sleepTimerCompleted => 'Sovtimer slutförd - uppspelning pausad';
@override
String get playButton => 'Spela';
@override
String get pauseButton => 'Pausa';
@override
String seekBackwardButton({required Object seconds}) =>
'Spola bakåt ${seconds} sekunder';
@override
String seekForwardButton({required Object seconds}) =>
'Spola framåt ${seconds} sekunder';
@override
String get previousButton => 'Föregående avsnitt';
@override
String get nextButton => 'Nästa avsnitt';
@override
String get previousChapterButton => 'Föregående kapitel';
@override
String get nextChapterButton => 'Nästa kapitel';
@override
String get volumeButton => 'Volym';
@override
String get muteButton => 'Tysta';
@override
String get unmuteButton => 'Slå på ljud';
@override
String get settingsButton => 'Videoinställningar';
@override
String get audioTrackButton => 'Ljudspår';
@override
String get subtitlesButton => 'Undertexter';
@override
String get chaptersButton => 'Kapitel';
@override
String get versionsButton => 'Videoversioner';
@override
String get aspectRatioButton => 'Bildförhållande';
@override
String get fullscreenButton => 'Aktivera helskärm';
@override
String get exitFullscreenButton => 'Avsluta helskärm';
@override
String get rotationLockButton => 'Rotationslås';
@override
String get timelineSlider => 'Videotidslinje';
@override
String get volumeSlider => 'Volymnivå';
@override
String get backButton => 'Tillbaka';
}
// Path: userStatus
class _StringsUserStatusSv implements _StringsUserStatusEn {
_StringsUserStatusSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get admin => 'Admin';
@override
String get restricted => 'Begränsad';
@override
String get protected => 'Skyddad';
@override
String get current => 'NUVARANDE';
}
// Path: messages
class _StringsMessagesSv implements _StringsMessagesEn {
_StringsMessagesSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get markedAsWatched => 'Markerad som sedd';
@override
String get markedAsUnwatched => 'Markerad som osedd';
@override
String get removedFromContinueWatching => 'Borttagen från Fortsätt titta';
@override
String errorLoading({required Object error}) => 'Fel: ${error}';
@override
String get fileInfoNotAvailable => 'Filinformation inte tillgänglig';
@override
String errorLoadingFileInfo({required Object error}) =>
'Fel vid laddning av filinformation: ${error}';
@override
String get errorLoadingSeries => 'Fel vid laddning av serie';
@override
String get errorLoadingSeason => 'Fel vid laddning av säsong';
@override
String get musicNotSupported => 'Musikuppspelning stöds inte ännu';
@override
String get logsCleared => 'Loggar rensade';
@override
String get logsCopied => 'Loggar kopierade till urklipp';
@override
String get noLogsAvailable => 'Inga loggar tillgängliga';
@override
String libraryScanning({required Object title}) => 'Skannar "${title}"...';
@override
String libraryScanStarted({required Object title}) =>
'Biblioteksskanning startad för "${title}"';
@override
String libraryScanFailed({required Object error}) =>
'Misslyckades att skanna bibliotek: ${error}';
@override
String metadataRefreshing({required Object title}) =>
'Uppdaterar metadata för "${title}"...';
@override
String metadataRefreshStarted({required Object title}) =>
'Metadata-uppdatering startad för "${title}"';
@override
String metadataRefreshFailed({required Object error}) =>
'Misslyckades att uppdatera metadata: ${error}';
@override
String get noPlexToken => 'Ingen Plex-token hittad. Vänligen logga in igen.';
@override
String get logoutConfirm => 'Är du säker på att du vill logga ut?';
@override
String get noSeasonsFound => 'Inga säsonger hittades';
@override
String get noEpisodesFound => 'Inga avsnitt hittades i första säsongen';
@override
String get noEpisodesFoundGeneral => 'Inga avsnitt hittades';
@override
String get noResultsFound => 'Inga resultat hittades';
@override
String sleepTimerSet({required Object label}) =>
'Sovtimer inställd för ${label}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Misslyckades att byta till ${displayName}';
@override
String get noItemsAvailable => 'Inga objekt tillgängliga';
@override
String get failedToCreatePlayQueue =>
'Det gick inte att skapa uppspelningskö';
@override
String get failedToCreatePlayQueueNoItems =>
'Det gick inte att skapa uppspelningskö inga objekt';
@override
String failedPlayback({required Object action, required Object error}) =>
'Kunde inte ${action}: ${error}';
}
// Path: profile
class _StringsProfileSv implements _StringsProfileEn {
_StringsProfileSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get noUsersAvailable => 'Inga användare tillgängliga';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingSv implements _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get stylingOptions => 'Stilalternativ';
@override
String get fontSize => 'Teckenstorlek';
@override
String get textColor => 'Textfärg';
@override
String get borderSize => 'Kantstorlek';
@override
String get borderColor => 'Kantfärg';
@override
String get backgroundOpacity => 'Bakgrundsopacitet';
@override
String get backgroundColor => 'Bakgrundsfärg';
}
// Path: dialog
class _StringsDialogSv implements _StringsDialogEn {
_StringsDialogSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get confirmAction => 'Bekräfta åtgärd';
@override
String get areYouSure => 'Är du säker på att du vill utföra denna åtgärd?';
@override
String get cancel => 'Avbryt';
@override
String get playNow => 'Spela nu';
}
// Path: discover
class _StringsDiscoverSv implements _StringsDiscoverEn {
_StringsDiscoverSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Upptäck';
@override
String get switchProfile => 'Byt profil';
@override
String get switchServer => 'Byt server';
@override
String get logout => 'Logga ut';
@override
String get noContentAvailable => 'Inget innehåll tillgängligt';
@override
String get addMediaToLibraries => 'Lägg till media till dina bibliotek';
@override
String get continueWatching => 'Fortsätt titta';
@override
String get recentlyAdded => 'Nyligen tillagda';
@override
String get play => 'Spela';
@override
String get resume => 'Återuppta';
@override
String playEpisode({required Object season, required Object episode}) =>
'Spela S${season}, E${episode}';
@override
String resumeEpisode({required Object season, required Object episode}) =>
'Återuppta S${season}, E${episode}';
@override
String get pause => 'Pausa';
@override
String get overview => 'Översikt';
@override
String get cast => 'Rollbesättning';
@override
String get seasons => 'Säsonger';
@override
String get studio => 'Studio';
@override
String get rating => 'Åldersgräns';
@override
String get watched => 'Tittad';
@override
String episodeCount({required Object count}) => '${count} avsnitt';
@override
String watchedProgress({required Object watched, required Object total}) =>
'${watched}/${total} sedda';
@override
String get movie => 'Film';
@override
String get tvShow => 'TV-serie';
@override
String minutesLeft({required Object minutes}) => '${minutes} min kvar';
}
// Path: errors
class _StringsErrorsSv implements _StringsErrorsEn {
_StringsErrorsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String searchFailed({required Object error}) =>
'Sökning misslyckades: ${error}';
@override
String connectionTimeout({required Object context}) =>
'Anslutnings-timeout vid laddning ${context}';
@override
String get connectionFailed => 'Kan inte ansluta till Plex-server';
@override
String failedToLoad({required Object context, required Object error}) =>
'Misslyckades att ladda ${context}: ${error}';
@override
String get noClientAvailable => 'Ingen klient tillgänglig';
@override
String authenticationFailed({required Object error}) =>
'Autentisering misslyckades: ${error}';
@override
String get couldNotLaunchUrl => 'Kunde inte öppna autentiserings-URL';
@override
String get pleaseEnterToken => 'Vänligen ange en token';
@override
String get invalidToken => 'Ogiltig token';
@override
String failedToVerifyToken({required Object error}) =>
'Misslyckades att verifiera token: ${error}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'Misslyckades att byta till ${displayName}';
@override
String get connectionFailedGeneric => 'Anslutning misslyckades';
}
// Path: libraries
class _StringsLibrariesSv implements _StringsLibrariesEn {
_StringsLibrariesSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Bibliotek';
@override
String get scanLibraryFiles => 'Skanna biblioteksfiler';
@override
String get scanLibrary => 'Skanna bibliotek';
@override
String get analyze => 'Analysera';
@override
String get analyzeLibrary => 'Analysera bibliotek';
@override
String get refreshMetadata => 'Uppdatera metadata';
@override
String get emptyTrash => 'Töm papperskorg';
@override
String emptyingTrash({required Object title}) =>
'Tömmer papperskorg för "${title}"...';
@override
String trashEmptied({required Object title}) =>
'Papperskorg tömd för "${title}"';
@override
String failedToEmptyTrash({required Object error}) =>
'Misslyckades att tömma papperskorg: ${error}';
@override
String analyzing({required Object title}) => 'Analyserar "${title}"...';
@override
String analysisStarted({required Object title}) =>
'Analys startad för "${title}"';
@override
String failedToAnalyze({required Object error}) =>
'Misslyckades att analysera bibliotek: ${error}';
@override
String get noLibrariesFound => 'Inga bibliotek hittades';
@override
String get thisLibraryIsEmpty => 'Detta bibliotek är tomt';
@override
String get all => 'Alla';
@override
String get clearAll => 'Rensa alla';
@override
String scanLibraryConfirm({required Object title}) =>
'Är du säker på att du vill skanna "${title}"?';
@override
String analyzeLibraryConfirm({required Object title}) =>
'Är du säker på att du vill analysera "${title}"?';
@override
String refreshMetadataConfirm({required Object title}) =>
'Är du säker på att du vill uppdatera metadata för "${title}"?';
@override
String emptyTrashConfirm({required Object title}) =>
'Är du säker på att du vill tömma papperskorgen för "${title}"?';
@override
String get manageLibraries => 'Hantera bibliotek';
@override
String get sort => 'Sortera';
@override
String get sortBy => 'Sortera efter';
@override
String get filters => 'Filter';
@override
String loadingLibraryWithCount({required Object count}) =>
'Laddar bibliotek... (${count} objekt laddade)';
@override
String get confirmActionMessage =>
'Är du säker på att du vill utföra denna åtgärd?';
@override
String get showLibrary => 'Visa bibliotek';
@override
String get hideLibrary => 'Dölj bibliotek';
@override
String get libraryOptions => 'Biblioteksalternativ';
@override
String get content => 'bibliotekets innehåll';
@override
String get selectLibrary => 'Välj bibliotek';
@override
String filtersWithCount({required Object count}) => 'Filter (${count})';
@override
String get noRecommendations => 'Inga rekommendationer tillgängliga';
@override
String get noCollections => 'Inga samlingar i det här biblioteket';
@override
String get noFoldersFound => 'Inga mappar hittades';
@override
String get folders => 'mappar';
@override
late final _StringsLibrariesTabsSv tabs = _StringsLibrariesTabsSv._(_root);
@override
late final _StringsLibrariesGroupingsSv groupings =
_StringsLibrariesGroupingsSv._(_root);
}
// Path: about
class _StringsAboutSv implements _StringsAboutEn {
_StringsAboutSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Om';
@override
String get openSourceLicenses => 'Öppen källkod-licenser';
@override
String versionLabel({required Object version}) => 'Version ${version}';
@override
String get appDescription => 'En vacker Plex-klient för Flutter';
@override
String get viewLicensesDescription =>
'Visa licenser för tredjepartsbibliotek';
}
// Path: serverSelection
class _StringsServerSelectionSv implements _StringsServerSelectionEn {
_StringsServerSelectionSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get connectingToServer => 'Ansluter till server...';
@override
String get connectingToAllServers => 'Ansluter till alla servrar...';
@override
String get connectToAllServers => 'Anslut till alla servrar';
@override
String get allServerConnectionsFailed =>
'Misslyckades att ansluta till servrar. Kontrollera ditt nätverk och försök igen.';
@override
String foundServers({required Object count}) => 'Hittade ${count} server(ar)';
@override
String get orSelectIndividually => 'Eller välj en server individuellt:';
@override
String get serverDebugCopied =>
'Server-felsökningsdata kopierad till urklipp';
@override
String get copyDebugData => 'Kopiera felsökningsdata';
@override
String get noServersFound => 'Inga servrar hittades';
@override
String malformedServerData({required Object count}) =>
'Hittade ${count} server(ar) med felformaterad data. Inga giltiga servrar tillgängliga.';
@override
String get incompleteServerInfo =>
'Vissa servrar har ofullständig information och hoppades över. Vänligen kontrollera ditt Plex.tv-konto.';
@override
String get incompleteConnectionInfo =>
'Server-anslutningsinformation är ofullständig. Försök igen.';
@override
String malformedServerInfo({required Object message}) =>
'Serverinformation är felformaterad: ${message}';
@override
String get networkConnectionFailed =>
'Nätverksanslutning misslyckades. Kontrollera din internetanslutning och försök igen.';
@override
String get authenticationFailed =>
'Autentisering misslyckades. Logga in igen.';
@override
String get plexServiceUnavailable =>
'Plex-tjänst otillgänglig. Försök igen senare.';
@override
String failedToLoadServers({required Object error}) =>
'Misslyckades att ladda servrar: ${error}';
}
// Path: hubDetail
class _StringsHubDetailSv implements _StringsHubDetailEn {
_StringsHubDetailSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Titel';
@override
String get releaseYear => 'Utgivningsår';
@override
String get dateAdded => 'Datum tillagd';
@override
String get rating => 'Betyg';
@override
String get noItemsFound => 'Inga objekt hittades';
}
// Path: logs
class _StringsLogsSv implements _StringsLogsEn {
_StringsLogsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Loggar';
@override
String get clearLogs => 'Rensa loggar';
@override
String get copyLogs => 'Kopiera loggar';
@override
String get exportLogs => 'Exportera loggar';
@override
String get noLogsToShow => 'Inga loggar att visa';
@override
String get error => 'Fel:';
@override
String get stackTrace => 'Stack trace:';
}
// Path: licenses
class _StringsLicensesSv implements _StringsLicensesEn {
_StringsLicensesSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get relatedPackages => 'Relaterade paket';
@override
String get license => 'Licens';
@override
String licenseNumber({required Object number}) => 'Licens ${number}';
@override
String licensesCount({required Object count}) => '${count} licenser';
}
// Path: navigation
class _StringsNavigationSv implements _StringsNavigationEn {
_StringsNavigationSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get home => 'Hem';
@override
String get search => 'Sök';
@override
String get libraries => 'Bibliotek';
@override
String get settings => 'Inställningar';
}
// Path: playlists
class _StringsPlaylistsSv implements _StringsPlaylistsEn {
_StringsPlaylistsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Spellistor';
@override
String get noPlaylists => 'Inga spellistor hittades';
@override
String get create => 'Skapa spellista';
@override
String get newPlaylist => 'Ny spellista';
@override
String get playlistName => 'Spellistans namn';
@override
String get enterPlaylistName => 'Ange spellistans namn';
@override
String get edit => 'Redigera spellista';
@override
String get delete => 'Ta bort spellista';
@override
String get addTo => 'Lägg till i spellista';
@override
String get addItems => 'Lägg till objekt';
@override
String get removeItem => 'Ta bort från spellista';
@override
String get clearPlaylist => 'Rensa spellista';
@override
String get playAll => 'Spela alla';
@override
String get shuffle => 'Blanda';
@override
String get smartPlaylist => 'Smart spellista';
@override
String get regularPlaylist => 'Vanlig spellista';
@override
String itemCount({required Object count}) => '${count} objekt';
@override
String get oneItem => '1 objekt';
@override
String get emptyPlaylist => 'Denna spellista är tom';
@override
String get deleteConfirm => 'Ta bort spellista?';
@override
String deleteMessage({required Object name}) =>
'Är du säker på att du vill ta bort "${name}"?';
@override
String get created => 'Spellista skapad';
@override
String get updated => 'Spellista uppdaterad';
@override
String get deleted => 'Spellista borttagen';
@override
String get itemAdded => 'Tillagd i spellista';
@override
String get itemRemoved => 'Borttagen från spellista';
@override
String get selectPlaylist => 'Välj spellista';
@override
String get createNewPlaylist => 'Skapa ny spellista';
@override
String get errorCreating => 'Det gick inte att skapa spellista';
@override
String get errorDeleting => 'Det gick inte att ta bort spellista';
@override
String get errorLoading => 'Det gick inte att ladda spellistor';
@override
String get errorAdding => 'Det gick inte att lägga till i spellista';
@override
String get errorReordering => 'Det gick inte att omordna spellisteobjekt';
@override
String get errorRemoving => 'Det gick inte att ta bort från spellista';
@override
String get playlist => 'Spellista';
}
// Path: collections
class _StringsCollectionsSv implements _StringsCollectionsEn {
_StringsCollectionsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get title => 'Samlingar';
@override
String get collection => 'Samling';
@override
String get empty => 'Samlingen är tom';
@override
String get noItems => 'Inga objekt i den här samlingen';
@override
String get unknownLibrarySection =>
'Kan inte ta bort: okänd bibliotekssektion';
@override
String get deleteCollection => 'Ta bort samling';
@override
String deleteConfirm({required Object title}) =>
'Är du säker på att du vill ta bort "${title}"? Detta går inte att ångra.';
@override
String get deleted => 'Samling borttagen';
@override
String get deleteFailed => 'Det gick inte att ta bort samlingen';
@override
String deleteFailedWithError({required Object error}) =>
'Det gick inte att ta bort samlingen: ${error}';
@override
String failedToLoadItems({required Object error}) =>
'Det gick inte att läsa in samlingsobjekt: ${error}';
@override
String get addTo => 'Lägg till i samling';
@override
String get selectCollection => 'Välj samling';
@override
String get createNewCollection => 'Skapa ny samling';
@override
String get collectionName => 'Samlingsnamn';
@override
String get enterCollectionName => 'Ange samlingsnamn';
@override
String get addedToCollection => 'Tillagd i samling';
@override
String get errorAddingToCollection => 'Fel vid tillägg i samling';
@override
String get created => 'Samling skapad';
@override
String get removeFromCollection => 'Ta bort från samling';
@override
String removeFromCollectionConfirm({required Object title}) =>
'Ta bort "${title}" från denna samling?';
@override
String get removedFromCollection => 'Borttagen från samling';
@override
String get removeFromCollectionFailed =>
'Misslyckades med att ta bort från samling';
@override
String removeFromCollectionError({required Object error}) =>
'Fel vid borttagning från samling: ${error}';
}
// Path: libraries.tabs
class _StringsLibrariesTabsSv implements _StringsLibrariesTabsEn {
_StringsLibrariesTabsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get recommended => 'Rekommenderat';
@override
String get browse => 'Bläddra';
@override
String get collections => 'Samlingar';
@override
String get playlists => 'Spellistor';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsSv implements _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsSv._(this._root);
@override
final _StringsSv _root; // ignore: unused_field
// Translations
@override
String get all => 'Alla';
@override
String get movies => 'Filmer';
@override
String get shows => 'Serier';
@override
String get seasons => 'Säsonger';
@override
String get episodes => 'Avsnitt';
@override
String get folders => 'Mappar';
}
// Path: <root>
class _StringsZh implements Translations {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
_StringsZh.build({
Map<String, Node>? overrides,
PluralResolver? cardinalResolver,
PluralResolver? ordinalResolver,
}) : assert(
overrides == null,
'Set "translation_overrides: true" in order to enable this feature.',
),
$meta = TranslationMetadata(
locale: AppLocale.zh,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
) {
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <zh>.
@override
final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override
dynamic operator [](String key) => $meta.getTranslation(key);
@override
late final _StringsZh _root = this; // ignore: unused_field
// Translations
@override
late final _StringsAppZh app = _StringsAppZh._(_root);
@override
late final _StringsAuthZh auth = _StringsAuthZh._(_root);
@override
late final _StringsCommonZh common = _StringsCommonZh._(_root);
@override
late final _StringsScreensZh screens = _StringsScreensZh._(_root);
@override
late final _StringsUpdateZh update = _StringsUpdateZh._(_root);
@override
late final _StringsSettingsZh settings = _StringsSettingsZh._(_root);
@override
late final _StringsSearchZh search = _StringsSearchZh._(_root);
@override
late final _StringsHotkeysZh hotkeys = _StringsHotkeysZh._(_root);
@override
late final _StringsPinEntryZh pinEntry = _StringsPinEntryZh._(_root);
@override
late final _StringsFileInfoZh fileInfo = _StringsFileInfoZh._(_root);
@override
late final _StringsMediaMenuZh mediaMenu = _StringsMediaMenuZh._(_root);
@override
late final _StringsAccessibilityZh accessibility = _StringsAccessibilityZh._(
_root,
);
@override
late final _StringsTooltipsZh tooltips = _StringsTooltipsZh._(_root);
@override
late final _StringsVideoControlsZh videoControls = _StringsVideoControlsZh._(
_root,
);
@override
late final _StringsUserStatusZh userStatus = _StringsUserStatusZh._(_root);
@override
late final _StringsMessagesZh messages = _StringsMessagesZh._(_root);
@override
late final _StringsProfileZh profile = _StringsProfileZh._(_root);
@override
late final _StringsSubtitlingStylingZh subtitlingStyling =
_StringsSubtitlingStylingZh._(_root);
@override
late final _StringsDialogZh dialog = _StringsDialogZh._(_root);
@override
late final _StringsDiscoverZh discover = _StringsDiscoverZh._(_root);
@override
late final _StringsErrorsZh errors = _StringsErrorsZh._(_root);
@override
late final _StringsLibrariesZh libraries = _StringsLibrariesZh._(_root);
@override
late final _StringsAboutZh about = _StringsAboutZh._(_root);
@override
late final _StringsServerSelectionZh serverSelection =
_StringsServerSelectionZh._(_root);
@override
late final _StringsHubDetailZh hubDetail = _StringsHubDetailZh._(_root);
@override
late final _StringsLogsZh logs = _StringsLogsZh._(_root);
@override
late final _StringsLicensesZh licenses = _StringsLicensesZh._(_root);
@override
late final _StringsNavigationZh navigation = _StringsNavigationZh._(_root);
@override
late final _StringsPlaylistsZh playlists = _StringsPlaylistsZh._(_root);
@override
late final _StringsCollectionsZh collections = _StringsCollectionsZh._(_root);
}
// Path: app
class _StringsAppZh implements _StringsAppEn {
_StringsAppZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => 'Plezy';
@override
String get loading => '加载中...';
}
// Path: auth
class _StringsAuthZh implements _StringsAuthEn {
_StringsAuthZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get signInWithPlex => '使用 Plex 登录';
@override
String get showQRCode => '显示二维码';
@override
String get cancel => '取消';
@override
String get authenticate => '验证';
@override
String get retry => '重试';
@override
String get debugEnterToken => '调试:输入 Plex Token';
@override
String get plexTokenLabel => 'Plex 授权令牌 (Auth Token)';
@override
String get plexTokenHint => '输入你的 Plex.tv 令牌';
@override
String get authenticationTimeout => '验证超时。请重试。';
@override
String get scanQRCodeInstruction => '请使用已登录 Plex 的设备扫描此二维码进行验证。';
@override
String get waitingForAuth => '等待验证中...\n请在你的浏览器中完成登录。';
}
// Path: common
class _StringsCommonZh implements _StringsCommonEn {
_StringsCommonZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get cancel => '取消';
@override
String get save => '保存';
@override
String get close => '关闭';
@override
String get clear => '清除';
@override
String get reset => '重置';
@override
String get later => '稍后';
@override
String get submit => '提交';
@override
String get confirm => '确认';
@override
String get retry => '重试';
@override
String get playNow => '立即播放';
@override
String get logout => '登出';
@override
String get online => '在线';
@override
String get offline => '离线';
@override
String get owned => '拥有';
@override
String get shared => '共享';
@override
String get current => '当前';
@override
String get unknown => '未知';
@override
String get refresh => '刷新';
@override
String get yes => '是';
@override
String get no => '否';
@override
String get server => '服务器';
@override
String get delete => '删除';
@override
String get shuffle => '随机播放';
@override
String get addTo => '添加到...';
}
// Path: screens
class _StringsScreensZh implements _StringsScreensEn {
_StringsScreensZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get licenses => '许可证';
@override
String get selectServer => '选择服务器';
@override
String get switchProfile => '切换配置文件';
@override
String get subtitleStyling => '字幕样式';
@override
String get search => '搜索';
@override
String get logs => '日志';
}
// Path: update
class _StringsUpdateZh implements _StringsUpdateEn {
_StringsUpdateZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get available => '有可用更新';
@override
String versionAvailable({required Object version}) => '版本 ${version} 已发布';
@override
String currentVersion({required Object version}) => '当前版本: ${version}';
@override
String get skipVersion => '跳过此版本';
@override
String get viewRelease => '查看发布详情';
@override
String get latestVersion => '已安装的版本是可用的最新版本';
@override
String get checkFailed => '无法检查更新';
}
// Path: settings
class _StringsSettingsZh implements _StringsSettingsEn {
_StringsSettingsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '设置';
@override
String get language => '语言';
@override
String get theme => '主题';
@override
String get appearance => '外观';
@override
String get videoPlayback => '视频播放';
@override
String get shufflePlay => '随机播放';
@override
String get advanced => '高级';
@override
String get useSeasonPostersDescription => '为剧集显示季海报而非剧集海报';
@override
String get showHeroSectionDescription => '在主屏幕上显示精选内容轮播区';
@override
String get secondsLabel => '秒';
@override
String get minutesLabel => '分钟';
@override
String get secondsShort => 's';
@override
String get minutesShort => 'm';
@override
String durationHint({required Object min, required Object max}) =>
'输入时长 (${min}-${max})';
@override
String get systemTheme => '系统';
@override
String get systemThemeDescription => '跟随系统设置';
@override
String get lightTheme => '浅色';
@override
String get darkTheme => '深色';
@override
String get libraryDensity => '媒体库密度';
@override
String get compact => '紧凑';
@override
String get compactDescription => '卡片更小,显示更多项目';
@override
String get normal => '标准';
@override
String get normalDescription => '默认尺寸';
@override
String get comfortable => '舒适';
@override
String get comfortableDescription => '卡片更大,显示更少项目';
@override
String get viewMode => '视图模式';
@override
String get gridView => '网格视图';
@override
String get gridViewDescription => '以网格布局显示项目';
@override
String get listView => '列表视图';
@override
String get listViewDescription => '以列表布局显示项目';
@override
String get useSeasonPosters => '使用季海报';
@override
String get showHeroSection => '显示主要精选区';
@override
String get hardwareDecoding => '硬件解码';
@override
String get hardwareDecodingDescription => '如果可用,使用硬件加速';
@override
String get bufferSize => '缓冲区大小';
@override
String bufferSizeMB({required Object size}) => '${size}MB';
@override
String get subtitleStyling => '字幕样式';
@override
String get subtitleStylingDescription => '调整字幕外观';
@override
String get smallSkipDuration => '短跳过时长';
@override
String get largeSkipDuration => '长跳过时长';
@override
String secondsUnit({required Object seconds}) => '${seconds} 秒';
@override
String get defaultSleepTimer => '默认睡眠定时器';
@override
String minutesUnit({required Object minutes}) => '${minutes} 分钟';
@override
String get rememberTrackSelections => '记住每个剧集/电影的音轨选择';
@override
String get rememberTrackSelectionsDescription => '在播放过程中更改音轨时自动保存音频和字幕语言偏好';
@override
String get unwatchedOnly => '仅未观看';
@override
String get unwatchedOnlyDescription => '随机队列中仅包含未观看的剧集';
@override
String get shuffleOrderNavigation => '随机顺序导航';
@override
String get shuffleOrderNavigationDescription => '下一集/上一集按钮遵循随机播放顺序';
@override
String get loopShuffleQueue => '循环随机队列';
@override
String get loopShuffleQueueDescription => '在队列结束时重新开始';
@override
String get videoPlayerControls => '视频播放器控制';
@override
String get keyboardShortcuts => '键盘快捷键';
@override
String get keyboardShortcutsDescription => '自定义键盘快捷键';
@override
String get debugLogging => '调试日志';
@override
String get debugLoggingDescription => '启用详细日志记录以便故障排除';
@override
String get viewLogs => '查看日志';
@override
String get viewLogsDescription => '查看应用程序日志';
@override
String get clearCache => '清除缓存';
@override
String get clearCacheDescription => '这将清除所有缓存的图片和数据。清除缓存后,应用程序加载内容可能会变慢。';
@override
String get clearCacheSuccess => '缓存清除成功';
@override
String get resetSettings => '重置设置';
@override
String get resetSettingsDescription => '这会将所有设置重置为其默认值。此操作无法撤销。';
@override
String get resetSettingsSuccess => '设置重置成功';
@override
String get shortcutsReset => '快捷键已重置为默认值';
@override
String get about => '关于';
@override
String get aboutDescription => '应用程序信息和许可证';
@override
String get updates => '更新';
@override
String get updateAvailable => '有可用更新';
@override
String get checkForUpdates => '检查更新';
@override
String get validationErrorEnterNumber => '请输入一个有效的数字';
@override
String validationErrorDuration({
required Object min,
required Object max,
required Object unit,
}) => '时长必须介于 ${min}${max} ${unit} 之间';
@override
String shortcutAlreadyAssigned({required Object action}) =>
'快捷键已被分配给 ${action}';
@override
String shortcutUpdated({required Object action}) => '快捷键已为 ${action} 更新';
@override
String get autoSkip => '自动跳过';
@override
String get autoSkipIntro => '自动跳过片头';
@override
String get autoSkipIntroDescription => '几秒钟后自动跳过片头标记';
@override
String get autoSkipCredits => '自动跳过片尾';
@override
String get autoSkipCreditsDescription => '自动跳过片尾并播放下一集';
@override
String get autoSkipDelay => '自动跳过延迟';
@override
String autoSkipDelayDescription({required Object seconds}) =>
'自动跳过前等待 ${seconds} 秒';
}
// Path: search
class _StringsSearchZh implements _StringsSearchEn {
_StringsSearchZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get hint => '搜索电影、系列、音乐...';
@override
String get tryDifferentTerm => '尝试不同的搜索词';
@override
String get searchYourMedia => '搜索媒体';
@override
String get enterTitleActorOrKeyword => '输入标题、演员或关键词';
}
// Path: hotkeys
class _StringsHotkeysZh implements _StringsHotkeysEn {
_StringsHotkeysZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String setShortcutFor({required Object actionName}) =>
'为 ${actionName} 设置快捷键';
@override
String get clearShortcut => '清除快捷键';
}
// Path: pinEntry
class _StringsPinEntryZh implements _StringsPinEntryEn {
_StringsPinEntryZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get enterPin => '输入 PIN';
@override
String get showPin => '显示 PIN';
@override
String get hidePin => '隐藏 PIN';
}
// Path: fileInfo
class _StringsFileInfoZh implements _StringsFileInfoEn {
_StringsFileInfoZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '文件信息';
@override
String get video => '视频';
@override
String get audio => '音频';
@override
String get file => '文件';
@override
String get advanced => '高级';
@override
String get codec => '编解码器';
@override
String get resolution => '分辨率';
@override
String get bitrate => '比特率';
@override
String get frameRate => '帧率';
@override
String get aspectRatio => '宽高比';
@override
String get profile => '配置文件';
@override
String get bitDepth => '位深度';
@override
String get colorSpace => '色彩空间';
@override
String get colorRange => '色彩范围';
@override
String get colorPrimaries => '颜色原色';
@override
String get chromaSubsampling => '色度子采样';
@override
String get channels => '声道';
@override
String get path => '路径';
@override
String get size => '大小';
@override
String get container => '容器';
@override
String get duration => '时长';
@override
String get optimizedForStreaming => '已优化用于流媒体';
@override
String get has64bitOffsets => '64位偏移量';
}
// Path: mediaMenu
class _StringsMediaMenuZh implements _StringsMediaMenuEn {
_StringsMediaMenuZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get markAsWatched => '标记为已观看';
@override
String get markAsUnwatched => '标记为未观看';
@override
String get removeFromContinueWatching => '从继续观看中移除';
@override
String get goToSeries => '转到系列';
@override
String get goToSeason => '转到季';
@override
String get shufflePlay => '随机播放';
@override
String get fileInfo => '文件信息';
}
// Path: accessibility
class _StringsAccessibilityZh implements _StringsAccessibilityEn {
_StringsAccessibilityZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String mediaCardMovie({required Object title}) => '${title}, 电影';
@override
String mediaCardShow({required Object title}) => '${title}, 电视剧';
@override
String mediaCardEpisode({
required Object title,
required Object episodeInfo,
}) => '${title}, ${episodeInfo}';
@override
String mediaCardSeason({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
@override
String get mediaCardWatched => '已观看';
@override
String mediaCardPartiallyWatched({required Object percent}) =>
'已观看 ${percent} 百分比';
@override
String get mediaCardUnwatched => '未观看';
@override
String get tapToPlay => '点击播放';
}
// Path: tooltips
class _StringsTooltipsZh implements _StringsTooltipsEn {
_StringsTooltipsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get shufflePlay => '随机播放';
@override
String get markAsWatched => '标记为已观看';
@override
String get markAsUnwatched => '标记为未观看';
}
// Path: videoControls
class _StringsVideoControlsZh implements _StringsVideoControlsEn {
_StringsVideoControlsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get audioLabel => '音频';
@override
String get subtitlesLabel => '字幕';
@override
String get resetToZero => '重置为 0ms';
@override
String addTime({required Object amount, required Object unit}) =>
'+${amount}${unit}';
@override
String minusTime({required Object amount, required Object unit}) =>
'-${amount}${unit}';
@override
String playsLater({required Object label}) => '${label} 播放较晚';
@override
String playsEarlier({required Object label}) => '${label} 播放较早';
@override
String get noOffset => '无偏移';
@override
String get letterbox => '信箱模式(Letterbox';
@override
String get fillScreen => '填充屏幕';
@override
String get stretch => '拉伸';
@override
String get lockRotation => '锁定旋转';
@override
String get unlockRotation => '解锁旋转';
@override
String get sleepTimer => '睡眠定时器';
@override
String get timerActive => '定时器已激活';
@override
String playbackWillPauseIn({required Object duration}) =>
'播放将在 ${duration} 后暂停';
@override
String get sleepTimerCompleted => '睡眠定时器已完成 - 播放已暂停';
@override
String get playButton => '播放';
@override
String get pauseButton => '暂停';
@override
String seekBackwardButton({required Object seconds}) => '后退 ${seconds} 秒';
@override
String seekForwardButton({required Object seconds}) => '前进 ${seconds} 秒';
@override
String get previousButton => '上一集';
@override
String get nextButton => '下一集';
@override
String get previousChapterButton => '上一章节';
@override
String get nextChapterButton => '下一章节';
@override
String get volumeButton => '音量';
@override
String get muteButton => '静音';
@override
String get unmuteButton => '取消静音';
@override
String get settingsButton => '视频设置';
@override
String get audioTrackButton => '音轨';
@override
String get subtitlesButton => '字幕';
@override
String get chaptersButton => '章节';
@override
String get versionsButton => '视频版本';
@override
String get aspectRatioButton => '宽高比';
@override
String get fullscreenButton => '进入全屏';
@override
String get exitFullscreenButton => '退出全屏';
@override
String get rotationLockButton => '旋转锁定';
@override
String get timelineSlider => '视频时间轴';
@override
String get volumeSlider => '音量调节';
@override
String get backButton => '返回';
}
// Path: userStatus
class _StringsUserStatusZh implements _StringsUserStatusEn {
_StringsUserStatusZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get admin => '管理员';
@override
String get restricted => '受限';
@override
String get protected => '受保护';
@override
String get current => '当前';
}
// Path: messages
class _StringsMessagesZh implements _StringsMessagesEn {
_StringsMessagesZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get markedAsWatched => '已标记为已观看';
@override
String get markedAsUnwatched => '已标记为未观看';
@override
String get removedFromContinueWatching => '已从继续观看中移除';
@override
String errorLoading({required Object error}) => '错误: ${error}';
@override
String get fileInfoNotAvailable => '文件信息不可用';
@override
String errorLoadingFileInfo({required Object error}) => '加载文件信息时出错: ${error}';
@override
String get errorLoadingSeries => '加载系列时出错';
@override
String get errorLoadingSeason => '加载季时出错';
@override
String get musicNotSupported => '尚不支持播放音乐';
@override
String get logsCleared => '日志已清除';
@override
String get logsCopied => '日志已复制到剪贴板';
@override
String get noLogsAvailable => '没有可用日志';
@override
String libraryScanning({required Object title}) => '正在扫描 “${title}”...';
@override
String libraryScanStarted({required Object title}) => '已开始扫描 “${title}” 媒体库';
@override
String libraryScanFailed({required Object error}) => '无法扫描媒体库: ${error}';
@override
String metadataRefreshing({required Object title}) =>
'正在刷新 “${title}” 的元数据...';
@override
String metadataRefreshStarted({required Object title}) =>
'已开始刷新 “${title}” 的元数据';
@override
String metadataRefreshFailed({required Object error}) => '无法刷新元数据: ${error}';
@override
String get noPlexToken => '未找到 Plex 令牌。请重新登录。';
@override
String get logoutConfirm => '你确定要登出吗?';
@override
String get noSeasonsFound => '未找到季';
@override
String get noEpisodesFound => '在第一季中未找到剧集';
@override
String get noEpisodesFoundGeneral => '未找到剧集';
@override
String get noResultsFound => '未找到结果';
@override
String sleepTimerSet({required Object label}) => '睡眠定时器已设置为 ${label}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'无法切换到 ${displayName}';
@override
String get noItemsAvailable => '没有可用的项目';
@override
String get failedToCreatePlayQueue => '创建播放队列失败';
@override
String get failedToCreatePlayQueueNoItems => '创建播放队列失败 - 没有项目';
@override
String failedPlayback({required Object action, required Object error}) =>
'无法${action}: ${error}';
}
// Path: profile
class _StringsProfileZh implements _StringsProfileEn {
_StringsProfileZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get noUsersAvailable => '没有可用用户';
}
// Path: subtitlingStyling
class _StringsSubtitlingStylingZh implements _StringsSubtitlingStylingEn {
_StringsSubtitlingStylingZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get stylingOptions => '样式选项';
@override
String get fontSize => '字号';
@override
String get textColor => '文本颜色';
@override
String get borderSize => '边框大小';
@override
String get borderColor => '边框颜色';
@override
String get backgroundOpacity => '背景不透明度';
@override
String get backgroundColor => '背景颜色';
}
// Path: dialog
class _StringsDialogZh implements _StringsDialogEn {
_StringsDialogZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get confirmAction => '确认操作';
@override
String get areYouSure => '确定要执行此操作吗?';
@override
String get cancel => '取消';
@override
String get playNow => '立即播放';
}
// Path: discover
class _StringsDiscoverZh implements _StringsDiscoverEn {
_StringsDiscoverZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '发现';
@override
String get switchProfile => '切换配置文件';
@override
String get switchServer => '切换服务器';
@override
String get logout => '登出';
@override
String get noContentAvailable => '没有可用内容';
@override
String get addMediaToLibraries => '请向你的媒体库添加一些媒体';
@override
String get continueWatching => '继续观看';
@override
String get recentlyAdded => '最近添加';
@override
String get play => '播放';
@override
String get resume => '继续';
@override
String playEpisode({required Object season, required Object episode}) =>
'播放 S${season}, E${episode}';
@override
String resumeEpisode({required Object season, required Object episode}) =>
'继续 S${season}, E${episode}';
@override
String get pause => '暂停';
@override
String get overview => '概述';
@override
String get cast => '演员表';
@override
String get seasons => '季数';
@override
String get studio => '制作公司';
@override
String get rating => '年龄分级';
@override
String get watched => '已观看';
@override
String episodeCount({required Object count}) => '${count} 集';
@override
String watchedProgress({required Object watched, required Object total}) =>
'已观看 ${watched}/${total} 集';
@override
String get movie => '电影';
@override
String get tvShow => '电视剧';
@override
String minutesLeft({required Object minutes}) => '剩余 ${minutes} 分钟';
}
// Path: errors
class _StringsErrorsZh implements _StringsErrorsEn {
_StringsErrorsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String searchFailed({required Object error}) => '搜索失败: ${error}';
@override
String connectionTimeout({required Object context}) => '加载 ${context} 时连接超时';
@override
String get connectionFailed => '无法连接到 Plex 服务器';
@override
String failedToLoad({required Object context, required Object error}) =>
'无法加载 ${context}: ${error}';
@override
String get noClientAvailable => '没有可用客户端';
@override
String authenticationFailed({required Object error}) => '验证失败: ${error}';
@override
String get couldNotLaunchUrl => '无法打开授权 URL';
@override
String get pleaseEnterToken => '请输入一个令牌';
@override
String get invalidToken => '令牌无效';
@override
String failedToVerifyToken({required Object error}) => '无法验证令牌: ${error}';
@override
String failedToSwitchProfile({required Object displayName}) =>
'无法切换到 ${displayName}';
@override
String get connectionFailedGeneric => '连接失败';
}
// Path: libraries
class _StringsLibrariesZh implements _StringsLibrariesEn {
_StringsLibrariesZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '媒体库';
@override
String get scanLibraryFiles => '扫描媒体库文件';
@override
String get scanLibrary => '扫描媒体库';
@override
String get analyze => '分析';
@override
String get analyzeLibrary => '分析媒体库';
@override
String get refreshMetadata => '刷新元数据';
@override
String get emptyTrash => '清空回收站';
@override
String emptyingTrash({required Object title}) => '正在清空 “${title}” 的回收站...';
@override
String trashEmptied({required Object title}) => '已清空 “${title}” 的回收站';
@override
String failedToEmptyTrash({required Object error}) => '无法清空回收站: ${error}';
@override
String analyzing({required Object title}) => '正在分析 “${title}”...';
@override
String analysisStarted({required Object title}) => '已开始分析 “${title}”';
@override
String failedToAnalyze({required Object error}) => '无法分析媒体库: ${error}';
@override
String get noLibrariesFound => '未找到媒体库';
@override
String get thisLibraryIsEmpty => '此媒体库为空';
@override
String get all => '全部';
@override
String get clearAll => '全部清除';
@override
String scanLibraryConfirm({required Object title}) => '确定要扫描 “${title}” 吗?';
@override
String analyzeLibraryConfirm({required Object title}) =>
'确定要分析 “${title}” 吗?';
@override
String refreshMetadataConfirm({required Object title}) =>
'确定要刷新 “${title}” 的元数据吗?';
@override
String emptyTrashConfirm({required Object title}) =>
'确定要清空 “${title}” 的回收站吗?';
@override
String get manageLibraries => '管理媒体库';
@override
String get sort => '排序';
@override
String get sortBy => '排序依据';
@override
String get filters => '筛选器';
@override
String loadingLibraryWithCount({required Object count}) =>
'正在加载媒体库... (已加载 ${count} 个项目)';
@override
String get confirmActionMessage => '确定要执行此操作吗?';
@override
String get showLibrary => '显示媒体库';
@override
String get hideLibrary => '隐藏媒体库';
@override
String get libraryOptions => '媒体库选项';
@override
String get content => '媒体库内容';
@override
String get selectLibrary => '选择媒体库';
@override
String filtersWithCount({required Object count}) => '筛选器(${count}';
@override
String get noRecommendations => '暂无推荐';
@override
String get noCollections => '此媒体库中没有合集';
@override
String get noFoldersFound => '未找到文件夹';
@override
String get folders => '文件夹';
@override
late final _StringsLibrariesTabsZh tabs = _StringsLibrariesTabsZh._(_root);
@override
late final _StringsLibrariesGroupingsZh groupings =
_StringsLibrariesGroupingsZh._(_root);
}
// Path: about
class _StringsAboutZh implements _StringsAboutEn {
_StringsAboutZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '关于';
@override
String get openSourceLicenses => '开源许可证';
@override
String versionLabel({required Object version}) => '版本 ${version}';
@override
String get appDescription => '一款精美的 Flutter Plex 客户端';
@override
String get viewLicensesDescription => '查看第三方库的许可证';
}
// Path: serverSelection
class _StringsServerSelectionZh implements _StringsServerSelectionEn {
_StringsServerSelectionZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get connectingToServer => '正在连接服务器...';
@override
String get connectingToAllServers => '正在连接所有服务器...';
@override
String get connectToAllServers => '连接所有服务器';
@override
String get allServerConnectionsFailed => '无法连接到任何服务器。请检查你的网络并重试。';
@override
String foundServers({required Object count}) => '找到 ${count} 个服务器';
@override
String get orSelectIndividually => '或单独选择一个服务器:';
@override
String get serverDebugCopied => '服务器调试数据已复制到剪贴板';
@override
String get copyDebugData => '复制调试数据';
@override
String get noServersFound => '未找到服务器';
@override
String malformedServerData({required Object count}) =>
'找到 ${count} 个数据格式错误的服务器。没有可用的有效服务器。';
@override
String get incompleteServerInfo => '某些服务器信息不完整,已被跳过。请检查你的 Plex.tv 账户。';
@override
String get incompleteConnectionInfo => '服务器连接信息不完整。请重试。';
@override
String malformedServerInfo({required Object message}) =>
'服务器信息格式错误: ${message}';
@override
String get networkConnectionFailed => '网络连接失败。请检查你的网络连接并重试。';
@override
String get authenticationFailed => '验证失败。请重新登录。';
@override
String get plexServiceUnavailable => 'Plex 服务不可用。请稍后重试。';
@override
String failedToLoadServers({required Object error}) => '无法加载服务器: ${error}';
}
// Path: hubDetail
class _StringsHubDetailZh implements _StringsHubDetailEn {
_StringsHubDetailZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '标题';
@override
String get releaseYear => '发行年份';
@override
String get dateAdded => '添加日期';
@override
String get rating => '评分';
@override
String get noItemsFound => '未找到项目';
}
// Path: logs
class _StringsLogsZh implements _StringsLogsEn {
_StringsLogsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '日志';
@override
String get clearLogs => '清除日志';
@override
String get copyLogs => '复制日志';
@override
String get exportLogs => '导出日志';
@override
String get noLogsToShow => '没有可显示的日志';
@override
String get error => '错误:';
@override
String get stackTrace => '堆栈跟踪 (Stack Trace):';
}
// Path: licenses
class _StringsLicensesZh implements _StringsLicensesEn {
_StringsLicensesZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get relatedPackages => '相关软件包';
@override
String get license => '许可证';
@override
String licenseNumber({required Object number}) => '许可证 ${number}';
@override
String licensesCount({required Object count}) => '${count} 个许可证';
}
// Path: navigation
class _StringsNavigationZh implements _StringsNavigationEn {
_StringsNavigationZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get home => '主页';
@override
String get search => '搜索';
@override
String get libraries => '媒体库';
@override
String get settings => '设置';
}
// Path: playlists
class _StringsPlaylistsZh implements _StringsPlaylistsEn {
_StringsPlaylistsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '播放列表';
@override
String get noPlaylists => '未找到播放列表';
@override
String get create => '创建播放列表';
@override
String get newPlaylist => '新播放列表';
@override
String get playlistName => '播放列表名称';
@override
String get enterPlaylistName => '输入播放列表名称';
@override
String get edit => '编辑播放列表';
@override
String get delete => '删除播放列表';
@override
String get addTo => '添加到播放列表';
@override
String get addItems => '添加项目';
@override
String get removeItem => '从播放列表中移除';
@override
String get clearPlaylist => '清空播放列表';
@override
String get playAll => '全部播放';
@override
String get shuffle => '随机播放';
@override
String get smartPlaylist => '智能播放列表';
@override
String get regularPlaylist => '普通播放列表';
@override
String itemCount({required Object count}) => '${count} 个项目';
@override
String get oneItem => '1 个项目';
@override
String get emptyPlaylist => '此播放列表为空';
@override
String get deleteConfirm => '删除播放列表?';
@override
String deleteMessage({required Object name}) => '确定要删除 "${name}" 吗?';
@override
String get created => '播放列表已创建';
@override
String get updated => '播放列表已更新';
@override
String get deleted => '播放列表已删除';
@override
String get itemAdded => '已添加到播放列表';
@override
String get itemRemoved => '已从播放列表中移除';
@override
String get selectPlaylist => '选择播放列表';
@override
String get createNewPlaylist => '创建新播放列表';
@override
String get errorCreating => '创建播放列表失败';
@override
String get errorDeleting => '删除播放列表失败';
@override
String get errorLoading => '加载播放列表失败';
@override
String get errorAdding => '添加到播放列表失败';
@override
String get errorReordering => '重新排序播放列表项目失败';
@override
String get errorRemoving => '从播放列表中移除失败';
@override
String get playlist => '播放列表';
}
// Path: collections
class _StringsCollectionsZh implements _StringsCollectionsEn {
_StringsCollectionsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get title => '合集';
@override
String get collection => '合集';
@override
String get empty => '合集为空';
@override
String get noItems => '此合集没有项目';
@override
String get unknownLibrarySection => '无法删除:未知的媒体库分区';
@override
String get deleteCollection => '删除合集';
@override
String deleteConfirm({required Object title}) => '确定要删除"${title}"吗?此操作无法撤销。';
@override
String get deleted => '已删除合集';
@override
String get deleteFailed => '删除合集失败';
@override
String deleteFailedWithError({required Object error}) => '删除合集失败:${error}';
@override
String failedToLoadItems({required Object error}) => '加载合集项目失败:${error}';
@override
String get addTo => '添加到合集';
@override
String get selectCollection => '选择合集';
@override
String get createNewCollection => '创建新合集';
@override
String get collectionName => '合集名称';
@override
String get enterCollectionName => '输入合集名称';
@override
String get addedToCollection => '已添加到合集';
@override
String get errorAddingToCollection => '添加到合集失败';
@override
String get created => '已创建合集';
@override
String get removeFromCollection => '从合集移除';
@override
String removeFromCollectionConfirm({required Object title}) =>
'将“${title}”从此合集移除?';
@override
String get removedFromCollection => '已从合集移除';
@override
String get removeFromCollectionFailed => '从合集移除失败';
@override
String removeFromCollectionError({required Object error}) =>
'从合集移除时出错:${error}';
}
// Path: libraries.tabs
class _StringsLibrariesTabsZh implements _StringsLibrariesTabsEn {
_StringsLibrariesTabsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get recommended => '推荐';
@override
String get browse => '浏览';
@override
String get collections => '合集';
@override
String get playlists => '播放列表';
}
// Path: libraries.groupings
class _StringsLibrariesGroupingsZh implements _StringsLibrariesGroupingsEn {
_StringsLibrariesGroupingsZh._(this._root);
@override
final _StringsZh _root; // ignore: unused_field
// Translations
@override
String get all => '全部';
@override
String get movies => '电影';
@override
String get shows => '剧集';
@override
String get seasons => '季';
@override
String get episodes => '集';
@override
String get folders => '文件夹';
}
/// Flat map(s) containing all translations.
/// Only for edge cases! For simple maps, use the map function of this library.
extension on Translations {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return 'Loading...';
case 'auth.signInWithPlex':
return 'Sign in with Plex';
case 'auth.showQRCode':
return 'Show QR Code';
case 'auth.cancel':
return 'Cancel';
case 'auth.authenticate':
return 'Authenticate';
case 'auth.retry':
return 'Retry';
case 'auth.debugEnterToken':
return 'Debug: Enter Plex Token';
case 'auth.plexTokenLabel':
return 'Plex Auth Token';
case 'auth.plexTokenHint':
return 'Enter your Plex.tv token';
case 'auth.authenticationTimeout':
return 'Authentication timed out. Please try again.';
case 'auth.scanQRCodeInstruction':
return 'Scan this QR code with a device logged into Plex to authenticate.';
case 'auth.waitingForAuth':
return 'Waiting for authentication...\nPlease complete sign-in in your browser.';
case 'common.cancel':
return 'Cancel';
case 'common.save':
return 'Save';
case 'common.close':
return 'Close';
case 'common.clear':
return 'Clear';
case 'common.reset':
return 'Reset';
case 'common.later':
return 'Later';
case 'common.submit':
return 'Submit';
case 'common.confirm':
return 'Confirm';
case 'common.retry':
return 'Retry';
case 'common.playNow':
return 'Play Now';
case 'common.logout':
return 'Logout';
case 'common.online':
return 'Online';
case 'common.offline':
return 'Offline';
case 'common.owned':
return 'Owned';
case 'common.shared':
return 'Shared';
case 'common.current':
return 'CURRENT';
case 'common.unknown':
return 'Unknown';
case 'common.refresh':
return 'Refresh';
case 'common.yes':
return 'Yes';
case 'common.no':
return 'No';
case 'common.server':
return 'Server';
case 'common.delete':
return 'Delete';
case 'common.shuffle':
return 'Shuffle';
case 'common.addTo':
return 'Add to...';
case 'screens.licenses':
return 'Licenses';
case 'screens.switchProfile':
return 'Switch Profile';
case 'screens.subtitleStyling':
return 'Subtitle Styling';
case 'screens.search':
return 'Search';
case 'screens.logs':
return 'Logs';
case 'update.available':
return 'Update Available';
case 'update.versionAvailable':
return ({required Object version}) => 'Version ${version} is available';
case 'update.currentVersion':
return ({required Object version}) => 'Current: ${version}';
case 'update.skipVersion':
return 'Skip This Version';
case 'update.viewRelease':
return 'View Release';
case 'update.latestVersion':
return 'You are on the latest version';
case 'update.checkFailed':
return 'Failed to check for updates';
case 'settings.title':
return 'Settings';
case 'settings.language':
return 'Language';
case 'settings.theme':
return 'Theme';
case 'settings.appearance':
return 'Appearance';
case 'settings.videoPlayback':
return 'Video Playback';
case 'settings.shufflePlay':
return 'Shuffle Play';
case 'settings.advanced':
return 'Advanced';
case 'settings.useSeasonPostersDescription':
return 'Show season poster instead of series poster for episodes';
case 'settings.showHeroSectionDescription':
return 'Display featured content carousel on home screen';
case 'settings.secondsLabel':
return 'Seconds';
case 'settings.minutesLabel':
return 'Minutes';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'Enter duration (${min}-${max})';
case 'settings.systemTheme':
return 'System';
case 'settings.systemThemeDescription':
return 'Follow system settings';
case 'settings.lightTheme':
return 'Light';
case 'settings.darkTheme':
return 'Dark';
case 'settings.libraryDensity':
return 'Library Density';
case 'settings.compact':
return 'Compact';
case 'settings.compactDescription':
return 'Smaller cards, more items visible';
case 'settings.normal':
return 'Normal';
case 'settings.normalDescription':
return 'Default size';
case 'settings.comfortable':
return 'Comfortable';
case 'settings.comfortableDescription':
return 'Larger cards, fewer items visible';
case 'settings.viewMode':
return 'View Mode';
case 'settings.gridView':
return 'Grid';
case 'settings.gridViewDescription':
return 'Display items in a grid layout';
case 'settings.listView':
return 'List';
case 'settings.listViewDescription':
return 'Display items in a list layout';
case 'settings.useSeasonPosters':
return 'Use Season Posters';
case 'settings.showHeroSection':
return 'Show Hero Section';
case 'settings.hardwareDecoding':
return 'Hardware Decoding';
case 'settings.hardwareDecodingDescription':
return 'Use hardware acceleration when available';
case 'settings.bufferSize':
return 'Buffer Size';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return 'Subtitle Styling';
case 'settings.subtitleStylingDescription':
return 'Customize subtitle appearance';
case 'settings.smallSkipDuration':
return 'Small Skip Duration';
case 'settings.largeSkipDuration':
return 'Large Skip Duration';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} seconds';
case 'settings.defaultSleepTimer':
return 'Default Sleep Timer';
case 'settings.minutesUnit':
return ({required Object minutes}) => '${minutes} minutes';
case 'settings.rememberTrackSelections':
return 'Remember track selections per show/movie';
case 'settings.rememberTrackSelectionsDescription':
return 'Automatically save audio and subtitle language preferences when you change tracks during playback';
case 'settings.unwatchedOnly':
return 'Unwatched Only';
case 'settings.unwatchedOnlyDescription':
return 'Only include unwatched episodes in shuffle queue';
case 'settings.shuffleOrderNavigation':
return 'Shuffle Order Navigation';
case 'settings.shuffleOrderNavigationDescription':
return 'Next/previous buttons follow shuffled order';
case 'settings.loopShuffleQueue':
return 'Loop Shuffle Queue';
case 'settings.loopShuffleQueueDescription':
return 'Restart queue when reaching the end';
case 'settings.videoPlayerControls':
return 'Video Player Controls';
case 'settings.keyboardShortcuts':
return 'Keyboard Shortcuts';
case 'settings.keyboardShortcutsDescription':
return 'Customize keyboard shortcuts';
case 'settings.debugLogging':
return 'Debug Logging';
case 'settings.debugLoggingDescription':
return 'Enable detailed logging for troubleshooting';
case 'settings.viewLogs':
return 'View Logs';
case 'settings.viewLogsDescription':
return 'View application logs';
case 'settings.clearCache':
return 'Clear Cache';
case 'settings.clearCacheDescription':
return 'This will clear all cached images and data. The app may take longer to load content after clearing the cache.';
case 'settings.clearCacheSuccess':
return 'Cache cleared successfully';
case 'settings.resetSettings':
return 'Reset Settings';
case 'settings.resetSettingsDescription':
return 'This will reset all settings to their default values. This action cannot be undone.';
case 'settings.resetSettingsSuccess':
return 'Settings reset successfully';
case 'settings.shortcutsReset':
return 'Shortcuts reset to defaults';
case 'settings.about':
return 'About';
case 'settings.aboutDescription':
return 'App information and licenses';
case 'settings.updates':
return 'Updates';
case 'settings.updateAvailable':
return 'Update Available';
case 'settings.checkForUpdates':
return 'Check for Updates';
case 'settings.validationErrorEnterNumber':
return 'Please enter a valid number';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => 'Duration must be between ${min} and ${max} ${unit}';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) =>
'Shortcut already assigned to ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) => 'Shortcut updated for ${action}';
case 'settings.autoSkip':
return 'Auto Skip';
case 'settings.autoSkipIntro':
return 'Auto Skip Intro';
case 'settings.autoSkipIntroDescription':
return 'Automatically skip intro markers after a few seconds';
case 'settings.autoSkipCredits':
return 'Auto Skip Credits';
case 'settings.autoSkipCreditsDescription':
return 'Automatically skip credits and play next episode';
case 'settings.autoSkipDelay':
return 'Auto Skip Delay';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) =>
'Wait ${seconds} seconds before auto-skipping';
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';
case 'pinEntry.showPin':
return 'Show PIN';
case 'pinEntry.hidePin':
return 'Hide PIN';
case 'fileInfo.title':
return 'File Info';
case 'fileInfo.video':
return 'Video';
case 'fileInfo.audio':
return 'Audio';
case 'fileInfo.file':
return 'File';
case 'fileInfo.advanced':
return 'Advanced';
case 'fileInfo.codec':
return 'Codec';
case 'fileInfo.resolution':
return 'Resolution';
case 'fileInfo.bitrate':
return 'Bitrate';
case 'fileInfo.frameRate':
return 'Frame Rate';
case 'fileInfo.aspectRatio':
return 'Aspect Ratio';
case 'fileInfo.profile':
return 'Profile';
case 'fileInfo.bitDepth':
return 'Bit Depth';
case 'fileInfo.colorSpace':
return 'Color Space';
case 'fileInfo.colorRange':
return 'Color Range';
case 'fileInfo.colorPrimaries':
return 'Color Primaries';
case 'fileInfo.chromaSubsampling':
return 'Chroma Subsampling';
case 'fileInfo.channels':
return 'Channels';
case 'fileInfo.path':
return 'Path';
case 'fileInfo.size':
return 'Size';
case 'fileInfo.container':
return 'Container';
case 'fileInfo.duration':
return 'Duration';
case 'fileInfo.optimizedForStreaming':
return 'Optimized for Streaming';
case 'fileInfo.has64bitOffsets':
return '64-bit Offsets';
case 'mediaMenu.markAsWatched':
return 'Mark as Watched';
case 'mediaMenu.markAsUnwatched':
return 'Mark as Unwatched';
case 'mediaMenu.removeFromContinueWatching':
return 'Remove from Continue Watching';
case 'mediaMenu.goToSeries':
return 'Go to series';
case 'mediaMenu.goToSeason':
return 'Go to season';
case 'mediaMenu.shufflePlay':
return 'Shuffle Play';
case 'mediaMenu.fileInfo':
return 'File Info';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, movie';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, TV show';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return 'watched';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '${percent} percent watched';
case 'accessibility.mediaCardUnwatched':
return 'unwatched';
case 'accessibility.tapToPlay':
return 'Tap to play';
case 'tooltips.shufflePlay':
return 'Shuffle play';
case 'tooltips.markAsWatched':
return 'Mark as watched';
case 'tooltips.markAsUnwatched':
return 'Mark as unwatched';
case 'videoControls.audioLabel':
return 'Audio';
case 'videoControls.subtitlesLabel':
return 'Subtitles';
case 'videoControls.resetToZero':
return 'Reset to 0ms';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} plays later';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} plays earlier';
case 'videoControls.noOffset':
return 'No offset';
case 'videoControls.letterbox':
return 'Letterbox';
case 'videoControls.fillScreen':
return 'Fill screen';
case 'videoControls.stretch':
return 'Stretch';
case 'videoControls.lockRotation':
return 'Lock rotation';
case 'videoControls.unlockRotation':
return 'Unlock rotation';
case 'videoControls.sleepTimer':
return 'Sleep Timer';
case 'videoControls.timerActive':
return 'Timer Active';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) =>
'Playback will pause in ${duration}';
case 'videoControls.sleepTimerCompleted':
return 'Sleep timer completed - playback paused';
case 'videoControls.playButton':
return 'Play';
case 'videoControls.pauseButton':
return 'Pause';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) =>
'Seek backward ${seconds} seconds';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) => 'Seek forward ${seconds} seconds';
case 'videoControls.previousButton':
return 'Previous episode';
case 'videoControls.nextButton':
return 'Next episode';
case 'videoControls.previousChapterButton':
return 'Previous chapter';
case 'videoControls.nextChapterButton':
return 'Next chapter';
case 'videoControls.volumeButton':
return 'Volume';
case 'videoControls.muteButton':
return 'Mute';
case 'videoControls.unmuteButton':
return 'Unmute';
case 'videoControls.settingsButton':
return 'Video settings';
case 'videoControls.audioTrackButton':
return 'Audio tracks';
case 'videoControls.subtitlesButton':
return 'Subtitles';
case 'videoControls.chaptersButton':
return 'Chapters';
case 'videoControls.versionsButton':
return 'Video versions';
case 'videoControls.aspectRatioButton':
return 'Aspect ratio';
case 'videoControls.fullscreenButton':
return 'Enter fullscreen';
case 'videoControls.exitFullscreenButton':
return 'Exit fullscreen';
case 'videoControls.rotationLockButton':
return 'Rotation lock';
case 'videoControls.timelineSlider':
return 'Video timeline';
case 'videoControls.volumeSlider':
return 'Volume level';
case 'videoControls.backButton':
return 'Back';
case 'userStatus.admin':
return 'Admin';
case 'userStatus.restricted':
return 'Restricted';
case 'userStatus.protected':
return 'Protected';
case 'userStatus.current':
return 'CURRENT';
case 'messages.markedAsWatched':
return 'Marked as watched';
case 'messages.markedAsUnwatched':
return 'Marked as unwatched';
case 'messages.removedFromContinueWatching':
return 'Removed from Continue Watching';
case 'messages.errorLoading':
return ({required Object error}) => 'Error: ${error}';
case 'messages.fileInfoNotAvailable':
return 'File information not available';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) => 'Error loading file info: ${error}';
case 'messages.errorLoadingSeries':
return 'Error loading series';
case 'messages.errorLoadingSeason':
return 'Error loading season';
case 'messages.musicNotSupported':
return 'Music playback is not yet supported';
case 'messages.logsCleared':
return 'Logs cleared';
case 'messages.logsCopied':
return 'Logs copied to clipboard';
case 'messages.noLogsAvailable':
return 'No logs available';
case 'messages.libraryScanning':
return ({required Object title}) => 'Scanning "${title}"...';
case 'messages.libraryScanStarted':
return ({required Object title}) =>
'Library scan started for "${title}"';
case 'messages.libraryScanFailed':
return ({required Object error}) => 'Failed to scan library: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) =>
'Refreshing metadata for "${title}"...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) =>
'Metadata refresh started for "${title}"';
case 'messages.metadataRefreshFailed':
return ({required Object error}) =>
'Failed to refresh metadata: ${error}';
case 'messages.noPlexToken':
return 'No Plex token found. Please login again.';
case 'messages.logoutConfirm':
return 'Are you sure you want to logout?';
case 'messages.noSeasonsFound':
return 'No seasons found';
case 'messages.noEpisodesFound':
return 'No episodes found in first season';
case 'messages.noEpisodesFoundGeneral':
return 'No episodes found';
case 'messages.noResultsFound':
return 'No results found';
case 'messages.sleepTimerSet':
return ({required Object label}) => 'Sleep timer set for ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) =>
'Failed to switch to ${displayName}';
case 'messages.noItemsAvailable':
return 'No items available';
case 'messages.failedToCreatePlayQueue':
return 'Failed to create play queue';
case 'messages.failedToCreatePlayQueueNoItems':
return 'Failed to create play queue - no items';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'Failed to ${action}: ${error}';
case 'profile.noUsersAvailable':
return 'No users available';
case 'subtitlingStyling.stylingOptions':
return 'Styling Options';
case 'subtitlingStyling.fontSize':
return 'Font Size';
case 'subtitlingStyling.textColor':
return 'Text Color';
case 'subtitlingStyling.borderSize':
return 'Border Size';
case 'subtitlingStyling.borderColor':
return 'Border Color';
case 'subtitlingStyling.backgroundOpacity':
return 'Background Opacity';
case 'subtitlingStyling.backgroundColor':
return 'Background Color';
case 'dialog.confirmAction':
return 'Confirm Action';
case 'dialog.areYouSure':
return 'Are you sure you want to perform this action?';
case 'dialog.cancel':
return 'Cancel';
case 'dialog.playNow':
return 'Play Now';
case 'discover.title':
return 'Discover';
case 'discover.switchProfile':
return 'Switch Profile';
case 'discover.logout':
return 'Logout';
case 'discover.noContentAvailable':
return 'No content available';
case 'discover.addMediaToLibraries':
return 'Add some media to your libraries';
case 'discover.continueWatching':
return 'Continue Watching';
case 'discover.recentlyAdded':
return 'Recently Added';
case 'discover.play':
return 'Play';
case 'discover.resume':
return 'Resume';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'Play S${season}, E${episode}';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'Resume S${season}, E${episode}';
case 'discover.pause':
return 'Pause';
case 'discover.overview':
return 'Overview';
case 'discover.cast':
return 'Cast';
case 'discover.seasons':
return 'Seasons';
case 'discover.studio':
return 'Studio';
case 'discover.rating':
return 'Rating';
case 'discover.watched':
return 'Watched';
case 'discover.episodeCount':
return ({required Object count}) => '${count} episodes';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'${watched}/${total} watched';
case 'discover.movie':
return 'Movie';
case 'discover.tvShow':
return 'TV Show';
case 'discover.minutesLeft':
return ({required Object minutes}) => '${minutes} min left';
case 'errors.searchFailed':
return ({required Object error}) => 'Search failed: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) =>
'Connection timeout while loading ${context}';
case 'errors.connectionFailed':
return 'Unable to connect to Plex server';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'Failed to load ${context}: ${error}';
case 'errors.noClientAvailable':
return 'No client available';
case 'errors.authenticationFailed':
return ({required Object error}) => 'Authentication failed: ${error}';
case 'errors.couldNotLaunchUrl':
return 'Could not launch auth URL';
case 'errors.pleaseEnterToken':
return 'Please enter a token';
case 'errors.invalidToken':
return 'Invalid token';
case 'errors.failedToVerifyToken':
return ({required Object error}) => 'Failed to verify token: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) =>
'Failed to switch to ${displayName}';
case 'errors.connectionFailedGeneric':
return 'Connection failed';
case 'libraries.title':
return 'Libraries';
case 'libraries.scanLibraryFiles':
return 'Scan Library Files';
case 'libraries.scanLibrary':
return 'Scan Library';
case 'libraries.analyze':
return 'Analyze';
case 'libraries.analyzeLibrary':
return 'Analyze Library';
case 'libraries.refreshMetadata':
return 'Refresh Metadata';
case 'libraries.emptyTrash':
return 'Empty Trash';
case 'libraries.emptyingTrash':
return ({required Object title}) => 'Emptying trash for "${title}"...';
case 'libraries.trashEmptied':
return ({required Object title}) => 'Trash emptied for "${title}"';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) => 'Failed to empty trash: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => 'Analyzing "${title}"...';
case 'libraries.analysisStarted':
return ({required Object title}) => 'Analysis started for "${title}"';
case 'libraries.failedToAnalyze':
return ({required Object error}) =>
'Failed to analyze library: ${error}';
case 'libraries.noLibrariesFound':
return 'No libraries found';
case 'libraries.thisLibraryIsEmpty':
return 'This library is empty';
case 'libraries.all':
return 'All';
case 'libraries.clearAll':
return 'Clear All';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) =>
'Are you sure you want to scan "${title}"?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) =>
'Are you sure you want to analyze "${title}"?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) =>
'Are you sure you want to refresh metadata for "${title}"?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) =>
'Are you sure you want to empty trash for "${title}"?';
case 'libraries.manageLibraries':
return 'Manage Libraries';
case 'libraries.sort':
return 'Sort';
case 'libraries.sortBy':
return 'Sort By';
case 'libraries.filters':
return 'Filters';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) =>
'Loading library... (${count} items loaded)';
case 'libraries.confirmActionMessage':
return 'Are you sure you want to perform this action?';
case 'libraries.showLibrary':
return 'Show library';
case 'libraries.hideLibrary':
return 'Hide library';
case 'libraries.libraryOptions':
return 'Library options';
case 'libraries.content':
return 'library content';
case 'libraries.selectLibrary':
return 'Select library';
case 'libraries.filtersWithCount':
return ({required Object count}) => 'Filters (${count})';
case 'libraries.noRecommendations':
return 'No recommendations available';
case 'libraries.noCollections':
return 'No collections in this library';
case 'libraries.noFoldersFound':
return 'No folders found';
case 'libraries.folders':
return 'folders';
case 'libraries.tabs.recommended':
return 'Recommended';
case 'libraries.tabs.browse':
return 'Browse';
case 'libraries.tabs.collections':
return 'Collections';
case 'libraries.tabs.playlists':
return 'Playlists';
case 'libraries.groupings.all':
return 'All';
case 'libraries.groupings.movies':
return 'Movies';
case 'libraries.groupings.shows':
return 'TV Shows';
case 'libraries.groupings.seasons':
return 'Seasons';
case 'libraries.groupings.episodes':
return 'Episodes';
case 'libraries.groupings.folders':
return 'Folders';
case 'about.title':
return 'About';
case 'about.openSourceLicenses':
return 'Open Source Licenses';
case 'about.versionLabel':
return ({required Object version}) => 'Version ${version}';
case 'about.appDescription':
return 'A beautiful Plex client for Flutter';
case 'about.viewLicensesDescription':
return 'View licenses of third-party libraries';
case 'serverSelection.connectingToServer':
return 'Connecting to server...';
case 'serverSelection.connectingToAllServers':
return 'Connecting to all servers...';
case 'serverSelection.connectToAllServers':
return 'Connect to All Servers';
case 'serverSelection.allServerConnectionsFailed':
return 'Failed to connect to any servers. Please check your network and try again.';
case 'serverSelection.foundServers':
return ({required Object count}) => 'Found ${count} server(s)';
case 'serverSelection.orSelectIndividually':
return 'Or select a server individually:';
case 'serverSelection.serverDebugCopied':
return 'Server debug data copied to clipboard';
case 'serverSelection.copyDebugData':
return 'Copy Debug Data';
case 'serverSelection.noServersFound':
return 'No servers found';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'Found ${count} server(s) with malformed data. No valid servers available.';
case 'serverSelection.incompleteServerInfo':
return 'Some servers have incomplete information and were skipped. Please check your Plex.tv account.';
case 'serverSelection.incompleteConnectionInfo':
return 'Server connection information is incomplete. Please try again.';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) =>
'Server information is malformed: ${message}';
case 'serverSelection.networkConnectionFailed':
return 'Network connection failed. Please check your internet connection and try again.';
case 'serverSelection.authenticationFailed':
return 'Authentication failed. Please sign in again.';
case 'serverSelection.plexServiceUnavailable':
return 'Plex service unavailable. Please try again later.';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) => 'Failed to load servers: ${error}';
case 'hubDetail.title':
return 'Title';
case 'hubDetail.releaseYear':
return 'Release Year';
case 'hubDetail.dateAdded':
return 'Date Added';
case 'hubDetail.rating':
return 'Rating';
case 'hubDetail.noItemsFound':
return 'No items found';
case 'logs.title':
return 'Logs';
case 'logs.clearLogs':
return 'Clear Logs';
case 'logs.copyLogs':
return 'Copy Logs';
case 'logs.exportLogs':
return 'Export Logs';
case 'logs.noLogsToShow':
return 'No logs to show';
case 'logs.error':
return 'Error:';
case 'logs.stackTrace':
return 'Stack Trace:';
case 'licenses.relatedPackages':
return 'Related Packages';
case 'licenses.license':
return 'License';
case 'licenses.licenseNumber':
return ({required Object number}) => 'License ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} licenses';
case 'navigation.home':
return 'Home';
case 'navigation.search':
return 'Search';
case 'navigation.libraries':
return 'Libraries';
case 'navigation.settings':
return 'Settings';
case 'collections.title':
return 'Collections';
case 'collections.collection':
return 'Collection';
case 'collections.empty':
return 'Collection is empty';
case 'collections.noItems':
return 'No items in this collection';
case 'collections.unknownLibrarySection':
return 'Cannot delete: Unknown library section';
case 'collections.deleteCollection':
return 'Delete Collection';
case 'collections.deleteConfirm':
return ({required Object title}) =>
'Are you sure you want to delete "${title}"? This action cannot be undone.';
case 'collections.deleted':
return 'Collection deleted';
case 'collections.deleteFailed':
return 'Failed to delete collection';
case 'collections.deleteFailedWithError':
return ({required Object error}) =>
'Failed to delete collection: ${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) =>
'Failed to load collection items: ${error}';
case 'collections.addTo':
return 'Add to collection';
case 'collections.selectCollection':
return 'Select Collection';
case 'collections.createNewCollection':
return 'Create New Collection';
case 'collections.collectionName':
return 'Collection Name';
case 'collections.enterCollectionName':
return 'Enter collection name';
case 'collections.addedToCollection':
return 'Added to collection';
case 'collections.errorAddingToCollection':
return 'Failed to add to collection';
case 'collections.created':
return 'Collection created';
case 'collections.removeFromCollection':
return 'Remove from collection';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) =>
'Remove "${title}" from this collection?';
case 'collections.removedFromCollection':
return 'Removed from collection';
case 'collections.removeFromCollectionFailed':
return 'Failed to remove from collection';
case 'collections.removeFromCollectionError':
return ({required Object error}) =>
'Error removing from collection: ${error}';
case 'playlists.title':
return 'Playlists';
case 'playlists.playlist':
return 'Playlist';
case 'playlists.noPlaylists':
return 'No playlists found';
case 'playlists.create':
return 'Create Playlist';
case 'playlists.newPlaylist':
return 'New Playlist';
case 'playlists.playlistName':
return 'Playlist Name';
case 'playlists.enterPlaylistName':
return 'Enter playlist name';
case 'playlists.edit':
return 'Edit Playlist';
case 'playlists.delete':
return 'Delete Playlist';
case 'playlists.addTo':
return 'Add to Playlist';
case 'playlists.addItems':
return 'Add Items';
case 'playlists.removeItem':
return 'Remove from Playlist';
case 'playlists.clearPlaylist':
return 'Clear Playlist';
case 'playlists.playAll':
return 'Play All';
case 'playlists.shuffle':
return 'Shuffle';
case 'playlists.smartPlaylist':
return 'Smart Playlist';
case 'playlists.regularPlaylist':
return 'Regular Playlist';
case 'playlists.itemCount':
return ({required Object count}) => '${count} items';
case 'playlists.oneItem':
return '1 item';
case 'playlists.emptyPlaylist':
return 'This playlist is empty';
case 'playlists.deleteConfirm':
return 'Delete Playlist?';
case 'playlists.deleteMessage':
return ({required Object name}) =>
'Are you sure you want to delete "${name}"?';
case 'playlists.created':
return 'Playlist created';
case 'playlists.updated':
return 'Playlist updated';
case 'playlists.deleted':
return 'Playlist deleted';
case 'playlists.itemAdded':
return 'Added to playlist';
case 'playlists.itemRemoved':
return 'Removed from playlist';
case 'playlists.selectPlaylist':
return 'Select Playlist';
case 'playlists.createNewPlaylist':
return 'Create New Playlist';
case 'playlists.errorCreating':
return 'Failed to create playlist';
case 'playlists.errorDeleting':
return 'Failed to delete playlist';
case 'playlists.errorLoading':
return 'Failed to load playlists';
case 'playlists.errorAdding':
return 'Failed to add to playlist';
case 'playlists.errorReordering':
return 'Failed to reorder playlist item';
case 'playlists.errorRemoving':
return 'Failed to remove from playlist';
default:
return null;
}
}
}
extension on _StringsDe {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return 'Lädt...';
case 'auth.signInWithPlex':
return 'Mit Plex anmelden';
case 'auth.showQRCode':
return 'QR-Code anzeigen';
case 'auth.cancel':
return 'Abbrechen';
case 'auth.authenticate':
return 'Authentifizieren';
case 'auth.retry':
return 'Erneut versuchen';
case 'auth.debugEnterToken':
return 'Debug: Plex-Token eingeben';
case 'auth.plexTokenLabel':
return 'Plex-Auth-Token';
case 'auth.plexTokenHint':
return 'Plex.tv-Token eingeben';
case 'auth.authenticationTimeout':
return 'Authentifizierung abgelaufen. Bitte erneut versuchen.';
case 'auth.scanQRCodeInstruction':
return 'Diesen QR-Code mit einem bei Plex angemeldeten Gerät scannen, um zu authentifizieren.';
case 'auth.waitingForAuth':
return 'Warte auf Authentifizierung...\nBitte Anmeldung im Browser abschließen.';
case 'common.cancel':
return 'Abbrechen';
case 'common.save':
return 'Speichern';
case 'common.close':
return 'Schließen';
case 'common.clear':
return 'Leeren';
case 'common.reset':
return 'Zurücksetzen';
case 'common.later':
return 'Später';
case 'common.submit':
return 'Senden';
case 'common.confirm':
return 'Bestätigen';
case 'common.retry':
return 'Erneut versuchen';
case 'common.playNow':
return 'Jetzt abspielen';
case 'common.logout':
return 'Abmelden';
case 'common.online':
return 'Online';
case 'common.offline':
return 'Offline';
case 'common.owned':
return 'Besitzer';
case 'common.shared':
return 'Geteilt';
case 'common.current':
return 'AKTUELL';
case 'common.unknown':
return 'Unbekannt';
case 'common.refresh':
return 'Aktualisieren';
case 'common.yes':
return 'Ja';
case 'common.no':
return 'Nein';
case 'common.server':
return 'Server';
case 'common.delete':
return 'Löschen';
case 'common.shuffle':
return 'Zufall';
case 'common.addTo':
return 'Hinzufügen zu...';
case 'screens.licenses':
return 'Lizenzen';
case 'screens.selectServer':
return 'Server auswählen';
case 'screens.switchProfile':
return 'Profil wechseln';
case 'screens.subtitleStyling':
return 'Untertitel-Stil';
case 'screens.search':
return 'Suche';
case 'screens.logs':
return 'Protokolle';
case 'update.available':
return 'Update verfügbar';
case 'update.versionAvailable':
return ({required Object version}) =>
'Version ${version} ist verfügbar';
case 'update.currentVersion':
return ({required Object version}) => 'Aktuell: ${version}';
case 'update.skipVersion':
return 'Diese Version überspringen';
case 'update.viewRelease':
return 'Release anzeigen';
case 'update.latestVersion':
return 'Aktuellste Version installiert';
case 'update.checkFailed':
return 'Fehler bei der Updateprüfung';
case 'settings.title':
return 'Einstellungen';
case 'settings.language':
return 'Sprache';
case 'settings.theme':
return 'Design';
case 'settings.appearance':
return 'Darstellung';
case 'settings.videoPlayback':
return 'Videowiedergabe';
case 'settings.shufflePlay':
return 'Zufallswiedergabe';
case 'settings.advanced':
return 'Erweitert';
case 'settings.useSeasonPostersDescription':
return 'Staffelposter statt Serienposter für Episoden anzeigen';
case 'settings.showHeroSectionDescription':
return 'Bereich mit empfohlenen Inhalten auf der Startseite anzeigen';
case 'settings.secondsLabel':
return 'Sekunden';
case 'settings.minutesLabel':
return 'Minuten';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'Dauer eingeben (${min}-${max})';
case 'settings.systemTheme':
return 'System';
case 'settings.systemThemeDescription':
return 'Systemeinstellungen folgen';
case 'settings.lightTheme':
return 'Hell';
case 'settings.darkTheme':
return 'Dunkel';
case 'settings.libraryDensity':
return 'Mediathekdichte';
case 'settings.compact':
return 'Kompakt';
case 'settings.compactDescription':
return 'Kleinere Karten, mehr Elemente sichtbar';
case 'settings.normal':
return 'Normal';
case 'settings.normalDescription':
return 'Standardgröße';
case 'settings.comfortable':
return 'Großzügig';
case 'settings.comfortableDescription':
return 'Größere Karten, weniger Elemente sichtbar';
case 'settings.viewMode':
return 'Ansichtsmodus';
case 'settings.gridView':
return 'Raster';
case 'settings.gridViewDescription':
return 'Elemente im Raster anzeigen';
case 'settings.listView':
return 'Liste';
case 'settings.listViewDescription':
return 'Elemente in Listenansicht anzeigen';
case 'settings.useSeasonPosters':
return 'Staffelposter verwenden';
case 'settings.showHeroSection':
return 'Hero-Bereich anzeigen';
case 'settings.hardwareDecoding':
return 'Hardware-Decodierung';
case 'settings.hardwareDecodingDescription':
return 'Hardwarebeschleunigung verwenden, sofern verfügbar';
case 'settings.bufferSize':
return 'Puffergröße';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return 'Untertitel-Stil';
case 'settings.subtitleStylingDescription':
return 'Aussehen von Untertiteln anpassen';
case 'settings.smallSkipDuration':
return 'Kleine Sprungdauer';
case 'settings.largeSkipDuration':
return 'Große Sprungdauer';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} Sekunden';
case 'settings.defaultSleepTimer':
return 'Standard-Sleep-Timer';
case 'settings.minutesUnit':
return ({required Object minutes}) => '${minutes} Minuten';
case 'settings.rememberTrackSelections':
return 'Spurauswahl pro Serie/Film merken';
case 'settings.rememberTrackSelectionsDescription':
return 'Audio- und Untertitelsprache automatisch speichern, wenn während der Wiedergabe geändert';
case 'settings.unwatchedOnly':
return 'Nur ungesehene';
case 'settings.unwatchedOnlyDescription':
return 'Nur ungesehene Episoden in die Shuffle-Warteschlange aufnehmen';
case 'settings.shuffleOrderNavigation':
return 'Navigation der Shuffle-Reihenfolge';
case 'settings.shuffleOrderNavigationDescription':
return 'Weiter/Zurück folgt der zufälligen Reihenfolge';
case 'settings.loopShuffleQueue':
return 'Shuffle-Warteschlange wiederholen';
case 'settings.loopShuffleQueueDescription':
return 'Warteschlange neu starten, wenn das Ende erreicht ist';
case 'settings.videoPlayerControls':
return 'Videoplayer-Steuerung';
case 'settings.keyboardShortcuts':
return 'Tastenkürzel';
case 'settings.keyboardShortcutsDescription':
return 'Tastenkürzel anpassen';
case 'settings.debugLogging':
return 'Debug-Protokollierung';
case 'settings.debugLoggingDescription':
return 'Detaillierte Protokolle zur Fehleranalyse aktivieren';
case 'settings.viewLogs':
return 'Protokolle anzeigen';
case 'settings.viewLogsDescription':
return 'App-Protokolle anzeigen';
case 'settings.clearCache':
return 'Cache löschen';
case 'settings.clearCacheDescription':
return 'Löscht alle zwischengespeicherten Bilder und Daten. Die App kann danach langsamer laden.';
case 'settings.clearCacheSuccess':
return 'Cache erfolgreich gelöscht';
case 'settings.resetSettings':
return 'Einstellungen zurücksetzen';
case 'settings.resetSettingsDescription':
return 'Alle Einstellungen auf Standard zurücksetzen. Dies kann nicht rückgängig gemacht werden.';
case 'settings.resetSettingsSuccess':
return 'Einstellungen erfolgreich zurückgesetzt';
case 'settings.shortcutsReset':
return 'Tastenkürzel auf Standard zurückgesetzt';
case 'settings.about':
return 'Über';
case 'settings.aboutDescription':
return 'App-Informationen und Lizenzen';
case 'settings.updates':
return 'Updates';
case 'settings.updateAvailable':
return 'Update verfügbar';
case 'settings.checkForUpdates':
return 'Nach Updates suchen';
case 'settings.validationErrorEnterNumber':
return 'Bitte eine gültige Zahl eingeben';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) =>
'Tastenkürzel bereits zugewiesen an ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) =>
'Tastenkürzel aktualisiert für ${action}';
case 'settings.autoSkip':
return 'Automatisches Überspringen';
case 'settings.autoSkipIntro':
return 'Intro automatisch überspringen';
case 'settings.autoSkipIntroDescription':
return 'Intro-Marker nach wenigen Sekunden automatisch überspringen';
case 'settings.autoSkipCredits':
return 'Abspann automatisch überspringen';
case 'settings.autoSkipCreditsDescription':
return 'Abspann automatisch überspringen und nächste Episode abspielen';
case 'settings.autoSkipDelay':
return 'Verzögerung für automatisches Überspringen';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) =>
'${seconds} Sekunden vor dem automatischen Überspringen warten';
case 'search.hint':
return 'Filme, Serien, Musik suchen...';
case 'search.tryDifferentTerm':
return 'Anderen Suchbegriff versuchen';
case 'search.searchYourMedia':
return 'In den eigenen Medien suchen';
case 'search.enterTitleActorOrKeyword':
return 'Titel, Schauspieler oder Stichwort eingeben';
case 'hotkeys.setShortcutFor':
return ({required Object actionName}) =>
'Tastenkürzel festlegen für ${actionName}';
case 'hotkeys.clearShortcut':
return 'Kürzel löschen';
case 'pinEntry.enterPin':
return 'PIN eingeben';
case 'pinEntry.showPin':
return 'PIN anzeigen';
case 'pinEntry.hidePin':
return 'PIN verbergen';
case 'fileInfo.title':
return 'Dateiinfo';
case 'fileInfo.video':
return 'Video';
case 'fileInfo.audio':
return 'Audio';
case 'fileInfo.file':
return 'Datei';
case 'fileInfo.advanced':
return 'Erweitert';
case 'fileInfo.codec':
return 'Codec';
case 'fileInfo.resolution':
return 'Auflösung';
case 'fileInfo.bitrate':
return 'Bitrate';
case 'fileInfo.frameRate':
return 'Bildrate';
case 'fileInfo.aspectRatio':
return 'Seitenverhältnis';
case 'fileInfo.profile':
return 'Profil';
case 'fileInfo.bitDepth':
return 'Farbtiefe';
case 'fileInfo.colorSpace':
return 'Farbraum';
case 'fileInfo.colorRange':
return 'Farbbereich';
case 'fileInfo.colorPrimaries':
return 'Primärfarben';
case 'fileInfo.chromaSubsampling':
return 'Chroma-Subsampling';
case 'fileInfo.channels':
return 'Kanäle';
case 'fileInfo.path':
return 'Pfad';
case 'fileInfo.size':
return 'Größe';
case 'fileInfo.container':
return 'Container';
case 'fileInfo.duration':
return 'Dauer';
case 'fileInfo.optimizedForStreaming':
return 'Für Streaming optimiert';
case 'fileInfo.has64bitOffsets':
return '64-Bit-Offsets';
case 'mediaMenu.markAsWatched':
return 'Als gesehen markieren';
case 'mediaMenu.markAsUnwatched':
return 'Als ungesehen markieren';
case 'mediaMenu.removeFromContinueWatching':
return 'Aus Weiterschauen entfernen';
case 'mediaMenu.goToSeries':
return 'Zur Serie';
case 'mediaMenu.goToSeason':
return 'Zur Staffel';
case 'mediaMenu.shufflePlay':
return 'Zufallswiedergabe';
case 'mediaMenu.fileInfo':
return 'Dateiinfo';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, Film';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, Serie';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return 'angesehen';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '${percent} Prozent angesehen';
case 'accessibility.mediaCardUnwatched':
return 'ungeschaut';
case 'accessibility.tapToPlay':
return 'Zum Abspielen tippen';
case 'tooltips.shufflePlay':
return 'Zufallswiedergabe';
case 'tooltips.markAsWatched':
return 'Als gesehen markieren';
case 'tooltips.markAsUnwatched':
return 'Als ungesehen markieren';
case 'videoControls.audioLabel':
return 'Audio';
case 'videoControls.subtitlesLabel':
return 'Untertitel';
case 'videoControls.resetToZero':
return 'Auf 0 ms zurücksetzen';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} spielt später';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} spielt früher';
case 'videoControls.noOffset':
return 'Kein Offset';
case 'videoControls.letterbox':
return 'Letterbox';
case 'videoControls.fillScreen':
return 'Bild füllen';
case 'videoControls.stretch':
return 'Strecken';
case 'videoControls.lockRotation':
return 'Rotation sperren';
case 'videoControls.unlockRotation':
return 'Rotation entsperren';
case 'videoControls.sleepTimer':
return 'Schlaftimer';
case 'videoControls.timerActive':
return 'Schlaftimer aktiv';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) =>
'Wiedergabe wird in ${duration} pausiert';
case 'videoControls.sleepTimerCompleted':
return 'Schlaftimer abgelaufen Wiedergabe pausiert';
case 'videoControls.playButton':
return 'Wiedergeben';
case 'videoControls.pauseButton':
return 'Pause';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) => '${seconds} Sekunden zurück';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) => '${seconds} Sekunden vor';
case 'videoControls.previousButton':
return 'Vorherige Episode';
case 'videoControls.nextButton':
return 'Nächste Episode';
case 'videoControls.previousChapterButton':
return 'Vorheriges Kapitel';
case 'videoControls.nextChapterButton':
return 'Nächstes Kapitel';
case 'videoControls.volumeButton':
return 'Lautstärke';
case 'videoControls.muteButton':
return 'Stumm schalten';
case 'videoControls.unmuteButton':
return 'Stummschaltung aufheben';
case 'videoControls.settingsButton':
return 'Videoeinstellungen';
case 'videoControls.audioTrackButton':
return 'Tonspuren';
case 'videoControls.subtitlesButton':
return 'Untertitel';
case 'videoControls.chaptersButton':
return 'Kapitel';
case 'videoControls.versionsButton':
return 'Videoversionen';
case 'videoControls.aspectRatioButton':
return 'Seitenverhältnis';
case 'videoControls.fullscreenButton':
return 'Vollbild aktivieren';
case 'videoControls.exitFullscreenButton':
return 'Vollbild verlassen';
case 'videoControls.rotationLockButton':
return 'Dreh­sperre';
case 'videoControls.timelineSlider':
return 'Video-Zeitleiste';
case 'videoControls.volumeSlider':
return 'Lautstärkepegel';
case 'videoControls.backButton':
return 'Zurück';
case 'userStatus.admin':
return 'Eigentümer';
case 'userStatus.restricted':
return 'Eingeschränkt';
case 'userStatus.protected':
return 'Geschützt';
case 'userStatus.current':
return 'AKTUELL';
case 'messages.markedAsWatched':
return 'Als gesehen markiert';
case 'messages.markedAsUnwatched':
return 'Als ungesehen markiert';
case 'messages.removedFromContinueWatching':
return 'Aus Weiterschauen entfernt';
case 'messages.errorLoading':
return ({required Object error}) => 'Fehler: ${error}';
case 'messages.fileInfoNotAvailable':
return 'Dateiinfo nicht verfügbar';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) =>
'Fehler beim Laden der Dateiinfo: ${error}';
case 'messages.errorLoadingSeries':
return 'Fehler beim Laden der Serie';
case 'messages.errorLoadingSeason':
return 'Fehler beim Laden der Staffel';
case 'messages.musicNotSupported':
return 'Musikwiedergabe wird noch nicht unterstützt';
case 'messages.logsCleared':
return 'Protokolle gelöscht';
case 'messages.logsCopied':
return 'Protokolle in Zwischenablage kopiert';
case 'messages.noLogsAvailable':
return 'Keine Protokolle verfügbar';
case 'messages.libraryScanning':
return ({required Object title}) => 'Scanne „${title}“...';
case 'messages.libraryScanStarted':
return ({required Object title}) =>
'Mediathekscan gestartet für „${title}“';
case 'messages.libraryScanFailed':
return ({required Object error}) =>
'Fehler beim Scannen der Mediathek: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) =>
'Metadaten werden aktualisiert für „${title}“...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) =>
'Metadaten-Aktualisierung gestartet für „${title}“';
case 'messages.metadataRefreshFailed':
return ({required Object error}) =>
'Metadaten konnten nicht aktualisiert werden: ${error}';
case 'messages.noPlexToken':
return 'Kein Plex-Token gefunden. Bitte erneut anmelden.';
case 'messages.logoutConfirm':
return 'Abmeldung wirklich durchführen?';
case 'messages.noSeasonsFound':
return 'Keine Staffeln gefunden';
case 'messages.noEpisodesFound':
return 'Keine Episoden in der ersten Staffel gefunden';
case 'messages.noEpisodesFoundGeneral':
return 'Keine Episoden gefunden';
case 'messages.noResultsFound':
return 'Keine Ergebnisse gefunden';
case 'messages.sleepTimerSet':
return ({required Object label}) => 'Sleep-Timer gesetzt auf ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) =>
'Profilwechsel zu ${displayName} fehlgeschlagen';
case 'messages.noItemsAvailable':
return 'Keine Elemente verfügbar';
case 'messages.failedToCreatePlayQueue':
return 'Wiedergabewarteschlange konnte nicht erstellt werden';
case 'messages.failedToCreatePlayQueueNoItems':
return 'Wiedergabewarteschlange konnte nicht erstellt werden keine Elemente';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'Wiedergabe für ${action} fehlgeschlagen: ${error}';
case 'profile.noUsersAvailable':
return 'Keine Benutzer verfügbar';
case 'subtitlingStyling.stylingOptions':
return 'Stiloptionen';
case 'subtitlingStyling.fontSize':
return 'Schriftgröße';
case 'subtitlingStyling.textColor':
return 'Textfarbe';
case 'subtitlingStyling.borderSize':
return 'Rahmengröße';
case 'subtitlingStyling.borderColor':
return 'Rahmenfarbe';
case 'subtitlingStyling.backgroundOpacity':
return 'Hintergrunddeckkraft';
case 'subtitlingStyling.backgroundColor':
return 'Hintergrundfarbe';
case 'dialog.confirmAction':
return 'Aktion bestätigen';
case 'dialog.areYouSure':
return 'Aktion wirklich ausführen?';
case 'dialog.cancel':
return 'Abbrechen';
case 'dialog.playNow':
return 'Jetzt abspielen';
case 'discover.title':
return 'Entdecken';
case 'discover.switchProfile':
return 'Profil wechseln';
case 'discover.switchServer':
return 'Server wechseln';
case 'discover.logout':
return 'Abmelden';
case 'discover.noContentAvailable':
return 'Kein Inhalt verfügbar';
case 'discover.addMediaToLibraries':
return 'Medien zur Mediathek hinzufügen';
case 'discover.continueWatching':
return 'Weiterschauen';
case 'discover.recentlyAdded':
return 'Kürzlich hinzugefügt';
case 'discover.play':
return 'Abspielen';
case 'discover.resume':
return 'Fortsetzen';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'S${season}, E${episode} - Abspielen';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'S${season}, E${episode} - Fortsetzen';
case 'discover.pause':
return 'Pause';
case 'discover.overview':
return 'Übersicht';
case 'discover.cast':
return 'Besetzung';
case 'discover.seasons':
return 'Staffeln';
case 'discover.studio':
return 'Studio';
case 'discover.rating':
return 'Altersfreigabe';
case 'discover.watched':
return 'Gesehen';
case 'discover.episodeCount':
return ({required Object count}) => '${count} Episoden';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'${watched} von ${total} gesehen';
case 'discover.movie':
return 'Film';
case 'discover.tvShow':
return 'Serie';
case 'discover.minutesLeft':
return ({required Object minutes}) => '${minutes} Min übrig';
case 'errors.searchFailed':
return ({required Object error}) => 'Suche fehlgeschlagen: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) =>
'Zeitüberschreitung beim Laden von ${context}';
case 'errors.connectionFailed':
return 'Verbindung zum Plex-Server fehlgeschlagen';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'Fehler beim Laden von ${context}: ${error}';
case 'errors.noClientAvailable':
return 'Kein Client verfügbar';
case 'errors.authenticationFailed':
return ({required Object error}) =>
'Authentifizierung fehlgeschlagen: ${error}';
case 'errors.couldNotLaunchUrl':
return 'Auth-URL konnte nicht geöffnet werden';
case 'errors.pleaseEnterToken':
return 'Bitte Token eingeben';
case 'errors.invalidToken':
return 'Ungültiges Token';
case 'errors.failedToVerifyToken':
return ({required Object error}) =>
'Token-Verifizierung fehlgeschlagen: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) =>
'Profilwechsel zu ${displayName} fehlgeschlagen';
case 'errors.connectionFailedGeneric':
return 'Verbindung fehlgeschlagen';
case 'libraries.title':
return 'Mediatheken';
case 'libraries.scanLibraryFiles':
return 'Mediatheksdateien scannen';
case 'libraries.scanLibrary':
return 'Mediathek scannen';
case 'libraries.analyze':
return 'Analysieren';
case 'libraries.analyzeLibrary':
return 'Mediathek analysieren';
case 'libraries.refreshMetadata':
return 'Metadaten aktualisieren';
case 'libraries.emptyTrash':
return 'Papierkorb leeren';
case 'libraries.emptyingTrash':
return ({required Object title}) =>
'Papierkorb für „${title}“ wird geleert...';
case 'libraries.trashEmptied':
return ({required Object title}) => 'Papierkorb für „${title}“ geleert';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) =>
'Papierkorb konnte nicht geleert werden: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => 'Analysiere „${title}“...';
case 'libraries.analysisStarted':
return ({required Object title}) => 'Analyse gestartet für „${title}“';
case 'libraries.failedToAnalyze':
return ({required Object error}) =>
'Analyse der Mediathek fehlgeschlagen: ${error}';
case 'libraries.noLibrariesFound':
return 'Keine Mediatheken gefunden';
case 'libraries.thisLibraryIsEmpty':
return 'Diese Mediathek ist leer';
case 'libraries.all':
return 'Alle';
case 'libraries.clearAll':
return 'Alle löschen';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) => '„${title}“ wirklich scannen?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) => '„${title}“ wirklich analysieren?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) =>
'Metadaten für „${title}“ wirklich aktualisieren?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) =>
'Papierkorb für „${title}“ wirklich leeren?';
case 'libraries.manageLibraries':
return 'Mediatheken verwalten';
case 'libraries.sort':
return 'Sortieren';
case 'libraries.sortBy':
return 'Sortieren nach';
case 'libraries.filters':
return 'Filter';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) =>
'Lade Mediathek... (${count} Elemente geladen)';
case 'libraries.confirmActionMessage':
return 'Aktion wirklich durchführen?';
case 'libraries.showLibrary':
return 'Mediathek anzeigen';
case 'libraries.hideLibrary':
return 'Mediathek ausblenden';
case 'libraries.libraryOptions':
return 'Mediatheksoptionen';
case 'libraries.content':
return 'Bibliotheksinhalt';
case 'libraries.selectLibrary':
return 'Bibliothek auswählen';
case 'libraries.filtersWithCount':
return ({required Object count}) => 'Filter (${count})';
case 'libraries.noRecommendations':
return 'Keine Empfehlungen verfügbar';
case 'libraries.noCollections':
return 'Keine Sammlungen in dieser Mediathek';
case 'libraries.noFoldersFound':
return 'Keine Ordner gefunden';
case 'libraries.folders':
return 'Ordner';
case 'libraries.tabs.recommended':
return 'Empfohlen';
case 'libraries.tabs.browse':
return 'Durchsuchen';
case 'libraries.tabs.collections':
return 'Sammlungen';
case 'libraries.tabs.playlists':
return 'Wiedergabelisten';
case 'libraries.groupings.all':
return 'Alle';
case 'libraries.groupings.movies':
return 'Filme';
case 'libraries.groupings.shows':
return 'Serien';
case 'libraries.groupings.seasons':
return 'Staffeln';
case 'libraries.groupings.episodes':
return 'Episoden';
case 'libraries.groupings.folders':
return 'Ordner';
case 'about.title':
return 'Über';
case 'about.openSourceLicenses':
return 'Open-Source-Lizenzen';
case 'about.versionLabel':
return ({required Object version}) => 'Version ${version}';
case 'about.appDescription':
return 'Ein schöner Plex-Client für Flutter';
case 'about.viewLicensesDescription':
return 'Lizenzen von Drittanbieter-Bibliotheken anzeigen';
case 'serverSelection.connectingToServer':
return 'Verbinde mit Server...';
case 'serverSelection.connectingToAllServers':
return 'Verbinde mit allen Servern...';
case 'serverSelection.connectToAllServers':
return 'Mit allen Servern verbinden';
case 'serverSelection.allServerConnectionsFailed':
return 'Verbindung zu allen Servern fehlgeschlagen. Bitte Netzwerk prüfen und erneut versuchen.';
case 'serverSelection.foundServers':
return ({required Object count}) => '${count} Server gefunden';
case 'serverSelection.orSelectIndividually':
return 'Oder einzelnen Server auswählen:';
case 'serverSelection.serverDebugCopied':
return 'Server-Debugdaten kopiert';
case 'serverSelection.copyDebugData':
return 'Debugdaten kopieren';
case 'serverSelection.noServersFound':
return 'Keine Server gefunden';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'${count} Server mit fehlerhaften Daten gefunden. Keine gültigen Server verfügbar.';
case 'serverSelection.incompleteServerInfo':
return 'Einige Serverinformationen sind unvollständig und wurden übersprungen. Plex.tv-Konto prüfen.';
case 'serverSelection.incompleteConnectionInfo':
return 'Serververbindungsinformationen unvollständig. Bitte erneut versuchen.';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) =>
'Serverinformationen fehlerhaft: ${message}';
case 'serverSelection.networkConnectionFailed':
return 'Netzwerkverbindung fehlgeschlagen. Internetverbindung prüfen und erneut versuchen.';
case 'serverSelection.authenticationFailed':
return 'Authentifizierung fehlgeschlagen. Bitte erneut anmelden.';
case 'serverSelection.plexServiceUnavailable':
return 'Plex-Dienst nicht verfügbar. Bitte später erneut versuchen.';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) =>
'Server konnten nicht geladen werden: ${error}';
case 'hubDetail.title':
return 'Titel';
case 'hubDetail.releaseYear':
return 'Erscheinungsjahr';
case 'hubDetail.dateAdded':
return 'Hinzugefügt am';
case 'hubDetail.rating':
return 'Bewertung';
case 'hubDetail.noItemsFound':
return 'Keine Elemente gefunden';
case 'logs.title':
return 'Protokolle';
case 'logs.clearLogs':
return 'Protokolle löschen';
case 'logs.copyLogs':
return 'Protokolle kopieren';
case 'logs.exportLogs':
return 'Protokolle exportieren';
case 'logs.noLogsToShow':
return 'Keine Protokolle zum Anzeigen';
case 'logs.error':
return 'Fehler:';
case 'logs.stackTrace':
return 'Stacktrace:';
case 'licenses.relatedPackages':
return 'Verwandte Pakete';
case 'licenses.license':
return 'Lizenz';
case 'licenses.licenseNumber':
return ({required Object number}) => 'Lizenz ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} Lizenzen';
case 'navigation.home':
return 'Start';
case 'navigation.search':
return 'Suche';
case 'navigation.libraries':
return 'Mediatheken';
case 'navigation.settings':
return 'Einstellungen';
case 'playlists.title':
return 'Wiedergabelisten';
case 'playlists.noPlaylists':
return 'Keine Wiedergabelisten gefunden';
case 'playlists.create':
return 'Wiedergabeliste erstellen';
case 'playlists.newPlaylist':
return 'Neue Wiedergabeliste';
case 'playlists.playlistName':
return 'Name der Wiedergabeliste';
case 'playlists.enterPlaylistName':
return 'Name der Wiedergabeliste eingeben';
case 'playlists.edit':
return 'Wiedergabeliste bearbeiten';
case 'playlists.delete':
return 'Wiedergabeliste löschen';
case 'playlists.addTo':
return 'Zur Wiedergabeliste hinzufügen';
case 'playlists.addItems':
return 'Elemente hinzufügen';
case 'playlists.removeItem':
return 'Aus Wiedergabeliste entfernen';
case 'playlists.clearPlaylist':
return 'Wiedergabeliste leeren';
case 'playlists.playAll':
return 'Alle abspielen';
case 'playlists.shuffle':
return 'Zufällig';
case 'playlists.smartPlaylist':
return 'Intelligente Wiedergabeliste';
case 'playlists.regularPlaylist':
return 'Normale Wiedergabeliste';
case 'playlists.itemCount':
return ({required Object count}) => '${count} Elemente';
case 'playlists.oneItem':
return '1 Element';
case 'playlists.emptyPlaylist':
return 'Diese Wiedergabeliste ist leer';
case 'playlists.deleteConfirm':
return 'Wiedergabeliste löschen?';
case 'playlists.deleteMessage':
return ({required Object name}) =>
'Soll "${name}" wirklich gelöscht werden?';
case 'playlists.created':
return 'Wiedergabeliste erstellt';
case 'playlists.updated':
return 'Wiedergabeliste aktualisiert';
case 'playlists.deleted':
return 'Wiedergabeliste gelöscht';
case 'playlists.itemAdded':
return 'Zur Wiedergabeliste hinzugefügt';
case 'playlists.itemRemoved':
return 'Aus Wiedergabeliste entfernt';
case 'playlists.selectPlaylist':
return 'Wiedergabeliste auswählen';
case 'playlists.createNewPlaylist':
return 'Neue Wiedergabeliste erstellen';
case 'playlists.errorCreating':
return 'Wiedergabeliste konnte nicht erstellt werden';
case 'playlists.errorDeleting':
return 'Wiedergabeliste konnte nicht gelöscht werden';
case 'playlists.errorLoading':
return 'Wiedergabelisten konnten nicht geladen werden';
case 'playlists.errorAdding':
return 'Konnte nicht zur Wiedergabeliste hinzugefügt werden';
case 'playlists.errorReordering':
return 'Element der Wiedergabeliste konnte nicht neu geordnet werden';
case 'playlists.errorRemoving':
return 'Konnte nicht aus der Wiedergabeliste entfernt werden';
case 'playlists.playlist':
return 'Wiedergabeliste';
case 'collections.title':
return 'Sammlungen';
case 'collections.collection':
return 'Sammlung';
case 'collections.empty':
return 'Sammlung ist leer';
case 'collections.noItems':
return 'Keine Elemente in dieser Sammlung';
case 'collections.unknownLibrarySection':
return 'Löschen nicht möglich: Unbekannte Bibliothekssektion';
case 'collections.deleteCollection':
return 'Sammlung löschen';
case 'collections.deleteConfirm':
return ({required Object title}) =>
'Sind Sie sicher, dass Sie "${title}" löschen möchten? Dies kann nicht rückgängig gemacht werden.';
case 'collections.deleted':
return 'Sammlung gelöscht';
case 'collections.deleteFailed':
return 'Sammlung konnte nicht gelöscht werden';
case 'collections.deleteFailedWithError':
return ({required Object error}) =>
'Sammlung konnte nicht gelöscht werden: ${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) =>
'Sammlungselemente konnten nicht geladen werden: ${error}';
case 'collections.addTo':
return 'Zur Sammlung hinzufügen';
case 'collections.selectCollection':
return 'Sammlung auswählen';
case 'collections.createNewCollection':
return 'Neue Sammlung erstellen';
case 'collections.collectionName':
return 'Sammlungsname';
case 'collections.enterCollectionName':
return 'Sammlungsnamen eingeben';
case 'collections.addedToCollection':
return 'Zur Sammlung hinzugefügt';
case 'collections.errorAddingToCollection':
return 'Fehler beim Hinzufügen zur Sammlung';
case 'collections.created':
return 'Sammlung erstellt';
case 'collections.removeFromCollection':
return 'Aus Sammlung entfernen';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) =>
'"${title}" aus dieser Sammlung entfernen?';
case 'collections.removedFromCollection':
return 'Aus Sammlung entfernt';
case 'collections.removeFromCollectionFailed':
return 'Entfernen aus Sammlung fehlgeschlagen';
case 'collections.removeFromCollectionError':
return ({required Object error}) =>
'Fehler beim Entfernen aus der Sammlung: ${error}';
default:
return null;
}
}
}
extension on _StringsIt {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return 'Caricamento...';
case 'auth.signInWithPlex':
return 'Accedi con Plex';
case 'auth.showQRCode':
return 'Mostra QR Code';
case 'auth.cancel':
return 'Cancella';
case 'auth.authenticate':
return 'Autenticazione';
case 'auth.retry':
return 'Riprova';
case 'auth.debugEnterToken':
return 'Debug: Inserisci Token Plex';
case 'auth.plexTokenLabel':
return 'Token Auth Plex';
case 'auth.plexTokenHint':
return 'Inserisci il tuo token di Plex.tv';
case 'auth.authenticationTimeout':
return 'Autenticazione scaduta. Riprova.';
case 'auth.scanQRCodeInstruction':
return 'Scansiona questo QR code con un dispositivo connesso a Plex per autenticarti.';
case 'auth.waitingForAuth':
return 'In attesa di autenticazione...\nCompleta l\'accesso dal tuo browser.';
case 'common.cancel':
return 'Cancella';
case 'common.save':
return 'Salva';
case 'common.close':
return 'Chiudi';
case 'common.clear':
return 'Pulisci';
case 'common.reset':
return 'Ripristina';
case 'common.later':
return 'Più tardi';
case 'common.submit':
return 'Invia';
case 'common.confirm':
return 'Conferma';
case 'common.retry':
return 'Riprova';
case 'common.playNow':
return 'Riproduci ora';
case 'common.logout':
return 'Disconnetti';
case 'common.online':
return 'Online';
case 'common.offline':
return 'Offline';
case 'common.owned':
return 'Di proprietà';
case 'common.shared':
return 'Condiviso';
case 'common.current':
return 'CORRENTE';
case 'common.unknown':
return 'Sconosciuto';
case 'common.refresh':
return 'Aggiorna';
case 'common.yes':
return 'Sì';
case 'common.no':
return 'No';
case 'common.server':
return 'Server';
case 'common.delete':
return 'Elimina';
case 'common.shuffle':
return 'Casuale';
case 'common.addTo':
return 'Aggiungi a...';
case 'screens.licenses':
return 'Licenze';
case 'screens.selectServer':
return 'Seleziona server';
case 'screens.switchProfile':
return 'Cambia profilo';
case 'screens.subtitleStyling':
return 'Stile sottotitoli';
case 'screens.search':
return 'Cerca';
case 'screens.logs':
return 'Registro';
case 'update.available':
return 'Aggiornamento disponibile';
case 'update.versionAvailable':
return ({required Object version}) => 'Versione ${version} disponibile';
case 'update.currentVersion':
return ({required Object version}) => 'Corrente: ${version}';
case 'update.skipVersion':
return 'Salta questa versione';
case 'update.viewRelease':
return 'Visualizza dettagli release';
case 'update.latestVersion':
return 'La versione installata è l\'ultima disponibile';
case 'update.checkFailed':
return 'Impossibile controllare gli aggiornamenti';
case 'settings.title':
return 'Impostazioni';
case 'settings.language':
return 'Lingua';
case 'settings.theme':
return 'Tema';
case 'settings.appearance':
return 'Aspetto';
case 'settings.videoPlayback':
return 'Riproduzione video';
case 'settings.shufflePlay':
return 'Riproduzione casuale';
case 'settings.advanced':
return 'Avanzate';
case 'settings.useSeasonPostersDescription':
return 'Mostra il poster della stagione invece del poster della serie per gli episodi';
case 'settings.showHeroSectionDescription':
return 'Visualizza il carosello dei contenuti in primo piano sulla schermata iniziale';
case 'settings.secondsLabel':
return 'Secondi';
case 'settings.minutesLabel':
return 'Minuti';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'Inserisci durata (${min}-${max})';
case 'settings.systemTheme':
return 'Sistema';
case 'settings.systemThemeDescription':
return 'Segui le impostazioni di sistema';
case 'settings.lightTheme':
return 'Chiaro';
case 'settings.darkTheme':
return 'Scuro';
case 'settings.libraryDensity':
return 'Densità libreria';
case 'settings.compact':
return 'Compatta';
case 'settings.compactDescription':
return 'Schede più piccole, più elementi visibili';
case 'settings.normal':
return 'Normale';
case 'settings.normalDescription':
return 'Dimensione predefinita';
case 'settings.comfortable':
return 'Comoda';
case 'settings.comfortableDescription':
return 'Schede più grandi, meno elementi visibili';
case 'settings.viewMode':
return 'Modalità di visualizzazione';
case 'settings.gridView':
return 'Griglia';
case 'settings.gridViewDescription':
return 'Visualizza gli elementi in un layout a griglia';
case 'settings.listView':
return 'Elenco';
case 'settings.listViewDescription':
return 'Visualizza gli elementi in un layout a elenco';
case 'settings.useSeasonPosters':
return 'Usa poster delle stagioni';
case 'settings.showHeroSection':
return 'Mostra sezione principale';
case 'settings.hardwareDecoding':
return 'Decodifica Hardware';
case 'settings.hardwareDecodingDescription':
return 'Utilizza l\'accelerazione hardware quando disponibile';
case 'settings.bufferSize':
return 'Dimensione buffer';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return 'Stile sottotitoli';
case 'settings.subtitleStylingDescription':
return 'Personalizza l\'aspetto dei sottotitoli';
case 'settings.smallSkipDuration':
return 'Durata skip breve';
case 'settings.largeSkipDuration':
return 'Durata skip lungo';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} secondi';
case 'settings.defaultSleepTimer':
return 'Timer spegnimento predefinito';
case 'settings.minutesUnit':
return ({required Object minutes}) => '${minutes} minuti';
case 'settings.rememberTrackSelections':
return 'Ricorda selezioni tracce per serie/film';
case 'settings.rememberTrackSelectionsDescription':
return 'Salva automaticamente le preferenze delle lingue audio e sottotitoli quando cambi tracce durante la riproduzione';
case 'settings.unwatchedOnly':
return 'Solo non guardati';
case 'settings.unwatchedOnlyDescription':
return 'Includi solo gli episodi non guardati nella coda di riproduzione casuale';
case 'settings.shuffleOrderNavigation':
return 'Navigazione in ordine casuale';
case 'settings.shuffleOrderNavigationDescription':
return 'I pulsanti Avanti/Indietro seguono l\'ordine casuale';
case 'settings.loopShuffleQueue':
return 'Coda di riproduzione casuale in loop';
case 'settings.loopShuffleQueueDescription':
return 'Riavvia la coda quando raggiungi la fine';
case 'settings.videoPlayerControls':
return 'Controlli del lettore video';
case 'settings.keyboardShortcuts':
return 'Scorciatoie da tastiera';
case 'settings.keyboardShortcutsDescription':
return 'Personalizza le scorciatoie da tastiera';
case 'settings.debugLogging':
return 'Log di debug';
case 'settings.debugLoggingDescription':
return 'Abilita il logging dettagliato per la risoluzione dei problemi';
case 'settings.viewLogs':
return 'Visualizza log';
case 'settings.viewLogsDescription':
return 'Visualizza i log dell\'applicazione';
case 'settings.clearCache':
return 'Svuota cache';
case 'settings.clearCacheDescription':
return 'Questa opzione cancellerà tutte le immagini e i dati memorizzati nella cache. Dopo aver cancellato la cache, l\'app potrebbe impiegare più tempo per caricare i contenuti.';
case 'settings.clearCacheSuccess':
return 'Cache cancellata correttamente';
case 'settings.resetSettings':
return 'Ripristina impostazioni';
case 'settings.resetSettingsDescription':
return 'Questa opzione ripristinerà tutte le impostazioni ai valori predefiniti. Non può essere annullata.';
case 'settings.resetSettingsSuccess':
return 'Impostazioni ripristinate correttamente';
case 'settings.shortcutsReset':
return 'Scorciatoie ripristinate alle impostazioni predefinite';
case 'settings.about':
return 'Informazioni';
case 'settings.aboutDescription':
return 'Informazioni sull\'app e le licenze';
case 'settings.updates':
return 'Aggiornamenti';
case 'settings.updateAvailable':
return 'Aggiornamento disponibile';
case 'settings.checkForUpdates':
return 'Controlla aggiornamenti';
case 'settings.validationErrorEnterNumber':
return 'Inserisci un numero valido';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) =>
'Scorciatoia già assegnata a ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) =>
'Scorciatoia aggiornata per ${action}';
case 'settings.autoSkip':
return 'Salto Automatico';
case 'settings.autoSkipIntro':
return 'Salta Intro Automaticamente';
case 'settings.autoSkipIntroDescription':
return 'Salta automaticamente i marcatori dell\'intro dopo alcuni secondi';
case 'settings.autoSkipCredits':
return 'Salta Crediti Automaticamente';
case 'settings.autoSkipCreditsDescription':
return 'Salta automaticamente i crediti e riproduci l\'episodio successivo';
case 'settings.autoSkipDelay':
return 'Ritardo Salto Automatico';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) =>
'Aspetta ${seconds} secondi prima del salto automatico';
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';
case 'pinEntry.showPin':
return 'Mostra PIN';
case 'pinEntry.hidePin':
return 'Nascondi PIN';
case 'fileInfo.title':
return 'Info sul file';
case 'fileInfo.video':
return 'Video';
case 'fileInfo.audio':
return 'Audio';
case 'fileInfo.file':
return 'File';
case 'fileInfo.advanced':
return 'Avanzate';
case 'fileInfo.codec':
return 'Codec';
case 'fileInfo.resolution':
return 'Risoluzione';
case 'fileInfo.bitrate':
return 'Bitrate';
case 'fileInfo.frameRate':
return 'Frame Rate';
case 'fileInfo.aspectRatio':
return 'Aspect Ratio';
case 'fileInfo.profile':
return 'Profilo';
case 'fileInfo.bitDepth':
return 'Profondità colore';
case 'fileInfo.colorSpace':
return 'Spazio colore';
case 'fileInfo.colorRange':
return 'Gamma colori';
case 'fileInfo.colorPrimaries':
return 'Colori primari';
case 'fileInfo.chromaSubsampling':
return 'Sottocampionamento cromatico';
case 'fileInfo.channels':
return 'Canali';
case 'fileInfo.path':
return 'Percorso';
case 'fileInfo.size':
return 'Dimensione';
case 'fileInfo.container':
return 'Contenitore';
case 'fileInfo.duration':
return 'Durata';
case 'fileInfo.optimizedForStreaming':
return 'Ottimizzato per lo streaming';
case 'fileInfo.has64bitOffsets':
return 'Offset a 64-bit';
case 'mediaMenu.markAsWatched':
return 'Segna come visto';
case 'mediaMenu.markAsUnwatched':
return 'Segna come non visto';
case 'mediaMenu.removeFromContinueWatching':
return 'Rimuovi da Continua a guardare';
case 'mediaMenu.goToSeries':
return 'Vai alle serie';
case 'mediaMenu.goToSeason':
return 'Vai alla stagione';
case 'mediaMenu.shufflePlay':
return 'Riproduzione casuale';
case 'mediaMenu.fileInfo':
return 'Info sul file';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, film';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, serie TV';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return 'visto';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '${percent} percento visto';
case 'accessibility.mediaCardUnwatched':
return 'non visto';
case 'accessibility.tapToPlay':
return 'Tocca per riprodurre';
case 'tooltips.shufflePlay':
return 'Riproduzione casuale';
case 'tooltips.markAsWatched':
return 'Segna come visto';
case 'tooltips.markAsUnwatched':
return 'Segna come non visto';
case 'videoControls.audioLabel':
return 'Audio';
case 'videoControls.subtitlesLabel':
return 'Sottotitoli';
case 'videoControls.resetToZero':
return 'Riporta a 0ms';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} riprodotto dopo';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} riprodotto prima';
case 'videoControls.noOffset':
return 'Nessun offset';
case 'videoControls.letterbox':
return 'Letterbox';
case 'videoControls.fillScreen':
return 'Riempi schermo';
case 'videoControls.stretch':
return 'Allunga';
case 'videoControls.lockRotation':
return 'Blocca rotazione';
case 'videoControls.unlockRotation':
return 'Sblocca rotazione';
case 'videoControls.sleepTimer':
return 'Timer di spegnimento';
case 'videoControls.timerActive':
return 'Timer attivo';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) =>
'La riproduzione si interromperà tra ${duration}';
case 'videoControls.sleepTimerCompleted':
return 'Timer di spegnimento completato - riproduzione in pausa';
case 'videoControls.playButton':
return 'Riproduci';
case 'videoControls.pauseButton':
return 'Pausa';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) => 'Riavvolgi di ${seconds} secondi';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) => 'Avanza di ${seconds} secondi';
case 'videoControls.previousButton':
return 'Episodio precedente';
case 'videoControls.nextButton':
return 'Episodio successivo';
case 'videoControls.previousChapterButton':
return 'Capitolo precedente';
case 'videoControls.nextChapterButton':
return 'Capitolo successivo';
case 'videoControls.volumeButton':
return 'Volume';
case 'videoControls.muteButton':
return 'Silenzia';
case 'videoControls.unmuteButton':
return 'Riattiva audio';
case 'videoControls.settingsButton':
return 'Impostazioni video';
case 'videoControls.audioTrackButton':
return 'Tracce audio';
case 'videoControls.subtitlesButton':
return 'Sottotitoli';
case 'videoControls.chaptersButton':
return 'Capitoli';
case 'videoControls.versionsButton':
return 'Versioni video';
case 'videoControls.aspectRatioButton':
return 'Proporzioni';
case 'videoControls.fullscreenButton':
return 'Attiva schermo intero';
case 'videoControls.exitFullscreenButton':
return 'Esci da schermo intero';
case 'videoControls.rotationLockButton':
return 'Blocco rotazione';
case 'videoControls.timelineSlider':
return 'Timeline video';
case 'videoControls.volumeSlider':
return 'Livello volume';
case 'videoControls.backButton':
return 'Indietro';
case 'userStatus.admin':
return 'Admin';
case 'userStatus.restricted':
return 'Limitato';
case 'userStatus.protected':
return 'Protetto';
case 'userStatus.current':
return 'ATTUALE';
case 'messages.markedAsWatched':
return 'Segna come visto';
case 'messages.markedAsUnwatched':
return 'Segna come non visto';
case 'messages.removedFromContinueWatching':
return 'Rimosso da Continua a guardare';
case 'messages.errorLoading':
return ({required Object error}) => 'Errore: ${error}';
case 'messages.fileInfoNotAvailable':
return 'Informazioni sul file non disponibili';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) =>
'Errore caricamento informazioni sul file: ${error}';
case 'messages.errorLoadingSeries':
return 'Errore caricamento serie';
case 'messages.errorLoadingSeason':
return 'Errore caricamento stagione';
case 'messages.musicNotSupported':
return 'La riproduzione musicale non è ancora supportata';
case 'messages.logsCleared':
return 'Log eliminati';
case 'messages.logsCopied':
return 'Log copiati negli appunti';
case 'messages.noLogsAvailable':
return 'Nessun log disponibile';
case 'messages.libraryScanning':
return ({required Object title}) => 'Scansione "${title}"...';
case 'messages.libraryScanStarted':
return ({required Object title}) =>
'Scansione libreria iniziata per "${title}"';
case 'messages.libraryScanFailed':
return ({required Object error}) =>
'Impossibile eseguire scansione della libreria: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) =>
'Aggiornamento metadati per "${title}"...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) =>
'Aggiornamento metadati per "${title}"';
case 'messages.metadataRefreshFailed':
return ({required Object error}) =>
'Errore aggiornamento metadati: ${error}';
case 'messages.noPlexToken':
return 'Nessun token Plex trovato. Riesegui l\'accesso.';
case 'messages.logoutConfirm':
return 'Sei sicuro di volerti disconnettere?';
case 'messages.noSeasonsFound':
return 'Nessuna stagione trovata';
case 'messages.noEpisodesFound':
return 'Nessun episodio trovato nella prima stagione';
case 'messages.noEpisodesFoundGeneral':
return 'Nessun episodio trovato';
case 'messages.noResultsFound':
return 'Nessun risultato';
case 'messages.sleepTimerSet':
return ({required Object label}) =>
'Imposta timer spegnimento per ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) =>
'Impossibile passare a ${displayName}';
case 'messages.noItemsAvailable':
return 'Nessun elemento disponibile';
case 'messages.failedToCreatePlayQueue':
return 'Impossibile creare la coda di riproduzione';
case 'messages.failedToCreatePlayQueueNoItems':
return 'Impossibile creare la coda di riproduzione - nessun elemento';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'Impossibile ${action}: ${error}';
case 'profile.noUsersAvailable':
return 'Nessun utente disponibile';
case 'subtitlingStyling.stylingOptions':
return 'Opzioni stile';
case 'subtitlingStyling.fontSize':
return 'Dimensione';
case 'subtitlingStyling.textColor':
return 'Colore testo';
case 'subtitlingStyling.borderSize':
return 'Dimensione bordo';
case 'subtitlingStyling.borderColor':
return 'Colore bordo';
case 'subtitlingStyling.backgroundOpacity':
return 'Opacità sfondo';
case 'subtitlingStyling.backgroundColor':
return 'Colore sfondo';
case 'dialog.confirmAction':
return 'Conferma azione';
case 'dialog.areYouSure':
return 'Sei sicuro di voler eseguire questa azione?';
case 'dialog.cancel':
return 'Cancella';
case 'dialog.playNow':
return 'Riproduci ora';
case 'discover.title':
return 'Esplora';
case 'discover.switchProfile':
return 'Cambia profilo';
case 'discover.switchServer':
return 'Cambia server';
case 'discover.logout':
return 'Disconnetti';
case 'discover.noContentAvailable':
return 'Nessun contenuto disponibile';
case 'discover.addMediaToLibraries':
return 'Aggiungi alcuni file multimediali alle tue librerie';
case 'discover.continueWatching':
return 'Continua a guardare';
case 'discover.recentlyAdded':
return 'Aggiunti di recente';
case 'discover.play':
return 'Riproduci';
case 'discover.resume':
return 'Riprendi';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'Riproduci S${season}, E${episode}';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'Riprendi S${season}, E${episode}';
case 'discover.pause':
return 'Pausa';
case 'discover.overview':
return 'Panoramica';
case 'discover.cast':
return 'Attori';
case 'discover.seasons':
return 'Stagioni';
case 'discover.studio':
return 'Studio';
case 'discover.rating':
return 'Classificazione';
case 'discover.watched':
return 'Guardato';
case 'discover.episodeCount':
return ({required Object count}) => '${count} episodi';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'${watched}/${total} guardati';
case 'discover.movie':
return 'Film';
case 'discover.tvShow':
return 'Serie TV';
case 'discover.minutesLeft':
return ({required Object minutes}) => '${minutes} minuti rimanenti';
case 'errors.searchFailed':
return ({required Object error}) => 'Ricerca fallita: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) =>
'Timeout connessione durante caricamento di ${context}';
case 'errors.connectionFailed':
return 'Impossibile connettersi al server Plex.';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'Impossibile caricare ${context}: ${error}';
case 'errors.noClientAvailable':
return 'Nessun client disponibile';
case 'errors.authenticationFailed':
return ({required Object error}) => 'Autenticazione fallita: ${error}';
case 'errors.couldNotLaunchUrl':
return 'Impossibile avviare URL di autenticazione';
case 'errors.pleaseEnterToken':
return 'Inserisci token';
case 'errors.invalidToken':
return 'Token non valido';
case 'errors.failedToVerifyToken':
return ({required Object error}) => 'Verifica token fallita: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) =>
'Impossibile passare a ${displayName}';
case 'errors.connectionFailedGeneric':
return 'Connessione fallita';
case 'libraries.title':
return 'Librerie';
case 'libraries.scanLibraryFiles':
return 'Scansiona file libreria';
case 'libraries.scanLibrary':
return 'Scansiona libreria';
case 'libraries.analyze':
return 'Analizza';
case 'libraries.analyzeLibrary':
return 'Analizza libreria';
case 'libraries.refreshMetadata':
return 'Aggiorna metadati';
case 'libraries.emptyTrash':
return 'Svuota cestino';
case 'libraries.emptyingTrash':
return ({required Object title}) =>
'Svuotamento cestino per "${title}"...';
case 'libraries.trashEmptied':
return ({required Object title}) => 'Cestino svuotato per "${title}"';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) =>
'Impossibile svuotare cestino: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => 'Analisi "${title}"...';
case 'libraries.analysisStarted':
return ({required Object title}) => 'Analisi iniziata per "${title}"';
case 'libraries.failedToAnalyze':
return ({required Object error}) =>
'Impossibile analizzare libreria: ${error}';
case 'libraries.noLibrariesFound':
return 'Nessuna libreria trovata';
case 'libraries.thisLibraryIsEmpty':
return 'Questa libreria è vuota';
case 'libraries.all':
return 'Tutto';
case 'libraries.clearAll':
return 'Cancella tutto';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) =>
'Sei sicuro di voler scansionare "${title}"?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) =>
'Sei sicuro di voler analizzare "${title}"?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) =>
'Sei sicuro di voler aggiornare i metadati per "${title}"?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) =>
'Sei sicuro di voler svuotare il cestino per "${title}"?';
case 'libraries.manageLibraries':
return 'Gestisci librerie';
case 'libraries.sort':
return 'Ordina';
case 'libraries.sortBy':
return 'Ordina per';
case 'libraries.filters':
return 'Filtri';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) =>
'Caricamento librerie... (${count} oggetti caricati)';
case 'libraries.confirmActionMessage':
return 'Sei sicuro di voler eseguire questa azione?';
case 'libraries.showLibrary':
return 'Mostra libreria';
case 'libraries.hideLibrary':
return 'Nascondi libreria';
case 'libraries.libraryOptions':
return 'Opzioni libreria';
case 'libraries.content':
return 'contenuto della libreria';
case 'libraries.selectLibrary':
return 'Seleziona libreria';
case 'libraries.filtersWithCount':
return ({required Object count}) => 'Filtri (${count})';
case 'libraries.noRecommendations':
return 'Nessun consiglio disponibile';
case 'libraries.noCollections':
return 'Nessuna raccolta in questa libreria';
case 'libraries.noFoldersFound':
return 'Nessuna cartella trovata';
case 'libraries.folders':
return 'cartelle';
case 'libraries.tabs.recommended':
return 'Consigliati';
case 'libraries.tabs.browse':
return 'Esplora';
case 'libraries.tabs.collections':
return 'Raccolte';
case 'libraries.tabs.playlists':
return 'Playlist';
case 'libraries.groupings.all':
return 'Tutti';
case 'libraries.groupings.movies':
return 'Film';
case 'libraries.groupings.shows':
return 'Serie TV';
case 'libraries.groupings.seasons':
return 'Stagioni';
case 'libraries.groupings.episodes':
return 'Episodi';
case 'libraries.groupings.folders':
return 'Cartelle';
case 'about.title':
return 'Informazioni';
case 'about.openSourceLicenses':
return 'Licenze Open Source';
case 'about.versionLabel':
return ({required Object version}) => 'Versione ${version}';
case 'about.appDescription':
return 'Un bellissimo client Plex per Flutter';
case 'about.viewLicensesDescription':
return 'Visualizza le licenze delle librerie di terze parti';
case 'serverSelection.connectingToServer':
return 'Connessione al server...';
case 'serverSelection.connectingToAllServers':
return 'Connessione a tutti i server...';
case 'serverSelection.connectToAllServers':
return 'Connetti a tutti i server';
case 'serverSelection.allServerConnectionsFailed':
return 'Impossibile connettersi a nessun server. Controlla la tua rete e riprova.';
case 'serverSelection.foundServers':
return ({required Object count}) => 'Trovati ${count} server';
case 'serverSelection.orSelectIndividually':
return 'Oppure seleziona un server singolarmente:';
case 'serverSelection.serverDebugCopied':
return 'Dati di debug del server copiati negli appunti';
case 'serverSelection.copyDebugData':
return 'Copia dati di debug';
case 'serverSelection.noServersFound':
return 'Nessun server trovato';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'Trovato ${count} server con dati difettosi. Nessun server valido disponibile.';
case 'serverSelection.incompleteServerInfo':
return 'Alcuni server presentano informazioni incomplete e sono stati ignorati. Controlla il tuo account Plex.tv.';
case 'serverSelection.incompleteConnectionInfo':
return 'Le informazioni di connessione al server sono incomplete. Riprova.';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) =>
'Le informazioni sul server sono errate: ${message}';
case 'serverSelection.networkConnectionFailed':
return 'Connessione di rete non riuscita. Controlla la tua connessione Internet e riprova.';
case 'serverSelection.authenticationFailed':
return 'Autenticazione fallita. Effettua nuovamente l\'accesso.';
case 'serverSelection.plexServiceUnavailable':
return 'Servizio Plex non disponibile. Riprova più tardi.';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) =>
'Impossibile caricare i server: ${error}';
case 'hubDetail.title':
return 'Titolo';
case 'hubDetail.releaseYear':
return 'Anno rilascio';
case 'hubDetail.dateAdded':
return 'Data aggiunta';
case 'hubDetail.rating':
return 'Valutazione';
case 'hubDetail.noItemsFound':
return 'Nessun elemento trovato';
case 'logs.title':
return 'Registro';
case 'logs.clearLogs':
return 'Cancella log';
case 'logs.copyLogs':
return 'Copia log';
case 'logs.exportLogs':
return 'Esporta log';
case 'logs.noLogsToShow':
return 'Nessun log da mostrare';
case 'logs.error':
return 'Errore:';
case 'logs.stackTrace':
return 'Traccia dello stack:';
case 'licenses.relatedPackages':
return 'Pacchetti correlati';
case 'licenses.license':
return 'Licenza';
case 'licenses.licenseNumber':
return ({required Object number}) => 'Licenza ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} licenze';
case 'navigation.home':
return 'Home';
case 'navigation.search':
return 'Cerca';
case 'navigation.libraries':
return 'Librerie';
case 'navigation.settings':
return 'Impostazioni';
case 'playlists.title':
return 'Playlist';
case 'playlists.noPlaylists':
return 'Nessuna playlist trovata';
case 'playlists.create':
return 'Crea playlist';
case 'playlists.newPlaylist':
return 'Nuova playlist';
case 'playlists.playlistName':
return 'Nome playlist';
case 'playlists.enterPlaylistName':
return 'Inserisci nome playlist';
case 'playlists.edit':
return 'Modifica playlist';
case 'playlists.delete':
return 'Elimina playlist';
case 'playlists.addTo':
return 'Aggiungi a playlist';
case 'playlists.addItems':
return 'Aggiungi elementi';
case 'playlists.removeItem':
return 'Rimuovi da playlist';
case 'playlists.clearPlaylist':
return 'Svuota playlist';
case 'playlists.playAll':
return 'Riproduci tutto';
case 'playlists.shuffle':
return 'Casuale';
case 'playlists.smartPlaylist':
return 'Playlist intelligente';
case 'playlists.regularPlaylist':
return 'Playlist normale';
case 'playlists.itemCount':
return ({required Object count}) => '${count} elementi';
case 'playlists.oneItem':
return '1 elemento';
case 'playlists.emptyPlaylist':
return 'Questa playlist è vuota';
case 'playlists.deleteConfirm':
return 'Eliminare playlist?';
case 'playlists.deleteMessage':
return ({required Object name}) =>
'Sei sicuro di voler eliminare "${name}"?';
case 'playlists.created':
return 'Playlist creata';
case 'playlists.updated':
return 'Playlist aggiornata';
case 'playlists.deleted':
return 'Playlist eliminata';
case 'playlists.itemAdded':
return 'Aggiunto alla playlist';
case 'playlists.itemRemoved':
return 'Rimosso dalla playlist';
case 'playlists.selectPlaylist':
return 'Seleziona playlist';
case 'playlists.createNewPlaylist':
return 'Crea nuova playlist';
case 'playlists.errorCreating':
return 'Errore durante la creazione della playlist';
case 'playlists.errorDeleting':
return 'Errore durante l\'eliminazione della playlist';
case 'playlists.errorLoading':
return 'Errore durante il caricamento delle playlist';
case 'playlists.errorAdding':
return 'Errore durante l\'aggiunta alla playlist';
case 'playlists.errorReordering':
return 'Errore durante il riordino dell\'elemento della playlist';
case 'playlists.errorRemoving':
return 'Errore durante la rimozione dalla playlist';
case 'playlists.playlist':
return 'Playlist';
case 'collections.title':
return 'Raccolte';
case 'collections.collection':
return 'Raccolta';
case 'collections.empty':
return 'La raccolta è vuota';
case 'collections.noItems':
return 'Nessun elemento in questa raccolta';
case 'collections.unknownLibrarySection':
return 'Impossibile eliminare: sezione libreria sconosciuta';
case 'collections.deleteCollection':
return 'Elimina raccolta';
case 'collections.deleteConfirm':
return ({required Object title}) =>
'Sei sicuro di voler eliminare "${title}"? Questa azione non può essere annullata.';
case 'collections.deleted':
return 'Raccolta eliminata';
case 'collections.deleteFailed':
return 'Impossibile eliminare la raccolta';
case 'collections.deleteFailedWithError':
return ({required Object error}) =>
'Impossibile eliminare la raccolta: ${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) =>
'Impossibile caricare gli elementi della raccolta: ${error}';
case 'collections.addTo':
return 'Aggiungi alla raccolta';
case 'collections.selectCollection':
return 'Seleziona raccolta';
case 'collections.createNewCollection':
return 'Crea nuova raccolta';
case 'collections.collectionName':
return 'Nome raccolta';
case 'collections.enterCollectionName':
return 'Inserisci nome raccolta';
case 'collections.addedToCollection':
return 'Aggiunto alla raccolta';
case 'collections.errorAddingToCollection':
return 'Errore nell\'aggiunta alla raccolta';
case 'collections.created':
return 'Raccolta creata';
case 'collections.removeFromCollection':
return 'Rimuovi dalla raccolta';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) =>
'Rimuovere "${title}" da questa raccolta?';
case 'collections.removedFromCollection':
return 'Rimosso dalla raccolta';
case 'collections.removeFromCollectionFailed':
return 'Impossibile rimuovere dalla raccolta';
case 'collections.removeFromCollectionError':
return ({required Object error}) =>
'Errore durante la rimozione dalla raccolta: ${error}';
default:
return null;
}
}
}
extension on _StringsNl {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return 'Laden...';
case 'auth.signInWithPlex':
return 'Inloggen met Plex';
case 'auth.showQRCode':
return 'Toon QR-code';
case 'auth.cancel':
return 'Annuleren';
case 'auth.authenticate':
return 'Authenticeren';
case 'auth.retry':
return 'Opnieuw proberen';
case 'auth.debugEnterToken':
return 'Debug: Voer Plex Token in';
case 'auth.plexTokenLabel':
return 'Plex Authenticatietoken';
case 'auth.plexTokenHint':
return 'Voer je Plex.tv token in';
case 'auth.authenticationTimeout':
return 'Authenticatie verlopen. Probeer opnieuw.';
case 'auth.scanQRCodeInstruction':
return 'Scan deze QR-code met een apparaat dat is ingelogd op Plex om te authenticeren.';
case 'auth.waitingForAuth':
return 'Wachten op authenticatie...\nVoltooi het inloggen in je browser.';
case 'common.cancel':
return 'Annuleren';
case 'common.save':
return 'Opslaan';
case 'common.close':
return 'Sluiten';
case 'common.clear':
return 'Wissen';
case 'common.reset':
return 'Resetten';
case 'common.later':
return 'Later';
case 'common.submit':
return 'Verzenden';
case 'common.confirm':
return 'Bevestigen';
case 'common.retry':
return 'Opnieuw proberen';
case 'common.playNow':
return 'Nu afspelen';
case 'common.logout':
return 'Uitloggen';
case 'common.online':
return 'Online';
case 'common.offline':
return 'Offline';
case 'common.owned':
return 'Eigendom';
case 'common.shared':
return 'Gedeeld';
case 'common.current':
return 'HUIDIG';
case 'common.unknown':
return 'Onbekend';
case 'common.refresh':
return 'Vernieuwen';
case 'common.yes':
return 'Ja';
case 'common.no':
return 'Nee';
case 'common.server':
return 'Server';
case 'common.delete':
return 'Verwijderen';
case 'common.shuffle':
return 'Willekeurig';
case 'common.addTo':
return 'Toevoegen aan...';
case 'screens.licenses':
return 'Licenties';
case 'screens.selectServer':
return 'Selecteer server';
case 'screens.switchProfile':
return 'Wissel van profiel';
case 'screens.subtitleStyling':
return 'Ondertitel opmaak';
case 'screens.search':
return 'Zoeken';
case 'screens.logs':
return 'Logbestanden';
case 'update.available':
return 'Update beschikbaar';
case 'update.versionAvailable':
return ({required Object version}) =>
'Versie ${version} is beschikbaar';
case 'update.currentVersion':
return ({required Object version}) => 'Huidig: ${version}';
case 'update.skipVersion':
return 'Deze versie overslaan';
case 'update.viewRelease':
return 'Bekijk release';
case 'update.latestVersion':
return 'Je hebt de nieuwste versie';
case 'update.checkFailed':
return 'Kon niet controleren op updates';
case 'settings.title':
return 'Instellingen';
case 'settings.language':
return 'Taal';
case 'settings.theme':
return 'Thema';
case 'settings.appearance':
return 'Uiterlijk';
case 'settings.videoPlayback':
return 'Video afspelen';
case 'settings.shufflePlay':
return 'Willekeurig afspelen';
case 'settings.advanced':
return 'Geavanceerd';
case 'settings.useSeasonPostersDescription':
return 'Toon seizoenposter in plaats van serieposter voor afleveringen';
case 'settings.showHeroSectionDescription':
return 'Toon uitgelichte inhoud carrousel op startscherm';
case 'settings.secondsLabel':
return 'Seconden';
case 'settings.minutesLabel':
return 'Minuten';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'Voer duur in (${min}-${max})';
case 'settings.systemTheme':
return 'Systeem';
case 'settings.systemThemeDescription':
return 'Volg systeeminstellingen';
case 'settings.lightTheme':
return 'Licht';
case 'settings.darkTheme':
return 'Donker';
case 'settings.libraryDensity':
return 'Bibliotheek dichtheid';
case 'settings.compact':
return 'Compact';
case 'settings.compactDescription':
return 'Kleinere kaarten, meer items zichtbaar';
case 'settings.normal':
return 'Normaal';
case 'settings.normalDescription':
return 'Standaard grootte';
case 'settings.comfortable':
return 'Comfortabel';
case 'settings.comfortableDescription':
return 'Grotere kaarten, minder items zichtbaar';
case 'settings.viewMode':
return 'Weergavemodus';
case 'settings.gridView':
return 'Raster';
case 'settings.gridViewDescription':
return 'Items weergeven in een rasterindeling';
case 'settings.listView':
return 'Lijst';
case 'settings.listViewDescription':
return 'Items weergeven in een lijstindeling';
case 'settings.useSeasonPosters':
return 'Gebruik seizoenposters';
case 'settings.showHeroSection':
return 'Toon hoofdsectie';
case 'settings.hardwareDecoding':
return 'Hardware decodering';
case 'settings.hardwareDecodingDescription':
return 'Gebruik hardware versnelling indien beschikbaar';
case 'settings.bufferSize':
return 'Buffer grootte';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return 'Ondertitel opmaak';
case 'settings.subtitleStylingDescription':
return 'Pas ondertitel uiterlijk aan';
case 'settings.smallSkipDuration':
return 'Korte skip duur';
case 'settings.largeSkipDuration':
return 'Lange skip duur';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} seconden';
case 'settings.defaultSleepTimer':
return 'Standaard slaap timer';
case 'settings.minutesUnit':
return ({required Object minutes}) => 'bij ${minutes} minuten';
case 'settings.rememberTrackSelections':
return 'Onthoud track selecties per serie/film';
case 'settings.rememberTrackSelectionsDescription':
return 'Bewaar automatisch audio- en ondertiteltaalvoorkeuren wanneer je tracks wijzigt tijdens afspelen';
case 'settings.unwatchedOnly':
return 'Alleen ongekeken';
case 'settings.unwatchedOnlyDescription':
return 'Alleen ongekeken afleveringen opnemen in willekeurige wachtrij';
case 'settings.shuffleOrderNavigation':
return 'Willekeurige volgorde navigatie';
case 'settings.shuffleOrderNavigationDescription':
return 'Volgende/vorige knoppen volgen willekeurige volgorde';
case 'settings.loopShuffleQueue':
return 'Herhaal willekeurige wachtrij';
case 'settings.loopShuffleQueueDescription':
return 'Start wachtrij opnieuw bij het einde';
case 'settings.videoPlayerControls':
return 'Videospeler bediening';
case 'settings.keyboardShortcuts':
return 'Toetsenbord sneltoetsen';
case 'settings.keyboardShortcutsDescription':
return 'Pas toetsenbord sneltoetsen aan';
case 'settings.debugLogging':
return 'Debug logging';
case 'settings.debugLoggingDescription':
return 'Schakel gedetailleerde logging in voor probleemoplossing';
case 'settings.viewLogs':
return 'Bekijk logs';
case 'settings.viewLogsDescription':
return 'Bekijk applicatie logs';
case 'settings.clearCache':
return 'Cache wissen';
case 'settings.clearCacheDescription':
return 'Dit wist alle gecachte afbeeldingen en gegevens. De app kan langer duren om inhoud te laden na het wissen van de cache.';
case 'settings.clearCacheSuccess':
return 'Cache succesvol gewist';
case 'settings.resetSettings':
return 'Instellingen resetten';
case 'settings.resetSettingsDescription':
return 'Dit reset alle instellingen naar hun standaard waarden. Deze actie kan niet ongedaan gemaakt worden.';
case 'settings.resetSettingsSuccess':
return 'Instellingen succesvol gereset';
case 'settings.shortcutsReset':
return 'Sneltoetsen gereset naar standaard';
case 'settings.about':
return 'Over';
case 'settings.aboutDescription':
return 'App informatie en licenties';
case 'settings.updates':
return 'Updates';
case 'settings.updateAvailable':
return 'Update beschikbaar';
case 'settings.checkForUpdates':
return 'Controleer op updates';
case 'settings.validationErrorEnterNumber':
return 'Voer een geldig nummer in';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) =>
'Sneltoets al toegewezen aan ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) =>
'Sneltoets bijgewerkt voor ${action}';
case 'settings.autoSkip':
return 'Automatisch Overslaan';
case 'settings.autoSkipIntro':
return 'Intro Automatisch Overslaan';
case 'settings.autoSkipIntroDescription':
return 'Intro-markeringen na enkele seconden automatisch overslaan';
case 'settings.autoSkipCredits':
return 'Credits Automatisch Overslaan';
case 'settings.autoSkipCreditsDescription':
return 'Credits automatisch overslaan en volgende aflevering afspelen';
case 'settings.autoSkipDelay':
return 'Vertraging Automatisch Overslaan';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) =>
'${seconds} seconden wachten voor automatisch overslaan';
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';
case 'pinEntry.showPin':
return 'Toon PIN';
case 'pinEntry.hidePin':
return 'Verberg PIN';
case 'fileInfo.title':
return 'Bestand info';
case 'fileInfo.video':
return 'Video';
case 'fileInfo.audio':
return 'Audio';
case 'fileInfo.file':
return 'Bestand';
case 'fileInfo.advanced':
return 'Geavanceerd';
case 'fileInfo.codec':
return 'Codec';
case 'fileInfo.resolution':
return 'Resolutie';
case 'fileInfo.bitrate':
return 'Bitrate';
case 'fileInfo.frameRate':
return 'Frame rate';
case 'fileInfo.aspectRatio':
return 'Beeldverhouding';
case 'fileInfo.profile':
return 'Profiel';
case 'fileInfo.bitDepth':
return 'Bit diepte';
case 'fileInfo.colorSpace':
return 'Kleurruimte';
case 'fileInfo.colorRange':
return 'Kleurbereik';
case 'fileInfo.colorPrimaries':
return 'Kleurprimaires';
case 'fileInfo.chromaSubsampling':
return 'Chroma subsampling';
case 'fileInfo.channels':
return 'Kanalen';
case 'fileInfo.path':
return 'Pad';
case 'fileInfo.size':
return 'Grootte';
case 'fileInfo.container':
return 'Container';
case 'fileInfo.duration':
return 'Duur';
case 'fileInfo.optimizedForStreaming':
return 'Geoptimaliseerd voor streaming';
case 'fileInfo.has64bitOffsets':
return '64-bit Offsets';
case 'mediaMenu.markAsWatched':
return 'Markeer als gekeken';
case 'mediaMenu.markAsUnwatched':
return 'Markeer als ongekeken';
case 'mediaMenu.removeFromContinueWatching':
return 'Verwijder uit Doorgaan met kijken';
case 'mediaMenu.goToSeries':
return 'Ga naar serie';
case 'mediaMenu.goToSeason':
return 'Ga naar seizoen';
case 'mediaMenu.shufflePlay':
return 'Willekeurig afspelen';
case 'mediaMenu.fileInfo':
return 'Bestand info';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, film';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, TV-serie';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return 'bekeken';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '${percent} procent bekeken';
case 'accessibility.mediaCardUnwatched':
return 'niet bekeken';
case 'accessibility.tapToPlay':
return 'Tik om af te spelen';
case 'tooltips.shufflePlay':
return 'Willekeurig afspelen';
case 'tooltips.markAsWatched':
return 'Markeer als gekeken';
case 'tooltips.markAsUnwatched':
return 'Markeer als ongekeken';
case 'videoControls.audioLabel':
return 'Audio';
case 'videoControls.subtitlesLabel':
return 'Ondertitels';
case 'videoControls.resetToZero':
return 'Reset naar 0ms';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} speelt later af';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} speelt eerder af';
case 'videoControls.noOffset':
return 'Geen offset';
case 'videoControls.letterbox':
return 'Letterbox';
case 'videoControls.fillScreen':
return 'Vul scherm';
case 'videoControls.stretch':
return 'Uitrekken';
case 'videoControls.lockRotation':
return 'Vergrendel rotatie';
case 'videoControls.unlockRotation':
return 'Ontgrendel rotatie';
case 'videoControls.sleepTimer':
return 'Slaaptimer';
case 'videoControls.timerActive':
return 'Timer actief';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) =>
'Afspelen wordt gepauzeerd over ${duration}';
case 'videoControls.sleepTimerCompleted':
return 'Slaaptimer voltooid - afspelen gepauzeerd';
case 'videoControls.playButton':
return 'Afspelen';
case 'videoControls.pauseButton':
return 'Pauzeren';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) =>
'Terugspoelen ${seconds} seconden';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) =>
'Vooruitspoelen ${seconds} seconden';
case 'videoControls.previousButton':
return 'Vorige aflevering';
case 'videoControls.nextButton':
return 'Volgende aflevering';
case 'videoControls.previousChapterButton':
return 'Vorig hoofdstuk';
case 'videoControls.nextChapterButton':
return 'Volgend hoofdstuk';
case 'videoControls.volumeButton':
return 'Volume';
case 'videoControls.muteButton':
return 'Dempen';
case 'videoControls.unmuteButton':
return 'Dempen opheffen';
case 'videoControls.settingsButton':
return 'Video-instellingen';
case 'videoControls.audioTrackButton':
return 'Audiosporen';
case 'videoControls.subtitlesButton':
return 'Ondertitels';
case 'videoControls.chaptersButton':
return 'Hoofdstukken';
case 'videoControls.versionsButton':
return 'Videoversies';
case 'videoControls.aspectRatioButton':
return 'Beeldverhouding';
case 'videoControls.fullscreenButton':
return 'Volledig scherm activeren';
case 'videoControls.exitFullscreenButton':
return 'Volledig scherm verlaten';
case 'videoControls.rotationLockButton':
return 'Rotatievergrendeling';
case 'videoControls.timelineSlider':
return 'Videotijdlijn';
case 'videoControls.volumeSlider':
return 'Volumeniveau';
case 'videoControls.backButton':
return 'Terug';
case 'userStatus.admin':
return 'Beheerder';
case 'userStatus.restricted':
return 'Beperkt';
case 'userStatus.protected':
return 'Beschermd';
case 'userStatus.current':
return 'HUIDIG';
case 'messages.markedAsWatched':
return 'Gemarkeerd als gekeken';
case 'messages.markedAsUnwatched':
return 'Gemarkeerd als ongekeken';
case 'messages.removedFromContinueWatching':
return 'Verwijderd uit Doorgaan met kijken';
case 'messages.errorLoading':
return ({required Object error}) => 'Fout: ${error}';
case 'messages.fileInfoNotAvailable':
return 'Bestand informatie niet beschikbaar';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) =>
'Fout bij laden bestand info: ${error}';
case 'messages.errorLoadingSeries':
return 'Fout bij laden serie';
case 'messages.errorLoadingSeason':
return 'Fout bij laden seizoen';
case 'messages.musicNotSupported':
return 'Muziek afspelen wordt nog niet ondersteund';
case 'messages.logsCleared':
return 'Logs gewist';
case 'messages.logsCopied':
return 'Logs gekopieerd naar klembord';
case 'messages.noLogsAvailable':
return 'Geen logs beschikbaar';
case 'messages.libraryScanning':
return ({required Object title}) => 'Scannen "${title}"...';
case 'messages.libraryScanStarted':
return ({required Object title}) =>
'Bibliotheek scan gestart voor "${title}"';
case 'messages.libraryScanFailed':
return ({required Object error}) =>
'Kon bibliotheek niet scannen: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) =>
'Metadata vernieuwen voor "${title}"...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) =>
'Metadata vernieuwen gestart voor "${title}"';
case 'messages.metadataRefreshFailed':
return ({required Object error}) =>
'Kon metadata niet vernieuwen: ${error}';
case 'messages.noPlexToken':
return 'Geen Plex token gevonden. Log opnieuw in.';
case 'messages.logoutConfirm':
return 'Weet je zeker dat je wilt uitloggen?';
case 'messages.noSeasonsFound':
return 'Geen seizoenen gevonden';
case 'messages.noEpisodesFound':
return 'Geen afleveringen gevonden in eerste seizoen';
case 'messages.noEpisodesFoundGeneral':
return 'Geen afleveringen gevonden';
case 'messages.noResultsFound':
return 'Geen resultaten gevonden';
case 'messages.sleepTimerSet':
return ({required Object label}) =>
'Slaap timer ingesteld voor ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) =>
'Kon niet wisselen naar ${displayName}';
case 'messages.noItemsAvailable':
return 'Geen items beschikbaar';
case 'messages.failedToCreatePlayQueue':
return 'Kan afspeelwachtrij niet maken';
case 'messages.failedToCreatePlayQueueNoItems':
return 'Kan afspeelwachtrij niet maken - geen items';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'Afspelen van ${action} mislukt: ${error}';
case 'profile.noUsersAvailable':
return 'Geen gebruikers beschikbaar';
case 'subtitlingStyling.stylingOptions':
return 'Opmaak opties';
case 'subtitlingStyling.fontSize':
return 'Lettergrootte';
case 'subtitlingStyling.textColor':
return 'Tekstkleur';
case 'subtitlingStyling.borderSize':
return 'Rand grootte';
case 'subtitlingStyling.borderColor':
return 'Randkleur';
case 'subtitlingStyling.backgroundOpacity':
return 'Achtergrond transparantie';
case 'subtitlingStyling.backgroundColor':
return 'Achtergrondkleur';
case 'dialog.confirmAction':
return 'Bevestig actie';
case 'dialog.areYouSure':
return 'Weet je zeker dat je deze actie wilt uitvoeren?';
case 'dialog.cancel':
return 'Annuleren';
case 'dialog.playNow':
return 'Nu afspelen';
case 'discover.title':
return 'Ontdekken';
case 'discover.switchProfile':
return 'Wissel van profiel';
case 'discover.switchServer':
return 'Wissel van server';
case 'discover.logout':
return 'Uitloggen';
case 'discover.noContentAvailable':
return 'Geen inhoud beschikbaar';
case 'discover.addMediaToLibraries':
return 'Voeg wat media toe aan je bibliotheken';
case 'discover.continueWatching':
return 'Verder kijken';
case 'discover.recentlyAdded':
return 'Recent toegevoegd';
case 'discover.play':
return 'Afspelen';
case 'discover.resume':
return 'Hervatten';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'Speel S${season}, E${episode}';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'Hervat S${season}, E${episode}';
case 'discover.pause':
return 'Pauzeren';
case 'discover.overview':
return 'Overzicht';
case 'discover.cast':
return 'Acteurs';
case 'discover.seasons':
return 'Seizoenen';
case 'discover.studio':
return 'Studio';
case 'discover.rating':
return 'Leeftijd';
case 'discover.watched':
return 'Bekeken';
case 'discover.episodeCount':
return ({required Object count}) => '${count} afleveringen';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'${watched}/${total} gekeken';
case 'discover.movie':
return 'Film';
case 'discover.tvShow':
return 'TV Serie';
case 'discover.minutesLeft':
return ({required Object minutes}) => '${minutes} min over';
case 'errors.searchFailed':
return ({required Object error}) => 'Zoeken mislukt: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) =>
'Verbinding time-out tijdens laden ${context}';
case 'errors.connectionFailed':
return 'Kan geen verbinding maken met Plex server';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'Kon ${context} niet laden: ${error}';
case 'errors.noClientAvailable':
return 'Geen client beschikbaar';
case 'errors.authenticationFailed':
return ({required Object error}) => 'Authenticatie mislukt: ${error}';
case 'errors.couldNotLaunchUrl':
return 'Kon auth URL niet openen';
case 'errors.pleaseEnterToken':
return 'Voer een token in';
case 'errors.invalidToken':
return 'Ongeldig token';
case 'errors.failedToVerifyToken':
return ({required Object error}) =>
'Kon token niet verifiëren: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) =>
'Kon niet wisselen naar ${displayName}';
case 'errors.connectionFailedGeneric':
return 'Verbinding mislukt';
case 'libraries.title':
return 'Bibliotheken';
case 'libraries.scanLibraryFiles':
return 'Scan bibliotheek bestanden';
case 'libraries.scanLibrary':
return 'Scan bibliotheek';
case 'libraries.analyze':
return 'Analyseren';
case 'libraries.analyzeLibrary':
return 'Analyseer bibliotheek';
case 'libraries.refreshMetadata':
return 'Vernieuw metadata';
case 'libraries.emptyTrash':
return 'Prullenbak legen';
case 'libraries.emptyingTrash':
return ({required Object title}) =>
'Prullenbak legen voor "${title}"...';
case 'libraries.trashEmptied':
return ({required Object title}) =>
'Prullenbak geleegd voor "${title}"';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) =>
'Kon prullenbak niet legen: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => 'Analyseren "${title}"...';
case 'libraries.analysisStarted':
return ({required Object title}) => 'Analyse gestart voor "${title}"';
case 'libraries.failedToAnalyze':
return ({required Object error}) =>
'Kon bibliotheek niet analyseren: ${error}';
case 'libraries.noLibrariesFound':
return 'Geen bibliotheken gevonden';
case 'libraries.thisLibraryIsEmpty':
return 'Deze bibliotheek is leeg';
case 'libraries.all':
return 'Alles';
case 'libraries.clearAll':
return 'Alles wissen';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) =>
'Weet je zeker dat je "${title}" wilt scannen?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) =>
'Weet je zeker dat je "${title}" wilt analyseren?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) =>
'Weet je zeker dat je metadata wilt vernieuwen voor "${title}"?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) =>
'Weet je zeker dat je de prullenbak wilt legen voor "${title}"?';
case 'libraries.manageLibraries':
return 'Beheer bibliotheken';
case 'libraries.sort':
return 'Sorteren';
case 'libraries.sortBy':
return 'Sorteer op';
case 'libraries.filters':
return 'Filters';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) =>
'Bibliotheek laden... (${count} items geladen)';
case 'libraries.confirmActionMessage':
return 'Weet je zeker dat je deze actie wilt uitvoeren?';
case 'libraries.showLibrary':
return 'Toon bibliotheek';
case 'libraries.hideLibrary':
return 'Verberg bibliotheek';
case 'libraries.libraryOptions':
return 'Bibliotheek opties';
case 'libraries.content':
return 'bibliotheekinhoud';
case 'libraries.selectLibrary':
return 'Bibliotheek kiezen';
case 'libraries.filtersWithCount':
return ({required Object count}) => 'Filters (${count})';
case 'libraries.noRecommendations':
return 'Geen aanbevelingen beschikbaar';
case 'libraries.noCollections':
return 'Geen collecties in deze bibliotheek';
case 'libraries.noFoldersFound':
return 'Geen mappen gevonden';
case 'libraries.folders':
return 'mappen';
case 'libraries.tabs.recommended':
return 'Aanbevolen';
case 'libraries.tabs.browse':
return 'Bladeren';
case 'libraries.tabs.collections':
return 'Collecties';
case 'libraries.tabs.playlists':
return 'Afspeellijsten';
case 'libraries.groupings.all':
return 'Alles';
case 'libraries.groupings.movies':
return 'Films';
case 'libraries.groupings.shows':
return 'Series';
case 'libraries.groupings.seasons':
return 'Seizoenen';
case 'libraries.groupings.episodes':
return 'Afleveringen';
case 'libraries.groupings.folders':
return 'Mappen';
case 'about.title':
return 'Over';
case 'about.openSourceLicenses':
return 'Open Source licenties';
case 'about.versionLabel':
return ({required Object version}) => 'Versie ${version}';
case 'about.appDescription':
return 'Een mooie Plex client voor Flutter';
case 'about.viewLicensesDescription':
return 'Bekijk licenties van third-party bibliotheken';
case 'serverSelection.connectingToServer':
return 'Verbinden met server...';
case 'serverSelection.connectingToAllServers':
return 'Verbinden met alle servers...';
case 'serverSelection.connectToAllServers':
return 'Verbind met alle servers';
case 'serverSelection.allServerConnectionsFailed':
return 'Kon niet verbinden met servers. Controleer je netwerk en probeer opnieuw.';
case 'serverSelection.foundServers':
return ({required Object count}) => '${count} server(s) gevonden';
case 'serverSelection.orSelectIndividually':
return 'Of selecteer een server individueel:';
case 'serverSelection.serverDebugCopied':
return 'Server debug gegevens gekopieerd naar klembord';
case 'serverSelection.copyDebugData':
return 'Kopieer debug gegevens';
case 'serverSelection.noServersFound':
return 'Geen servers gevonden';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'${count} server(s) gevonden met verkeerde data. Geen geldige servers beschikbaar.';
case 'serverSelection.incompleteServerInfo':
return 'Sommige servers hebben incomplete informatie en zijn overgeslagen. Controleer je Plex.tv account.';
case 'serverSelection.incompleteConnectionInfo':
return 'Server verbinding informatie is incompleet. Probeer opnieuw.';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) =>
'Server informatie is verkeerd geformatteerd: ${message}';
case 'serverSelection.networkConnectionFailed':
return 'Netwerkverbinding mislukt. Controleer je internetverbinding en probeer opnieuw.';
case 'serverSelection.authenticationFailed':
return 'Authenticatie mislukt. Log opnieuw in.';
case 'serverSelection.plexServiceUnavailable':
return 'Plex service niet beschikbaar. Probeer later opnieuw.';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) => 'Kon servers niet laden: ${error}';
case 'hubDetail.title':
return 'Titel';
case 'hubDetail.releaseYear':
return 'Uitgavejaar';
case 'hubDetail.dateAdded':
return 'Datum toegevoegd';
case 'hubDetail.rating':
return 'Beoordeling';
case 'hubDetail.noItemsFound':
return 'Geen items gevonden';
case 'logs.title':
return 'Logbestanden';
case 'logs.clearLogs':
return 'Wis logs';
case 'logs.copyLogs':
return 'Kopieer logs';
case 'logs.exportLogs':
return 'Exporteer logs';
case 'logs.noLogsToShow':
return 'Geen logs om te tonen';
case 'logs.error':
return 'Fout:';
case 'logs.stackTrace':
return 'Stacktracering:';
case 'licenses.relatedPackages':
return 'Gerelateerde pakketten';
case 'licenses.license':
return 'Licentie';
case 'licenses.licenseNumber':
return ({required Object number}) => 'Licentie ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} licenties';
case 'navigation.home':
return 'Thuis';
case 'navigation.search':
return 'Zoeken';
case 'navigation.libraries':
return 'Bibliotheken';
case 'navigation.settings':
return 'Instellingen';
case 'playlists.title':
return 'Afspeellijsten';
case 'playlists.noPlaylists':
return 'Geen afspeellijsten gevonden';
case 'playlists.create':
return 'Afspeellijst maken';
case 'playlists.newPlaylist':
return 'Nieuwe afspeellijst';
case 'playlists.playlistName':
return 'Naam afspeellijst';
case 'playlists.enterPlaylistName':
return 'Voer naam afspeellijst in';
case 'playlists.edit':
return 'Afspeellijst bewerken';
case 'playlists.delete':
return 'Afspeellijst verwijderen';
case 'playlists.addTo':
return 'Toevoegen aan afspeellijst';
case 'playlists.addItems':
return 'Items toevoegen';
case 'playlists.removeItem':
return 'Verwijderen uit afspeellijst';
case 'playlists.clearPlaylist':
return 'Afspeellijst wissen';
case 'playlists.playAll':
return 'Alles afspelen';
case 'playlists.shuffle':
return 'Willekeurig';
case 'playlists.smartPlaylist':
return 'Slimme afspeellijst';
case 'playlists.regularPlaylist':
return 'Normale afspeellijst';
case 'playlists.itemCount':
return ({required Object count}) => '${count} items';
case 'playlists.oneItem':
return '1 item';
case 'playlists.emptyPlaylist':
return 'Deze afspeellijst is leeg';
case 'playlists.deleteConfirm':
return 'Afspeellijst verwijderen?';
case 'playlists.deleteMessage':
return ({required Object name}) =>
'Weet je zeker dat je "${name}" wilt verwijderen?';
case 'playlists.created':
return 'Afspeellijst gemaakt';
case 'playlists.updated':
return 'Afspeellijst bijgewerkt';
case 'playlists.deleted':
return 'Afspeellijst verwijderd';
case 'playlists.itemAdded':
return 'Toegevoegd aan afspeellijst';
case 'playlists.itemRemoved':
return 'Verwijderd uit afspeellijst';
case 'playlists.selectPlaylist':
return 'Selecteer afspeellijst';
case 'playlists.createNewPlaylist':
return 'Nieuwe afspeellijst maken';
case 'playlists.errorCreating':
return 'Fout bij maken afspeellijst';
case 'playlists.errorDeleting':
return 'Fout bij verwijderen afspeellijst';
case 'playlists.errorLoading':
return 'Fout bij laden afspeellijsten';
case 'playlists.errorAdding':
return 'Fout bij toevoegen aan afspeellijst';
case 'playlists.errorReordering':
return 'Fout bij herschikken van afspeellijstitem';
case 'playlists.errorRemoving':
return 'Fout bij verwijderen uit afspeellijst';
case 'playlists.playlist':
return 'Afspeellijst';
case 'collections.title':
return 'Collecties';
case 'collections.collection':
return 'Collectie';
case 'collections.empty':
return 'Collectie is leeg';
case 'collections.noItems':
return 'Geen items in deze collectie';
case 'collections.unknownLibrarySection':
return 'Kan niet verwijderen: onbekende bibliotheeksectie';
case 'collections.deleteCollection':
return 'Collectie verwijderen';
case 'collections.deleteConfirm':
return ({required Object title}) =>
'Weet je zeker dat je "${title}" wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.';
case 'collections.deleted':
return 'Collectie verwijderd';
case 'collections.deleteFailed':
return 'Collectie verwijderen mislukt';
case 'collections.deleteFailedWithError':
return ({required Object error}) =>
'Collectie verwijderen mislukt: ${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) =>
'Collectie-items laden mislukt: ${error}';
case 'collections.addTo':
return 'Toevoegen aan collectie';
case 'collections.selectCollection':
return 'Selecteer collectie';
case 'collections.createNewCollection':
return 'Nieuwe collectie maken';
case 'collections.collectionName':
return 'Collectienaam';
case 'collections.enterCollectionName':
return 'Voer collectienaam in';
case 'collections.addedToCollection':
return 'Toegevoegd aan collectie';
case 'collections.errorAddingToCollection':
return 'Fout bij toevoegen aan collectie';
case 'collections.created':
return 'Collectie gemaakt';
case 'collections.removeFromCollection':
return 'Verwijderen uit collectie';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) =>
'"${title}" uit deze collectie verwijderen?';
case 'collections.removedFromCollection':
return 'Uit collectie verwijderd';
case 'collections.removeFromCollectionFailed':
return 'Verwijderen uit collectie mislukt';
case 'collections.removeFromCollectionError':
return ({required Object error}) =>
'Fout bij verwijderen uit collectie: ${error}';
default:
return null;
}
}
}
extension on _StringsSv {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return 'Laddar...';
case 'auth.signInWithPlex':
return 'Logga in med Plex';
case 'auth.showQRCode':
return 'Visa QR-kod';
case 'auth.cancel':
return 'Avbryt';
case 'auth.authenticate':
return 'Autentisera';
case 'auth.retry':
return 'Försök igen';
case 'auth.debugEnterToken':
return 'Debug: Ange Plex-token';
case 'auth.plexTokenLabel':
return 'Plex-autentiseringstoken';
case 'auth.plexTokenHint':
return 'Ange din Plex.tv-token';
case 'auth.authenticationTimeout':
return 'Autentisering tog för lång tid. Försök igen.';
case 'auth.scanQRCodeInstruction':
return 'Skanna denna QR-kod med en enhet inloggad på Plex för att autentisera.';
case 'auth.waitingForAuth':
return 'Väntar på autentisering...\nVänligen slutför inloggning i din webbläsare.';
case 'common.cancel':
return 'Avbryt';
case 'common.save':
return 'Spara';
case 'common.close':
return 'Stäng';
case 'common.clear':
return 'Rensa';
case 'common.reset':
return 'Återställ';
case 'common.later':
return 'Senare';
case 'common.submit':
return 'Skicka';
case 'common.confirm':
return 'Bekräfta';
case 'common.retry':
return 'Försök igen';
case 'common.playNow':
return 'Spela nu';
case 'common.logout':
return 'Logga ut';
case 'common.online':
return 'Online';
case 'common.offline':
return 'Offline';
case 'common.owned':
return 'Egen';
case 'common.shared':
return 'Delad';
case 'common.current':
return 'NUVARANDE';
case 'common.unknown':
return 'Okänd';
case 'common.refresh':
return 'Uppdatera';
case 'common.yes':
return 'Ja';
case 'common.no':
return 'Nej';
case 'common.server':
return 'Server';
case 'common.delete':
return 'Ta bort';
case 'common.shuffle':
return 'Blanda';
case 'common.addTo':
return 'Lägg till i...';
case 'screens.licenses':
return 'Licenser';
case 'screens.selectServer':
return 'Välj server';
case 'screens.switchProfile':
return 'Byt profil';
case 'screens.subtitleStyling':
return 'Undertext-styling';
case 'screens.search':
return 'Sök';
case 'screens.logs':
return 'Loggar';
case 'update.available':
return 'Uppdatering tillgänglig';
case 'update.versionAvailable':
return ({required Object version}) =>
'Version ${version} är tillgänglig';
case 'update.currentVersion':
return ({required Object version}) => 'Nuvarande: ${version}';
case 'update.skipVersion':
return 'Hoppa över denna version';
case 'update.viewRelease':
return 'Visa release';
case 'update.latestVersion':
return 'Du har den senaste versionen';
case 'update.checkFailed':
return 'Misslyckades att kontrollera uppdateringar';
case 'settings.title':
return 'Inställningar';
case 'settings.language':
return 'Språk';
case 'settings.theme':
return 'Tema';
case 'settings.appearance':
return 'Utseende';
case 'settings.videoPlayback':
return 'Videouppspelning';
case 'settings.shufflePlay':
return 'Blanda uppspelning';
case 'settings.advanced':
return 'Avancerat';
case 'settings.useSeasonPostersDescription':
return 'Visa säsongsaffisch istället för serieaffisch för avsnitt';
case 'settings.showHeroSectionDescription':
return 'Visa utvalda innehållskarusell på startsidan';
case 'settings.secondsLabel':
return 'Sekunder';
case 'settings.minutesLabel':
return 'Minuter';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'Ange tid (${min}-${max})';
case 'settings.systemTheme':
return 'System';
case 'settings.systemThemeDescription':
return 'Följ systeminställningar';
case 'settings.lightTheme':
return 'Ljust';
case 'settings.darkTheme':
return 'Mörkt';
case 'settings.libraryDensity':
return 'Biblioteksdensitet';
case 'settings.compact':
return 'Kompakt';
case 'settings.compactDescription':
return 'Mindre kort, fler objekt synliga';
case 'settings.normal':
return 'Normal';
case 'settings.normalDescription':
return 'Standardstorlek';
case 'settings.comfortable':
return 'Bekväm';
case 'settings.comfortableDescription':
return 'Större kort, färre objekt synliga';
case 'settings.viewMode':
return 'Visningsläge';
case 'settings.gridView':
return 'Rutnät';
case 'settings.gridViewDescription':
return 'Visa objekt i rutnätslayout';
case 'settings.listView':
return 'Lista';
case 'settings.listViewDescription':
return 'Visa objekt i listlayout';
case 'settings.useSeasonPosters':
return 'Använd säsongsaffischer';
case 'settings.showHeroSection':
return 'Visa hjältesektion';
case 'settings.hardwareDecoding':
return 'Hårdvaruavkodning';
case 'settings.hardwareDecodingDescription':
return 'Använd hårdvaruacceleration när tillgängligt';
case 'settings.bufferSize':
return 'Bufferstorlek';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return 'Undertext-styling';
case 'settings.subtitleStylingDescription':
return 'Anpassa undertextutseende';
case 'settings.smallSkipDuration':
return 'Kort hoppvaraktighet';
case 'settings.largeSkipDuration':
return 'Lång hoppvaraktighet';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} sekunder';
case 'settings.defaultSleepTimer':
return 'Standard sovtimer';
case 'settings.minutesUnit':
return ({required Object minutes}) => '${minutes} minuter';
case 'settings.rememberTrackSelections':
return 'Kom ihåg spårval per serie/film';
case 'settings.rememberTrackSelectionsDescription':
return 'Spara automatiskt ljud- och undertextspråkpreferenser när du ändrar spår under uppspelning';
case 'settings.unwatchedOnly':
return 'Endast osedda';
case 'settings.unwatchedOnlyDescription':
return 'Inkludera endast osedda avsnitt i blandningskön';
case 'settings.shuffleOrderNavigation':
return 'Blandningsordning-navigation';
case 'settings.shuffleOrderNavigationDescription':
return 'Nästa/föregående knappar följer blandad ordning';
case 'settings.loopShuffleQueue':
return 'Loopa blandningskö';
case 'settings.loopShuffleQueueDescription':
return 'Starta om kö när slutet nås';
case 'settings.videoPlayerControls':
return 'Videospelar-kontroller';
case 'settings.keyboardShortcuts':
return 'Tangentbordsgenvägar';
case 'settings.keyboardShortcutsDescription':
return 'Anpassa tangentbordsgenvägar';
case 'settings.debugLogging':
return 'Felsökningsloggning';
case 'settings.debugLoggingDescription':
return 'Aktivera detaljerad loggning för felsökning';
case 'settings.viewLogs':
return 'Visa loggar';
case 'settings.viewLogsDescription':
return 'Visa applikationsloggar';
case 'settings.clearCache':
return 'Rensa cache';
case 'settings.clearCacheDescription':
return 'Detta rensar alla cachade bilder och data. Appen kan ta längre tid att ladda innehåll efter cache-rensning.';
case 'settings.clearCacheSuccess':
return 'Cache rensad framgångsrikt';
case 'settings.resetSettings':
return 'Återställ inställningar';
case 'settings.resetSettingsDescription':
return 'Detta återställer alla inställningar till standardvärden. Denna åtgärd kan inte ångras.';
case 'settings.resetSettingsSuccess':
return 'Inställningar återställda framgångsrikt';
case 'settings.shortcutsReset':
return 'Genvägar återställda till standard';
case 'settings.about':
return 'Om';
case 'settings.aboutDescription':
return 'Appinformation och licenser';
case 'settings.updates':
return 'Uppdateringar';
case 'settings.updateAvailable':
return 'Uppdatering tillgänglig';
case 'settings.checkForUpdates':
return 'Kontrollera uppdateringar';
case 'settings.validationErrorEnterNumber':
return 'Vänligen ange ett giltigt nummer';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) => 'Genväg redan tilldelad ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) => 'Genväg uppdaterad för ${action}';
case 'settings.autoSkip':
return 'Auto Hoppa Över';
case 'settings.autoSkipIntro':
return 'Hoppa Över Intro Automatiskt';
case 'settings.autoSkipIntroDescription':
return 'Hoppa automatiskt över intro-markörer efter några sekunder';
case 'settings.autoSkipCredits':
return 'Hoppa Över Credits Automatiskt';
case 'settings.autoSkipCreditsDescription':
return 'Hoppa automatiskt över credits och spela nästa avsnitt';
case 'settings.autoSkipDelay':
return 'Fördröjning Auto Hoppa Över';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) =>
'Vänta ${seconds} sekunder innan automatisk överhoppning';
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';
case 'pinEntry.showPin':
return 'Visa PIN';
case 'pinEntry.hidePin':
return 'Dölj PIN';
case 'fileInfo.title':
return 'Filinformation';
case 'fileInfo.video':
return 'Video';
case 'fileInfo.audio':
return 'Ljud';
case 'fileInfo.file':
return 'Fil';
case 'fileInfo.advanced':
return 'Avancerat';
case 'fileInfo.codec':
return 'Kodek';
case 'fileInfo.resolution':
return 'Upplösning';
case 'fileInfo.bitrate':
return 'Bithastighet';
case 'fileInfo.frameRate':
return 'Bildfrekvens';
case 'fileInfo.aspectRatio':
return 'Bildförhållande';
case 'fileInfo.profile':
return 'Profil';
case 'fileInfo.bitDepth':
return 'Bitdjup';
case 'fileInfo.colorSpace':
return 'Färgrymd';
case 'fileInfo.colorRange':
return 'Färgområde';
case 'fileInfo.colorPrimaries':
return 'Färggrunder';
case 'fileInfo.chromaSubsampling':
return 'Kroma-undersampling';
case 'fileInfo.channels':
return 'Kanaler';
case 'fileInfo.path':
return 'Sökväg';
case 'fileInfo.size':
return 'Storlek';
case 'fileInfo.container':
return 'Container';
case 'fileInfo.duration':
return 'Varaktighet';
case 'fileInfo.optimizedForStreaming':
return 'Optimerad för streaming';
case 'fileInfo.has64bitOffsets':
return '64-bit offset';
case 'mediaMenu.markAsWatched':
return 'Markera som sedd';
case 'mediaMenu.markAsUnwatched':
return 'Markera som osedd';
case 'mediaMenu.removeFromContinueWatching':
return 'Ta bort från Fortsätt titta';
case 'mediaMenu.goToSeries':
return 'Gå till serie';
case 'mediaMenu.goToSeason':
return 'Gå till säsong';
case 'mediaMenu.shufflePlay':
return 'Blanda uppspelning';
case 'mediaMenu.fileInfo':
return 'Filinformation';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, film';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, TV-serie';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return 'sedd';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '${percent} procent sedd';
case 'accessibility.mediaCardUnwatched':
return 'osedd';
case 'accessibility.tapToPlay':
return 'Tryck för att spela';
case 'tooltips.shufflePlay':
return 'Blanda uppspelning';
case 'tooltips.markAsWatched':
return 'Markera som sedd';
case 'tooltips.markAsUnwatched':
return 'Markera som osedd';
case 'videoControls.audioLabel':
return 'Ljud';
case 'videoControls.subtitlesLabel':
return 'Undertexter';
case 'videoControls.resetToZero':
return 'Återställ till 0ms';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} spelas senare';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} spelas tidigare';
case 'videoControls.noOffset':
return 'Ingen offset';
case 'videoControls.letterbox':
return 'Letterbox';
case 'videoControls.fillScreen':
return 'Fyll skärm';
case 'videoControls.stretch':
return 'Sträck';
case 'videoControls.lockRotation':
return 'Lås rotation';
case 'videoControls.unlockRotation':
return 'Lås upp rotation';
case 'videoControls.sleepTimer':
return 'Sovtimer';
case 'videoControls.timerActive':
return 'Timer aktiv';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) =>
'Uppspelningen pausas om ${duration}';
case 'videoControls.sleepTimerCompleted':
return 'Sovtimer slutförd - uppspelning pausad';
case 'videoControls.playButton':
return 'Spela';
case 'videoControls.pauseButton':
return 'Pausa';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) => 'Spola bakåt ${seconds} sekunder';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) =>
'Spola framåt ${seconds} sekunder';
case 'videoControls.previousButton':
return 'Föregående avsnitt';
case 'videoControls.nextButton':
return 'Nästa avsnitt';
case 'videoControls.previousChapterButton':
return 'Föregående kapitel';
case 'videoControls.nextChapterButton':
return 'Nästa kapitel';
case 'videoControls.volumeButton':
return 'Volym';
case 'videoControls.muteButton':
return 'Tysta';
case 'videoControls.unmuteButton':
return 'Slå på ljud';
case 'videoControls.settingsButton':
return 'Videoinställningar';
case 'videoControls.audioTrackButton':
return 'Ljudspår';
case 'videoControls.subtitlesButton':
return 'Undertexter';
case 'videoControls.chaptersButton':
return 'Kapitel';
case 'videoControls.versionsButton':
return 'Videoversioner';
case 'videoControls.aspectRatioButton':
return 'Bildförhållande';
case 'videoControls.fullscreenButton':
return 'Aktivera helskärm';
case 'videoControls.exitFullscreenButton':
return 'Avsluta helskärm';
case 'videoControls.rotationLockButton':
return 'Rotationslås';
case 'videoControls.timelineSlider':
return 'Videotidslinje';
case 'videoControls.volumeSlider':
return 'Volymnivå';
case 'videoControls.backButton':
return 'Tillbaka';
case 'userStatus.admin':
return 'Admin';
case 'userStatus.restricted':
return 'Begränsad';
case 'userStatus.protected':
return 'Skyddad';
case 'userStatus.current':
return 'NUVARANDE';
case 'messages.markedAsWatched':
return 'Markerad som sedd';
case 'messages.markedAsUnwatched':
return 'Markerad som osedd';
case 'messages.removedFromContinueWatching':
return 'Borttagen från Fortsätt titta';
case 'messages.errorLoading':
return ({required Object error}) => 'Fel: ${error}';
case 'messages.fileInfoNotAvailable':
return 'Filinformation inte tillgänglig';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) =>
'Fel vid laddning av filinformation: ${error}';
case 'messages.errorLoadingSeries':
return 'Fel vid laddning av serie';
case 'messages.errorLoadingSeason':
return 'Fel vid laddning av säsong';
case 'messages.musicNotSupported':
return 'Musikuppspelning stöds inte ännu';
case 'messages.logsCleared':
return 'Loggar rensade';
case 'messages.logsCopied':
return 'Loggar kopierade till urklipp';
case 'messages.noLogsAvailable':
return 'Inga loggar tillgängliga';
case 'messages.libraryScanning':
return ({required Object title}) => 'Skannar "${title}"...';
case 'messages.libraryScanStarted':
return ({required Object title}) =>
'Biblioteksskanning startad för "${title}"';
case 'messages.libraryScanFailed':
return ({required Object error}) =>
'Misslyckades att skanna bibliotek: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) =>
'Uppdaterar metadata för "${title}"...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) =>
'Metadata-uppdatering startad för "${title}"';
case 'messages.metadataRefreshFailed':
return ({required Object error}) =>
'Misslyckades att uppdatera metadata: ${error}';
case 'messages.noPlexToken':
return 'Ingen Plex-token hittad. Vänligen logga in igen.';
case 'messages.logoutConfirm':
return 'Är du säker på att du vill logga ut?';
case 'messages.noSeasonsFound':
return 'Inga säsonger hittades';
case 'messages.noEpisodesFound':
return 'Inga avsnitt hittades i första säsongen';
case 'messages.noEpisodesFoundGeneral':
return 'Inga avsnitt hittades';
case 'messages.noResultsFound':
return 'Inga resultat hittades';
case 'messages.sleepTimerSet':
return ({required Object label}) => 'Sovtimer inställd för ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) =>
'Misslyckades att byta till ${displayName}';
case 'messages.noItemsAvailable':
return 'Inga objekt tillgängliga';
case 'messages.failedToCreatePlayQueue':
return 'Det gick inte att skapa uppspelningskö';
case 'messages.failedToCreatePlayQueueNoItems':
return 'Det gick inte att skapa uppspelningskö inga objekt';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'Kunde inte ${action}: ${error}';
case 'profile.noUsersAvailable':
return 'Inga användare tillgängliga';
case 'subtitlingStyling.stylingOptions':
return 'Stilalternativ';
case 'subtitlingStyling.fontSize':
return 'Teckenstorlek';
case 'subtitlingStyling.textColor':
return 'Textfärg';
case 'subtitlingStyling.borderSize':
return 'Kantstorlek';
case 'subtitlingStyling.borderColor':
return 'Kantfärg';
case 'subtitlingStyling.backgroundOpacity':
return 'Bakgrundsopacitet';
case 'subtitlingStyling.backgroundColor':
return 'Bakgrundsfärg';
case 'dialog.confirmAction':
return 'Bekräfta åtgärd';
case 'dialog.areYouSure':
return 'Är du säker på att du vill utföra denna åtgärd?';
case 'dialog.cancel':
return 'Avbryt';
case 'dialog.playNow':
return 'Spela nu';
case 'discover.title':
return 'Upptäck';
case 'discover.switchProfile':
return 'Byt profil';
case 'discover.switchServer':
return 'Byt server';
case 'discover.logout':
return 'Logga ut';
case 'discover.noContentAvailable':
return 'Inget innehåll tillgängligt';
case 'discover.addMediaToLibraries':
return 'Lägg till media till dina bibliotek';
case 'discover.continueWatching':
return 'Fortsätt titta';
case 'discover.recentlyAdded':
return 'Nyligen tillagda';
case 'discover.play':
return 'Spela';
case 'discover.resume':
return 'Återuppta';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'Spela S${season}, E${episode}';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'Återuppta S${season}, E${episode}';
case 'discover.pause':
return 'Pausa';
case 'discover.overview':
return 'Översikt';
case 'discover.cast':
return 'Rollbesättning';
case 'discover.seasons':
return 'Säsonger';
case 'discover.studio':
return 'Studio';
case 'discover.rating':
return 'Åldersgräns';
case 'discover.watched':
return 'Tittad';
case 'discover.episodeCount':
return ({required Object count}) => '${count} avsnitt';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'${watched}/${total} sedda';
case 'discover.movie':
return 'Film';
case 'discover.tvShow':
return 'TV-serie';
case 'discover.minutesLeft':
return ({required Object minutes}) => '${minutes} min kvar';
case 'errors.searchFailed':
return ({required Object error}) => 'Sökning misslyckades: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) =>
'Anslutnings-timeout vid laddning ${context}';
case 'errors.connectionFailed':
return 'Kan inte ansluta till Plex-server';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'Misslyckades att ladda ${context}: ${error}';
case 'errors.noClientAvailable':
return 'Ingen klient tillgänglig';
case 'errors.authenticationFailed':
return ({required Object error}) =>
'Autentisering misslyckades: ${error}';
case 'errors.couldNotLaunchUrl':
return 'Kunde inte öppna autentiserings-URL';
case 'errors.pleaseEnterToken':
return 'Vänligen ange en token';
case 'errors.invalidToken':
return 'Ogiltig token';
case 'errors.failedToVerifyToken':
return ({required Object error}) =>
'Misslyckades att verifiera token: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) =>
'Misslyckades att byta till ${displayName}';
case 'errors.connectionFailedGeneric':
return 'Anslutning misslyckades';
case 'libraries.title':
return 'Bibliotek';
case 'libraries.scanLibraryFiles':
return 'Skanna biblioteksfiler';
case 'libraries.scanLibrary':
return 'Skanna bibliotek';
case 'libraries.analyze':
return 'Analysera';
case 'libraries.analyzeLibrary':
return 'Analysera bibliotek';
case 'libraries.refreshMetadata':
return 'Uppdatera metadata';
case 'libraries.emptyTrash':
return 'Töm papperskorg';
case 'libraries.emptyingTrash':
return ({required Object title}) =>
'Tömmer papperskorg för "${title}"...';
case 'libraries.trashEmptied':
return ({required Object title}) => 'Papperskorg tömd för "${title}"';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) =>
'Misslyckades att tömma papperskorg: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => 'Analyserar "${title}"...';
case 'libraries.analysisStarted':
return ({required Object title}) => 'Analys startad för "${title}"';
case 'libraries.failedToAnalyze':
return ({required Object error}) =>
'Misslyckades att analysera bibliotek: ${error}';
case 'libraries.noLibrariesFound':
return 'Inga bibliotek hittades';
case 'libraries.thisLibraryIsEmpty':
return 'Detta bibliotek är tomt';
case 'libraries.all':
return 'Alla';
case 'libraries.clearAll':
return 'Rensa alla';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) =>
'Är du säker på att du vill skanna "${title}"?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) =>
'Är du säker på att du vill analysera "${title}"?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) =>
'Är du säker på att du vill uppdatera metadata för "${title}"?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) =>
'Är du säker på att du vill tömma papperskorgen för "${title}"?';
case 'libraries.manageLibraries':
return 'Hantera bibliotek';
case 'libraries.sort':
return 'Sortera';
case 'libraries.sortBy':
return 'Sortera efter';
case 'libraries.filters':
return 'Filter';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) =>
'Laddar bibliotek... (${count} objekt laddade)';
case 'libraries.confirmActionMessage':
return 'Är du säker på att du vill utföra denna åtgärd?';
case 'libraries.showLibrary':
return 'Visa bibliotek';
case 'libraries.hideLibrary':
return 'Dölj bibliotek';
case 'libraries.libraryOptions':
return 'Biblioteksalternativ';
case 'libraries.content':
return 'bibliotekets innehåll';
case 'libraries.selectLibrary':
return 'Välj bibliotek';
case 'libraries.filtersWithCount':
return ({required Object count}) => 'Filter (${count})';
case 'libraries.noRecommendations':
return 'Inga rekommendationer tillgängliga';
case 'libraries.noCollections':
return 'Inga samlingar i det här biblioteket';
case 'libraries.noFoldersFound':
return 'Inga mappar hittades';
case 'libraries.folders':
return 'mappar';
case 'libraries.tabs.recommended':
return 'Rekommenderat';
case 'libraries.tabs.browse':
return 'Bläddra';
case 'libraries.tabs.collections':
return 'Samlingar';
case 'libraries.tabs.playlists':
return 'Spellistor';
case 'libraries.groupings.all':
return 'Alla';
case 'libraries.groupings.movies':
return 'Filmer';
case 'libraries.groupings.shows':
return 'Serier';
case 'libraries.groupings.seasons':
return 'Säsonger';
case 'libraries.groupings.episodes':
return 'Avsnitt';
case 'libraries.groupings.folders':
return 'Mappar';
case 'about.title':
return 'Om';
case 'about.openSourceLicenses':
return 'Öppen källkod-licenser';
case 'about.versionLabel':
return ({required Object version}) => 'Version ${version}';
case 'about.appDescription':
return 'En vacker Plex-klient för Flutter';
case 'about.viewLicensesDescription':
return 'Visa licenser för tredjepartsbibliotek';
case 'serverSelection.connectingToServer':
return 'Ansluter till server...';
case 'serverSelection.connectingToAllServers':
return 'Ansluter till alla servrar...';
case 'serverSelection.connectToAllServers':
return 'Anslut till alla servrar';
case 'serverSelection.allServerConnectionsFailed':
return 'Misslyckades att ansluta till servrar. Kontrollera ditt nätverk och försök igen.';
case 'serverSelection.foundServers':
return ({required Object count}) => 'Hittade ${count} server(ar)';
case 'serverSelection.orSelectIndividually':
return 'Eller välj en server individuellt:';
case 'serverSelection.serverDebugCopied':
return 'Server-felsökningsdata kopierad till urklipp';
case 'serverSelection.copyDebugData':
return 'Kopiera felsökningsdata';
case 'serverSelection.noServersFound':
return 'Inga servrar hittades';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'Hittade ${count} server(ar) med felformaterad data. Inga giltiga servrar tillgängliga.';
case 'serverSelection.incompleteServerInfo':
return 'Vissa servrar har ofullständig information och hoppades över. Vänligen kontrollera ditt Plex.tv-konto.';
case 'serverSelection.incompleteConnectionInfo':
return 'Server-anslutningsinformation är ofullständig. Försök igen.';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) =>
'Serverinformation är felformaterad: ${message}';
case 'serverSelection.networkConnectionFailed':
return 'Nätverksanslutning misslyckades. Kontrollera din internetanslutning och försök igen.';
case 'serverSelection.authenticationFailed':
return 'Autentisering misslyckades. Logga in igen.';
case 'serverSelection.plexServiceUnavailable':
return 'Plex-tjänst otillgänglig. Försök igen senare.';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) =>
'Misslyckades att ladda servrar: ${error}';
case 'hubDetail.title':
return 'Titel';
case 'hubDetail.releaseYear':
return 'Utgivningsår';
case 'hubDetail.dateAdded':
return 'Datum tillagd';
case 'hubDetail.rating':
return 'Betyg';
case 'hubDetail.noItemsFound':
return 'Inga objekt hittades';
case 'logs.title':
return 'Loggar';
case 'logs.clearLogs':
return 'Rensa loggar';
case 'logs.copyLogs':
return 'Kopiera loggar';
case 'logs.exportLogs':
return 'Exportera loggar';
case 'logs.noLogsToShow':
return 'Inga loggar att visa';
case 'logs.error':
return 'Fel:';
case 'logs.stackTrace':
return 'Stack trace:';
case 'licenses.relatedPackages':
return 'Relaterade paket';
case 'licenses.license':
return 'Licens';
case 'licenses.licenseNumber':
return ({required Object number}) => 'Licens ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} licenser';
case 'navigation.home':
return 'Hem';
case 'navigation.search':
return 'Sök';
case 'navigation.libraries':
return 'Bibliotek';
case 'navigation.settings':
return 'Inställningar';
case 'playlists.title':
return 'Spellistor';
case 'playlists.noPlaylists':
return 'Inga spellistor hittades';
case 'playlists.create':
return 'Skapa spellista';
case 'playlists.newPlaylist':
return 'Ny spellista';
case 'playlists.playlistName':
return 'Spellistans namn';
case 'playlists.enterPlaylistName':
return 'Ange spellistans namn';
case 'playlists.edit':
return 'Redigera spellista';
case 'playlists.delete':
return 'Ta bort spellista';
case 'playlists.addTo':
return 'Lägg till i spellista';
case 'playlists.addItems':
return 'Lägg till objekt';
case 'playlists.removeItem':
return 'Ta bort från spellista';
case 'playlists.clearPlaylist':
return 'Rensa spellista';
case 'playlists.playAll':
return 'Spela alla';
case 'playlists.shuffle':
return 'Blanda';
case 'playlists.smartPlaylist':
return 'Smart spellista';
case 'playlists.regularPlaylist':
return 'Vanlig spellista';
case 'playlists.itemCount':
return ({required Object count}) => '${count} objekt';
case 'playlists.oneItem':
return '1 objekt';
case 'playlists.emptyPlaylist':
return 'Denna spellista är tom';
case 'playlists.deleteConfirm':
return 'Ta bort spellista?';
case 'playlists.deleteMessage':
return ({required Object name}) =>
'Är du säker på att du vill ta bort "${name}"?';
case 'playlists.created':
return 'Spellista skapad';
case 'playlists.updated':
return 'Spellista uppdaterad';
case 'playlists.deleted':
return 'Spellista borttagen';
case 'playlists.itemAdded':
return 'Tillagd i spellista';
case 'playlists.itemRemoved':
return 'Borttagen från spellista';
case 'playlists.selectPlaylist':
return 'Välj spellista';
case 'playlists.createNewPlaylist':
return 'Skapa ny spellista';
case 'playlists.errorCreating':
return 'Det gick inte att skapa spellista';
case 'playlists.errorDeleting':
return 'Det gick inte att ta bort spellista';
case 'playlists.errorLoading':
return 'Det gick inte att ladda spellistor';
case 'playlists.errorAdding':
return 'Det gick inte att lägga till i spellista';
case 'playlists.errorReordering':
return 'Det gick inte att omordna spellisteobjekt';
case 'playlists.errorRemoving':
return 'Det gick inte att ta bort från spellista';
case 'playlists.playlist':
return 'Spellista';
case 'collections.title':
return 'Samlingar';
case 'collections.collection':
return 'Samling';
case 'collections.empty':
return 'Samlingen är tom';
case 'collections.noItems':
return 'Inga objekt i den här samlingen';
case 'collections.unknownLibrarySection':
return 'Kan inte ta bort: okänd bibliotekssektion';
case 'collections.deleteCollection':
return 'Ta bort samling';
case 'collections.deleteConfirm':
return ({required Object title}) =>
'Är du säker på att du vill ta bort "${title}"? Detta går inte att ångra.';
case 'collections.deleted':
return 'Samling borttagen';
case 'collections.deleteFailed':
return 'Det gick inte att ta bort samlingen';
case 'collections.deleteFailedWithError':
return ({required Object error}) =>
'Det gick inte att ta bort samlingen: ${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) =>
'Det gick inte att läsa in samlingsobjekt: ${error}';
case 'collections.addTo':
return 'Lägg till i samling';
case 'collections.selectCollection':
return 'Välj samling';
case 'collections.createNewCollection':
return 'Skapa ny samling';
case 'collections.collectionName':
return 'Samlingsnamn';
case 'collections.enterCollectionName':
return 'Ange samlingsnamn';
case 'collections.addedToCollection':
return 'Tillagd i samling';
case 'collections.errorAddingToCollection':
return 'Fel vid tillägg i samling';
case 'collections.created':
return 'Samling skapad';
case 'collections.removeFromCollection':
return 'Ta bort från samling';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) =>
'Ta bort "${title}" från denna samling?';
case 'collections.removedFromCollection':
return 'Borttagen från samling';
case 'collections.removeFromCollectionFailed':
return 'Misslyckades med att ta bort från samling';
case 'collections.removeFromCollectionError':
return ({required Object error}) =>
'Fel vid borttagning från samling: ${error}';
default:
return null;
}
}
}
extension on _StringsZh {
dynamic _flatMapFunction(String path) {
switch (path) {
case 'app.title':
return 'Plezy';
case 'app.loading':
return '加载中...';
case 'auth.signInWithPlex':
return '使用 Plex 登录';
case 'auth.showQRCode':
return '显示二维码';
case 'auth.cancel':
return '取消';
case 'auth.authenticate':
return '验证';
case 'auth.retry':
return '重试';
case 'auth.debugEnterToken':
return '调试:输入 Plex Token';
case 'auth.plexTokenLabel':
return 'Plex 授权令牌 (Auth Token)';
case 'auth.plexTokenHint':
return '输入你的 Plex.tv 令牌';
case 'auth.authenticationTimeout':
return '验证超时。请重试。';
case 'auth.scanQRCodeInstruction':
return '请使用已登录 Plex 的设备扫描此二维码进行验证。';
case 'auth.waitingForAuth':
return '等待验证中...\n请在你的浏览器中完成登录。';
case 'common.cancel':
return '取消';
case 'common.save':
return '保存';
case 'common.close':
return '关闭';
case 'common.clear':
return '清除';
case 'common.reset':
return '重置';
case 'common.later':
return '稍后';
case 'common.submit':
return '提交';
case 'common.confirm':
return '确认';
case 'common.retry':
return '重试';
case 'common.playNow':
return '立即播放';
case 'common.logout':
return '登出';
case 'common.online':
return '在线';
case 'common.offline':
return '离线';
case 'common.owned':
return '拥有';
case 'common.shared':
return '共享';
case 'common.current':
return '当前';
case 'common.unknown':
return '未知';
case 'common.refresh':
return '刷新';
case 'common.yes':
return '是';
case 'common.no':
return '否';
case 'common.server':
return '服务器';
case 'common.delete':
return '删除';
case 'common.shuffle':
return '随机播放';
case 'common.addTo':
return '添加到...';
case 'screens.licenses':
return '许可证';
case 'screens.selectServer':
return '选择服务器';
case 'screens.switchProfile':
return '切换配置文件';
case 'screens.subtitleStyling':
return '字幕样式';
case 'screens.search':
return '搜索';
case 'screens.logs':
return '日志';
case 'update.available':
return '有可用更新';
case 'update.versionAvailable':
return ({required Object version}) => '版本 ${version} 已发布';
case 'update.currentVersion':
return ({required Object version}) => '当前版本: ${version}';
case 'update.skipVersion':
return '跳过此版本';
case 'update.viewRelease':
return '查看发布详情';
case 'update.latestVersion':
return '已安装的版本是可用的最新版本';
case 'update.checkFailed':
return '无法检查更新';
case 'settings.title':
return '设置';
case 'settings.language':
return '语言';
case 'settings.theme':
return '主题';
case 'settings.appearance':
return '外观';
case 'settings.videoPlayback':
return '视频播放';
case 'settings.shufflePlay':
return '随机播放';
case 'settings.advanced':
return '高级';
case 'settings.useSeasonPostersDescription':
return '为剧集显示季海报而非剧集海报';
case 'settings.showHeroSectionDescription':
return '在主屏幕上显示精选内容轮播区';
case 'settings.secondsLabel':
return '秒';
case 'settings.minutesLabel':
return '分钟';
case 'settings.secondsShort':
return 's';
case 'settings.minutesShort':
return 'm';
case 'settings.durationHint':
return ({required Object min, required Object max}) =>
'输入时长 (${min}-${max})';
case 'settings.systemTheme':
return '系统';
case 'settings.systemThemeDescription':
return '跟随系统设置';
case 'settings.lightTheme':
return '浅色';
case 'settings.darkTheme':
return '深色';
case 'settings.libraryDensity':
return '媒体库密度';
case 'settings.compact':
return '紧凑';
case 'settings.compactDescription':
return '卡片更小,显示更多项目';
case 'settings.normal':
return '标准';
case 'settings.normalDescription':
return '默认尺寸';
case 'settings.comfortable':
return '舒适';
case 'settings.comfortableDescription':
return '卡片更大,显示更少项目';
case 'settings.viewMode':
return '视图模式';
case 'settings.gridView':
return '网格视图';
case 'settings.gridViewDescription':
return '以网格布局显示项目';
case 'settings.listView':
return '列表视图';
case 'settings.listViewDescription':
return '以列表布局显示项目';
case 'settings.useSeasonPosters':
return '使用季海报';
case 'settings.showHeroSection':
return '显示主要精选区';
case 'settings.hardwareDecoding':
return '硬件解码';
case 'settings.hardwareDecodingDescription':
return '如果可用,使用硬件加速';
case 'settings.bufferSize':
return '缓冲区大小';
case 'settings.bufferSizeMB':
return ({required Object size}) => '${size}MB';
case 'settings.subtitleStyling':
return '字幕样式';
case 'settings.subtitleStylingDescription':
return '调整字幕外观';
case 'settings.smallSkipDuration':
return '短跳过时长';
case 'settings.largeSkipDuration':
return '长跳过时长';
case 'settings.secondsUnit':
return ({required Object seconds}) => '${seconds} 秒';
case 'settings.defaultSleepTimer':
return '默认睡眠定时器';
case 'settings.minutesUnit':
return ({required Object minutes}) => '${minutes} 分钟';
case 'settings.rememberTrackSelections':
return '记住每个剧集/电影的音轨选择';
case 'settings.rememberTrackSelectionsDescription':
return '在播放过程中更改音轨时自动保存音频和字幕语言偏好';
case 'settings.unwatchedOnly':
return '仅未观看';
case 'settings.unwatchedOnlyDescription':
return '随机队列中仅包含未观看的剧集';
case 'settings.shuffleOrderNavigation':
return '随机顺序导航';
case 'settings.shuffleOrderNavigationDescription':
return '下一集/上一集按钮遵循随机播放顺序';
case 'settings.loopShuffleQueue':
return '循环随机队列';
case 'settings.loopShuffleQueueDescription':
return '在队列结束时重新开始';
case 'settings.videoPlayerControls':
return '视频播放器控制';
case 'settings.keyboardShortcuts':
return '键盘快捷键';
case 'settings.keyboardShortcutsDescription':
return '自定义键盘快捷键';
case 'settings.debugLogging':
return '调试日志';
case 'settings.debugLoggingDescription':
return '启用详细日志记录以便故障排除';
case 'settings.viewLogs':
return '查看日志';
case 'settings.viewLogsDescription':
return '查看应用程序日志';
case 'settings.clearCache':
return '清除缓存';
case 'settings.clearCacheDescription':
return '这将清除所有缓存的图片和数据。清除缓存后,应用程序加载内容可能会变慢。';
case 'settings.clearCacheSuccess':
return '缓存清除成功';
case 'settings.resetSettings':
return '重置设置';
case 'settings.resetSettingsDescription':
return '这会将所有设置重置为其默认值。此操作无法撤销。';
case 'settings.resetSettingsSuccess':
return '设置重置成功';
case 'settings.shortcutsReset':
return '快捷键已重置为默认值';
case 'settings.about':
return '关于';
case 'settings.aboutDescription':
return '应用程序信息和许可证';
case 'settings.updates':
return '更新';
case 'settings.updateAvailable':
return '有可用更新';
case 'settings.checkForUpdates':
return '检查更新';
case 'settings.validationErrorEnterNumber':
return '请输入一个有效的数字';
case 'settings.validationErrorDuration':
return ({
required Object min,
required Object max,
required Object unit,
}) => '时长必须介于 ${min}${max} ${unit} 之间';
case 'settings.shortcutAlreadyAssigned':
return ({required Object action}) => '快捷键已被分配给 ${action}';
case 'settings.shortcutUpdated':
return ({required Object action}) => '快捷键已为 ${action} 更新';
case 'settings.autoSkip':
return '自动跳过';
case 'settings.autoSkipIntro':
return '自动跳过片头';
case 'settings.autoSkipIntroDescription':
return '几秒钟后自动跳过片头标记';
case 'settings.autoSkipCredits':
return '自动跳过片尾';
case 'settings.autoSkipCreditsDescription':
return '自动跳过片尾并播放下一集';
case 'settings.autoSkipDelay':
return '自动跳过延迟';
case 'settings.autoSkipDelayDescription':
return ({required Object seconds}) => '自动跳过前等待 ${seconds} 秒';
case 'search.hint':
return '搜索电影、系列、音乐...';
case 'search.tryDifferentTerm':
return '尝试不同的搜索词';
case 'search.searchYourMedia':
return '搜索媒体';
case 'search.enterTitleActorOrKeyword':
return '输入标题、演员或关键词';
case 'hotkeys.setShortcutFor':
return ({required Object actionName}) => '为 ${actionName} 设置快捷键';
case 'hotkeys.clearShortcut':
return '清除快捷键';
case 'pinEntry.enterPin':
return '输入 PIN';
case 'pinEntry.showPin':
return '显示 PIN';
case 'pinEntry.hidePin':
return '隐藏 PIN';
case 'fileInfo.title':
return '文件信息';
case 'fileInfo.video':
return '视频';
case 'fileInfo.audio':
return '音频';
case 'fileInfo.file':
return '文件';
case 'fileInfo.advanced':
return '高级';
case 'fileInfo.codec':
return '编解码器';
case 'fileInfo.resolution':
return '分辨率';
case 'fileInfo.bitrate':
return '比特率';
case 'fileInfo.frameRate':
return '帧率';
case 'fileInfo.aspectRatio':
return '宽高比';
case 'fileInfo.profile':
return '配置文件';
case 'fileInfo.bitDepth':
return '位深度';
case 'fileInfo.colorSpace':
return '色彩空间';
case 'fileInfo.colorRange':
return '色彩范围';
case 'fileInfo.colorPrimaries':
return '颜色原色';
case 'fileInfo.chromaSubsampling':
return '色度子采样';
case 'fileInfo.channels':
return '声道';
case 'fileInfo.path':
return '路径';
case 'fileInfo.size':
return '大小';
case 'fileInfo.container':
return '容器';
case 'fileInfo.duration':
return '时长';
case 'fileInfo.optimizedForStreaming':
return '已优化用于流媒体';
case 'fileInfo.has64bitOffsets':
return '64位偏移量';
case 'mediaMenu.markAsWatched':
return '标记为已观看';
case 'mediaMenu.markAsUnwatched':
return '标记为未观看';
case 'mediaMenu.removeFromContinueWatching':
return '从继续观看中移除';
case 'mediaMenu.goToSeries':
return '转到系列';
case 'mediaMenu.goToSeason':
return '转到季';
case 'mediaMenu.shufflePlay':
return '随机播放';
case 'mediaMenu.fileInfo':
return '文件信息';
case 'accessibility.mediaCardMovie':
return ({required Object title}) => '${title}, 电影';
case 'accessibility.mediaCardShow':
return ({required Object title}) => '${title}, 电视剧';
case 'accessibility.mediaCardEpisode':
return ({required Object title, required Object episodeInfo}) =>
'${title}, ${episodeInfo}';
case 'accessibility.mediaCardSeason':
return ({required Object title, required Object seasonInfo}) =>
'${title}, ${seasonInfo}';
case 'accessibility.mediaCardWatched':
return '已观看';
case 'accessibility.mediaCardPartiallyWatched':
return ({required Object percent}) => '已观看 ${percent} 百分比';
case 'accessibility.mediaCardUnwatched':
return '未观看';
case 'accessibility.tapToPlay':
return '点击播放';
case 'tooltips.shufflePlay':
return '随机播放';
case 'tooltips.markAsWatched':
return '标记为已观看';
case 'tooltips.markAsUnwatched':
return '标记为未观看';
case 'videoControls.audioLabel':
return '音频';
case 'videoControls.subtitlesLabel':
return '字幕';
case 'videoControls.resetToZero':
return '重置为 0ms';
case 'videoControls.addTime':
return ({required Object amount, required Object unit}) =>
'+${amount}${unit}';
case 'videoControls.minusTime':
return ({required Object amount, required Object unit}) =>
'-${amount}${unit}';
case 'videoControls.playsLater':
return ({required Object label}) => '${label} 播放较晚';
case 'videoControls.playsEarlier':
return ({required Object label}) => '${label} 播放较早';
case 'videoControls.noOffset':
return '无偏移';
case 'videoControls.letterbox':
return '信箱模式(Letterbox';
case 'videoControls.fillScreen':
return '填充屏幕';
case 'videoControls.stretch':
return '拉伸';
case 'videoControls.lockRotation':
return '锁定旋转';
case 'videoControls.unlockRotation':
return '解锁旋转';
case 'videoControls.sleepTimer':
return '睡眠定时器';
case 'videoControls.timerActive':
return '定时器已激活';
case 'videoControls.playbackWillPauseIn':
return ({required Object duration}) => '播放将在 ${duration} 后暂停';
case 'videoControls.sleepTimerCompleted':
return '睡眠定时器已完成 - 播放已暂停';
case 'videoControls.playButton':
return '播放';
case 'videoControls.pauseButton':
return '暂停';
case 'videoControls.seekBackwardButton':
return ({required Object seconds}) => '后退 ${seconds} 秒';
case 'videoControls.seekForwardButton':
return ({required Object seconds}) => '前进 ${seconds} 秒';
case 'videoControls.previousButton':
return '上一集';
case 'videoControls.nextButton':
return '下一集';
case 'videoControls.previousChapterButton':
return '上一章节';
case 'videoControls.nextChapterButton':
return '下一章节';
case 'videoControls.volumeButton':
return '音量';
case 'videoControls.muteButton':
return '静音';
case 'videoControls.unmuteButton':
return '取消静音';
case 'videoControls.settingsButton':
return '视频设置';
case 'videoControls.audioTrackButton':
return '音轨';
case 'videoControls.subtitlesButton':
return '字幕';
case 'videoControls.chaptersButton':
return '章节';
case 'videoControls.versionsButton':
return '视频版本';
case 'videoControls.aspectRatioButton':
return '宽高比';
case 'videoControls.fullscreenButton':
return '进入全屏';
case 'videoControls.exitFullscreenButton':
return '退出全屏';
case 'videoControls.rotationLockButton':
return '旋转锁定';
case 'videoControls.timelineSlider':
return '视频时间轴';
case 'videoControls.volumeSlider':
return '音量调节';
case 'videoControls.backButton':
return '返回';
case 'userStatus.admin':
return '管理员';
case 'userStatus.restricted':
return '受限';
case 'userStatus.protected':
return '受保护';
case 'userStatus.current':
return '当前';
case 'messages.markedAsWatched':
return '已标记为已观看';
case 'messages.markedAsUnwatched':
return '已标记为未观看';
case 'messages.removedFromContinueWatching':
return '已从继续观看中移除';
case 'messages.errorLoading':
return ({required Object error}) => '错误: ${error}';
case 'messages.fileInfoNotAvailable':
return '文件信息不可用';
case 'messages.errorLoadingFileInfo':
return ({required Object error}) => '加载文件信息时出错: ${error}';
case 'messages.errorLoadingSeries':
return '加载系列时出错';
case 'messages.errorLoadingSeason':
return '加载季时出错';
case 'messages.musicNotSupported':
return '尚不支持播放音乐';
case 'messages.logsCleared':
return '日志已清除';
case 'messages.logsCopied':
return '日志已复制到剪贴板';
case 'messages.noLogsAvailable':
return '没有可用日志';
case 'messages.libraryScanning':
return ({required Object title}) => '正在扫描 “${title}”...';
case 'messages.libraryScanStarted':
return ({required Object title}) => '已开始扫描 “${title}” 媒体库';
case 'messages.libraryScanFailed':
return ({required Object error}) => '无法扫描媒体库: ${error}';
case 'messages.metadataRefreshing':
return ({required Object title}) => '正在刷新 “${title}” 的元数据...';
case 'messages.metadataRefreshStarted':
return ({required Object title}) => '已开始刷新 “${title}” 的元数据';
case 'messages.metadataRefreshFailed':
return ({required Object error}) => '无法刷新元数据: ${error}';
case 'messages.noPlexToken':
return '未找到 Plex 令牌。请重新登录。';
case 'messages.logoutConfirm':
return '你确定要登出吗?';
case 'messages.noSeasonsFound':
return '未找到季';
case 'messages.noEpisodesFound':
return '在第一季中未找到剧集';
case 'messages.noEpisodesFoundGeneral':
return '未找到剧集';
case 'messages.noResultsFound':
return '未找到结果';
case 'messages.sleepTimerSet':
return ({required Object label}) => '睡眠定时器已设置为 ${label}';
case 'messages.failedToSwitchProfile':
return ({required Object displayName}) => '无法切换到 ${displayName}';
case 'messages.noItemsAvailable':
return '没有可用的项目';
case 'messages.failedToCreatePlayQueue':
return '创建播放队列失败';
case 'messages.failedToCreatePlayQueueNoItems':
return '创建播放队列失败 - 没有项目';
case 'messages.failedPlayback':
return ({required Object action, required Object error}) =>
'无法${action}: ${error}';
case 'profile.noUsersAvailable':
return '没有可用用户';
case 'subtitlingStyling.stylingOptions':
return '样式选项';
case 'subtitlingStyling.fontSize':
return '字号';
case 'subtitlingStyling.textColor':
return '文本颜色';
case 'subtitlingStyling.borderSize':
return '边框大小';
case 'subtitlingStyling.borderColor':
return '边框颜色';
case 'subtitlingStyling.backgroundOpacity':
return '背景不透明度';
case 'subtitlingStyling.backgroundColor':
return '背景颜色';
case 'dialog.confirmAction':
return '确认操作';
case 'dialog.areYouSure':
return '确定要执行此操作吗?';
case 'dialog.cancel':
return '取消';
case 'dialog.playNow':
return '立即播放';
case 'discover.title':
return '发现';
case 'discover.switchProfile':
return '切换配置文件';
case 'discover.switchServer':
return '切换服务器';
case 'discover.logout':
return '登出';
case 'discover.noContentAvailable':
return '没有可用内容';
case 'discover.addMediaToLibraries':
return '请向你的媒体库添加一些媒体';
case 'discover.continueWatching':
return '继续观看';
case 'discover.recentlyAdded':
return '最近添加';
case 'discover.play':
return '播放';
case 'discover.resume':
return '继续';
case 'discover.playEpisode':
return ({required Object season, required Object episode}) =>
'播放 S${season}, E${episode}';
case 'discover.resumeEpisode':
return ({required Object season, required Object episode}) =>
'继续 S${season}, E${episode}';
case 'discover.pause':
return '暂停';
case 'discover.overview':
return '概述';
case 'discover.cast':
return '演员表';
case 'discover.seasons':
return '季数';
case 'discover.studio':
return '制作公司';
case 'discover.rating':
return '年龄分级';
case 'discover.watched':
return '已观看';
case 'discover.episodeCount':
return ({required Object count}) => '${count} 集';
case 'discover.watchedProgress':
return ({required Object watched, required Object total}) =>
'已观看 ${watched}/${total} 集';
case 'discover.movie':
return '电影';
case 'discover.tvShow':
return '电视剧';
case 'discover.minutesLeft':
return ({required Object minutes}) => '剩余 ${minutes} 分钟';
case 'errors.searchFailed':
return ({required Object error}) => '搜索失败: ${error}';
case 'errors.connectionTimeout':
return ({required Object context}) => '加载 ${context} 时连接超时';
case 'errors.connectionFailed':
return '无法连接到 Plex 服务器';
case 'errors.failedToLoad':
return ({required Object context, required Object error}) =>
'无法加载 ${context}: ${error}';
case 'errors.noClientAvailable':
return '没有可用客户端';
case 'errors.authenticationFailed':
return ({required Object error}) => '验证失败: ${error}';
case 'errors.couldNotLaunchUrl':
return '无法打开授权 URL';
case 'errors.pleaseEnterToken':
return '请输入一个令牌';
case 'errors.invalidToken':
return '令牌无效';
case 'errors.failedToVerifyToken':
return ({required Object error}) => '无法验证令牌: ${error}';
case 'errors.failedToSwitchProfile':
return ({required Object displayName}) => '无法切换到 ${displayName}';
case 'errors.connectionFailedGeneric':
return '连接失败';
case 'libraries.title':
return '媒体库';
case 'libraries.scanLibraryFiles':
return '扫描媒体库文件';
case 'libraries.scanLibrary':
return '扫描媒体库';
case 'libraries.analyze':
return '分析';
case 'libraries.analyzeLibrary':
return '分析媒体库';
case 'libraries.refreshMetadata':
return '刷新元数据';
case 'libraries.emptyTrash':
return '清空回收站';
case 'libraries.emptyingTrash':
return ({required Object title}) => '正在清空 “${title}” 的回收站...';
case 'libraries.trashEmptied':
return ({required Object title}) => '已清空 “${title}” 的回收站';
case 'libraries.failedToEmptyTrash':
return ({required Object error}) => '无法清空回收站: ${error}';
case 'libraries.analyzing':
return ({required Object title}) => '正在分析 “${title}”...';
case 'libraries.analysisStarted':
return ({required Object title}) => '已开始分析 “${title}”';
case 'libraries.failedToAnalyze':
return ({required Object error}) => '无法分析媒体库: ${error}';
case 'libraries.noLibrariesFound':
return '未找到媒体库';
case 'libraries.thisLibraryIsEmpty':
return '此媒体库为空';
case 'libraries.all':
return '全部';
case 'libraries.clearAll':
return '全部清除';
case 'libraries.scanLibraryConfirm':
return ({required Object title}) => '确定要扫描 “${title}” 吗?';
case 'libraries.analyzeLibraryConfirm':
return ({required Object title}) => '确定要分析 “${title}” 吗?';
case 'libraries.refreshMetadataConfirm':
return ({required Object title}) => '确定要刷新 “${title}” 的元数据吗?';
case 'libraries.emptyTrashConfirm':
return ({required Object title}) => '确定要清空 “${title}” 的回收站吗?';
case 'libraries.manageLibraries':
return '管理媒体库';
case 'libraries.sort':
return '排序';
case 'libraries.sortBy':
return '排序依据';
case 'libraries.filters':
return '筛选器';
case 'libraries.loadingLibraryWithCount':
return ({required Object count}) => '正在加载媒体库... (已加载 ${count} 个项目)';
case 'libraries.confirmActionMessage':
return '确定要执行此操作吗?';
case 'libraries.showLibrary':
return '显示媒体库';
case 'libraries.hideLibrary':
return '隐藏媒体库';
case 'libraries.libraryOptions':
return '媒体库选项';
case 'libraries.content':
return '媒体库内容';
case 'libraries.selectLibrary':
return '选择媒体库';
case 'libraries.filtersWithCount':
return ({required Object count}) => '筛选器(${count}';
case 'libraries.noRecommendations':
return '暂无推荐';
case 'libraries.noCollections':
return '此媒体库中没有合集';
case 'libraries.noFoldersFound':
return '未找到文件夹';
case 'libraries.folders':
return '文件夹';
case 'libraries.tabs.recommended':
return '推荐';
case 'libraries.tabs.browse':
return '浏览';
case 'libraries.tabs.collections':
return '合集';
case 'libraries.tabs.playlists':
return '播放列表';
case 'libraries.groupings.all':
return '全部';
case 'libraries.groupings.movies':
return '电影';
case 'libraries.groupings.shows':
return '剧集';
case 'libraries.groupings.seasons':
return '季';
case 'libraries.groupings.episodes':
return '集';
case 'libraries.groupings.folders':
return '文件夹';
case 'about.title':
return '关于';
case 'about.openSourceLicenses':
return '开源许可证';
case 'about.versionLabel':
return ({required Object version}) => '版本 ${version}';
case 'about.appDescription':
return '一款精美的 Flutter Plex 客户端';
case 'about.viewLicensesDescription':
return '查看第三方库的许可证';
case 'serverSelection.connectingToServer':
return '正在连接服务器...';
case 'serverSelection.connectingToAllServers':
return '正在连接所有服务器...';
case 'serverSelection.connectToAllServers':
return '连接所有服务器';
case 'serverSelection.allServerConnectionsFailed':
return '无法连接到任何服务器。请检查你的网络并重试。';
case 'serverSelection.foundServers':
return ({required Object count}) => '找到 ${count} 个服务器';
case 'serverSelection.orSelectIndividually':
return '或单独选择一个服务器:';
case 'serverSelection.serverDebugCopied':
return '服务器调试数据已复制到剪贴板';
case 'serverSelection.copyDebugData':
return '复制调试数据';
case 'serverSelection.noServersFound':
return '未找到服务器';
case 'serverSelection.malformedServerData':
return ({required Object count}) =>
'找到 ${count} 个数据格式错误的服务器。没有可用的有效服务器。';
case 'serverSelection.incompleteServerInfo':
return '某些服务器信息不完整,已被跳过。请检查你的 Plex.tv 账户。';
case 'serverSelection.incompleteConnectionInfo':
return '服务器连接信息不完整。请重试。';
case 'serverSelection.malformedServerInfo':
return ({required Object message}) => '服务器信息格式错误: ${message}';
case 'serverSelection.networkConnectionFailed':
return '网络连接失败。请检查你的网络连接并重试。';
case 'serverSelection.authenticationFailed':
return '验证失败。请重新登录。';
case 'serverSelection.plexServiceUnavailable':
return 'Plex 服务不可用。请稍后重试。';
case 'serverSelection.failedToLoadServers':
return ({required Object error}) => '无法加载服务器: ${error}';
case 'hubDetail.title':
return '标题';
case 'hubDetail.releaseYear':
return '发行年份';
case 'hubDetail.dateAdded':
return '添加日期';
case 'hubDetail.rating':
return '评分';
case 'hubDetail.noItemsFound':
return '未找到项目';
case 'logs.title':
return '日志';
case 'logs.clearLogs':
return '清除日志';
case 'logs.copyLogs':
return '复制日志';
case 'logs.exportLogs':
return '导出日志';
case 'logs.noLogsToShow':
return '没有可显示的日志';
case 'logs.error':
return '错误:';
case 'logs.stackTrace':
return '堆栈跟踪 (Stack Trace):';
case 'licenses.relatedPackages':
return '相关软件包';
case 'licenses.license':
return '许可证';
case 'licenses.licenseNumber':
return ({required Object number}) => '许可证 ${number}';
case 'licenses.licensesCount':
return ({required Object count}) => '${count} 个许可证';
case 'navigation.home':
return '主页';
case 'navigation.search':
return '搜索';
case 'navigation.libraries':
return '媒体库';
case 'navigation.settings':
return '设置';
case 'playlists.title':
return '播放列表';
case 'playlists.noPlaylists':
return '未找到播放列表';
case 'playlists.create':
return '创建播放列表';
case 'playlists.newPlaylist':
return '新播放列表';
case 'playlists.playlistName':
return '播放列表名称';
case 'playlists.enterPlaylistName':
return '输入播放列表名称';
case 'playlists.edit':
return '编辑播放列表';
case 'playlists.delete':
return '删除播放列表';
case 'playlists.addTo':
return '添加到播放列表';
case 'playlists.addItems':
return '添加项目';
case 'playlists.removeItem':
return '从播放列表中移除';
case 'playlists.clearPlaylist':
return '清空播放列表';
case 'playlists.playAll':
return '全部播放';
case 'playlists.shuffle':
return '随机播放';
case 'playlists.smartPlaylist':
return '智能播放列表';
case 'playlists.regularPlaylist':
return '普通播放列表';
case 'playlists.itemCount':
return ({required Object count}) => '${count} 个项目';
case 'playlists.oneItem':
return '1 个项目';
case 'playlists.emptyPlaylist':
return '此播放列表为空';
case 'playlists.deleteConfirm':
return '删除播放列表?';
case 'playlists.deleteMessage':
return ({required Object name}) => '确定要删除 "${name}" 吗?';
case 'playlists.created':
return '播放列表已创建';
case 'playlists.updated':
return '播放列表已更新';
case 'playlists.deleted':
return '播放列表已删除';
case 'playlists.itemAdded':
return '已添加到播放列表';
case 'playlists.itemRemoved':
return '已从播放列表中移除';
case 'playlists.selectPlaylist':
return '选择播放列表';
case 'playlists.createNewPlaylist':
return '创建新播放列表';
case 'playlists.errorCreating':
return '创建播放列表失败';
case 'playlists.errorDeleting':
return '删除播放列表失败';
case 'playlists.errorLoading':
return '加载播放列表失败';
case 'playlists.errorAdding':
return '添加到播放列表失败';
case 'playlists.errorReordering':
return '重新排序播放列表项目失败';
case 'playlists.errorRemoving':
return '从播放列表中移除失败';
case 'playlists.playlist':
return '播放列表';
case 'collections.title':
return '合集';
case 'collections.collection':
return '合集';
case 'collections.empty':
return '合集为空';
case 'collections.noItems':
return '此合集没有项目';
case 'collections.unknownLibrarySection':
return '无法删除:未知的媒体库分区';
case 'collections.deleteCollection':
return '删除合集';
case 'collections.deleteConfirm':
return ({required Object title}) => '确定要删除"${title}"吗?此操作无法撤销。';
case 'collections.deleted':
return '已删除合集';
case 'collections.deleteFailed':
return '删除合集失败';
case 'collections.deleteFailedWithError':
return ({required Object error}) => '删除合集失败:${error}';
case 'collections.failedToLoadItems':
return ({required Object error}) => '加载合集项目失败:${error}';
case 'collections.addTo':
return '添加到合集';
case 'collections.selectCollection':
return '选择合集';
case 'collections.createNewCollection':
return '创建新合集';
case 'collections.collectionName':
return '合集名称';
case 'collections.enterCollectionName':
return '输入合集名称';
case 'collections.addedToCollection':
return '已添加到合集';
case 'collections.errorAddingToCollection':
return '添加到合集失败';
case 'collections.created':
return '已创建合集';
case 'collections.removeFromCollection':
return '从合集移除';
case 'collections.removeFromCollectionConfirm':
return ({required Object title}) => '将“${title}”从此合集移除?';
case 'collections.removedFromCollection':
return '已从合集移除';
case 'collections.removeFromCollectionFailed':
return '从合集移除失败';
case 'collections.removeFromCollectionError':
return ({required Object error}) => '从合集移除时出错:${error}';
default:
return null;
}
}
}