MiniPlayer/Sources/Localization.swift
yumoqing af710e4e4f feat: 流媒体URL并发可用性检测
- 后台并发检测所有远程流URL(最多10并发)
- 5秒超时,403标记forbidden,连接失败标记unavailable
- 默认过滤不可用频道,眼睛图标切换显示
- 进度条+状态文本实时显示检测进度
- 行内状态图标:绿✓可用/红🔒无权限/灰✗不可用
- 支持取消检测
2026-06-30 22:41:04 +08:00

112 lines
8.3 KiB
Swift

import Foundation
// MARK: - i18n
enum L {
//
static let playPause = NSLocalizedString("play_pause", value: "Play/Pause", comment: "")
static let prev = NSLocalizedString("prev", value: "Previous", comment: "")
static let next = NSLocalizedString("next", value: "Next", comment: "")
static let fullscreen = NSLocalizedString("fullscreen", value: "Fullscreen", comment: "")
static let volUp = NSLocalizedString("vol_up", value: "Volume+", comment: "")
static let volDown = NSLocalizedString("vol_down", value: "Volume-", comment: "")
static let repeatMode = NSLocalizedString("repeat_mode", value: "Repeat Mode", comment: "")
static let openFile = NSLocalizedString("open_file", value: "Open File...", comment: "")
static let addURL = NSLocalizedString("add_url", value: "Add URL...", comment: "")
static let playback = NSLocalizedString("menu_playback", value: "Playback", comment: "")
static let file = NSLocalizedString("menu_file", value: "File", comment: "")
//
static let playlist = NSLocalizedString("playlist", value: "Playlist", comment: "")
static let addFile = NSLocalizedString("add_file", value: "Add File", comment: "")
static let addURLBtn = NSLocalizedString("add_url_btn", value: "Add URL", comment: "")
static let itemsCount = NSLocalizedString("items_count", value: "items", comment: "")
static let noMedia = NSLocalizedString("no_media", value: "No media", comment: "")
// URL
static let addMediaURL = NSLocalizedString("add_media_url", value: "Add Media URL", comment: "")
static let cancel = NSLocalizedString("cancel", value: "Cancel", comment: "")
static let add = NSLocalizedString("add", value: "Add", comment: "")
//
static let selectTrack = NSLocalizedString("select_track", value: "Select Track", comment: "")
static let track = NSLocalizedString("track", value: "Track", comment: "")
static let audioTrack = NSLocalizedString("audio_track", value: "Audio Track", comment: "")
static let close = NSLocalizedString("close", value: "Close", comment: "")
//
static let repeatNone = NSLocalizedString("repeat_none", value: "No Repeat", comment: "")
static let repeatSingle = NSLocalizedString("repeat_single", value: "Repeat One", comment: "")
static let repeatAll = NSLocalizedString("repeat_all", value: "Repeat All", comment: "")
// Toast
static func nowPlaying(_ name: String) -> String {
String(format: NSLocalizedString("now_playing", value: "Now Playing: %@", comment: ""), name)
}
static func repeatModeLabel(_ mode: String) -> String {
String(format: NSLocalizedString("repeat_mode_label", value: "Repeat: %@", comment: ""), mode)
}
static let invalidURL = NSLocalizedString("invalid_url", value: "Invalid URL", comment: "")
//
static let open = NSLocalizedString("open", value: "Open", comment: "")
static let list = NSLocalizedString("list", value: "List", comment: "")
//
static let scanQRCode = NSLocalizedString("scan_qr_code", value: "Scan QR Code", comment: "")
static let scanHint = NSLocalizedString("scan_hint", value: "Point camera at a QR code containing a media URL", comment: "")
static let detectedCode = NSLocalizedString("detected_code", value: "Detected:", comment: "")
//
static let mediaLibrary = NSLocalizedString("media_library", value: "Media Library", comment: "")
static let allMedia = NSLocalizedString("all_media", value: "All Media", comment: "")
static let liked = NSLocalizedString("liked", value: "Liked", comment: "")
static let tags = NSLocalizedString("tags", value: "Tags", comment: "")
static let searchChannels = NSLocalizedString("search_channels", value: "Search channels...", comment: "")
static let importM3U = NSLocalizedString("import_m3u", value: "Import M3U", comment: "")
static let addLocal = NSLocalizedString("add_local", value: "Add Local", comment: "")
static let addAllToQueue = NSLocalizedString("add_all_queue", value: "Queue All", comment: "")
static let libraryEmpty = NSLocalizedString("library_empty", value: "Library is empty. Import M3U or add local files.", comment: "")
static let noSearchResult = NSLocalizedString("no_search_result", value: "No results found", comment: "")
static let totalItems = NSLocalizedString("total_items", value: "total", comment: "")
static let addedToQueue = NSLocalizedString("added_to_queue", value: "items added to queue", comment: "")
//
static let newPlaylist = NSLocalizedString("new_playlist", value: "New Playlist", comment: "")
static let playlistName = NSLocalizedString("playlist_name", value: "Playlist name", comment: "")
static let create = NSLocalizedString("create", value: "Create", comment: "")
static let addPlaylist = NSLocalizedString("add_playlist", value: "New Playlist", comment: "")
//
static let addTag = NSLocalizedString("add_tag", value: "Add Tag", comment: "")
static let tagName = NSLocalizedString("tag_name", value: "Tag name (comma separated for multiple)", comment: "")
static let removeTag = NSLocalizedString("remove_tag", value: "Remove Tag", comment: "")
//
static let playNow = NSLocalizedString("play_now", value: "Play Now", comment: "")
static let addToQueue = NSLocalizedString("add_to_queue", value: "Add to Queue", comment: "")
static let addToPlaylist = NSLocalizedString("add_to_playlist", value: "Add to Playlist", comment: "")
static let delete = NSLocalizedString("delete", value: "Delete", comment: "")
// M3U
static let fetch = NSLocalizedString("fetch", value: "Fetch", comment: "")
static let fetching = NSLocalizedString("fetching", value: "Fetching...", comment: "")
static let fetched = NSLocalizedString("fetched", value: "Fetched", comment: "")
static let channelsFound = NSLocalizedString("channels_found", value: "channels", comment: "")
static let selectAll = NSLocalizedString("select_all", value: "Select All", comment: "")
static let deselectAll = NSLocalizedString("deselect_all", value: "Deselect All", comment: "")
static let importSelected = NSLocalizedString("import_selected", value: "Import Selected", comment: "")
static let imported = NSLocalizedString("imported", value: "Imported", comment: "")
static let channelsAdded = NSLocalizedString("channels_added", value: "channels", comment: "")
static let fetchFailed = NSLocalizedString("fetch_failed", value: "Fetch failed", comment: "")
static let localFilesAdded = NSLocalizedString("local_files_added", value: "local files", comment: "")
//
static let checkStreams = NSLocalizedString("check_streams", value: "Check Streams", comment: "")
static let cancelCheck = NSLocalizedString("cancel_check", value: "Cancel", comment: "")
static let showUnavailable = NSLocalizedString("show_unavailable", value: "Show unavailable channels", comment: "")
static let hideUnavailable = NSLocalizedString("hide_unavailable", value: "Hide unavailable channels", comment: "")
static let hiddenUnavailable = NSLocalizedString("hidden_unavailable", value: "hidden (unavailable)", comment: "")
static let statusForbidden = NSLocalizedString("status_forbidden", value: "Forbidden (403)", comment: "")
static let statusUnavailable = NSLocalizedString("status_unavailable", value: "Unavailable (timeout/error)", comment: "")
}