Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 156 additions & 0 deletions assets/locales/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
{
"noMediaSelected": "No media selected",
"noLyricsAvailable": "No Lyrics Available",
"fetchLyrics": "Fetch Lyrics",
"searchLyricsWith": "Search lyrics with {}",
"whereToSearchLyrics": "Where do you want to search lyrics from?",
"musixmatch": "Musixmatch",
"netease": "NetEase",
"lrclib": "Lrclib",
"manualImport": "Manual Import",
"cancel": "Cancel",
"lyricsOptions": "Lyrics Options",
"refetch": "Re-fetch",
"clear": "Clear",
"liveSyncLyrics": "Live Sync Lyrics",
"manualOffset": "Manual Offset",
"adjustLyricsTiming": "Adjust Lyrics Timing",
"enterOffsetMs": "Enter offset in milliseconds.\nPositive values delay lyrics, negative values advance them.",
"offsetMs": "Offset (ms)",
"save": "Save",
"liveLyricsSync": "Live Lyrics Sync",
"offset": "Offset: {}ms",
"minus100ms": "-100ms",
"plus10ms": "+10ms",
"reset": "Reset",
"plus100ms": "+100ms",
"fineAdjustment": "Fine Adjustment",
"onlyTimedLyricsCanBeSynced": "Only timed lyrics can be synced",
"errorLoadingLyrics": "Error loading lyrics: {}",
"errorParsingLyrics": "Error parsing lyrics: {}",
"noTracksInQueue": "No tracks in queue",
"unknownArtist": "Unknown Artist",
"showLyrics": "Show Lyrics",
"showQueue": "Show Queue",
"showCover": "Show Cover",
"importedLyricsLines": "Imported {} lyrics lines for \"{}\"",
"selected": "{} selected",
"addToPlaylist": "Add to Playlist",
"delete": "Delete",
"groovyBox": "GroovyBox",
"library": "Library",
"importFiles": "Import Files",
"searchTracks": "Search tracks...",
"searchTracksWithCount": "Search tracks... ({} tracks)",
"searchTracksFiltered": "Search tracks... ({} of {} tracks)",
"error": "Error: {}",
"noTracksYet": "No tracks yet. Add some!",
"noTracksMatchSearch": "No tracks match your search.",
"deleteTrack": "Delete Track?",
"confirmDeleteTrack": "Are you sure you want to delete \"{}\" ? This cannot be undone.",
"deletedTrack": "Deleted \"{}\"",
"viewDetails": "View Details",
"editMetadata": "Edit Metadata",
"importLyrics": "Import Lyrics",
"addedToPlaylist": "Added to {}",
"trackDetails": "Track Details",
"close": "Close",
"title": "Title",
"artist": "Artist",
"album": "Album",
"duration": "Duration",
"fileSize": "File Size",
"filePath": "File Path",
"dateAdded": "Date Added",
"albumArt": "Album Art",
"present": "Present",
"editTrack": "Edit Track",
"addedTracksToPlaylist": "Added {} tracks to {}",
"deleteTracks": "Delete Tracks?",
"confirmDeleteTracks": "Are you sure you want to delete {} tracks? This will remove them from your device.",
"deletedTracks": "Deleted {} tracks",
"batchImportComplete": "Batch import complete: {} matched, {} not matched",
"settings": "Settings",
"autoScan": "Auto Scan",
"autoScanMusicLibraries": "Auto-scan music libraries",
"autoScanDescription": "Automatically scan music libraries for new music files",
"watchForChanges": "Watch for changes",
"watchForChangesDescription": "Monitor music libraries for file changes",
"musicLibraries": "Music Libraries",
"scanLibraries": "Scan Libraries",
"addMusicLibrary": "Add Music Library",
"addMusicLibraryDescription": "Add folder libraries to index music files. Files will be copied to internal storage for playback.",
"noMusicLibrariesAdded": "No music libraries added yet.",
"errorLoadingLibraries": "Error loading libraries: {}",
"remoteProviders": "Remote Providers",
"indexRemoteProviders": "Index Remote Providers",
"addRemoteProvider": "Add Remote Provider",
"remoteProvidersDescription": "Connect to remote media servers like Jellyfin to access your music library.",
"noRemoteProvidersAdded": "No remote providers added yet.",
"errorLoadingProviders": "Error loading providers: {}",
"playerSettings": "Player Settings",
"playerSettingsDescription": "Configure player behavior and display options.",
"defaultPlayerScreen": "Default Player Screen",
"defaultPlayerScreenDescription": "Choose which screen to show when opening the player.",
"lyricsMode": "Lyrics Mode",
"lyricsModeDescription": "Choose how lyrics are displayed.",
"continuePlaying": "Continue Playing",
"continuePlayingDescription": "Continue playing music after the queue is empty",
"databaseManagement": "Database Management",
"databaseManagementDescription": "Manage your music database and cached files.",
"resetTrackDatabase": "Reset Track Database",
"resetTrackDatabaseDescription": "Remove all tracks from database and delete cached files. This action cannot be undone.",
"errorLoadingSettings": "Error loading settings: {}",
"playAll": "Play All",
"addToQueue": "Add to Queue",
"noTracksInPlaylist": "No tracks in this playlist",
"noAlbumsFound": "No albums found",
"createOne": "Create One",
"addNewPlaylist": "Add a new playlist",
"newPlaylist": "New Playlist",
"playlistName": "Playlist Name",
"create": "Create",
"noPlaylistsYet": "No playlists yet",
"queue": "Queue",
"appSettings": "App Settings",
"appSettingsDescription": "Configure app-wide settings and preferences.",
"language": "Language",
"languageDescription": "Choose the app language.",
"english": "English",
"chinese": "中文",
"settingsTitle": "Settings",
"tracks": "Tracks",
"albums": "Albums",
"playlists": "Playlists",
"addedMusicLibrary": "Added music library: {}",
"errorAddingLibrary": "Error adding library: {}",
"librariesScannedSuccessfully": "Libraries scanned successfully",
"errorScanningLibraries": "Error scanning libraries: {}",
"noActiveRemoteProviders": "No active remote providers to index",
"indexedRemoteProviders": "Indexed {} remote provider(s)",
"errorIndexingRemoteProviders": "Error indexing remote providers: {}",
"addedRemoteProvider": "Added remote provider: {}",
"errorAddingProvider": "Error adding provider: {}",
"confirmResetTrackDatabase": "This will permanently delete all tracks from the database and remove all cached music files and album art. This action cannot be undone.\n\nAre you sure you want to continue?",
"trackDatabaseReset": "Track database has been reset",
"errorResettingDatabase": "Error resetting database: {}",
"addRemoteProviderDialog": "Add Remote Provider",
"serverUrl": "Server URL",
"serverUrlHint": "https://your-jellyfin-server.com",
"username": "Username",
"password": "Password",
"add": "Add",
"allFieldsRequired": "All fields are required",
"imported": "Imported",
"lyricsLines":"lyrics lines for",
"createdAt": "created at",
"matched": "matched",
"notMatched": "not matched",
"deleted": "deleted",
"confirmDelete": "confirm delete",
"thisWillRemoveThemFromYourDevice":"This will remove them from your device.",
"added": "added",
"to":"to",
"unknown":"Unknown",
"noPlaylistsAvailable":"No Playlists available"
}
157 changes: 157 additions & 0 deletions assets/locales/zh.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
{
"noMediaSelected": "未选择媒体",
"noLyricsAvailable": "无歌词可用",
"fetchLyrics": "获取歌词",
"searchLyricsWith": "使用 {} 搜索歌词",
"whereToSearchLyrics": "您想从哪里搜索歌词?",
"musixmatch": "Musixmatch",
"netease": "网易云音乐",
"lrclib": "Lrclib",
"manualImport": "手动导入",
"cancel": "取消",
"lyricsOptions": "歌词选项",
"refetch": "重新获取",
"clear": "清除",
"liveSyncLyrics": "实时同步歌词",
"manualOffset": "手动偏移",
"adjustLyricsTiming": "调整歌词时间",
"enterOffsetMs": "输入偏移量(毫秒)。\n正值延迟歌词显示,负值提前显示。",
"offsetMs": "偏移量(毫秒)",
"save": "保存",
"liveLyricsSync": "实时歌词同步",
"offset": "偏移量:{}毫秒",
"minus100ms": "-100毫秒",
"plus10ms": "+10毫秒",
"reset": "重置",
"plus100ms": "+100毫秒",
"fineAdjustment": "精细调整",
"onlyTimedLyricsCanBeSynced": "只有带时间戳的歌词才能同步",
"errorLoadingLyrics": "加载歌词时出错:{}",
"errorParsingLyrics": "解析歌词时出错:{}",
"noTracksInQueue": "队列中没有曲目",
"unknownArtist": "未知艺术家",
"showLyrics": "显示歌词",
"showQueue": "显示队列",
"showCover": "显示封面",
"importedLyricsLines": "为\"{}\"导入了 {} 行歌词",
"selected": "已选择 {} 项",
"addToPlaylist": "添加到播放列表",
"delete": "删除",
"groovyBox": "GroovyBox",
"library": "音乐库",
"importFiles": "导入文件",
"searchTracks": "搜索曲目...",
"searchTracksWithCount": "搜索曲目...(共 {} 首)",
"searchTracksFiltered": "搜索曲目...({} / {} 首)",
"error": "错误:{}",
"noTracksYet": "还没有曲目,请添加一些!",
"noTracksMatchSearch": "没有匹配搜索的曲目。",
"deleteTrack": "删除曲目?",
"confirmDeleteTrack": "您确定要删除\"{}\"吗?此操作无法撤销。",
"deletedTrack": "已删除\"{}\"",
"viewDetails": "查看详情",
"editMetadata": "编辑元数据",
"importLyrics": "导入歌词",
"noPlaylistsAvailable": "没有可用的播放列表,请先创建一个!",
"addedToPlaylist": "已添加到 {}",
"trackDetails": "曲目详情",
"close": "关闭",
"title": "标题",
"artist": "艺术家",
"album": "专辑",
"duration": "时长",
"fileSize": "文件大小",
"filePath": "文件路径",
"dateAdded": "添加日期",
"albumArt": "专辑封面",
"present": "存在",
"editTrack": "编辑曲目",
"addedTracksToPlaylist": "已将 {} 首曲目添加到 {}",
"deleteTracks": "删除曲目?",
"confirmDeleteTracks": "您确定要删除 {} 首曲目吗?这将从您的设备中移除它们。",
"deletedTracks": "已删除 {} 首曲目",
"batchImportComplete": "批量导入完成:{} 匹配,{} 不匹配",
"settings": "设置",
"autoScan": "自动扫描",
"autoScanMusicLibraries": "自动扫描音乐库",
"autoScanDescription": "自动扫描音乐库中的新音乐文件",
"watchForChanges": "监视更改",
"watchForChangesDescription": "监视音乐库的文件更改",
"musicLibraries": "音乐库",
"scanLibraries": "扫描库",
"addMusicLibrary": "添加音乐库",
"addMusicLibraryDescription": "添加文件夹库来索引音乐文件。文件将被复制到内部存储以供播放。",
"noMusicLibrariesAdded": "尚未添加音乐库。",
"errorLoadingLibraries": "加载库时出错:{}",
"remoteProviders": "远程提供商",
"indexRemoteProviders": "索引远程提供商",
"addRemoteProvider": "添加远程提供商",
"remoteProvidersDescription": "连接到远程媒体服务器,如Jellyfin,来访问您的音乐库。",
"noRemoteProvidersAdded": "尚未添加远程提供商。",
"errorLoadingProviders": "加载提供商时出错:{}",
"playerSettings": "播放器设置",
"playerSettingsDescription": "配置播放器行为和显示选项。",
"defaultPlayerScreen": "默认播放器屏幕",
"defaultPlayerScreenDescription": "选择打开播放器时显示的屏幕。",
"lyricsMode": "歌词模式",
"lyricsModeDescription": "选择歌词的显示方式。",
"continuePlaying": "继续播放",
"continuePlayingDescription": "队列为空后继续播放音乐",
"databaseManagement": "数据库管理",
"databaseManagementDescription": "管理您的音乐数据库和缓存文件。",
"resetTrackDatabase": "重置曲目数据库",
"resetTrackDatabaseDescription": "从数据库中移除所有曲目并删除缓存文件。此操作无法撤销。",
"errorLoadingSettings": "加载设置时出错:{}",
"noTracksInAlbum": "此专辑中没有曲目",
"playAll": "播放全部",
"addToQueue": "添加到队列",
"noTracksInPlaylist": "此播放列表中没有曲目",
"noAlbumsFound": "未找到专辑",
"createOne": "创建一个",
"addNewPlaylist": "添加新播放列表",
"newPlaylist": "新播放列表",
"playlistName": "播放列表名称",
"create": "创建",
"noPlaylistsYet": "还没有播放列表",
"queue": "队列",
"appSettings": "应用设置",
"appSettingsDescription": "配置应用范围的设置和偏好。",
"language": "语言",
"languageDescription": "选择应用语言。",
"english": "English",
"chinese": "中文",
"settingsTitle": "设置",
"tracks": "曲目",
"albums": "专辑",
"playlists": "播放列表",
"addedMusicLibrary": "已添加音乐库:{}",
"errorAddingLibrary": "添加库时出错:{}",
"librariesScannedSuccessfully": "库扫描成功",
"errorScanningLibraries": "扫描库时出错:{}",
"noActiveRemoteProviders": "没有活动的远程提供商可索引",
"indexedRemoteProviders": "已索引 {} 个远程提供商",
"errorIndexingRemoteProviders": "索引远程提供商时出错:{}",
"addedRemoteProvider": "已添加远程提供商:{}",
"errorAddingProvider": "添加提供商时出错:{}",
"confirmResetTrackDatabase": "这将永久删除数据库中的所有曲目,并移除所有缓存的音乐文件和专辑封面。此操作无法撤销。\n\n您确定要继续吗?",
"trackDatabaseReset": "曲目数据库已重置",
"errorResettingDatabase": "重置数据库时出错:{}",
"addRemoteProviderDialog": "添加远程提供商",
"serverUrl": "服务器URL",
"serverUrlHint": "https://your-jellyfin-server.com",
"username": "用户名",
"password": "密码",
"add": "添加",
"allFieldsRequired": "所有字段都是必填的",
"imported": "已导入",
"lyricsLines": "歌词",
"createdAt":"创建于",
"matched": "匹配的",
"notMatched": "未匹配的",
"deleted": "已删除",
"confirmDelete": "确认删除",
"thisWillRemoveThemFromYourDevice":"这将从您的设备上删除。",
"added": "已添加",
"to": "至",
"unknown": "未知"
}
7 changes: 3 additions & 4 deletions lib/data/playlist_repository.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions lib/data/track_repository.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/logic/audio_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class AudioHandler extends BaseAudioHandler with QueueHandler, SeekHandler {
.when(
data: (settings) => settings.continuePlays,
loading: () => false,
error: (_, __) => false,
error: (_, _) => false,
);

if (continuePlays && _queueIndex == _queue.length - 1) {
Expand Down
Loading