6625 lines
244 KiB
Dart
6625 lines
244 KiB
Dart
///
|
||
/// Generated file. Do not edit.
|
||
///
|
||
// coverage:ignore-file
|
||
// ignore_for_file: type=lint, unused_import
|
||
// dart format off
|
||
|
||
part of 'strings.g.dart';
|
||
|
||
// Path: <root>
|
||
typedef TranslationsEn = Translations; // ignore: unused_element
|
||
class Translations with 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({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||
: assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
|
||
$meta = 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 $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => Translations(meta: meta ?? this.$meta);
|
||
|
||
// Translations
|
||
late final Translations$app$en app = Translations$app$en.internal(_root);
|
||
late final Translations$auth$en auth = Translations$auth$en.internal(_root);
|
||
late final Translations$common$en common = Translations$common$en.internal(_root);
|
||
late final Translations$screens$en screens = Translations$screens$en.internal(_root);
|
||
late final Translations$update$en update = Translations$update$en.internal(_root);
|
||
late final Translations$settings$en settings = Translations$settings$en.internal(_root);
|
||
late final Translations$search$en search = Translations$search$en.internal(_root);
|
||
late final Translations$hotkeys$en hotkeys = Translations$hotkeys$en.internal(_root);
|
||
late final Translations$fileInfo$en fileInfo = Translations$fileInfo$en.internal(_root);
|
||
late final Translations$mediaMenu$en mediaMenu = Translations$mediaMenu$en.internal(_root);
|
||
late final Translations$rateSheet$en rateSheet = Translations$rateSheet$en.internal(_root);
|
||
late final Translations$accessibility$en accessibility = Translations$accessibility$en.internal(_root);
|
||
late final Translations$tooltips$en tooltips = Translations$tooltips$en.internal(_root);
|
||
late final Translations$audioTracks$en audioTracks = Translations$audioTracks$en.internal(_root);
|
||
late final Translations$videoControls$en videoControls = Translations$videoControls$en.internal(_root);
|
||
late final Translations$messages$en messages = Translations$messages$en.internal(_root);
|
||
late final Translations$subtitlingStyling$en subtitlingStyling = Translations$subtitlingStyling$en.internal(_root);
|
||
late final Translations$mpvConfig$en mpvConfig = Translations$mpvConfig$en.internal(_root);
|
||
late final Translations$dialog$en dialog = Translations$dialog$en.internal(_root);
|
||
late final Translations$profiles$en profiles = Translations$profiles$en.internal(_root);
|
||
late final Translations$connections$en connections = Translations$connections$en.internal(_root);
|
||
late final Translations$discover$en discover = Translations$discover$en.internal(_root);
|
||
late final Translations$errors$en errors = Translations$errors$en.internal(_root);
|
||
late final Translations$libraries$en libraries = Translations$libraries$en.internal(_root);
|
||
late final Translations$about$en about = Translations$about$en.internal(_root);
|
||
late final Translations$serverSelection$en serverSelection = Translations$serverSelection$en.internal(_root);
|
||
late final Translations$hubDetail$en hubDetail = Translations$hubDetail$en.internal(_root);
|
||
late final Translations$logs$en logs = Translations$logs$en.internal(_root);
|
||
late final Translations$licenses$en licenses = Translations$licenses$en.internal(_root);
|
||
late final Translations$navigation$en navigation = Translations$navigation$en.internal(_root);
|
||
late final Translations$explore$en explore = Translations$explore$en.internal(_root);
|
||
late final Translations$liveTv$en liveTv = Translations$liveTv$en.internal(_root);
|
||
late final Translations$collections$en collections = Translations$collections$en.internal(_root);
|
||
late final Translations$playlists$en playlists = Translations$playlists$en.internal(_root);
|
||
late final Translations$music$en music = Translations$music$en.internal(_root);
|
||
late final Translations$watchTogether$en watchTogether = Translations$watchTogether$en.internal(_root);
|
||
late final Translations$downloads$en downloads = Translations$downloads$en.internal(_root);
|
||
late final Translations$shaders$en shaders = Translations$shaders$en.internal(_root);
|
||
late final Translations$companionRemote$en companionRemote = Translations$companionRemote$en.internal(_root);
|
||
late final Translations$videoSettings$en videoSettings = Translations$videoSettings$en.internal(_root);
|
||
late final Translations$performanceOverlay$en performanceOverlay = Translations$performanceOverlay$en.internal(_root);
|
||
late final Translations$externalPlayer$en externalPlayer = Translations$externalPlayer$en.internal(_root);
|
||
late final Translations$metadataEdit$en metadataEdit = Translations$metadataEdit$en.internal(_root);
|
||
late final Translations$matchScreen$en matchScreen = Translations$matchScreen$en.internal(_root);
|
||
late final Translations$serverTasks$en serverTasks = Translations$serverTasks$en.internal(_root);
|
||
late final Translations$trakt$en trakt = Translations$trakt$en.internal(_root);
|
||
late final Translations$seerr$en seerr = Translations$seerr$en.internal(_root);
|
||
late final Translations$services$en services = Translations$services$en.internal(_root);
|
||
late final Translations$addServer$en addServer = Translations$addServer$en.internal(_root);
|
||
}
|
||
|
||
// Path: app
|
||
class Translations$app$en {
|
||
Translations$app$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Plezy'
|
||
String get title => 'Plezy';
|
||
}
|
||
|
||
// Path: auth
|
||
class Translations$auth$en {
|
||
Translations$auth$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Sign in with Plex'
|
||
String get signInWithPlex => 'Sign in with Plex';
|
||
|
||
/// en: 'Show QR Code'
|
||
String get showQRCode => 'Show QR Code';
|
||
|
||
/// en: 'Authenticate'
|
||
String get authenticate => 'Authenticate';
|
||
|
||
/// en: 'Authentication timed out. Please try again.'
|
||
String get authenticationTimeout => 'Authentication timed out. Please try again.';
|
||
|
||
/// en: 'Scan this QR code to sign in'
|
||
String get scanQRToSignIn => 'Scan this QR code to sign in';
|
||
|
||
/// en: 'Waiting for authentication... Sign in from your browser.'
|
||
String get waitingForAuth => 'Waiting for authentication...\nSign in from your browser.';
|
||
|
||
/// en: 'Use browser'
|
||
String get useBrowser => 'Use browser';
|
||
|
||
/// en: 'or'
|
||
String get or => 'or';
|
||
|
||
/// en: 'Connect to Jellyfin'
|
||
String get connectToJellyfin => 'Connect to Jellyfin';
|
||
|
||
/// en: 'Use Quick Connect'
|
||
String get useQuickConnect => 'Use Quick Connect';
|
||
|
||
/// en: 'Open Quick Connect in Jellyfin and enter this code.'
|
||
String get quickConnectInstructions => 'Open Quick Connect in Jellyfin and enter this code.';
|
||
|
||
/// en: 'Waiting for approval…'
|
||
String get quickConnectWaiting => 'Waiting for approval…';
|
||
|
||
/// en: 'Cancel'
|
||
String get quickConnectCancel => 'Cancel';
|
||
|
||
/// en: 'Quick Connect expired. Try again.'
|
||
String get quickConnectExpired => 'Quick Connect expired. Try again.';
|
||
|
||
/// en: 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'
|
||
String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.';
|
||
}
|
||
|
||
// Path: common
|
||
class Translations$common$en {
|
||
Translations$common$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Cancel'
|
||
String get cancel => 'Cancel';
|
||
|
||
/// en: 'Save'
|
||
String get save => 'Save';
|
||
|
||
/// en: 'Close'
|
||
String get close => 'Close';
|
||
|
||
/// en: 'Clear'
|
||
String get clear => 'Clear';
|
||
|
||
/// en: 'Reset'
|
||
String get reset => 'Reset';
|
||
|
||
/// en: 'Later'
|
||
String get later => 'Later';
|
||
|
||
/// en: 'Submit'
|
||
String get submit => 'Submit';
|
||
|
||
/// en: 'Confirm'
|
||
String get confirm => 'Confirm';
|
||
|
||
/// en: 'Retry'
|
||
String get retry => 'Retry';
|
||
|
||
/// en: 'Log out'
|
||
String get logout => 'Log out';
|
||
|
||
/// en: 'Unknown'
|
||
String get unknown => 'Unknown';
|
||
|
||
/// en: 'Refresh'
|
||
String get refresh => 'Refresh';
|
||
|
||
/// en: 'Yes'
|
||
String get yes => 'Yes';
|
||
|
||
/// en: 'No'
|
||
String get no => 'No';
|
||
|
||
/// en: 'Delete'
|
||
String get delete => 'Delete';
|
||
|
||
/// en: 'Edit'
|
||
String get edit => 'Edit';
|
||
|
||
/// en: 'Shuffle'
|
||
String get shuffle => 'Shuffle';
|
||
|
||
/// en: 'Add to...'
|
||
String get addTo => 'Add to...';
|
||
|
||
/// en: 'Create new'
|
||
String get createNew => 'Create new';
|
||
|
||
/// en: 'Connect'
|
||
String get connect => 'Connect';
|
||
|
||
/// en: 'Disconnect'
|
||
String get disconnect => 'Disconnect';
|
||
|
||
/// en: 'Play'
|
||
String get play => 'Play';
|
||
|
||
/// en: 'Pause'
|
||
String get pause => 'Pause';
|
||
|
||
/// en: 'Resume'
|
||
String get resume => 'Resume';
|
||
|
||
/// en: 'Error'
|
||
String get error => 'Error';
|
||
|
||
/// en: 'Search'
|
||
String get search => 'Search';
|
||
|
||
/// en: 'Home'
|
||
String get home => 'Home';
|
||
|
||
/// en: 'Back'
|
||
String get back => 'Back';
|
||
|
||
/// en: 'Settings'
|
||
String get settings => 'Settings';
|
||
|
||
/// en: 'Mute'
|
||
String get mute => 'Mute';
|
||
|
||
/// en: 'OK'
|
||
String get ok => 'OK';
|
||
|
||
/// en: 'Off'
|
||
String get off => 'Off';
|
||
|
||
/// en: 'Season ${number}'
|
||
String seasonNumber({required Object number}) => 'Season ${number}';
|
||
|
||
/// en: 'Episode ${number} - ${title}'
|
||
String episodeNumberTitle({required Object number, required Object title}) => 'Episode ${number} - ${title}';
|
||
|
||
/// en: 'Chapter ${number}'
|
||
String chapterNumber({required Object number}) => 'Chapter ${number}';
|
||
|
||
/// en: 'Reconnect'
|
||
String get reconnect => 'Reconnect';
|
||
|
||
/// en: 'View All'
|
||
String get viewAll => 'View All';
|
||
|
||
/// en: 'Checking network...'
|
||
String get checkingNetwork => 'Checking network...';
|
||
|
||
/// en: 'Loading servers...'
|
||
String get loadingServers => 'Loading servers...';
|
||
|
||
/// en: 'Connecting to servers...'
|
||
String get connectingToServers => 'Connecting to servers...';
|
||
|
||
/// en: 'Starting offline mode...'
|
||
String get startingOfflineMode => 'Starting offline mode...';
|
||
|
||
/// en: 'Loading...'
|
||
String get loading => 'Loading...';
|
||
|
||
/// en: 'Fullscreen'
|
||
String get fullscreen => 'Fullscreen';
|
||
|
||
/// en: 'Exit fullscreen'
|
||
String get exitFullscreen => 'Exit fullscreen';
|
||
|
||
/// en: 'Press back again to exit'
|
||
String get pressBackAgainToExit => 'Press back again to exit';
|
||
}
|
||
|
||
// Path: screens
|
||
class Translations$screens$en {
|
||
Translations$screens$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Licenses'
|
||
String get licenses => 'Licenses';
|
||
|
||
/// en: 'Switch Profile'
|
||
String get switchProfile => 'Switch Profile';
|
||
|
||
/// en: 'Subtitle Styling'
|
||
String get subtitleStyling => 'Subtitle Styling';
|
||
|
||
/// en: 'mpv.conf'
|
||
String get mpvConfig => 'mpv.conf';
|
||
|
||
/// en: 'Logs'
|
||
String get logs => 'Logs';
|
||
}
|
||
|
||
// Path: update
|
||
class Translations$update$en {
|
||
Translations$update$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Update Available'
|
||
String get available => 'Update Available';
|
||
|
||
/// en: 'Version ${version} is available'
|
||
String versionAvailable({required Object version}) => 'Version ${version} is available';
|
||
|
||
/// en: 'Current: ${version}'
|
||
String currentVersion({required Object version}) => 'Current: ${version}';
|
||
|
||
/// en: 'Skip This Version'
|
||
String get skipVersion => 'Skip This Version';
|
||
|
||
/// en: 'View Release'
|
||
String get viewRelease => 'View Release';
|
||
|
||
/// en: 'You are on the latest version'
|
||
String get latestVersion => 'You are on the latest version';
|
||
|
||
/// en: 'Failed to check for updates'
|
||
String get checkFailed => 'Failed to check for updates';
|
||
}
|
||
|
||
// Path: settings
|
||
class Translations$settings$en {
|
||
Translations$settings$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Settings'
|
||
String get title => 'Settings';
|
||
|
||
/// en: 'Support Plezy'
|
||
String get supportDeveloper => 'Support Plezy';
|
||
|
||
/// en: 'Donate via Liberapay to fund development'
|
||
String get supportDeveloperDescription => 'Donate via Liberapay to fund development';
|
||
|
||
/// en: 'Language'
|
||
String get language => 'Language';
|
||
|
||
/// en: 'Theme'
|
||
String get theme => 'Theme';
|
||
|
||
/// en: 'Appearance'
|
||
String get appearance => 'Appearance';
|
||
|
||
/// en: 'Video Playback'
|
||
String get videoPlayback => 'Video Playback';
|
||
|
||
/// en: 'Configure playback behavior'
|
||
String get videoPlaybackDescription => 'Configure playback behavior';
|
||
|
||
/// en: 'Advanced'
|
||
String get advanced => 'Advanced';
|
||
|
||
/// en: 'Episode Poster Style'
|
||
String get episodePosterMode => 'Episode Poster Style';
|
||
|
||
/// en: 'Series Poster'
|
||
String get seriesPoster => 'Series Poster';
|
||
|
||
/// en: 'Season Poster'
|
||
String get seasonPoster => 'Season Poster';
|
||
|
||
/// en: 'Thumbnail'
|
||
String get episodeThumbnail => 'Thumbnail';
|
||
|
||
/// en: 'Display featured content carousel on home screen'
|
||
String get showHeroSectionDescription => 'Display featured content carousel on home screen';
|
||
|
||
/// en: 'Seconds'
|
||
String get secondsLabel => 'Seconds';
|
||
|
||
/// en: 'Minutes'
|
||
String get minutesLabel => 'Minutes';
|
||
|
||
/// en: 's'
|
||
String get secondsShort => 's';
|
||
|
||
/// en: 'm'
|
||
String get minutesShort => 'm';
|
||
|
||
/// en: 'Enter duration (${min}-${max})'
|
||
String durationHint({required Object min, required Object max}) => 'Enter duration (${min}-${max})';
|
||
|
||
/// en: 'System'
|
||
String get systemTheme => 'System';
|
||
|
||
/// en: 'Light'
|
||
String get lightTheme => 'Light';
|
||
|
||
/// en: 'Dark'
|
||
String get darkTheme => 'Dark';
|
||
|
||
/// en: 'OLED'
|
||
String get oledTheme => 'OLED';
|
||
|
||
/// en: 'Library Density'
|
||
String get libraryDensity => 'Library Density';
|
||
|
||
/// en: 'Compact'
|
||
String get compact => 'Compact';
|
||
|
||
/// en: 'Comfortable'
|
||
String get comfortable => 'Comfortable';
|
||
|
||
/// en: 'Corner Spotlight Backdrop'
|
||
String get tvCornerSpotlightBackdrop => 'Corner Spotlight Backdrop';
|
||
|
||
/// en: 'Show spotlight artwork in the top-right corner instead of filling the screen'
|
||
String get tvCornerSpotlightBackdropDescription => 'Show spotlight artwork in the top-right corner instead of filling the screen';
|
||
|
||
/// en: 'View Mode'
|
||
String get viewMode => 'View Mode';
|
||
|
||
/// en: 'Grid'
|
||
String get gridView => 'Grid';
|
||
|
||
/// en: 'List'
|
||
String get listView => 'List';
|
||
|
||
/// en: 'Show Hero Section'
|
||
String get showHeroSection => 'Show Hero Section';
|
||
|
||
/// en: 'Continue Watching Action'
|
||
String get continueWatchingAction => 'Continue Watching Action';
|
||
|
||
/// en: 'Play'
|
||
String get continueWatchingPlay => 'Play';
|
||
|
||
/// en: 'Open Details'
|
||
String get continueWatchingDetails => 'Open Details';
|
||
|
||
/// en: 'Episode Action'
|
||
String get episodeAction => 'Episode Action';
|
||
|
||
/// en: 'Play'
|
||
String get episodePlay => 'Play';
|
||
|
||
/// en: 'Open Details'
|
||
String get episodeDetails => 'Open Details';
|
||
|
||
/// en: 'Use Home Layout'
|
||
String get useGlobalHubs => 'Use Home Layout';
|
||
|
||
/// en: 'Show unified home hubs. Otherwise use library recommendations.'
|
||
String get useGlobalHubsDescription => 'Show unified home hubs. Otherwise use library recommendations.';
|
||
|
||
/// en: 'Show Server Name on Hubs'
|
||
String get showServerNameOnHubs => 'Show Server Name on Hubs';
|
||
|
||
/// en: 'Always show server names in hub titles.'
|
||
String get showServerNameOnHubsDescription => 'Always show server names in hub titles.';
|
||
|
||
/// en: 'Group Libraries by Server'
|
||
String get groupLibrariesByServer => 'Group Libraries by Server';
|
||
|
||
/// en: 'Group sidebar libraries under each media server.'
|
||
String get groupLibrariesByServerDescription => 'Group sidebar libraries under each media server.';
|
||
|
||
/// en: 'Always Keep Sidebar Open'
|
||
String get alwaysKeepSidebarOpen => 'Always Keep Sidebar Open';
|
||
|
||
/// en: 'Sidebar stays expanded and content area adjusts to fit'
|
||
String get alwaysKeepSidebarOpenDescription => 'Sidebar stays expanded and content area adjusts to fit';
|
||
|
||
/// en: 'Show Unwatched Count'
|
||
String get showUnwatchedCount => 'Show Unwatched Count';
|
||
|
||
/// en: 'Display unwatched episode count on shows and seasons'
|
||
String get showUnwatchedCountDescription => 'Display unwatched episode count on shows and seasons';
|
||
|
||
/// en: 'Show Episode Number on Cards'
|
||
String get showEpisodeNumberOnCards => 'Show Episode Number on Cards';
|
||
|
||
/// en: 'Show season and episode number on episode cards'
|
||
String get showEpisodeNumberOnCardsDescription => 'Show season and episode number on episode cards';
|
||
|
||
/// en: 'Show Season Posters on Tabs'
|
||
String get showSeasonPostersOnTabs => 'Show Season Posters on Tabs';
|
||
|
||
/// en: 'Show each season's poster above its tab'
|
||
String get showSeasonPostersOnTabsDescription => 'Show each season\'s poster above its tab';
|
||
|
||
/// en: 'Full TV Cards'
|
||
String get tvFullCardLayout => 'Full TV Cards';
|
||
|
||
/// en: 'Use image-only TV cards with actor names overlaid'
|
||
String get tvFullCardLayoutDescription => 'Use image-only TV cards with actor names overlaid';
|
||
|
||
/// en: 'Focus Glow'
|
||
String get focusGlow => 'Focus Glow';
|
||
|
||
/// en: 'Draw a soft glow around the focused card'
|
||
String get focusGlowDescription => 'Draw a soft glow around the focused card';
|
||
|
||
/// en: 'Visual Effects'
|
||
String get visualEffects => 'Visual Effects';
|
||
|
||
/// en: 'Auto'
|
||
String get visualEffectsAuto => 'Auto';
|
||
|
||
/// en: 'Reduce effects automatically on low-power devices'
|
||
String get visualEffectsAutoDescription => 'Reduce effects automatically on low-power devices';
|
||
|
||
/// en: 'Full'
|
||
String get visualEffectsFull => 'Full';
|
||
|
||
/// en: 'Reduced'
|
||
String get visualEffectsReduced => 'Reduced';
|
||
|
||
/// en: 'Fewer animations and lower-resolution artwork'
|
||
String get visualEffectsReducedDescription => 'Fewer animations and lower-resolution artwork';
|
||
|
||
/// en: 'Hide Spoilers for Unwatched Episodes'
|
||
String get hideSpoilers => 'Hide Spoilers for Unwatched Episodes';
|
||
|
||
/// en: 'Blur thumbnails and descriptions for unwatched episodes'
|
||
String get hideSpoilersDescription => 'Blur thumbnails and descriptions for unwatched episodes';
|
||
|
||
/// en: 'Player Backend'
|
||
String get playerBackend => 'Player Backend';
|
||
|
||
/// en: 'ExoPlayer'
|
||
String get exoPlayer => 'ExoPlayer';
|
||
|
||
/// en: 'mpv'
|
||
String get mpv => 'mpv';
|
||
|
||
/// en: 'Hardware Decoding'
|
||
String get hardwareDecoding => 'Hardware Decoding';
|
||
|
||
/// en: 'Use hardware acceleration when available'
|
||
String get hardwareDecodingDescription => 'Use hardware acceleration when available';
|
||
|
||
/// en: 'Buffer Size'
|
||
String get bufferSize => 'Buffer Size';
|
||
|
||
/// en: '${size}MB'
|
||
String bufferSizeMB({required Object size}) => '${size}MB';
|
||
|
||
/// en: 'Auto (Recommended)'
|
||
String get bufferSizeAuto => 'Auto (Recommended)';
|
||
|
||
/// en: '${heap}MB memory available. A ${size}MB buffer may affect playback.'
|
||
String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB memory available. A ${size}MB buffer may affect playback.';
|
||
|
||
/// en: 'Default Quality'
|
||
String get defaultQualityTitle => 'Default Quality';
|
||
|
||
/// en: 'Music Quality'
|
||
String get musicQualityTitle => 'Music Quality';
|
||
|
||
/// en: 'Subtitle Styling'
|
||
String get subtitleStyling => 'Subtitle Styling';
|
||
|
||
/// en: 'Customize subtitle appearance'
|
||
String get subtitleStylingDescription => 'Customize subtitle appearance';
|
||
|
||
/// en: 'Small Skip Duration'
|
||
String get smallSkipDuration => 'Small Skip Duration';
|
||
|
||
/// en: 'Large Skip Duration'
|
||
String get largeSkipDuration => 'Large Skip Duration';
|
||
|
||
/// en: 'Rewind on Resume'
|
||
String get rewindOnResume => 'Rewind on Resume';
|
||
|
||
/// en: '${seconds} seconds'
|
||
String secondsUnit({required Object seconds}) => '${seconds} seconds';
|
||
|
||
/// en: 'Default Sleep Timer'
|
||
String get defaultSleepTimer => 'Default Sleep Timer';
|
||
|
||
/// en: '${minutes} minutes'
|
||
String minutesUnit({required Object minutes}) => '${minutes} minutes';
|
||
|
||
/// en: 'Remember track selections per show/movie'
|
||
String get rememberTrackSelections => 'Remember track selections per show/movie';
|
||
|
||
/// en: 'Remember audio and subtitle choices per title'
|
||
String get rememberTrackSelectionsDescription => 'Remember audio and subtitle choices per title';
|
||
|
||
/// en: 'Show chapter markers on seek bar'
|
||
String get showChapterMarkersOnTimeline => 'Show chapter markers on seek bar';
|
||
|
||
/// en: 'Segment the seek bar at chapter boundaries'
|
||
String get showChapterMarkersOnTimelineDescription => 'Segment the seek bar at chapter boundaries';
|
||
|
||
/// en: 'Click on video to toggle play/pause'
|
||
String get clickVideoTogglesPlayback => 'Click on video to toggle play/pause';
|
||
|
||
/// en: 'Click video to play/pause instead of showing controls.'
|
||
String get clickVideoTogglesPlaybackDescription => 'Click video to play/pause instead of showing controls.';
|
||
|
||
/// en: 'Video Player Controls'
|
||
String get videoPlayerControls => 'Video Player Controls';
|
||
|
||
/// en: 'Keyboard Shortcuts'
|
||
String get keyboardShortcuts => 'Keyboard Shortcuts';
|
||
|
||
/// en: 'Customize keyboard shortcuts'
|
||
String get keyboardShortcutsDescription => 'Customize keyboard shortcuts';
|
||
|
||
/// en: 'Video Player Navigation'
|
||
String get videoPlayerNavigation => 'Video Player Navigation';
|
||
|
||
/// en: 'Use arrow keys to navigate video player controls'
|
||
String get videoPlayerNavigationDescription => 'Use arrow keys to navigate video player controls';
|
||
|
||
/// en: 'Watch Together Relay'
|
||
String get watchTogetherRelay => 'Watch Together Relay';
|
||
|
||
/// en: 'Set a custom relay. Everyone must use the same server.'
|
||
String get watchTogetherRelayDescription => 'Set a custom relay. Everyone must use the same server.';
|
||
|
||
/// en: 'https://my-relay.example.com'
|
||
String get watchTogetherRelayHint => 'https://my-relay.example.com';
|
||
|
||
/// en: 'Enter a valid HTTP or HTTPS relay base URL.'
|
||
String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.';
|
||
|
||
/// en: 'Crash Reporting'
|
||
String get crashReporting => 'Crash Reporting';
|
||
|
||
/// en: 'Send crash reports to help improve the app'
|
||
String get crashReportingDescription => 'Send crash reports to help improve the app';
|
||
|
||
/// en: 'Debug Logging'
|
||
String get debugLogging => 'Debug Logging';
|
||
|
||
/// en: 'Enable detailed logging for troubleshooting'
|
||
String get debugLoggingDescription => 'Enable detailed logging for troubleshooting';
|
||
|
||
/// en: 'View Logs'
|
||
String get viewLogs => 'View Logs';
|
||
|
||
/// en: 'View application logs'
|
||
String get viewLogsDescription => 'View application logs';
|
||
|
||
/// en: 'Clear Image Cache'
|
||
String get clearImageCache => 'Clear Image Cache';
|
||
|
||
/// en: 'Clear cached artwork and thumbnails. Images may load slower until downloaded again.'
|
||
String get clearImageCacheDescription => 'Clear cached artwork and thumbnails. Images may load slower until downloaded again.';
|
||
|
||
/// en: 'Image cache cleared successfully'
|
||
String get clearImageCacheSuccess => 'Image cache cleared successfully';
|
||
|
||
/// en: 'Reset Settings'
|
||
String get resetSettings => 'Reset Settings';
|
||
|
||
/// en: 'Restore default settings. This can't be undone.'
|
||
String get resetSettingsDescription => 'Restore default settings. This can\'t be undone.';
|
||
|
||
/// en: 'Settings reset successfully'
|
||
String get resetSettingsSuccess => 'Settings reset successfully';
|
||
|
||
/// en: 'Backup'
|
||
String get backup => 'Backup';
|
||
|
||
/// en: 'Export Settings'
|
||
String get exportSettings => 'Export Settings';
|
||
|
||
/// en: 'Save your preferences to a file'
|
||
String get exportSettingsDescription => 'Save your preferences to a file';
|
||
|
||
/// en: 'Settings exported'
|
||
String get exportSettingsSuccess => 'Settings exported';
|
||
|
||
/// en: 'Import Settings'
|
||
String get importSettings => 'Import Settings';
|
||
|
||
/// en: 'Restore preferences from a file'
|
||
String get importSettingsDescription => 'Restore preferences from a file';
|
||
|
||
/// en: 'This will replace your current settings. Continue?'
|
||
String get importSettingsConfirm => 'This will replace your current settings. Continue?';
|
||
|
||
/// en: 'Settings imported'
|
||
String get importSettingsSuccess => 'Settings imported';
|
||
|
||
/// en: 'This file isn't a valid Plezy settings export'
|
||
String get importSettingsInvalidFile => 'This file isn\'t a valid Plezy settings export';
|
||
|
||
/// en: 'Sign in before importing settings'
|
||
String get importSettingsNoUser => 'Sign in before importing settings';
|
||
|
||
/// en: 'Shortcuts reset to defaults'
|
||
String get shortcutsReset => 'Shortcuts reset to defaults';
|
||
|
||
/// en: 'About'
|
||
String get about => 'About';
|
||
|
||
/// en: 'App information and licenses'
|
||
String get aboutDescription => 'App information and licenses';
|
||
|
||
/// en: 'Updates'
|
||
String get updates => 'Updates';
|
||
|
||
/// en: 'Update Available'
|
||
String get updateAvailable => 'Update Available';
|
||
|
||
/// en: 'Check for Updates'
|
||
String get checkForUpdates => 'Check for Updates';
|
||
|
||
/// en: 'Automatically check for updates on startup'
|
||
String get autoCheckUpdatesOnStartup => 'Automatically check for updates on startup';
|
||
|
||
/// en: 'Notify when an update is available at launch'
|
||
String get autoCheckUpdatesOnStartupDescription => 'Notify when an update is available at launch';
|
||
|
||
/// en: 'Please enter a valid number'
|
||
String get validationErrorEnterNumber => 'Please enter a valid number';
|
||
|
||
/// en: 'Duration must be between ${min} and ${max} ${unit}'
|
||
String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Duration must be between ${min} and ${max} ${unit}';
|
||
|
||
/// en: 'Shortcut already assigned to ${action}'
|
||
String shortcutAlreadyAssigned({required Object action}) => 'Shortcut already assigned to ${action}';
|
||
|
||
/// en: 'Shortcut updated for ${action}'
|
||
String shortcutUpdated({required Object action}) => 'Shortcut updated for ${action}';
|
||
|
||
/// en: 'Could not save changes. Try again.'
|
||
String get saveFailed => 'Could not save changes. Try again.';
|
||
|
||
/// en: 'Auto Skip'
|
||
String get autoSkip => 'Auto Skip';
|
||
|
||
/// en: 'Auto Skip Intro'
|
||
String get autoSkipIntro => 'Auto Skip Intro';
|
||
|
||
/// en: 'Automatically skip intro markers after a few seconds'
|
||
String get autoSkipIntroDescription => 'Automatically skip intro markers after a few seconds';
|
||
|
||
/// en: 'Auto Skip Credits'
|
||
String get autoSkipCredits => 'Auto Skip Credits';
|
||
|
||
/// en: 'Automatically skip credits and play next episode'
|
||
String get autoSkipCreditsDescription => 'Automatically skip credits and play next episode';
|
||
|
||
/// en: 'Force Fallback Markers'
|
||
String get forceSkipMarkerFallback => 'Force Fallback Markers';
|
||
|
||
/// en: 'Use chapter title patterns even when Plex has markers'
|
||
String get forceSkipMarkerFallbackDescription => 'Use chapter title patterns even when Plex has markers';
|
||
|
||
/// en: 'Auto Skip Delay'
|
||
String get autoSkipDelay => 'Auto Skip Delay';
|
||
|
||
/// en: 'Wait ${seconds} seconds before auto-skipping'
|
||
String autoSkipDelayDescription({required Object seconds}) => 'Wait ${seconds} seconds before auto-skipping';
|
||
|
||
/// en: 'Intro Marker Pattern'
|
||
String get introPattern => 'Intro Marker Pattern';
|
||
|
||
/// en: 'Regex pattern to match intro markers in chapter titles'
|
||
String get introPatternDescription => 'Regex pattern to match intro markers in chapter titles';
|
||
|
||
/// en: 'Credits Marker Pattern'
|
||
String get creditsPattern => 'Credits Marker Pattern';
|
||
|
||
/// en: 'Regex pattern to match credits markers in chapter titles'
|
||
String get creditsPatternDescription => 'Regex pattern to match credits markers in chapter titles';
|
||
|
||
/// en: 'Invalid regular expression'
|
||
String get invalidRegex => 'Invalid regular expression';
|
||
|
||
/// en: 'Regular expression'
|
||
String get regex => 'Regular expression';
|
||
|
||
/// en: 'Downloads'
|
||
String get downloads => 'Downloads';
|
||
|
||
/// en: 'Choose where to store downloaded content'
|
||
String get downloadLocationDescription => 'Choose where to store downloaded content';
|
||
|
||
/// en: 'Default (App Storage)'
|
||
String get downloadLocationDefault => 'Default (App Storage)';
|
||
|
||
/// en: 'Custom Location'
|
||
String get downloadLocationCustom => 'Custom Location';
|
||
|
||
/// en: 'Select Folder'
|
||
String get selectFolder => 'Select Folder';
|
||
|
||
/// en: 'Reset to Default'
|
||
String get resetToDefault => 'Reset to Default';
|
||
|
||
/// en: 'Current: ${path}'
|
||
String currentPath({required Object path}) => 'Current: ${path}';
|
||
|
||
/// en: 'Download location changed'
|
||
String get downloadLocationChanged => 'Download location changed';
|
||
|
||
/// en: 'Download location reset to default'
|
||
String get downloadLocationReset => 'Download location reset to default';
|
||
|
||
/// en: 'Selected folder is not writable'
|
||
String get downloadLocationInvalid => 'Selected folder is not writable';
|
||
|
||
/// en: 'Folder selection is not available on this device'
|
||
String get downloadLocationPickerUnavailable => 'Folder selection is not available on this device';
|
||
|
||
/// en: 'Download on Wi-Fi only'
|
||
String get downloadOnWifiOnly => 'Download on Wi-Fi only';
|
||
|
||
/// en: 'Prevent downloads when on cellular data'
|
||
String get downloadOnWifiOnlyDescription => 'Prevent downloads when on cellular data';
|
||
|
||
/// en: 'Auto-remove watched downloads'
|
||
String get autoRemoveWatchedDownloads => 'Auto-remove watched downloads';
|
||
|
||
/// en: 'Delete watched downloads automatically'
|
||
String get autoRemoveWatchedDownloadsDescription => 'Delete watched downloads automatically';
|
||
|
||
/// en: 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.'
|
||
String get cellularDownloadBlocked => 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.';
|
||
|
||
/// en: 'Maximum Volume'
|
||
String get maxVolume => 'Maximum Volume';
|
||
|
||
/// en: 'Allow volume boost above 100% for quiet media'
|
||
String get maxVolumeDescription => 'Allow volume boost above 100% for quiet media';
|
||
|
||
/// en: '${percent}%'
|
||
String maxVolumePercent({required Object percent}) => '${percent}%';
|
||
|
||
/// en: 'Discord Rich Presence'
|
||
String get discordRichPresence => 'Discord Rich Presence';
|
||
|
||
/// en: 'Show what you're watching on Discord'
|
||
String get discordRichPresenceDescription => 'Show what you\'re watching on Discord';
|
||
|
||
/// en: 'Services'
|
||
String get services => 'Services';
|
||
|
||
/// en: 'Connect Trakt, MyAnimeList, Seerr, and more'
|
||
String get servicesDescription => 'Connect Trakt, MyAnimeList, Seerr, and more';
|
||
|
||
/// en: 'Reorder and hide libraries'
|
||
String get manageLibrariesDescription => 'Reorder and hide libraries';
|
||
|
||
/// en: 'Companion Remote Server'
|
||
String get companionRemoteServer => 'Companion Remote Server';
|
||
|
||
/// en: 'Allow mobile devices on your network to control this app'
|
||
String get companionRemoteServerDescription => 'Allow mobile devices on your network to control this app';
|
||
|
||
/// en: 'Auto Picture-in-Picture'
|
||
String get autoPip => 'Auto Picture-in-Picture';
|
||
|
||
/// en: 'Automatically enter picture-in-picture when you leave the app during playback'
|
||
String get autoPipDescription => 'Automatically enter picture-in-picture when you leave the app during playback';
|
||
|
||
/// en: 'Match Content Frame Rate'
|
||
String get matchContentFrameRate => 'Match Content Frame Rate';
|
||
|
||
/// en: 'Match display refresh rate to video content'
|
||
String get matchContentFrameRateDescription => 'Match display refresh rate to video content';
|
||
|
||
/// en: 'Match Refresh Rate'
|
||
String get matchRefreshRate => 'Match Refresh Rate';
|
||
|
||
/// en: 'Match display refresh rate in fullscreen'
|
||
String get matchRefreshRateDescription => 'Match display refresh rate in fullscreen';
|
||
|
||
/// en: 'Match Dynamic Range'
|
||
String get matchDynamicRange => 'Match Dynamic Range';
|
||
|
||
/// en: 'Switch HDR on for HDR content, then back to SDR'
|
||
String get matchDynamicRangeDescription => 'Switch HDR on for HDR content, then back to SDR';
|
||
|
||
/// en: 'Display Switch Delay'
|
||
String get displaySwitchDelay => 'Display Switch Delay';
|
||
|
||
/// en: 'Tunneled Playback'
|
||
String get tunneledPlayback => 'Tunneled Playback';
|
||
|
||
/// en: 'Use video tunneling. Disable if HDR playback shows black video.'
|
||
String get tunneledPlaybackDescription => 'Use video tunneling. Disable if HDR playback shows black video.';
|
||
|
||
/// en: 'Audio Passthrough'
|
||
String get audioPassthrough => 'Audio Passthrough';
|
||
|
||
/// en: 'Send Dolby/DTS audio to your receiver or TV without re-encoding, preserving surround sound. Turn off if you have no sound.'
|
||
String get audioPassthroughDescription => 'Send Dolby/DTS audio to your receiver or TV without re-encoding, preserving surround sound. Turn off if you have no sound.';
|
||
|
||
/// en: 'Use Apple's native Dolby decoder for Dolby Digital Plus, including Atmos. DTS and TrueHD still play as multichannel PCM. Turn off if you have no sound.'
|
||
String get audioPassthroughDescriptionAppleTv => 'Use Apple\'s native Dolby decoder for Dolby Digital Plus, including Atmos. DTS and TrueHD still play as multichannel PCM. Turn off if you have no sound.';
|
||
|
||
/// en: 'Downmix to Stereo'
|
||
String get audioDownmix => 'Downmix to Stereo';
|
||
|
||
/// en: 'Mix surround audio down to two channels for stereo speakers or headphones'
|
||
String get audioDownmixDescription => 'Mix surround audio down to two channels for stereo speakers or headphones';
|
||
|
||
/// en: 'Center Channel Boost'
|
||
String get downmixCenterBoost => 'Center Channel Boost';
|
||
|
||
/// en: '${db} dB'
|
||
String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||
|
||
/// en: 'Boost (dB)'
|
||
String get downmixCenterBoostLabel => 'Boost (dB)';
|
||
|
||
/// en: 'dB'
|
||
String get downmixCenterBoostShort => 'dB';
|
||
|
||
/// en: 'Normalize Volume on Downmix'
|
||
String get audioDownmixNormalize => 'Normalize Volume on Downmix';
|
||
|
||
/// en: 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).'
|
||
String get audioDownmixNormalizeDescription => 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).';
|
||
|
||
/// en: 'Atmos Output Test'
|
||
String get atmosDiagnostics => 'Atmos Output Test';
|
||
|
||
/// en: 'Diagnose Dolby Atmos output by playing test signals through the system player'
|
||
String get atmosDiagnosticsDescription => 'Diagnose Dolby Atmos output by playing test signals through the system player';
|
||
|
||
/// en: 'Apple Atmos stream'
|
||
String get atmosTestHlsAtmos => 'Apple Atmos stream';
|
||
|
||
/// en: 'Known-good Dolby Atmos stream. The receiver should show Dolby Atmos.'
|
||
String get atmosTestHlsAtmosDescription => 'Known-good Dolby Atmos stream. The receiver should show Dolby Atmos.';
|
||
|
||
/// en: 'Apple surround stream'
|
||
String get atmosTestHlsControl => 'Apple surround stream';
|
||
|
||
/// en: 'Non-Atmos control stream. The receiver should show surround without Atmos.'
|
||
String get atmosTestHlsControlDescription => 'Non-Atmos control stream. The receiver should show surround without Atmos.';
|
||
|
||
/// en: 'Raw EAC3 stream'
|
||
String get atmosTestRawStream => 'Raw EAC3 stream';
|
||
|
||
/// en: 'Streams the test file exactly like in-player Atmos playback. Needs the test file URL.'
|
||
String get atmosTestRawStreamDescription => 'Streams the test file exactly like in-player Atmos playback. Needs the test file URL.';
|
||
|
||
/// en: 'Raw EAC3 file'
|
||
String get atmosTestRawFile => 'Raw EAC3 file';
|
||
|
||
/// en: 'Plays the test file with a known length. Needs the test file URL.'
|
||
String get atmosTestRawFileDescription => 'Plays the test file with a known length. Needs the test file URL.';
|
||
|
||
/// en: 'Stop test'
|
||
String get atmosTestStop => 'Stop test';
|
||
|
||
/// en: 'Test file URL'
|
||
String get atmosTestUrl => 'Test file URL';
|
||
|
||
/// en: 'HTTP URL of a raw .ec3 Dolby Atmos file (e.g. extracted with ffmpeg)'
|
||
String get atmosTestUrlDescription => 'HTTP URL of a raw .ec3 Dolby Atmos file (e.g. extracted with ffmpeg)';
|
||
|
||
/// en: 'Set the test file URL first'
|
||
String get atmosTestUrlMissing => 'Set the test file URL first';
|
||
|
||
/// en: 'Status'
|
||
String get atmosTestStatus => 'Status';
|
||
|
||
/// en: 'Dolby Vision Conversion'
|
||
String get dvConversionMode => 'Dolby Vision Conversion';
|
||
|
||
/// en: 'Choose how ExoPlayer handles Dolby Vision Profile 7 files.'
|
||
String get dvConversionModeDescription => 'Choose how ExoPlayer handles Dolby Vision Profile 7 files.';
|
||
|
||
/// en: 'Auto'
|
||
String get dvConversionAuto => 'Auto';
|
||
|
||
/// en: 'Native / Disabled'
|
||
String get dvConversionNative => 'Native / Disabled';
|
||
|
||
/// en: 'P7 → P8.1'
|
||
String get dvConversionDv81 => 'P7 → P8.1';
|
||
|
||
/// en: 'P7 → HEVC'
|
||
String get dvConversionHevcStrip => 'P7 → HEVC';
|
||
|
||
/// en: 'Use device capability detection and normal fallback behavior'
|
||
String get dvConversionAutoDescription => 'Use device capability detection and normal fallback behavior';
|
||
|
||
/// en: 'Force native DV7 and suppress DV conversion retry'
|
||
String get dvConversionNativeDescription => 'Force native DV7 and suppress DV conversion retry';
|
||
|
||
/// en: 'Force inline RPU conversion to Dolby Vision profile 8.1'
|
||
String get dvConversionDv81Description => 'Force inline RPU conversion to Dolby Vision profile 8.1';
|
||
|
||
/// en: 'Strip Dolby Vision RPU/EL layers and present plain HEVC'
|
||
String get dvConversionHevcStripDescription => 'Strip Dolby Vision RPU/EL layers and present plain HEVC';
|
||
|
||
/// en: 'Ask for profile on app open'
|
||
String get requireProfileSelectionOnOpen => 'Ask for profile on app open';
|
||
|
||
/// en: 'Show profile selection every time the app is opened'
|
||
String get requireProfileSelectionOnOpenDescription => 'Show profile selection every time the app is opened';
|
||
|
||
/// en: 'Force TV mode'
|
||
String get forceTvMode => 'Force TV mode';
|
||
|
||
/// en: 'Force TV layout. For devices that don't auto-detect. Requires restart.'
|
||
String get forceTvModeDescription => 'Force TV layout. For devices that don\'t auto-detect. Requires restart.';
|
||
|
||
/// en: 'Start in fullscreen'
|
||
String get startInFullscreen => 'Start in fullscreen';
|
||
|
||
/// en: 'Open Plezy in fullscreen mode at launch'
|
||
String get startInFullscreenDescription => 'Open Plezy in fullscreen mode at launch';
|
||
|
||
/// en: 'Exit fullscreen on player close'
|
||
String get exitFullscreenOnPlayerClose => 'Exit fullscreen on player close';
|
||
|
||
/// en: 'Automatically exit fullscreen when closing the video player'
|
||
String get exitFullscreenOnPlayerCloseDescription => 'Automatically exit fullscreen when closing the video player';
|
||
|
||
/// en: 'Auto-Hide Performance Overlay'
|
||
String get autoHidePerformanceOverlay => 'Auto-Hide Performance Overlay';
|
||
|
||
/// en: 'Fade the performance overlay with the playback controls'
|
||
String get autoHidePerformanceOverlayDescription => 'Fade the performance overlay with the playback controls';
|
||
|
||
/// en: 'Show Navigation Bar Labels'
|
||
String get showNavBarLabels => 'Show Navigation Bar Labels';
|
||
|
||
/// en: 'Display text labels under navigation bar icons'
|
||
String get showNavBarLabelsDescription => 'Display text labels under navigation bar icons';
|
||
|
||
/// en: 'Startup Section'
|
||
String get startupSection => 'Startup Section';
|
||
|
||
/// en: 'Default to Favorite Channels'
|
||
String get liveTvDefaultFavorites => 'Default to Favorite Channels';
|
||
|
||
/// en: 'Show only favorite channels when opening Live TV'
|
||
String get liveTvDefaultFavoritesDescription => 'Show only favorite channels when opening Live TV';
|
||
|
||
/// en: 'Display'
|
||
String get display => 'Display';
|
||
|
||
/// en: 'Home Screen'
|
||
String get homeScreen => 'Home Screen';
|
||
|
||
/// en: 'Navigation'
|
||
String get navigation => 'Navigation';
|
||
|
||
/// en: 'Window'
|
||
String get window => 'Window';
|
||
|
||
/// en: 'Content'
|
||
String get content => 'Content';
|
||
|
||
/// en: 'Player'
|
||
String get player => 'Player';
|
||
|
||
/// en: 'Subtitles & Configuration'
|
||
String get subtitlesAndConfig => 'Subtitles & Configuration';
|
||
|
||
/// en: 'Seek & Timing'
|
||
String get seekAndTiming => 'Seek & Timing';
|
||
|
||
/// en: 'Behavior'
|
||
String get behavior => 'Behavior';
|
||
}
|
||
|
||
// Path: search
|
||
class Translations$search$en {
|
||
Translations$search$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Search movies, shows, music...'
|
||
String get hint => 'Search movies, shows, music...';
|
||
|
||
/// en: 'Try a different search term'
|
||
String get tryDifferentTerm => 'Try a different search term';
|
||
|
||
/// en: 'Search your media'
|
||
String get searchYourMedia => 'Search your media';
|
||
|
||
/// en: 'Enter a title, actor, or keyword'
|
||
String get enterTitleActorOrKeyword => 'Enter a title, actor, or keyword';
|
||
}
|
||
|
||
// Path: hotkeys
|
||
class Translations$hotkeys$en {
|
||
Translations$hotkeys$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Set Shortcut for ${actionName}'
|
||
String setShortcutFor({required Object actionName}) => 'Set Shortcut for ${actionName}';
|
||
|
||
/// en: 'Clear shortcut'
|
||
String get clearShortcut => 'Clear shortcut';
|
||
|
||
/// en: 'No shortcut set'
|
||
String get noShortcutSet => 'No shortcut set';
|
||
|
||
/// en: 'Current shortcut:'
|
||
String get currentShortcut => 'Current shortcut:';
|
||
|
||
/// en: 'Select to record a shortcut'
|
||
String get pressToRecord => 'Select to record a shortcut';
|
||
|
||
/// en: 'Press the shortcut now'
|
||
String get recordingShortcut => 'Press the shortcut now';
|
||
|
||
late final Translations$hotkeys$actions$en actions = Translations$hotkeys$actions$en.internal(_root);
|
||
}
|
||
|
||
// Path: fileInfo
|
||
class Translations$fileInfo$en {
|
||
Translations$fileInfo$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'File Info'
|
||
String get title => 'File Info';
|
||
|
||
/// en: 'Video'
|
||
String get video => 'Video';
|
||
|
||
/// en: 'Audio'
|
||
String get audio => 'Audio';
|
||
|
||
/// en: 'File'
|
||
String get file => 'File';
|
||
|
||
/// en: 'Advanced'
|
||
String get advanced => 'Advanced';
|
||
|
||
/// en: 'Codec'
|
||
String get codec => 'Codec';
|
||
|
||
/// en: 'Resolution'
|
||
String get resolution => 'Resolution';
|
||
|
||
/// en: 'Bitrate'
|
||
String get bitrate => 'Bitrate';
|
||
|
||
/// en: 'Frame Rate'
|
||
String get frameRate => 'Frame Rate';
|
||
|
||
/// en: 'Aspect Ratio'
|
||
String get aspectRatio => 'Aspect Ratio';
|
||
|
||
/// en: 'Profile'
|
||
String get profile => 'Profile';
|
||
|
||
/// en: 'Bit Depth'
|
||
String get bitDepth => 'Bit Depth';
|
||
|
||
/// en: 'Color Space'
|
||
String get colorSpace => 'Color Space';
|
||
|
||
/// en: 'Color Range'
|
||
String get colorRange => 'Color Range';
|
||
|
||
/// en: 'Color Primaries'
|
||
String get colorPrimaries => 'Color Primaries';
|
||
|
||
/// en: 'Chroma Subsampling'
|
||
String get chromaSubsampling => 'Chroma Subsampling';
|
||
|
||
/// en: 'Channels'
|
||
String get channels => 'Channels';
|
||
|
||
/// en: 'Subtitles'
|
||
String get subtitles => 'Subtitles';
|
||
|
||
/// en: 'Overall Bitrate'
|
||
String get overallBitrate => 'Overall Bitrate';
|
||
|
||
/// en: 'Path'
|
||
String get path => 'Path';
|
||
|
||
/// en: 'Size'
|
||
String get size => 'Size';
|
||
|
||
/// en: 'Container'
|
||
String get container => 'Container';
|
||
|
||
/// en: 'Duration'
|
||
String get duration => 'Duration';
|
||
|
||
/// en: 'Optimized for Streaming'
|
||
String get optimizedForStreaming => 'Optimized for Streaming';
|
||
|
||
/// en: '64-bit Offsets'
|
||
String get has64bitOffsets => '64-bit Offsets';
|
||
}
|
||
|
||
// Path: mediaMenu
|
||
class Translations$mediaMenu$en {
|
||
Translations$mediaMenu$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Mark as Watched'
|
||
String get markAsWatched => 'Mark as Watched';
|
||
|
||
/// en: 'Mark as Unwatched'
|
||
String get markAsUnwatched => 'Mark as Unwatched';
|
||
|
||
/// en: 'Remove from Continue Watching'
|
||
String get removeFromContinueWatching => 'Remove from Continue Watching';
|
||
|
||
/// en: 'View details'
|
||
String get viewDetails => 'View details';
|
||
|
||
/// en: 'Go to series'
|
||
String get goToSeries => 'Go to series';
|
||
|
||
/// en: 'Shuffle Play'
|
||
String get shufflePlay => 'Shuffle Play';
|
||
|
||
/// en: 'Shuffle not available offline'
|
||
String get shuffleNotAvailableOffline => 'Shuffle not available offline';
|
||
|
||
/// en: 'File Info'
|
||
String get fileInfo => 'File Info';
|
||
|
||
/// en: 'Delete from server'
|
||
String get deleteFromServer => 'Delete from server';
|
||
|
||
/// en: 'Delete this media and its files from your server?'
|
||
String get confirmDelete => 'Delete this media and its files from your server?';
|
||
|
||
/// en: 'This includes all episodes and their files.'
|
||
String get deleteMultipleWarning => 'This includes all episodes and their files.';
|
||
|
||
/// en: 'Media item deleted successfully'
|
||
String get mediaDeletedSuccessfully => 'Media item deleted successfully';
|
||
|
||
/// en: 'Failed to delete media item'
|
||
String get mediaFailedToDelete => 'Failed to delete media item';
|
||
|
||
/// en: 'Rate'
|
||
String get rate => 'Rate';
|
||
|
||
/// en: 'Play from Beginning'
|
||
String get playFromBeginning => 'Play from Beginning';
|
||
|
||
/// en: 'Play Version...'
|
||
String get playVersion => 'Play Version...';
|
||
}
|
||
|
||
// Path: rateSheet
|
||
class Translations$rateSheet$en {
|
||
Translations$rateSheet$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Rate'
|
||
String get title => 'Rate';
|
||
|
||
/// en: 'Server'
|
||
String get server => 'Server';
|
||
|
||
/// en: 'Favorite'
|
||
String get favorite => 'Favorite';
|
||
|
||
/// en: 'Favorited'
|
||
String get favorited => 'Favorited';
|
||
|
||
/// en: 'Saved'
|
||
String get saved => 'Saved';
|
||
|
||
/// en: 'No match found'
|
||
String get notAvailable => 'No match found';
|
||
|
||
/// en: 'Connect a service in Settings to rate there.'
|
||
String get noConnectedServices => 'Connect a service in Settings to rate there.';
|
||
}
|
||
|
||
// Path: accessibility
|
||
class Translations$accessibility$en {
|
||
Translations$accessibility$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: '${title}, movie'
|
||
String mediaCardMovie({required Object title}) => '${title}, movie';
|
||
|
||
/// en: '${title}, TV show'
|
||
String mediaCardShow({required Object title}) => '${title}, TV show';
|
||
|
||
/// en: '${title}, ${episodeInfo}'
|
||
String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}';
|
||
|
||
/// en: '${title}, ${seasonInfo}'
|
||
String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}';
|
||
|
||
/// en: 'watched'
|
||
String get mediaCardWatched => 'watched';
|
||
|
||
/// en: '${percent} percent watched'
|
||
String mediaCardPartiallyWatched({required Object percent}) => '${percent} percent watched';
|
||
|
||
/// en: 'unwatched'
|
||
String get mediaCardUnwatched => 'unwatched';
|
||
|
||
/// en: 'Tap to play'
|
||
String get tapToPlay => 'Tap to play';
|
||
|
||
/// en: 'Decrease'
|
||
String get decrease => 'Decrease';
|
||
|
||
/// en: 'Increase'
|
||
String get increase => 'Increase';
|
||
|
||
/// en: 'Decrease ${label}'
|
||
String decreaseValue({required Object label}) => 'Decrease ${label}';
|
||
|
||
/// en: 'Increase ${label}'
|
||
String increaseValue({required Object label}) => 'Increase ${label}';
|
||
|
||
/// en: 'Hue'
|
||
String get hue => 'Hue';
|
||
|
||
/// en: 'Saturation'
|
||
String get saturation => 'Saturation';
|
||
|
||
/// en: 'Brightness'
|
||
String get brightness => 'Brightness';
|
||
|
||
/// en: 'Hex color'
|
||
String get hexColor => 'Hex color';
|
||
|
||
/// en: 'Expand text'
|
||
String get expandText => 'Expand text';
|
||
|
||
/// en: 'Collapse text'
|
||
String get collapseText => 'Collapse text';
|
||
|
||
/// en: 'Alphabet navigation'
|
||
String get alphabetNavigation => 'Alphabet navigation';
|
||
|
||
/// en: 'Swipe up or down to move by letter'
|
||
String get alphabetScrollHint => 'Swipe up or down to move by letter';
|
||
|
||
/// en: 'Row ${row} of ${rowCount}, column ${column} of ${columnCount}'
|
||
String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Row ${row} of ${rowCount}, column ${column} of ${columnCount}';
|
||
|
||
/// en: 'Row ${row} of ${rowCount}'
|
||
String rowPosition({required Object row, required Object rowCount}) => 'Row ${row} of ${rowCount}';
|
||
}
|
||
|
||
// Path: tooltips
|
||
class Translations$tooltips$en {
|
||
Translations$tooltips$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Shuffle play'
|
||
String get shufflePlay => 'Shuffle play';
|
||
|
||
/// en: 'Play trailer'
|
||
String get playTrailer => 'Play trailer';
|
||
|
||
/// en: 'Mark as watched'
|
||
String get markAsWatched => 'Mark as watched';
|
||
|
||
/// en: 'Mark as unwatched'
|
||
String get markAsUnwatched => 'Mark as unwatched';
|
||
}
|
||
|
||
// Path: audioTracks
|
||
class Translations$audioTracks$en {
|
||
Translations$audioTracks$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Audio Track ${n}'
|
||
String track({required Object n}) => 'Audio Track ${n}';
|
||
}
|
||
|
||
// Path: videoControls
|
||
class Translations$videoControls$en {
|
||
Translations$videoControls$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Audio'
|
||
String get audioLabel => 'Audio';
|
||
|
||
/// en: 'Subtitles'
|
||
String get subtitlesLabel => 'Subtitles';
|
||
|
||
/// en: 'Reset to 0ms'
|
||
String get resetToZero => 'Reset to 0ms';
|
||
|
||
/// en: '+${amount}${unit}'
|
||
String addTime({required Object amount, required Object unit}) => '+${amount}${unit}';
|
||
|
||
/// en: '-${amount}${unit}'
|
||
String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}';
|
||
|
||
/// en: '${label} plays later'
|
||
String playsLater({required Object label}) => '${label} plays later';
|
||
|
||
/// en: '${label} plays earlier'
|
||
String playsEarlier({required Object label}) => '${label} plays earlier';
|
||
|
||
/// en: 'No offset'
|
||
String get noOffset => 'No offset';
|
||
|
||
/// en: 'Letterbox'
|
||
String get letterbox => 'Letterbox';
|
||
|
||
/// en: 'Fill screen'
|
||
String get fillScreen => 'Fill screen';
|
||
|
||
/// en: 'Stretch'
|
||
String get stretch => 'Stretch';
|
||
|
||
/// en: 'Lock rotation'
|
||
String get lockRotation => 'Lock rotation';
|
||
|
||
/// en: 'Unlock rotation'
|
||
String get unlockRotation => 'Unlock rotation';
|
||
|
||
/// en: 'Timer Active'
|
||
String get timerActive => 'Timer Active';
|
||
|
||
/// en: 'Playback will pause in ${duration}'
|
||
String playbackWillPauseIn({required Object duration}) => 'Playback will pause in ${duration}';
|
||
|
||
/// en: 'End of current video'
|
||
String get sleepTimerEndOfVideo => 'End of current video';
|
||
|
||
/// en: 'Stop at'
|
||
String get sleepTimerStopAtHeader => 'Stop at';
|
||
|
||
/// en: 'Timer'
|
||
String get sleepTimerDurationHeader => 'Timer';
|
||
|
||
/// en: 'Playback will pause at the end of this video'
|
||
String get playbackWillPauseAtEnd => 'Playback will pause at the end of this video';
|
||
|
||
/// en: 'Still watching?'
|
||
String get stillWatching => 'Still watching?';
|
||
|
||
/// en: 'Pausing in ${seconds}s'
|
||
String pausingIn({required Object seconds}) => 'Pausing in ${seconds}s';
|
||
|
||
/// en: 'Continue'
|
||
String get continueWatching => 'Continue';
|
||
|
||
/// en: 'Auto-Play Next'
|
||
String get autoPlayNext => 'Auto-Play Next';
|
||
|
||
/// en: 'Play Next'
|
||
String get playNext => 'Play Next';
|
||
|
||
/// en: 'Play'
|
||
String get playButton => 'Play';
|
||
|
||
/// en: 'Pause'
|
||
String get pauseButton => 'Pause';
|
||
|
||
/// en: 'Show playback controls'
|
||
String get showPlaybackControls => 'Show playback controls';
|
||
|
||
/// en: 'Hide playback controls'
|
||
String get hidePlaybackControls => 'Hide playback controls';
|
||
|
||
/// en: 'Seek backward ${seconds} seconds'
|
||
String seekBackwardButton({required Object seconds}) => 'Seek backward ${seconds} seconds';
|
||
|
||
/// en: 'Seek forward ${seconds} seconds'
|
||
String seekForwardButton({required Object seconds}) => 'Seek forward ${seconds} seconds';
|
||
|
||
/// en: 'Previous episode'
|
||
String get previousButton => 'Previous episode';
|
||
|
||
/// en: 'Next episode'
|
||
String get nextButton => 'Next episode';
|
||
|
||
/// en: 'Previous chapter'
|
||
String get previousChapterButton => 'Previous chapter';
|
||
|
||
/// en: 'Next chapter'
|
||
String get nextChapterButton => 'Next chapter';
|
||
|
||
/// en: 'Mute'
|
||
String get muteButton => 'Mute';
|
||
|
||
/// en: 'Unmute'
|
||
String get unmuteButton => 'Unmute';
|
||
|
||
/// en: 'Playback Settings'
|
||
String get settingsButton => 'Playback Settings';
|
||
|
||
/// en: 'Audio & Subtitles'
|
||
String get tracksButton => 'Audio & Subtitles';
|
||
|
||
/// en: 'Chapters'
|
||
String get chaptersButton => 'Chapters';
|
||
|
||
/// en: 'Version & Quality'
|
||
String get versionQualityButton => 'Version & Quality';
|
||
|
||
/// en: 'Version'
|
||
String get versionColumnHeader => 'Version';
|
||
|
||
/// en: 'Quality'
|
||
String get qualityColumnHeader => 'Quality';
|
||
|
||
/// en: 'Original'
|
||
String get qualityOriginal => 'Original';
|
||
|
||
/// en: '${resolution}p ${bitrate} Mbps'
|
||
String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps';
|
||
|
||
/// en: 'Transcoding unavailable — playing original quality'
|
||
String get transcodeUnavailableFallback => 'Transcoding unavailable — playing original quality';
|
||
|
||
/// en: 'Selected subtitles could not be loaded — continuing without subtitles'
|
||
String get subtitleUnavailableFallback => 'Selected subtitles could not be loaded — continuing without subtitles';
|
||
|
||
/// en: 'Picture-in-Picture mode'
|
||
String get pipButton => 'Picture-in-Picture mode';
|
||
|
||
/// en: 'Aspect ratio'
|
||
String get aspectRatioButton => 'Aspect ratio';
|
||
|
||
/// en: 'Ambient lighting'
|
||
String get ambientLighting => 'Ambient lighting';
|
||
|
||
/// en: 'Enter fullscreen'
|
||
String get fullscreenButton => 'Enter fullscreen';
|
||
|
||
/// en: 'Exit fullscreen'
|
||
String get exitFullscreenButton => 'Exit fullscreen';
|
||
|
||
/// en: 'Always on top'
|
||
String get alwaysOnTopButton => 'Always on top';
|
||
|
||
/// en: 'Rotation lock'
|
||
String get rotationLockButton => 'Rotation lock';
|
||
|
||
/// en: 'Lock screen'
|
||
String get lockScreen => 'Lock screen';
|
||
|
||
/// en: 'Screen lock'
|
||
String get screenLockButton => 'Screen lock';
|
||
|
||
/// en: 'Long press to unlock'
|
||
String get longPressToUnlock => 'Long press to unlock';
|
||
|
||
/// en: 'Video timeline'
|
||
String get timelineSlider => 'Video timeline';
|
||
|
||
/// en: 'Volume level'
|
||
String get volumeSlider => 'Volume level';
|
||
|
||
/// en: 'Ends at ${time}'
|
||
String endsAt({required Object time}) => 'Ends at ${time}';
|
||
|
||
/// en: 'Playing in Picture-in-Picture'
|
||
String get pipActive => 'Playing in Picture-in-Picture';
|
||
|
||
/// en: 'Picture-in-picture failed to start'
|
||
String get pipFailed => 'Picture-in-picture failed to start';
|
||
|
||
/// en: 'Screenshot saved'
|
||
String get screenshotSaved => 'Screenshot saved';
|
||
|
||
/// en: 'Zoom ${percent}%'
|
||
String zoomPercent({required Object percent}) => 'Zoom ${percent}%';
|
||
|
||
late final Translations$videoControls$pipErrors$en pipErrors = Translations$videoControls$pipErrors$en.internal(_root);
|
||
|
||
/// en: 'Chapters'
|
||
String get chapters => 'Chapters';
|
||
|
||
/// en: 'No chapters available'
|
||
String get noChaptersAvailable => 'No chapters available';
|
||
|
||
/// en: 'Queue'
|
||
String get queue => 'Queue';
|
||
|
||
/// en: 'No items in queue'
|
||
String get noQueueItems => 'No items in queue';
|
||
|
||
/// en: 'Search Subtitles'
|
||
String get searchSubtitles => 'Search Subtitles';
|
||
|
||
/// en: 'Language'
|
||
String get language => 'Language';
|
||
|
||
/// en: 'No subtitles found'
|
||
String get noSubtitlesFound => 'No subtitles found';
|
||
|
||
/// en: 'No subtitles available'
|
||
String get noSubtitlesAvailable => 'No subtitles available';
|
||
|
||
/// en: 'No audio tracks available'
|
||
String get noAudioTracksAvailable => 'No audio tracks available';
|
||
|
||
/// en: 'No tracks available'
|
||
String get noTracksAvailable => 'No tracks available';
|
||
|
||
/// en: 'Subtitle downloaded'
|
||
String get subtitleDownloaded => 'Subtitle downloaded';
|
||
|
||
/// en: 'Subtitle downloaded, but it could not be selected'
|
||
String get subtitleDownloadedNotApplied => 'Subtitle downloaded, but it could not be selected';
|
||
|
||
/// en: 'Failed to download subtitle'
|
||
String get subtitleDownloadFailed => 'Failed to download subtitle';
|
||
|
||
/// en: 'Search languages...'
|
||
String get searchLanguages => 'Search languages...';
|
||
}
|
||
|
||
// Path: messages
|
||
class Translations$messages$en {
|
||
Translations$messages$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Marked as watched'
|
||
String get markedAsWatched => 'Marked as watched';
|
||
|
||
/// en: 'Marked as unwatched'
|
||
String get markedAsUnwatched => 'Marked as unwatched';
|
||
|
||
/// en: 'Marked as watched (will sync when online)'
|
||
String get markedAsWatchedOffline => 'Marked as watched (will sync when online)';
|
||
|
||
/// en: 'Marked as unwatched (will sync when online)'
|
||
String get markedAsUnwatchedOffline => 'Marked as unwatched (will sync when online)';
|
||
|
||
/// en: 'Auto-removed: ${title}'
|
||
String autoRemovedWatchedDownload({required Object title}) => 'Auto-removed: ${title}';
|
||
|
||
/// en: '(one) {Auto-removed ${n} watched download} (other) {Auto-removed ${n} watched downloads}'
|
||
String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||
one: 'Auto-removed ${n} watched download',
|
||
other: 'Auto-removed ${n} watched downloads',
|
||
);
|
||
|
||
/// en: 'Removed from Continue Watching'
|
||
String get removedFromContinueWatching => 'Removed from Continue Watching';
|
||
|
||
/// en: 'Error: ${error}'
|
||
String errorLoading({required Object error}) => 'Error: ${error}';
|
||
|
||
/// en: 'The stream was interrupted. Press play or seek to retry.'
|
||
String get streamInterrupted => 'The stream was interrupted. Press play or seek to retry.';
|
||
|
||
/// en: 'The live stream was interrupted. Press play to retry.'
|
||
String get liveStreamInterrupted => 'The live stream was interrupted. Press play to retry.';
|
||
|
||
/// en: 'File information not available'
|
||
String get fileInfoNotAvailable => 'File information not available';
|
||
|
||
/// en: 'Sign in to the media server again to play this item.'
|
||
String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.';
|
||
|
||
/// en: 'The media server is unavailable. Try again later.'
|
||
String get playbackServerUnavailable => 'The media server is unavailable. Try again later.';
|
||
|
||
/// en: 'The server returned invalid playback information.'
|
||
String get playbackDataInvalid => 'The server returned invalid playback information.';
|
||
|
||
/// en: 'Playback was canceled.'
|
||
String get playbackCancelled => 'Playback was canceled.';
|
||
|
||
/// en: 'Playback could not be started.'
|
||
String get playbackFailed => 'Playback could not be started.';
|
||
|
||
/// en: 'Error loading file info: ${error}'
|
||
String errorLoadingFileInfo({required Object error}) => 'Error loading file info: ${error}';
|
||
|
||
/// en: 'Error loading series'
|
||
String get errorLoadingSeries => 'Error loading series';
|
||
|
||
/// en: 'Music playback is not yet supported'
|
||
String get musicNotSupported => 'Music playback is not yet supported';
|
||
|
||
/// en: 'No description available'
|
||
String get noDescriptionAvailable => 'No description available';
|
||
|
||
/// en: 'No profiles available'
|
||
String get noProfilesAvailable => 'No profiles available';
|
||
|
||
/// en: 'Contact your server administrator to add profiles'
|
||
String get contactAdminForProfiles => 'Contact your server administrator to add profiles';
|
||
|
||
/// en: 'Unable to determine library section for this item'
|
||
String get unableToDetermineLibrarySection => 'Unable to determine library section for this item';
|
||
|
||
/// en: 'Logs cleared'
|
||
String get logsCleared => 'Logs cleared';
|
||
|
||
/// en: 'Logs copied to clipboard'
|
||
String get logsCopied => 'Logs copied to clipboard';
|
||
|
||
/// en: 'No logs available'
|
||
String get noLogsAvailable => 'No logs available';
|
||
|
||
/// en: 'Scanning "${title}"...'
|
||
String libraryScanning({required Object title}) => 'Scanning "${title}"...';
|
||
|
||
/// en: 'Library scan started for "${title}"'
|
||
String libraryScanStarted({required Object title}) => 'Library scan started for "${title}"';
|
||
|
||
/// en: 'Failed to scan library: ${error}'
|
||
String libraryScanFailed({required Object error}) => 'Failed to scan library: ${error}';
|
||
|
||
/// en: 'Refreshing metadata for "${title}"...'
|
||
String metadataRefreshing({required Object title}) => 'Refreshing metadata for "${title}"...';
|
||
|
||
/// en: 'Metadata refresh started for "${title}"'
|
||
String metadataRefreshStarted({required Object title}) => 'Metadata refresh started for "${title}"';
|
||
|
||
/// en: 'Failed to refresh metadata: ${error}'
|
||
String metadataRefreshFailed({required Object error}) => 'Failed to refresh metadata: ${error}';
|
||
|
||
/// en: 'Are you sure you want to log out?'
|
||
String get logoutConfirm => 'Are you sure you want to log out?';
|
||
|
||
/// en: 'No seasons found'
|
||
String get noSeasonsFound => 'No seasons found';
|
||
|
||
/// en: 'Couldn't load seasons'
|
||
String get seasonsLoadFailed => 'Couldn\'t load seasons';
|
||
|
||
/// en: 'No episodes found in first season'
|
||
String get noEpisodesFound => 'No episodes found in first season';
|
||
|
||
/// en: 'No episodes found'
|
||
String get noEpisodesFoundGeneral => 'No episodes found';
|
||
|
||
/// en: 'Couldn't load episodes'
|
||
String get episodesLoadFailed => 'Couldn\'t load episodes';
|
||
|
||
/// en: 'No results found'
|
||
String get noResultsFound => 'No results found';
|
||
|
||
/// en: 'Sleep timer set for ${label}'
|
||
String sleepTimerSet({required Object label}) => 'Sleep timer set for ${label}';
|
||
|
||
/// en: 'No items available'
|
||
String get noItemsAvailable => 'No items available';
|
||
|
||
/// en: 'Failed to create a play queue — no items'
|
||
String get failedToCreatePlayQueueNoItems => 'Failed to create a play queue — no items';
|
||
|
||
/// en: 'Failed to ${action}: ${error}'
|
||
String failedPlayback({required Object action, required Object error}) => 'Failed to ${action}: ${error}';
|
||
|
||
/// en: 'Switching to compatible player...'
|
||
String get switchingToCompatiblePlayer => 'Switching to compatible player...';
|
||
|
||
/// en: 'Playback failed'
|
||
String get serverLimitTitle => 'Playback failed';
|
||
|
||
/// en: 'Server error (HTTP 500). A bandwidth/transcoding limit likely rejected this session. Ask the owner to adjust it.'
|
||
String get serverLimitBody => 'Server error (HTTP 500). A bandwidth/transcoding limit likely rejected this session. Ask the owner to adjust it.';
|
||
|
||
/// en: 'Logs uploaded'
|
||
String get logsUploaded => 'Logs uploaded';
|
||
|
||
/// en: 'Failed to upload logs'
|
||
String get logsUploadFailed => 'Failed to upload logs';
|
||
|
||
/// en: 'Log ID'
|
||
String get logId => 'Log ID';
|
||
}
|
||
|
||
// Path: subtitlingStyling
|
||
class Translations$subtitlingStyling$en {
|
||
Translations$subtitlingStyling$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Text'
|
||
String get text => 'Text';
|
||
|
||
/// en: 'Border'
|
||
String get border => 'Border';
|
||
|
||
/// en: 'Background'
|
||
String get background => 'Background';
|
||
|
||
/// en: 'Font Size'
|
||
String get fontSize => 'Font Size';
|
||
|
||
/// en: 'Text Color'
|
||
String get textColor => 'Text Color';
|
||
|
||
/// en: 'Border Size'
|
||
String get borderSize => 'Border Size';
|
||
|
||
/// en: 'Border Color'
|
||
String get borderColor => 'Border Color';
|
||
|
||
/// en: 'Background Opacity'
|
||
String get backgroundOpacity => 'Background Opacity';
|
||
|
||
/// en: 'Background Color'
|
||
String get backgroundColor => 'Background Color';
|
||
|
||
/// en: 'Position'
|
||
String get position => 'Position';
|
||
|
||
/// en: 'ASS Override'
|
||
String get assOverride => 'ASS Override';
|
||
|
||
/// en: 'Scale'
|
||
String get overrideScale => 'Scale';
|
||
|
||
/// en: 'Force'
|
||
String get overrideForce => 'Force';
|
||
|
||
/// en: 'Remove styling'
|
||
String get overrideStrip => 'Remove styling';
|
||
|
||
/// en: 'Top'
|
||
String get positionTop => 'Top';
|
||
|
||
/// en: 'Bottom'
|
||
String get positionBottom => 'Bottom';
|
||
|
||
/// en: 'Bold'
|
||
String get bold => 'Bold';
|
||
|
||
/// en: 'Italic'
|
||
String get italic => 'Italic';
|
||
|
||
/// en: 'Render Resolution'
|
||
String get renderResolution => 'Render Resolution';
|
||
|
||
/// en: 'Screen resolution'
|
||
String get renderResolutionScreen => 'Screen resolution';
|
||
|
||
/// en: 'Video resolution'
|
||
String get renderResolutionVideo => 'Video resolution';
|
||
}
|
||
|
||
// Path: mpvConfig
|
||
class Translations$mpvConfig$en {
|
||
Translations$mpvConfig$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'mpv.conf'
|
||
String get title => 'mpv.conf';
|
||
|
||
/// en: 'Advanced video player settings'
|
||
String get description => 'Advanced video player settings';
|
||
|
||
/// en: 'Presets'
|
||
String get presets => 'Presets';
|
||
|
||
/// en: 'No saved presets'
|
||
String get noPresets => 'No saved presets';
|
||
|
||
/// en: 'Save as Preset...'
|
||
String get saveAsPreset => 'Save as Preset...';
|
||
|
||
/// en: 'Preset Name'
|
||
String get presetName => 'Preset Name';
|
||
|
||
/// en: 'Enter a name for this preset'
|
||
String get presetNameHint => 'Enter a name for this preset';
|
||
|
||
/// en: 'Load'
|
||
String get loadPreset => 'Load';
|
||
|
||
/// en: 'Delete'
|
||
String get deletePreset => 'Delete';
|
||
|
||
/// en: 'Preset saved'
|
||
String get presetSaved => 'Preset saved';
|
||
|
||
/// en: 'Preset loaded'
|
||
String get presetLoaded => 'Preset loaded';
|
||
|
||
/// en: 'Preset deleted'
|
||
String get presetDeleted => 'Preset deleted';
|
||
|
||
/// en: 'Are you sure you want to delete this preset?'
|
||
String get confirmDeletePreset => 'Are you sure you want to delete this preset?';
|
||
|
||
/// en: 'gpu-api=vulkan hwdec=auto # comment'
|
||
String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||
}
|
||
|
||
// Path: dialog
|
||
class Translations$dialog$en {
|
||
Translations$dialog$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Confirm Action'
|
||
String get confirmAction => 'Confirm Action';
|
||
}
|
||
|
||
// Path: profiles
|
||
class Translations$profiles$en {
|
||
Translations$profiles$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Add Plezy profile'
|
||
String get addPlezyProfile => 'Add Plezy profile';
|
||
|
||
/// en: 'Switching profile…'
|
||
String get switchingProfile => 'Switching profile…';
|
||
|
||
/// en: 'Delete this profile?'
|
||
String get deleteThisProfileTitle => 'Delete this profile?';
|
||
|
||
/// en: 'Remove ${displayName}. Connections aren't affected.'
|
||
String deleteThisProfileMessage({required Object displayName}) => 'Remove ${displayName}. Connections aren\'t affected.';
|
||
|
||
/// en: 'Active'
|
||
String get active => 'Active';
|
||
|
||
/// en: 'Manage'
|
||
String get manage => 'Manage';
|
||
|
||
/// en: 'Delete'
|
||
String get delete => 'Delete';
|
||
|
||
/// en: 'Sign out'
|
||
String get signOut => 'Sign out';
|
||
|
||
/// en: 'Sign out of Plex?'
|
||
String get signOutPlexTitle => 'Sign out of Plex?';
|
||
|
||
/// en: 'Remove ${displayName} and all Plex Home users? Sign back in anytime.'
|
||
String signOutPlexMessage({required Object displayName}) => 'Remove ${displayName} and all Plex Home users? Sign back in anytime.';
|
||
|
||
/// en: 'Signed out of Plex.'
|
||
String get signedOutPlex => 'Signed out of Plex.';
|
||
|
||
/// en: 'Sign out failed.'
|
||
String get signOutFailed => 'Sign out failed.';
|
||
|
||
/// en: 'Profiles'
|
||
String get sectionTitle => 'Profiles';
|
||
|
||
/// en: 'Add profiles to mix managed users and local identities'
|
||
String get summarySingle => 'Add profiles to mix managed users and local identities';
|
||
|
||
/// en: '${count} profiles · active: ${activeName}'
|
||
String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profiles · active: ${activeName}';
|
||
|
||
/// en: '${count} profiles'
|
||
String summaryMultiple({required Object count}) => '${count} profiles';
|
||
|
||
/// en: 'Remove connection?'
|
||
String get removeConnectionTitle => 'Remove connection?';
|
||
|
||
/// en: 'Remove ${displayName}'s access to ${connectionLabel}. Other profiles keep it.'
|
||
String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Remove ${displayName}\'s access to ${connectionLabel}. Other profiles keep it.';
|
||
|
||
/// en: 'Delete profile?'
|
||
String get deleteProfileTitle => 'Delete profile?';
|
||
|
||
/// en: 'Remove ${displayName} and its connections. Servers stay available.'
|
||
String deleteProfileMessage({required Object displayName}) => 'Remove ${displayName} and its connections. Servers stay available.';
|
||
|
||
/// en: 'Profile name'
|
||
String get profileNameLabel => 'Profile name';
|
||
|
||
/// en: 'PIN protection'
|
||
String get pinProtectionLabel => 'PIN protection';
|
||
|
||
/// en: 'PIN managed by Plex. Edit on plex.tv.'
|
||
String get pinManagedByPlex => 'PIN managed by Plex. Edit on plex.tv.';
|
||
|
||
/// en: 'No PIN set. To require one, edit the home user on plex.tv.'
|
||
String get noPinSetEditOnPlex => 'No PIN set. To require one, edit the home user on plex.tv.';
|
||
|
||
/// en: 'Set PIN'
|
||
String get setPin => 'Set PIN';
|
||
|
||
/// en: 'Set PIN'
|
||
String get setPinTitle => 'Set PIN';
|
||
|
||
/// en: 'Confirm PIN'
|
||
String get confirmPinTitle => 'Confirm PIN';
|
||
|
||
/// en: 'PIN set'
|
||
String get pinSet => 'PIN set';
|
||
|
||
/// en: 'Change'
|
||
String get changePin => 'Change';
|
||
|
||
/// en: 'Remove'
|
||
String get removePin => 'Remove';
|
||
|
||
/// en: 'Connections'
|
||
String get connectionsLabel => 'Connections';
|
||
|
||
/// en: 'Add'
|
||
String get add => 'Add';
|
||
|
||
/// en: 'Delete profile'
|
||
String get deleteProfileButton => 'Delete profile';
|
||
|
||
/// en: 'No connections — add one to use this profile.'
|
||
String get noConnectionsHint => 'No connections — add one to use this profile.';
|
||
|
||
/// en: 'No connections'
|
||
String get noConnections => 'No connections';
|
||
|
||
/// en: 'Plex Home account'
|
||
String get plexHomeAccount => 'Plex Home account';
|
||
|
||
/// en: 'Default'
|
||
String get connectionDefault => 'Default';
|
||
|
||
/// en: 'as ${displayName}'
|
||
String connectionAs({required Object displayName}) => 'as ${displayName}';
|
||
|
||
/// en: 'Make default'
|
||
String get makeDefault => 'Make default';
|
||
|
||
/// en: 'Remove'
|
||
String get removeConnection => 'Remove';
|
||
|
||
/// en: 'Profile renamed.'
|
||
String get profileRenamed => 'Profile renamed.';
|
||
|
||
/// en: 'Add to ${displayName}'
|
||
String borrowAddTo({required Object displayName}) => 'Add to ${displayName}';
|
||
|
||
/// en: 'Borrow another profile's connection. PIN-protected profiles require a PIN.'
|
||
String get borrowExplain => 'Borrow another profile\'s connection. PIN-protected profiles require a PIN.';
|
||
|
||
/// en: 'Nothing to borrow yet.'
|
||
String get borrowEmpty => 'Nothing to borrow yet.';
|
||
|
||
/// en: 'Connect Plex or Jellyfin to another profile first.'
|
||
String get borrowEmptySubtitle => 'Connect Plex or Jellyfin to another profile first.';
|
||
|
||
/// en: 'Available connections could not be loaded. Try again.'
|
||
String get borrowLoadFailed => 'Available connections could not be loaded. Try again.';
|
||
|
||
/// en: 'From ${displayName}'
|
||
String borrowFromProfile({required Object displayName}) => 'From ${displayName}';
|
||
|
||
/// en: 'Connection borrowed.'
|
||
String get borrowConnectionBorrowed => 'Connection borrowed.';
|
||
|
||
/// en: 'Failed to borrow connection.'
|
||
String get borrowFailed => 'Failed to borrow connection.';
|
||
|
||
/// en: 'Incorrect PIN.'
|
||
String get incorrectPin => 'Incorrect PIN.';
|
||
|
||
/// en: 'Incorrect PIN. Please try again.'
|
||
String get incorrectPinTryAgain => 'Incorrect PIN. Please try again.';
|
||
|
||
/// en: 'Source profile is missing its parent account.'
|
||
String get sourceProfileMissingParentAccount => 'Source profile is missing its parent account.';
|
||
|
||
/// en: 'Could not load your Plex Home users. Check your connection and try again.'
|
||
String get failedToLoadHomeUsers => 'Could not load your Plex Home users. Check your connection and try again.';
|
||
|
||
/// en: 'Failed to verify PIN.'
|
||
String get failedToVerifyPin => 'Failed to verify PIN.';
|
||
|
||
/// en: 'New profile'
|
||
String get newProfile => 'New profile';
|
||
|
||
/// en: 'e.g. Guests, Kids, Family Room'
|
||
String get profileNameHint => 'e.g. Guests, Kids, Family Room';
|
||
|
||
/// en: 'PIN protection (optional)'
|
||
String get pinProtectionOptional => 'PIN protection (optional)';
|
||
|
||
/// en: '4-digit PIN required to switch profiles.'
|
||
String get pinExplain => '4-digit PIN required to switch profiles.';
|
||
|
||
/// en: 'Continue'
|
||
String get continueButton => 'Continue';
|
||
|
||
/// en: 'PINs don't match'
|
||
String get pinsDontMatch => 'PINs don\'t match';
|
||
}
|
||
|
||
// Path: connections
|
||
class Translations$connections$en {
|
||
Translations$connections$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Connections'
|
||
String get sectionTitle => 'Connections';
|
||
|
||
/// en: 'Add connection'
|
||
String get addConnection => 'Add connection';
|
||
|
||
/// en: 'Sign in with Plex or connect a Jellyfin server'
|
||
String get addConnectionSubtitleNoProfile => 'Sign in with Plex or connect a Jellyfin server';
|
||
|
||
/// en: 'Add to ${displayName}: Plex, Jellyfin, or another profile connection'
|
||
String addConnectionSubtitleScoped({required Object displayName}) => 'Add to ${displayName}: Plex, Jellyfin, or another profile connection';
|
||
|
||
/// en: 'Session expired for ${name}'
|
||
String sessionExpiredOne({required Object name}) => 'Session expired for ${name}';
|
||
|
||
/// en: 'Session expired for ${count} servers'
|
||
String sessionExpiredMany({required Object count}) => 'Session expired for ${count} servers';
|
||
|
||
/// en: 'Sign in again'
|
||
String get signInAgain => 'Sign in again';
|
||
|
||
/// en: 'Edit Jellyfin connection'
|
||
String get editJellyfinTitle => 'Edit Jellyfin connection';
|
||
|
||
/// en: 'Add or remove URLs for ${serverName}. Plezy will use the reachable URL with the lowest latency.'
|
||
String editJellyfinIntro({required Object serverName}) => 'Add or remove URLs for ${serverName}. Plezy will use the reachable URL with the lowest latency.';
|
||
}
|
||
|
||
// Path: discover
|
||
class Translations$discover$en {
|
||
Translations$discover$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Discover'
|
||
String get title => 'Discover';
|
||
|
||
/// en: 'No content available'
|
||
String get noContentAvailable => 'No content available';
|
||
|
||
/// en: 'Add some media to your libraries'
|
||
String get addMediaToLibraries => 'Add some media to your libraries';
|
||
|
||
/// en: 'Continue Watching'
|
||
String get continueWatching => 'Continue Watching';
|
||
|
||
/// en: 'Continue Watching in ${library}'
|
||
String continueWatchingIn({required Object library}) => 'Continue Watching in ${library}';
|
||
|
||
/// en: 'Next Up'
|
||
String get nextUp => 'Next Up';
|
||
|
||
/// en: 'Next Up in ${library}'
|
||
String nextUpIn({required Object library}) => 'Next Up in ${library}';
|
||
|
||
/// en: 'Recently Added'
|
||
String get recentlyAdded => 'Recently Added';
|
||
|
||
/// en: 'Recently Added in ${library}'
|
||
String recentlyAddedIn({required Object library}) => 'Recently Added in ${library}';
|
||
|
||
/// en: 'Latest Albums in ${library}'
|
||
String latestAlbumsIn({required Object library}) => 'Latest Albums in ${library}';
|
||
|
||
/// en: 'Recently Played in ${library}'
|
||
String recentlyPlayedIn({required Object library}) => 'Recently Played in ${library}';
|
||
|
||
/// en: 'Most Played in ${library}'
|
||
String mostPlayedIn({required Object library}) => 'Most Played in ${library}';
|
||
|
||
/// en: 'S${season}E${episode}'
|
||
String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}';
|
||
|
||
/// en: 'Overview'
|
||
String get overview => 'Overview';
|
||
|
||
/// en: 'Cast'
|
||
String get cast => 'Cast';
|
||
|
||
/// en: 'Trailers & Extras'
|
||
String get extras => 'Trailers & Extras';
|
||
|
||
/// en: 'Studio'
|
||
String get studio => 'Studio';
|
||
|
||
/// en: 'Rating'
|
||
String get rating => 'Rating';
|
||
|
||
/// en: 'Director'
|
||
String get director => 'Director';
|
||
|
||
/// en: 'Directors'
|
||
String get directors => 'Directors';
|
||
|
||
/// en: 'Movie'
|
||
String get movie => 'Movie';
|
||
|
||
/// en: 'TV Show'
|
||
String get tvShow => 'TV Show';
|
||
|
||
/// en: '${minutes} min left'
|
||
String minutesLeft({required Object minutes}) => '${minutes} min left';
|
||
|
||
/// en: 'More Like This'
|
||
String get moreLikeThis => 'More Like This';
|
||
}
|
||
|
||
// Path: errors
|
||
class Translations$errors$en {
|
||
Translations$errors$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Search failed: ${error}'
|
||
String searchFailed({required Object error}) => 'Search failed: ${error}';
|
||
|
||
/// en: 'Connection timeout while loading ${context}'
|
||
String connectionTimeout({required Object context}) => 'Connection timeout while loading ${context}';
|
||
|
||
/// en: 'Unable to connect to media server'
|
||
String get connectionFailed => 'Unable to connect to media server';
|
||
|
||
/// en: 'Unable to load ${context}. Please try again.'
|
||
String unableToLoad({required Object context}) => 'Unable to load ${context}. Please try again.';
|
||
|
||
/// en: 'No client available'
|
||
String get noClientAvailable => 'No client available';
|
||
|
||
/// en: 'Please enter a token'
|
||
String get pleaseEnterToken => 'Please enter a token';
|
||
|
||
/// en: 'Invalid token'
|
||
String get invalidToken => 'Invalid token';
|
||
|
||
/// en: 'Failed to verify token: ${error}'
|
||
String failedToVerifyToken({required Object error}) => 'Failed to verify token: ${error}';
|
||
|
||
/// en: 'Failed to switch to ${displayName}'
|
||
String failedToSwitchProfile({required Object displayName}) => 'Failed to switch to ${displayName}';
|
||
|
||
/// en: 'Failed to delete ${displayName}'
|
||
String failedToDeleteProfile({required Object displayName}) => 'Failed to delete ${displayName}';
|
||
|
||
/// en: 'Couldn't update rating'
|
||
String get failedToRate => 'Couldn\'t update rating';
|
||
}
|
||
|
||
// Path: libraries
|
||
class Translations$libraries$en {
|
||
Translations$libraries$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Libraries'
|
||
String get title => 'Libraries';
|
||
|
||
/// en: 'Library'
|
||
String get fallbackTitle => 'Library';
|
||
|
||
/// en: 'Scan Library Files'
|
||
String get scanLibraryFiles => 'Scan Library Files';
|
||
|
||
/// en: 'Scan Library'
|
||
String get scanLibrary => 'Scan Library';
|
||
|
||
/// en: 'Analyze'
|
||
String get analyze => 'Analyze';
|
||
|
||
/// en: 'Analyze Library'
|
||
String get analyzeLibrary => 'Analyze Library';
|
||
|
||
/// en: 'Refresh Metadata'
|
||
String get refreshMetadata => 'Refresh Metadata';
|
||
|
||
/// en: 'Empty Trash'
|
||
String get emptyTrash => 'Empty Trash';
|
||
|
||
/// en: 'Emptying trash for "${title}"...'
|
||
String emptyingTrash({required Object title}) => 'Emptying trash for "${title}"...';
|
||
|
||
/// en: 'Trash emptied for "${title}"'
|
||
String trashEmptied({required Object title}) => 'Trash emptied for "${title}"';
|
||
|
||
/// en: 'Failed to empty trash: ${error}'
|
||
String failedToEmptyTrash({required Object error}) => 'Failed to empty trash: ${error}';
|
||
|
||
/// en: 'Analyzing "${title}"...'
|
||
String analyzing({required Object title}) => 'Analyzing "${title}"...';
|
||
|
||
/// en: 'Analysis started for "${title}"'
|
||
String analysisStarted({required Object title}) => 'Analysis started for "${title}"';
|
||
|
||
/// en: 'Failed to analyze library: ${error}'
|
||
String failedToAnalyze({required Object error}) => 'Failed to analyze library: ${error}';
|
||
|
||
/// en: 'No libraries found'
|
||
String get noLibrariesFound => 'No libraries found';
|
||
|
||
/// en: 'All libraries are hidden'
|
||
String get allLibrariesHidden => 'All libraries are hidden';
|
||
|
||
/// en: 'Hidden libraries (${count})'
|
||
String hiddenLibrariesCount({required Object count}) => 'Hidden libraries (${count})';
|
||
|
||
/// en: 'This library is empty'
|
||
String get thisLibraryIsEmpty => 'This library is empty';
|
||
|
||
/// en: 'No items match the active filters'
|
||
String get noItemsMatchFilters => 'No items match the active filters';
|
||
|
||
/// en: 'Reset filters'
|
||
String get resetFilters => 'Reset filters';
|
||
|
||
/// en: 'All'
|
||
String get all => 'All';
|
||
|
||
/// en: 'Clear All'
|
||
String get clearAll => 'Clear All';
|
||
|
||
/// en: 'Are you sure you want to scan "${title}"?'
|
||
String scanLibraryConfirm({required Object title}) => 'Are you sure you want to scan "${title}"?';
|
||
|
||
/// en: 'Are you sure you want to analyze "${title}"?'
|
||
String analyzeLibraryConfirm({required Object title}) => 'Are you sure you want to analyze "${title}"?';
|
||
|
||
/// en: 'Are you sure you want to refresh metadata for "${title}"?'
|
||
String refreshMetadataConfirm({required Object title}) => 'Are you sure you want to refresh metadata for "${title}"?';
|
||
|
||
/// en: 'Are you sure you want to empty trash for "${title}"?'
|
||
String emptyTrashConfirm({required Object title}) => 'Are you sure you want to empty trash for "${title}"?';
|
||
|
||
/// en: 'Manage Libraries'
|
||
String get manageLibraries => 'Manage Libraries';
|
||
|
||
/// en: 'Sort'
|
||
String get sort => 'Sort';
|
||
|
||
/// en: 'Sort By'
|
||
String get sortBy => 'Sort By';
|
||
|
||
/// en: 'Filters'
|
||
String get filters => 'Filters';
|
||
|
||
/// en: 'Are you sure you want to perform this action?'
|
||
String get confirmActionMessage => 'Are you sure you want to perform this action?';
|
||
|
||
/// en: 'Show library'
|
||
String get showLibrary => 'Show library';
|
||
|
||
/// en: 'Hide library'
|
||
String get hideLibrary => 'Hide library';
|
||
|
||
/// en: 'Library options'
|
||
String get libraryOptions => 'Library options';
|
||
|
||
/// en: 'library content'
|
||
String get content => 'library content';
|
||
|
||
/// en: 'Select library'
|
||
String get selectLibrary => 'Select library';
|
||
|
||
/// en: 'Filters (${count})'
|
||
String filtersWithCount({required Object count}) => 'Filters (${count})';
|
||
|
||
/// en: 'No recommendations available'
|
||
String get noRecommendations => 'No recommendations available';
|
||
|
||
/// en: 'No collections in this library'
|
||
String get noCollections => 'No collections in this library';
|
||
|
||
/// en: 'No folders found'
|
||
String get noFoldersFound => 'No folders found';
|
||
|
||
/// en: 'folders'
|
||
String get folders => 'folders';
|
||
|
||
late final Translations$libraries$tabs$en tabs = Translations$libraries$tabs$en.internal(_root);
|
||
late final Translations$libraries$groupings$en groupings = Translations$libraries$groupings$en.internal(_root);
|
||
late final Translations$libraries$filterCategories$en filterCategories = Translations$libraries$filterCategories$en.internal(_root);
|
||
late final Translations$libraries$sortLabels$en sortLabels = Translations$libraries$sortLabels$en.internal(_root);
|
||
}
|
||
|
||
// Path: about
|
||
class Translations$about$en {
|
||
Translations$about$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'About'
|
||
String get title => 'About';
|
||
|
||
/// en: 'Open Source Licenses'
|
||
String get openSourceLicenses => 'Open Source Licenses';
|
||
|
||
/// en: 'Version ${version}'
|
||
String versionLabel({required Object version}) => 'Version ${version}';
|
||
|
||
/// en: 'A beautiful Plex and Jellyfin client for Flutter'
|
||
String get appDescription => 'A beautiful Plex and Jellyfin client for Flutter';
|
||
|
||
/// en: 'View licenses of third-party libraries'
|
||
String get viewLicensesDescription => 'View licenses of third-party libraries';
|
||
}
|
||
|
||
// Path: serverSelection
|
||
class Translations$serverSelection$en {
|
||
Translations$serverSelection$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'No servers found for ${username} (${email})'
|
||
String noServersFoundForAccount({required Object username, required Object email}) => 'No servers found for ${username} (${email})';
|
||
|
||
/// en: 'Failed to load servers: ${error}'
|
||
String failedToLoadServers({required Object error}) => 'Failed to load servers: ${error}';
|
||
}
|
||
|
||
// Path: hubDetail
|
||
class Translations$hubDetail$en {
|
||
Translations$hubDetail$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Title'
|
||
String get title => 'Title';
|
||
|
||
/// en: 'Release Year'
|
||
String get releaseYear => 'Release Year';
|
||
|
||
/// en: 'Date Added'
|
||
String get dateAdded => 'Date Added';
|
||
|
||
/// en: 'Rating'
|
||
String get rating => 'Rating';
|
||
|
||
/// en: 'No items found'
|
||
String get noItemsFound => 'No items found';
|
||
}
|
||
|
||
// Path: logs
|
||
class Translations$logs$en {
|
||
Translations$logs$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Clear Logs'
|
||
String get clearLogs => 'Clear Logs';
|
||
|
||
/// en: 'Copy Logs'
|
||
String get copyLogs => 'Copy Logs';
|
||
|
||
/// en: 'Upload Logs'
|
||
String get uploadLogs => 'Upload Logs';
|
||
}
|
||
|
||
// Path: licenses
|
||
class Translations$licenses$en {
|
||
Translations$licenses$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Related Packages'
|
||
String get relatedPackages => 'Related Packages';
|
||
|
||
/// en: 'License'
|
||
String get license => 'License';
|
||
|
||
/// en: 'License ${number}'
|
||
String licenseNumber({required Object number}) => 'License ${number}';
|
||
|
||
/// en: '${count} licenses'
|
||
String licensesCount({required Object count}) => '${count} licenses';
|
||
}
|
||
|
||
// Path: navigation
|
||
class Translations$navigation$en {
|
||
Translations$navigation$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Libraries'
|
||
String get libraries => 'Libraries';
|
||
|
||
/// en: 'Downloads'
|
||
String get downloads => 'Downloads';
|
||
|
||
/// en: 'Live TV'
|
||
String get liveTv => 'Live TV';
|
||
|
||
/// en: 'Explore'
|
||
String get explore => 'Explore';
|
||
}
|
||
|
||
// Path: explore
|
||
class Translations$explore$en {
|
||
Translations$explore$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Explore'
|
||
String get title => 'Explore';
|
||
|
||
/// en: 'Select source'
|
||
String get selectSource => 'Select source';
|
||
|
||
late final Translations$explore$rows$en rows = Translations$explore$rows$en.internal(_root);
|
||
late final Translations$explore$status$en status = Translations$explore$status$en.internal(_root);
|
||
|
||
/// en: '(one) {${n} episode} (other) {${n} episodes}'
|
||
String episodeCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||
one: '${n} episode',
|
||
other: '${n} episodes',
|
||
);
|
||
|
||
/// en: 'Cast'
|
||
String get cast => 'Cast';
|
||
|
||
/// en: 'Characters'
|
||
String get characters => 'Characters';
|
||
|
||
/// en: 'Add to Watchlist'
|
||
String get addToWatchlist => 'Add to Watchlist';
|
||
|
||
/// en: 'Remove from Watchlist'
|
||
String get removeFromWatchlist => 'Remove from Watchlist';
|
||
|
||
/// en: 'Couldn't update watchlist'
|
||
String get watchlistUpdateFailed => 'Couldn\'t update watchlist';
|
||
|
||
/// en: 'Not in your library'
|
||
String get notInLibrary => 'Not in your library';
|
||
|
||
/// en: 'In these libraries'
|
||
String get inTheseLibraries => 'In these libraries';
|
||
|
||
/// en: 'Checking your library...'
|
||
String get checkingLibrary => 'Checking your library...';
|
||
|
||
/// en: 'Nothing here yet'
|
||
String get emptyTitle => 'Nothing here yet';
|
||
|
||
/// en: 'Rows from ${source} will appear here once they have content.'
|
||
String emptyMessage({required Object source}) => 'Rows from ${source} will appear here once they have content.';
|
||
|
||
/// en: 'Search ${source}'
|
||
String searchHint({required Object source}) => 'Search ${source}';
|
||
|
||
/// en: 'No results for "${query}"'
|
||
String searchEmpty({required Object query}) => 'No results for "${query}"';
|
||
|
||
/// en: 'Search for movies and shows on ${source}.'
|
||
String searchPrompt({required Object source}) => 'Search for movies and shows on ${source}.';
|
||
|
||
/// en: 'Search failed. Check your connection and try again.'
|
||
String get searchFailed => 'Search failed. Check your connection and try again.';
|
||
}
|
||
|
||
// Path: liveTv
|
||
class Translations$liveTv$en {
|
||
Translations$liveTv$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Live TV'
|
||
String get title => 'Live TV';
|
||
|
||
/// en: 'Guide'
|
||
String get guide => 'Guide';
|
||
|
||
/// en: 'No channels available'
|
||
String get noChannels => 'No channels available';
|
||
|
||
/// en: 'No DVR configured on any server'
|
||
String get noDvr => 'No DVR configured on any server';
|
||
|
||
/// en: 'Live TV server is not available.'
|
||
String get serverUnavailable => 'Live TV server is not available.';
|
||
|
||
/// en: 'Live TV server is not connected.'
|
||
String get serverNotConnected => 'Live TV server is not connected.';
|
||
|
||
/// en: 'No program data available'
|
||
String get noPrograms => 'No program data available';
|
||
|
||
/// en: 'Live stream failed'
|
||
String get liveStreamFailed => 'Live stream failed';
|
||
|
||
/// en: 'Unknown Program'
|
||
String get unknownProgram => 'Unknown Program';
|
||
|
||
/// en: 'Unknown'
|
||
String get unknownHub => 'Unknown';
|
||
|
||
/// en: 'Unknown error'
|
||
String get unknownError => 'Unknown error';
|
||
|
||
/// en: 'Channel ${number}'
|
||
String channelNumber({required Object number}) => 'Channel ${number}';
|
||
|
||
/// en: 'Unknown channel'
|
||
String get unknownChannel => 'Unknown channel';
|
||
|
||
/// en: 'LIVE'
|
||
String get live => 'LIVE';
|
||
|
||
/// en: 'Reload Guide'
|
||
String get reloadGuide => 'Reload Guide';
|
||
|
||
/// en: 'Now'
|
||
String get now => 'Now';
|
||
|
||
/// en: 'Today'
|
||
String get today => 'Today';
|
||
|
||
/// en: 'Tomorrow'
|
||
String get tomorrow => 'Tomorrow';
|
||
|
||
/// en: 'Midnight'
|
||
String get midnight => 'Midnight';
|
||
|
||
/// en: 'Overnight'
|
||
String get overnight => 'Overnight';
|
||
|
||
/// en: 'Morning'
|
||
String get morning => 'Morning';
|
||
|
||
/// en: 'Daytime'
|
||
String get daytime => 'Daytime';
|
||
|
||
/// en: 'Evening'
|
||
String get evening => 'Evening';
|
||
|
||
/// en: 'Late Night'
|
||
String get lateNight => 'Late Night';
|
||
|
||
/// en: 'What's On'
|
||
String get whatsOn => 'What\'s On';
|
||
|
||
/// en: 'Watch Channel'
|
||
String get watchChannel => 'Watch Channel';
|
||
|
||
/// en: 'Favorites'
|
||
String get favorites => 'Favorites';
|
||
|
||
/// en: 'Reorder Favorites'
|
||
String get reorderFavorites => 'Reorder Favorites';
|
||
|
||
/// en: 'Could not load favorites. Check your connection and try again.'
|
||
String get favoritesLoadFailed => 'Could not load favorites. Check your connection and try again.';
|
||
|
||
/// en: 'Could not update favorites. Check your connection and try again.'
|
||
String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.';
|
||
|
||
/// en: 'Join Session in Progress'
|
||
String get joinSession => 'Join Session in Progress';
|
||
|
||
/// en: 'Watch from start (${minutes} min ago)'
|
||
String watchFromStart({required Object minutes}) => 'Watch from start (${minutes} min ago)';
|
||
|
||
/// en: 'Watch Live'
|
||
String get watchLive => 'Watch Live';
|
||
|
||
/// en: 'Go to Live'
|
||
String get goToLive => 'Go to Live';
|
||
|
||
/// en: 'Record'
|
||
String get record => 'Record';
|
||
|
||
/// en: 'Record Episode'
|
||
String get recordEpisode => 'Record Episode';
|
||
|
||
/// en: 'Record Series'
|
||
String get recordSeries => 'Record Series';
|
||
|
||
/// en: 'Record Options'
|
||
String get recordOptions => 'Record Options';
|
||
|
||
/// en: 'Save to'
|
||
String get saveTo => 'Save to';
|
||
|
||
/// en: 'Recordings'
|
||
String get recordings => 'Recordings';
|
||
|
||
/// en: 'Scheduled'
|
||
String get scheduledRecordings => 'Scheduled';
|
||
|
||
/// en: 'Recording Rules'
|
||
String get recordingRules => 'Recording Rules';
|
||
|
||
/// en: 'Nothing scheduled to record'
|
||
String get noScheduledRecordings => 'Nothing scheduled to record';
|
||
|
||
/// en: 'Manage recording'
|
||
String get manageRecording => 'Manage recording';
|
||
|
||
/// en: 'Cancel recording'
|
||
String get cancelRecording => 'Cancel recording';
|
||
|
||
/// en: 'Cancel this recording?'
|
||
String get cancelRecordingTitle => 'Cancel this recording?';
|
||
|
||
/// en: '${title} will no longer be recorded.'
|
||
String cancelRecordingMessage({required Object title}) => '${title} will no longer be recorded.';
|
||
|
||
/// en: 'Delete rule'
|
||
String get deleteRule => 'Delete rule';
|
||
|
||
/// en: 'Delete recording rule?'
|
||
String get deleteRuleTitle => 'Delete recording rule?';
|
||
|
||
/// en: 'Future episodes of ${title} will not be recorded.'
|
||
String deleteRuleMessage({required Object title}) => 'Future episodes of ${title} will not be recorded.';
|
||
|
||
/// en: 'Recording scheduled'
|
||
String get recordingScheduled => 'Recording scheduled';
|
||
|
||
/// en: 'This program is already scheduled'
|
||
String get alreadyScheduled => 'This program is already scheduled';
|
||
|
||
/// en: 'DVR settings require an admin account'
|
||
String get dvrAdminRequired => 'DVR settings require an admin account';
|
||
|
||
/// en: 'Couldn't schedule recording'
|
||
String get recordingFailed => 'Couldn\'t schedule recording';
|
||
|
||
/// en: 'Couldn't determine recording library'
|
||
String get recordingTargetMissing => 'Couldn\'t determine recording library';
|
||
|
||
/// en: 'Recording not available for this program'
|
||
String get recordNotAvailable => 'Recording not available for this program';
|
||
|
||
/// en: 'Recording canceled'
|
||
String get recordingCancelled => 'Recording canceled';
|
||
|
||
/// en: 'Recording rule deleted'
|
||
String get recordingRuleDeleted => 'Recording rule deleted';
|
||
|
||
/// en: 'Re-evaluate rules'
|
||
String get processRecordingRules => 'Re-evaluate rules';
|
||
|
||
/// en: 'Recording now'
|
||
String get recordingInProgress => 'Recording now';
|
||
|
||
/// en: '${count} scheduled'
|
||
String recordingsCount({required Object count}) => '${count} scheduled';
|
||
|
||
/// en: 'Edit rule'
|
||
String get editRule => 'Edit rule';
|
||
|
||
/// en: 'Edit'
|
||
String get editRuleAction => 'Edit';
|
||
|
||
/// en: 'Recording rule updated'
|
||
String get recordingRuleUpdated => 'Recording rule updated';
|
||
|
||
/// en: 'Guide refresh requested'
|
||
String get guideReloadRequested => 'Guide refresh requested';
|
||
|
||
/// en: 'Rule re-evaluation requested'
|
||
String get rulesProcessRequested => 'Rule re-evaluation requested';
|
||
|
||
/// en: 'Record show'
|
||
String get recordShow => 'Record show';
|
||
}
|
||
|
||
// Path: collections
|
||
class Translations$collections$en {
|
||
Translations$collections$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Collections'
|
||
String get title => 'Collections';
|
||
|
||
/// en: 'Collection'
|
||
String get collection => 'Collection';
|
||
|
||
/// en: 'Collection is empty'
|
||
String get empty => 'Collection is empty';
|
||
|
||
/// en: 'Delete Collection'
|
||
String get deleteCollection => 'Delete Collection';
|
||
|
||
/// en: 'Delete "${title}"? This can't be undone.'
|
||
String deleteConfirm({required Object title}) => 'Delete "${title}"? This can\'t be undone.';
|
||
|
||
/// en: 'Collection deleted'
|
||
String get deleted => 'Collection deleted';
|
||
|
||
/// en: 'Failed to delete collection'
|
||
String get deleteFailed => 'Failed to delete collection';
|
||
|
||
/// en: 'Failed to delete collection: ${error}'
|
||
String deleteFailedWithError({required Object error}) => 'Failed to delete collection: ${error}';
|
||
|
||
/// en: 'Select Collection'
|
||
String get selectCollection => 'Select Collection';
|
||
|
||
/// en: 'Collection Name'
|
||
String get collectionName => 'Collection Name';
|
||
|
||
/// en: 'Enter collection name'
|
||
String get enterCollectionName => 'Enter collection name';
|
||
|
||
/// en: 'Added to collection'
|
||
String get addedToCollection => 'Added to collection';
|
||
|
||
/// en: 'Failed to add to collection'
|
||
String get errorAddingToCollection => 'Failed to add to collection';
|
||
|
||
/// en: 'Collection created'
|
||
String get created => 'Collection created';
|
||
|
||
/// en: 'Remove from collection'
|
||
String get removeFromCollection => 'Remove from collection';
|
||
|
||
/// en: 'Remove "${title}" from this collection?'
|
||
String removeFromCollectionConfirm({required Object title}) => 'Remove "${title}" from this collection?';
|
||
|
||
/// en: 'Removed from collection'
|
||
String get removedFromCollection => 'Removed from collection';
|
||
|
||
/// en: 'Failed to remove from collection'
|
||
String get removeFromCollectionFailed => 'Failed to remove from collection';
|
||
|
||
/// en: 'Error removing from collection: ${error}'
|
||
String removeFromCollectionError({required Object error}) => 'Error removing from collection: ${error}';
|
||
|
||
/// en: 'Search collections...'
|
||
String get searchCollections => 'Search collections...';
|
||
}
|
||
|
||
// Path: playlists
|
||
class Translations$playlists$en {
|
||
Translations$playlists$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Playlists'
|
||
String get title => 'Playlists';
|
||
|
||
/// en: 'Playlist'
|
||
String get playlist => 'Playlist';
|
||
|
||
/// en: 'No playlists found'
|
||
String get noPlaylists => 'No playlists found';
|
||
|
||
/// en: 'Create Playlist'
|
||
String get create => 'Create Playlist';
|
||
|
||
/// en: 'Playlist Name'
|
||
String get playlistName => 'Playlist Name';
|
||
|
||
/// en: 'Enter playlist name'
|
||
String get enterPlaylistName => 'Enter playlist name';
|
||
|
||
/// en: 'Delete Playlist'
|
||
String get delete => 'Delete Playlist';
|
||
|
||
/// en: 'Remove from Playlist'
|
||
String get removeItem => 'Remove from Playlist';
|
||
|
||
/// en: 'Smart Playlist'
|
||
String get smartPlaylist => 'Smart Playlist';
|
||
|
||
/// en: '${count} items'
|
||
String itemCount({required Object count}) => '${count} items';
|
||
|
||
/// en: '1 item'
|
||
String get oneItem => '1 item';
|
||
|
||
/// en: 'This playlist is empty'
|
||
String get emptyPlaylist => 'This playlist is empty';
|
||
|
||
/// en: 'Delete Playlist?'
|
||
String get deleteConfirm => 'Delete Playlist?';
|
||
|
||
/// en: 'Are you sure you want to delete "${name}"?'
|
||
String deleteMessage({required Object name}) => 'Are you sure you want to delete "${name}"?';
|
||
|
||
/// en: 'Playlist created'
|
||
String get created => 'Playlist created';
|
||
|
||
/// en: 'Playlist deleted'
|
||
String get deleted => 'Playlist deleted';
|
||
|
||
/// en: 'Added to playlist'
|
||
String get itemAdded => 'Added to playlist';
|
||
|
||
/// en: 'Removed from playlist'
|
||
String get itemRemoved => 'Removed from playlist';
|
||
|
||
/// en: 'Select Playlist'
|
||
String get selectPlaylist => 'Select Playlist';
|
||
|
||
/// en: 'Search playlists...'
|
||
String get searchPlaylists => 'Search playlists...';
|
||
|
||
/// en: 'Failed to create playlist'
|
||
String get errorCreating => 'Failed to create playlist';
|
||
|
||
/// en: 'Failed to delete playlist'
|
||
String get errorDeleting => 'Failed to delete playlist';
|
||
|
||
/// en: 'Failed to load playlists'
|
||
String get errorLoading => 'Failed to load playlists';
|
||
|
||
/// en: 'Failed to add to playlist'
|
||
String get errorAdding => 'Failed to add to playlist';
|
||
|
||
/// en: 'Failed to reorder playlist item'
|
||
String get errorReordering => 'Failed to reorder playlist item';
|
||
|
||
/// en: 'Failed to remove from playlist'
|
||
String get errorRemoving => 'Failed to remove from playlist';
|
||
}
|
||
|
||
// Path: music
|
||
class Translations$music$en {
|
||
Translations$music$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Go to album'
|
||
String get goToAlbum => 'Go to album';
|
||
|
||
/// en: 'Go to artist'
|
||
String get goToArtist => 'Go to artist';
|
||
|
||
/// en: 'Instant Mix'
|
||
String get instantMix => 'Instant Mix';
|
||
|
||
/// en: 'Play next'
|
||
String get playNext => 'Play next';
|
||
|
||
/// en: 'Add to queue'
|
||
String get addToQueue => 'Add to queue';
|
||
|
||
/// en: 'Disc ${n}'
|
||
String discNumber({required Object n}) => 'Disc ${n}';
|
||
|
||
/// en: '(one) {${n} track} (other) {${n} tracks}'
|
||
String trackCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||
one: '${n} track',
|
||
other: '${n} tracks',
|
||
);
|
||
|
||
/// en: 'Now Playing'
|
||
String get nowPlaying => 'Now Playing';
|
||
|
||
/// en: 'Playing from ${title}'
|
||
String playingFrom({required Object title}) => 'Playing from ${title}';
|
||
|
||
/// en: 'Queue'
|
||
String get queue => 'Queue';
|
||
|
||
/// en: 'Clear queue'
|
||
String get clearQueue => 'Clear queue';
|
||
|
||
/// en: 'Lyrics'
|
||
String get lyrics => 'Lyrics';
|
||
|
||
/// en: 'No lyrics available'
|
||
String get noLyrics => 'No lyrics available';
|
||
|
||
/// en: 'Sleep timer'
|
||
String get sleepTimer => 'Sleep timer';
|
||
|
||
/// en: 'End of track'
|
||
String get sleepTimerEndOfTrack => 'End of track';
|
||
|
||
/// en: '${n} minutes'
|
||
String sleepTimerMinutes({required Object n}) => '${n} minutes';
|
||
|
||
/// en: 'Stop playback'
|
||
String get stopPlayback => 'Stop playback';
|
||
|
||
/// en: 'Previous track'
|
||
String get previousTrack => 'Previous track';
|
||
|
||
/// en: 'Next track'
|
||
String get nextTrack => 'Next track';
|
||
|
||
/// en: 'Repeat'
|
||
String get repeat => 'Repeat';
|
||
|
||
/// en: 'Repeat all'
|
||
String get repeatAll => 'Repeat all';
|
||
|
||
/// en: 'Repeat one'
|
||
String get repeatOne => 'Repeat one';
|
||
}
|
||
|
||
// Path: watchTogether
|
||
class Translations$watchTogether$en {
|
||
Translations$watchTogether$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Watch Together'
|
||
String get title => 'Watch Together';
|
||
|
||
/// en: 'Watch content in sync with friends and family'
|
||
String get description => 'Watch content in sync with friends and family';
|
||
|
||
/// en: 'Create Session'
|
||
String get createSession => 'Create Session';
|
||
|
||
/// en: 'Creating...'
|
||
String get creating => 'Creating...';
|
||
|
||
/// en: 'Join Session'
|
||
String get joinSession => 'Join Session';
|
||
|
||
/// en: 'Joining...'
|
||
String get joining => 'Joining...';
|
||
|
||
/// en: 'Control Mode'
|
||
String get controlMode => 'Control Mode';
|
||
|
||
/// en: 'Who can control playback?'
|
||
String get controlModeQuestion => 'Who can control playback?';
|
||
|
||
/// en: 'Host Only'
|
||
String get hostOnly => 'Host Only';
|
||
|
||
/// en: 'Anyone'
|
||
String get anyone => 'Anyone';
|
||
|
||
/// en: 'Hosting Session'
|
||
String get hostingSession => 'Hosting Session';
|
||
|
||
/// en: 'In Session'
|
||
String get inSession => 'In Session';
|
||
|
||
/// en: 'Session Code'
|
||
String get sessionCode => 'Session Code';
|
||
|
||
/// en: 'Open Watch Together session controls'
|
||
String get openSessionControls => 'Open Watch Together session controls';
|
||
|
||
/// en: 'Copy session code'
|
||
String get copySessionCode => 'Copy session code';
|
||
|
||
/// en: 'Host controls playback'
|
||
String get hostControlsPlayback => 'Host controls playback';
|
||
|
||
/// en: 'Anyone can control playback'
|
||
String get anyoneCanControl => 'Anyone can control playback';
|
||
|
||
/// en: 'Host controls'
|
||
String get hostControls => 'Host controls';
|
||
|
||
/// en: 'Anyone controls'
|
||
String get anyoneControls => 'Anyone controls';
|
||
|
||
/// en: 'Participants'
|
||
String get participants => 'Participants';
|
||
|
||
/// en: 'Host'
|
||
String get host => 'Host';
|
||
|
||
/// en: 'HOST'
|
||
String get hostBadge => 'HOST';
|
||
|
||
/// en: 'You are the host'
|
||
String get youAreHost => 'You are the host';
|
||
|
||
/// en: 'Watching with others'
|
||
String get watchingWithOthers => 'Watching with others';
|
||
|
||
/// en: 'End Session'
|
||
String get endSession => 'End Session';
|
||
|
||
/// en: 'Leave Session'
|
||
String get leaveSession => 'Leave Session';
|
||
|
||
/// en: 'End Session?'
|
||
String get endSessionQuestion => 'End Session?';
|
||
|
||
/// en: 'Leave Session?'
|
||
String get leaveSessionQuestion => 'Leave Session?';
|
||
|
||
/// en: 'This will end the session for all participants.'
|
||
String get endSessionConfirm => 'This will end the session for all participants.';
|
||
|
||
/// en: 'You will be removed from the session.'
|
||
String get leaveSessionConfirm => 'You will be removed from the session.';
|
||
|
||
/// en: 'This will end the watch session for all participants.'
|
||
String get endSessionConfirmOverlay => 'This will end the watch session for all participants.';
|
||
|
||
/// en: 'You will be disconnected from the watch session.'
|
||
String get leaveSessionConfirmOverlay => 'You will be disconnected from the watch session.';
|
||
|
||
/// en: 'End'
|
||
String get end => 'End';
|
||
|
||
/// en: 'Leave'
|
||
String get leave => 'Leave';
|
||
|
||
/// en: 'Syncing...'
|
||
String get syncing => 'Syncing...';
|
||
|
||
/// en: 'Join Watch Session'
|
||
String get joinWatchSession => 'Join Watch Session';
|
||
|
||
/// en: 'Enter 5-character code'
|
||
String get enterCodeHint => 'Enter 5-character code';
|
||
|
||
/// en: 'Paste from clipboard'
|
||
String get pasteFromClipboard => 'Paste from clipboard';
|
||
|
||
/// en: 'Please enter a session code'
|
||
String get pleaseEnterCode => 'Please enter a session code';
|
||
|
||
/// en: 'Session code must be 5 characters'
|
||
String get codeMustBe5Chars => 'Session code must be 5 characters';
|
||
|
||
/// en: 'Enter the host's session code to join.'
|
||
String get joinInstructions => 'Enter the host\'s session code to join.';
|
||
|
||
/// en: 'Failed to create session'
|
||
String get failedToCreate => 'Failed to create session';
|
||
|
||
/// en: 'Failed to join session'
|
||
String get failedToJoin => 'Failed to join session';
|
||
|
||
/// en: 'Session code copied to clipboard'
|
||
String get sessionCodeCopied => 'Session code copied to clipboard';
|
||
|
||
/// en: 'Relay server unreachable. ISP blocking may prevent Watch Together.'
|
||
String get relayUnreachable => 'Relay server unreachable. ISP blocking may prevent Watch Together.';
|
||
|
||
/// en: 'Reconnecting to host...'
|
||
String get reconnectingToHost => 'Reconnecting to host...';
|
||
|
||
/// en: 'Current Playback'
|
||
String get currentPlayback => 'Current Playback';
|
||
|
||
/// en: 'Join Current Playback'
|
||
String get joinCurrentPlayback => 'Join Current Playback';
|
||
|
||
/// en: 'Jump back into what the host is currently watching'
|
||
String get joinCurrentPlaybackDescription => 'Jump back into what the host is currently watching';
|
||
|
||
/// en: 'Failed to open current playback'
|
||
String get failedToOpenCurrentPlayback => 'Failed to open current playback';
|
||
|
||
/// en: '${name} joined'
|
||
String participantJoined({required Object name}) => '${name} joined';
|
||
|
||
/// en: '${name} left'
|
||
String participantLeft({required Object name}) => '${name} left';
|
||
|
||
/// en: '${name} paused'
|
||
String participantPaused({required Object name}) => '${name} paused';
|
||
|
||
/// en: '${name} resumed'
|
||
String participantResumed({required Object name}) => '${name} resumed';
|
||
|
||
/// en: '${name} changed the playback position'
|
||
String participantSeeked({required Object name}) => '${name} changed the playback position';
|
||
|
||
/// en: '${name} is buffering'
|
||
String participantBuffering({required Object name}) => '${name} is buffering';
|
||
|
||
/// en: '${name} is on an older app version — sync unavailable'
|
||
String participantNeedsUpdate({required Object name}) => '${name} is on an older app version — sync unavailable';
|
||
|
||
/// en: 'Resuming without ${name}'
|
||
String resumingWithout({required Object name}) => 'Resuming without ${name}';
|
||
|
||
/// en: 'Waiting for others to load...'
|
||
String get waitingForParticipants => 'Waiting for others to load...';
|
||
|
||
/// en: 'Waiting for ${name}...'
|
||
String waitingForName({required Object name}) => 'Waiting for ${name}...';
|
||
|
||
/// en: 'Recent Rooms'
|
||
String get recentRooms => 'Recent Rooms';
|
||
|
||
/// en: 'Rename Room'
|
||
String get renameRoom => 'Rename Room';
|
||
|
||
/// en: 'Remove'
|
||
String get removeRoom => 'Remove';
|
||
|
||
/// en: 'Couldn't switch — server unavailable for sync'
|
||
String get guestSwitchUnavailable => 'Couldn\'t switch — server unavailable for sync';
|
||
|
||
/// en: 'Couldn't switch — content not found on this server'
|
||
String get guestSwitchFailed => 'Couldn\'t switch — content not found on this server';
|
||
}
|
||
|
||
// Path: downloads
|
||
class Translations$downloads$en {
|
||
Translations$downloads$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Downloads'
|
||
String get title => 'Downloads';
|
||
|
||
/// en: 'Manage'
|
||
String get manage => 'Manage';
|
||
|
||
/// en: 'TV Shows'
|
||
String get tvShows => 'TV Shows';
|
||
|
||
/// en: 'Movies'
|
||
String get movies => 'Movies';
|
||
|
||
/// en: 'Music'
|
||
String get music => 'Music';
|
||
|
||
/// en: '${count} tracks queued for download'
|
||
String tracksQueued({required Object count}) => '${count} tracks queued for download';
|
||
|
||
/// en: 'No downloads yet'
|
||
String get noDownloads => 'No downloads yet';
|
||
|
||
/// en: 'Downloaded content will appear here for offline viewing'
|
||
String get noDownloadsDescription => 'Downloaded content will appear here for offline viewing';
|
||
|
||
/// en: 'Download'
|
||
String get downloadNow => 'Download';
|
||
|
||
/// en: 'Delete download'
|
||
String get deleteDownload => 'Delete download';
|
||
|
||
/// en: 'Retry download'
|
||
String get retryDownload => 'Retry download';
|
||
|
||
/// en: 'Download queued'
|
||
String get downloadQueued => 'Download queued';
|
||
|
||
/// en: 'Download resumed'
|
||
String get downloadResumed => 'Download resumed';
|
||
|
||
/// en: 'Server error: file may exceed the remote bitrate limit'
|
||
String get serverErrorBitrate => 'Server error: file may exceed the remote bitrate limit';
|
||
|
||
/// en: 'Downloads stopped because device storage is full. Free some space, then retry.'
|
||
String get storageFull => 'Downloads stopped because device storage is full. Free some space, then retry.';
|
||
|
||
/// en: '${count} episodes queued for download'
|
||
String episodesQueued({required Object count}) => '${count} episodes queued for download';
|
||
|
||
/// en: 'Download deleted'
|
||
String get downloadDeleted => 'Download deleted';
|
||
|
||
/// en: 'Delete "${title}" from this device?'
|
||
String deleteConfirm({required Object title}) => 'Delete "${title}" from this device?';
|
||
|
||
/// en: 'Canceled Download'
|
||
String get cancelledDownloadTitle => 'Canceled Download';
|
||
|
||
/// en: 'This download was canceled. What would you like to do?'
|
||
String get cancelledDownloadMessage => 'This download was canceled. What would you like to do?';
|
||
|
||
/// en: 'All episodes already downloaded'
|
||
String get allEpisodesAlreadyDownloaded => 'All episodes already downloaded';
|
||
|
||
/// en: 'Resume download'
|
||
String get resumeDownload => 'Resume download';
|
||
|
||
/// en: 'Canceled download'
|
||
String get cancelledDownload => 'Canceled download';
|
||
|
||
/// en: '${file} (syncing ${status})'
|
||
String syncingFile({required Object file, required Object status}) => '${file} (syncing ${status})';
|
||
|
||
/// en: 'Downloaded ${file} - Click to complete'
|
||
String downloadedFileClickToComplete({required Object file}) => 'Downloaded ${file} - Click to complete';
|
||
|
||
/// en: 'Partially downloaded - Click to complete'
|
||
String get partialDownloadClickToComplete => 'Partially downloaded - Click to complete';
|
||
|
||
/// en: 'Deleting...'
|
||
String get deleting => 'Deleting...';
|
||
|
||
/// en: 'Deleting ${title}... (${current} of ${total})'
|
||
String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Deleting ${title}... (${current} of ${total})';
|
||
|
||
/// en: 'Queued'
|
||
String get queuedTooltip => 'Queued';
|
||
|
||
/// en: 'Queued ${files}'
|
||
String queuedFilesTooltip({required Object files}) => 'Queued ${files}';
|
||
|
||
/// en: 'Downloading...'
|
||
String get downloadingTooltip => 'Downloading...';
|
||
|
||
/// en: 'Downloading ${files}'
|
||
String downloadingFilesTooltip({required Object files}) => 'Downloading ${files}';
|
||
|
||
/// en: 'No downloads'
|
||
String get noDownloadsTree => 'No downloads';
|
||
|
||
/// en: 'Pause all'
|
||
String get pauseAll => 'Pause all';
|
||
|
||
/// en: 'Resume all'
|
||
String get resumeAll => 'Resume all';
|
||
|
||
/// en: 'Delete all'
|
||
String get deleteAll => 'Delete all';
|
||
|
||
/// en: 'Select Version'
|
||
String get selectVersion => 'Select Version';
|
||
|
||
/// en: 'All episodes'
|
||
String get allEpisodes => 'All episodes';
|
||
|
||
/// en: 'Unwatched only'
|
||
String get unwatchedOnly => 'Unwatched only';
|
||
|
||
/// en: 'Next ${count} unwatched'
|
||
String nextNUnwatched({required Object count}) => 'Next ${count} unwatched';
|
||
|
||
/// en: 'Custom amount...'
|
||
String get customAmount => 'Custom amount...';
|
||
|
||
/// en: 'Include Specials'
|
||
String get includeSpecials => 'Include Specials';
|
||
|
||
/// en: 'How many episodes?'
|
||
String get howManyEpisodes => 'How many episodes?';
|
||
|
||
/// en: 'Enter a valid episode count.'
|
||
String get invalidEpisodeCount => 'Enter a valid episode count.';
|
||
|
||
/// en: 'Keep synced'
|
||
String get keepSynced => 'Keep synced';
|
||
|
||
/// en: 'Download once'
|
||
String get downloadOnce => 'Download once';
|
||
|
||
/// en: 'Keep ${count} unwatched'
|
||
String keepNUnwatched({required Object count}) => 'Keep ${count} unwatched';
|
||
|
||
/// en: 'Edit sync rule'
|
||
String get editSyncRule => 'Edit sync rule';
|
||
|
||
/// en: 'Remove sync rule'
|
||
String get removeSyncRule => 'Remove sync rule';
|
||
|
||
/// en: 'Stop syncing "${title}"? Downloaded episodes will be kept.'
|
||
String removeSyncRuleConfirm({required Object title}) => 'Stop syncing "${title}"? Downloaded episodes will be kept.';
|
||
|
||
/// en: 'Sync rule created — keeping ${count} unwatched episodes'
|
||
String syncRuleCreated({required Object count}) => 'Sync rule created — keeping ${count} unwatched episodes';
|
||
|
||
/// en: 'Sync rule updated'
|
||
String get syncRuleUpdated => 'Sync rule updated';
|
||
|
||
/// en: 'Sync rule removed'
|
||
String get syncRuleRemoved => 'Sync rule removed';
|
||
|
||
/// en: 'Synced ${count} new episodes for ${title}'
|
||
String syncedNewEpisodes({required Object count, required Object title}) => 'Synced ${count} new episodes for ${title}';
|
||
|
||
/// en: 'Sync rules'
|
||
String get activeSyncRules => 'Sync rules';
|
||
|
||
/// en: 'No sync rules'
|
||
String get noSyncRules => 'No sync rules';
|
||
|
||
/// en: 'Manage sync'
|
||
String get manageSyncRule => 'Manage sync';
|
||
|
||
/// en: 'Episode count'
|
||
String get editEpisodeCount => 'Episode count';
|
||
|
||
/// en: 'Sync filter'
|
||
String get editSyncFilter => 'Sync filter';
|
||
|
||
/// en: 'Syncing all items'
|
||
String get syncAllItems => 'Syncing all items';
|
||
|
||
/// en: 'Syncing unwatched items'
|
||
String get syncUnwatchedItems => 'Syncing unwatched items';
|
||
|
||
/// en: 'Server: ${server} • ${status}'
|
||
String syncRuleServerContext({required Object server, required Object status}) => 'Server: ${server} • ${status}';
|
||
|
||
/// en: 'Available'
|
||
String get syncRuleAvailable => 'Available';
|
||
|
||
/// en: 'Offline'
|
||
String get syncRuleOffline => 'Offline';
|
||
|
||
/// en: 'Sign in required'
|
||
String get syncRuleSignInRequired => 'Sign in required';
|
||
|
||
/// en: 'Not available for current profile'
|
||
String get syncRuleNotAvailableForProfile => 'Not available for current profile';
|
||
|
||
/// en: 'Unknown server'
|
||
String get syncRuleUnknownServer => 'Unknown server';
|
||
|
||
/// en: 'Sync rule created'
|
||
String get syncRuleListCreated => 'Sync rule created';
|
||
|
||
late final Translations$downloads$backgroundWarning$en backgroundWarning = Translations$downloads$backgroundWarning$en.internal(_root);
|
||
}
|
||
|
||
// Path: shaders
|
||
class Translations$shaders$en {
|
||
Translations$shaders$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Shaders'
|
||
String get title => 'Shaders';
|
||
|
||
/// en: 'No video enhancement'
|
||
String get noShaderDescription => 'No video enhancement';
|
||
|
||
/// en: 'NVIDIA image scaling for sharper video'
|
||
String get nvscalerDescription => 'NVIDIA image scaling for sharper video';
|
||
|
||
/// en: 'Neutral'
|
||
String get artcnnVariantNeutral => 'Neutral';
|
||
|
||
/// en: 'Denoise'
|
||
String get artcnnVariantDenoise => 'Denoise';
|
||
|
||
/// en: 'Denoise + Sharpen'
|
||
String get artcnnVariantDenoiseSharpen => 'Denoise + Sharpen';
|
||
|
||
/// en: 'Fast'
|
||
String get qualityFast => 'Fast';
|
||
|
||
/// en: 'High Quality'
|
||
String get qualityHQ => 'High Quality';
|
||
|
||
/// en: 'Mode'
|
||
String get mode => 'Mode';
|
||
|
||
/// en: 'Import Shader'
|
||
String get importShader => 'Import Shader';
|
||
|
||
/// en: 'Custom GLSL shader'
|
||
String get customShaderDescription => 'Custom GLSL shader';
|
||
|
||
/// en: 'Shader imported'
|
||
String get shaderImported => 'Shader imported';
|
||
|
||
/// en: 'Failed to import shader'
|
||
String get shaderImportFailed => 'Failed to import shader';
|
||
|
||
/// en: 'Delete Shader'
|
||
String get deleteShader => 'Delete Shader';
|
||
|
||
/// en: 'Delete "${name}"?'
|
||
String deleteShaderConfirm({required Object name}) => 'Delete "${name}"?';
|
||
}
|
||
|
||
// Path: companionRemote
|
||
class Translations$companionRemote$en {
|
||
Translations$companionRemote$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Companion Remote'
|
||
String get title => 'Companion Remote';
|
||
|
||
/// en: 'Connected to ${name}'
|
||
String connectedTo({required Object name}) => 'Connected to ${name}';
|
||
|
||
/// en: 'Unknown Device'
|
||
String get unknownDevice => 'Unknown Device';
|
||
|
||
late final Translations$companionRemote$session$en session = Translations$companionRemote$session$en.internal(_root);
|
||
late final Translations$companionRemote$pairing$en pairing = Translations$companionRemote$pairing$en.internal(_root);
|
||
late final Translations$companionRemote$remote$en remote = Translations$companionRemote$remote$en.internal(_root);
|
||
late final Translations$companionRemote$errors$en errors = Translations$companionRemote$errors$en.internal(_root);
|
||
}
|
||
|
||
// Path: videoSettings
|
||
class Translations$videoSettings$en {
|
||
Translations$videoSettings$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Playback Speed'
|
||
String get playbackSpeed => 'Playback Speed';
|
||
|
||
/// en: 'Normal'
|
||
String get normalSpeed => 'Normal';
|
||
|
||
/// en: 'Active (${duration})'
|
||
String sleepTimerActive({required Object duration}) => 'Active (${duration})';
|
||
|
||
/// en: 'Zoom'
|
||
String get zoom => 'Zoom';
|
||
|
||
/// en: 'Sleep Timer'
|
||
String get sleepTimer => 'Sleep Timer';
|
||
|
||
/// en: 'Audio Sync'
|
||
String get audioSync => 'Audio Sync';
|
||
|
||
/// en: 'Subtitle Sync'
|
||
String get subtitleSync => 'Subtitle Sync';
|
||
|
||
/// en: 'HDR'
|
||
String get hdr => 'HDR';
|
||
|
||
/// en: 'Audio Output'
|
||
String get audioOutput => 'Audio Output';
|
||
|
||
/// en: 'Performance Overlay'
|
||
String get performanceOverlay => 'Performance Overlay';
|
||
|
||
/// en: 'Audio Passthrough'
|
||
String get audioPassthrough => 'Audio Passthrough';
|
||
|
||
/// en: 'Normalize Loudness'
|
||
String get audioNormalization => 'Normalize Loudness';
|
||
|
||
/// en: 'Downmix to Stereo'
|
||
String get audioDownmix => 'Downmix to Stereo';
|
||
}
|
||
|
||
// Path: performanceOverlay
|
||
class Translations$performanceOverlay$en {
|
||
Translations$performanceOverlay$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Color'
|
||
String get color => 'Color';
|
||
|
||
/// en: 'Performance'
|
||
String get performance => 'Performance';
|
||
|
||
/// en: 'Buffer'
|
||
String get buffer => 'Buffer';
|
||
|
||
/// en: 'App'
|
||
String get app => 'App';
|
||
|
||
/// en: 'Decoder'
|
||
String get decoder => 'Decoder';
|
||
|
||
/// en: 'Raw Decoder'
|
||
String get rawDecoder => 'Raw Decoder';
|
||
|
||
/// en: 'Tunneling'
|
||
String get tunneling => 'Tunneling';
|
||
|
||
/// en: 'Aspect'
|
||
String get aspect => 'Aspect';
|
||
|
||
/// en: 'Rotation'
|
||
String get rotation => 'Rotation';
|
||
|
||
/// en: 'DV Source'
|
||
String get dvSource => 'DV Source';
|
||
|
||
/// en: 'DV Path'
|
||
String get dvPath => 'DV Path';
|
||
|
||
/// en: 'P7 Conv'
|
||
String get p7Conversion => 'P7 Conv';
|
||
|
||
/// en: 'Sample Rate'
|
||
String get sampleRate => 'Sample Rate';
|
||
|
||
/// en: 'Pixel Fmt'
|
||
String get pixelFormat => 'Pixel Fmt';
|
||
|
||
/// en: 'HW Fmt'
|
||
String get hwFormat => 'HW Fmt';
|
||
|
||
/// en: 'Matrix'
|
||
String get matrix => 'Matrix';
|
||
|
||
/// en: 'Primaries'
|
||
String get primaries => 'Primaries';
|
||
|
||
/// en: 'Transfer'
|
||
String get transfer => 'Transfer';
|
||
|
||
/// en: 'Render FPS'
|
||
String get renderFps => 'Render FPS';
|
||
|
||
/// en: 'Display FPS'
|
||
String get displayFps => 'Display FPS';
|
||
|
||
/// en: 'A/V Sync'
|
||
String get avSync => 'A/V Sync';
|
||
|
||
/// en: 'Dropped'
|
||
String get dropped => 'Dropped';
|
||
|
||
/// en: 'DV RPUs'
|
||
String get dvRpus => 'DV RPUs';
|
||
|
||
/// en: 'DV RPU Avg'
|
||
String get dvRpuAverage => 'DV RPU Avg';
|
||
|
||
/// en: 'DV Sample Avg'
|
||
String get dvSampleAverage => 'DV Sample Avg';
|
||
|
||
/// en: 'Max Luma'
|
||
String get maxLuma => 'Max Luma';
|
||
|
||
/// en: 'Min Luma'
|
||
String get minLuma => 'Min Luma';
|
||
|
||
/// en: 'MaxCLL'
|
||
String get maxCll => 'MaxCLL';
|
||
|
||
/// en: 'MaxFALL'
|
||
String get maxFall => 'MaxFALL';
|
||
|
||
/// en: 'Cache Used'
|
||
String get cacheUsed => 'Cache Used';
|
||
|
||
/// en: 'Cache Limit'
|
||
String get cacheLimit => 'Cache Limit';
|
||
|
||
/// en: 'Speed'
|
||
String get speed => 'Speed';
|
||
|
||
/// en: 'Player'
|
||
String get player => 'Player';
|
||
|
||
/// en: 'Memory'
|
||
String get memory => 'Memory';
|
||
|
||
/// en: 'UI FPS'
|
||
String get uiFps => 'UI FPS';
|
||
}
|
||
|
||
// Path: externalPlayer
|
||
class Translations$externalPlayer$en {
|
||
Translations$externalPlayer$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'External Player'
|
||
String get title => 'External Player';
|
||
|
||
/// en: 'Use External Player'
|
||
String get useExternalPlayer => 'Use External Player';
|
||
|
||
/// en: 'Open videos in another app'
|
||
String get useExternalPlayerDescription => 'Open videos in another app';
|
||
|
||
/// en: 'Select Player'
|
||
String get selectPlayer => 'Select Player';
|
||
|
||
/// en: 'Custom Players'
|
||
String get customPlayers => 'Custom Players';
|
||
|
||
/// en: 'System Default'
|
||
String get systemDefault => 'System Default';
|
||
|
||
/// en: 'Add Custom Player'
|
||
String get addCustomPlayer => 'Add Custom Player';
|
||
|
||
/// en: 'Player Name'
|
||
String get playerName => 'Player Name';
|
||
|
||
/// en: 'My Player'
|
||
String get playerNameHint => 'My Player';
|
||
|
||
/// en: 'Command'
|
||
String get playerCommand => 'Command';
|
||
|
||
/// en: 'Package Name'
|
||
String get playerPackage => 'Package Name';
|
||
|
||
/// en: 'URL Scheme'
|
||
String get playerUrlScheme => 'URL Scheme';
|
||
|
||
/// en: 'Off'
|
||
String get off => 'Off';
|
||
|
||
/// en: 'Failed to open external player'
|
||
String get launchFailed => 'Failed to open external player';
|
||
|
||
/// en: '${name} is not installed'
|
||
String appNotInstalled({required Object name}) => '${name} is not installed';
|
||
|
||
/// en: 'Play in External Player'
|
||
String get playInExternalPlayer => 'Play in External Player';
|
||
}
|
||
|
||
// Path: metadataEdit
|
||
class Translations$metadataEdit$en {
|
||
Translations$metadataEdit$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Edit...'
|
||
String get editMetadata => 'Edit...';
|
||
|
||
/// en: 'Edit Metadata'
|
||
String get screenTitle => 'Edit Metadata';
|
||
|
||
/// en: 'Basic Info'
|
||
String get basicInfo => 'Basic Info';
|
||
|
||
/// en: 'Artwork'
|
||
String get artwork => 'Artwork';
|
||
|
||
/// en: 'Advanced Settings'
|
||
String get advancedSettings => 'Advanced Settings';
|
||
|
||
/// en: 'Title'
|
||
String get title => 'Title';
|
||
|
||
/// en: 'Sort Title'
|
||
String get sortTitle => 'Sort Title';
|
||
|
||
/// en: 'Original Title'
|
||
String get originalTitle => 'Original Title';
|
||
|
||
/// en: 'Release Date'
|
||
String get releaseDate => 'Release Date';
|
||
|
||
/// en: 'Content Rating'
|
||
String get contentRating => 'Content Rating';
|
||
|
||
/// en: 'Studio'
|
||
String get studio => 'Studio';
|
||
|
||
/// en: 'Tagline'
|
||
String get tagline => 'Tagline';
|
||
|
||
/// en: 'Summary'
|
||
String get summary => 'Summary';
|
||
|
||
/// en: 'Poster'
|
||
String get poster => 'Poster';
|
||
|
||
/// en: 'Background'
|
||
String get background => 'Background';
|
||
|
||
/// en: 'Logo'
|
||
String get logo => 'Logo';
|
||
|
||
/// en: 'Square Art'
|
||
String get squareArt => 'Square Art';
|
||
|
||
/// en: 'Select Poster'
|
||
String get selectPoster => 'Select Poster';
|
||
|
||
/// en: 'Select Background'
|
||
String get selectBackground => 'Select Background';
|
||
|
||
/// en: 'Select Logo'
|
||
String get selectLogo => 'Select Logo';
|
||
|
||
/// en: 'Select Square Art'
|
||
String get selectSquareArt => 'Select Square Art';
|
||
|
||
/// en: 'From URL'
|
||
String get fromUrl => 'From URL';
|
||
|
||
/// en: 'Upload File'
|
||
String get uploadFile => 'Upload File';
|
||
|
||
/// en: 'Enter image URL'
|
||
String get enterImageUrl => 'Enter image URL';
|
||
|
||
/// en: 'Image URL'
|
||
String get imageUrl => 'Image URL';
|
||
|
||
/// en: 'Metadata updated'
|
||
String get metadataUpdated => 'Metadata updated';
|
||
|
||
/// en: 'Failed to update metadata'
|
||
String get metadataUpdateFailed => 'Failed to update metadata';
|
||
|
||
/// en: 'Artwork updated'
|
||
String get artworkUpdated => 'Artwork updated';
|
||
|
||
/// en: 'Failed to update artwork'
|
||
String get artworkUpdateFailed => 'Failed to update artwork';
|
||
|
||
/// en: 'No artwork available'
|
||
String get noArtworkAvailable => 'No artwork available';
|
||
|
||
/// en: 'Artwork option ${index}'
|
||
String artworkOption({required Object index}) => 'Artwork option ${index}';
|
||
|
||
/// en: 'Artwork option ${index}, selected'
|
||
String selectedArtworkOption({required Object index}) => 'Artwork option ${index}, selected';
|
||
|
||
/// en: 'Not set'
|
||
String get notSet => 'Not set';
|
||
|
||
/// en: 'Library default'
|
||
String get libraryDefault => 'Library default';
|
||
|
||
/// en: 'Account default'
|
||
String get accountDefault => 'Account default';
|
||
|
||
/// en: 'Series default'
|
||
String get seriesDefault => 'Series default';
|
||
|
||
/// en: 'Episode Sorting'
|
||
String get episodeSorting => 'Episode Sorting';
|
||
|
||
/// en: 'Oldest first'
|
||
String get oldestFirst => 'Oldest first';
|
||
|
||
/// en: 'Newest first'
|
||
String get newestFirst => 'Newest first';
|
||
|
||
/// en: 'Keep'
|
||
String get keep => 'Keep';
|
||
|
||
/// en: 'All episodes'
|
||
String get allEpisodes => 'All episodes';
|
||
|
||
/// en: '${count} latest episodes'
|
||
String latestEpisodes({required Object count}) => '${count} latest episodes';
|
||
|
||
/// en: 'Latest episode'
|
||
String get latestEpisode => 'Latest episode';
|
||
|
||
/// en: 'Episodes added in the past ${count} days'
|
||
String episodesAddedPastDays({required Object count}) => 'Episodes added in the past ${count} days';
|
||
|
||
/// en: 'Delete Episodes After Playing'
|
||
String get deleteAfterPlaying => 'Delete Episodes After Playing';
|
||
|
||
/// en: 'Never'
|
||
String get never => 'Never';
|
||
|
||
/// en: 'After a day'
|
||
String get afterADay => 'After a day';
|
||
|
||
/// en: 'After a week'
|
||
String get afterAWeek => 'After a week';
|
||
|
||
/// en: 'After a month'
|
||
String get afterAMonth => 'After a month';
|
||
|
||
/// en: 'On next refresh'
|
||
String get onNextRefresh => 'On next refresh';
|
||
|
||
/// en: 'Seasons'
|
||
String get seasons => 'Seasons';
|
||
|
||
/// en: 'Show'
|
||
String get show => 'Show';
|
||
|
||
/// en: 'Hide'
|
||
String get hide => 'Hide';
|
||
|
||
/// en: 'Episode Ordering'
|
||
String get episodeOrdering => 'Episode Ordering';
|
||
|
||
/// en: 'The Movie Database (Aired)'
|
||
String get tmdbAiring => 'The Movie Database (Aired)';
|
||
|
||
/// en: 'TheTVDB (Aired)'
|
||
String get tvdbAiring => 'TheTVDB (Aired)';
|
||
|
||
/// en: 'TheTVDB (Absolute)'
|
||
String get tvdbAbsolute => 'TheTVDB (Absolute)';
|
||
|
||
/// en: 'Metadata Language'
|
||
String get metadataLanguage => 'Metadata Language';
|
||
|
||
/// en: 'Use Original Title'
|
||
String get useOriginalTitle => 'Use Original Title';
|
||
|
||
/// en: 'Preferred Audio Language'
|
||
String get preferredAudioLanguage => 'Preferred Audio Language';
|
||
|
||
/// en: 'Preferred Subtitle Language'
|
||
String get preferredSubtitleLanguage => 'Preferred Subtitle Language';
|
||
|
||
/// en: 'Auto-Select Subtitle Mode'
|
||
String get subtitleMode => 'Auto-Select Subtitle Mode';
|
||
|
||
/// en: 'Manually selected'
|
||
String get manuallySelected => 'Manually selected';
|
||
|
||
/// en: 'Shown with foreign audio'
|
||
String get shownWithForeignAudio => 'Shown with foreign audio';
|
||
|
||
/// en: 'Always enabled'
|
||
String get alwaysEnabled => 'Always enabled';
|
||
|
||
/// en: 'Tags'
|
||
String get tags => 'Tags';
|
||
|
||
/// en: 'Add tag'
|
||
String get addTag => 'Add tag';
|
||
|
||
/// en: 'Genre'
|
||
String get genre => 'Genre';
|
||
|
||
/// en: 'Director'
|
||
String get director => 'Director';
|
||
|
||
/// en: 'Writer'
|
||
String get writer => 'Writer';
|
||
|
||
/// en: 'Producer'
|
||
String get producer => 'Producer';
|
||
|
||
/// en: 'Country'
|
||
String get country => 'Country';
|
||
|
||
/// en: 'Collection'
|
||
String get collection => 'Collection';
|
||
|
||
/// en: 'Label'
|
||
String get label => 'Label';
|
||
|
||
/// en: 'Style'
|
||
String get style => 'Style';
|
||
|
||
/// en: 'Mood'
|
||
String get mood => 'Mood';
|
||
}
|
||
|
||
// Path: matchScreen
|
||
class Translations$matchScreen$en {
|
||
Translations$matchScreen$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Match...'
|
||
String get match => 'Match...';
|
||
|
||
/// en: 'Fix Match...'
|
||
String get fixMatch => 'Fix Match...';
|
||
|
||
/// en: 'Unmatch'
|
||
String get unmatch => 'Unmatch';
|
||
|
||
/// en: 'Clear this match? Plex treats it as unmatched until rematched.'
|
||
String get unmatchConfirm => 'Clear this match? Plex treats it as unmatched until rematched.';
|
||
|
||
/// en: 'Item unmatched'
|
||
String get unmatchSuccess => 'Item unmatched';
|
||
|
||
/// en: 'Failed to unmatch item'
|
||
String get unmatchFailed => 'Failed to unmatch item';
|
||
|
||
/// en: 'Match applied'
|
||
String get matchApplied => 'Match applied';
|
||
|
||
/// en: 'Failed to apply match'
|
||
String get matchFailed => 'Failed to apply match';
|
||
|
||
/// en: 'Title'
|
||
String get titleHint => 'Title';
|
||
|
||
/// en: 'Year'
|
||
String get yearHint => 'Year';
|
||
|
||
/// en: 'Search'
|
||
String get search => 'Search';
|
||
|
||
/// en: 'No matches found'
|
||
String get noMatchesFound => 'No matches found';
|
||
}
|
||
|
||
// Path: serverTasks
|
||
class Translations$serverTasks$en {
|
||
Translations$serverTasks$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Server Tasks'
|
||
String get title => 'Server Tasks';
|
||
|
||
/// en: 'Failed to load tasks'
|
||
String get failedToLoad => 'Failed to load tasks';
|
||
|
||
/// en: 'No tasks running'
|
||
String get noTasks => 'No tasks running';
|
||
}
|
||
|
||
// Path: trakt
|
||
class Translations$trakt$en {
|
||
Translations$trakt$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Trakt'
|
||
String get title => 'Trakt';
|
||
|
||
/// en: 'Connected'
|
||
String get connected => 'Connected';
|
||
|
||
/// en: 'Connected as @${username}'
|
||
String connectedAs({required Object username}) => 'Connected as @${username}';
|
||
|
||
/// en: 'Disconnect Trakt account?'
|
||
String get disconnectConfirm => 'Disconnect Trakt account?';
|
||
|
||
/// en: 'Plezy will stop sending events to Trakt. You can reconnect any time.'
|
||
String get disconnectConfirmBody => 'Plezy will stop sending events to Trakt. You can reconnect any time.';
|
||
|
||
/// en: 'Real-time scrobbling'
|
||
String get scrobble => 'Real-time scrobbling';
|
||
|
||
/// en: 'Send play, pause, and stop events to Trakt during playback.'
|
||
String get scrobbleDescription => 'Send play, pause, and stop events to Trakt during playback.';
|
||
|
||
/// en: 'Sync watched status'
|
||
String get watchedSync => 'Sync watched status';
|
||
|
||
/// en: 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.'
|
||
String get watchedSyncDescription => 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.';
|
||
}
|
||
|
||
// Path: seerr
|
||
class Translations$seerr$en {
|
||
Translations$seerr$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Seerr'
|
||
String get title => 'Seerr';
|
||
|
||
/// en: 'Connect Seerr'
|
||
String get connectTitle => 'Connect Seerr';
|
||
|
||
/// en: 'Server URL'
|
||
String get serverUrl => 'Server URL';
|
||
|
||
/// en: 'The address of your Seerr instance'
|
||
String get serverUrlHelper => 'The address of your Seerr instance';
|
||
|
||
/// en: 'Continue'
|
||
String get checkServer => 'Continue';
|
||
|
||
/// en: 'Sign in with Jellyfin'
|
||
String get signInWithJellyfin => 'Sign in with Jellyfin';
|
||
|
||
/// en: 'Sign in with Emby'
|
||
String get signInWithEmby => 'Sign in with Emby';
|
||
|
||
/// en: 'Use a local account'
|
||
String get signInWithLocal => 'Use a local account';
|
||
|
||
/// en: 'Email'
|
||
String get email => 'Email';
|
||
|
||
/// en: 'This Seerr instance offers no sign-in method Plezy supports.'
|
||
String get noSignInMethods => 'This Seerr instance offers no sign-in method Plezy supports.';
|
||
|
||
/// en: 'Instance'
|
||
String get instance => 'Instance';
|
||
|
||
/// en: 'Disconnect Seerr?'
|
||
String get disconnectConfirm => 'Disconnect Seerr?';
|
||
|
||
/// en: 'Plezy will forget this Seerr instance. Reconnect any time.'
|
||
String get disconnectConfirmBody => 'Plezy will forget this Seerr instance. Reconnect any time.';
|
||
|
||
/// en: 'Request'
|
||
String get request => 'Request';
|
||
|
||
/// en: 'Request in 4K'
|
||
String get request4k => 'Request in 4K';
|
||
|
||
/// en: 'Seasons'
|
||
String get seasons => 'Seasons';
|
||
|
||
/// en: 'All seasons'
|
||
String get allSeasons => 'All seasons';
|
||
|
||
/// en: 'Advanced'
|
||
String get advancedOptions => 'Advanced';
|
||
|
||
/// en: 'Destination server'
|
||
String get destinationServer => 'Destination server';
|
||
|
||
/// en: 'Quality profile'
|
||
String get qualityProfile => 'Quality profile';
|
||
|
||
/// en: 'Root folder'
|
||
String get rootFolder => 'Root folder';
|
||
|
||
/// en: 'Language profile'
|
||
String get languageProfile => 'Language profile';
|
||
|
||
/// en: 'Request submitted'
|
||
String get requestSubmitted => 'Request submitted';
|
||
|
||
/// en: 'Request failed: ${error}'
|
||
String requestFailed({required Object error}) => 'Request failed: ${error}';
|
||
|
||
/// en: 'Couldn't load request options'
|
||
String get requestsLoadFailed => 'Couldn\'t load request options';
|
||
|
||
/// en: 'Everything is already available or requested.'
|
||
String get nothingToRequest => 'Everything is already available or requested.';
|
||
|
||
/// en: 'Available'
|
||
String get statusAvailable => 'Available';
|
||
|
||
/// en: 'Partially available'
|
||
String get statusPartiallyAvailable => 'Partially available';
|
||
|
||
/// en: 'Requested'
|
||
String get statusRequested => 'Requested';
|
||
|
||
/// en: 'Processing'
|
||
String get statusProcessing => 'Processing';
|
||
}
|
||
|
||
// Path: services
|
||
class Translations$services$en {
|
||
Translations$services$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Services'
|
||
String get title => 'Services';
|
||
|
||
/// en: 'Sync watch progress and request new titles.'
|
||
String get hubSubtitle => 'Sync watch progress and request new titles.';
|
||
|
||
/// en: 'Not connected'
|
||
String get notConnected => 'Not connected';
|
||
|
||
/// en: 'Connected as @${username}'
|
||
String connectedAs({required Object username}) => 'Connected as @${username}';
|
||
|
||
/// en: 'Track progress automatically'
|
||
String get scrobble => 'Track progress automatically';
|
||
|
||
/// en: 'Update your list when you finish an episode or movie.'
|
||
String get scrobbleDescription => 'Update your list when you finish an episode or movie.';
|
||
|
||
/// en: 'Disconnect ${service}?'
|
||
String disconnectConfirm({required Object service}) => 'Disconnect ${service}?';
|
||
|
||
/// en: 'Plezy will stop updating ${service}. Reconnect any time.'
|
||
String disconnectConfirmBody({required Object service}) => 'Plezy will stop updating ${service}. Reconnect any time.';
|
||
|
||
/// en: 'Couldn't connect to ${service}. Try again.'
|
||
String connectFailed({required Object service}) => 'Couldn\'t connect to ${service}. Try again.';
|
||
|
||
late final Translations$services$names$en names = Translations$services$names$en.internal(_root);
|
||
late final Translations$services$deviceCode$en deviceCode = Translations$services$deviceCode$en.internal(_root);
|
||
late final Translations$services$oauthProxy$en oauthProxy = Translations$services$oauthProxy$en.internal(_root);
|
||
late final Translations$services$libraryFilter$en libraryFilter = Translations$services$libraryFilter$en.internal(_root);
|
||
}
|
||
|
||
// Path: addServer
|
||
class Translations$addServer$en {
|
||
Translations$addServer$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Add Jellyfin server'
|
||
String get addJellyfinTitle => 'Add Jellyfin server';
|
||
|
||
/// en: 'Server URLs'
|
||
String get serverUrls => 'Server URLs';
|
||
|
||
/// en: 'Multiple URLs allowed, separated by commas.'
|
||
String get serverUrlsHelper => 'Multiple URLs allowed, separated by commas.';
|
||
|
||
/// en: 'Find server'
|
||
String get findServer => 'Find server';
|
||
|
||
/// en: 'Looking for local Jellyfin servers...'
|
||
String get searchingLocalServers => 'Looking for local Jellyfin servers...';
|
||
|
||
/// en: 'Local Jellyfin servers'
|
||
String get localServers => 'Local Jellyfin servers';
|
||
|
||
/// en: 'Username'
|
||
String get username => 'Username';
|
||
|
||
/// en: 'Password'
|
||
String get password => 'Password';
|
||
|
||
/// en: 'Sign in'
|
||
String get signIn => 'Sign in';
|
||
|
||
/// en: 'Change'
|
||
String get change => 'Change';
|
||
|
||
/// en: 'Required'
|
||
String get required => 'Required';
|
||
|
||
/// en: 'Could not reach the server: ${error}'
|
||
String couldNotReachServer({required Object error}) => 'Could not reach the server: ${error}';
|
||
|
||
/// en: 'Sign-in failed: ${error}'
|
||
String signInFailed({required Object error}) => 'Sign-in failed: ${error}';
|
||
|
||
/// en: 'Quick Connect failed: ${error}'
|
||
String quickConnectFailed({required Object error}) => 'Quick Connect failed: ${error}';
|
||
|
||
/// en: 'Sign in with Plex'
|
||
String get addPlexTitle => 'Sign in with Plex';
|
||
|
||
/// en: 'PIN expired before sign-in. Please try again.'
|
||
String get pinExpired => 'PIN expired before sign-in. Please try again.';
|
||
|
||
/// en: 'Failed to register account: ${error}'
|
||
String failedToRegisterAccount({required Object error}) => 'Failed to register account: ${error}';
|
||
|
||
/// en: 'Enter your Jellyfin server URL'
|
||
String get enterJellyfinUrlError => 'Enter your Jellyfin server URL';
|
||
|
||
/// en: 'Add connection'
|
||
String get addConnectionTitle => 'Add connection';
|
||
|
||
/// en: 'Add to ${name}'
|
||
String addConnectionTitleScoped({required Object name}) => 'Add to ${name}';
|
||
|
||
/// en: 'Sign in with Plex'
|
||
String get signInWithPlexCard => 'Sign in with Plex';
|
||
|
||
/// en: 'Authorize this device. Shared servers are added.'
|
||
String get signInWithPlexCardSubtitle => 'Authorize this device. Shared servers are added.';
|
||
|
||
/// en: 'Authorize a Plex account. Home users become profiles.'
|
||
String get signInWithPlexCardSubtitleScoped => 'Authorize a Plex account. Home users become profiles.';
|
||
|
||
/// en: 'Connect to Jellyfin'
|
||
String get connectToJellyfinCard => 'Connect to Jellyfin';
|
||
|
||
/// en: 'Enter your server URL, username, and password.'
|
||
String get connectToJellyfinCardSubtitle => 'Enter your server URL, username, and password.';
|
||
|
||
/// en: 'Sign in to a Jellyfin server. Binds to ${name}.'
|
||
String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Sign in to a Jellyfin server. Binds to ${name}.';
|
||
|
||
/// en: 'Borrow from another profile'
|
||
String get borrowFromAnotherProfile => 'Borrow from another profile';
|
||
|
||
/// en: 'Reuse another profile's connection. PIN-protected profiles require a PIN.'
|
||
String get borrowFromAnotherProfileSubtitle => 'Reuse another profile\'s connection. PIN-protected profiles require a PIN.';
|
||
}
|
||
|
||
// Path: hotkeys.actions
|
||
class Translations$hotkeys$actions$en {
|
||
Translations$hotkeys$actions$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Play/Pause'
|
||
String get playPause => 'Play/Pause';
|
||
|
||
/// en: 'Volume Up'
|
||
String get volumeUp => 'Volume Up';
|
||
|
||
/// en: 'Volume Down'
|
||
String get volumeDown => 'Volume Down';
|
||
|
||
/// en: 'Seek Forward (${seconds}s)'
|
||
String seekForward({required Object seconds}) => 'Seek Forward (${seconds}s)';
|
||
|
||
/// en: 'Seek Backward (${seconds}s)'
|
||
String seekBackward({required Object seconds}) => 'Seek Backward (${seconds}s)';
|
||
|
||
/// en: 'Toggle Fullscreen'
|
||
String get fullscreenToggle => 'Toggle Fullscreen';
|
||
|
||
/// en: 'Toggle Mute'
|
||
String get muteToggle => 'Toggle Mute';
|
||
|
||
/// en: 'Toggle Subtitles'
|
||
String get subtitleToggle => 'Toggle Subtitles';
|
||
|
||
/// en: 'Next Audio Track'
|
||
String get audioTrackNext => 'Next Audio Track';
|
||
|
||
/// en: 'Next Subtitle Track'
|
||
String get subtitleTrackNext => 'Next Subtitle Track';
|
||
|
||
/// en: 'Next Chapter'
|
||
String get chapterNext => 'Next Chapter';
|
||
|
||
/// en: 'Previous Chapter'
|
||
String get chapterPrevious => 'Previous Chapter';
|
||
|
||
/// en: 'Next Episode'
|
||
String get episodeNext => 'Next Episode';
|
||
|
||
/// en: 'Previous Episode'
|
||
String get episodePrevious => 'Previous Episode';
|
||
|
||
/// en: 'Increase Speed'
|
||
String get speedIncrease => 'Increase Speed';
|
||
|
||
/// en: 'Decrease Speed'
|
||
String get speedDecrease => 'Decrease Speed';
|
||
|
||
/// en: 'Reset Speed'
|
||
String get speedReset => 'Reset Speed';
|
||
|
||
/// en: 'Zoom In'
|
||
String get zoomIn => 'Zoom In';
|
||
|
||
/// en: 'Zoom Out'
|
||
String get zoomOut => 'Zoom Out';
|
||
|
||
/// en: 'Reset Zoom'
|
||
String get zoomReset => 'Reset Zoom';
|
||
|
||
/// en: 'Seek to Next Subtitle'
|
||
String get subSeekNext => 'Seek to Next Subtitle';
|
||
|
||
/// en: 'Seek to Previous Subtitle'
|
||
String get subSeekPrev => 'Seek to Previous Subtitle';
|
||
|
||
/// en: 'Toggle Shaders'
|
||
String get shaderToggle => 'Toggle Shaders';
|
||
|
||
/// en: 'Skip Intro/Credits'
|
||
String get skipMarker => 'Skip Intro/Credits';
|
||
|
||
/// en: 'Take Screenshot'
|
||
String get screenshot => 'Take Screenshot';
|
||
}
|
||
|
||
// Path: videoControls.pipErrors
|
||
class Translations$videoControls$pipErrors$en {
|
||
Translations$videoControls$pipErrors$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Requires Android 8.0 or newer'
|
||
String get androidVersion => 'Requires Android 8.0 or newer';
|
||
|
||
/// en: 'Requires iOS 15.0 or newer'
|
||
String get iosVersion => 'Requires iOS 15.0 or newer';
|
||
|
||
/// en: 'Picture-in-picture is disabled. Enable it in system settings.'
|
||
String get permissionDisabled => 'Picture-in-picture is disabled. Enable it in system settings.';
|
||
|
||
/// en: 'Device doesn't support picture-in-picture mode'
|
||
String get notSupported => 'Device doesn\'t support picture-in-picture mode';
|
||
|
||
/// en: 'Failed to switch video output for picture-in-picture'
|
||
String get voSwitchFailed => 'Failed to switch video output for picture-in-picture';
|
||
|
||
/// en: 'Picture-in-picture failed to start'
|
||
String get failed => 'Picture-in-picture failed to start';
|
||
|
||
/// en: 'An error occurred: ${error}'
|
||
String unknown({required Object error}) => 'An error occurred: ${error}';
|
||
}
|
||
|
||
// Path: libraries.tabs
|
||
class Translations$libraries$tabs$en {
|
||
Translations$libraries$tabs$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Recommended'
|
||
String get recommended => 'Recommended';
|
||
|
||
/// en: 'Browse'
|
||
String get browse => 'Browse';
|
||
|
||
/// en: 'Collections'
|
||
String get collections => 'Collections';
|
||
|
||
/// en: 'Playlists'
|
||
String get playlists => 'Playlists';
|
||
}
|
||
|
||
// Path: libraries.groupings
|
||
class Translations$libraries$groupings$en {
|
||
Translations$libraries$groupings$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Grouping'
|
||
String get title => 'Grouping';
|
||
|
||
/// en: 'All'
|
||
String get all => 'All';
|
||
|
||
/// en: 'Movies'
|
||
String get movies => 'Movies';
|
||
|
||
/// en: 'TV Shows'
|
||
String get shows => 'TV Shows';
|
||
|
||
/// en: 'Seasons'
|
||
String get seasons => 'Seasons';
|
||
|
||
/// en: 'Episodes'
|
||
String get episodes => 'Episodes';
|
||
|
||
/// en: 'Artists'
|
||
String get artists => 'Artists';
|
||
|
||
/// en: 'Albums'
|
||
String get albums => 'Albums';
|
||
|
||
/// en: 'Tracks'
|
||
String get tracks => 'Tracks';
|
||
|
||
/// en: 'Folders'
|
||
String get folders => 'Folders';
|
||
}
|
||
|
||
// Path: libraries.filterCategories
|
||
class Translations$libraries$filterCategories$en {
|
||
Translations$libraries$filterCategories$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Genre'
|
||
String get genre => 'Genre';
|
||
|
||
/// en: 'Year'
|
||
String get year => 'Year';
|
||
|
||
/// en: 'Content Rating'
|
||
String get contentRating => 'Content Rating';
|
||
|
||
/// en: 'Tag'
|
||
String get tag => 'Tag';
|
||
|
||
/// en: 'Unwatched'
|
||
String get unwatched => 'Unwatched';
|
||
|
||
/// en: 'Unplayed'
|
||
String get unplayed => 'Unplayed';
|
||
|
||
/// en: 'Favorites'
|
||
String get favorites => 'Favorites';
|
||
}
|
||
|
||
// Path: libraries.sortLabels
|
||
class Translations$libraries$sortLabels$en {
|
||
Translations$libraries$sortLabels$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Title'
|
||
String get title => 'Title';
|
||
|
||
/// en: 'Date Added'
|
||
String get dateAdded => 'Date Added';
|
||
|
||
/// en: 'Release Date'
|
||
String get releaseDate => 'Release Date';
|
||
|
||
/// en: 'Rating'
|
||
String get rating => 'Rating';
|
||
|
||
/// en: 'Community Rating'
|
||
String get communityRating => 'Community Rating';
|
||
|
||
/// en: 'Critic Rating'
|
||
String get criticRating => 'Critic Rating';
|
||
|
||
/// en: 'User Rating'
|
||
String get userRating => 'User Rating';
|
||
|
||
/// en: 'Date Played'
|
||
String get datePlayed => 'Date Played';
|
||
|
||
/// en: 'Play Count'
|
||
String get playCount => 'Play Count';
|
||
|
||
/// en: 'Production Year'
|
||
String get productionYear => 'Production Year';
|
||
|
||
/// en: 'Runtime'
|
||
String get runtime => 'Runtime';
|
||
|
||
/// en: 'Official Rating'
|
||
String get officialRating => 'Official Rating';
|
||
|
||
/// en: 'Premiere Date'
|
||
String get premiereDate => 'Premiere Date';
|
||
|
||
/// en: 'Start Date'
|
||
String get startDate => 'Start Date';
|
||
|
||
/// en: 'Air Time'
|
||
String get airTime => 'Air Time';
|
||
|
||
/// en: 'Studio'
|
||
String get studio => 'Studio';
|
||
|
||
/// en: 'Random'
|
||
String get random => 'Random';
|
||
|
||
/// en: 'Date Shared'
|
||
String get dateShared => 'Date Shared';
|
||
|
||
/// en: 'Latest Episode Air Date'
|
||
String get latestEpisodeAirDate => 'Latest Episode Air Date';
|
||
|
||
/// en: 'Last Episode Date Added'
|
||
String get lastEpisodeDateAdded => 'Last Episode Date Added';
|
||
}
|
||
|
||
// Path: explore.rows
|
||
class Translations$explore$rows$en {
|
||
Translations$explore$rows$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Watchlist'
|
||
String get watchlist => 'Watchlist';
|
||
|
||
/// en: 'Recommended Movies'
|
||
String get recommendedMovies => 'Recommended Movies';
|
||
|
||
/// en: 'Recommended Shows'
|
||
String get recommendedShows => 'Recommended Shows';
|
||
|
||
/// en: 'Trending Movies'
|
||
String get trendingMovies => 'Trending Movies';
|
||
|
||
/// en: 'Trending Shows'
|
||
String get trendingShows => 'Trending Shows';
|
||
|
||
/// en: 'Popular Movies'
|
||
String get popularMovies => 'Popular Movies';
|
||
|
||
/// en: 'Popular Shows'
|
||
String get popularShows => 'Popular Shows';
|
||
|
||
/// en: 'Trending Anime'
|
||
String get trendingAnime => 'Trending Anime';
|
||
|
||
/// en: 'Suggested Anime'
|
||
String get suggestedAnime => 'Suggested Anime';
|
||
|
||
/// en: 'Top Airing Anime'
|
||
String get airingAnime => 'Top Airing Anime';
|
||
|
||
/// en: 'Most Popular Anime'
|
||
String get popularAnime => 'Most Popular Anime';
|
||
|
||
/// en: 'Trending'
|
||
String get trending => 'Trending';
|
||
|
||
/// en: 'Upcoming Movies'
|
||
String get upcomingMovies => 'Upcoming Movies';
|
||
|
||
/// en: 'Upcoming Shows'
|
||
String get upcomingShows => 'Upcoming Shows';
|
||
}
|
||
|
||
// Path: explore.status
|
||
class Translations$explore$status$en {
|
||
Translations$explore$status$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Airing'
|
||
String get airing => 'Airing';
|
||
|
||
/// en: 'Ended'
|
||
String get ended => 'Ended';
|
||
|
||
/// en: 'Canceled'
|
||
String get canceled => 'Canceled';
|
||
|
||
/// en: 'Upcoming'
|
||
String get upcoming => 'Upcoming';
|
||
}
|
||
|
||
// Path: downloads.backgroundWarning
|
||
class Translations$downloads$backgroundWarning$en {
|
||
Translations$downloads$backgroundWarning$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Downloads will stop when you leave the app'
|
||
String get bannerBlocked => 'Downloads will stop when you leave the app';
|
||
|
||
/// en: 'Background downloads may be limited'
|
||
String get bannerDegraded => 'Background downloads may be limited';
|
||
|
||
/// en: 'Details'
|
||
String get bannerAction => 'Details';
|
||
|
||
/// en: 'Background downloads are blocked'
|
||
String get sheetTitle => 'Background downloads are blocked';
|
||
|
||
/// en: 'Background downloads may be limited'
|
||
String get sheetTitleDegraded => 'Background downloads may be limited';
|
||
|
||
/// en: 'Android is preventing Plezy from downloading reliably in the background.'
|
||
String get sheetIntro => 'Android is preventing Plezy from downloading reliably in the background.';
|
||
|
||
/// en: 'Your device is limiting when Plezy can download in the background.'
|
||
String get sheetIntroDegraded => 'Your device is limiting when Plezy can download in the background.';
|
||
|
||
/// en: 'Plezy's background usage is restricted. Set its battery or background usage to "Unrestricted".'
|
||
String get reasonBackgroundRestricted => 'Plezy\'s background usage is restricted. Set its battery or background usage to "Unrestricted".';
|
||
|
||
/// en: 'Android has put Plezy in a restricted standby state. Set its battery usage to "Unrestricted".'
|
||
String get reasonStandbyRestricted => 'Android has put Plezy in a restricted standby state. Set its battery usage to "Unrestricted".';
|
||
|
||
/// en: 'Download notifications are turned off, so progress and controls may be unavailable.'
|
||
String get reasonDownloadChannelBlocked => 'Download notifications are turned off, so progress and controls may be unavailable.';
|
||
|
||
/// en: 'Notifications are turned off. On Android 13 or newer, they are required for long background downloads.'
|
||
String get reasonNotificationsDisabled => 'Notifications are turned off. On Android 13 or newer, they are required for long background downloads.';
|
||
|
||
/// en: 'Data Saver is on, which blocks background downloads on mobile data. Downloads should still run on Wi-Fi.'
|
||
String get reasonDataSaver => 'Data Saver is on, which blocks background downloads on mobile data. Downloads should still run on Wi-Fi.';
|
||
|
||
/// en: 'Downloads repeatedly stopped while Plezy was in the background. Check Plezy's battery or background usage settings.'
|
||
String get reasonOemUnknown => 'Downloads repeatedly stopped while Plezy was in the background. Check Plezy\'s battery or background usage settings.';
|
||
|
||
/// en: 'Open settings'
|
||
String get openSettings => 'Open settings';
|
||
|
||
/// en: 'Device-specific help'
|
||
String get stillNotWorking => 'Device-specific help';
|
||
|
||
/// en: 'See steps for your device, or send a log from Settings › View Logs if the issue continues.'
|
||
String get stillNotWorkingDescription => 'See steps for your device, or send a log from Settings › View Logs if the issue continues.';
|
||
|
||
/// en: 'Downloads may not finish'
|
||
String get dialogTitle => 'Downloads may not finish';
|
||
|
||
/// en: 'Download anyway'
|
||
String get dialogDownloadAnyway => 'Download anyway';
|
||
|
||
/// en: 'Fix this first'
|
||
String get dialogFixFirst => 'Fix this first';
|
||
|
||
/// en: 'Background downloads'
|
||
String get statusTile => 'Background downloads';
|
||
|
||
/// en: 'Allowed to run in the background'
|
||
String get statusOk => 'Allowed to run in the background';
|
||
|
||
/// en: 'Blocked by system settings'
|
||
String get statusBlocked => 'Blocked by system settings';
|
||
|
||
/// en: 'Limited by system settings'
|
||
String get statusDegraded => 'Limited by system settings';
|
||
|
||
/// en: 'Not checked yet'
|
||
String get statusUnknown => 'Not checked yet';
|
||
|
||
/// en: 'Couldn't open system settings on this device'
|
||
String get settingsUnavailable => 'Couldn\'t open system settings on this device';
|
||
|
||
/// en: 'Couldn't open dontkillmyapp.com on this device'
|
||
String get linkUnavailable => 'Couldn\'t open dontkillmyapp.com on this device';
|
||
}
|
||
|
||
// Path: companionRemote.session
|
||
class Translations$companionRemote$session$en {
|
||
Translations$companionRemote$session$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Starting remote server...'
|
||
String get startingServer => 'Starting remote server...';
|
||
|
||
/// en: 'Host Address'
|
||
String get hostAddress => 'Host Address';
|
||
|
||
/// en: 'Connected'
|
||
String get connected => 'Connected';
|
||
|
||
/// en: 'Remote server active'
|
||
String get serverRunning => 'Remote server active';
|
||
|
||
/// en: 'Remote server stopped'
|
||
String get serverStopped => 'Remote server stopped';
|
||
|
||
/// en: 'Mobile devices on your network can connect to this app'
|
||
String get serverRunningDescription => 'Mobile devices on your network can connect to this app';
|
||
|
||
/// en: 'Start the server to allow mobile devices to connect'
|
||
String get serverStoppedDescription => 'Start the server to allow mobile devices to connect';
|
||
|
||
/// en: 'Use your mobile device to control this app'
|
||
String get usePhoneToControl => 'Use your mobile device to control this app';
|
||
|
||
/// en: 'Start Server'
|
||
String get startServer => 'Start Server';
|
||
|
||
/// en: 'Stop Server'
|
||
String get stopServer => 'Stop Server';
|
||
|
||
/// en: 'Minimize'
|
||
String get minimize => 'Minimize';
|
||
}
|
||
|
||
// Path: companionRemote.pairing
|
||
class Translations$companionRemote$pairing$en {
|
||
Translations$companionRemote$pairing$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Plezy devices with the same Plex account appear here'
|
||
String get discoveryDescription => 'Plezy devices with the same Plex account appear here';
|
||
|
||
/// en: '192.168.1.100:48632'
|
||
String get hostAddressHint => '192.168.1.100:48632';
|
||
|
||
/// en: 'Connecting...'
|
||
String get connecting => 'Connecting...';
|
||
|
||
/// en: 'Looking for devices...'
|
||
String get searchingForDevices => 'Looking for devices...';
|
||
|
||
/// en: 'No devices found on your network'
|
||
String get noDevicesFound => 'No devices found on your network';
|
||
|
||
/// en: 'Open Plezy on desktop and use the same Wi-Fi'
|
||
String get noDevicesHint => 'Open Plezy on desktop and use the same Wi-Fi';
|
||
|
||
/// en: 'Available Devices'
|
||
String get availableDevices => 'Available Devices';
|
||
|
||
/// en: 'Manual Connection'
|
||
String get manualConnection => 'Manual Connection';
|
||
|
||
/// en: 'Couldn't start secure connection. Sign in to Plex first.'
|
||
String get cryptoInitFailed => 'Couldn\'t start secure connection. Sign in to Plex first.';
|
||
|
||
/// en: 'Please enter host address'
|
||
String get validationHostRequired => 'Please enter host address';
|
||
|
||
/// en: 'Format must be IP:port (e.g., 192.168.1.100:48632)'
|
||
String get validationHostFormat => 'Format must be IP:port (e.g., 192.168.1.100:48632)';
|
||
|
||
/// en: 'Connection timed out. Use the same network on both devices.'
|
||
String get connectionTimedOut => 'Connection timed out. Use the same network on both devices.';
|
||
|
||
/// en: 'Device not found. Make sure Plezy is running on the host.'
|
||
String get sessionNotFound => 'Device not found. Make sure Plezy is running on the host.';
|
||
|
||
/// en: 'Authentication failed. Both devices need the same Plex account.'
|
||
String get authFailed => 'Authentication failed. Both devices need the same Plex account.';
|
||
|
||
/// en: 'Failed to connect: ${error}'
|
||
String failedToConnect({required Object error}) => 'Failed to connect: ${error}';
|
||
}
|
||
|
||
// Path: companionRemote.remote
|
||
class Translations$companionRemote$remote$en {
|
||
Translations$companionRemote$remote$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Do you want to disconnect from the remote session?'
|
||
String get disconnectConfirm => 'Do you want to disconnect from the remote session?';
|
||
|
||
/// en: 'Reconnecting...'
|
||
String get reconnecting => 'Reconnecting...';
|
||
|
||
/// en: 'Attempt ${current} of 5'
|
||
String attemptOf({required Object current}) => 'Attempt ${current} of 5';
|
||
|
||
/// en: 'Retry Now'
|
||
String get retryNow => 'Retry Now';
|
||
|
||
/// en: 'Remote'
|
||
String get tabRemote => 'Remote';
|
||
|
||
/// en: 'Play'
|
||
String get tabPlay => 'Play';
|
||
|
||
/// en: 'More'
|
||
String get tabMore => 'More';
|
||
|
||
/// en: 'Menu'
|
||
String get menu => 'Menu';
|
||
|
||
/// en: 'Tab Navigation'
|
||
String get tabNavigation => 'Tab Navigation';
|
||
|
||
/// en: 'Discover'
|
||
String get tabDiscover => 'Discover';
|
||
|
||
/// en: 'Libraries'
|
||
String get tabLibraries => 'Libraries';
|
||
|
||
/// en: 'Search'
|
||
String get tabSearch => 'Search';
|
||
|
||
/// en: 'Downloads'
|
||
String get tabDownloads => 'Downloads';
|
||
|
||
/// en: 'Settings'
|
||
String get tabSettings => 'Settings';
|
||
|
||
/// en: 'Previous'
|
||
String get previous => 'Previous';
|
||
|
||
/// en: 'Play/Pause'
|
||
String get playPause => 'Play/Pause';
|
||
|
||
/// en: 'Next'
|
||
String get next => 'Next';
|
||
|
||
/// en: 'Seek Back'
|
||
String get seekBack => 'Seek Back';
|
||
|
||
/// en: 'Stop'
|
||
String get stop => 'Stop';
|
||
|
||
/// en: 'Seek Fwd'
|
||
String get seekForward => 'Seek Fwd';
|
||
|
||
/// en: 'Volume'
|
||
String get volume => 'Volume';
|
||
|
||
/// en: 'Down'
|
||
String get volumeDown => 'Down';
|
||
|
||
/// en: 'Up'
|
||
String get volumeUp => 'Up';
|
||
|
||
/// en: 'Fullscreen'
|
||
String get fullscreen => 'Fullscreen';
|
||
|
||
/// en: 'Subtitles'
|
||
String get subtitles => 'Subtitles';
|
||
|
||
/// en: 'Audio'
|
||
String get audio => 'Audio';
|
||
|
||
/// en: 'Search on desktop...'
|
||
String get searchHint => 'Search on desktop...';
|
||
}
|
||
|
||
// Path: companionRemote.errors
|
||
class Translations$companionRemote$errors$en {
|
||
Translations$companionRemote$errors$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'No network interface found'
|
||
String get noNetworkInterface => 'No network interface found';
|
||
|
||
/// en: 'Authentication failed'
|
||
String get authenticationFailed => 'Authentication failed';
|
||
|
||
/// en: 'Failed to start remote server: ${error}'
|
||
String serverStartFailed({required Object error}) => 'Failed to start remote server: ${error}';
|
||
|
||
/// en: 'Failed to send remote command: ${error}'
|
||
String commandFailed({required Object error}) => 'Failed to send remote command: ${error}';
|
||
|
||
/// en: 'Timed out joining session'
|
||
String get joinTimedOut => 'Timed out joining session';
|
||
|
||
/// en: 'Failed to connect to any address'
|
||
String get failedToConnectAnyAddress => 'Failed to connect to any address';
|
||
|
||
/// en: 'Connection lost after ${attempts} attempts'
|
||
String connectionLostAfterAttempts({required Object attempts}) => 'Connection lost after ${attempts} attempts';
|
||
|
||
/// en: 'Connection lost'
|
||
String get connectionLost => 'Connection lost';
|
||
}
|
||
|
||
// Path: services.names
|
||
class Translations$services$names$en {
|
||
Translations$services$names$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'MyAnimeList'
|
||
String get mal => 'MyAnimeList';
|
||
|
||
/// en: 'AniList'
|
||
String get anilist => 'AniList';
|
||
|
||
/// en: 'Simkl'
|
||
String get simkl => 'Simkl';
|
||
|
||
/// en: 'Seerr'
|
||
String get seerr => 'Seerr';
|
||
}
|
||
|
||
// Path: services.deviceCode
|
||
class Translations$services$deviceCode$en {
|
||
Translations$services$deviceCode$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Activate Plezy on ${service}'
|
||
String title({required Object service}) => 'Activate Plezy on ${service}';
|
||
|
||
/// en: 'Visit ${url} and enter this code:'
|
||
String body({required Object url}) => 'Visit ${url} and enter this code:';
|
||
|
||
/// en: 'Open ${service} to activate'
|
||
String openToActivate({required Object service}) => 'Open ${service} to activate';
|
||
|
||
/// en: 'Copy activation code'
|
||
String get copyCode => 'Copy activation code';
|
||
|
||
/// en: 'Waiting for authorization…'
|
||
String get waitingForAuthorization => 'Waiting for authorization…';
|
||
|
||
/// en: 'Code copied'
|
||
String get codeCopied => 'Code copied';
|
||
}
|
||
|
||
// Path: services.oauthProxy
|
||
class Translations$services$oauthProxy$en {
|
||
Translations$services$oauthProxy$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Sign in to ${service}'
|
||
String title({required Object service}) => 'Sign in to ${service}';
|
||
|
||
/// en: 'Scan this QR code or open the URL on any device.'
|
||
String get body => 'Scan this QR code or open the URL on any device.';
|
||
|
||
/// en: 'Open ${service} to sign in'
|
||
String openToSignIn({required Object service}) => 'Open ${service} to sign in';
|
||
|
||
/// en: 'Copy sign-in URL'
|
||
String get copyUrl => 'Copy sign-in URL';
|
||
|
||
/// en: 'URL copied'
|
||
String get urlCopied => 'URL copied';
|
||
}
|
||
|
||
// Path: services.libraryFilter
|
||
class Translations$services$libraryFilter$en {
|
||
Translations$services$libraryFilter$en.internal(this._root);
|
||
|
||
final Translations _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
|
||
/// en: 'Library filter'
|
||
String get title => 'Library filter';
|
||
|
||
/// en: 'Syncing all libraries'
|
||
String get subtitleAllSyncing => 'Syncing all libraries';
|
||
|
||
/// en: 'Nothing syncing'
|
||
String get subtitleNoneSyncing => 'Nothing syncing';
|
||
|
||
/// en: '${count} blocked'
|
||
String subtitleBlocked({required Object count}) => '${count} blocked';
|
||
|
||
/// en: '${count} allowed'
|
||
String subtitleAllowed({required Object count}) => '${count} allowed';
|
||
|
||
/// en: 'Filter mode'
|
||
String get mode => 'Filter mode';
|
||
|
||
/// en: 'Blacklist'
|
||
String get modeBlacklist => 'Blacklist';
|
||
|
||
/// en: 'Whitelist'
|
||
String get modeWhitelist => 'Whitelist';
|
||
|
||
/// en: 'Sync every library except the ones checked below.'
|
||
String get modeHintBlacklist => 'Sync every library except the ones checked below.';
|
||
|
||
/// en: 'Sync only the libraries checked below.'
|
||
String get modeHintWhitelist => 'Sync only the libraries checked below.';
|
||
|
||
/// en: 'Libraries'
|
||
String get libraries => 'Libraries';
|
||
|
||
/// en: 'No libraries available'
|
||
String get noLibraries => 'No libraries available';
|
||
}
|
||
|
||
/// The flat map containing all translations for locale <en>.
|
||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||
///
|
||
/// The Dart AOT compiler has issues with very large switch statements,
|
||
/// so the map is split into smaller functions (512 entries each).
|
||
extension on Translations {
|
||
dynamic _flatMapFunction(String path) {
|
||
return switch (path) {
|
||
'app.title' => 'Plezy',
|
||
'auth.signInWithPlex' => 'Sign in with Plex',
|
||
'auth.showQRCode' => 'Show QR Code',
|
||
'auth.authenticate' => 'Authenticate',
|
||
'auth.authenticationTimeout' => 'Authentication timed out. Please try again.',
|
||
'auth.scanQRToSignIn' => 'Scan this QR code to sign in',
|
||
'auth.waitingForAuth' => 'Waiting for authentication...\nSign in from your browser.',
|
||
'auth.useBrowser' => 'Use browser',
|
||
'auth.or' => 'or',
|
||
'auth.connectToJellyfin' => 'Connect to Jellyfin',
|
||
'auth.useQuickConnect' => 'Use Quick Connect',
|
||
'auth.quickConnectInstructions' => 'Open Quick Connect in Jellyfin and enter this code.',
|
||
'auth.quickConnectWaiting' => 'Waiting for approval…',
|
||
'auth.quickConnectCancel' => 'Cancel',
|
||
'auth.quickConnectExpired' => 'Quick Connect expired. Try again.',
|
||
'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.',
|
||
'common.cancel' => 'Cancel',
|
||
'common.save' => 'Save',
|
||
'common.close' => 'Close',
|
||
'common.clear' => 'Clear',
|
||
'common.reset' => 'Reset',
|
||
'common.later' => 'Later',
|
||
'common.submit' => 'Submit',
|
||
'common.confirm' => 'Confirm',
|
||
'common.retry' => 'Retry',
|
||
'common.logout' => 'Log out',
|
||
'common.unknown' => 'Unknown',
|
||
'common.refresh' => 'Refresh',
|
||
'common.yes' => 'Yes',
|
||
'common.no' => 'No',
|
||
'common.delete' => 'Delete',
|
||
'common.edit' => 'Edit',
|
||
'common.shuffle' => 'Shuffle',
|
||
'common.addTo' => 'Add to...',
|
||
'common.createNew' => 'Create new',
|
||
'common.connect' => 'Connect',
|
||
'common.disconnect' => 'Disconnect',
|
||
'common.play' => 'Play',
|
||
'common.pause' => 'Pause',
|
||
'common.resume' => 'Resume',
|
||
'common.error' => 'Error',
|
||
'common.search' => 'Search',
|
||
'common.home' => 'Home',
|
||
'common.back' => 'Back',
|
||
'common.settings' => 'Settings',
|
||
'common.mute' => 'Mute',
|
||
'common.ok' => 'OK',
|
||
'common.off' => 'Off',
|
||
'common.seasonNumber' => ({required Object number}) => 'Season ${number}',
|
||
'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Episode ${number} - ${title}',
|
||
'common.chapterNumber' => ({required Object number}) => 'Chapter ${number}',
|
||
'common.reconnect' => 'Reconnect',
|
||
'common.viewAll' => 'View All',
|
||
'common.checkingNetwork' => 'Checking network...',
|
||
'common.loadingServers' => 'Loading servers...',
|
||
'common.connectingToServers' => 'Connecting to servers...',
|
||
'common.startingOfflineMode' => 'Starting offline mode...',
|
||
'common.loading' => 'Loading...',
|
||
'common.fullscreen' => 'Fullscreen',
|
||
'common.exitFullscreen' => 'Exit fullscreen',
|
||
'common.pressBackAgainToExit' => 'Press back again to exit',
|
||
'screens.licenses' => 'Licenses',
|
||
'screens.switchProfile' => 'Switch Profile',
|
||
'screens.subtitleStyling' => 'Subtitle Styling',
|
||
'screens.mpvConfig' => 'mpv.conf',
|
||
'screens.logs' => 'Logs',
|
||
'update.available' => 'Update Available',
|
||
'update.versionAvailable' => ({required Object version}) => 'Version ${version} is available',
|
||
'update.currentVersion' => ({required Object version}) => 'Current: ${version}',
|
||
'update.skipVersion' => 'Skip This Version',
|
||
'update.viewRelease' => 'View Release',
|
||
'update.latestVersion' => 'You are on the latest version',
|
||
'update.checkFailed' => 'Failed to check for updates',
|
||
'settings.title' => 'Settings',
|
||
'settings.supportDeveloper' => 'Support Plezy',
|
||
'settings.supportDeveloperDescription' => 'Donate via Liberapay to fund development',
|
||
'settings.language' => 'Language',
|
||
'settings.theme' => 'Theme',
|
||
'settings.appearance' => 'Appearance',
|
||
'settings.videoPlayback' => 'Video Playback',
|
||
'settings.videoPlaybackDescription' => 'Configure playback behavior',
|
||
'settings.advanced' => 'Advanced',
|
||
'settings.episodePosterMode' => 'Episode Poster Style',
|
||
'settings.seriesPoster' => 'Series Poster',
|
||
'settings.seasonPoster' => 'Season Poster',
|
||
'settings.episodeThumbnail' => 'Thumbnail',
|
||
'settings.showHeroSectionDescription' => 'Display featured content carousel on home screen',
|
||
'settings.secondsLabel' => 'Seconds',
|
||
'settings.minutesLabel' => 'Minutes',
|
||
'settings.secondsShort' => 's',
|
||
'settings.minutesShort' => 'm',
|
||
'settings.durationHint' => ({required Object min, required Object max}) => 'Enter duration (${min}-${max})',
|
||
'settings.systemTheme' => 'System',
|
||
'settings.lightTheme' => 'Light',
|
||
'settings.darkTheme' => 'Dark',
|
||
'settings.oledTheme' => 'OLED',
|
||
'settings.libraryDensity' => 'Library Density',
|
||
'settings.compact' => 'Compact',
|
||
'settings.comfortable' => 'Comfortable',
|
||
'settings.tvCornerSpotlightBackdrop' => 'Corner Spotlight Backdrop',
|
||
'settings.tvCornerSpotlightBackdropDescription' => 'Show spotlight artwork in the top-right corner instead of filling the screen',
|
||
'settings.viewMode' => 'View Mode',
|
||
'settings.gridView' => 'Grid',
|
||
'settings.listView' => 'List',
|
||
'settings.showHeroSection' => 'Show Hero Section',
|
||
'settings.continueWatchingAction' => 'Continue Watching Action',
|
||
'settings.continueWatchingPlay' => 'Play',
|
||
'settings.continueWatchingDetails' => 'Open Details',
|
||
'settings.episodeAction' => 'Episode Action',
|
||
'settings.episodePlay' => 'Play',
|
||
'settings.episodeDetails' => 'Open Details',
|
||
'settings.useGlobalHubs' => 'Use Home Layout',
|
||
'settings.useGlobalHubsDescription' => 'Show unified home hubs. Otherwise use library recommendations.',
|
||
'settings.showServerNameOnHubs' => 'Show Server Name on Hubs',
|
||
'settings.showServerNameOnHubsDescription' => 'Always show server names in hub titles.',
|
||
'settings.groupLibrariesByServer' => 'Group Libraries by Server',
|
||
'settings.groupLibrariesByServerDescription' => 'Group sidebar libraries under each media server.',
|
||
'settings.alwaysKeepSidebarOpen' => 'Always Keep Sidebar Open',
|
||
'settings.alwaysKeepSidebarOpenDescription' => 'Sidebar stays expanded and content area adjusts to fit',
|
||
'settings.showUnwatchedCount' => 'Show Unwatched Count',
|
||
'settings.showUnwatchedCountDescription' => 'Display unwatched episode count on shows and seasons',
|
||
'settings.showEpisodeNumberOnCards' => 'Show Episode Number on Cards',
|
||
'settings.showEpisodeNumberOnCardsDescription' => 'Show season and episode number on episode cards',
|
||
'settings.showSeasonPostersOnTabs' => 'Show Season Posters on Tabs',
|
||
'settings.showSeasonPostersOnTabsDescription' => 'Show each season\'s poster above its tab',
|
||
'settings.tvFullCardLayout' => 'Full TV Cards',
|
||
'settings.tvFullCardLayoutDescription' => 'Use image-only TV cards with actor names overlaid',
|
||
'settings.focusGlow' => 'Focus Glow',
|
||
'settings.focusGlowDescription' => 'Draw a soft glow around the focused card',
|
||
'settings.visualEffects' => 'Visual Effects',
|
||
'settings.visualEffectsAuto' => 'Auto',
|
||
'settings.visualEffectsAutoDescription' => 'Reduce effects automatically on low-power devices',
|
||
'settings.visualEffectsFull' => 'Full',
|
||
'settings.visualEffectsReduced' => 'Reduced',
|
||
'settings.visualEffectsReducedDescription' => 'Fewer animations and lower-resolution artwork',
|
||
'settings.hideSpoilers' => 'Hide Spoilers for Unwatched Episodes',
|
||
'settings.hideSpoilersDescription' => 'Blur thumbnails and descriptions for unwatched episodes',
|
||
'settings.playerBackend' => 'Player Backend',
|
||
'settings.exoPlayer' => 'ExoPlayer',
|
||
'settings.mpv' => 'mpv',
|
||
'settings.hardwareDecoding' => 'Hardware Decoding',
|
||
'settings.hardwareDecodingDescription' => 'Use hardware acceleration when available',
|
||
'settings.bufferSize' => 'Buffer Size',
|
||
'settings.bufferSizeMB' => ({required Object size}) => '${size}MB',
|
||
'settings.bufferSizeAuto' => 'Auto (Recommended)',
|
||
'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB memory available. A ${size}MB buffer may affect playback.',
|
||
'settings.defaultQualityTitle' => 'Default Quality',
|
||
'settings.musicQualityTitle' => 'Music Quality',
|
||
'settings.subtitleStyling' => 'Subtitle Styling',
|
||
'settings.subtitleStylingDescription' => 'Customize subtitle appearance',
|
||
'settings.smallSkipDuration' => 'Small Skip Duration',
|
||
'settings.largeSkipDuration' => 'Large Skip Duration',
|
||
'settings.rewindOnResume' => 'Rewind on Resume',
|
||
'settings.secondsUnit' => ({required Object seconds}) => '${seconds} seconds',
|
||
'settings.defaultSleepTimer' => 'Default Sleep Timer',
|
||
'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutes',
|
||
'settings.rememberTrackSelections' => 'Remember track selections per show/movie',
|
||
'settings.rememberTrackSelectionsDescription' => 'Remember audio and subtitle choices per title',
|
||
'settings.showChapterMarkersOnTimeline' => 'Show chapter markers on seek bar',
|
||
'settings.showChapterMarkersOnTimelineDescription' => 'Segment the seek bar at chapter boundaries',
|
||
'settings.clickVideoTogglesPlayback' => 'Click on video to toggle play/pause',
|
||
'settings.clickVideoTogglesPlaybackDescription' => 'Click video to play/pause instead of showing controls.',
|
||
'settings.videoPlayerControls' => 'Video Player Controls',
|
||
'settings.keyboardShortcuts' => 'Keyboard Shortcuts',
|
||
'settings.keyboardShortcutsDescription' => 'Customize keyboard shortcuts',
|
||
'settings.videoPlayerNavigation' => 'Video Player Navigation',
|
||
'settings.videoPlayerNavigationDescription' => 'Use arrow keys to navigate video player controls',
|
||
'settings.watchTogetherRelay' => 'Watch Together Relay',
|
||
'settings.watchTogetherRelayDescription' => 'Set a custom relay. Everyone must use the same server.',
|
||
'settings.watchTogetherRelayHint' => 'https://my-relay.example.com',
|
||
'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.',
|
||
'settings.crashReporting' => 'Crash Reporting',
|
||
'settings.crashReportingDescription' => 'Send crash reports to help improve the app',
|
||
'settings.debugLogging' => 'Debug Logging',
|
||
'settings.debugLoggingDescription' => 'Enable detailed logging for troubleshooting',
|
||
'settings.viewLogs' => 'View Logs',
|
||
'settings.viewLogsDescription' => 'View application logs',
|
||
'settings.clearImageCache' => 'Clear Image Cache',
|
||
'settings.clearImageCacheDescription' => 'Clear cached artwork and thumbnails. Images may load slower until downloaded again.',
|
||
'settings.clearImageCacheSuccess' => 'Image cache cleared successfully',
|
||
'settings.resetSettings' => 'Reset Settings',
|
||
'settings.resetSettingsDescription' => 'Restore default settings. This can\'t be undone.',
|
||
'settings.resetSettingsSuccess' => 'Settings reset successfully',
|
||
'settings.backup' => 'Backup',
|
||
'settings.exportSettings' => 'Export Settings',
|
||
'settings.exportSettingsDescription' => 'Save your preferences to a file',
|
||
'settings.exportSettingsSuccess' => 'Settings exported',
|
||
'settings.importSettings' => 'Import Settings',
|
||
'settings.importSettingsDescription' => 'Restore preferences from a file',
|
||
'settings.importSettingsConfirm' => 'This will replace your current settings. Continue?',
|
||
'settings.importSettingsSuccess' => 'Settings imported',
|
||
'settings.importSettingsInvalidFile' => 'This file isn\'t a valid Plezy settings export',
|
||
'settings.importSettingsNoUser' => 'Sign in before importing settings',
|
||
'settings.shortcutsReset' => 'Shortcuts reset to defaults',
|
||
'settings.about' => 'About',
|
||
'settings.aboutDescription' => 'App information and licenses',
|
||
'settings.updates' => 'Updates',
|
||
'settings.updateAvailable' => 'Update Available',
|
||
'settings.checkForUpdates' => 'Check for Updates',
|
||
'settings.autoCheckUpdatesOnStartup' => 'Automatically check for updates on startup',
|
||
'settings.autoCheckUpdatesOnStartupDescription' => 'Notify when an update is available at launch',
|
||
'settings.validationErrorEnterNumber' => 'Please enter a valid number',
|
||
'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Duration must be between ${min} and ${max} ${unit}',
|
||
'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Shortcut already assigned to ${action}',
|
||
'settings.shortcutUpdated' => ({required Object action}) => 'Shortcut updated for ${action}',
|
||
'settings.saveFailed' => 'Could not save changes. Try again.',
|
||
'settings.autoSkip' => 'Auto Skip',
|
||
'settings.autoSkipIntro' => 'Auto Skip Intro',
|
||
'settings.autoSkipIntroDescription' => 'Automatically skip intro markers after a few seconds',
|
||
'settings.autoSkipCredits' => 'Auto Skip Credits',
|
||
'settings.autoSkipCreditsDescription' => 'Automatically skip credits and play next episode',
|
||
'settings.forceSkipMarkerFallback' => 'Force Fallback Markers',
|
||
'settings.forceSkipMarkerFallbackDescription' => 'Use chapter title patterns even when Plex has markers',
|
||
'settings.autoSkipDelay' => 'Auto Skip Delay',
|
||
'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Wait ${seconds} seconds before auto-skipping',
|
||
'settings.introPattern' => 'Intro Marker Pattern',
|
||
'settings.introPatternDescription' => 'Regex pattern to match intro markers in chapter titles',
|
||
'settings.creditsPattern' => 'Credits Marker Pattern',
|
||
'settings.creditsPatternDescription' => 'Regex pattern to match credits markers in chapter titles',
|
||
'settings.invalidRegex' => 'Invalid regular expression',
|
||
'settings.regex' => 'Regular expression',
|
||
'settings.downloads' => 'Downloads',
|
||
'settings.downloadLocationDescription' => 'Choose where to store downloaded content',
|
||
'settings.downloadLocationDefault' => 'Default (App Storage)',
|
||
'settings.downloadLocationCustom' => 'Custom Location',
|
||
'settings.selectFolder' => 'Select Folder',
|
||
'settings.resetToDefault' => 'Reset to Default',
|
||
'settings.currentPath' => ({required Object path}) => 'Current: ${path}',
|
||
'settings.downloadLocationChanged' => 'Download location changed',
|
||
'settings.downloadLocationReset' => 'Download location reset to default',
|
||
'settings.downloadLocationInvalid' => 'Selected folder is not writable',
|
||
'settings.downloadLocationPickerUnavailable' => 'Folder selection is not available on this device',
|
||
'settings.downloadOnWifiOnly' => 'Download on Wi-Fi only',
|
||
'settings.downloadOnWifiOnlyDescription' => 'Prevent downloads when on cellular data',
|
||
'settings.autoRemoveWatchedDownloads' => 'Auto-remove watched downloads',
|
||
'settings.autoRemoveWatchedDownloadsDescription' => 'Delete watched downloads automatically',
|
||
'settings.cellularDownloadBlocked' => 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.',
|
||
'settings.maxVolume' => 'Maximum Volume',
|
||
'settings.maxVolumeDescription' => 'Allow volume boost above 100% for quiet media',
|
||
'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%',
|
||
'settings.discordRichPresence' => 'Discord Rich Presence',
|
||
'settings.discordRichPresenceDescription' => 'Show what you\'re watching on Discord',
|
||
'settings.services' => 'Services',
|
||
'settings.servicesDescription' => 'Connect Trakt, MyAnimeList, Seerr, and more',
|
||
'settings.manageLibrariesDescription' => 'Reorder and hide libraries',
|
||
'settings.companionRemoteServer' => 'Companion Remote Server',
|
||
'settings.companionRemoteServerDescription' => 'Allow mobile devices on your network to control this app',
|
||
'settings.autoPip' => 'Auto Picture-in-Picture',
|
||
'settings.autoPipDescription' => 'Automatically enter picture-in-picture when you leave the app during playback',
|
||
'settings.matchContentFrameRate' => 'Match Content Frame Rate',
|
||
'settings.matchContentFrameRateDescription' => 'Match display refresh rate to video content',
|
||
'settings.matchRefreshRate' => 'Match Refresh Rate',
|
||
'settings.matchRefreshRateDescription' => 'Match display refresh rate in fullscreen',
|
||
'settings.matchDynamicRange' => 'Match Dynamic Range',
|
||
'settings.matchDynamicRangeDescription' => 'Switch HDR on for HDR content, then back to SDR',
|
||
'settings.displaySwitchDelay' => 'Display Switch Delay',
|
||
'settings.tunneledPlayback' => 'Tunneled Playback',
|
||
'settings.tunneledPlaybackDescription' => 'Use video tunneling. Disable if HDR playback shows black video.',
|
||
'settings.audioPassthrough' => 'Audio Passthrough',
|
||
'settings.audioPassthroughDescription' => 'Send Dolby/DTS audio to your receiver or TV without re-encoding, preserving surround sound. Turn off if you have no sound.',
|
||
'settings.audioPassthroughDescriptionAppleTv' => 'Use Apple\'s native Dolby decoder for Dolby Digital Plus, including Atmos. DTS and TrueHD still play as multichannel PCM. Turn off if you have no sound.',
|
||
'settings.audioDownmix' => 'Downmix to Stereo',
|
||
'settings.audioDownmixDescription' => 'Mix surround audio down to two channels for stereo speakers or headphones',
|
||
'settings.downmixCenterBoost' => 'Center Channel Boost',
|
||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||
'settings.downmixCenterBoostLabel' => 'Boost (dB)',
|
||
'settings.downmixCenterBoostShort' => 'dB',
|
||
'settings.audioDownmixNormalize' => 'Normalize Volume on Downmix',
|
||
'settings.audioDownmixNormalizeDescription' => 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).',
|
||
'settings.atmosDiagnostics' => 'Atmos Output Test',
|
||
'settings.atmosDiagnosticsDescription' => 'Diagnose Dolby Atmos output by playing test signals through the system player',
|
||
'settings.atmosTestHlsAtmos' => 'Apple Atmos stream',
|
||
'settings.atmosTestHlsAtmosDescription' => 'Known-good Dolby Atmos stream. The receiver should show Dolby Atmos.',
|
||
'settings.atmosTestHlsControl' => 'Apple surround stream',
|
||
'settings.atmosTestHlsControlDescription' => 'Non-Atmos control stream. The receiver should show surround without Atmos.',
|
||
'settings.atmosTestRawStream' => 'Raw EAC3 stream',
|
||
'settings.atmosTestRawStreamDescription' => 'Streams the test file exactly like in-player Atmos playback. Needs the test file URL.',
|
||
'settings.atmosTestRawFile' => 'Raw EAC3 file',
|
||
'settings.atmosTestRawFileDescription' => 'Plays the test file with a known length. Needs the test file URL.',
|
||
'settings.atmosTestStop' => 'Stop test',
|
||
'settings.atmosTestUrl' => 'Test file URL',
|
||
'settings.atmosTestUrlDescription' => 'HTTP URL of a raw .ec3 Dolby Atmos file (e.g. extracted with ffmpeg)',
|
||
'settings.atmosTestUrlMissing' => 'Set the test file URL first',
|
||
'settings.atmosTestStatus' => 'Status',
|
||
'settings.dvConversionMode' => 'Dolby Vision Conversion',
|
||
'settings.dvConversionModeDescription' => 'Choose how ExoPlayer handles Dolby Vision Profile 7 files.',
|
||
'settings.dvConversionAuto' => 'Auto',
|
||
'settings.dvConversionNative' => 'Native / Disabled',
|
||
'settings.dvConversionDv81' => 'P7 → P8.1',
|
||
'settings.dvConversionHevcStrip' => 'P7 → HEVC',
|
||
'settings.dvConversionAutoDescription' => 'Use device capability detection and normal fallback behavior',
|
||
'settings.dvConversionNativeDescription' => 'Force native DV7 and suppress DV conversion retry',
|
||
'settings.dvConversionDv81Description' => 'Force inline RPU conversion to Dolby Vision profile 8.1',
|
||
'settings.dvConversionHevcStripDescription' => 'Strip Dolby Vision RPU/EL layers and present plain HEVC',
|
||
'settings.requireProfileSelectionOnOpen' => 'Ask for profile on app open',
|
||
'settings.requireProfileSelectionOnOpenDescription' => 'Show profile selection every time the app is opened',
|
||
'settings.forceTvMode' => 'Force TV mode',
|
||
'settings.forceTvModeDescription' => 'Force TV layout. For devices that don\'t auto-detect. Requires restart.',
|
||
'settings.startInFullscreen' => 'Start in fullscreen',
|
||
'settings.startInFullscreenDescription' => 'Open Plezy in fullscreen mode at launch',
|
||
'settings.exitFullscreenOnPlayerClose' => 'Exit fullscreen on player close',
|
||
'settings.exitFullscreenOnPlayerCloseDescription' => 'Automatically exit fullscreen when closing the video player',
|
||
'settings.autoHidePerformanceOverlay' => 'Auto-Hide Performance Overlay',
|
||
'settings.autoHidePerformanceOverlayDescription' => 'Fade the performance overlay with the playback controls',
|
||
'settings.showNavBarLabels' => 'Show Navigation Bar Labels',
|
||
'settings.showNavBarLabelsDescription' => 'Display text labels under navigation bar icons',
|
||
'settings.startupSection' => 'Startup Section',
|
||
'settings.liveTvDefaultFavorites' => 'Default to Favorite Channels',
|
||
'settings.liveTvDefaultFavoritesDescription' => 'Show only favorite channels when opening Live TV',
|
||
'settings.display' => 'Display',
|
||
'settings.homeScreen' => 'Home Screen',
|
||
'settings.navigation' => 'Navigation',
|
||
'settings.window' => 'Window',
|
||
'settings.content' => 'Content',
|
||
'settings.player' => 'Player',
|
||
'settings.subtitlesAndConfig' => 'Subtitles & Configuration',
|
||
'settings.seekAndTiming' => 'Seek & Timing',
|
||
'settings.behavior' => 'Behavior',
|
||
'search.hint' => 'Search movies, shows, music...',
|
||
'search.tryDifferentTerm' => 'Try a different search term',
|
||
'search.searchYourMedia' => 'Search your media',
|
||
'search.enterTitleActorOrKeyword' => 'Enter a title, actor, or keyword',
|
||
'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Set Shortcut for ${actionName}',
|
||
'hotkeys.clearShortcut' => 'Clear shortcut',
|
||
'hotkeys.noShortcutSet' => 'No shortcut set',
|
||
'hotkeys.currentShortcut' => 'Current shortcut:',
|
||
'hotkeys.pressToRecord' => 'Select to record a shortcut',
|
||
'hotkeys.recordingShortcut' => 'Press the shortcut now',
|
||
'hotkeys.actions.playPause' => 'Play/Pause',
|
||
'hotkeys.actions.volumeUp' => 'Volume Up',
|
||
'hotkeys.actions.volumeDown' => 'Volume Down',
|
||
'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Seek Forward (${seconds}s)',
|
||
'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Seek Backward (${seconds}s)',
|
||
'hotkeys.actions.fullscreenToggle' => 'Toggle Fullscreen',
|
||
'hotkeys.actions.muteToggle' => 'Toggle Mute',
|
||
'hotkeys.actions.subtitleToggle' => 'Toggle Subtitles',
|
||
'hotkeys.actions.audioTrackNext' => 'Next Audio Track',
|
||
'hotkeys.actions.subtitleTrackNext' => 'Next Subtitle Track',
|
||
'hotkeys.actions.chapterNext' => 'Next Chapter',
|
||
'hotkeys.actions.chapterPrevious' => 'Previous Chapter',
|
||
'hotkeys.actions.episodeNext' => 'Next Episode',
|
||
'hotkeys.actions.episodePrevious' => 'Previous Episode',
|
||
'hotkeys.actions.speedIncrease' => 'Increase Speed',
|
||
'hotkeys.actions.speedDecrease' => 'Decrease Speed',
|
||
'hotkeys.actions.speedReset' => 'Reset Speed',
|
||
'hotkeys.actions.zoomIn' => 'Zoom In',
|
||
'hotkeys.actions.zoomOut' => 'Zoom Out',
|
||
'hotkeys.actions.zoomReset' => 'Reset Zoom',
|
||
'hotkeys.actions.subSeekNext' => 'Seek to Next Subtitle',
|
||
'hotkeys.actions.subSeekPrev' => 'Seek to Previous Subtitle',
|
||
'hotkeys.actions.shaderToggle' => 'Toggle Shaders',
|
||
'hotkeys.actions.skipMarker' => 'Skip Intro/Credits',
|
||
'hotkeys.actions.screenshot' => 'Take Screenshot',
|
||
'fileInfo.title' => 'File Info',
|
||
'fileInfo.video' => 'Video',
|
||
'fileInfo.audio' => 'Audio',
|
||
'fileInfo.file' => 'File',
|
||
'fileInfo.advanced' => 'Advanced',
|
||
'fileInfo.codec' => 'Codec',
|
||
'fileInfo.resolution' => 'Resolution',
|
||
'fileInfo.bitrate' => 'Bitrate',
|
||
'fileInfo.frameRate' => 'Frame Rate',
|
||
'fileInfo.aspectRatio' => 'Aspect Ratio',
|
||
'fileInfo.profile' => 'Profile',
|
||
'fileInfo.bitDepth' => 'Bit Depth',
|
||
'fileInfo.colorSpace' => 'Color Space',
|
||
'fileInfo.colorRange' => 'Color Range',
|
||
'fileInfo.colorPrimaries' => 'Color Primaries',
|
||
'fileInfo.chromaSubsampling' => 'Chroma Subsampling',
|
||
'fileInfo.channels' => 'Channels',
|
||
'fileInfo.subtitles' => 'Subtitles',
|
||
'fileInfo.overallBitrate' => 'Overall Bitrate',
|
||
'fileInfo.path' => 'Path',
|
||
'fileInfo.size' => 'Size',
|
||
'fileInfo.container' => 'Container',
|
||
'fileInfo.duration' => 'Duration',
|
||
'fileInfo.optimizedForStreaming' => 'Optimized for Streaming',
|
||
'fileInfo.has64bitOffsets' => '64-bit Offsets',
|
||
'mediaMenu.markAsWatched' => 'Mark as Watched',
|
||
'mediaMenu.markAsUnwatched' => 'Mark as Unwatched',
|
||
'mediaMenu.removeFromContinueWatching' => 'Remove from Continue Watching',
|
||
'mediaMenu.viewDetails' => 'View details',
|
||
'mediaMenu.goToSeries' => 'Go to series',
|
||
'mediaMenu.shufflePlay' => 'Shuffle Play',
|
||
'mediaMenu.shuffleNotAvailableOffline' => 'Shuffle not available offline',
|
||
'mediaMenu.fileInfo' => 'File Info',
|
||
'mediaMenu.deleteFromServer' => 'Delete from server',
|
||
'mediaMenu.confirmDelete' => 'Delete this media and its files from your server?',
|
||
'mediaMenu.deleteMultipleWarning' => 'This includes all episodes and their files.',
|
||
'mediaMenu.mediaDeletedSuccessfully' => 'Media item deleted successfully',
|
||
'mediaMenu.mediaFailedToDelete' => 'Failed to delete media item',
|
||
'mediaMenu.rate' => 'Rate',
|
||
'mediaMenu.playFromBeginning' => 'Play from Beginning',
|
||
'mediaMenu.playVersion' => 'Play Version...',
|
||
'rateSheet.title' => 'Rate',
|
||
'rateSheet.server' => 'Server',
|
||
'rateSheet.favorite' => 'Favorite',
|
||
'rateSheet.favorited' => 'Favorited',
|
||
'rateSheet.saved' => 'Saved',
|
||
'rateSheet.notAvailable' => 'No match found',
|
||
'rateSheet.noConnectedServices' => 'Connect a service in Settings to rate there.',
|
||
'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, movie',
|
||
'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV show',
|
||
'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}',
|
||
'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}',
|
||
'accessibility.mediaCardWatched' => 'watched',
|
||
'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} percent watched',
|
||
'accessibility.mediaCardUnwatched' => 'unwatched',
|
||
'accessibility.tapToPlay' => 'Tap to play',
|
||
'accessibility.decrease' => 'Decrease',
|
||
'accessibility.increase' => 'Increase',
|
||
'accessibility.decreaseValue' => ({required Object label}) => 'Decrease ${label}',
|
||
'accessibility.increaseValue' => ({required Object label}) => 'Increase ${label}',
|
||
'accessibility.hue' => 'Hue',
|
||
'accessibility.saturation' => 'Saturation',
|
||
'accessibility.brightness' => 'Brightness',
|
||
'accessibility.hexColor' => 'Hex color',
|
||
'accessibility.expandText' => 'Expand text',
|
||
'accessibility.collapseText' => 'Collapse text',
|
||
'accessibility.alphabetNavigation' => 'Alphabet navigation',
|
||
'accessibility.alphabetScrollHint' => 'Swipe up or down to move by letter',
|
||
'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Row ${row} of ${rowCount}, column ${column} of ${columnCount}',
|
||
'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Row ${row} of ${rowCount}',
|
||
'tooltips.shufflePlay' => 'Shuffle play',
|
||
'tooltips.playTrailer' => 'Play trailer',
|
||
'tooltips.markAsWatched' => 'Mark as watched',
|
||
'tooltips.markAsUnwatched' => 'Mark as unwatched',
|
||
'audioTracks.track' => ({required Object n}) => 'Audio Track ${n}',
|
||
'videoControls.audioLabel' => 'Audio',
|
||
'videoControls.subtitlesLabel' => 'Subtitles',
|
||
'videoControls.resetToZero' => 'Reset to 0ms',
|
||
'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}',
|
||
'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}',
|
||
'videoControls.playsLater' => ({required Object label}) => '${label} plays later',
|
||
'videoControls.playsEarlier' => ({required Object label}) => '${label} plays earlier',
|
||
'videoControls.noOffset' => 'No offset',
|
||
'videoControls.letterbox' => 'Letterbox',
|
||
'videoControls.fillScreen' => 'Fill screen',
|
||
'videoControls.stretch' => 'Stretch',
|
||
'videoControls.lockRotation' => 'Lock rotation',
|
||
'videoControls.unlockRotation' => 'Unlock rotation',
|
||
'videoControls.timerActive' => 'Timer Active',
|
||
'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Playback will pause in ${duration}',
|
||
'videoControls.sleepTimerEndOfVideo' => 'End of current video',
|
||
'videoControls.sleepTimerStopAtHeader' => 'Stop at',
|
||
'videoControls.sleepTimerDurationHeader' => 'Timer',
|
||
'videoControls.playbackWillPauseAtEnd' => 'Playback will pause at the end of this video',
|
||
'videoControls.stillWatching' => 'Still watching?',
|
||
'videoControls.pausingIn' => ({required Object seconds}) => 'Pausing in ${seconds}s',
|
||
'videoControls.continueWatching' => 'Continue',
|
||
'videoControls.autoPlayNext' => 'Auto-Play Next',
|
||
'videoControls.playNext' => 'Play Next',
|
||
'videoControls.playButton' => 'Play',
|
||
'videoControls.pauseButton' => 'Pause',
|
||
'videoControls.showPlaybackControls' => 'Show playback controls',
|
||
'videoControls.hidePlaybackControls' => 'Hide playback controls',
|
||
'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Seek backward ${seconds} seconds',
|
||
'videoControls.seekForwardButton' => ({required Object seconds}) => 'Seek forward ${seconds} seconds',
|
||
'videoControls.previousButton' => 'Previous episode',
|
||
'videoControls.nextButton' => 'Next episode',
|
||
'videoControls.previousChapterButton' => 'Previous chapter',
|
||
'videoControls.nextChapterButton' => 'Next chapter',
|
||
'videoControls.muteButton' => 'Mute',
|
||
'videoControls.unmuteButton' => 'Unmute',
|
||
'videoControls.settingsButton' => 'Playback Settings',
|
||
'videoControls.tracksButton' => 'Audio & Subtitles',
|
||
'videoControls.chaptersButton' => 'Chapters',
|
||
'videoControls.versionQualityButton' => 'Version & Quality',
|
||
'videoControls.versionColumnHeader' => 'Version',
|
||
'videoControls.qualityColumnHeader' => 'Quality',
|
||
'videoControls.qualityOriginal' => 'Original',
|
||
'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps',
|
||
'videoControls.transcodeUnavailableFallback' => 'Transcoding unavailable — playing original quality',
|
||
'videoControls.subtitleUnavailableFallback' => 'Selected subtitles could not be loaded — continuing without subtitles',
|
||
'videoControls.pipButton' => 'Picture-in-Picture mode',
|
||
'videoControls.aspectRatioButton' => 'Aspect ratio',
|
||
'videoControls.ambientLighting' => 'Ambient lighting',
|
||
'videoControls.fullscreenButton' => 'Enter fullscreen',
|
||
'videoControls.exitFullscreenButton' => 'Exit fullscreen',
|
||
'videoControls.alwaysOnTopButton' => 'Always on top',
|
||
'videoControls.rotationLockButton' => 'Rotation lock',
|
||
'videoControls.lockScreen' => 'Lock screen',
|
||
'videoControls.screenLockButton' => 'Screen lock',
|
||
'videoControls.longPressToUnlock' => 'Long press to unlock',
|
||
'videoControls.timelineSlider' => 'Video timeline',
|
||
'videoControls.volumeSlider' => 'Volume level',
|
||
'videoControls.endsAt' => ({required Object time}) => 'Ends at ${time}',
|
||
'videoControls.pipActive' => 'Playing in Picture-in-Picture',
|
||
'videoControls.pipFailed' => 'Picture-in-picture failed to start',
|
||
'videoControls.screenshotSaved' => 'Screenshot saved',
|
||
'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%',
|
||
'videoControls.pipErrors.androidVersion' => 'Requires Android 8.0 or newer',
|
||
'videoControls.pipErrors.iosVersion' => 'Requires iOS 15.0 or newer',
|
||
'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture is disabled. Enable it in system settings.',
|
||
'videoControls.pipErrors.notSupported' => 'Device doesn\'t support picture-in-picture mode',
|
||
'videoControls.pipErrors.voSwitchFailed' => 'Failed to switch video output for picture-in-picture',
|
||
'videoControls.pipErrors.failed' => 'Picture-in-picture failed to start',
|
||
'videoControls.pipErrors.unknown' => ({required Object error}) => 'An error occurred: ${error}',
|
||
'videoControls.chapters' => 'Chapters',
|
||
'videoControls.noChaptersAvailable' => 'No chapters available',
|
||
'videoControls.queue' => 'Queue',
|
||
'videoControls.noQueueItems' => 'No items in queue',
|
||
'videoControls.searchSubtitles' => 'Search Subtitles',
|
||
'videoControls.language' => 'Language',
|
||
'videoControls.noSubtitlesFound' => 'No subtitles found',
|
||
'videoControls.noSubtitlesAvailable' => 'No subtitles available',
|
||
'videoControls.noAudioTracksAvailable' => 'No audio tracks available',
|
||
'videoControls.noTracksAvailable' => 'No tracks available',
|
||
'videoControls.subtitleDownloaded' => 'Subtitle downloaded',
|
||
'videoControls.subtitleDownloadedNotApplied' => 'Subtitle downloaded, but it could not be selected',
|
||
'videoControls.subtitleDownloadFailed' => 'Failed to download subtitle',
|
||
'videoControls.searchLanguages' => 'Search languages...',
|
||
_ => null,
|
||
} ?? switch (path) {
|
||
'messages.markedAsWatched' => 'Marked as watched',
|
||
'messages.markedAsUnwatched' => 'Marked as unwatched',
|
||
'messages.markedAsWatchedOffline' => 'Marked as watched (will sync when online)',
|
||
'messages.markedAsUnwatchedOffline' => 'Marked as unwatched (will sync when online)',
|
||
'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Auto-removed: ${title}',
|
||
'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n, one: 'Auto-removed ${n} watched download', other: 'Auto-removed ${n} watched downloads', ),
|
||
'messages.removedFromContinueWatching' => 'Removed from Continue Watching',
|
||
'messages.errorLoading' => ({required Object error}) => 'Error: ${error}',
|
||
'messages.streamInterrupted' => 'The stream was interrupted. Press play or seek to retry.',
|
||
'messages.liveStreamInterrupted' => 'The live stream was interrupted. Press play to retry.',
|
||
'messages.fileInfoNotAvailable' => 'File information not available',
|
||
'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.',
|
||
'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.',
|
||
'messages.playbackDataInvalid' => 'The server returned invalid playback information.',
|
||
'messages.playbackCancelled' => 'Playback was canceled.',
|
||
'messages.playbackFailed' => 'Playback could not be started.',
|
||
'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error loading file info: ${error}',
|
||
'messages.errorLoadingSeries' => 'Error loading series',
|
||
'messages.musicNotSupported' => 'Music playback is not yet supported',
|
||
'messages.noDescriptionAvailable' => 'No description available',
|
||
'messages.noProfilesAvailable' => 'No profiles available',
|
||
'messages.contactAdminForProfiles' => 'Contact your server administrator to add profiles',
|
||
'messages.unableToDetermineLibrarySection' => 'Unable to determine library section for this item',
|
||
'messages.logsCleared' => 'Logs cleared',
|
||
'messages.logsCopied' => 'Logs copied to clipboard',
|
||
'messages.noLogsAvailable' => 'No logs available',
|
||
'messages.libraryScanning' => ({required Object title}) => 'Scanning "${title}"...',
|
||
'messages.libraryScanStarted' => ({required Object title}) => 'Library scan started for "${title}"',
|
||
'messages.libraryScanFailed' => ({required Object error}) => 'Failed to scan library: ${error}',
|
||
'messages.metadataRefreshing' => ({required Object title}) => 'Refreshing metadata for "${title}"...',
|
||
'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadata refresh started for "${title}"',
|
||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Failed to refresh metadata: ${error}',
|
||
'messages.logoutConfirm' => 'Are you sure you want to log out?',
|
||
'messages.noSeasonsFound' => 'No seasons found',
|
||
'messages.seasonsLoadFailed' => 'Couldn\'t load seasons',
|
||
'messages.noEpisodesFound' => 'No episodes found in first season',
|
||
'messages.noEpisodesFoundGeneral' => 'No episodes found',
|
||
'messages.episodesLoadFailed' => 'Couldn\'t load episodes',
|
||
'messages.noResultsFound' => 'No results found',
|
||
'messages.sleepTimerSet' => ({required Object label}) => 'Sleep timer set for ${label}',
|
||
'messages.noItemsAvailable' => 'No items available',
|
||
'messages.failedToCreatePlayQueueNoItems' => 'Failed to create a play queue — no items',
|
||
'messages.failedPlayback' => ({required Object action, required Object error}) => 'Failed to ${action}: ${error}',
|
||
'messages.switchingToCompatiblePlayer' => 'Switching to compatible player...',
|
||
'messages.serverLimitTitle' => 'Playback failed',
|
||
'messages.serverLimitBody' => 'Server error (HTTP 500). A bandwidth/transcoding limit likely rejected this session. Ask the owner to adjust it.',
|
||
'messages.logsUploaded' => 'Logs uploaded',
|
||
'messages.logsUploadFailed' => 'Failed to upload logs',
|
||
'messages.logId' => 'Log ID',
|
||
'subtitlingStyling.text' => 'Text',
|
||
'subtitlingStyling.border' => 'Border',
|
||
'subtitlingStyling.background' => 'Background',
|
||
'subtitlingStyling.fontSize' => 'Font Size',
|
||
'subtitlingStyling.textColor' => 'Text Color',
|
||
'subtitlingStyling.borderSize' => 'Border Size',
|
||
'subtitlingStyling.borderColor' => 'Border Color',
|
||
'subtitlingStyling.backgroundOpacity' => 'Background Opacity',
|
||
'subtitlingStyling.backgroundColor' => 'Background Color',
|
||
'subtitlingStyling.position' => 'Position',
|
||
'subtitlingStyling.assOverride' => 'ASS Override',
|
||
'subtitlingStyling.overrideScale' => 'Scale',
|
||
'subtitlingStyling.overrideForce' => 'Force',
|
||
'subtitlingStyling.overrideStrip' => 'Remove styling',
|
||
'subtitlingStyling.positionTop' => 'Top',
|
||
'subtitlingStyling.positionBottom' => 'Bottom',
|
||
'subtitlingStyling.bold' => 'Bold',
|
||
'subtitlingStyling.italic' => 'Italic',
|
||
'subtitlingStyling.renderResolution' => 'Render Resolution',
|
||
'subtitlingStyling.renderResolutionScreen' => 'Screen resolution',
|
||
'subtitlingStyling.renderResolutionVideo' => 'Video resolution',
|
||
'mpvConfig.title' => 'mpv.conf',
|
||
'mpvConfig.description' => 'Advanced video player settings',
|
||
'mpvConfig.presets' => 'Presets',
|
||
'mpvConfig.noPresets' => 'No saved presets',
|
||
'mpvConfig.saveAsPreset' => 'Save as Preset...',
|
||
'mpvConfig.presetName' => 'Preset Name',
|
||
'mpvConfig.presetNameHint' => 'Enter a name for this preset',
|
||
'mpvConfig.loadPreset' => 'Load',
|
||
'mpvConfig.deletePreset' => 'Delete',
|
||
'mpvConfig.presetSaved' => 'Preset saved',
|
||
'mpvConfig.presetLoaded' => 'Preset loaded',
|
||
'mpvConfig.presetDeleted' => 'Preset deleted',
|
||
'mpvConfig.confirmDeletePreset' => 'Are you sure you want to delete this preset?',
|
||
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||
'dialog.confirmAction' => 'Confirm Action',
|
||
'profiles.addPlezyProfile' => 'Add Plezy profile',
|
||
'profiles.switchingProfile' => 'Switching profile…',
|
||
'profiles.deleteThisProfileTitle' => 'Delete this profile?',
|
||
'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Remove ${displayName}. Connections aren\'t affected.',
|
||
'profiles.active' => 'Active',
|
||
'profiles.manage' => 'Manage',
|
||
'profiles.delete' => 'Delete',
|
||
'profiles.signOut' => 'Sign out',
|
||
'profiles.signOutPlexTitle' => 'Sign out of Plex?',
|
||
'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Remove ${displayName} and all Plex Home users? Sign back in anytime.',
|
||
'profiles.signedOutPlex' => 'Signed out of Plex.',
|
||
'profiles.signOutFailed' => 'Sign out failed.',
|
||
'profiles.sectionTitle' => 'Profiles',
|
||
'profiles.summarySingle' => 'Add profiles to mix managed users and local identities',
|
||
'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profiles · active: ${activeName}',
|
||
'profiles.summaryMultiple' => ({required Object count}) => '${count} profiles',
|
||
'profiles.removeConnectionTitle' => 'Remove connection?',
|
||
'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Remove ${displayName}\'s access to ${connectionLabel}. Other profiles keep it.',
|
||
'profiles.deleteProfileTitle' => 'Delete profile?',
|
||
'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Remove ${displayName} and its connections. Servers stay available.',
|
||
'profiles.profileNameLabel' => 'Profile name',
|
||
'profiles.pinProtectionLabel' => 'PIN protection',
|
||
'profiles.pinManagedByPlex' => 'PIN managed by Plex. Edit on plex.tv.',
|
||
'profiles.noPinSetEditOnPlex' => 'No PIN set. To require one, edit the home user on plex.tv.',
|
||
'profiles.setPin' => 'Set PIN',
|
||
'profiles.setPinTitle' => 'Set PIN',
|
||
'profiles.confirmPinTitle' => 'Confirm PIN',
|
||
'profiles.pinSet' => 'PIN set',
|
||
'profiles.changePin' => 'Change',
|
||
'profiles.removePin' => 'Remove',
|
||
'profiles.connectionsLabel' => 'Connections',
|
||
'profiles.add' => 'Add',
|
||
'profiles.deleteProfileButton' => 'Delete profile',
|
||
'profiles.noConnectionsHint' => 'No connections — add one to use this profile.',
|
||
'profiles.noConnections' => 'No connections',
|
||
'profiles.plexHomeAccount' => 'Plex Home account',
|
||
'profiles.connectionDefault' => 'Default',
|
||
'profiles.connectionAs' => ({required Object displayName}) => 'as ${displayName}',
|
||
'profiles.makeDefault' => 'Make default',
|
||
'profiles.removeConnection' => 'Remove',
|
||
'profiles.profileRenamed' => 'Profile renamed.',
|
||
'profiles.borrowAddTo' => ({required Object displayName}) => 'Add to ${displayName}',
|
||
'profiles.borrowExplain' => 'Borrow another profile\'s connection. PIN-protected profiles require a PIN.',
|
||
'profiles.borrowEmpty' => 'Nothing to borrow yet.',
|
||
'profiles.borrowEmptySubtitle' => 'Connect Plex or Jellyfin to another profile first.',
|
||
'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.',
|
||
'profiles.borrowFromProfile' => ({required Object displayName}) => 'From ${displayName}',
|
||
'profiles.borrowConnectionBorrowed' => 'Connection borrowed.',
|
||
'profiles.borrowFailed' => 'Failed to borrow connection.',
|
||
'profiles.incorrectPin' => 'Incorrect PIN.',
|
||
'profiles.incorrectPinTryAgain' => 'Incorrect PIN. Please try again.',
|
||
'profiles.sourceProfileMissingParentAccount' => 'Source profile is missing its parent account.',
|
||
'profiles.failedToLoadHomeUsers' => 'Could not load your Plex Home users. Check your connection and try again.',
|
||
'profiles.failedToVerifyPin' => 'Failed to verify PIN.',
|
||
'profiles.newProfile' => 'New profile',
|
||
'profiles.profileNameHint' => 'e.g. Guests, Kids, Family Room',
|
||
'profiles.pinProtectionOptional' => 'PIN protection (optional)',
|
||
'profiles.pinExplain' => '4-digit PIN required to switch profiles.',
|
||
'profiles.continueButton' => 'Continue',
|
||
'profiles.pinsDontMatch' => 'PINs don\'t match',
|
||
'connections.sectionTitle' => 'Connections',
|
||
'connections.addConnection' => 'Add connection',
|
||
'connections.addConnectionSubtitleNoProfile' => 'Sign in with Plex or connect a Jellyfin server',
|
||
'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Add to ${displayName}: Plex, Jellyfin, or another profile connection',
|
||
'connections.sessionExpiredOne' => ({required Object name}) => 'Session expired for ${name}',
|
||
'connections.sessionExpiredMany' => ({required Object count}) => 'Session expired for ${count} servers',
|
||
'connections.signInAgain' => 'Sign in again',
|
||
'connections.editJellyfinTitle' => 'Edit Jellyfin connection',
|
||
'connections.editJellyfinIntro' => ({required Object serverName}) => 'Add or remove URLs for ${serverName}. Plezy will use the reachable URL with the lowest latency.',
|
||
'discover.title' => 'Discover',
|
||
'discover.noContentAvailable' => 'No content available',
|
||
'discover.addMediaToLibraries' => 'Add some media to your libraries',
|
||
'discover.continueWatching' => 'Continue Watching',
|
||
'discover.continueWatchingIn' => ({required Object library}) => 'Continue Watching in ${library}',
|
||
'discover.nextUp' => 'Next Up',
|
||
'discover.nextUpIn' => ({required Object library}) => 'Next Up in ${library}',
|
||
'discover.recentlyAdded' => 'Recently Added',
|
||
'discover.recentlyAddedIn' => ({required Object library}) => 'Recently Added in ${library}',
|
||
'discover.latestAlbumsIn' => ({required Object library}) => 'Latest Albums in ${library}',
|
||
'discover.recentlyPlayedIn' => ({required Object library}) => 'Recently Played in ${library}',
|
||
'discover.mostPlayedIn' => ({required Object library}) => 'Most Played in ${library}',
|
||
'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}',
|
||
'discover.overview' => 'Overview',
|
||
'discover.cast' => 'Cast',
|
||
'discover.extras' => 'Trailers & Extras',
|
||
'discover.studio' => 'Studio',
|
||
'discover.rating' => 'Rating',
|
||
'discover.director' => 'Director',
|
||
'discover.directors' => 'Directors',
|
||
'discover.movie' => 'Movie',
|
||
'discover.tvShow' => 'TV Show',
|
||
'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min left',
|
||
'discover.moreLikeThis' => 'More Like This',
|
||
'errors.searchFailed' => ({required Object error}) => 'Search failed: ${error}',
|
||
'errors.connectionTimeout' => ({required Object context}) => 'Connection timeout while loading ${context}',
|
||
'errors.connectionFailed' => 'Unable to connect to media server',
|
||
'errors.unableToLoad' => ({required Object context}) => 'Unable to load ${context}. Please try again.',
|
||
'errors.noClientAvailable' => 'No client available',
|
||
'errors.pleaseEnterToken' => 'Please enter a token',
|
||
'errors.invalidToken' => 'Invalid token',
|
||
'errors.failedToVerifyToken' => ({required Object error}) => 'Failed to verify token: ${error}',
|
||
'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Failed to switch to ${displayName}',
|
||
'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Failed to delete ${displayName}',
|
||
'errors.failedToRate' => 'Couldn\'t update rating',
|
||
'libraries.title' => 'Libraries',
|
||
'libraries.fallbackTitle' => 'Library',
|
||
'libraries.scanLibraryFiles' => 'Scan Library Files',
|
||
'libraries.scanLibrary' => 'Scan Library',
|
||
'libraries.analyze' => 'Analyze',
|
||
'libraries.analyzeLibrary' => 'Analyze Library',
|
||
'libraries.refreshMetadata' => 'Refresh Metadata',
|
||
'libraries.emptyTrash' => 'Empty Trash',
|
||
'libraries.emptyingTrash' => ({required Object title}) => 'Emptying trash for "${title}"...',
|
||
'libraries.trashEmptied' => ({required Object title}) => 'Trash emptied for "${title}"',
|
||
'libraries.failedToEmptyTrash' => ({required Object error}) => 'Failed to empty trash: ${error}',
|
||
'libraries.analyzing' => ({required Object title}) => 'Analyzing "${title}"...',
|
||
'libraries.analysisStarted' => ({required Object title}) => 'Analysis started for "${title}"',
|
||
'libraries.failedToAnalyze' => ({required Object error}) => 'Failed to analyze library: ${error}',
|
||
'libraries.noLibrariesFound' => 'No libraries found',
|
||
'libraries.allLibrariesHidden' => 'All libraries are hidden',
|
||
'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Hidden libraries (${count})',
|
||
'libraries.thisLibraryIsEmpty' => 'This library is empty',
|
||
'libraries.noItemsMatchFilters' => 'No items match the active filters',
|
||
'libraries.resetFilters' => 'Reset filters',
|
||
'libraries.all' => 'All',
|
||
'libraries.clearAll' => 'Clear All',
|
||
'libraries.scanLibraryConfirm' => ({required Object title}) => 'Are you sure you want to scan "${title}"?',
|
||
'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Are you sure you want to analyze "${title}"?',
|
||
'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Are you sure you want to refresh metadata for "${title}"?',
|
||
'libraries.emptyTrashConfirm' => ({required Object title}) => 'Are you sure you want to empty trash for "${title}"?',
|
||
'libraries.manageLibraries' => 'Manage Libraries',
|
||
'libraries.sort' => 'Sort',
|
||
'libraries.sortBy' => 'Sort By',
|
||
'libraries.filters' => 'Filters',
|
||
'libraries.confirmActionMessage' => 'Are you sure you want to perform this action?',
|
||
'libraries.showLibrary' => 'Show library',
|
||
'libraries.hideLibrary' => 'Hide library',
|
||
'libraries.libraryOptions' => 'Library options',
|
||
'libraries.content' => 'library content',
|
||
'libraries.selectLibrary' => 'Select library',
|
||
'libraries.filtersWithCount' => ({required Object count}) => 'Filters (${count})',
|
||
'libraries.noRecommendations' => 'No recommendations available',
|
||
'libraries.noCollections' => 'No collections in this library',
|
||
'libraries.noFoldersFound' => 'No folders found',
|
||
'libraries.folders' => 'folders',
|
||
'libraries.tabs.recommended' => 'Recommended',
|
||
'libraries.tabs.browse' => 'Browse',
|
||
'libraries.tabs.collections' => 'Collections',
|
||
'libraries.tabs.playlists' => 'Playlists',
|
||
'libraries.groupings.title' => 'Grouping',
|
||
'libraries.groupings.all' => 'All',
|
||
'libraries.groupings.movies' => 'Movies',
|
||
'libraries.groupings.shows' => 'TV Shows',
|
||
'libraries.groupings.seasons' => 'Seasons',
|
||
'libraries.groupings.episodes' => 'Episodes',
|
||
'libraries.groupings.artists' => 'Artists',
|
||
'libraries.groupings.albums' => 'Albums',
|
||
'libraries.groupings.tracks' => 'Tracks',
|
||
'libraries.groupings.folders' => 'Folders',
|
||
'libraries.filterCategories.genre' => 'Genre',
|
||
'libraries.filterCategories.year' => 'Year',
|
||
'libraries.filterCategories.contentRating' => 'Content Rating',
|
||
'libraries.filterCategories.tag' => 'Tag',
|
||
'libraries.filterCategories.unwatched' => 'Unwatched',
|
||
'libraries.filterCategories.unplayed' => 'Unplayed',
|
||
'libraries.filterCategories.favorites' => 'Favorites',
|
||
'libraries.sortLabels.title' => 'Title',
|
||
'libraries.sortLabels.dateAdded' => 'Date Added',
|
||
'libraries.sortLabels.releaseDate' => 'Release Date',
|
||
'libraries.sortLabels.rating' => 'Rating',
|
||
'libraries.sortLabels.communityRating' => 'Community Rating',
|
||
'libraries.sortLabels.criticRating' => 'Critic Rating',
|
||
'libraries.sortLabels.userRating' => 'User Rating',
|
||
'libraries.sortLabels.datePlayed' => 'Date Played',
|
||
'libraries.sortLabels.playCount' => 'Play Count',
|
||
'libraries.sortLabels.productionYear' => 'Production Year',
|
||
'libraries.sortLabels.runtime' => 'Runtime',
|
||
'libraries.sortLabels.officialRating' => 'Official Rating',
|
||
'libraries.sortLabels.premiereDate' => 'Premiere Date',
|
||
'libraries.sortLabels.startDate' => 'Start Date',
|
||
'libraries.sortLabels.airTime' => 'Air Time',
|
||
'libraries.sortLabels.studio' => 'Studio',
|
||
'libraries.sortLabels.random' => 'Random',
|
||
'libraries.sortLabels.dateShared' => 'Date Shared',
|
||
'libraries.sortLabels.latestEpisodeAirDate' => 'Latest Episode Air Date',
|
||
'libraries.sortLabels.lastEpisodeDateAdded' => 'Last Episode Date Added',
|
||
'about.title' => 'About',
|
||
'about.openSourceLicenses' => 'Open Source Licenses',
|
||
'about.versionLabel' => ({required Object version}) => 'Version ${version}',
|
||
'about.appDescription' => 'A beautiful Plex and Jellyfin client for Flutter',
|
||
'about.viewLicensesDescription' => 'View licenses of third-party libraries',
|
||
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'No servers found for ${username} (${email})',
|
||
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Failed to load servers: ${error}',
|
||
'hubDetail.title' => 'Title',
|
||
'hubDetail.releaseYear' => 'Release Year',
|
||
'hubDetail.dateAdded' => 'Date Added',
|
||
'hubDetail.rating' => 'Rating',
|
||
'hubDetail.noItemsFound' => 'No items found',
|
||
'logs.clearLogs' => 'Clear Logs',
|
||
'logs.copyLogs' => 'Copy Logs',
|
||
'logs.uploadLogs' => 'Upload Logs',
|
||
'licenses.relatedPackages' => 'Related Packages',
|
||
'licenses.license' => 'License',
|
||
'licenses.licenseNumber' => ({required Object number}) => 'License ${number}',
|
||
'licenses.licensesCount' => ({required Object count}) => '${count} licenses',
|
||
'navigation.libraries' => 'Libraries',
|
||
'navigation.downloads' => 'Downloads',
|
||
'navigation.liveTv' => 'Live TV',
|
||
'navigation.explore' => 'Explore',
|
||
'explore.title' => 'Explore',
|
||
'explore.selectSource' => 'Select source',
|
||
'explore.rows.watchlist' => 'Watchlist',
|
||
'explore.rows.recommendedMovies' => 'Recommended Movies',
|
||
'explore.rows.recommendedShows' => 'Recommended Shows',
|
||
'explore.rows.trendingMovies' => 'Trending Movies',
|
||
'explore.rows.trendingShows' => 'Trending Shows',
|
||
'explore.rows.popularMovies' => 'Popular Movies',
|
||
'explore.rows.popularShows' => 'Popular Shows',
|
||
'explore.rows.trendingAnime' => 'Trending Anime',
|
||
'explore.rows.suggestedAnime' => 'Suggested Anime',
|
||
'explore.rows.airingAnime' => 'Top Airing Anime',
|
||
'explore.rows.popularAnime' => 'Most Popular Anime',
|
||
'explore.rows.trending' => 'Trending',
|
||
'explore.rows.upcomingMovies' => 'Upcoming Movies',
|
||
'explore.rows.upcomingShows' => 'Upcoming Shows',
|
||
'explore.status.airing' => 'Airing',
|
||
'explore.status.ended' => 'Ended',
|
||
'explore.status.canceled' => 'Canceled',
|
||
'explore.status.upcoming' => 'Upcoming',
|
||
'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n, one: '${n} episode', other: '${n} episodes', ),
|
||
'explore.cast' => 'Cast',
|
||
'explore.characters' => 'Characters',
|
||
'explore.addToWatchlist' => 'Add to Watchlist',
|
||
'explore.removeFromWatchlist' => 'Remove from Watchlist',
|
||
'explore.watchlistUpdateFailed' => 'Couldn\'t update watchlist',
|
||
'explore.notInLibrary' => 'Not in your library',
|
||
'explore.inTheseLibraries' => 'In these libraries',
|
||
'explore.checkingLibrary' => 'Checking your library...',
|
||
'explore.emptyTitle' => 'Nothing here yet',
|
||
'explore.emptyMessage' => ({required Object source}) => 'Rows from ${source} will appear here once they have content.',
|
||
'explore.searchHint' => ({required Object source}) => 'Search ${source}',
|
||
'explore.searchEmpty' => ({required Object query}) => 'No results for "${query}"',
|
||
'explore.searchPrompt' => ({required Object source}) => 'Search for movies and shows on ${source}.',
|
||
'explore.searchFailed' => 'Search failed. Check your connection and try again.',
|
||
'liveTv.title' => 'Live TV',
|
||
'liveTv.guide' => 'Guide',
|
||
'liveTv.noChannels' => 'No channels available',
|
||
'liveTv.noDvr' => 'No DVR configured on any server',
|
||
'liveTv.serverUnavailable' => 'Live TV server is not available.',
|
||
'liveTv.serverNotConnected' => 'Live TV server is not connected.',
|
||
'liveTv.noPrograms' => 'No program data available',
|
||
'liveTv.liveStreamFailed' => 'Live stream failed',
|
||
'liveTv.unknownProgram' => 'Unknown Program',
|
||
'liveTv.unknownHub' => 'Unknown',
|
||
'liveTv.unknownError' => 'Unknown error',
|
||
'liveTv.channelNumber' => ({required Object number}) => 'Channel ${number}',
|
||
'liveTv.unknownChannel' => 'Unknown channel',
|
||
'liveTv.live' => 'LIVE',
|
||
'liveTv.reloadGuide' => 'Reload Guide',
|
||
'liveTv.now' => 'Now',
|
||
'liveTv.today' => 'Today',
|
||
'liveTv.tomorrow' => 'Tomorrow',
|
||
'liveTv.midnight' => 'Midnight',
|
||
'liveTv.overnight' => 'Overnight',
|
||
'liveTv.morning' => 'Morning',
|
||
'liveTv.daytime' => 'Daytime',
|
||
'liveTv.evening' => 'Evening',
|
||
'liveTv.lateNight' => 'Late Night',
|
||
'liveTv.whatsOn' => 'What\'s On',
|
||
'liveTv.watchChannel' => 'Watch Channel',
|
||
'liveTv.favorites' => 'Favorites',
|
||
'liveTv.reorderFavorites' => 'Reorder Favorites',
|
||
'liveTv.favoritesLoadFailed' => 'Could not load favorites. Check your connection and try again.',
|
||
'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.',
|
||
'liveTv.joinSession' => 'Join Session in Progress',
|
||
'liveTv.watchFromStart' => ({required Object minutes}) => 'Watch from start (${minutes} min ago)',
|
||
'liveTv.watchLive' => 'Watch Live',
|
||
'liveTv.goToLive' => 'Go to Live',
|
||
'liveTv.record' => 'Record',
|
||
'liveTv.recordEpisode' => 'Record Episode',
|
||
'liveTv.recordSeries' => 'Record Series',
|
||
'liveTv.recordOptions' => 'Record Options',
|
||
'liveTv.saveTo' => 'Save to',
|
||
'liveTv.recordings' => 'Recordings',
|
||
'liveTv.scheduledRecordings' => 'Scheduled',
|
||
'liveTv.recordingRules' => 'Recording Rules',
|
||
'liveTv.noScheduledRecordings' => 'Nothing scheduled to record',
|
||
'liveTv.manageRecording' => 'Manage recording',
|
||
'liveTv.cancelRecording' => 'Cancel recording',
|
||
'liveTv.cancelRecordingTitle' => 'Cancel this recording?',
|
||
'liveTv.cancelRecordingMessage' => ({required Object title}) => '${title} will no longer be recorded.',
|
||
'liveTv.deleteRule' => 'Delete rule',
|
||
'liveTv.deleteRuleTitle' => 'Delete recording rule?',
|
||
'liveTv.deleteRuleMessage' => ({required Object title}) => 'Future episodes of ${title} will not be recorded.',
|
||
'liveTv.recordingScheduled' => 'Recording scheduled',
|
||
'liveTv.alreadyScheduled' => 'This program is already scheduled',
|
||
'liveTv.dvrAdminRequired' => 'DVR settings require an admin account',
|
||
'liveTv.recordingFailed' => 'Couldn\'t schedule recording',
|
||
'liveTv.recordingTargetMissing' => 'Couldn\'t determine recording library',
|
||
'liveTv.recordNotAvailable' => 'Recording not available for this program',
|
||
'liveTv.recordingCancelled' => 'Recording canceled',
|
||
'liveTv.recordingRuleDeleted' => 'Recording rule deleted',
|
||
'liveTv.processRecordingRules' => 'Re-evaluate rules',
|
||
'liveTv.recordingInProgress' => 'Recording now',
|
||
'liveTv.recordingsCount' => ({required Object count}) => '${count} scheduled',
|
||
'liveTv.editRule' => 'Edit rule',
|
||
'liveTv.editRuleAction' => 'Edit',
|
||
'liveTv.recordingRuleUpdated' => 'Recording rule updated',
|
||
'liveTv.guideReloadRequested' => 'Guide refresh requested',
|
||
'liveTv.rulesProcessRequested' => 'Rule re-evaluation requested',
|
||
'liveTv.recordShow' => 'Record show',
|
||
'collections.title' => 'Collections',
|
||
'collections.collection' => 'Collection',
|
||
'collections.empty' => 'Collection is empty',
|
||
'collections.deleteCollection' => 'Delete Collection',
|
||
'collections.deleteConfirm' => ({required Object title}) => 'Delete "${title}"? This can\'t be undone.',
|
||
'collections.deleted' => 'Collection deleted',
|
||
'collections.deleteFailed' => 'Failed to delete collection',
|
||
'collections.deleteFailedWithError' => ({required Object error}) => 'Failed to delete collection: ${error}',
|
||
'collections.selectCollection' => 'Select Collection',
|
||
'collections.collectionName' => 'Collection Name',
|
||
'collections.enterCollectionName' => 'Enter collection name',
|
||
'collections.addedToCollection' => 'Added to collection',
|
||
'collections.errorAddingToCollection' => 'Failed to add to collection',
|
||
'collections.created' => 'Collection created',
|
||
'collections.removeFromCollection' => 'Remove from collection',
|
||
'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Remove "${title}" from this collection?',
|
||
'collections.removedFromCollection' => 'Removed from collection',
|
||
'collections.removeFromCollectionFailed' => 'Failed to remove from collection',
|
||
'collections.removeFromCollectionError' => ({required Object error}) => 'Error removing from collection: ${error}',
|
||
'collections.searchCollections' => 'Search collections...',
|
||
'playlists.title' => 'Playlists',
|
||
'playlists.playlist' => 'Playlist',
|
||
'playlists.noPlaylists' => 'No playlists found',
|
||
'playlists.create' => 'Create Playlist',
|
||
'playlists.playlistName' => 'Playlist Name',
|
||
'playlists.enterPlaylistName' => 'Enter playlist name',
|
||
'playlists.delete' => 'Delete Playlist',
|
||
'playlists.removeItem' => 'Remove from Playlist',
|
||
'playlists.smartPlaylist' => 'Smart Playlist',
|
||
'playlists.itemCount' => ({required Object count}) => '${count} items',
|
||
'playlists.oneItem' => '1 item',
|
||
'playlists.emptyPlaylist' => 'This playlist is empty',
|
||
'playlists.deleteConfirm' => 'Delete Playlist?',
|
||
'playlists.deleteMessage' => ({required Object name}) => 'Are you sure you want to delete "${name}"?',
|
||
'playlists.created' => 'Playlist created',
|
||
'playlists.deleted' => 'Playlist deleted',
|
||
'playlists.itemAdded' => 'Added to playlist',
|
||
'playlists.itemRemoved' => 'Removed from playlist',
|
||
'playlists.selectPlaylist' => 'Select Playlist',
|
||
'playlists.searchPlaylists' => 'Search playlists...',
|
||
'playlists.errorCreating' => 'Failed to create playlist',
|
||
'playlists.errorDeleting' => 'Failed to delete playlist',
|
||
'playlists.errorLoading' => 'Failed to load playlists',
|
||
'playlists.errorAdding' => 'Failed to add to playlist',
|
||
'playlists.errorReordering' => 'Failed to reorder playlist item',
|
||
'playlists.errorRemoving' => 'Failed to remove from playlist',
|
||
'music.goToAlbum' => 'Go to album',
|
||
'music.goToArtist' => 'Go to artist',
|
||
'music.instantMix' => 'Instant Mix',
|
||
'music.playNext' => 'Play next',
|
||
'music.addToQueue' => 'Add to queue',
|
||
'music.discNumber' => ({required Object n}) => 'Disc ${n}',
|
||
'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n, one: '${n} track', other: '${n} tracks', ),
|
||
'music.nowPlaying' => 'Now Playing',
|
||
'music.playingFrom' => ({required Object title}) => 'Playing from ${title}',
|
||
'music.queue' => 'Queue',
|
||
'music.clearQueue' => 'Clear queue',
|
||
'music.lyrics' => 'Lyrics',
|
||
'music.noLyrics' => 'No lyrics available',
|
||
'music.sleepTimer' => 'Sleep timer',
|
||
'music.sleepTimerEndOfTrack' => 'End of track',
|
||
'music.sleepTimerMinutes' => ({required Object n}) => '${n} minutes',
|
||
'music.stopPlayback' => 'Stop playback',
|
||
'music.previousTrack' => 'Previous track',
|
||
'music.nextTrack' => 'Next track',
|
||
'music.repeat' => 'Repeat',
|
||
'music.repeatAll' => 'Repeat all',
|
||
'music.repeatOne' => 'Repeat one',
|
||
'watchTogether.title' => 'Watch Together',
|
||
'watchTogether.description' => 'Watch content in sync with friends and family',
|
||
'watchTogether.createSession' => 'Create Session',
|
||
'watchTogether.creating' => 'Creating...',
|
||
'watchTogether.joinSession' => 'Join Session',
|
||
'watchTogether.joining' => 'Joining...',
|
||
'watchTogether.controlMode' => 'Control Mode',
|
||
'watchTogether.controlModeQuestion' => 'Who can control playback?',
|
||
'watchTogether.hostOnly' => 'Host Only',
|
||
'watchTogether.anyone' => 'Anyone',
|
||
'watchTogether.hostingSession' => 'Hosting Session',
|
||
'watchTogether.inSession' => 'In Session',
|
||
'watchTogether.sessionCode' => 'Session Code',
|
||
'watchTogether.openSessionControls' => 'Open Watch Together session controls',
|
||
'watchTogether.copySessionCode' => 'Copy session code',
|
||
'watchTogether.hostControlsPlayback' => 'Host controls playback',
|
||
'watchTogether.anyoneCanControl' => 'Anyone can control playback',
|
||
'watchTogether.hostControls' => 'Host controls',
|
||
'watchTogether.anyoneControls' => 'Anyone controls',
|
||
'watchTogether.participants' => 'Participants',
|
||
'watchTogether.host' => 'Host',
|
||
'watchTogether.hostBadge' => 'HOST',
|
||
'watchTogether.youAreHost' => 'You are the host',
|
||
'watchTogether.watchingWithOthers' => 'Watching with others',
|
||
'watchTogether.endSession' => 'End Session',
|
||
'watchTogether.leaveSession' => 'Leave Session',
|
||
'watchTogether.endSessionQuestion' => 'End Session?',
|
||
'watchTogether.leaveSessionQuestion' => 'Leave Session?',
|
||
'watchTogether.endSessionConfirm' => 'This will end the session for all participants.',
|
||
'watchTogether.leaveSessionConfirm' => 'You will be removed from the session.',
|
||
'watchTogether.endSessionConfirmOverlay' => 'This will end the watch session for all participants.',
|
||
'watchTogether.leaveSessionConfirmOverlay' => 'You will be disconnected from the watch session.',
|
||
'watchTogether.end' => 'End',
|
||
'watchTogether.leave' => 'Leave',
|
||
'watchTogether.syncing' => 'Syncing...',
|
||
'watchTogether.joinWatchSession' => 'Join Watch Session',
|
||
'watchTogether.enterCodeHint' => 'Enter 5-character code',
|
||
'watchTogether.pasteFromClipboard' => 'Paste from clipboard',
|
||
'watchTogether.pleaseEnterCode' => 'Please enter a session code',
|
||
'watchTogether.codeMustBe5Chars' => 'Session code must be 5 characters',
|
||
'watchTogether.joinInstructions' => 'Enter the host\'s session code to join.',
|
||
'watchTogether.failedToCreate' => 'Failed to create session',
|
||
'watchTogether.failedToJoin' => 'Failed to join session',
|
||
'watchTogether.sessionCodeCopied' => 'Session code copied to clipboard',
|
||
'watchTogether.relayUnreachable' => 'Relay server unreachable. ISP blocking may prevent Watch Together.',
|
||
'watchTogether.reconnectingToHost' => 'Reconnecting to host...',
|
||
'watchTogether.currentPlayback' => 'Current Playback',
|
||
'watchTogether.joinCurrentPlayback' => 'Join Current Playback',
|
||
_ => null,
|
||
} ?? switch (path) {
|
||
'watchTogether.joinCurrentPlaybackDescription' => 'Jump back into what the host is currently watching',
|
||
'watchTogether.failedToOpenCurrentPlayback' => 'Failed to open current playback',
|
||
'watchTogether.participantJoined' => ({required Object name}) => '${name} joined',
|
||
'watchTogether.participantLeft' => ({required Object name}) => '${name} left',
|
||
'watchTogether.participantPaused' => ({required Object name}) => '${name} paused',
|
||
'watchTogether.participantResumed' => ({required Object name}) => '${name} resumed',
|
||
'watchTogether.participantSeeked' => ({required Object name}) => '${name} changed the playback position',
|
||
'watchTogether.participantBuffering' => ({required Object name}) => '${name} is buffering',
|
||
'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} is on an older app version — sync unavailable',
|
||
'watchTogether.resumingWithout' => ({required Object name}) => 'Resuming without ${name}',
|
||
'watchTogether.waitingForParticipants' => 'Waiting for others to load...',
|
||
'watchTogether.waitingForName' => ({required Object name}) => 'Waiting for ${name}...',
|
||
'watchTogether.recentRooms' => 'Recent Rooms',
|
||
'watchTogether.renameRoom' => 'Rename Room',
|
||
'watchTogether.removeRoom' => 'Remove',
|
||
'watchTogether.guestSwitchUnavailable' => 'Couldn\'t switch — server unavailable for sync',
|
||
'watchTogether.guestSwitchFailed' => 'Couldn\'t switch — content not found on this server',
|
||
'downloads.title' => 'Downloads',
|
||
'downloads.manage' => 'Manage',
|
||
'downloads.tvShows' => 'TV Shows',
|
||
'downloads.movies' => 'Movies',
|
||
'downloads.music' => 'Music',
|
||
'downloads.tracksQueued' => ({required Object count}) => '${count} tracks queued for download',
|
||
'downloads.noDownloads' => 'No downloads yet',
|
||
'downloads.noDownloadsDescription' => 'Downloaded content will appear here for offline viewing',
|
||
'downloads.downloadNow' => 'Download',
|
||
'downloads.deleteDownload' => 'Delete download',
|
||
'downloads.retryDownload' => 'Retry download',
|
||
'downloads.downloadQueued' => 'Download queued',
|
||
'downloads.downloadResumed' => 'Download resumed',
|
||
'downloads.serverErrorBitrate' => 'Server error: file may exceed the remote bitrate limit',
|
||
'downloads.storageFull' => 'Downloads stopped because device storage is full. Free some space, then retry.',
|
||
'downloads.episodesQueued' => ({required Object count}) => '${count} episodes queued for download',
|
||
'downloads.downloadDeleted' => 'Download deleted',
|
||
'downloads.deleteConfirm' => ({required Object title}) => 'Delete "${title}" from this device?',
|
||
'downloads.cancelledDownloadTitle' => 'Canceled Download',
|
||
'downloads.cancelledDownloadMessage' => 'This download was canceled. What would you like to do?',
|
||
'downloads.allEpisodesAlreadyDownloaded' => 'All episodes already downloaded',
|
||
'downloads.resumeDownload' => 'Resume download',
|
||
'downloads.cancelledDownload' => 'Canceled download',
|
||
'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (syncing ${status})',
|
||
'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Downloaded ${file} - Click to complete',
|
||
'downloads.partialDownloadClickToComplete' => 'Partially downloaded - Click to complete',
|
||
'downloads.deleting' => 'Deleting...',
|
||
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Deleting ${title}... (${current} of ${total})',
|
||
'downloads.queuedTooltip' => 'Queued',
|
||
'downloads.queuedFilesTooltip' => ({required Object files}) => 'Queued ${files}',
|
||
'downloads.downloadingTooltip' => 'Downloading...',
|
||
'downloads.downloadingFilesTooltip' => ({required Object files}) => 'Downloading ${files}',
|
||
'downloads.noDownloadsTree' => 'No downloads',
|
||
'downloads.pauseAll' => 'Pause all',
|
||
'downloads.resumeAll' => 'Resume all',
|
||
'downloads.deleteAll' => 'Delete all',
|
||
'downloads.selectVersion' => 'Select Version',
|
||
'downloads.allEpisodes' => 'All episodes',
|
||
'downloads.unwatchedOnly' => 'Unwatched only',
|
||
'downloads.nextNUnwatched' => ({required Object count}) => 'Next ${count} unwatched',
|
||
'downloads.customAmount' => 'Custom amount...',
|
||
'downloads.includeSpecials' => 'Include Specials',
|
||
'downloads.howManyEpisodes' => 'How many episodes?',
|
||
'downloads.invalidEpisodeCount' => 'Enter a valid episode count.',
|
||
'downloads.keepSynced' => 'Keep synced',
|
||
'downloads.downloadOnce' => 'Download once',
|
||
'downloads.keepNUnwatched' => ({required Object count}) => 'Keep ${count} unwatched',
|
||
'downloads.editSyncRule' => 'Edit sync rule',
|
||
'downloads.removeSyncRule' => 'Remove sync rule',
|
||
'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Stop syncing "${title}"? Downloaded episodes will be kept.',
|
||
'downloads.syncRuleCreated' => ({required Object count}) => 'Sync rule created — keeping ${count} unwatched episodes',
|
||
'downloads.syncRuleUpdated' => 'Sync rule updated',
|
||
'downloads.syncRuleRemoved' => 'Sync rule removed',
|
||
'downloads.syncedNewEpisodes' => ({required Object count, required Object title}) => 'Synced ${count} new episodes for ${title}',
|
||
'downloads.activeSyncRules' => 'Sync rules',
|
||
'downloads.noSyncRules' => 'No sync rules',
|
||
'downloads.manageSyncRule' => 'Manage sync',
|
||
'downloads.editEpisodeCount' => 'Episode count',
|
||
'downloads.editSyncFilter' => 'Sync filter',
|
||
'downloads.syncAllItems' => 'Syncing all items',
|
||
'downloads.syncUnwatchedItems' => 'Syncing unwatched items',
|
||
'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Server: ${server} • ${status}',
|
||
'downloads.syncRuleAvailable' => 'Available',
|
||
'downloads.syncRuleOffline' => 'Offline',
|
||
'downloads.syncRuleSignInRequired' => 'Sign in required',
|
||
'downloads.syncRuleNotAvailableForProfile' => 'Not available for current profile',
|
||
'downloads.syncRuleUnknownServer' => 'Unknown server',
|
||
'downloads.syncRuleListCreated' => 'Sync rule created',
|
||
'downloads.backgroundWarning.bannerBlocked' => 'Downloads will stop when you leave the app',
|
||
'downloads.backgroundWarning.bannerDegraded' => 'Background downloads may be limited',
|
||
'downloads.backgroundWarning.bannerAction' => 'Details',
|
||
'downloads.backgroundWarning.sheetTitle' => 'Background downloads are blocked',
|
||
'downloads.backgroundWarning.sheetTitleDegraded' => 'Background downloads may be limited',
|
||
'downloads.backgroundWarning.sheetIntro' => 'Android is preventing Plezy from downloading reliably in the background.',
|
||
'downloads.backgroundWarning.sheetIntroDegraded' => 'Your device is limiting when Plezy can download in the background.',
|
||
'downloads.backgroundWarning.reasonBackgroundRestricted' => 'Plezy\'s background usage is restricted. Set its battery or background usage to "Unrestricted".',
|
||
'downloads.backgroundWarning.reasonStandbyRestricted' => 'Android has put Plezy in a restricted standby state. Set its battery usage to "Unrestricted".',
|
||
'downloads.backgroundWarning.reasonDownloadChannelBlocked' => 'Download notifications are turned off, so progress and controls may be unavailable.',
|
||
'downloads.backgroundWarning.reasonNotificationsDisabled' => 'Notifications are turned off. On Android 13 or newer, they are required for long background downloads.',
|
||
'downloads.backgroundWarning.reasonDataSaver' => 'Data Saver is on, which blocks background downloads on mobile data. Downloads should still run on Wi-Fi.',
|
||
'downloads.backgroundWarning.reasonOemUnknown' => 'Downloads repeatedly stopped while Plezy was in the background. Check Plezy\'s battery or background usage settings.',
|
||
'downloads.backgroundWarning.openSettings' => 'Open settings',
|
||
'downloads.backgroundWarning.stillNotWorking' => 'Device-specific help',
|
||
'downloads.backgroundWarning.stillNotWorkingDescription' => 'See steps for your device, or send a log from Settings › View Logs if the issue continues.',
|
||
'downloads.backgroundWarning.dialogTitle' => 'Downloads may not finish',
|
||
'downloads.backgroundWarning.dialogDownloadAnyway' => 'Download anyway',
|
||
'downloads.backgroundWarning.dialogFixFirst' => 'Fix this first',
|
||
'downloads.backgroundWarning.statusTile' => 'Background downloads',
|
||
'downloads.backgroundWarning.statusOk' => 'Allowed to run in the background',
|
||
'downloads.backgroundWarning.statusBlocked' => 'Blocked by system settings',
|
||
'downloads.backgroundWarning.statusDegraded' => 'Limited by system settings',
|
||
'downloads.backgroundWarning.statusUnknown' => 'Not checked yet',
|
||
'downloads.backgroundWarning.settingsUnavailable' => 'Couldn\'t open system settings on this device',
|
||
'downloads.backgroundWarning.linkUnavailable' => 'Couldn\'t open dontkillmyapp.com on this device',
|
||
'shaders.title' => 'Shaders',
|
||
'shaders.noShaderDescription' => 'No video enhancement',
|
||
'shaders.nvscalerDescription' => 'NVIDIA image scaling for sharper video',
|
||
'shaders.artcnnVariantNeutral' => 'Neutral',
|
||
'shaders.artcnnVariantDenoise' => 'Denoise',
|
||
'shaders.artcnnVariantDenoiseSharpen' => 'Denoise + Sharpen',
|
||
'shaders.qualityFast' => 'Fast',
|
||
'shaders.qualityHQ' => 'High Quality',
|
||
'shaders.mode' => 'Mode',
|
||
'shaders.importShader' => 'Import Shader',
|
||
'shaders.customShaderDescription' => 'Custom GLSL shader',
|
||
'shaders.shaderImported' => 'Shader imported',
|
||
'shaders.shaderImportFailed' => 'Failed to import shader',
|
||
'shaders.deleteShader' => 'Delete Shader',
|
||
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Delete "${name}"?',
|
||
'companionRemote.title' => 'Companion Remote',
|
||
'companionRemote.connectedTo' => ({required Object name}) => 'Connected to ${name}',
|
||
'companionRemote.unknownDevice' => 'Unknown Device',
|
||
'companionRemote.session.startingServer' => 'Starting remote server...',
|
||
'companionRemote.session.hostAddress' => 'Host Address',
|
||
'companionRemote.session.connected' => 'Connected',
|
||
'companionRemote.session.serverRunning' => 'Remote server active',
|
||
'companionRemote.session.serverStopped' => 'Remote server stopped',
|
||
'companionRemote.session.serverRunningDescription' => 'Mobile devices on your network can connect to this app',
|
||
'companionRemote.session.serverStoppedDescription' => 'Start the server to allow mobile devices to connect',
|
||
'companionRemote.session.usePhoneToControl' => 'Use your mobile device to control this app',
|
||
'companionRemote.session.startServer' => 'Start Server',
|
||
'companionRemote.session.stopServer' => 'Stop Server',
|
||
'companionRemote.session.minimize' => 'Minimize',
|
||
'companionRemote.pairing.discoveryDescription' => 'Plezy devices with the same Plex account appear here',
|
||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||
'companionRemote.pairing.connecting' => 'Connecting...',
|
||
'companionRemote.pairing.searchingForDevices' => 'Looking for devices...',
|
||
'companionRemote.pairing.noDevicesFound' => 'No devices found on your network',
|
||
'companionRemote.pairing.noDevicesHint' => 'Open Plezy on desktop and use the same Wi-Fi',
|
||
'companionRemote.pairing.availableDevices' => 'Available Devices',
|
||
'companionRemote.pairing.manualConnection' => 'Manual Connection',
|
||
'companionRemote.pairing.cryptoInitFailed' => 'Couldn\'t start secure connection. Sign in to Plex first.',
|
||
'companionRemote.pairing.validationHostRequired' => 'Please enter host address',
|
||
'companionRemote.pairing.validationHostFormat' => 'Format must be IP:port (e.g., 192.168.1.100:48632)',
|
||
'companionRemote.pairing.connectionTimedOut' => 'Connection timed out. Use the same network on both devices.',
|
||
'companionRemote.pairing.sessionNotFound' => 'Device not found. Make sure Plezy is running on the host.',
|
||
'companionRemote.pairing.authFailed' => 'Authentication failed. Both devices need the same Plex account.',
|
||
'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Failed to connect: ${error}',
|
||
'companionRemote.remote.disconnectConfirm' => 'Do you want to disconnect from the remote session?',
|
||
'companionRemote.remote.reconnecting' => 'Reconnecting...',
|
||
'companionRemote.remote.attemptOf' => ({required Object current}) => 'Attempt ${current} of 5',
|
||
'companionRemote.remote.retryNow' => 'Retry Now',
|
||
'companionRemote.remote.tabRemote' => 'Remote',
|
||
'companionRemote.remote.tabPlay' => 'Play',
|
||
'companionRemote.remote.tabMore' => 'More',
|
||
'companionRemote.remote.menu' => 'Menu',
|
||
'companionRemote.remote.tabNavigation' => 'Tab Navigation',
|
||
'companionRemote.remote.tabDiscover' => 'Discover',
|
||
'companionRemote.remote.tabLibraries' => 'Libraries',
|
||
'companionRemote.remote.tabSearch' => 'Search',
|
||
'companionRemote.remote.tabDownloads' => 'Downloads',
|
||
'companionRemote.remote.tabSettings' => 'Settings',
|
||
'companionRemote.remote.previous' => 'Previous',
|
||
'companionRemote.remote.playPause' => 'Play/Pause',
|
||
'companionRemote.remote.next' => 'Next',
|
||
'companionRemote.remote.seekBack' => 'Seek Back',
|
||
'companionRemote.remote.stop' => 'Stop',
|
||
'companionRemote.remote.seekForward' => 'Seek Fwd',
|
||
'companionRemote.remote.volume' => 'Volume',
|
||
'companionRemote.remote.volumeDown' => 'Down',
|
||
'companionRemote.remote.volumeUp' => 'Up',
|
||
'companionRemote.remote.fullscreen' => 'Fullscreen',
|
||
'companionRemote.remote.subtitles' => 'Subtitles',
|
||
'companionRemote.remote.audio' => 'Audio',
|
||
'companionRemote.remote.searchHint' => 'Search on desktop...',
|
||
'companionRemote.errors.noNetworkInterface' => 'No network interface found',
|
||
'companionRemote.errors.authenticationFailed' => 'Authentication failed',
|
||
'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Failed to start remote server: ${error}',
|
||
'companionRemote.errors.commandFailed' => ({required Object error}) => 'Failed to send remote command: ${error}',
|
||
'companionRemote.errors.joinTimedOut' => 'Timed out joining session',
|
||
'companionRemote.errors.failedToConnectAnyAddress' => 'Failed to connect to any address',
|
||
'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Connection lost after ${attempts} attempts',
|
||
'companionRemote.errors.connectionLost' => 'Connection lost',
|
||
'videoSettings.playbackSpeed' => 'Playback Speed',
|
||
'videoSettings.normalSpeed' => 'Normal',
|
||
'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Active (${duration})',
|
||
'videoSettings.zoom' => 'Zoom',
|
||
'videoSettings.sleepTimer' => 'Sleep Timer',
|
||
'videoSettings.audioSync' => 'Audio Sync',
|
||
'videoSettings.subtitleSync' => 'Subtitle Sync',
|
||
'videoSettings.hdr' => 'HDR',
|
||
'videoSettings.audioOutput' => 'Audio Output',
|
||
'videoSettings.performanceOverlay' => 'Performance Overlay',
|
||
'videoSettings.audioPassthrough' => 'Audio Passthrough',
|
||
'videoSettings.audioNormalization' => 'Normalize Loudness',
|
||
'videoSettings.audioDownmix' => 'Downmix to Stereo',
|
||
'performanceOverlay.color' => 'Color',
|
||
'performanceOverlay.performance' => 'Performance',
|
||
'performanceOverlay.buffer' => 'Buffer',
|
||
'performanceOverlay.app' => 'App',
|
||
'performanceOverlay.decoder' => 'Decoder',
|
||
'performanceOverlay.rawDecoder' => 'Raw Decoder',
|
||
'performanceOverlay.tunneling' => 'Tunneling',
|
||
'performanceOverlay.aspect' => 'Aspect',
|
||
'performanceOverlay.rotation' => 'Rotation',
|
||
'performanceOverlay.dvSource' => 'DV Source',
|
||
'performanceOverlay.dvPath' => 'DV Path',
|
||
'performanceOverlay.p7Conversion' => 'P7 Conv',
|
||
'performanceOverlay.sampleRate' => 'Sample Rate',
|
||
'performanceOverlay.pixelFormat' => 'Pixel Fmt',
|
||
'performanceOverlay.hwFormat' => 'HW Fmt',
|
||
'performanceOverlay.matrix' => 'Matrix',
|
||
'performanceOverlay.primaries' => 'Primaries',
|
||
'performanceOverlay.transfer' => 'Transfer',
|
||
'performanceOverlay.renderFps' => 'Render FPS',
|
||
'performanceOverlay.displayFps' => 'Display FPS',
|
||
'performanceOverlay.avSync' => 'A/V Sync',
|
||
'performanceOverlay.dropped' => 'Dropped',
|
||
'performanceOverlay.dvRpus' => 'DV RPUs',
|
||
'performanceOverlay.dvRpuAverage' => 'DV RPU Avg',
|
||
'performanceOverlay.dvSampleAverage' => 'DV Sample Avg',
|
||
'performanceOverlay.maxLuma' => 'Max Luma',
|
||
'performanceOverlay.minLuma' => 'Min Luma',
|
||
'performanceOverlay.maxCll' => 'MaxCLL',
|
||
'performanceOverlay.maxFall' => 'MaxFALL',
|
||
'performanceOverlay.cacheUsed' => 'Cache Used',
|
||
'performanceOverlay.cacheLimit' => 'Cache Limit',
|
||
'performanceOverlay.speed' => 'Speed',
|
||
'performanceOverlay.player' => 'Player',
|
||
'performanceOverlay.memory' => 'Memory',
|
||
'performanceOverlay.uiFps' => 'UI FPS',
|
||
'externalPlayer.title' => 'External Player',
|
||
'externalPlayer.useExternalPlayer' => 'Use External Player',
|
||
'externalPlayer.useExternalPlayerDescription' => 'Open videos in another app',
|
||
'externalPlayer.selectPlayer' => 'Select Player',
|
||
'externalPlayer.customPlayers' => 'Custom Players',
|
||
'externalPlayer.systemDefault' => 'System Default',
|
||
'externalPlayer.addCustomPlayer' => 'Add Custom Player',
|
||
'externalPlayer.playerName' => 'Player Name',
|
||
'externalPlayer.playerNameHint' => 'My Player',
|
||
'externalPlayer.playerCommand' => 'Command',
|
||
'externalPlayer.playerPackage' => 'Package Name',
|
||
'externalPlayer.playerUrlScheme' => 'URL Scheme',
|
||
'externalPlayer.off' => 'Off',
|
||
'externalPlayer.launchFailed' => 'Failed to open external player',
|
||
'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} is not installed',
|
||
'externalPlayer.playInExternalPlayer' => 'Play in External Player',
|
||
'metadataEdit.editMetadata' => 'Edit...',
|
||
'metadataEdit.screenTitle' => 'Edit Metadata',
|
||
'metadataEdit.basicInfo' => 'Basic Info',
|
||
'metadataEdit.artwork' => 'Artwork',
|
||
'metadataEdit.advancedSettings' => 'Advanced Settings',
|
||
'metadataEdit.title' => 'Title',
|
||
'metadataEdit.sortTitle' => 'Sort Title',
|
||
'metadataEdit.originalTitle' => 'Original Title',
|
||
'metadataEdit.releaseDate' => 'Release Date',
|
||
'metadataEdit.contentRating' => 'Content Rating',
|
||
'metadataEdit.studio' => 'Studio',
|
||
'metadataEdit.tagline' => 'Tagline',
|
||
'metadataEdit.summary' => 'Summary',
|
||
'metadataEdit.poster' => 'Poster',
|
||
'metadataEdit.background' => 'Background',
|
||
'metadataEdit.logo' => 'Logo',
|
||
'metadataEdit.squareArt' => 'Square Art',
|
||
'metadataEdit.selectPoster' => 'Select Poster',
|
||
'metadataEdit.selectBackground' => 'Select Background',
|
||
'metadataEdit.selectLogo' => 'Select Logo',
|
||
'metadataEdit.selectSquareArt' => 'Select Square Art',
|
||
'metadataEdit.fromUrl' => 'From URL',
|
||
'metadataEdit.uploadFile' => 'Upload File',
|
||
'metadataEdit.enterImageUrl' => 'Enter image URL',
|
||
'metadataEdit.imageUrl' => 'Image URL',
|
||
'metadataEdit.metadataUpdated' => 'Metadata updated',
|
||
'metadataEdit.metadataUpdateFailed' => 'Failed to update metadata',
|
||
'metadataEdit.artworkUpdated' => 'Artwork updated',
|
||
'metadataEdit.artworkUpdateFailed' => 'Failed to update artwork',
|
||
'metadataEdit.noArtworkAvailable' => 'No artwork available',
|
||
'metadataEdit.artworkOption' => ({required Object index}) => 'Artwork option ${index}',
|
||
'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Artwork option ${index}, selected',
|
||
'metadataEdit.notSet' => 'Not set',
|
||
'metadataEdit.libraryDefault' => 'Library default',
|
||
'metadataEdit.accountDefault' => 'Account default',
|
||
'metadataEdit.seriesDefault' => 'Series default',
|
||
'metadataEdit.episodeSorting' => 'Episode Sorting',
|
||
'metadataEdit.oldestFirst' => 'Oldest first',
|
||
'metadataEdit.newestFirst' => 'Newest first',
|
||
'metadataEdit.keep' => 'Keep',
|
||
'metadataEdit.allEpisodes' => 'All episodes',
|
||
'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} latest episodes',
|
||
'metadataEdit.latestEpisode' => 'Latest episode',
|
||
'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Episodes added in the past ${count} days',
|
||
'metadataEdit.deleteAfterPlaying' => 'Delete Episodes After Playing',
|
||
'metadataEdit.never' => 'Never',
|
||
'metadataEdit.afterADay' => 'After a day',
|
||
'metadataEdit.afterAWeek' => 'After a week',
|
||
'metadataEdit.afterAMonth' => 'After a month',
|
||
'metadataEdit.onNextRefresh' => 'On next refresh',
|
||
'metadataEdit.seasons' => 'Seasons',
|
||
'metadataEdit.show' => 'Show',
|
||
'metadataEdit.hide' => 'Hide',
|
||
'metadataEdit.episodeOrdering' => 'Episode Ordering',
|
||
'metadataEdit.tmdbAiring' => 'The Movie Database (Aired)',
|
||
'metadataEdit.tvdbAiring' => 'TheTVDB (Aired)',
|
||
'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolute)',
|
||
'metadataEdit.metadataLanguage' => 'Metadata Language',
|
||
'metadataEdit.useOriginalTitle' => 'Use Original Title',
|
||
'metadataEdit.preferredAudioLanguage' => 'Preferred Audio Language',
|
||
'metadataEdit.preferredSubtitleLanguage' => 'Preferred Subtitle Language',
|
||
'metadataEdit.subtitleMode' => 'Auto-Select Subtitle Mode',
|
||
'metadataEdit.manuallySelected' => 'Manually selected',
|
||
'metadataEdit.shownWithForeignAudio' => 'Shown with foreign audio',
|
||
'metadataEdit.alwaysEnabled' => 'Always enabled',
|
||
'metadataEdit.tags' => 'Tags',
|
||
'metadataEdit.addTag' => 'Add tag',
|
||
'metadataEdit.genre' => 'Genre',
|
||
'metadataEdit.director' => 'Director',
|
||
'metadataEdit.writer' => 'Writer',
|
||
'metadataEdit.producer' => 'Producer',
|
||
'metadataEdit.country' => 'Country',
|
||
'metadataEdit.collection' => 'Collection',
|
||
'metadataEdit.label' => 'Label',
|
||
'metadataEdit.style' => 'Style',
|
||
'metadataEdit.mood' => 'Mood',
|
||
'matchScreen.match' => 'Match...',
|
||
'matchScreen.fixMatch' => 'Fix Match...',
|
||
'matchScreen.unmatch' => 'Unmatch',
|
||
'matchScreen.unmatchConfirm' => 'Clear this match? Plex treats it as unmatched until rematched.',
|
||
'matchScreen.unmatchSuccess' => 'Item unmatched',
|
||
'matchScreen.unmatchFailed' => 'Failed to unmatch item',
|
||
'matchScreen.matchApplied' => 'Match applied',
|
||
'matchScreen.matchFailed' => 'Failed to apply match',
|
||
'matchScreen.titleHint' => 'Title',
|
||
'matchScreen.yearHint' => 'Year',
|
||
'matchScreen.search' => 'Search',
|
||
'matchScreen.noMatchesFound' => 'No matches found',
|
||
'serverTasks.title' => 'Server Tasks',
|
||
'serverTasks.failedToLoad' => 'Failed to load tasks',
|
||
'serverTasks.noTasks' => 'No tasks running',
|
||
'trakt.title' => 'Trakt',
|
||
'trakt.connected' => 'Connected',
|
||
'trakt.connectedAs' => ({required Object username}) => 'Connected as @${username}',
|
||
'trakt.disconnectConfirm' => 'Disconnect Trakt account?',
|
||
'trakt.disconnectConfirmBody' => 'Plezy will stop sending events to Trakt. You can reconnect any time.',
|
||
'trakt.scrobble' => 'Real-time scrobbling',
|
||
'trakt.scrobbleDescription' => 'Send play, pause, and stop events to Trakt during playback.',
|
||
'trakt.watchedSync' => 'Sync watched status',
|
||
'trakt.watchedSyncDescription' => 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.',
|
||
'seerr.title' => 'Seerr',
|
||
'seerr.connectTitle' => 'Connect Seerr',
|
||
'seerr.serverUrl' => 'Server URL',
|
||
'seerr.serverUrlHelper' => 'The address of your Seerr instance',
|
||
'seerr.checkServer' => 'Continue',
|
||
'seerr.signInWithJellyfin' => 'Sign in with Jellyfin',
|
||
'seerr.signInWithEmby' => 'Sign in with Emby',
|
||
'seerr.signInWithLocal' => 'Use a local account',
|
||
'seerr.email' => 'Email',
|
||
'seerr.noSignInMethods' => 'This Seerr instance offers no sign-in method Plezy supports.',
|
||
'seerr.instance' => 'Instance',
|
||
'seerr.disconnectConfirm' => 'Disconnect Seerr?',
|
||
'seerr.disconnectConfirmBody' => 'Plezy will forget this Seerr instance. Reconnect any time.',
|
||
'seerr.request' => 'Request',
|
||
'seerr.request4k' => 'Request in 4K',
|
||
'seerr.seasons' => 'Seasons',
|
||
'seerr.allSeasons' => 'All seasons',
|
||
'seerr.advancedOptions' => 'Advanced',
|
||
'seerr.destinationServer' => 'Destination server',
|
||
'seerr.qualityProfile' => 'Quality profile',
|
||
'seerr.rootFolder' => 'Root folder',
|
||
'seerr.languageProfile' => 'Language profile',
|
||
'seerr.requestSubmitted' => 'Request submitted',
|
||
'seerr.requestFailed' => ({required Object error}) => 'Request failed: ${error}',
|
||
'seerr.requestsLoadFailed' => 'Couldn\'t load request options',
|
||
'seerr.nothingToRequest' => 'Everything is already available or requested.',
|
||
'seerr.statusAvailable' => 'Available',
|
||
'seerr.statusPartiallyAvailable' => 'Partially available',
|
||
'seerr.statusRequested' => 'Requested',
|
||
'seerr.statusProcessing' => 'Processing',
|
||
'services.title' => 'Services',
|
||
'services.hubSubtitle' => 'Sync watch progress and request new titles.',
|
||
'services.notConnected' => 'Not connected',
|
||
'services.connectedAs' => ({required Object username}) => 'Connected as @${username}',
|
||
'services.scrobble' => 'Track progress automatically',
|
||
'services.scrobbleDescription' => 'Update your list when you finish an episode or movie.',
|
||
'services.disconnectConfirm' => ({required Object service}) => 'Disconnect ${service}?',
|
||
'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy will stop updating ${service}. Reconnect any time.',
|
||
'services.connectFailed' => ({required Object service}) => 'Couldn\'t connect to ${service}. Try again.',
|
||
'services.names.mal' => 'MyAnimeList',
|
||
'services.names.anilist' => 'AniList',
|
||
'services.names.simkl' => 'Simkl',
|
||
'services.names.seerr' => 'Seerr',
|
||
'services.deviceCode.title' => ({required Object service}) => 'Activate Plezy on ${service}',
|
||
'services.deviceCode.body' => ({required Object url}) => 'Visit ${url} and enter this code:',
|
||
'services.deviceCode.openToActivate' => ({required Object service}) => 'Open ${service} to activate',
|
||
'services.deviceCode.copyCode' => 'Copy activation code',
|
||
'services.deviceCode.waitingForAuthorization' => 'Waiting for authorization…',
|
||
'services.deviceCode.codeCopied' => 'Code copied',
|
||
'services.oauthProxy.title' => ({required Object service}) => 'Sign in to ${service}',
|
||
'services.oauthProxy.body' => 'Scan this QR code or open the URL on any device.',
|
||
'services.oauthProxy.openToSignIn' => ({required Object service}) => 'Open ${service} to sign in',
|
||
'services.oauthProxy.copyUrl' => 'Copy sign-in URL',
|
||
'services.oauthProxy.urlCopied' => 'URL copied',
|
||
'services.libraryFilter.title' => 'Library filter',
|
||
'services.libraryFilter.subtitleAllSyncing' => 'Syncing all libraries',
|
||
'services.libraryFilter.subtitleNoneSyncing' => 'Nothing syncing',
|
||
'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} blocked',
|
||
'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} allowed',
|
||
'services.libraryFilter.mode' => 'Filter mode',
|
||
'services.libraryFilter.modeBlacklist' => 'Blacklist',
|
||
'services.libraryFilter.modeWhitelist' => 'Whitelist',
|
||
'services.libraryFilter.modeHintBlacklist' => 'Sync every library except the ones checked below.',
|
||
'services.libraryFilter.modeHintWhitelist' => 'Sync only the libraries checked below.',
|
||
'services.libraryFilter.libraries' => 'Libraries',
|
||
'services.libraryFilter.noLibraries' => 'No libraries available',
|
||
'addServer.addJellyfinTitle' => 'Add Jellyfin server',
|
||
'addServer.serverUrls' => 'Server URLs',
|
||
'addServer.serverUrlsHelper' => 'Multiple URLs allowed, separated by commas.',
|
||
'addServer.findServer' => 'Find server',
|
||
'addServer.searchingLocalServers' => 'Looking for local Jellyfin servers...',
|
||
'addServer.localServers' => 'Local Jellyfin servers',
|
||
'addServer.username' => 'Username',
|
||
'addServer.password' => 'Password',
|
||
'addServer.signIn' => 'Sign in',
|
||
'addServer.change' => 'Change',
|
||
'addServer.required' => 'Required',
|
||
'addServer.couldNotReachServer' => ({required Object error}) => 'Could not reach the server: ${error}',
|
||
'addServer.signInFailed' => ({required Object error}) => 'Sign-in failed: ${error}',
|
||
'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect failed: ${error}',
|
||
'addServer.addPlexTitle' => 'Sign in with Plex',
|
||
'addServer.pinExpired' => 'PIN expired before sign-in. Please try again.',
|
||
'addServer.failedToRegisterAccount' => ({required Object error}) => 'Failed to register account: ${error}',
|
||
'addServer.enterJellyfinUrlError' => 'Enter your Jellyfin server URL',
|
||
'addServer.addConnectionTitle' => 'Add connection',
|
||
'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Add to ${name}',
|
||
'addServer.signInWithPlexCard' => 'Sign in with Plex',
|
||
'addServer.signInWithPlexCardSubtitle' => 'Authorize this device. Shared servers are added.',
|
||
'addServer.signInWithPlexCardSubtitleScoped' => 'Authorize a Plex account. Home users become profiles.',
|
||
'addServer.connectToJellyfinCard' => 'Connect to Jellyfin',
|
||
'addServer.connectToJellyfinCardSubtitle' => 'Enter your server URL, username, and password.',
|
||
'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Sign in to a Jellyfin server. Binds to ${name}.',
|
||
'addServer.borrowFromAnotherProfile' => 'Borrow from another profile',
|
||
'addServer.borrowFromAnotherProfileSubtitle' => 'Reuse another profile\'s connection. PIN-protected profiles require a PIN.',
|
||
_ => null,
|
||
};
|
||
}
|
||
}
|