diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index 32203c73..9d5a9cce 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -226,27 +226,27 @@ "@optionsReplayGainSubtitleOff": { "description": "Subtitle when ReplayGain is disabled" }, - "trackReplayGain": "重新扫描回放增益", + "trackReplayGain": "重新扫描ReplayGain ", "@trackReplayGain": { "description": "Three-dot menu option to scan loudness and write ReplayGain tags" }, - "trackReplayGainSubtitle": "分析响度并写入回放增益标签", + "trackReplayGainSubtitle": "分析响度并写入ReplayGain标签", "@trackReplayGainSubtitle": { "description": "Subtitle for the rescan ReplayGain menu option" }, - "trackReplayGainScanning": "正在分析声音...", + "trackReplayGainScanning": "正在分析声音……", "@trackReplayGainScanning": { "description": "Snackbar/progress message while scanning ReplayGain for a single track" }, - "trackReplayGainSuccess": "回放增益标签已添加", + "trackReplayGainSuccess": "ReplayGain标签已添加", "@trackReplayGainSuccess": { "description": "Snackbar message after ReplayGain tags written for a single track" }, - "trackReplayGainFailed": "添加回放增益标签失败", + "trackReplayGainFailed": "添加ReplayGain标签失败", "@trackReplayGainFailed": { "description": "Snackbar message when ReplayGain scan/write fails" }, - "selectionReplayGainCount": "回放增益 ({count})", + "selectionReplayGainCount": "ReplayGain ({count})", "@selectionReplayGainCount": { "description": "Batch selection action button label for ReplayGain", "placeholders": { @@ -255,11 +255,11 @@ } } }, - "replayGainBatchConfirmTitle": "添加回放增益", + "replayGainBatchConfirmTitle": "添加ReplayGain", "@replayGainBatchConfirmTitle": { "description": "Title of the batch ReplayGain confirmation dialog" }, - "replayGainBatchConfirmMessage": "Analyze loudness and write ReplayGain tags to {count} track(s)?", + "replayGainBatchConfirmMessage": "要分析响度并向 {count} 首歌曲写入 ReplayGain 标签吗?", "@replayGainBatchConfirmMessage": { "description": "Message of the batch ReplayGain confirmation dialog", "placeholders": { @@ -268,11 +268,11 @@ } } }, - "replayGainBatchAnalyzing": "Analyzing ReplayGain...", + "replayGainBatchAnalyzing": "正在分析ReplayGain...", "@replayGainBatchAnalyzing": { "description": "Progress dialog title while batch scanning ReplayGain" }, - "replayGainBatchSuccess": "ReplayGain added to {success} of {total} tracks", + "replayGainBatchSuccess": "已为 {success}/{total} 首歌曲添加 ReplayGain", "@replayGainBatchSuccess": { "description": "Snackbar after batch ReplayGain completes", "placeholders": { @@ -288,15 +288,15 @@ "@optionsArtistTagMode": { "description": "Setting title for how artist metadata is written into files" }, - "optionsArtistTagModeDescription": "Choose how multiple artists are written into embedded tags.", + "optionsArtistTagModeDescription": "选择将多位艺人写入嵌入标签的方式", "@optionsArtistTagModeDescription": { "description": "Bottom-sheet description for artist tag mode setting" }, - "optionsArtistTagModeJoined": "Single joined value", + "optionsArtistTagModeJoined": "合并为单个值", "@optionsArtistTagModeJoined": { "description": "Artist tag mode option that joins multiple artists into one value" }, - "optionsArtistTagModeJoinedSubtitle": "Write one ARTIST value like \"Artist A, Artist B\" for maximum player compatibility.", + "optionsArtistTagModeJoinedSubtitle": "写一个ARTIST 值,如“艺术家A,艺人B”,以实现最大兼容性。", "@optionsArtistTagModeJoinedSubtitle": { "description": "Subtitle for joined artist tag mode" }, @@ -304,15 +304,15 @@ "@optionsArtistTagModeSplitVorbis": { "description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats" }, - "optionsArtistTagModeSplitVorbisSubtitle": "Write one artist tag per artist for FLAC and Opus; MP3 and M4A stay joined.", + "optionsArtistTagModeSplitVorbisSubtitle": "为 FLAC 和 Opus 的每位艺人各写入一个艺人标签;MP3 和 M4A 保持合并", "@optionsArtistTagModeSplitVorbisSubtitle": { "description": "Subtitle for split Vorbis artist tag mode" }, - "optionsExtensionStore": "Extension Repo", + "optionsExtensionStore": "扩展仓库", "@optionsExtensionStore": { "description": "Show/hide store tab" }, - "optionsExtensionStoreSubtitle": "Show Repo tab in navigation", + "optionsExtensionStoreSubtitle": "在导航中显示仓库标签页", "@optionsExtensionStoreSubtitle": { "description": "Subtitle for extension store toggle" }, @@ -415,7 +415,7 @@ "@extensionsUninstall": { "description": "Uninstall extension button" }, - "storeTitle": "Extension Repo", + "storeTitle": "扩展仓库地址", "@storeTitle": { "description": "Store screen title" }, @@ -475,7 +475,7 @@ "@aboutPCSource": { "description": "Link to PC GitHub repo" }, - "aboutKeepAndroidOpen": "Keep Android Open", + "aboutKeepAndroidOpen": "Keep Android Open(保持安卓开放)", "@aboutKeepAndroidOpen": { "description": "Link to Keep Android Open campaign website" }, @@ -487,31 +487,31 @@ "@aboutReportIssueSubtitle": { "description": "Subtitle for report issue" }, - "aboutFeatureRequest": "Feature request", + "aboutFeatureRequest": "功能建议", "@aboutFeatureRequest": { "description": "Link to suggest features" }, - "aboutFeatureRequestSubtitle": "Suggest new features for the app", + "aboutFeatureRequestSubtitle": "为应用建议新功能", "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, - "aboutTelegramChannel": "Telegram Channel", + "aboutTelegramChannel": "Telegram 频道", "@aboutTelegramChannel": { "description": "Link to Telegram channel" }, - "aboutTelegramChannelSubtitle": "Announcements and updates", + "aboutTelegramChannelSubtitle": "公告和更新", "@aboutTelegramChannelSubtitle": { "description": "Subtitle for Telegram channel" }, - "aboutTelegramChat": "Telegram Community", + "aboutTelegramChat": "Telegram 社区", "@aboutTelegramChat": { "description": "Link to Telegram chat group" }, - "aboutTelegramChatSubtitle": "Chat with other users", + "aboutTelegramChatSubtitle": "与其他用户聊天", "@aboutTelegramChatSubtitle": { "description": "Subtitle for Telegram chat" }, - "aboutSocial": "Social", + "aboutSocial": "社交", "@aboutSocial": { "description": "Section for social links" }, @@ -519,43 +519,43 @@ "@aboutApp": { "description": "Section for app info" }, - "aboutVersion": "Version", + "aboutVersion": "版本", "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", + "aboutBinimumDesc": "QQDL 和 HiFi API 的创建者。本项目帮助完善了无损下载支持。", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", + "aboutSachinsenalDesc": "原 HiFi 项目创建者,为无损来源集成奠定了基础。", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, - "aboutSjdonadoDesc": "Creator of I Don't Have Spotify (IDHS). The fallback link resolver that saves the day!", + "aboutSjdonadoDesc": "I Don't Have Spotify (IDHS) 的创建者。备用链接解析器很有帮助!", "@aboutSjdonadoDesc": { "description": "Credit description for sjdonado" }, - "aboutAppDescription": "Search music metadata, manage extensions, and organize your library.", + "aboutAppDescription": "搜索音乐元数据、管理扩展并整理你的乐库。", "@aboutAppDescription": { "description": "App description in header card" }, - "artistAlbums": "Albums", + "artistAlbums": "专辑", "@artistAlbums": { "description": "Section header for artist albums" }, - "artistSingles": "Singles & EPs", + "artistSingles": "单曲 & EP", "@artistSingles": { "description": "Section header for singles/EPs" }, - "artistCompilations": "Compilations", + "artistCompilations": "合辑", "@artistCompilations": { "description": "Section header for compilations" }, - "artistPopular": "Popular", + "artistPopular": "热门", "@artistPopular": { "description": "Section header for popular/top tracks" }, - "artistMonthlyListeners": "{count} monthly listeners", + "artistMonthlyListeners": "{count} 位月听众", "@artistMonthlyListeners": { "description": "Monthly listener count display", "placeholders": { @@ -565,47 +565,47 @@ } } }, - "trackMetadataService": "Service", + "trackMetadataService": "服务商", "@trackMetadataService": { "description": "Metadata field - download service used" }, - "trackMetadataPlay": "Play", + "trackMetadataPlay": "播放", "@trackMetadataPlay": { "description": "Action button - play track" }, - "trackMetadataShare": "Share", + "trackMetadataShare": "分享", "@trackMetadataShare": { "description": "Action button - share track" }, - "trackMetadataDelete": "Delete", + "trackMetadataDelete": "删除", "@trackMetadataDelete": { "description": "Action button - delete track" }, - "setupGrantPermission": "Grant Permission", + "setupGrantPermission": "授予权限", "@setupGrantPermission": { "description": "Button to request permission" }, - "setupSkip": "Skip for now", + "setupSkip": "暂时跳过", "@setupSkip": { "description": "Skip current step button" }, - "setupStorageAccessRequired": "Storage Access Required", + "setupStorageAccessRequired": "需要存储访问权限", "@setupStorageAccessRequired": { "description": "Title when storage access needed" }, - "setupStorageAccessMessageAndroid11": "Android 11+ requires \"All files access\" permission to save files to your chosen download folder.", + "setupStorageAccessMessageAndroid11": "Android 11+ 需要“所有文件访问权限”才能将文件保存到你选择的下载文件夹。", "@setupStorageAccessMessageAndroid11": { "description": "Android 11+ specific explanation" }, - "setupOpenSettings": "Open Settings", + "setupOpenSettings": "打开设置", "@setupOpenSettings": { "description": "Button to open system settings" }, - "setupPermissionDeniedMessage": "Permission denied. Please grant all permissions to continue.", + "setupPermissionDeniedMessage": "权限被拒绝。请授予所有权限以继续。", "@setupPermissionDeniedMessage": { "description": "Error when permission denied" }, - "setupPermissionRequired": "{permissionType} Permission Required", + "setupPermissionRequired": "需要 {permissionType} 权限", "@setupPermissionRequired": { "description": "Generic permission required title", "placeholders": { @@ -615,7 +615,7 @@ } } }, - "setupPermissionRequiredMessage": "{permissionType} permission is required for the best experience. You can change this later in Settings.", + "setupPermissionRequiredMessage": "为了获得最佳体验,需要 {permissionType} 权限。你可以稍后在设置中更改。", "@setupPermissionRequiredMessage": { "description": "Generic permission required message", "placeholders": { @@ -624,67 +624,67 @@ } } }, - "setupUseDefaultFolder": "Use Default Folder?", + "setupUseDefaultFolder": "使用默认文件夹?", "@setupUseDefaultFolder": { "description": "Dialog title for default folder" }, - "setupNoFolderSelected": "No folder selected. Would you like to use the default Music folder?", + "setupNoFolderSelected": "未选择文件夹。要使用默认音乐文件夹吗?", "@setupNoFolderSelected": { "description": "Prompt when no folder selected" }, - "setupUseDefault": "Use Default", + "setupUseDefault": "使用默认", "@setupUseDefault": { "description": "Button to use default folder" }, - "setupDownloadLocationTitle": "Download Location", + "setupDownloadLocationTitle": "下载位置", "@setupDownloadLocationTitle": { "description": "Download location dialog title" }, - "setupDownloadLocationIosMessage": "On iOS, downloads are saved to the app's Documents folder. You can access them via the Files app.", + "setupDownloadLocationIosMessage": "在 iOS 上,下载内容会保存到应用的 Documents 文件夹。你可以通过“文件”应用访问。", "@setupDownloadLocationIosMessage": { "description": "iOS-specific folder info" }, - "setupAppDocumentsFolder": "App Documents Folder", + "setupAppDocumentsFolder": "应用程序文档文件夹", "@setupAppDocumentsFolder": { "description": "iOS documents folder option" }, - "setupAppDocumentsFolderSubtitle": "Recommended - accessible via Files app", + "setupAppDocumentsFolderSubtitle": "推荐 - 可通过“文件”应用访问", "@setupAppDocumentsFolderSubtitle": { "description": "Subtitle for documents folder" }, - "setupChooseFromFiles": "Choose from Files", + "setupChooseFromFiles": "从“文件”中选择", "@setupChooseFromFiles": { "description": "iOS file picker option" }, - "setupChooseFromFilesSubtitle": "Select iCloud or other location", + "setupChooseFromFilesSubtitle": "选择 iCloud 或其他位置", "@setupChooseFromFilesSubtitle": { "description": "Subtitle for file picker" }, - "setupIosEmptyFolderWarning": "iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.", + "setupIosEmptyFolderWarning": "iOS 限制:无法选择空文件夹。请选择至少包含一个文件的文件夹。", "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupIcloudNotSupported": "iCloud Drive is not supported. Please use the app Documents folder.", + "setupIcloudNotSupported": "不支持 iCloud Drive。请使用应用 Documents 文件夹。", "@setupIcloudNotSupported": { "description": "Error when user selects iCloud Drive on iOS" }, - "setupDownloadInFlac": "Download Spotify tracks in FLAC", + "setupDownloadInFlac": "以 FLAC 下载 Spotify 曲目", "@setupDownloadInFlac": { "description": "App tagline in setup" }, - "setupStorageGranted": "Storage Permission Granted!", + "setupStorageGranted": "已授予存储权限!", "@setupStorageGranted": { "description": "Success message for storage permission" }, - "setupStorageRequired": "Storage Permission Required", + "setupStorageRequired": "需要存储权限", "@setupStorageRequired": { "description": "Title when storage permission needed" }, - "setupStorageDescription": "SpotiFLAC needs storage permission to save your downloaded music files.", + "setupStorageDescription": "SpotiFLAC 需要存储权限来保存下载的音乐文件。", "@setupStorageDescription": { "description": "Explanation for storage permission" }, - "setupNotificationGranted": "Notification Permission Granted!", + "setupNotificationGranted": "已授予通知权限!", "@setupNotificationGranted": { "description": "Success message for notification permission" }, @@ -708,107 +708,107 @@ "@setupEnableNotifications": { "description": "Button to enable notifications" }, - "setupNotificationBackgroundDescription": "Get notified about download progress and completion. This helps you track downloads when the app is in background.", + "setupNotificationBackgroundDescription": "接收下载进度和完成通知,方便你在应用后台时跟踪下载。", "@setupNotificationBackgroundDescription": { "description": "Detailed notification explanation" }, - "setupSkipForNow": "Skip for now", + "setupSkipForNow": "暂时跳过", "@setupSkipForNow": { "description": "Skip button text" }, - "setupNext": "Next", + "setupNext": "下一步", "@setupNext": { "description": "Next button text" }, - "setupGetStarted": "Get Started", + "setupGetStarted": "开始使用", "@setupGetStarted": { "description": "Final setup button" }, - "setupAllowAccessToManageFiles": "Please enable \"Allow access to manage all files\" in the next screen.", + "setupAllowAccessToManageFiles": "请在下一个屏幕中启用“允许管理所有文件”。", "@setupAllowAccessToManageFiles": { "description": "Instruction for file access permission" }, - "setupLanguageTitle": "Choose Language", + "setupLanguageTitle": "选择语言", "@setupLanguageTitle": { "description": "Title for the language selection step in setup" }, - "setupLanguageDescription": "Select your preferred language for the app. You can change this later in Settings.", + "setupLanguageDescription": "选择应用的首选语言。你可以稍后在设置中更改。", "@setupLanguageDescription": { "description": "Description for the language selection step in setup" }, - "setupLanguageSystemDefault": "System Default", + "setupLanguageSystemDefault": "跟随系统", "@setupLanguageSystemDefault": { "description": "Option to use the system language" }, - "dialogCancel": "Cancel", + "dialogCancel": "取消", "@dialogCancel": { "description": "Dialog button - cancel action" }, - "dialogSave": "Save", + "dialogSave": "保存", "@dialogSave": { "description": "Dialog button - save changes" }, - "dialogDelete": "Delete", + "dialogDelete": "删除", "@dialogDelete": { "description": "Dialog button - delete item" }, - "dialogRetry": "Retry", + "dialogRetry": "重试", "@dialogRetry": { "description": "Dialog button - retry action" }, - "dialogClear": "Clear", + "dialogClear": "清空", "@dialogClear": { "description": "Dialog button - clear items" }, - "dialogDone": "Done", + "dialogDone": "完成", "@dialogDone": { "description": "Dialog button - action completed" }, - "dialogImport": "Import", + "dialogImport": "导入", "@dialogImport": { "description": "Dialog button - import data" }, - "dialogDownload": "Download", + "dialogDownload": "下载", "@dialogDownload": { "description": "Confirm button in Download All dialog" }, - "dialogDiscard": "Discard", + "dialogDiscard": "放弃", "@dialogDiscard": { "description": "Dialog button - discard changes" }, - "dialogRemove": "Remove", + "dialogRemove": "移除", "@dialogRemove": { "description": "Dialog button - remove item" }, - "dialogUninstall": "Uninstall", + "dialogUninstall": "卸载", "@dialogUninstall": { "description": "Dialog button - uninstall extension" }, - "dialogDiscardChanges": "Discard Changes?", + "dialogDiscardChanges": "放弃更改?", "@dialogDiscardChanges": { "description": "Dialog title - unsaved changes warning" }, - "dialogUnsavedChanges": "You have unsaved changes. Do you want to discard them?", + "dialogUnsavedChanges": "您有未保存的更改,要放弃它们吗?", "@dialogUnsavedChanges": { "description": "Dialog message - unsaved changes" }, - "dialogClearAll": "Clear All", + "dialogClearAll": "全部清除", "@dialogClearAll": { "description": "Dialog title - clear all items" }, - "dialogRemoveExtension": "Remove Extension", + "dialogRemoveExtension": "移除扩展", "@dialogRemoveExtension": { "description": "Dialog title - uninstall extension" }, - "dialogRemoveExtensionMessage": "Are you sure you want to remove this extension? This cannot be undone.", + "dialogRemoveExtensionMessage": "确定要移除此扩展吗?此操作无法撤销。", "@dialogRemoveExtensionMessage": { "description": "Dialog message - uninstall confirmation" }, - "dialogUninstallExtension": "Uninstall Extension?", + "dialogUninstallExtension": "卸载扩展?", "@dialogUninstallExtension": { "description": "Dialog title - uninstall extension" }, - "dialogUninstallExtensionMessage": "Are you sure you want to remove {extensionName}?", + "dialogUninstallExtensionMessage": "确定要移除 {extensionName} 吗?", "@dialogUninstallExtensionMessage": { "description": "Dialog message - uninstall specific extension", "placeholders": { @@ -817,19 +817,19 @@ } } }, - "dialogClearHistoryTitle": "Clear History", + "dialogClearHistoryTitle": "清除历史", "@dialogClearHistoryTitle": { "description": "Dialog title - clear download history" }, - "dialogClearHistoryMessage": "Are you sure you want to clear all download history? This cannot be undone.", + "dialogClearHistoryMessage": "您确定要清除所有下载记录吗?此操作无法撤销!", "@dialogClearHistoryMessage": { "description": "Dialog message - clear history confirmation" }, - "dialogDeleteSelectedTitle": "Delete Selected", + "dialogDeleteSelectedTitle": "删除所选项", "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, - "dialogDeleteSelectedMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from history?\n\nThis will also delete the files from storage.", + "dialogDeleteSelectedMessage": "确定要从历史记录中删除 {count} {count, plural, =1{首歌曲} other{首歌曲}}吗?\n\n这也会从存储中删除文件。", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { @@ -838,12 +838,12 @@ } } }, - "dialogImportPlaylistTitle": "Import Playlist", + "dialogImportPlaylistTitle": "导入播放列表", "@dialogImportPlaylistTitle": { "description": "Dialog title - import CSV playlist" }, - "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", - "csvImportTracks": "{count} tracks from CSV", + "dialogImportPlaylistMessage": "在 CSV 中找到 {count} 首歌曲。要将它们加入下载队列吗?", + "csvImportTracks": "CSV 中的 {count} 首歌曲", "@csvImportTracks": { "description": "Label shown in quality picker for CSV import", "placeholders": { @@ -860,7 +860,7 @@ } } }, - "snackbarAddedToQueue": "Added \"{trackName}\" to queue", + "snackbarAddedToQueue": "已将“{trackName}”加入队列", "@snackbarAddedToQueue": { "description": "Snackbar - track added to download queue", "placeholders": { @@ -869,7 +869,7 @@ } } }, - "snackbarAddedTracksToQueue": "Added {count} tracks to queue", + "snackbarAddedTracksToQueue": "已将 {count} 首歌曲加入队列", "@snackbarAddedTracksToQueue": { "description": "Snackbar - multiple tracks added to queue", "placeholders": { @@ -878,7 +878,7 @@ } } }, - "snackbarAlreadyDownloaded": "\"{trackName}\" already downloaded", + "snackbarAlreadyDownloaded": "“{trackName}”已下载", "@snackbarAlreadyDownloaded": { "description": "Snackbar - track already exists", "placeholders": { @@ -887,7 +887,7 @@ } } }, - "snackbarAlreadyInLibrary": "\"{trackName}\" already exists in your library", + "snackbarAlreadyInLibrary": "“{trackName}”已存在于你的乐库中", "@snackbarAlreadyInLibrary": { "description": "Snackbar - track already exists in local library", "placeholders": { @@ -896,19 +896,19 @@ } } }, - "snackbarHistoryCleared": "History cleared", + "snackbarHistoryCleared": "历史记录已清除", "@snackbarHistoryCleared": { "description": "Snackbar - history deleted" }, - "snackbarCredentialsSaved": "Credentials saved", + "snackbarCredentialsSaved": "凭据已保存", "@snackbarCredentialsSaved": { "description": "Snackbar - Spotify credentials saved" }, - "snackbarCredentialsCleared": "Credentials cleared", + "snackbarCredentialsCleared": "凭据已清除", "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}", + "snackbarDeletedTracks": "已删除 {count} {count, plural, =1{首歌曲} other{首歌曲}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -917,7 +917,7 @@ } } }, - "snackbarCannotOpenFile": "Cannot open file: {error}", + "snackbarCannotOpenFile": "无法打开文件:{error}", "@snackbarCannotOpenFile": { "description": "Snackbar - file open error", "placeholders": { @@ -926,11 +926,11 @@ } } }, - "snackbarFillAllFields": "Please fill all fields", + "snackbarFillAllFields": "请填写所有字段", "@snackbarFillAllFields": { "description": "Snackbar - validation error" }, - "snackbarViewQueue": "View Queue", + "snackbarViewQueue": "查看队列", "@snackbarViewQueue": { "description": "Snackbar action - view download queue" },