1580 lines
84 KiB
Dart
1580 lines
84 KiB
Dart
///
|
||
/// Generated file. Do not edit.
|
||
///
|
||
// coverage:ignore-file
|
||
// ignore_for_file: type=lint, unused_import
|
||
// dart format off
|
||
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:intl/intl.dart';
|
||
import 'package:slang/generated.dart';
|
||
import 'strings.g.dart';
|
||
|
||
// Path: <root>
|
||
class TranslationsZh with BaseTranslations<AppLocale, Translations> implements Translations {
|
||
/// You can call this constructor and build your own translation instance of this locale.
|
||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||
TranslationsZh({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.zh,
|
||
overrides: overrides ?? {},
|
||
cardinalResolver: cardinalResolver,
|
||
ordinalResolver: ordinalResolver,
|
||
) {
|
||
$meta.setFlatMapFunction(_flatMapFunction);
|
||
}
|
||
|
||
/// Metadata for the translations of <zh>.
|
||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||
|
||
/// Access flat map
|
||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
||
|
||
late final TranslationsZh _root = this; // ignore: unused_field
|
||
|
||
@override
|
||
TranslationsZh $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsZh(meta: meta ?? this.$meta);
|
||
|
||
// Translations
|
||
@override late final _TranslationsAppZh app = _TranslationsAppZh._(_root);
|
||
@override late final _TranslationsAuthZh auth = _TranslationsAuthZh._(_root);
|
||
@override late final _TranslationsCommonZh common = _TranslationsCommonZh._(_root);
|
||
@override late final _TranslationsScreensZh screens = _TranslationsScreensZh._(_root);
|
||
@override late final _TranslationsUpdateZh update = _TranslationsUpdateZh._(_root);
|
||
@override late final _TranslationsSettingsZh settings = _TranslationsSettingsZh._(_root);
|
||
@override late final _TranslationsSearchZh search = _TranslationsSearchZh._(_root);
|
||
@override late final _TranslationsHotkeysZh hotkeys = _TranslationsHotkeysZh._(_root);
|
||
@override late final _TranslationsPinEntryZh pinEntry = _TranslationsPinEntryZh._(_root);
|
||
@override late final _TranslationsFileInfoZh fileInfo = _TranslationsFileInfoZh._(_root);
|
||
@override late final _TranslationsMediaMenuZh mediaMenu = _TranslationsMediaMenuZh._(_root);
|
||
@override late final _TranslationsAccessibilityZh accessibility = _TranslationsAccessibilityZh._(_root);
|
||
@override late final _TranslationsTooltipsZh tooltips = _TranslationsTooltipsZh._(_root);
|
||
@override late final _TranslationsVideoControlsZh videoControls = _TranslationsVideoControlsZh._(_root);
|
||
@override late final _TranslationsUserStatusZh userStatus = _TranslationsUserStatusZh._(_root);
|
||
@override late final _TranslationsMessagesZh messages = _TranslationsMessagesZh._(_root);
|
||
@override late final _TranslationsSubtitlingStylingZh subtitlingStyling = _TranslationsSubtitlingStylingZh._(_root);
|
||
@override late final _TranslationsMpvConfigZh mpvConfig = _TranslationsMpvConfigZh._(_root);
|
||
@override late final _TranslationsDialogZh dialog = _TranslationsDialogZh._(_root);
|
||
@override late final _TranslationsDiscoverZh discover = _TranslationsDiscoverZh._(_root);
|
||
@override late final _TranslationsErrorsZh errors = _TranslationsErrorsZh._(_root);
|
||
@override late final _TranslationsLibrariesZh libraries = _TranslationsLibrariesZh._(_root);
|
||
@override late final _TranslationsAboutZh about = _TranslationsAboutZh._(_root);
|
||
@override late final _TranslationsServerSelectionZh serverSelection = _TranslationsServerSelectionZh._(_root);
|
||
@override late final _TranslationsHubDetailZh hubDetail = _TranslationsHubDetailZh._(_root);
|
||
@override late final _TranslationsLogsZh logs = _TranslationsLogsZh._(_root);
|
||
@override late final _TranslationsLicensesZh licenses = _TranslationsLicensesZh._(_root);
|
||
@override late final _TranslationsNavigationZh navigation = _TranslationsNavigationZh._(_root);
|
||
@override late final _TranslationsDownloadsZh downloads = _TranslationsDownloadsZh._(_root);
|
||
@override late final _TranslationsPlaylistsZh playlists = _TranslationsPlaylistsZh._(_root);
|
||
@override late final _TranslationsCollectionsZh collections = _TranslationsCollectionsZh._(_root);
|
||
@override late final _TranslationsWatchTogetherZh watchTogether = _TranslationsWatchTogetherZh._(_root);
|
||
@override late final _TranslationsShadersZh shaders = _TranslationsShadersZh._(_root);
|
||
}
|
||
|
||
// Path: app
|
||
class _TranslationsAppZh implements TranslationsAppEn {
|
||
_TranslationsAppZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => 'Plezy';
|
||
@override String get loading => '加载中...';
|
||
}
|
||
|
||
// Path: auth
|
||
class _TranslationsAuthZh implements TranslationsAuthEn {
|
||
_TranslationsAuthZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get signInWithPlex => '使用 Plex 登录';
|
||
@override String get showQRCode => '显示二维码';
|
||
@override String get cancel => '取消';
|
||
@override String get authenticate => '验证';
|
||
@override String get retry => '重试';
|
||
@override String get debugEnterToken => '调试:输入 Plex Token';
|
||
@override String get plexTokenLabel => 'Plex 授权令牌 (Auth Token)';
|
||
@override String get plexTokenHint => '输入你的 Plex.tv 令牌';
|
||
@override String get authenticationTimeout => '验证超时。请重试。';
|
||
@override String get scanQRToSignIn => '扫描二维码登录';
|
||
@override String get waitingForAuth => '等待验证中...\n请在你的浏览器中完成登录。';
|
||
@override String get useBrowser => '使用浏览器';
|
||
}
|
||
|
||
// Path: common
|
||
class _TranslationsCommonZh implements TranslationsCommonEn {
|
||
_TranslationsCommonZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get cancel => '取消';
|
||
@override String get save => '保存';
|
||
@override String get close => '关闭';
|
||
@override String get clear => '清除';
|
||
@override String get reset => '重置';
|
||
@override String get later => '稍后';
|
||
@override String get submit => '提交';
|
||
@override String get confirm => '确认';
|
||
@override String get retry => '重试';
|
||
@override String get logout => '登出';
|
||
@override String get unknown => '未知';
|
||
@override String get refresh => '刷新';
|
||
@override String get yes => '是';
|
||
@override String get no => '否';
|
||
@override String get delete => '删除';
|
||
@override String get shuffle => '随机播放';
|
||
@override String get addTo => '添加到...';
|
||
@override String get showMore => '展开';
|
||
@override String get showLess => '收起';
|
||
}
|
||
|
||
// Path: screens
|
||
class _TranslationsScreensZh implements TranslationsScreensEn {
|
||
_TranslationsScreensZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get licenses => '许可证';
|
||
@override String get selectServer => '选择服务器';
|
||
@override String get switchProfile => '切换用户';
|
||
@override String get subtitleStyling => '字幕样式';
|
||
@override String get mpvConfig => 'MPV 配置';
|
||
@override String get search => '搜索';
|
||
@override String get logs => '日志';
|
||
}
|
||
|
||
// Path: update
|
||
class _TranslationsUpdateZh implements TranslationsUpdateEn {
|
||
_TranslationsUpdateZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get available => '有可用更新';
|
||
@override String versionAvailable({required Object version}) => '版本 ${version} 已发布';
|
||
@override String currentVersion({required Object version}) => '当前版本: ${version}';
|
||
@override String get skipVersion => '跳过此版本';
|
||
@override String get viewRelease => '查看发布详情';
|
||
@override String get latestVersion => '已安装的版本是可用的最新版本';
|
||
@override String get checkFailed => '无法检查更新';
|
||
}
|
||
|
||
// Path: settings
|
||
class _TranslationsSettingsZh implements TranslationsSettingsEn {
|
||
_TranslationsSettingsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '设置';
|
||
@override String get language => '语言';
|
||
@override String get theme => '主题';
|
||
@override String get appearance => '外观';
|
||
@override String get videoPlayback => '视频播放';
|
||
@override String get advanced => '高级';
|
||
@override String get episodePosterMode => '剧集海报样式';
|
||
@override String get seriesPoster => '剧集海报';
|
||
@override String get seriesPosterDescription => '为所有剧集显示剧集海报';
|
||
@override String get seasonPoster => '季海报';
|
||
@override String get seasonPosterDescription => '为剧集显示特定季的海报';
|
||
@override String get episodeThumbnail => '剧集缩略图';
|
||
@override String get episodeThumbnailDescription => '显示16:9剧集截图缩略图';
|
||
@override String get showHeroSectionDescription => '在主屏幕上显示精选内容轮播区';
|
||
@override String get secondsLabel => '秒';
|
||
@override String get minutesLabel => '分钟';
|
||
@override String get secondsShort => 's';
|
||
@override String get minutesShort => 'm';
|
||
@override String durationHint({required Object min, required Object max}) => '输入时长 (${min}-${max})';
|
||
@override String get systemTheme => '系统';
|
||
@override String get systemThemeDescription => '跟随系统设置';
|
||
@override String get lightTheme => '浅色';
|
||
@override String get darkTheme => '深色';
|
||
@override String get oledTheme => 'OLED';
|
||
@override String get oledThemeDescription => '纯黑色适用于 OLED 屏幕';
|
||
@override String get libraryDensity => '媒体库密度';
|
||
@override String get compact => '紧凑';
|
||
@override String get compactDescription => '卡片更小,显示更多项目';
|
||
@override String get normal => '标准';
|
||
@override String get normalDescription => '默认尺寸';
|
||
@override String get comfortable => '舒适';
|
||
@override String get comfortableDescription => '卡片更大,显示更少项目';
|
||
@override String get viewMode => '视图模式';
|
||
@override String get gridView => '网格视图';
|
||
@override String get gridViewDescription => '以网格布局显示项目';
|
||
@override String get listView => '列表视图';
|
||
@override String get listViewDescription => '以列表布局显示项目';
|
||
@override String get showHeroSection => '显示主要精选区';
|
||
@override String get useGlobalHubs => '使用 Plex 主页布局';
|
||
@override String get useGlobalHubsDescription => '显示与官方 Plex 客户端相同的主页推荐。关闭时将显示按媒体库分类的推荐。';
|
||
@override String get showServerNameOnHubs => '在推荐栏显示服务器名称';
|
||
@override String get showServerNameOnHubsDescription => '始终在推荐栏标题中显示服务器名称。关闭时仅在推荐栏名称重复时显示。';
|
||
@override String get alwaysKeepSidebarOpen => '始终保持侧边栏展开';
|
||
@override String get alwaysKeepSidebarOpenDescription => '侧边栏保持展开状态,内容区域自动调整';
|
||
@override String get showUnwatchedCount => '显示未观看数量';
|
||
@override String get showUnwatchedCountDescription => '在剧集和季上显示未观看的集数';
|
||
@override String get playerBackend => '播放器引擎';
|
||
@override String get exoPlayer => 'ExoPlayer(推荐)';
|
||
@override String get exoPlayerDescription => 'Android 原生播放器,硬件支持更好';
|
||
@override String get mpv => 'MPV';
|
||
@override String get mpvDescription => '功能更多的高级播放器,支持 ASS 字幕';
|
||
@override String get hardwareDecoding => '硬件解码';
|
||
@override String get hardwareDecodingDescription => '如果可用,使用硬件加速';
|
||
@override String get bufferSize => '缓冲区大小';
|
||
@override String bufferSizeMB({required Object size}) => '${size}MB';
|
||
@override String get subtitleStyling => '字幕样式';
|
||
@override String get subtitleStylingDescription => '调整字幕外观';
|
||
@override String get smallSkipDuration => '短跳过时长';
|
||
@override String get largeSkipDuration => '长跳过时长';
|
||
@override String secondsUnit({required Object seconds}) => '${seconds} 秒';
|
||
@override String get defaultSleepTimer => '默认睡眠定时器';
|
||
@override String minutesUnit({required Object minutes}) => '${minutes} 分钟';
|
||
@override String get rememberTrackSelections => '记住每个剧集/电影的音轨选择';
|
||
@override String get rememberTrackSelectionsDescription => '在播放过程中更改音轨时自动保存音频和字幕语言偏好';
|
||
@override String get clickVideoTogglesPlayback => '点击视频可切换播放/暂停';
|
||
@override String get clickVideoTogglesPlaybackDescription => '如果启用此选项,点击视频播放器将播放或暂停视频。否则,点击将显示或隐藏播放控件';
|
||
@override String get videoPlayerControls => '视频播放器控制';
|
||
@override String get keyboardShortcuts => '键盘快捷键';
|
||
@override String get keyboardShortcutsDescription => '自定义键盘快捷键';
|
||
@override String get videoPlayerNavigation => '视频播放器导航';
|
||
@override String get videoPlayerNavigationDescription => '使用方向键导航视频播放器控件';
|
||
@override String get debugLogging => '调试日志';
|
||
@override String get debugLoggingDescription => '启用详细日志记录以便故障排除';
|
||
@override String get viewLogs => '查看日志';
|
||
@override String get viewLogsDescription => '查看应用程序日志';
|
||
@override String get clearCache => '清除缓存';
|
||
@override String get clearCacheDescription => '这将清除所有缓存的图片和数据。清除缓存后,应用程序加载内容可能会变慢。';
|
||
@override String get clearCacheSuccess => '缓存清除成功';
|
||
@override String get resetSettings => '重置设置';
|
||
@override String get resetSettingsDescription => '这会将所有设置重置为其默认值。此操作无法撤销。';
|
||
@override String get resetSettingsSuccess => '设置重置成功';
|
||
@override String get shortcutsReset => '快捷键已重置为默认值';
|
||
@override String get about => '关于';
|
||
@override String get aboutDescription => '应用程序信息和许可证';
|
||
@override String get updates => '更新';
|
||
@override String get updateAvailable => '有可用更新';
|
||
@override String get checkForUpdates => '检查更新';
|
||
@override String get validationErrorEnterNumber => '请输入一个有效的数字';
|
||
@override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间';
|
||
@override String shortcutAlreadyAssigned({required Object action}) => '快捷键已被分配给 ${action}';
|
||
@override String shortcutUpdated({required Object action}) => '快捷键已为 ${action} 更新';
|
||
@override String get autoSkip => '自动跳过';
|
||
@override String get autoSkipIntro => '自动跳过片头';
|
||
@override String get autoSkipIntroDescription => '几秒钟后自动跳过片头标记';
|
||
@override String get autoSkipCredits => '自动跳过片尾';
|
||
@override String get autoSkipCreditsDescription => '自动跳过片尾并播放下一集';
|
||
@override String get autoSkipDelay => '自动跳过延迟';
|
||
@override String autoSkipDelayDescription({required Object seconds}) => '自动跳过前等待 ${seconds} 秒';
|
||
@override String get downloads => '下载';
|
||
@override String get downloadLocationDescription => '选择下载内容的存储位置';
|
||
@override String get downloadLocationDefault => '默认(应用存储)';
|
||
@override String get downloadLocationCustom => '自定义位置';
|
||
@override String get selectFolder => '选择文件夹';
|
||
@override String get resetToDefault => '重置为默认';
|
||
@override String currentPath({required Object path}) => '当前: ${path}';
|
||
@override String get downloadLocationChanged => '下载位置已更改';
|
||
@override String get downloadLocationReset => '下载位置已重置为默认';
|
||
@override String get downloadLocationInvalid => '所选文件夹不可写入';
|
||
@override String get downloadLocationSelectError => '选择文件夹失败';
|
||
@override String get downloadOnWifiOnly => '仅在 WiFi 时下载';
|
||
@override String get downloadOnWifiOnlyDescription => '使用蜂窝数据时禁止下载';
|
||
@override String get cellularDownloadBlocked => '蜂窝数据下已禁用下载。请连接 WiFi 或更改设置。';
|
||
@override String get maxVolume => '最大音量';
|
||
@override String get maxVolumeDescription => '允许音量超过 100% 以适应安静的媒体';
|
||
@override String maxVolumePercent({required Object percent}) => '${percent}%';
|
||
@override String get maxVolumeHint => '输入最大音量 (100-300)';
|
||
@override String get discordRichPresence => 'Discord 动态状态';
|
||
@override String get discordRichPresenceDescription => '在 Discord 上显示您正在观看的内容';
|
||
@override String get matchContentFrameRate => '匹配内容帧率';
|
||
@override String get matchContentFrameRateDescription => '调整显示刷新率以匹配视频内容,减少画面抖动并节省电量';
|
||
}
|
||
|
||
// Path: search
|
||
class _TranslationsSearchZh implements TranslationsSearchEn {
|
||
_TranslationsSearchZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get hint => '搜索电影、系列、音乐...';
|
||
@override String get tryDifferentTerm => '尝试不同的搜索词';
|
||
@override String get searchYourMedia => '搜索媒体';
|
||
@override String get enterTitleActorOrKeyword => '输入标题、演员或关键词';
|
||
}
|
||
|
||
// Path: hotkeys
|
||
class _TranslationsHotkeysZh implements TranslationsHotkeysEn {
|
||
_TranslationsHotkeysZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String setShortcutFor({required Object actionName}) => '为 ${actionName} 设置快捷键';
|
||
@override String get clearShortcut => '清除快捷键';
|
||
@override late final _TranslationsHotkeysActionsZh actions = _TranslationsHotkeysActionsZh._(_root);
|
||
}
|
||
|
||
// Path: pinEntry
|
||
class _TranslationsPinEntryZh implements TranslationsPinEntryEn {
|
||
_TranslationsPinEntryZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get enterPin => '输入 PIN';
|
||
@override String get showPin => '显示 PIN';
|
||
@override String get hidePin => '隐藏 PIN';
|
||
}
|
||
|
||
// Path: fileInfo
|
||
class _TranslationsFileInfoZh implements TranslationsFileInfoEn {
|
||
_TranslationsFileInfoZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '文件信息';
|
||
@override String get video => '视频';
|
||
@override String get audio => '音频';
|
||
@override String get file => '文件';
|
||
@override String get advanced => '高级';
|
||
@override String get codec => '编解码器';
|
||
@override String get resolution => '分辨率';
|
||
@override String get bitrate => '比特率';
|
||
@override String get frameRate => '帧率';
|
||
@override String get aspectRatio => '宽高比';
|
||
@override String get profile => '配置文件';
|
||
@override String get bitDepth => '位深度';
|
||
@override String get colorSpace => '色彩空间';
|
||
@override String get colorRange => '色彩范围';
|
||
@override String get colorPrimaries => '颜色原色';
|
||
@override String get chromaSubsampling => '色度子采样';
|
||
@override String get channels => '声道';
|
||
@override String get path => '路径';
|
||
@override String get size => '大小';
|
||
@override String get container => '容器';
|
||
@override String get duration => '时长';
|
||
@override String get optimizedForStreaming => '已优化用于流媒体';
|
||
@override String get has64bitOffsets => '64位偏移量';
|
||
}
|
||
|
||
// Path: mediaMenu
|
||
class _TranslationsMediaMenuZh implements TranslationsMediaMenuEn {
|
||
_TranslationsMediaMenuZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get markAsWatched => '标记为已观看';
|
||
@override String get markAsUnwatched => '标记为未观看';
|
||
@override String get removeFromContinueWatching => '从继续观看中移除';
|
||
@override String get goToSeries => '转到系列';
|
||
@override String get goToSeason => '转到季';
|
||
@override String get shufflePlay => '随机播放';
|
||
@override String get fileInfo => '文件信息';
|
||
@override String get confirmDelete => '确定要从文件系统中删除此项吗?';
|
||
@override String get deleteMultipleWarning => '可能会删除多个项目。';
|
||
@override String get mediaDeletedSuccessfully => '媒体项已成功删除';
|
||
@override String get mediaFailedToDelete => '删除媒体项失败';
|
||
}
|
||
|
||
// Path: accessibility
|
||
class _TranslationsAccessibilityZh implements TranslationsAccessibilityEn {
|
||
_TranslationsAccessibilityZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String mediaCardMovie({required Object title}) => '${title}, 电影';
|
||
@override String mediaCardShow({required Object title}) => '${title}, 电视剧';
|
||
@override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}';
|
||
@override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}';
|
||
@override String get mediaCardWatched => '已观看';
|
||
@override String mediaCardPartiallyWatched({required Object percent}) => '已观看 ${percent} 百分比';
|
||
@override String get mediaCardUnwatched => '未观看';
|
||
@override String get tapToPlay => '点击播放';
|
||
}
|
||
|
||
// Path: tooltips
|
||
class _TranslationsTooltipsZh implements TranslationsTooltipsEn {
|
||
_TranslationsTooltipsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get shufflePlay => '随机播放';
|
||
@override String get markAsWatched => '标记为已观看';
|
||
@override String get markAsUnwatched => '标记为未观看';
|
||
}
|
||
|
||
// Path: videoControls
|
||
class _TranslationsVideoControlsZh implements TranslationsVideoControlsEn {
|
||
_TranslationsVideoControlsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get audioLabel => '音频';
|
||
@override String get subtitlesLabel => '字幕';
|
||
@override String get resetToZero => '重置为 0ms';
|
||
@override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}';
|
||
@override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}';
|
||
@override String playsLater({required Object label}) => '${label} 播放较晚';
|
||
@override String playsEarlier({required Object label}) => '${label} 播放较早';
|
||
@override String get noOffset => '无偏移';
|
||
@override String get letterbox => '信箱模式(Letterbox)';
|
||
@override String get fillScreen => '填充屏幕';
|
||
@override String get stretch => '拉伸';
|
||
@override String get lockRotation => '锁定旋转';
|
||
@override String get unlockRotation => '解锁旋转';
|
||
@override String get sleepTimer => '睡眠定时器';
|
||
@override String get timerActive => '定时器已激活';
|
||
@override String playbackWillPauseIn({required Object duration}) => '播放将在 ${duration} 后暂停';
|
||
@override String get sleepTimerCompleted => '睡眠定时器已完成 - 播放已暂停';
|
||
@override String get autoPlayNext => '自动播放下一集';
|
||
@override String get playNext => '播放下一集';
|
||
@override String get playButton => '播放';
|
||
@override String get pauseButton => '暂停';
|
||
@override String seekBackwardButton({required Object seconds}) => '后退 ${seconds} 秒';
|
||
@override String seekForwardButton({required Object seconds}) => '前进 ${seconds} 秒';
|
||
@override String get previousButton => '上一集';
|
||
@override String get nextButton => '下一集';
|
||
@override String get previousChapterButton => '上一章节';
|
||
@override String get nextChapterButton => '下一章节';
|
||
@override String get muteButton => '静音';
|
||
@override String get unmuteButton => '取消静音';
|
||
@override String get settingsButton => '视频设置';
|
||
@override String get audioTrackButton => '音轨';
|
||
@override String get subtitlesButton => '字幕';
|
||
@override String get chaptersButton => '章节';
|
||
@override String get versionsButton => '视频版本';
|
||
@override String get pipButton => '画中画模式';
|
||
@override String get aspectRatioButton => '宽高比';
|
||
@override String get fullscreenButton => '进入全屏';
|
||
@override String get exitFullscreenButton => '退出全屏';
|
||
@override String get alwaysOnTopButton => '置顶窗口';
|
||
@override String get rotationLockButton => '旋转锁定';
|
||
@override String get timelineSlider => '视频时间轴';
|
||
@override String get volumeSlider => '音量调节';
|
||
@override String endsAt({required Object time}) => '${time} 结束';
|
||
@override String get backButton => '返回';
|
||
@override String get pipFailed => '画中画启动失败';
|
||
@override late final _TranslationsVideoControlsPipErrorsZh pipErrors = _TranslationsVideoControlsPipErrorsZh._(_root);
|
||
}
|
||
|
||
// Path: userStatus
|
||
class _TranslationsUserStatusZh implements TranslationsUserStatusEn {
|
||
_TranslationsUserStatusZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get admin => '管理员';
|
||
@override String get restricted => '受限';
|
||
@override String get protected => '受保护';
|
||
@override String get current => '当前';
|
||
}
|
||
|
||
// Path: messages
|
||
class _TranslationsMessagesZh implements TranslationsMessagesEn {
|
||
_TranslationsMessagesZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get markedAsWatched => '已标记为已观看';
|
||
@override String get markedAsUnwatched => '已标记为未观看';
|
||
@override String get markedAsWatchedOffline => '已标记为已观看 (将在联网时同步)';
|
||
@override String get markedAsUnwatchedOffline => '已标记为未观看 (将在联网时同步)';
|
||
@override String get removedFromContinueWatching => '已从继续观看中移除';
|
||
@override String errorLoading({required Object error}) => '错误: ${error}';
|
||
@override String get fileInfoNotAvailable => '文件信息不可用';
|
||
@override String errorLoadingFileInfo({required Object error}) => '加载文件信息时出错: ${error}';
|
||
@override String get errorLoadingSeries => '加载系列时出错';
|
||
@override String get errorLoadingSeason => '加载季时出错';
|
||
@override String get musicNotSupported => '尚不支持播放音乐';
|
||
@override String get logsCleared => '日志已清除';
|
||
@override String get logsCopied => '日志已复制到剪贴板';
|
||
@override String get noLogsAvailable => '没有可用日志';
|
||
@override String libraryScanning({required Object title}) => '正在扫描 “${title}”...';
|
||
@override String libraryScanStarted({required Object title}) => '已开始扫描 “${title}” 媒体库';
|
||
@override String libraryScanFailed({required Object error}) => '无法扫描媒体库: ${error}';
|
||
@override String metadataRefreshing({required Object title}) => '正在刷新 “${title}” 的元数据...';
|
||
@override String metadataRefreshStarted({required Object title}) => '已开始刷新 “${title}” 的元数据';
|
||
@override String metadataRefreshFailed({required Object error}) => '无法刷新元数据: ${error}';
|
||
@override String get logoutConfirm => '你确定要登出吗?';
|
||
@override String get noSeasonsFound => '未找到季';
|
||
@override String get noEpisodesFound => '在第一季中未找到剧集';
|
||
@override String get noEpisodesFoundGeneral => '未找到剧集';
|
||
@override String get noResultsFound => '未找到结果';
|
||
@override String sleepTimerSet({required Object label}) => '睡眠定时器已设置为 ${label}';
|
||
@override String get noItemsAvailable => '没有可用的项目';
|
||
@override String get failedToCreatePlayQueue => '创建播放队列失败';
|
||
@override String get failedToCreatePlayQueueNoItems => '创建播放队列失败 - 没有项目';
|
||
@override String failedPlayback({required Object action, required Object error}) => '无法${action}: ${error}';
|
||
@override String get switchingToCompatiblePlayer => '正在切换到兼容的播放器...';
|
||
}
|
||
|
||
// Path: subtitlingStyling
|
||
class _TranslationsSubtitlingStylingZh implements TranslationsSubtitlingStylingEn {
|
||
_TranslationsSubtitlingStylingZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get stylingOptions => '样式选项';
|
||
@override String get fontSize => '字号';
|
||
@override String get textColor => '文本颜色';
|
||
@override String get borderSize => '边框大小';
|
||
@override String get borderColor => '边框颜色';
|
||
@override String get backgroundOpacity => '背景不透明度';
|
||
@override String get backgroundColor => '背景颜色';
|
||
}
|
||
|
||
// Path: mpvConfig
|
||
class _TranslationsMpvConfigZh implements TranslationsMpvConfigEn {
|
||
_TranslationsMpvConfigZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => 'MPV 配置';
|
||
@override String get description => '高级视频播放器设置';
|
||
@override String get properties => '属性';
|
||
@override String get presets => '预设';
|
||
@override String get noProperties => '未配置任何属性';
|
||
@override String get noPresets => '没有保存的预设';
|
||
@override String get addProperty => '添加属性';
|
||
@override String get editProperty => '编辑属性';
|
||
@override String get deleteProperty => '删除属性';
|
||
@override String get propertyKey => '属性键';
|
||
@override String get propertyKeyHint => '例如 hwdec, demuxer-max-bytes';
|
||
@override String get propertyValue => '属性值';
|
||
@override String get propertyValueHint => '例如 auto, 256000000';
|
||
@override String get saveAsPreset => '保存为预设...';
|
||
@override String get presetName => '预设名称';
|
||
@override String get presetNameHint => '输入此预设的名称';
|
||
@override String get loadPreset => '加载';
|
||
@override String get deletePreset => '删除';
|
||
@override String get presetSaved => '预设已保存';
|
||
@override String get presetLoaded => '预设已加载';
|
||
@override String get presetDeleted => '预设已删除';
|
||
@override String get confirmDeletePreset => '确定要删除此预设吗?';
|
||
@override String get confirmDeleteProperty => '确定要删除此属性吗?';
|
||
@override String entriesCount({required Object count}) => '${count} 条目';
|
||
}
|
||
|
||
// Path: dialog
|
||
class _TranslationsDialogZh implements TranslationsDialogEn {
|
||
_TranslationsDialogZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get confirmAction => '确认操作';
|
||
@override String get cancel => '取消';
|
||
@override String get playNow => '立即播放';
|
||
}
|
||
|
||
// Path: discover
|
||
class _TranslationsDiscoverZh implements TranslationsDiscoverEn {
|
||
_TranslationsDiscoverZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '发现';
|
||
@override String get switchProfile => '切换用户';
|
||
@override String get switchServer => '切换服务器';
|
||
@override String get logout => '登出';
|
||
@override String get noContentAvailable => '没有可用内容';
|
||
@override String get addMediaToLibraries => '请向你的媒体库添加一些媒体';
|
||
@override String get continueWatching => '继续观看';
|
||
@override String get play => '播放';
|
||
@override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}';
|
||
@override String get pause => '暂停';
|
||
@override String get overview => '概述';
|
||
@override String get cast => '演员表';
|
||
@override String get seasons => '季数';
|
||
@override String get studio => '制作公司';
|
||
@override String get rating => '年龄分级';
|
||
@override String get watched => '已观看';
|
||
@override String episodeCount({required Object count}) => '${count} 集';
|
||
@override String watchedProgress({required Object watched, required Object total}) => '已观看 ${watched}/${total} 集';
|
||
@override String get movie => '电影';
|
||
@override String get tvShow => '电视剧';
|
||
@override String minutesLeft({required Object minutes}) => '剩余 ${minutes} 分钟';
|
||
}
|
||
|
||
// Path: errors
|
||
class _TranslationsErrorsZh implements TranslationsErrorsEn {
|
||
_TranslationsErrorsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String searchFailed({required Object error}) => '搜索失败: ${error}';
|
||
@override String connectionTimeout({required Object context}) => '加载 ${context} 时连接超时';
|
||
@override String get connectionFailed => '无法连接到 Plex 服务器';
|
||
@override String failedToLoad({required Object context, required Object error}) => '无法加载 ${context}: ${error}';
|
||
@override String get noClientAvailable => '没有可用客户端';
|
||
@override String authenticationFailed({required Object error}) => '验证失败: ${error}';
|
||
@override String get couldNotLaunchUrl => '无法打开授权 URL';
|
||
@override String get pleaseEnterToken => '请输入一个令牌';
|
||
@override String get invalidToken => '令牌无效';
|
||
@override String failedToVerifyToken({required Object error}) => '无法验证令牌: ${error}';
|
||
@override String failedToSwitchProfile({required Object displayName}) => '无法切换到 ${displayName}';
|
||
}
|
||
|
||
// Path: libraries
|
||
class _TranslationsLibrariesZh implements TranslationsLibrariesEn {
|
||
_TranslationsLibrariesZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '媒体库';
|
||
@override String get scanLibraryFiles => '扫描媒体库文件';
|
||
@override String get scanLibrary => '扫描媒体库';
|
||
@override String get analyze => '分析';
|
||
@override String get analyzeLibrary => '分析媒体库';
|
||
@override String get refreshMetadata => '刷新元数据';
|
||
@override String get emptyTrash => '清空回收站';
|
||
@override String emptyingTrash({required Object title}) => '正在清空 “${title}” 的回收站...';
|
||
@override String trashEmptied({required Object title}) => '已清空 “${title}” 的回收站';
|
||
@override String failedToEmptyTrash({required Object error}) => '无法清空回收站: ${error}';
|
||
@override String analyzing({required Object title}) => '正在分析 “${title}”...';
|
||
@override String analysisStarted({required Object title}) => '已开始分析 “${title}”';
|
||
@override String failedToAnalyze({required Object error}) => '无法分析媒体库: ${error}';
|
||
@override String get noLibrariesFound => '未找到媒体库';
|
||
@override String get thisLibraryIsEmpty => '此媒体库为空';
|
||
@override String get all => '全部';
|
||
@override String get clearAll => '全部清除';
|
||
@override String scanLibraryConfirm({required Object title}) => '确定要扫描 “${title}” 吗?';
|
||
@override String analyzeLibraryConfirm({required Object title}) => '确定要分析 “${title}” 吗?';
|
||
@override String refreshMetadataConfirm({required Object title}) => '确定要刷新 “${title}” 的元数据吗?';
|
||
@override String emptyTrashConfirm({required Object title}) => '确定要清空 “${title}” 的回收站吗?';
|
||
@override String get manageLibraries => '管理媒体库';
|
||
@override String get sort => '排序';
|
||
@override String get sortBy => '排序依据';
|
||
@override String get filters => '筛选器';
|
||
@override String get confirmActionMessage => '确定要执行此操作吗?';
|
||
@override String get showLibrary => '显示媒体库';
|
||
@override String get hideLibrary => '隐藏媒体库';
|
||
@override String get libraryOptions => '媒体库选项';
|
||
@override String get content => '媒体库内容';
|
||
@override String get selectLibrary => '选择媒体库';
|
||
@override String filtersWithCount({required Object count}) => '筛选器(${count})';
|
||
@override String get noRecommendations => '暂无推荐';
|
||
@override String get noCollections => '此媒体库中没有合集';
|
||
@override String get noFoldersFound => '未找到文件夹';
|
||
@override String get folders => '文件夹';
|
||
@override late final _TranslationsLibrariesTabsZh tabs = _TranslationsLibrariesTabsZh._(_root);
|
||
@override late final _TranslationsLibrariesGroupingsZh groupings = _TranslationsLibrariesGroupingsZh._(_root);
|
||
}
|
||
|
||
// Path: about
|
||
class _TranslationsAboutZh implements TranslationsAboutEn {
|
||
_TranslationsAboutZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '关于';
|
||
@override String get openSourceLicenses => '开源许可证';
|
||
@override String versionLabel({required Object version}) => '版本 ${version}';
|
||
@override String get appDescription => '一款精美的 Flutter Plex 客户端';
|
||
@override String get viewLicensesDescription => '查看第三方库的许可证';
|
||
}
|
||
|
||
// Path: serverSelection
|
||
class _TranslationsServerSelectionZh implements TranslationsServerSelectionEn {
|
||
_TranslationsServerSelectionZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get allServerConnectionsFailed => '无法连接到任何服务器。请检查你的网络并重试。';
|
||
@override String get noServersFound => '未找到服务器';
|
||
@override String noServersFoundForAccount({required Object username, required Object email}) => '未找到 ${username} (${email}) 的服务器';
|
||
@override String failedToLoadServers({required Object error}) => '无法加载服务器: ${error}';
|
||
}
|
||
|
||
// Path: hubDetail
|
||
class _TranslationsHubDetailZh implements TranslationsHubDetailEn {
|
||
_TranslationsHubDetailZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '标题';
|
||
@override String get releaseYear => '发行年份';
|
||
@override String get dateAdded => '添加日期';
|
||
@override String get rating => '评分';
|
||
@override String get noItemsFound => '未找到项目';
|
||
}
|
||
|
||
// Path: logs
|
||
class _TranslationsLogsZh implements TranslationsLogsEn {
|
||
_TranslationsLogsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get clearLogs => '清除日志';
|
||
@override String get copyLogs => '复制日志';
|
||
@override String get error => '错误:';
|
||
@override String get stackTrace => '堆栈跟踪 (Stack Trace):';
|
||
}
|
||
|
||
// Path: licenses
|
||
class _TranslationsLicensesZh implements TranslationsLicensesEn {
|
||
_TranslationsLicensesZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get relatedPackages => '相关软件包';
|
||
@override String get license => '许可证';
|
||
@override String licenseNumber({required Object number}) => '许可证 ${number}';
|
||
@override String licensesCount({required Object count}) => '${count} 个许可证';
|
||
}
|
||
|
||
// Path: navigation
|
||
class _TranslationsNavigationZh implements TranslationsNavigationEn {
|
||
_TranslationsNavigationZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get home => '主页';
|
||
@override String get search => '搜索';
|
||
@override String get libraries => '媒体库';
|
||
@override String get settings => '设置';
|
||
@override String get downloads => '下载';
|
||
}
|
||
|
||
// Path: downloads
|
||
class _TranslationsDownloadsZh implements TranslationsDownloadsEn {
|
||
_TranslationsDownloadsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '下载';
|
||
@override String get manage => '管理';
|
||
@override String get tvShows => '电视剧';
|
||
@override String get movies => '电影';
|
||
@override String get noDownloads => '暂无下载';
|
||
@override String get noDownloadsDescription => '下载的内容将在此处显示以供离线观看';
|
||
@override String get downloadNow => '下载';
|
||
@override String get deleteDownload => '删除下载';
|
||
@override String get retryDownload => '重试下载';
|
||
@override String get downloadQueued => '下载已排队';
|
||
@override String episodesQueued({required Object count}) => '${count} 集已加入下载队列';
|
||
@override String get downloadDeleted => '下载已删除';
|
||
@override String deleteConfirm({required Object title}) => '确定要删除 "${title}" 吗?下载的文件将从您的设备中删除。';
|
||
@override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})';
|
||
}
|
||
|
||
// Path: playlists
|
||
class _TranslationsPlaylistsZh implements TranslationsPlaylistsEn {
|
||
_TranslationsPlaylistsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '播放列表';
|
||
@override String get noPlaylists => '未找到播放列表';
|
||
@override String get create => '创建播放列表';
|
||
@override String get playlistName => '播放列表名称';
|
||
@override String get enterPlaylistName => '输入播放列表名称';
|
||
@override String get delete => '删除播放列表';
|
||
@override String get removeItem => '从播放列表中移除';
|
||
@override String get smartPlaylist => '智能播放列表';
|
||
@override String itemCount({required Object count}) => '${count} 个项目';
|
||
@override String get oneItem => '1 个项目';
|
||
@override String get emptyPlaylist => '此播放列表为空';
|
||
@override String get deleteConfirm => '删除播放列表?';
|
||
@override String deleteMessage({required Object name}) => '确定要删除 "${name}" 吗?';
|
||
@override String get created => '播放列表已创建';
|
||
@override String get deleted => '播放列表已删除';
|
||
@override String get itemAdded => '已添加到播放列表';
|
||
@override String get itemRemoved => '已从播放列表中移除';
|
||
@override String get selectPlaylist => '选择播放列表';
|
||
@override String get createNewPlaylist => '创建新播放列表';
|
||
@override String get errorCreating => '创建播放列表失败';
|
||
@override String get errorDeleting => '删除播放列表失败';
|
||
@override String get errorLoading => '加载播放列表失败';
|
||
@override String get errorAdding => '添加到播放列表失败';
|
||
@override String get errorReordering => '重新排序播放列表项目失败';
|
||
@override String get errorRemoving => '从播放列表中移除失败';
|
||
@override String get playlist => '播放列表';
|
||
}
|
||
|
||
// Path: collections
|
||
class _TranslationsCollectionsZh implements TranslationsCollectionsEn {
|
||
_TranslationsCollectionsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '合集';
|
||
@override String get collection => '合集';
|
||
@override String get empty => '合集为空';
|
||
@override String get unknownLibrarySection => '无法删除:未知的媒体库分区';
|
||
@override String get deleteCollection => '删除合集';
|
||
@override String deleteConfirm({required Object title}) => '确定要删除"${title}"吗?此操作无法撤销。';
|
||
@override String get deleted => '已删除合集';
|
||
@override String get deleteFailed => '删除合集失败';
|
||
@override String deleteFailedWithError({required Object error}) => '删除合集失败:${error}';
|
||
@override String failedToLoadItems({required Object error}) => '加载合集项目失败:${error}';
|
||
@override String get selectCollection => '选择合集';
|
||
@override String get createNewCollection => '创建新合集';
|
||
@override String get collectionName => '合集名称';
|
||
@override String get enterCollectionName => '输入合集名称';
|
||
@override String get addedToCollection => '已添加到合集';
|
||
@override String get errorAddingToCollection => '添加到合集失败';
|
||
@override String get created => '已创建合集';
|
||
@override String get removeFromCollection => '从合集移除';
|
||
@override String removeFromCollectionConfirm({required Object title}) => '将“${title}”从此合集移除?';
|
||
@override String get removedFromCollection => '已从合集移除';
|
||
@override String get removeFromCollectionFailed => '从合集移除失败';
|
||
@override String removeFromCollectionError({required Object error}) => '从合集移除时出错:${error}';
|
||
}
|
||
|
||
// Path: watchTogether
|
||
class _TranslationsWatchTogetherZh implements TranslationsWatchTogetherEn {
|
||
_TranslationsWatchTogetherZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '一起看';
|
||
@override String get description => '与朋友和家人同步观看内容';
|
||
@override String get createSession => '创建会话';
|
||
@override String get creating => '创建中...';
|
||
@override String get joinSession => '加入会话';
|
||
@override String get joining => '加入中...';
|
||
@override String get controlMode => '控制模式';
|
||
@override String get controlModeQuestion => '谁可以控制播放?';
|
||
@override String get hostOnly => '仅主持人';
|
||
@override String get anyone => '任何人';
|
||
@override String get hostingSession => '主持会话';
|
||
@override String get inSession => '在会话中';
|
||
@override String get sessionCode => '会话代码';
|
||
@override String get hostControlsPlayback => '主持人控制播放';
|
||
@override String get anyoneCanControl => '任何人都可以控制播放';
|
||
@override String get hostControls => '主持人控制';
|
||
@override String get anyoneControls => '任何人控制';
|
||
@override String get participants => '参与者';
|
||
@override String get host => '主持人';
|
||
@override String get hostBadge => '主持人';
|
||
@override String get youAreHost => '你是主持人';
|
||
@override String get watchingWithOthers => '与他人一起观看';
|
||
@override String get endSession => '结束会话';
|
||
@override String get leaveSession => '离开会话';
|
||
@override String get endSessionQuestion => '结束会话?';
|
||
@override String get leaveSessionQuestion => '离开会话?';
|
||
@override String get endSessionConfirm => '这将为所有参与者结束会话。';
|
||
@override String get leaveSessionConfirm => '你将被移出会话。';
|
||
@override String get endSessionConfirmOverlay => '这将为所有参与者结束观看会话。';
|
||
@override String get leaveSessionConfirmOverlay => '你将断开与观看会话的连接。';
|
||
@override String get end => '结束';
|
||
@override String get leave => '离开';
|
||
@override String get syncing => '同步中...';
|
||
@override String get participant => '参与者';
|
||
@override String get joinWatchSession => '加入观看会话';
|
||
@override String get enterCodeHint => '输入8位代码';
|
||
@override String get pasteFromClipboard => '从剪贴板粘贴';
|
||
@override String get pleaseEnterCode => '请输入会话代码';
|
||
@override String get codeMustBe8Chars => '会话代码必须是8个字符';
|
||
@override String get joinInstructions => '输入主持人分享的会话代码以加入他们的观看会话。';
|
||
@override String get failedToCreate => '创建会话失败';
|
||
@override String get failedToJoin => '加入会话失败';
|
||
@override String get sessionCodeCopied => '会话代码已复制到剪贴板';
|
||
}
|
||
|
||
// Path: shaders
|
||
class _TranslationsShadersZh implements TranslationsShadersEn {
|
||
_TranslationsShadersZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get title => '着色器';
|
||
@override String get noShaderDescription => '无视频增强';
|
||
@override String get nvscalerDescription => 'NVIDIA 图像缩放,使视频更清晰';
|
||
@override String get qualityFast => '快速';
|
||
@override String get qualityHQ => '高质量';
|
||
@override String get mode => '模式';
|
||
@override String get presetChanged => '着色器预设已更改';
|
||
@override String get hdrDetected => '检测到 HDR - 已跳过着色器';
|
||
@override String get mpvOnly => '着色器仅在使用 MPV 播放器时可用';
|
||
}
|
||
|
||
// Path: hotkeys.actions
|
||
class _TranslationsHotkeysActionsZh implements TranslationsHotkeysActionsEn {
|
||
_TranslationsHotkeysActionsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get playPause => '播放/暂停';
|
||
@override String get volumeUp => '增大音量';
|
||
@override String get volumeDown => '减小音量';
|
||
@override String seekForward({required Object seconds}) => '快进 (${seconds}秒)';
|
||
@override String seekBackward({required Object seconds}) => '快退 (${seconds}秒)';
|
||
@override String get fullscreenToggle => '切换全屏';
|
||
@override String get muteToggle => '切换静音';
|
||
@override String get subtitleToggle => '切换字幕';
|
||
@override String get audioTrackNext => '下一音轨';
|
||
@override String get subtitleTrackNext => '下一字幕轨';
|
||
@override String get chapterNext => '下一章节';
|
||
@override String get chapterPrevious => '上一章节';
|
||
@override String get speedIncrease => '加速';
|
||
@override String get speedDecrease => '减速';
|
||
@override String get speedReset => '重置速度';
|
||
@override String get subSeekNext => '跳转到下一字幕';
|
||
@override String get subSeekPrev => '跳转到上一字幕';
|
||
@override String get shaderToggle => '切换着色器';
|
||
}
|
||
|
||
// Path: videoControls.pipErrors
|
||
class _TranslationsVideoControlsPipErrorsZh implements TranslationsVideoControlsPipErrorsEn {
|
||
_TranslationsVideoControlsPipErrorsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get androidVersion => '需要 Android 8.0 或更高版本';
|
||
@override String get permissionDisabled => '画中画权限已禁用。请在设置 > 应用 > Plezy > 画中画中启用';
|
||
@override String get notSupported => '此设备不支持画中画模式';
|
||
@override String get failed => '画中画启动失败';
|
||
@override String unknown({required Object error}) => '发生错误:${error}';
|
||
}
|
||
|
||
// Path: libraries.tabs
|
||
class _TranslationsLibrariesTabsZh implements TranslationsLibrariesTabsEn {
|
||
_TranslationsLibrariesTabsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get recommended => '推荐';
|
||
@override String get browse => '浏览';
|
||
@override String get collections => '合集';
|
||
@override String get playlists => '播放列表';
|
||
}
|
||
|
||
// Path: libraries.groupings
|
||
class _TranslationsLibrariesGroupingsZh implements TranslationsLibrariesGroupingsEn {
|
||
_TranslationsLibrariesGroupingsZh._(this._root);
|
||
|
||
final TranslationsZh _root; // ignore: unused_field
|
||
|
||
// Translations
|
||
@override String get all => '全部';
|
||
@override String get movies => '电影';
|
||
@override String get shows => '剧集';
|
||
@override String get seasons => '季';
|
||
@override String get episodes => '集';
|
||
@override String get folders => '文件夹';
|
||
}
|
||
|
||
/// The flat map containing all translations for locale <zh>.
|
||
/// 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 TranslationsZh {
|
||
dynamic _flatMapFunction(String path) {
|
||
return switch (path) {
|
||
'app.title' => 'Plezy',
|
||
'app.loading' => '加载中...',
|
||
'auth.signInWithPlex' => '使用 Plex 登录',
|
||
'auth.showQRCode' => '显示二维码',
|
||
'auth.cancel' => '取消',
|
||
'auth.authenticate' => '验证',
|
||
'auth.retry' => '重试',
|
||
'auth.debugEnterToken' => '调试:输入 Plex Token',
|
||
'auth.plexTokenLabel' => 'Plex 授权令牌 (Auth Token)',
|
||
'auth.plexTokenHint' => '输入你的 Plex.tv 令牌',
|
||
'auth.authenticationTimeout' => '验证超时。请重试。',
|
||
'auth.scanQRToSignIn' => '扫描二维码登录',
|
||
'auth.waitingForAuth' => '等待验证中...\n请在你的浏览器中完成登录。',
|
||
'auth.useBrowser' => '使用浏览器',
|
||
'common.cancel' => '取消',
|
||
'common.save' => '保存',
|
||
'common.close' => '关闭',
|
||
'common.clear' => '清除',
|
||
'common.reset' => '重置',
|
||
'common.later' => '稍后',
|
||
'common.submit' => '提交',
|
||
'common.confirm' => '确认',
|
||
'common.retry' => '重试',
|
||
'common.logout' => '登出',
|
||
'common.unknown' => '未知',
|
||
'common.refresh' => '刷新',
|
||
'common.yes' => '是',
|
||
'common.no' => '否',
|
||
'common.delete' => '删除',
|
||
'common.shuffle' => '随机播放',
|
||
'common.addTo' => '添加到...',
|
||
'common.showMore' => '展开',
|
||
'common.showLess' => '收起',
|
||
'screens.licenses' => '许可证',
|
||
'screens.selectServer' => '选择服务器',
|
||
'screens.switchProfile' => '切换用户',
|
||
'screens.subtitleStyling' => '字幕样式',
|
||
'screens.mpvConfig' => 'MPV 配置',
|
||
'screens.search' => '搜索',
|
||
'screens.logs' => '日志',
|
||
'update.available' => '有可用更新',
|
||
'update.versionAvailable' => ({required Object version}) => '版本 ${version} 已发布',
|
||
'update.currentVersion' => ({required Object version}) => '当前版本: ${version}',
|
||
'update.skipVersion' => '跳过此版本',
|
||
'update.viewRelease' => '查看发布详情',
|
||
'update.latestVersion' => '已安装的版本是可用的最新版本',
|
||
'update.checkFailed' => '无法检查更新',
|
||
'settings.title' => '设置',
|
||
'settings.language' => '语言',
|
||
'settings.theme' => '主题',
|
||
'settings.appearance' => '外观',
|
||
'settings.videoPlayback' => '视频播放',
|
||
'settings.advanced' => '高级',
|
||
'settings.episodePosterMode' => '剧集海报样式',
|
||
'settings.seriesPoster' => '剧集海报',
|
||
'settings.seriesPosterDescription' => '为所有剧集显示剧集海报',
|
||
'settings.seasonPoster' => '季海报',
|
||
'settings.seasonPosterDescription' => '为剧集显示特定季的海报',
|
||
'settings.episodeThumbnail' => '剧集缩略图',
|
||
'settings.episodeThumbnailDescription' => '显示16:9剧集截图缩略图',
|
||
'settings.showHeroSectionDescription' => '在主屏幕上显示精选内容轮播区',
|
||
'settings.secondsLabel' => '秒',
|
||
'settings.minutesLabel' => '分钟',
|
||
'settings.secondsShort' => 's',
|
||
'settings.minutesShort' => 'm',
|
||
'settings.durationHint' => ({required Object min, required Object max}) => '输入时长 (${min}-${max})',
|
||
'settings.systemTheme' => '系统',
|
||
'settings.systemThemeDescription' => '跟随系统设置',
|
||
'settings.lightTheme' => '浅色',
|
||
'settings.darkTheme' => '深色',
|
||
'settings.oledTheme' => 'OLED',
|
||
'settings.oledThemeDescription' => '纯黑色适用于 OLED 屏幕',
|
||
'settings.libraryDensity' => '媒体库密度',
|
||
'settings.compact' => '紧凑',
|
||
'settings.compactDescription' => '卡片更小,显示更多项目',
|
||
'settings.normal' => '标准',
|
||
'settings.normalDescription' => '默认尺寸',
|
||
'settings.comfortable' => '舒适',
|
||
'settings.comfortableDescription' => '卡片更大,显示更少项目',
|
||
'settings.viewMode' => '视图模式',
|
||
'settings.gridView' => '网格视图',
|
||
'settings.gridViewDescription' => '以网格布局显示项目',
|
||
'settings.listView' => '列表视图',
|
||
'settings.listViewDescription' => '以列表布局显示项目',
|
||
'settings.showHeroSection' => '显示主要精选区',
|
||
'settings.useGlobalHubs' => '使用 Plex 主页布局',
|
||
'settings.useGlobalHubsDescription' => '显示与官方 Plex 客户端相同的主页推荐。关闭时将显示按媒体库分类的推荐。',
|
||
'settings.showServerNameOnHubs' => '在推荐栏显示服务器名称',
|
||
'settings.showServerNameOnHubsDescription' => '始终在推荐栏标题中显示服务器名称。关闭时仅在推荐栏名称重复时显示。',
|
||
'settings.alwaysKeepSidebarOpen' => '始终保持侧边栏展开',
|
||
'settings.alwaysKeepSidebarOpenDescription' => '侧边栏保持展开状态,内容区域自动调整',
|
||
'settings.showUnwatchedCount' => '显示未观看数量',
|
||
'settings.showUnwatchedCountDescription' => '在剧集和季上显示未观看的集数',
|
||
'settings.playerBackend' => '播放器引擎',
|
||
'settings.exoPlayer' => 'ExoPlayer(推荐)',
|
||
'settings.exoPlayerDescription' => 'Android 原生播放器,硬件支持更好',
|
||
'settings.mpv' => 'MPV',
|
||
'settings.mpvDescription' => '功能更多的高级播放器,支持 ASS 字幕',
|
||
'settings.hardwareDecoding' => '硬件解码',
|
||
'settings.hardwareDecodingDescription' => '如果可用,使用硬件加速',
|
||
'settings.bufferSize' => '缓冲区大小',
|
||
'settings.bufferSizeMB' => ({required Object size}) => '${size}MB',
|
||
'settings.subtitleStyling' => '字幕样式',
|
||
'settings.subtitleStylingDescription' => '调整字幕外观',
|
||
'settings.smallSkipDuration' => '短跳过时长',
|
||
'settings.largeSkipDuration' => '长跳过时长',
|
||
'settings.secondsUnit' => ({required Object seconds}) => '${seconds} 秒',
|
||
'settings.defaultSleepTimer' => '默认睡眠定时器',
|
||
'settings.minutesUnit' => ({required Object minutes}) => '${minutes} 分钟',
|
||
'settings.rememberTrackSelections' => '记住每个剧集/电影的音轨选择',
|
||
'settings.rememberTrackSelectionsDescription' => '在播放过程中更改音轨时自动保存音频和字幕语言偏好',
|
||
'settings.clickVideoTogglesPlayback' => '点击视频可切换播放/暂停',
|
||
'settings.clickVideoTogglesPlaybackDescription' => '如果启用此选项,点击视频播放器将播放或暂停视频。否则,点击将显示或隐藏播放控件',
|
||
'settings.videoPlayerControls' => '视频播放器控制',
|
||
'settings.keyboardShortcuts' => '键盘快捷键',
|
||
'settings.keyboardShortcutsDescription' => '自定义键盘快捷键',
|
||
'settings.videoPlayerNavigation' => '视频播放器导航',
|
||
'settings.videoPlayerNavigationDescription' => '使用方向键导航视频播放器控件',
|
||
'settings.debugLogging' => '调试日志',
|
||
'settings.debugLoggingDescription' => '启用详细日志记录以便故障排除',
|
||
'settings.viewLogs' => '查看日志',
|
||
'settings.viewLogsDescription' => '查看应用程序日志',
|
||
'settings.clearCache' => '清除缓存',
|
||
'settings.clearCacheDescription' => '这将清除所有缓存的图片和数据。清除缓存后,应用程序加载内容可能会变慢。',
|
||
'settings.clearCacheSuccess' => '缓存清除成功',
|
||
'settings.resetSettings' => '重置设置',
|
||
'settings.resetSettingsDescription' => '这会将所有设置重置为其默认值。此操作无法撤销。',
|
||
'settings.resetSettingsSuccess' => '设置重置成功',
|
||
'settings.shortcutsReset' => '快捷键已重置为默认值',
|
||
'settings.about' => '关于',
|
||
'settings.aboutDescription' => '应用程序信息和许可证',
|
||
'settings.updates' => '更新',
|
||
'settings.updateAvailable' => '有可用更新',
|
||
'settings.checkForUpdates' => '检查更新',
|
||
'settings.validationErrorEnterNumber' => '请输入一个有效的数字',
|
||
'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间',
|
||
'settings.shortcutAlreadyAssigned' => ({required Object action}) => '快捷键已被分配给 ${action}',
|
||
'settings.shortcutUpdated' => ({required Object action}) => '快捷键已为 ${action} 更新',
|
||
'settings.autoSkip' => '自动跳过',
|
||
'settings.autoSkipIntro' => '自动跳过片头',
|
||
'settings.autoSkipIntroDescription' => '几秒钟后自动跳过片头标记',
|
||
'settings.autoSkipCredits' => '自动跳过片尾',
|
||
'settings.autoSkipCreditsDescription' => '自动跳过片尾并播放下一集',
|
||
'settings.autoSkipDelay' => '自动跳过延迟',
|
||
'settings.autoSkipDelayDescription' => ({required Object seconds}) => '自动跳过前等待 ${seconds} 秒',
|
||
'settings.downloads' => '下载',
|
||
'settings.downloadLocationDescription' => '选择下载内容的存储位置',
|
||
'settings.downloadLocationDefault' => '默认(应用存储)',
|
||
'settings.downloadLocationCustom' => '自定义位置',
|
||
'settings.selectFolder' => '选择文件夹',
|
||
'settings.resetToDefault' => '重置为默认',
|
||
'settings.currentPath' => ({required Object path}) => '当前: ${path}',
|
||
'settings.downloadLocationChanged' => '下载位置已更改',
|
||
'settings.downloadLocationReset' => '下载位置已重置为默认',
|
||
'settings.downloadLocationInvalid' => '所选文件夹不可写入',
|
||
'settings.downloadLocationSelectError' => '选择文件夹失败',
|
||
'settings.downloadOnWifiOnly' => '仅在 WiFi 时下载',
|
||
'settings.downloadOnWifiOnlyDescription' => '使用蜂窝数据时禁止下载',
|
||
'settings.cellularDownloadBlocked' => '蜂窝数据下已禁用下载。请连接 WiFi 或更改设置。',
|
||
'settings.maxVolume' => '最大音量',
|
||
'settings.maxVolumeDescription' => '允许音量超过 100% 以适应安静的媒体',
|
||
'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%',
|
||
'settings.maxVolumeHint' => '输入最大音量 (100-300)',
|
||
'settings.discordRichPresence' => 'Discord 动态状态',
|
||
'settings.discordRichPresenceDescription' => '在 Discord 上显示您正在观看的内容',
|
||
'settings.matchContentFrameRate' => '匹配内容帧率',
|
||
'settings.matchContentFrameRateDescription' => '调整显示刷新率以匹配视频内容,减少画面抖动并节省电量',
|
||
'search.hint' => '搜索电影、系列、音乐...',
|
||
'search.tryDifferentTerm' => '尝试不同的搜索词',
|
||
'search.searchYourMedia' => '搜索媒体',
|
||
'search.enterTitleActorOrKeyword' => '输入标题、演员或关键词',
|
||
'hotkeys.setShortcutFor' => ({required Object actionName}) => '为 ${actionName} 设置快捷键',
|
||
'hotkeys.clearShortcut' => '清除快捷键',
|
||
'hotkeys.actions.playPause' => '播放/暂停',
|
||
'hotkeys.actions.volumeUp' => '增大音量',
|
||
'hotkeys.actions.volumeDown' => '减小音量',
|
||
'hotkeys.actions.seekForward' => ({required Object seconds}) => '快进 (${seconds}秒)',
|
||
'hotkeys.actions.seekBackward' => ({required Object seconds}) => '快退 (${seconds}秒)',
|
||
'hotkeys.actions.fullscreenToggle' => '切换全屏',
|
||
'hotkeys.actions.muteToggle' => '切换静音',
|
||
'hotkeys.actions.subtitleToggle' => '切换字幕',
|
||
'hotkeys.actions.audioTrackNext' => '下一音轨',
|
||
'hotkeys.actions.subtitleTrackNext' => '下一字幕轨',
|
||
'hotkeys.actions.chapterNext' => '下一章节',
|
||
'hotkeys.actions.chapterPrevious' => '上一章节',
|
||
'hotkeys.actions.speedIncrease' => '加速',
|
||
'hotkeys.actions.speedDecrease' => '减速',
|
||
'hotkeys.actions.speedReset' => '重置速度',
|
||
'hotkeys.actions.subSeekNext' => '跳转到下一字幕',
|
||
'hotkeys.actions.subSeekPrev' => '跳转到上一字幕',
|
||
'hotkeys.actions.shaderToggle' => '切换着色器',
|
||
'pinEntry.enterPin' => '输入 PIN',
|
||
'pinEntry.showPin' => '显示 PIN',
|
||
'pinEntry.hidePin' => '隐藏 PIN',
|
||
'fileInfo.title' => '文件信息',
|
||
'fileInfo.video' => '视频',
|
||
'fileInfo.audio' => '音频',
|
||
'fileInfo.file' => '文件',
|
||
'fileInfo.advanced' => '高级',
|
||
'fileInfo.codec' => '编解码器',
|
||
'fileInfo.resolution' => '分辨率',
|
||
'fileInfo.bitrate' => '比特率',
|
||
'fileInfo.frameRate' => '帧率',
|
||
'fileInfo.aspectRatio' => '宽高比',
|
||
'fileInfo.profile' => '配置文件',
|
||
'fileInfo.bitDepth' => '位深度',
|
||
'fileInfo.colorSpace' => '色彩空间',
|
||
'fileInfo.colorRange' => '色彩范围',
|
||
'fileInfo.colorPrimaries' => '颜色原色',
|
||
'fileInfo.chromaSubsampling' => '色度子采样',
|
||
'fileInfo.channels' => '声道',
|
||
'fileInfo.path' => '路径',
|
||
'fileInfo.size' => '大小',
|
||
'fileInfo.container' => '容器',
|
||
'fileInfo.duration' => '时长',
|
||
'fileInfo.optimizedForStreaming' => '已优化用于流媒体',
|
||
'fileInfo.has64bitOffsets' => '64位偏移量',
|
||
'mediaMenu.markAsWatched' => '标记为已观看',
|
||
'mediaMenu.markAsUnwatched' => '标记为未观看',
|
||
'mediaMenu.removeFromContinueWatching' => '从继续观看中移除',
|
||
'mediaMenu.goToSeries' => '转到系列',
|
||
'mediaMenu.goToSeason' => '转到季',
|
||
'mediaMenu.shufflePlay' => '随机播放',
|
||
'mediaMenu.fileInfo' => '文件信息',
|
||
'mediaMenu.confirmDelete' => '确定要从文件系统中删除此项吗?',
|
||
'mediaMenu.deleteMultipleWarning' => '可能会删除多个项目。',
|
||
'mediaMenu.mediaDeletedSuccessfully' => '媒体项已成功删除',
|
||
'mediaMenu.mediaFailedToDelete' => '删除媒体项失败',
|
||
'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, 电影',
|
||
'accessibility.mediaCardShow' => ({required Object title}) => '${title}, 电视剧',
|
||
'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}',
|
||
'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}',
|
||
'accessibility.mediaCardWatched' => '已观看',
|
||
'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '已观看 ${percent} 百分比',
|
||
'accessibility.mediaCardUnwatched' => '未观看',
|
||
'accessibility.tapToPlay' => '点击播放',
|
||
'tooltips.shufflePlay' => '随机播放',
|
||
'tooltips.markAsWatched' => '标记为已观看',
|
||
'tooltips.markAsUnwatched' => '标记为未观看',
|
||
'videoControls.audioLabel' => '音频',
|
||
'videoControls.subtitlesLabel' => '字幕',
|
||
'videoControls.resetToZero' => '重置为 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} 播放较晚',
|
||
'videoControls.playsEarlier' => ({required Object label}) => '${label} 播放较早',
|
||
'videoControls.noOffset' => '无偏移',
|
||
'videoControls.letterbox' => '信箱模式(Letterbox)',
|
||
'videoControls.fillScreen' => '填充屏幕',
|
||
'videoControls.stretch' => '拉伸',
|
||
'videoControls.lockRotation' => '锁定旋转',
|
||
'videoControls.unlockRotation' => '解锁旋转',
|
||
'videoControls.sleepTimer' => '睡眠定时器',
|
||
'videoControls.timerActive' => '定时器已激活',
|
||
'videoControls.playbackWillPauseIn' => ({required Object duration}) => '播放将在 ${duration} 后暂停',
|
||
'videoControls.sleepTimerCompleted' => '睡眠定时器已完成 - 播放已暂停',
|
||
'videoControls.autoPlayNext' => '自动播放下一集',
|
||
'videoControls.playNext' => '播放下一集',
|
||
'videoControls.playButton' => '播放',
|
||
'videoControls.pauseButton' => '暂停',
|
||
'videoControls.seekBackwardButton' => ({required Object seconds}) => '后退 ${seconds} 秒',
|
||
'videoControls.seekForwardButton' => ({required Object seconds}) => '前进 ${seconds} 秒',
|
||
'videoControls.previousButton' => '上一集',
|
||
'videoControls.nextButton' => '下一集',
|
||
'videoControls.previousChapterButton' => '上一章节',
|
||
'videoControls.nextChapterButton' => '下一章节',
|
||
'videoControls.muteButton' => '静音',
|
||
'videoControls.unmuteButton' => '取消静音',
|
||
'videoControls.settingsButton' => '视频设置',
|
||
'videoControls.audioTrackButton' => '音轨',
|
||
'videoControls.subtitlesButton' => '字幕',
|
||
'videoControls.chaptersButton' => '章节',
|
||
'videoControls.versionsButton' => '视频版本',
|
||
'videoControls.pipButton' => '画中画模式',
|
||
'videoControls.aspectRatioButton' => '宽高比',
|
||
'videoControls.fullscreenButton' => '进入全屏',
|
||
'videoControls.exitFullscreenButton' => '退出全屏',
|
||
'videoControls.alwaysOnTopButton' => '置顶窗口',
|
||
'videoControls.rotationLockButton' => '旋转锁定',
|
||
'videoControls.timelineSlider' => '视频时间轴',
|
||
'videoControls.volumeSlider' => '音量调节',
|
||
'videoControls.endsAt' => ({required Object time}) => '${time} 结束',
|
||
'videoControls.backButton' => '返回',
|
||
'videoControls.pipFailed' => '画中画启动失败',
|
||
'videoControls.pipErrors.androidVersion' => '需要 Android 8.0 或更高版本',
|
||
'videoControls.pipErrors.permissionDisabled' => '画中画权限已禁用。请在设置 > 应用 > Plezy > 画中画中启用',
|
||
'videoControls.pipErrors.notSupported' => '此设备不支持画中画模式',
|
||
'videoControls.pipErrors.failed' => '画中画启动失败',
|
||
'videoControls.pipErrors.unknown' => ({required Object error}) => '发生错误:${error}',
|
||
'userStatus.admin' => '管理员',
|
||
'userStatus.restricted' => '受限',
|
||
'userStatus.protected' => '受保护',
|
||
'userStatus.current' => '当前',
|
||
'messages.markedAsWatched' => '已标记为已观看',
|
||
'messages.markedAsUnwatched' => '已标记为未观看',
|
||
'messages.markedAsWatchedOffline' => '已标记为已观看 (将在联网时同步)',
|
||
'messages.markedAsUnwatchedOffline' => '已标记为未观看 (将在联网时同步)',
|
||
'messages.removedFromContinueWatching' => '已从继续观看中移除',
|
||
'messages.errorLoading' => ({required Object error}) => '错误: ${error}',
|
||
'messages.fileInfoNotAvailable' => '文件信息不可用',
|
||
'messages.errorLoadingFileInfo' => ({required Object error}) => '加载文件信息时出错: ${error}',
|
||
'messages.errorLoadingSeries' => '加载系列时出错',
|
||
'messages.errorLoadingSeason' => '加载季时出错',
|
||
'messages.musicNotSupported' => '尚不支持播放音乐',
|
||
'messages.logsCleared' => '日志已清除',
|
||
'messages.logsCopied' => '日志已复制到剪贴板',
|
||
'messages.noLogsAvailable' => '没有可用日志',
|
||
'messages.libraryScanning' => ({required Object title}) => '正在扫描 “${title}”...',
|
||
'messages.libraryScanStarted' => ({required Object title}) => '已开始扫描 “${title}” 媒体库',
|
||
'messages.libraryScanFailed' => ({required Object error}) => '无法扫描媒体库: ${error}',
|
||
'messages.metadataRefreshing' => ({required Object title}) => '正在刷新 “${title}” 的元数据...',
|
||
'messages.metadataRefreshStarted' => ({required Object title}) => '已开始刷新 “${title}” 的元数据',
|
||
'messages.metadataRefreshFailed' => ({required Object error}) => '无法刷新元数据: ${error}',
|
||
'messages.logoutConfirm' => '你确定要登出吗?',
|
||
'messages.noSeasonsFound' => '未找到季',
|
||
'messages.noEpisodesFound' => '在第一季中未找到剧集',
|
||
'messages.noEpisodesFoundGeneral' => '未找到剧集',
|
||
'messages.noResultsFound' => '未找到结果',
|
||
'messages.sleepTimerSet' => ({required Object label}) => '睡眠定时器已设置为 ${label}',
|
||
'messages.noItemsAvailable' => '没有可用的项目',
|
||
'messages.failedToCreatePlayQueue' => '创建播放队列失败',
|
||
'messages.failedToCreatePlayQueueNoItems' => '创建播放队列失败 - 没有项目',
|
||
'messages.failedPlayback' => ({required Object action, required Object error}) => '无法${action}: ${error}',
|
||
'messages.switchingToCompatiblePlayer' => '正在切换到兼容的播放器...',
|
||
'subtitlingStyling.stylingOptions' => '样式选项',
|
||
'subtitlingStyling.fontSize' => '字号',
|
||
'subtitlingStyling.textColor' => '文本颜色',
|
||
'subtitlingStyling.borderSize' => '边框大小',
|
||
'subtitlingStyling.borderColor' => '边框颜色',
|
||
'subtitlingStyling.backgroundOpacity' => '背景不透明度',
|
||
'subtitlingStyling.backgroundColor' => '背景颜色',
|
||
'mpvConfig.title' => 'MPV 配置',
|
||
'mpvConfig.description' => '高级视频播放器设置',
|
||
'mpvConfig.properties' => '属性',
|
||
'mpvConfig.presets' => '预设',
|
||
'mpvConfig.noProperties' => '未配置任何属性',
|
||
'mpvConfig.noPresets' => '没有保存的预设',
|
||
'mpvConfig.addProperty' => '添加属性',
|
||
'mpvConfig.editProperty' => '编辑属性',
|
||
'mpvConfig.deleteProperty' => '删除属性',
|
||
'mpvConfig.propertyKey' => '属性键',
|
||
'mpvConfig.propertyKeyHint' => '例如 hwdec, demuxer-max-bytes',
|
||
'mpvConfig.propertyValue' => '属性值',
|
||
'mpvConfig.propertyValueHint' => '例如 auto, 256000000',
|
||
'mpvConfig.saveAsPreset' => '保存为预设...',
|
||
'mpvConfig.presetName' => '预设名称',
|
||
'mpvConfig.presetNameHint' => '输入此预设的名称',
|
||
'mpvConfig.loadPreset' => '加载',
|
||
'mpvConfig.deletePreset' => '删除',
|
||
'mpvConfig.presetSaved' => '预设已保存',
|
||
'mpvConfig.presetLoaded' => '预设已加载',
|
||
'mpvConfig.presetDeleted' => '预设已删除',
|
||
'mpvConfig.confirmDeletePreset' => '确定要删除此预设吗?',
|
||
'mpvConfig.confirmDeleteProperty' => '确定要删除此属性吗?',
|
||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} 条目',
|
||
'dialog.confirmAction' => '确认操作',
|
||
'dialog.cancel' => '取消',
|
||
'dialog.playNow' => '立即播放',
|
||
'discover.title' => '发现',
|
||
'discover.switchProfile' => '切换用户',
|
||
'discover.switchServer' => '切换服务器',
|
||
'discover.logout' => '登出',
|
||
'discover.noContentAvailable' => '没有可用内容',
|
||
'discover.addMediaToLibraries' => '请向你的媒体库添加一些媒体',
|
||
'discover.continueWatching' => '继续观看',
|
||
'discover.play' => '播放',
|
||
'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}',
|
||
'discover.pause' => '暂停',
|
||
'discover.overview' => '概述',
|
||
'discover.cast' => '演员表',
|
||
'discover.seasons' => '季数',
|
||
'discover.studio' => '制作公司',
|
||
'discover.rating' => '年龄分级',
|
||
'discover.watched' => '已观看',
|
||
'discover.episodeCount' => ({required Object count}) => '${count} 集',
|
||
'discover.watchedProgress' => ({required Object watched, required Object total}) => '已观看 ${watched}/${total} 集',
|
||
'discover.movie' => '电影',
|
||
'discover.tvShow' => '电视剧',
|
||
'discover.minutesLeft' => ({required Object minutes}) => '剩余 ${minutes} 分钟',
|
||
'errors.searchFailed' => ({required Object error}) => '搜索失败: ${error}',
|
||
'errors.connectionTimeout' => ({required Object context}) => '加载 ${context} 时连接超时',
|
||
'errors.connectionFailed' => '无法连接到 Plex 服务器',
|
||
'errors.failedToLoad' => ({required Object context, required Object error}) => '无法加载 ${context}: ${error}',
|
||
'errors.noClientAvailable' => '没有可用客户端',
|
||
'errors.authenticationFailed' => ({required Object error}) => '验证失败: ${error}',
|
||
'errors.couldNotLaunchUrl' => '无法打开授权 URL',
|
||
'errors.pleaseEnterToken' => '请输入一个令牌',
|
||
'errors.invalidToken' => '令牌无效',
|
||
'errors.failedToVerifyToken' => ({required Object error}) => '无法验证令牌: ${error}',
|
||
'errors.failedToSwitchProfile' => ({required Object displayName}) => '无法切换到 ${displayName}',
|
||
'libraries.title' => '媒体库',
|
||
'libraries.scanLibraryFiles' => '扫描媒体库文件',
|
||
'libraries.scanLibrary' => '扫描媒体库',
|
||
'libraries.analyze' => '分析',
|
||
'libraries.analyzeLibrary' => '分析媒体库',
|
||
'libraries.refreshMetadata' => '刷新元数据',
|
||
'libraries.emptyTrash' => '清空回收站',
|
||
'libraries.emptyingTrash' => ({required Object title}) => '正在清空 “${title}” 的回收站...',
|
||
'libraries.trashEmptied' => ({required Object title}) => '已清空 “${title}” 的回收站',
|
||
'libraries.failedToEmptyTrash' => ({required Object error}) => '无法清空回收站: ${error}',
|
||
'libraries.analyzing' => ({required Object title}) => '正在分析 “${title}”...',
|
||
'libraries.analysisStarted' => ({required Object title}) => '已开始分析 “${title}”',
|
||
'libraries.failedToAnalyze' => ({required Object error}) => '无法分析媒体库: ${error}',
|
||
'libraries.noLibrariesFound' => '未找到媒体库',
|
||
'libraries.thisLibraryIsEmpty' => '此媒体库为空',
|
||
'libraries.all' => '全部',
|
||
'libraries.clearAll' => '全部清除',
|
||
'libraries.scanLibraryConfirm' => ({required Object title}) => '确定要扫描 “${title}” 吗?',
|
||
'libraries.analyzeLibraryConfirm' => ({required Object title}) => '确定要分析 “${title}” 吗?',
|
||
'libraries.refreshMetadataConfirm' => ({required Object title}) => '确定要刷新 “${title}” 的元数据吗?',
|
||
'libraries.emptyTrashConfirm' => ({required Object title}) => '确定要清空 “${title}” 的回收站吗?',
|
||
'libraries.manageLibraries' => '管理媒体库',
|
||
'libraries.sort' => '排序',
|
||
'libraries.sortBy' => '排序依据',
|
||
'libraries.filters' => '筛选器',
|
||
'libraries.confirmActionMessage' => '确定要执行此操作吗?',
|
||
'libraries.showLibrary' => '显示媒体库',
|
||
'libraries.hideLibrary' => '隐藏媒体库',
|
||
'libraries.libraryOptions' => '媒体库选项',
|
||
'libraries.content' => '媒体库内容',
|
||
'libraries.selectLibrary' => '选择媒体库',
|
||
'libraries.filtersWithCount' => ({required Object count}) => '筛选器(${count})',
|
||
'libraries.noRecommendations' => '暂无推荐',
|
||
'libraries.noCollections' => '此媒体库中没有合集',
|
||
'libraries.noFoldersFound' => '未找到文件夹',
|
||
'libraries.folders' => '文件夹',
|
||
'libraries.tabs.recommended' => '推荐',
|
||
'libraries.tabs.browse' => '浏览',
|
||
'libraries.tabs.collections' => '合集',
|
||
'libraries.tabs.playlists' => '播放列表',
|
||
'libraries.groupings.all' => '全部',
|
||
'libraries.groupings.movies' => '电影',
|
||
'libraries.groupings.shows' => '剧集',
|
||
'libraries.groupings.seasons' => '季',
|
||
'libraries.groupings.episodes' => '集',
|
||
'libraries.groupings.folders' => '文件夹',
|
||
'about.title' => '关于',
|
||
'about.openSourceLicenses' => '开源许可证',
|
||
'about.versionLabel' => ({required Object version}) => '版本 ${version}',
|
||
'about.appDescription' => '一款精美的 Flutter Plex 客户端',
|
||
'about.viewLicensesDescription' => '查看第三方库的许可证',
|
||
'serverSelection.allServerConnectionsFailed' => '无法连接到任何服务器。请检查你的网络并重试。',
|
||
'serverSelection.noServersFound' => '未找到服务器',
|
||
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '未找到 ${username} (${email}) 的服务器',
|
||
'serverSelection.failedToLoadServers' => ({required Object error}) => '无法加载服务器: ${error}',
|
||
'hubDetail.title' => '标题',
|
||
'hubDetail.releaseYear' => '发行年份',
|
||
'hubDetail.dateAdded' => '添加日期',
|
||
'hubDetail.rating' => '评分',
|
||
'hubDetail.noItemsFound' => '未找到项目',
|
||
'logs.clearLogs' => '清除日志',
|
||
'logs.copyLogs' => '复制日志',
|
||
'logs.error' => '错误:',
|
||
'logs.stackTrace' => '堆栈跟踪 (Stack Trace):',
|
||
'licenses.relatedPackages' => '相关软件包',
|
||
'licenses.license' => '许可证',
|
||
'licenses.licenseNumber' => ({required Object number}) => '许可证 ${number}',
|
||
'licenses.licensesCount' => ({required Object count}) => '${count} 个许可证',
|
||
'navigation.home' => '主页',
|
||
'navigation.search' => '搜索',
|
||
'navigation.libraries' => '媒体库',
|
||
'navigation.settings' => '设置',
|
||
'navigation.downloads' => '下载',
|
||
'downloads.title' => '下载',
|
||
'downloads.manage' => '管理',
|
||
'downloads.tvShows' => '电视剧',
|
||
'downloads.movies' => '电影',
|
||
'downloads.noDownloads' => '暂无下载',
|
||
'downloads.noDownloadsDescription' => '下载的内容将在此处显示以供离线观看',
|
||
'downloads.downloadNow' => '下载',
|
||
'downloads.deleteDownload' => '删除下载',
|
||
'downloads.retryDownload' => '重试下载',
|
||
'downloads.downloadQueued' => '下载已排队',
|
||
'downloads.episodesQueued' => ({required Object count}) => '${count} 集已加入下载队列',
|
||
'downloads.downloadDeleted' => '下载已删除',
|
||
'downloads.deleteConfirm' => ({required Object title}) => '确定要删除 "${title}" 吗?下载的文件将从您的设备中删除。',
|
||
'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})',
|
||
'playlists.title' => '播放列表',
|
||
'playlists.noPlaylists' => '未找到播放列表',
|
||
'playlists.create' => '创建播放列表',
|
||
'playlists.playlistName' => '播放列表名称',
|
||
'playlists.enterPlaylistName' => '输入播放列表名称',
|
||
'playlists.delete' => '删除播放列表',
|
||
'playlists.removeItem' => '从播放列表中移除',
|
||
'playlists.smartPlaylist' => '智能播放列表',
|
||
'playlists.itemCount' => ({required Object count}) => '${count} 个项目',
|
||
'playlists.oneItem' => '1 个项目',
|
||
'playlists.emptyPlaylist' => '此播放列表为空',
|
||
'playlists.deleteConfirm' => '删除播放列表?',
|
||
'playlists.deleteMessage' => ({required Object name}) => '确定要删除 "${name}" 吗?',
|
||
'playlists.created' => '播放列表已创建',
|
||
'playlists.deleted' => '播放列表已删除',
|
||
'playlists.itemAdded' => '已添加到播放列表',
|
||
'playlists.itemRemoved' => '已从播放列表中移除',
|
||
'playlists.selectPlaylist' => '选择播放列表',
|
||
'playlists.createNewPlaylist' => '创建新播放列表',
|
||
'playlists.errorCreating' => '创建播放列表失败',
|
||
'playlists.errorDeleting' => '删除播放列表失败',
|
||
'playlists.errorLoading' => '加载播放列表失败',
|
||
'playlists.errorAdding' => '添加到播放列表失败',
|
||
'playlists.errorReordering' => '重新排序播放列表项目失败',
|
||
'playlists.errorRemoving' => '从播放列表中移除失败',
|
||
'playlists.playlist' => '播放列表',
|
||
'collections.title' => '合集',
|
||
'collections.collection' => '合集',
|
||
'collections.empty' => '合集为空',
|
||
'collections.unknownLibrarySection' => '无法删除:未知的媒体库分区',
|
||
'collections.deleteCollection' => '删除合集',
|
||
'collections.deleteConfirm' => ({required Object title}) => '确定要删除"${title}"吗?此操作无法撤销。',
|
||
'collections.deleted' => '已删除合集',
|
||
'collections.deleteFailed' => '删除合集失败',
|
||
'collections.deleteFailedWithError' => ({required Object error}) => '删除合集失败:${error}',
|
||
_ => null,
|
||
} ?? switch (path) {
|
||
'collections.failedToLoadItems' => ({required Object error}) => '加载合集项目失败:${error}',
|
||
'collections.selectCollection' => '选择合集',
|
||
'collections.createNewCollection' => '创建新合集',
|
||
'collections.collectionName' => '合集名称',
|
||
'collections.enterCollectionName' => '输入合集名称',
|
||
'collections.addedToCollection' => '已添加到合集',
|
||
'collections.errorAddingToCollection' => '添加到合集失败',
|
||
'collections.created' => '已创建合集',
|
||
'collections.removeFromCollection' => '从合集移除',
|
||
'collections.removeFromCollectionConfirm' => ({required Object title}) => '将“${title}”从此合集移除?',
|
||
'collections.removedFromCollection' => '已从合集移除',
|
||
'collections.removeFromCollectionFailed' => '从合集移除失败',
|
||
'collections.removeFromCollectionError' => ({required Object error}) => '从合集移除时出错:${error}',
|
||
'watchTogether.title' => '一起看',
|
||
'watchTogether.description' => '与朋友和家人同步观看内容',
|
||
'watchTogether.createSession' => '创建会话',
|
||
'watchTogether.creating' => '创建中...',
|
||
'watchTogether.joinSession' => '加入会话',
|
||
'watchTogether.joining' => '加入中...',
|
||
'watchTogether.controlMode' => '控制模式',
|
||
'watchTogether.controlModeQuestion' => '谁可以控制播放?',
|
||
'watchTogether.hostOnly' => '仅主持人',
|
||
'watchTogether.anyone' => '任何人',
|
||
'watchTogether.hostingSession' => '主持会话',
|
||
'watchTogether.inSession' => '在会话中',
|
||
'watchTogether.sessionCode' => '会话代码',
|
||
'watchTogether.hostControlsPlayback' => '主持人控制播放',
|
||
'watchTogether.anyoneCanControl' => '任何人都可以控制播放',
|
||
'watchTogether.hostControls' => '主持人控制',
|
||
'watchTogether.anyoneControls' => '任何人控制',
|
||
'watchTogether.participants' => '参与者',
|
||
'watchTogether.host' => '主持人',
|
||
'watchTogether.hostBadge' => '主持人',
|
||
'watchTogether.youAreHost' => '你是主持人',
|
||
'watchTogether.watchingWithOthers' => '与他人一起观看',
|
||
'watchTogether.endSession' => '结束会话',
|
||
'watchTogether.leaveSession' => '离开会话',
|
||
'watchTogether.endSessionQuestion' => '结束会话?',
|
||
'watchTogether.leaveSessionQuestion' => '离开会话?',
|
||
'watchTogether.endSessionConfirm' => '这将为所有参与者结束会话。',
|
||
'watchTogether.leaveSessionConfirm' => '你将被移出会话。',
|
||
'watchTogether.endSessionConfirmOverlay' => '这将为所有参与者结束观看会话。',
|
||
'watchTogether.leaveSessionConfirmOverlay' => '你将断开与观看会话的连接。',
|
||
'watchTogether.end' => '结束',
|
||
'watchTogether.leave' => '离开',
|
||
'watchTogether.syncing' => '同步中...',
|
||
'watchTogether.participant' => '参与者',
|
||
'watchTogether.joinWatchSession' => '加入观看会话',
|
||
'watchTogether.enterCodeHint' => '输入8位代码',
|
||
'watchTogether.pasteFromClipboard' => '从剪贴板粘贴',
|
||
'watchTogether.pleaseEnterCode' => '请输入会话代码',
|
||
'watchTogether.codeMustBe8Chars' => '会话代码必须是8个字符',
|
||
'watchTogether.joinInstructions' => '输入主持人分享的会话代码以加入他们的观看会话。',
|
||
'watchTogether.failedToCreate' => '创建会话失败',
|
||
'watchTogether.failedToJoin' => '加入会话失败',
|
||
'watchTogether.sessionCodeCopied' => '会话代码已复制到剪贴板',
|
||
'shaders.title' => '着色器',
|
||
'shaders.noShaderDescription' => '无视频增强',
|
||
'shaders.nvscalerDescription' => 'NVIDIA 图像缩放,使视频更清晰',
|
||
'shaders.qualityFast' => '快速',
|
||
'shaders.qualityHQ' => '高质量',
|
||
'shaders.mode' => '模式',
|
||
'shaders.presetChanged' => '着色器预设已更改',
|
||
'shaders.hdrDetected' => '检测到 HDR - 已跳过着色器',
|
||
'shaders.mpvOnly' => '着色器仅在使用 MPV 播放器时可用',
|
||
_ => null,
|
||
};
|
||
}
|
||
}
|