Fix multi-device EQ auto-switching by calling obtenerDispositivoActual() during cargarPersistido() to seed the initial device ID. Add device management modal with rename support, EQ preset editing, and connection status indicator. Translate device UI keys to all 13 locales.
1231 lines
28 KiB
Dart
1231 lines
28 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Chinese (`zh`).
|
|
class AppLocalizationsZh extends AppLocalizations {
|
|
AppLocalizationsZh([String locale = 'zh']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'PluriWave';
|
|
|
|
@override
|
|
String get navHome => '首页';
|
|
|
|
@override
|
|
String get navSearch => '搜索';
|
|
|
|
@override
|
|
String get navFavorites => '收藏';
|
|
|
|
@override
|
|
String get navAlarms => '闹钟';
|
|
|
|
@override
|
|
String get navSettings => '设置';
|
|
|
|
@override
|
|
String get actionOk => '确定';
|
|
|
|
@override
|
|
String get sleepTimer => '睡眠定时器';
|
|
|
|
@override
|
|
String get sleepTimerDescription => '通过精准倒计时平滑关闭电台。';
|
|
|
|
@override
|
|
String get cancelTimer => '取消定时器';
|
|
|
|
@override
|
|
String get optionOther => '其他';
|
|
|
|
@override
|
|
String get customDurationTitle => '自定义时长';
|
|
|
|
@override
|
|
String get durationGreaterThanZero => '请选择大于零的时长。';
|
|
|
|
@override
|
|
String get hoursLabel => '小时';
|
|
|
|
@override
|
|
String get minutesLabel => '分钟';
|
|
|
|
@override
|
|
String get secondsLabel => '秒';
|
|
|
|
@override
|
|
String durationHoursMinutesSeconds(
|
|
Object hours,
|
|
Object minutes,
|
|
Object seconds,
|
|
) {
|
|
return '$hours ?? $minutes ? $seconds ?';
|
|
}
|
|
|
|
@override
|
|
String durationMinutesSeconds(Object minutes, Object seconds) {
|
|
return '$minutes ? $seconds ?';
|
|
}
|
|
|
|
@override
|
|
String durationMinutesOnly(Object minutes) {
|
|
return '$minutes ?';
|
|
}
|
|
|
|
@override
|
|
String durationSecondsOnly(Object seconds) {
|
|
return '$seconds ?';
|
|
}
|
|
|
|
@override
|
|
String get saveQuickAccess => '保存为快捷入口';
|
|
|
|
@override
|
|
String get startTimer => '启动定时器';
|
|
|
|
@override
|
|
String skipCurrentAlarmExecution(Object alarmName) {
|
|
return '已跳过 $alarmName 本次执行。';
|
|
}
|
|
|
|
@override
|
|
String get settingsTitle => '设置';
|
|
|
|
@override
|
|
String get settingsSubtitle => '精细控制声音、备份和自定义电台。';
|
|
|
|
@override
|
|
String get languageSectionTitle => '语言';
|
|
|
|
@override
|
|
String get languageSectionDescription => '选择应用语言的显示方式。';
|
|
|
|
@override
|
|
String get languageSystemDefault => '系统';
|
|
|
|
@override
|
|
String get languageSpanish => '西班牙语';
|
|
|
|
@override
|
|
String get languageEnglish => '英语';
|
|
|
|
@override
|
|
String languageUpdated(Object languageName) {
|
|
return '语言已更新:$languageName';
|
|
}
|
|
|
|
@override
|
|
String get languageUpdatedSystem => '语言已更新:系统';
|
|
|
|
@override
|
|
String get timerSectionTitle => '睡眠定时器';
|
|
|
|
@override
|
|
String get timerSectionAdd => '添加';
|
|
|
|
@override
|
|
String get timerSectionDescription => '自定义自动关闭电台时显示的快捷预设。';
|
|
|
|
@override
|
|
String get timerSectionRestoreRecommended => '恢复推荐时长';
|
|
|
|
@override
|
|
String get newQuickAccessTitle => '新的快捷入口';
|
|
|
|
@override
|
|
String get saveQuickAccessButton => '保存快捷入口';
|
|
|
|
@override
|
|
String get settingsSafeStatus => '安全';
|
|
|
|
@override
|
|
String get recordingsSectionTitle => '录音';
|
|
|
|
@override
|
|
String get recordingsFolderDialogTitle => '选择录音文件夹';
|
|
|
|
@override
|
|
String get recordingsPathUpdated => '录音路径已更新';
|
|
|
|
@override
|
|
String recordingsPathSaveError(Object error) {
|
|
return '无法保存路径:$error';
|
|
}
|
|
|
|
@override
|
|
String get recordingsDefaultFolderRestored => '将使用默认内部文件夹';
|
|
|
|
@override
|
|
String get recordingsFolderTitle => '录音文件夹';
|
|
|
|
@override
|
|
String get recordingsPathCalculating => '正在计算路径...';
|
|
|
|
@override
|
|
String get recordingsChangePath => '更改路径';
|
|
|
|
@override
|
|
String get recordingsUseDefaultPath => '使用默认路径';
|
|
|
|
@override
|
|
String get recordingsOriginalStreamHint => '电台将从原始音频流保存,不重新编码。';
|
|
|
|
@override
|
|
String get equalizerActive => '已启用';
|
|
|
|
@override
|
|
String get equalizerDisabled => '已停用';
|
|
|
|
@override
|
|
String get equalizerEnable => '启用均衡器';
|
|
|
|
@override
|
|
String get equalizerRealtimeSubtitle => '更改会实时应用到当前电台。';
|
|
|
|
@override
|
|
String get equalizerPendingSubtitle => '更改已保存,并会在 Android 启用该效果后应用。';
|
|
|
|
@override
|
|
String get equalizerPerStationTitle => '为此收藏使用专属均衡器';
|
|
|
|
@override
|
|
String equalizerPerStationActive(Object stationName) {
|
|
return '已为 $stationName 启用';
|
|
}
|
|
|
|
@override
|
|
String equalizerPerStationMain(Object stationName) {
|
|
return '正在为 $stationName 使用主均衡器';
|
|
}
|
|
|
|
@override
|
|
String get preferredStationTitle => '首选电台';
|
|
|
|
@override
|
|
String get preferredStationDescription => '创建闹钟时会预先选择,也可用于快速播放。';
|
|
|
|
@override
|
|
String get preferredStationNoStationsTitle => '暂时没有可用电台';
|
|
|
|
@override
|
|
String get preferredStationNoStationsSubtitle => '请先收藏或加载电台,再选择首选电台。';
|
|
|
|
@override
|
|
String get preferredStationAutomaticFallback => '自动后备';
|
|
|
|
@override
|
|
String get preferredStationDefaultFavorite => '默认收藏';
|
|
|
|
@override
|
|
String preferredStationCurrent(Object stationName) {
|
|
return '当前首选:$stationName';
|
|
}
|
|
|
|
@override
|
|
String preferredStationAutoUsing(Object stationName) {
|
|
return '没有收藏:自动使用 $stationName';
|
|
}
|
|
|
|
@override
|
|
String get preferredStationPlay => '播放首选电台';
|
|
|
|
@override
|
|
String get customStationsTitle => '自定义电台';
|
|
|
|
@override
|
|
String get customStationsAdd => '添加';
|
|
|
|
@override
|
|
String get customStationsEmpty => '没有自定义电台。';
|
|
|
|
@override
|
|
String get playAction => '播放';
|
|
|
|
@override
|
|
String get deleteAction => '删除';
|
|
|
|
@override
|
|
String get addStationTitle => '添加电台';
|
|
|
|
@override
|
|
String get stationNameLabel => '名称 *';
|
|
|
|
@override
|
|
String get unnamedStation => '未命名电台';
|
|
|
|
@override
|
|
String get requiredField => '必填字段';
|
|
|
|
@override
|
|
String get streamUrlLabel => '音频流 URL *';
|
|
|
|
@override
|
|
String get invalidUrl => 'URL 无效';
|
|
|
|
@override
|
|
String get countryOptionalLabel => '国家/地区(可选)';
|
|
|
|
@override
|
|
String get saveStation => '保存电台';
|
|
|
|
@override
|
|
String get backupSectionTitle => '备份';
|
|
|
|
@override
|
|
String get backupExportTitle => '导出配置';
|
|
|
|
@override
|
|
String get backupExportSubtitle => '收藏、自定义电台和均衡器预设';
|
|
|
|
@override
|
|
String get backupImportTitle => '导入配置';
|
|
|
|
@override
|
|
String get backupImportSubtitle => '从备份文件恢复';
|
|
|
|
@override
|
|
String get backupShareSubject => 'PluriWave — 备份';
|
|
|
|
@override
|
|
String backupShareText(Object date) {
|
|
return 'PluriWave 配置已于 $date 导出';
|
|
}
|
|
|
|
@override
|
|
String backupExportError(Object error) {
|
|
return '导出错误:$error';
|
|
}
|
|
|
|
@override
|
|
String get backupImportConfirmMessage => '这会添加文件中的收藏、电台和预设。要继续吗?';
|
|
|
|
@override
|
|
String get backupImportSuccess => '配置已成功导入';
|
|
|
|
@override
|
|
String backupImportError(Object error) {
|
|
return '导入错误:$error';
|
|
}
|
|
|
|
@override
|
|
String get appVersionLoading => '正在加载版本...';
|
|
|
|
@override
|
|
String appVersionSubtitle(Object version) {
|
|
return '$version - 全球电台';
|
|
}
|
|
|
|
@override
|
|
String get savedFavoritesTitle => '已保存的收藏';
|
|
|
|
@override
|
|
String get stationFilterTitle => '电台筛选';
|
|
|
|
@override
|
|
String get stationFilterSubtitle => '仅显示已验证为活跃的电台';
|
|
|
|
@override
|
|
String get backgroundAudioTitle => '后台音频';
|
|
|
|
@override
|
|
String get backgroundAudioSubtitle => '屏幕关闭后继续播放';
|
|
|
|
@override
|
|
String get dash => '—';
|
|
|
|
@override
|
|
String get cancelAction => '取消';
|
|
|
|
@override
|
|
String get equalizerTitle => '均衡器';
|
|
|
|
@override
|
|
String get recordingsOpenFolder => '打开文件夹';
|
|
|
|
@override
|
|
String recordingsOpenFolderError(Object error) {
|
|
return '无法打开文件夹:$error';
|
|
}
|
|
|
|
@override
|
|
String get recordingsMaxSizeTitle => '最大录音大小';
|
|
|
|
@override
|
|
String recordingsMaxSizeSubtitle(int size) {
|
|
return '当前限制:$size MB';
|
|
}
|
|
|
|
@override
|
|
String get recordingsMaxSizeDialogTitle => '每段录音的最大大小';
|
|
|
|
@override
|
|
String get recordingsMaxSizeMbLabel => '最大兆字节数';
|
|
|
|
@override
|
|
String recordingsMaxSizeSaved(int size) {
|
|
return '录音限制已更新为 $size MB';
|
|
}
|
|
|
|
@override
|
|
String get stationOrderTitle => '电台排序';
|
|
|
|
@override
|
|
String get stationOrderByName => '按名称';
|
|
|
|
@override
|
|
String get stationOrderByQuality => '按质量';
|
|
|
|
@override
|
|
String get stationOrderScopeDescription => '适用于收藏、搜索、附近电台和快捷列表。';
|
|
|
|
@override
|
|
String get favoriteGroupsTitle => '收藏列表';
|
|
|
|
@override
|
|
String get favoriteGroupsDescription => '创建短列表来整理已保存的电台。';
|
|
|
|
@override
|
|
String get favoriteGroupsAdd => '添加列表';
|
|
|
|
@override
|
|
String get favoriteGroupsEdit => '编辑列表';
|
|
|
|
@override
|
|
String get favoriteGroupsDelete => '删除列表';
|
|
|
|
@override
|
|
String get favoriteGroupsNameLabel => '列表名称';
|
|
|
|
@override
|
|
String get favoriteGroupsNameTooLong => '最多 28 个字符。';
|
|
|
|
@override
|
|
String get favoriteGroupsUnassigned => '未分配';
|
|
|
|
@override
|
|
String get favoriteGroupsProtectedHint => '默认列表:不能编辑或删除。';
|
|
|
|
@override
|
|
String get favoriteGroupsCreated => '列表已创建';
|
|
|
|
@override
|
|
String get favoriteGroupsUpdated => '列表已更新';
|
|
|
|
@override
|
|
String get favoriteGroupsDeleted => '列表已删除;其中的电台已回到未分配。';
|
|
|
|
@override
|
|
String get favoriteGroupsAssign => '移动到列表';
|
|
|
|
@override
|
|
String favoriteGroupsAssignSubtitle(Object groupName) {
|
|
return '当前列表:$groupName';
|
|
}
|
|
|
|
@override
|
|
String favoriteGroupsAssigned(Object stationName, Object groupName) {
|
|
return '$stationName 已移动到 $groupName';
|
|
}
|
|
|
|
@override
|
|
String get favoritesTitle => '收藏';
|
|
|
|
@override
|
|
String get favoritesEmptyTitle => '还没有收藏';
|
|
|
|
@override
|
|
String get favoritesEmptySubtitle => '点按任意电台上的爱心,将它保存到你的收藏。';
|
|
|
|
@override
|
|
String get favoritesHeaderSubtitle => '按列表整理你的收藏,把重要电台放在手边。';
|
|
|
|
@override
|
|
String get favoritesCollection => '收藏集';
|
|
|
|
@override
|
|
String favoritesSavedCount(int count) {
|
|
return '已保存 $count 个';
|
|
}
|
|
|
|
@override
|
|
String get favoritesRemoveTooltip => '从收藏中移除';
|
|
|
|
@override
|
|
String favoritesRemovedMessage(Object stationName) {
|
|
return '$stationName 已从收藏中移除';
|
|
}
|
|
|
|
@override
|
|
String get alarmPostponedCurrentExecution => '本次闹钟已推迟。';
|
|
|
|
@override
|
|
String get searchScreenTitle => '搜索信号';
|
|
|
|
@override
|
|
String get searchScreenSubtitle => '按名称、国家/地区或语言查找电台,支持快速筛选和高对比度显示。';
|
|
|
|
@override
|
|
String get searchFiltersLabel => '筛选';
|
|
|
|
@override
|
|
String get searchHint => '地平线电台、爵士、新闻...';
|
|
|
|
@override
|
|
String get searchCountryFilterLabel => '国家/地区';
|
|
|
|
@override
|
|
String get searchLanguageFilterLabel => '语言';
|
|
|
|
@override
|
|
String get searchMinQualityFilterLabel => '最低质量';
|
|
|
|
@override
|
|
String get searchEmptyTitle => '搜索电台';
|
|
|
|
@override
|
|
String get searchNoResultsTitle => '没有结果';
|
|
|
|
@override
|
|
String get searchEmptySubtitle => '使用顶部搜索栏或筛选标签,发现世界各地的电台信号。';
|
|
|
|
@override
|
|
String get searchNoResultsSubtitle => '尝试减少筛选条件,或换个名称搜索,找到正在播出的电台。';
|
|
|
|
@override
|
|
String get countrySpain => '西班牙';
|
|
|
|
@override
|
|
String get countryUsa => '美国';
|
|
|
|
@override
|
|
String get countryMexico => '墨西哥';
|
|
|
|
@override
|
|
String get countryArgentina => '阿根廷';
|
|
|
|
@override
|
|
String get countryUk => '英国';
|
|
|
|
@override
|
|
String get countryFrance => '法国';
|
|
|
|
@override
|
|
String get countryGermany => '德国';
|
|
|
|
@override
|
|
String get countryItaly => '意大利';
|
|
|
|
@override
|
|
String get countryBrazil => '巴西';
|
|
|
|
@override
|
|
String get countryJapan => '日本';
|
|
|
|
@override
|
|
String get languageNameSpanish => '西班牙语';
|
|
|
|
@override
|
|
String get languageNameEnglish => '英语';
|
|
|
|
@override
|
|
String get languageNameFrench => '法语';
|
|
|
|
@override
|
|
String get languageNameGerman => '德语';
|
|
|
|
@override
|
|
String get languageNamePortuguese => '葡萄牙语';
|
|
|
|
@override
|
|
String get languageNameItalian => '意大利语';
|
|
|
|
@override
|
|
String get languageNameJapanese => '日语';
|
|
|
|
@override
|
|
String get languageNameArabic => '阿拉伯语';
|
|
|
|
@override
|
|
String get languageNameRussian => '俄语';
|
|
|
|
@override
|
|
String get homeScreenSubtitle => '全球直播电台,清晰信号、智能收藏和竞赛风格的视觉体验。';
|
|
|
|
@override
|
|
String get exploreStations => '探索电台';
|
|
|
|
@override
|
|
String stationsCount(int count) {
|
|
return '$count 个电台';
|
|
}
|
|
|
|
@override
|
|
String get qualityHd => '高清音质';
|
|
|
|
@override
|
|
String get nearYou => '你附近';
|
|
|
|
@override
|
|
String nearYouInCountry(Object country) {
|
|
return '你附近 · $country';
|
|
}
|
|
|
|
@override
|
|
String get detectAction => '检测';
|
|
|
|
@override
|
|
String get liveRadar => '直播雷达';
|
|
|
|
@override
|
|
String get genresTitle => '类型';
|
|
|
|
@override
|
|
String get retryAction => '重试';
|
|
|
|
@override
|
|
String get noStationsAvailable => '没有可用电台';
|
|
|
|
@override
|
|
String get noStationsAvailableSubtitle => '尝试刷新或选择其他类型,重新捕捉信号。';
|
|
|
|
@override
|
|
String get genrePop => '流行';
|
|
|
|
@override
|
|
String get genreRock => '摇滚';
|
|
|
|
@override
|
|
String get genreJazz => '爵士';
|
|
|
|
@override
|
|
String get genreClassical => '古典';
|
|
|
|
@override
|
|
String get genreElectronic => '电子';
|
|
|
|
@override
|
|
String get genreNews => '新闻';
|
|
|
|
@override
|
|
String get genreTalk => '谈话';
|
|
|
|
@override
|
|
String get genreHipHop => '嘻哈';
|
|
|
|
@override
|
|
String get genreCountry => '乡村';
|
|
|
|
@override
|
|
String get genreMetal => '金属';
|
|
|
|
@override
|
|
String get genreReggae => '雷鬼';
|
|
|
|
@override
|
|
String get genreLatin => '拉丁';
|
|
|
|
@override
|
|
String get alarmScreenTitle => '音乐唤醒';
|
|
|
|
@override
|
|
String get alarmScreenSubtitle => '带电台、安全声音、智能假期和始终可见下次执行时间的闹钟。';
|
|
|
|
@override
|
|
String get createAlarmAction => '创建闹钟';
|
|
|
|
@override
|
|
String alarmsCount(int count) {
|
|
return '$count 个闹钟';
|
|
}
|
|
|
|
@override
|
|
String get activeAlarmsWithoutNextTitle => '没有下次执行时间的活跃闹钟';
|
|
|
|
@override
|
|
String get noActiveAlarms => '没有活跃闹钟';
|
|
|
|
@override
|
|
String get nextAlarmTitle => '下一个闹钟';
|
|
|
|
@override
|
|
String activeAlarmsWithoutNextSubtitle(int count) {
|
|
return '有 $count 个活跃闹钟,但现在没有有效的未来日期。请检查日期、星期和假期。';
|
|
}
|
|
|
|
@override
|
|
String get createAlarmHint => '创建闹钟后,PluriWave 会自动计算下次执行时间。';
|
|
|
|
@override
|
|
String get alarmVacationPlay => '假期时响铃';
|
|
|
|
@override
|
|
String get alarmVacationPause => '假期时暂停';
|
|
|
|
@override
|
|
String alarmFadeInLabel(int seconds) {
|
|
return '渐入 ${seconds}s';
|
|
}
|
|
|
|
@override
|
|
String alarmNextExecution(Object date) {
|
|
return '下次执行:$date';
|
|
}
|
|
|
|
@override
|
|
String get alarmNoNextExecution => '没有活跃的下次执行。';
|
|
|
|
@override
|
|
String alarmSkippedExecution(Object date) {
|
|
return '已跳过一次执行:$date。';
|
|
}
|
|
|
|
@override
|
|
String get editAction => '编辑';
|
|
|
|
@override
|
|
String get skipNextAction => '跳过下一个';
|
|
|
|
@override
|
|
String get deleteTooltip => '删除';
|
|
|
|
@override
|
|
String get alarmSkippedNoNextSnackbar => '已跳过闹钟。没有剩余的下次执行。';
|
|
|
|
@override
|
|
String alarmSkippedReturnsSnackbar(Object date) {
|
|
return '已跳过闹钟。将于 $date 恢复。';
|
|
}
|
|
|
|
@override
|
|
String alarmVacationPausedNoNext(Object vacationName) {
|
|
return '因假期($vacationName)暂停,且没有下次执行。';
|
|
}
|
|
|
|
@override
|
|
String alarmVacationPausedReturns(Object vacationName, Object date) {
|
|
return '因假期($vacationName)暂停,将于 $date 恢复。';
|
|
}
|
|
|
|
@override
|
|
String alarmVacationReturns(Object date) {
|
|
return '假期启用时,将于 $date 再次响铃。';
|
|
}
|
|
|
|
@override
|
|
String get defaultAlarmName => '音乐闹钟';
|
|
|
|
@override
|
|
String get newAlarmTitle => '新闹钟';
|
|
|
|
@override
|
|
String get editAlarmTitle => '编辑闹钟';
|
|
|
|
@override
|
|
String get nameField => '名称';
|
|
|
|
@override
|
|
String get timeField => '时间';
|
|
|
|
@override
|
|
String get dateField => '日期';
|
|
|
|
@override
|
|
String get onceOption => '一次';
|
|
|
|
@override
|
|
String get dailyOption => '每天';
|
|
|
|
@override
|
|
String get weekdaysOption => '星期';
|
|
|
|
@override
|
|
String get soundAndVolumeSection => '声音和音量';
|
|
|
|
@override
|
|
String get alarmFadeInTitle => '闹钟渐入';
|
|
|
|
@override
|
|
String get alarmFadeInOff => '0 s(无过渡)';
|
|
|
|
@override
|
|
String alarmFadeInSummary(int seconds) {
|
|
return '$seconds s(从 5% 到所选音量)';
|
|
}
|
|
|
|
@override
|
|
String get internalSafeSoundLabel => '内部安全声音';
|
|
|
|
@override
|
|
String get soundWarmSunrise => '温暖日出';
|
|
|
|
@override
|
|
String get soundSoftBell => '柔和铃声';
|
|
|
|
@override
|
|
String get soundDigitalPulse => '数字脉冲';
|
|
|
|
@override
|
|
String get favoriteStationLabel => '收藏电台';
|
|
|
|
@override
|
|
String get noStationUseInternalSound => '无电台:使用内部声音';
|
|
|
|
@override
|
|
String get alarmFallbackStationLabel => '备用电台';
|
|
|
|
@override
|
|
String get alarmStationPickerSearchHint => '按名称搜索电台';
|
|
|
|
@override
|
|
String get alarmSnoozeDurationTitle => '贪睡时长';
|
|
|
|
@override
|
|
String get snoozeAction => '贪睡';
|
|
|
|
@override
|
|
String alarmSnoozeOptionLabel(int minutes) {
|
|
return '$minutes 分钟';
|
|
}
|
|
|
|
@override
|
|
String get saveFavoritesAlarmHint => '将电台保存到收藏,即可把它们用作音乐闹钟。';
|
|
|
|
@override
|
|
String get useCurrentStationAction => '使用当前电台';
|
|
|
|
@override
|
|
String get playDuringVacations => '假期期间响铃';
|
|
|
|
@override
|
|
String get playDuringVacationsHint => '如果关闭,下次执行会跳到第一个有效日期。';
|
|
|
|
@override
|
|
String get saveAlarmAction => '保存闹钟';
|
|
|
|
@override
|
|
String get chooseOneWeekdayError => '请至少选择一周中的一天。';
|
|
|
|
@override
|
|
String get androidReliabilityReview => '检查 Android 可靠性';
|
|
|
|
@override
|
|
String get statusOk => '正常';
|
|
|
|
@override
|
|
String get statusPending => '待处理';
|
|
|
|
@override
|
|
String androidReliabilityStatus(
|
|
Object exact,
|
|
Object notifications,
|
|
Object screen,
|
|
) {
|
|
return '可靠性:精确闹钟 $exact · 通知 $notifications · 屏幕 $screen';
|
|
}
|
|
|
|
@override
|
|
String get vacationRangesTitle => '假期范围';
|
|
|
|
@override
|
|
String get addAction => '添加';
|
|
|
|
@override
|
|
String get vacationRangesHint => '如果闹钟设置为“假期时暂停”,会自动跳过这些范围。';
|
|
|
|
@override
|
|
String get noVacationRangesLoaded => '未加载范围。';
|
|
|
|
@override
|
|
String get deleteRangeTooltip => '删除范围';
|
|
|
|
@override
|
|
String get vacationsDefaultName => '假期';
|
|
|
|
@override
|
|
String get newVacationRangeTitle => '新的假期范围';
|
|
|
|
@override
|
|
String get startField => '开始';
|
|
|
|
@override
|
|
String get endField => '结束';
|
|
|
|
@override
|
|
String get saveRangeAction => '保存范围';
|
|
|
|
@override
|
|
String get noAlarmsYetTitle => '还没有闹钟。';
|
|
|
|
@override
|
|
String get noAlarmsYetSubtitle => '创建一个,设计你的音乐唤醒。';
|
|
|
|
@override
|
|
String get ringingInternalAudioActive => '正在使用内部安全音频响铃。';
|
|
|
|
@override
|
|
String get ringingPreparingInternalAudio => '正在准备内部安全音频。';
|
|
|
|
@override
|
|
String get stopAlarmAction => '停止闹钟';
|
|
|
|
@override
|
|
String get pauseAction => '暂停';
|
|
|
|
@override
|
|
String miniPlayerOpenLabel(Object stationName) {
|
|
return '打开 $stationName 的播放器';
|
|
}
|
|
|
|
@override
|
|
String get playerIconLabel => '播放器';
|
|
|
|
@override
|
|
String get playbackStatusConnecting => '正在连接...';
|
|
|
|
@override
|
|
String get playbackStatusLive => '直播中';
|
|
|
|
@override
|
|
String get playbackStatusPaused => '已暂停';
|
|
|
|
@override
|
|
String get playbackStatusReconnecting => '正在重新连接...';
|
|
|
|
@override
|
|
String get playbackStatusConnectionError => '连接错误';
|
|
|
|
@override
|
|
String get playbackStatusStopped => '已停止';
|
|
|
|
@override
|
|
String stationSemanticLabel(Object stationName) {
|
|
return '电台 $stationName';
|
|
}
|
|
|
|
@override
|
|
String get favoritesAddTooltip => '添加到收藏';
|
|
|
|
@override
|
|
String favoritesAddedMessage(Object stationName) {
|
|
return '已将 $stationName 添加到收藏';
|
|
}
|
|
|
|
@override
|
|
String get stationIconLabel => '电台图标';
|
|
|
|
@override
|
|
String get liveNow => '直播中';
|
|
|
|
@override
|
|
String equalizerBandLabel(Object band) {
|
|
return '$band 频段';
|
|
}
|
|
|
|
@override
|
|
String equalizerBandValue(Object value) {
|
|
return '$value 分贝';
|
|
}
|
|
|
|
@override
|
|
String get equalizerPresetFlat => '平直';
|
|
|
|
@override
|
|
String get equalizerPresetRock => '摇滚';
|
|
|
|
@override
|
|
String get equalizerPresetPop => '流行';
|
|
|
|
@override
|
|
String get equalizerPresetBassBoost => '低音增强';
|
|
|
|
@override
|
|
String get equalizerPresetJazz => '爵士';
|
|
|
|
@override
|
|
String get equalizerPresetVoice => '人声';
|
|
|
|
@override
|
|
String get equalizerPresetCustom => '自定义';
|
|
|
|
@override
|
|
String get onboardingTitle => '欢迎使用 PluriWave';
|
|
|
|
@override
|
|
String get onboardingNewsTitle => '新功能';
|
|
|
|
@override
|
|
String get onboardingStartAction => '开始';
|
|
|
|
@override
|
|
String get onboardingCloseTooltip => '关闭';
|
|
|
|
@override
|
|
String radioRecordingError(Object error) {
|
|
return '录制电台时出错:$error';
|
|
}
|
|
|
|
@override
|
|
String get radioApiConnectionError => '无法连接到电台 API';
|
|
|
|
@override
|
|
String get radioSearchError => '搜索出错。请检查你的连接。';
|
|
|
|
@override
|
|
String get radioLoadMoreStationsError => '无法加载更多电台。';
|
|
|
|
@override
|
|
String get radioNearbyStationsError => '未能检测到附近的电台。请使用国家/地区筛选器。';
|
|
|
|
@override
|
|
String radioCannotPlayStation(Object stationName) {
|
|
return '无法播放“$stationName”';
|
|
}
|
|
|
|
@override
|
|
String get recordingSelectStationFirst => '请先选择一个电台再录制。';
|
|
|
|
@override
|
|
String recordingStartError(Object error) {
|
|
return '无法开始录制:$error';
|
|
}
|
|
|
|
@override
|
|
String get unsupportedConfigVersion => '不支持的配置版本';
|
|
|
|
@override
|
|
String get audioErrorGeneric => '播放错误';
|
|
|
|
@override
|
|
String get audioErrorNoInternet => '无互联网连接';
|
|
|
|
@override
|
|
String get audioErrorInvalidUrl => '电台 URL 无效';
|
|
|
|
@override
|
|
String get audioErrorNotFound => '该电台不可用(404 错误)';
|
|
|
|
@override
|
|
String get audioErrorTimeout => '连接超时';
|
|
|
|
@override
|
|
String get audioErrorCannotConnect => '无法连接到电台';
|
|
|
|
@override
|
|
String get audioErrorUnsupportedFormat => '不支持的音频流格式';
|
|
|
|
@override
|
|
String get audioErrorDecode => '解码音频流时出错';
|
|
|
|
@override
|
|
String get audioErrorCleartext => '此电台使用未加密的 HTTP,不被允许';
|
|
|
|
@override
|
|
String get audioErrorSsl => '电台的 SSL 证书无效';
|
|
|
|
@override
|
|
String get audioErrorCannotPlay => '无法播放此电台';
|
|
|
|
@override
|
|
String get audioErrorUnexpectedPlayback => '播放时出现意外错误';
|
|
|
|
@override
|
|
String get androidExactAlarmScheduleError => 'Android 无法安排精确闹钟。请检查精确闹钟权限。';
|
|
|
|
@override
|
|
String get recordingPathEmptyError => '录制路径不能为空';
|
|
|
|
@override
|
|
String get recordingMaxSizeInvalidError => '最大大小必须大于零';
|
|
|
|
@override
|
|
String get recordingAlreadyActiveError => '已有录制正在进行';
|
|
|
|
@override
|
|
String get alarmRingingFallbackActive => '正在使用内部安全音频播放。';
|
|
|
|
@override
|
|
String get alarmRingingPreparingFallback => '正在准备内部安全音频。';
|
|
|
|
@override
|
|
String get alarmRingingTryingStation => '正在尝试以最高可用音质播放你的电台。';
|
|
|
|
@override
|
|
String alarmScheduleOnce(Object date) {
|
|
return '一次 · $date';
|
|
}
|
|
|
|
@override
|
|
String alarmScheduleWeekdays(Object days) {
|
|
return '星期:$days';
|
|
}
|
|
|
|
@override
|
|
String get androidReliabilityTitle => '检查 Android 可靠性';
|
|
|
|
@override
|
|
String get closeAction => '关闭';
|
|
|
|
@override
|
|
String get customOption => '自定义';
|
|
|
|
@override
|
|
String get endLabel => '结束';
|
|
|
|
@override
|
|
String get equalizerDisable => '关闭均衡器';
|
|
|
|
@override
|
|
String get helpTitle => '帮助和教程';
|
|
|
|
@override
|
|
String get helpSubtitle => '查看 PluriWave 的功能、技巧和新内容。';
|
|
|
|
@override
|
|
String get indefiniteOption => '不限时';
|
|
|
|
@override
|
|
String get invalidNumber => '数字无效';
|
|
|
|
@override
|
|
String get nameLabel => '名称';
|
|
|
|
@override
|
|
String get notPlaying => '未播放';
|
|
|
|
@override
|
|
String get oneTimeOption => '一次';
|
|
|
|
@override
|
|
String get pausePlaybackTooltip => '暂停播放';
|
|
|
|
@override
|
|
String qualityOriginal(Object quality) {
|
|
return '原始质量:$quality';
|
|
}
|
|
|
|
@override
|
|
String get qualityUnknown => '未提供质量信息';
|
|
|
|
@override
|
|
String get recordAction => '录制';
|
|
|
|
@override
|
|
String get recordDurationTitle => '录制时长';
|
|
|
|
@override
|
|
String get recordRadioSubtitle => '选择要录制多长时间。';
|
|
|
|
@override
|
|
String get recordRadioTitle => '录制电台';
|
|
|
|
@override
|
|
String get recordingActiveTitle => '正在录制电台';
|
|
|
|
@override
|
|
String get recordingDirectTitle => '直接录制';
|
|
|
|
@override
|
|
String get recordingsOpenFolderPlainError => '无法打开录音文件夹';
|
|
|
|
@override
|
|
String get recordingsOpenLatest => '打开最新录音';
|
|
|
|
@override
|
|
String get recordingsOpenLatestError => '无法打开最新录音';
|
|
|
|
@override
|
|
String get startLabel => '开始';
|
|
|
|
@override
|
|
String get startPlaybackTooltip => '开始播放';
|
|
|
|
@override
|
|
String get stopAction => '停止';
|
|
|
|
@override
|
|
String get stopPlaybackTooltip => '停止播放';
|
|
|
|
@override
|
|
String get weekdayShortMonday => '周一';
|
|
|
|
@override
|
|
String get weekdayShortTuesday => '周二';
|
|
|
|
@override
|
|
String get weekdayShortWednesday => '周三';
|
|
|
|
@override
|
|
String get weekdayShortThursday => '周四';
|
|
|
|
@override
|
|
String get weekdayShortFriday => '周五';
|
|
|
|
@override
|
|
String get weekdayShortSaturday => '周六';
|
|
|
|
@override
|
|
String get weekdayShortSunday => '周日';
|
|
|
|
@override
|
|
String stationCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 个电台',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get alarmIconLabel => '音乐闹钟';
|
|
|
|
@override
|
|
String get vacationIconLabel => '假期模式';
|
|
|
|
@override
|
|
String get streamUrlHint => 'https://stream.example.com:8000/radio';
|
|
|
|
@override
|
|
String get advancedEqSectionTitle => '高级均衡器选项';
|
|
|
|
@override
|
|
String get advancedEqEnableToggle => '启用每设备 EQ';
|
|
|
|
@override
|
|
String get advancedEqEnableToggleSubtitle => '当音频输出更改时,自动应用不同的 EQ 预设。';
|
|
|
|
@override
|
|
String get advancedEqKnownDevicesTitle => '已知音频设备';
|
|
|
|
@override
|
|
String get advancedEqKnownDevicesEmpty => '尚未记录任何音频设备。连接设备以开始使用。';
|
|
|
|
@override
|
|
String advancedEqDevicePresetLabel(Object presetName) {
|
|
return '预设:$presetName';
|
|
}
|
|
|
|
@override
|
|
String preNoticeCountdown(int minutes) {
|
|
return '$minutes分钟后开始';
|
|
}
|
|
|
|
@override
|
|
String get eqDeviceEditTitle => '编辑设备';
|
|
|
|
@override
|
|
String get eqDeviceNameLabel => '设备名称';
|
|
|
|
@override
|
|
String get eqDeviceNameHint => '例:客厅音箱';
|
|
|
|
@override
|
|
String get eqDeviceNameConfirm => '保存';
|
|
|
|
@override
|
|
String get eqDeviceConnected => '已连接';
|
|
}
|