mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Update:More localization strings #1103
This commit is contained in:
		
							parent
							
								
									faac6f677a
								
							
						
					
					
						commit
						2662b3ec49
					
				| @ -2,7 +2,7 @@ | ||||
|   <modals-modal v-model="show" name="bookmarks" :width="500" :height="'unset'"> | ||||
|     <template #outer> | ||||
|       <div class="absolute top-0 left-0 p-5 w-2/3 overflow-hidden"> | ||||
|         <p class="font-book text-3xl text-white truncate">Your Bookmarks</p> | ||||
|         <p class="font-book text-3xl text-white truncate">{{ $strings.LabelYourBookmarks }}</p> | ||||
|       </div> | ||||
|     </template> | ||||
|     <div ref="container" class="w-full rounded-lg bg-bg box-shadow-md overflow-y-auto overflow-x-hidden" style="max-height: 80vh"> | ||||
| @ -11,7 +11,7 @@ | ||||
|           <modals-bookmarks-bookmark-item :key="bookmark.id" :highlight="currentTime === bookmark.time" :bookmark="bookmark" @click="clickBookmark" @update="submitUpdateBookmark" @delete="deleteBookmark" /> | ||||
|         </template> | ||||
|         <div v-if="!bookmarks.length" class="flex h-32 items-center justify-center"> | ||||
|           <p class="text-xl">No Bookmarks</p> | ||||
|           <p class="text-xl">{{ $strings.MessageNoBookmarks }}</p> | ||||
|         </div> | ||||
|         <div v-if="!hideCreate" class="w-full h-px bg-white bg-opacity-10" /> | ||||
|         <form v-if="!hideCreate" @submit.prevent="submitCreateBookmark"> | ||||
|  | ||||
| @ -7,9 +7,9 @@ | ||||
|       </div> | ||||
|       <!-- <span class="bg-black-400 rounded-xl py-1 px-2 text-sm font-mono">{{ tracks.length }}</span> --> | ||||
|       <div class="flex-grow" /> | ||||
|       <ui-btn small :color="showFullPath ? 'gray-600' : 'primary'" class="mr-2 hidden md:block" @click.stop="showFullPath = !showFullPath">Full Path</ui-btn> | ||||
|       <ui-btn small :color="showFullPath ? 'gray-600' : 'primary'" class="mr-2 hidden md:block" @click.stop="showFullPath = !showFullPath">{{ $strings.ButtonFullPath }}</ui-btn> | ||||
|       <nuxt-link v-if="userCanUpdate && !isFile" :to="`/audiobook/${libraryItemId}/edit`" class="mr-2 md:mr-4" @mousedown.prevent> | ||||
|         <ui-btn small color="primary">Manage Tracks</ui-btn> | ||||
|         <ui-btn small color="primary">{{ $strings.ButtonManageTracks }}</ui-btn> | ||||
|       </nuxt-link> | ||||
|       <div class="cursor-pointer h-10 w-10 rounded-full hover:bg-black-400 flex justify-center items-center duration-500" :class="showTracks ? 'transform rotate-180' : ''"> | ||||
|         <span class="material-icons text-4xl">expand_more</span> | ||||
| @ -20,10 +20,10 @@ | ||||
|         <table class="text-sm tracksTable"> | ||||
|           <tr class="font-book"> | ||||
|             <th class="w-10">#</th> | ||||
|             <th class="text-left">Filename</th> | ||||
|             <th class="text-left w-20">Size</th> | ||||
|             <th class="text-left w-20">Duration</th> | ||||
|             <th v-if="userCanDownload" class="text-center w-20">Download</th> | ||||
|             <th class="text-left">{{ $strings.LabelFilename }}</th> | ||||
|             <th class="text-left w-20">{{ $strings.LabelSize }}</th> | ||||
|             <th class="text-left w-20">{{ $strings.LabelDuration }}</th> | ||||
|             <th v-if="userCanDownload" class="text-center w-20">{{ $strings.LabelDownload }}</th> | ||||
|             <th v-if="showExperimentalFeatures" class="text-center w-20"> | ||||
|               <div class="flex items-center"> | ||||
|                 <p>Tone</p> | ||||
|  | ||||
| @ -1,21 +1,21 @@ | ||||
| <template> | ||||
|   <div class="w-full py-6"> | ||||
|     <div class="flex items-center mb-4"> | ||||
|       <p class="text-lg mb-0 font-semibold">Episodes</p> | ||||
|       <p class="text-lg mb-0 font-semibold">{{ $strings.HeaderEpisodes }}</p> | ||||
|       <div class="flex-grow" /> | ||||
|       <template v-if="isSelectionMode"> | ||||
|         <ui-tooltip :text="`Mark as ${selectedIsFinished ? 'Not Finished' : 'Finished'}`" direction="bottom"> | ||||
|         <ui-tooltip :text="selectedIsFinished ? $strings.MessageMarkAsNotFinished : $strings.MessageMarkAsFinished" direction="bottom"> | ||||
|           <ui-read-icon-btn :disabled="processing" :is-read="selectedIsFinished" @click="toggleBatchFinished" class="mx-1.5" /> | ||||
|         </ui-tooltip> | ||||
|         <ui-btn color="error" :disabled="processing" small class="h-9" @click="removeSelectedEpisodes">Remove {{ selectedEpisodes.length }} episode{{ selectedEpisodes.length > 1 ? 's' : '' }}</ui-btn> | ||||
|         <ui-btn :disabled="processing" small class="ml-2 h-9" @click="clearSelected">Cancel</ui-btn> | ||||
|         <ui-btn color="error" :disabled="processing" small class="h-9" @click="removeSelectedEpisodes">{{ $getString('MessageRemoveEpisodes', [selectedEpisodes.length]) }}</ui-btn> | ||||
|         <ui-btn :disabled="processing" small class="ml-2 h-9" @click="clearSelected">{{ $strings.ButtonCancel }}</ui-btn> | ||||
|       </template> | ||||
|       <template v-else> | ||||
|         <controls-filter-select v-model="filterKey" :items="filterItems" class="w-32 md:w-36 h-9 ml-1 sm:ml-4" /> | ||||
|         <controls-sort-select v-model="sortKey" :descending.sync="sortDesc" :items="sortItems" class="w-32 sm:w-44 md:w-48 h-9 ml-1 sm:ml-4" /> | ||||
|       </template> | ||||
|     </div> | ||||
|     <p v-if="!episodes.length" class="py-4 text-center text-lg">No Episodes</p> | ||||
|     <p v-if="!episodes.length" class="py-4 text-center text-lg">{{ $strings.MessageNoEpisodes }}</p> | ||||
|     <template v-for="episode in episodesSorted"> | ||||
|       <tables-podcast-episode-table-row ref="episodeRow" :key="episode.id" :episode="episode" :library-item-id="libraryItem.id" :selection-mode="isSelectionMode" class="item" @play="playEpisode" @remove="removeEpisode" @edit="editEpisode" @view="viewEpisode" @selected="episodeSelected" /> | ||||
|     </template> | ||||
|  | ||||
| @ -2,21 +2,21 @@ | ||||
|   <div class="w-full"> | ||||
|     <div v-if="missingParts.length" class="bg-error border-red-800 shadow-md p-4"> | ||||
|       <p class="text-sm mb-2"> | ||||
|         Missing Parts <span class="text-sm">({{ missingParts.length }})</span> | ||||
|         {{ $strings.LabelMissingParts }} <span class="text-sm">({{ missingParts.length }})</span> | ||||
|       </p> | ||||
|       <p class="text-sm font-mono">{{ missingPartChunks.join(', ') }}</p> | ||||
|     </div> | ||||
| 
 | ||||
|     <div v-if="invalidParts.length" class="bg-error border-red-800 shadow-md p-4"> | ||||
|       <p class="text-sm mb-2"> | ||||
|         Invalid Parts <span class="text-sm">({{ invalidParts.length }})</span> | ||||
|         {{ $strings.LabelInvalidParts }} <span class="text-sm">({{ invalidParts.length }})</span> | ||||
|       </p> | ||||
|       <div> | ||||
|         <p v-for="part in invalidParts" :key="part.filename" class="text-sm font-mono">{{ part.filename }}: {{ part.error }}</p> | ||||
|       </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <tables-tracks-table :title="`Audiobook Tracks`" :tracks="media.tracks" :is-file="isFile" :library-item-id="libraryItemId" class="mt-6" /> | ||||
|     <tables-tracks-table :title="$strings.LabelStatsAudioTracks" :tracks="media.tracks" :is-file="isFile" :library-item-id="libraryItemId" class="mt-6" /> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
|  | ||||
| @ -42,7 +42,7 @@ | ||||
| 
 | ||||
|               <div v-if="narrator" class="flex py-0.5 mt-4"> | ||||
|                 <div class="w-32"> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">Narrated By</span> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelNarrators }}</span> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <template v-for="(narrator, index) in narrators"> | ||||
| @ -53,7 +53,7 @@ | ||||
|               </div> | ||||
|               <div v-if="publishedYear" class="flex py-0.5"> | ||||
|                 <div class="w-32"> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">Publish Year</span> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelPublishYear }}</span> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   {{ publishedYear }} | ||||
| @ -61,7 +61,7 @@ | ||||
|               </div> | ||||
|               <div class="flex py-0.5" v-if="genres.length"> | ||||
|                 <div class="w-32"> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">Genres</span> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelGenres }}</span> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <template v-for="(genre, index) in genres"> | ||||
| @ -72,7 +72,7 @@ | ||||
|               </div> | ||||
|               <div v-if="tracks.length" class="flex py-0.5"> | ||||
|                 <div class="w-32"> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">Duration</span> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelDuration }}</span> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   {{ durationPretty }} | ||||
| @ -80,7 +80,7 @@ | ||||
|               </div> | ||||
|               <div class="flex py-0.5"> | ||||
|                 <div class="w-32"> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">Size</span> | ||||
|                   <span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelSize }}</span> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   {{ sizePretty }} | ||||
| @ -100,7 +100,7 @@ | ||||
|           <!-- Podcast episode downloads queue --> | ||||
|           <div v-if="episodeDownloadsQueued.length" class="px-4 py-2 mt-4 bg-info bg-opacity-40 text-sm font-semibold rounded-md text-gray-100 relative max-w-max mx-auto md:mx-0"> | ||||
|             <div class="flex items-center"> | ||||
|               <p class="text-sm py-1">{{ episodeDownloadsQueued.length }} Episode{{ episodeDownloadsQueued.length === 1 ? '' : 's' }} queued for download</p> | ||||
|               <p class="text-sm py-1">{{ $getString('MessageEpisodesQueuedForDownload', [episodeDownloadsQueued.length]) }}</p> | ||||
| 
 | ||||
|               <span v-if="userIsAdminOrUp" class="material-icons hover:text-error text-xl ml-3 cursor-pointer" @click="clearDownloadQueue">close</span> | ||||
|             </div> | ||||
| @ -110,16 +110,16 @@ | ||||
|           <div v-if="episodesDownloading.length" class="px-4 py-2 mt-4 bg-success bg-opacity-20 text-sm font-semibold rounded-md text-gray-100 relative max-w-max mx-auto md:mx-0"> | ||||
|             <div v-for="episode in episodesDownloading" :key="episode.id" class="flex items-center"> | ||||
|               <widgets-loading-spinner /> | ||||
|               <p class="text-sm py-1 pl-4">Downloading episode "{{ episode.episodeDisplayTitle }}"</p> | ||||
|               <p class="text-sm py-1 pl-4">{{ $strings.MessageDownloadingEpisode }} "{{ episode.episodeDisplayTitle }}"</p> | ||||
|             </div> | ||||
|           </div> | ||||
| 
 | ||||
|           <!-- Progress --> | ||||
|           <div v-if="!isPodcast && progressPercent > 0" class="px-4 py-2 mt-4 bg-primary text-sm font-semibold rounded-md text-gray-100 relative max-w-max mx-auto md:mx-0" :class="resettingProgress ? 'opacity-25' : ''"> | ||||
|             <p v-if="progressPercent < 1" class="leading-6">Your Progress: {{ Math.round(progressPercent * 100) }}%</p> | ||||
|             <p v-else class="text-xs">Finished {{ $formatDate(userProgressFinishedAt, dateFormat) }}</p> | ||||
|             <p v-if="progressPercent < 1" class="text-gray-200 text-xs">{{ $elapsedPretty(userTimeRemaining) }} remaining</p> | ||||
|             <p class="text-gray-400 text-xs pt-1">Started {{ $formatDate(userProgressStartedAt, dateFormat) }}</p> | ||||
|             <p v-if="progressPercent < 1" class="leading-6">{{ $strings.LabelYourProgress }}: {{ Math.round(progressPercent * 100) }}%</p> | ||||
|             <p v-else class="text-xs">{{ $strings.LabelFinished }} {{ $formatDate(userProgressFinishedAt, dateFormat) }}</p> | ||||
|             <p v-if="progressPercent < 1" class="text-gray-200 text-xs">{{ $getString('LabelTimeRemaining', [$elapsedPretty(userTimeRemaining)]) }}</p> | ||||
|             <p class="text-gray-400 text-xs pt-1">{{ $strings.LabelStarted }} {{ $formatDate(userProgressStartedAt, dateFormat) }}</p> | ||||
| 
 | ||||
|             <div v-if="!resettingProgress" class="absolute -top-1.5 -right-1.5 p-1 w-5 h-5 rounded-full bg-bg hover:bg-error border border-primary flex items-center justify-center cursor-pointer" @click.stop="clearProgressClick"> | ||||
|               <span class="material-icons text-sm">close</span> | ||||
| @ -130,41 +130,41 @@ | ||||
|           <div class="flex items-center justify-center md:justify-start pt-4"> | ||||
|             <ui-btn v-if="showPlayButton" :disabled="isStreaming" color="success" :padding-x="4" small class="flex items-center h-9 mr-2" @click="playItem"> | ||||
|               <span v-show="!isStreaming" class="material-icons -ml-2 pr-1 text-white">play_arrow</span> | ||||
|               {{ isStreaming ? 'Playing' : 'Play' }} | ||||
|               {{ isStreaming ? $strings.ButtonPlaying : $strings.ButtonPlay }} | ||||
|             </ui-btn> | ||||
|             <ui-btn v-else-if="isMissing || isInvalid" color="error" :padding-x="4" small class="flex items-center h-9 mr-2"> | ||||
|               <span v-show="!isStreaming" class="material-icons -ml-2 pr-1 text-white">error</span> | ||||
|               {{ isMissing ? 'Missing' : 'Incomplete' }} | ||||
|               {{ isMissing ? $strings.LabelMissing : $strings.LabelIncomplete }} | ||||
|             </ui-btn> | ||||
| 
 | ||||
|             <ui-btn v-if="showReadButton" color="info" :padding-x="4" small class="flex items-center h-9 mr-2" @click="openEbook"> | ||||
|               <span class="material-icons -ml-2 pr-2 text-white">auto_stories</span> | ||||
|               Read | ||||
|               {{ $strings.ButtonRead }} | ||||
|             </ui-btn> | ||||
| 
 | ||||
|             <ui-tooltip v-if="userCanUpdate" text="Edit" direction="top"> | ||||
|               <ui-icon-btn icon="edit" class="mx-0.5" @click="editClick" /> | ||||
|             </ui-tooltip> | ||||
| 
 | ||||
|             <ui-tooltip v-if="!isPodcast" :text="userIsFinished ? 'Mark as Not Finished' : 'Mark as Finished'" direction="top"> | ||||
|             <ui-tooltip v-if="!isPodcast" :text="userIsFinished ? $strings.MessageMarkAsNotFinished : $strings.MessageMarkAsFinished" direction="top"> | ||||
|               <ui-read-icon-btn :disabled="isProcessingReadUpdate" :is-read="userIsFinished" class="mx-0.5" @click="toggleFinished" /> | ||||
|             </ui-tooltip> | ||||
| 
 | ||||
|             <ui-tooltip v-if="!isPodcast && userCanUpdate" text="Collections" direction="top"> | ||||
|             <ui-tooltip v-if="!isPodcast && userCanUpdate" :text="$strings.LabelCollections" direction="top"> | ||||
|               <ui-icon-btn icon="collections_bookmark" class="mx-0.5" outlined @click="collectionsClick" /> | ||||
|             </ui-tooltip> | ||||
| 
 | ||||
|             <!-- Only admin or root user can download new episodes --> | ||||
|             <ui-tooltip v-if="isPodcast && userIsAdminOrUp" text="Find Episodes" direction="top"> | ||||
|             <ui-tooltip v-if="isPodcast && userIsAdminOrUp" :text="$strings.LabelFindEpisodes" direction="top"> | ||||
|               <ui-icon-btn icon="search" class="mx-0.5" :loading="fetchingRSSFeed" outlined @click="findEpisodesClick" /> | ||||
|             </ui-tooltip> | ||||
| 
 | ||||
|             <ui-tooltip v-if="bookmarks.length" text="Your Bookmarks" direction="top"> | ||||
|             <ui-tooltip v-if="bookmarks.length" :text="$strings.LabelYourBookmarks" direction="top"> | ||||
|               <ui-icon-btn :icon="bookmarks.length ? 'bookmarks' : 'bookmark_border'" class="mx-0.5" @click="clickBookmarksBtn" /> | ||||
|             </ui-tooltip> | ||||
| 
 | ||||
|             <!-- RSS feed --> | ||||
|             <ui-tooltip v-if="showRssFeedBtn" text="Open RSS Feed" direction="top"> | ||||
|             <ui-tooltip v-if="showRssFeedBtn" :text="$strings.LabelOpenRSSFeed" direction="top"> | ||||
|               <ui-icon-btn icon="rss_feed" class="mx-0.5" :bg-color="rssFeedUrl ? 'success' : 'primary'" outlined @click="clickRSSFeed" /> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
|  | ||||
| @ -23,16 +23,20 @@ | ||||
|   "ButtonLogout": "Logout", | ||||
|   "ButtonLookup": "Lookup", | ||||
|   "ButtonLibrary": "Library", | ||||
|   "ButtonManageTracks": "Manage Tracks", | ||||
|   "ButtonMapChapterTitles": "Map Chapter Titles", | ||||
|   "ButtonMatchAllAuthors": "Match All Authors", | ||||
|   "ButtonMatchBooks": "Match Books", | ||||
|   "ButtonMapChapterTitles": "Map Chapter Titles", | ||||
|   "ButtonNevermind": "Nevermind", | ||||
|   "ButtonOk": "Ok", | ||||
|   "ButtonOpenManager": "Open Manager", | ||||
|   "ButtonPlay": "Play", | ||||
|   "ButtonPlaying": "Playing", | ||||
|   "ButtonPurgeAllCache": "Purge All Cache", | ||||
|   "ButtonPurgeItemsCache": "Purge Items Cache", | ||||
|   "ButtonPurgeMediaProgress": "Purge Media Progress", | ||||
|   "ButtonQuickMatch": "Quick Match", | ||||
|   "ButtonRead": "Read", | ||||
|   "ButtonRemove": "Remove", | ||||
|   "ButtonRemoveAll": "Remove All", | ||||
|   "ButtonRemoveAllLibraryItems": "Remove All Library Items", | ||||
| @ -137,13 +141,16 @@ | ||||
|   "LabelFile": "File", | ||||
|   "LabelFilename": "Filename", | ||||
|   "LabelFilterByUser": "Filter by User", | ||||
|   "LabelFindEpisodes": "Find Episodes", | ||||
|   "LabelFinished": "Finished", | ||||
|   "LabelFolder": "Folder", | ||||
|   "LabelFolders": "Folders", | ||||
|   "LabelGenres": "Genres", | ||||
|   "LabelHour": "Hour", | ||||
|   "LabelIcon": "Icon", | ||||
|   "LabelIncomplete": "Incomplete", | ||||
|   "LabelInterval": "Interval", | ||||
|   "LabelInvalidParts": "Invalid Parts", | ||||
|   "LabelItem": "Item", | ||||
|   "LabelLanguage": "Language", | ||||
|   "LabelLastSeen": "Last Seen", | ||||
| @ -156,6 +163,8 @@ | ||||
|   "LabelMediaType": "Media Type", | ||||
|   "LabelMetadataProvider": "Metadata Provider", | ||||
|   "LabelMinute": "Minute", | ||||
|   "LabelMissing": "Missing", | ||||
|   "LabelMissingParts": "Missing Parts", | ||||
|   "LabelName": "Name", | ||||
|   "LabelNarrators": "Narrators", | ||||
|   "LabelNewPassword": "New Password", | ||||
| @ -169,6 +178,7 @@ | ||||
|   "LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times", | ||||
|   "LabelNotificationsMaxQueueSize": "Max queue size for notification events", | ||||
|   "LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.", | ||||
|   "LabelOpenRSSFeed": "Open RSS Feed", | ||||
|   "LabelPassword": "Password", | ||||
|   "LabelPath": "Path", | ||||
|   "LabelPermissionsAccessAllLibraries": "Can Access All Libraries", | ||||
| @ -229,6 +239,7 @@ | ||||
|   "LabelSettingsSquareBookCoversHelp": "Prefer to use square covers over standard 1.6:1 book covers", | ||||
|   "LabelSize": "Size", | ||||
|   "LabelStart": "Start", | ||||
|   "LabelStarted": "Started", | ||||
|   "LabelStartedAt": "Started At", | ||||
|   "LabelStatsAudioTracks": "Audio Tracks", | ||||
|   "LabelStatsAuthors": "Authors", | ||||
| @ -250,6 +261,7 @@ | ||||
|   "LabelTagsAccessibleToUser": "Tags Accessible to User", | ||||
|   "LabelTimeListened": "Time Listened", | ||||
|   "LabelTimeListenedToday": "Time Listened Today", | ||||
|   "LabelTimeRemaining": "{0} remaining", | ||||
|   "LabelTimeToShift": "Time to shift in seconds", | ||||
|   "LabelTitle": "Title", | ||||
|   "LabelTotalTimeListened": "Total Time Listened", | ||||
| @ -259,9 +271,13 @@ | ||||
|   "LabelUser": "User", | ||||
|   "LabelUsername": "Username", | ||||
|   "LabelWeekdaysToRun": "Weekdays to run", | ||||
|   "LabelYourBookmarks": "Your Bookmarks", | ||||
|   "LabelYourProgress": "Your Progress", | ||||
|   "MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in", | ||||
|   "MessageBackupsNote": "Backups do not include any files stored in your library folders.", | ||||
|   "MessageCheckingCron": "Checking cron...", | ||||
|   "MessageDownloadingEpisode": "Downloading episode", | ||||
|   "MessageEpisodesQueuedForDownload": "{0} Episode(s) queued for download", | ||||
|   "MessageForceReScanDescription": "will scan all files again like a fresh scan. Audio file ID3 tags, OPF files, and text files will be scanned as new.", | ||||
|   "MessageImportantNotice": "Important Notice!", | ||||
|   "MessageInsertChapterBelow": "Insert chapter below", | ||||
| @ -269,10 +285,14 @@ | ||||
|   "MessageLoading": "Loading...", | ||||
|   "MessageLoadingFolders": "Loading folders...", | ||||
|   "MessageMapChapterTitles": "Map chapter titles to your existing audiobook chapters without adjusting timestamps", | ||||
|   "MessageMarkAsFinished": "Mark as Finished", | ||||
|   "MessageMarkAsNotFinished": "Mark as Not Finished", | ||||
|   "MessageMatchBooksDescription": "will attempt to match books in the library with a book from the selected search provider and fill in empty details and cover art. Does not overwrite details.", | ||||
|   "MessageNoAuthors": "No Authors", | ||||
|   "MessageNoBookmarks": "No Bookmarks", | ||||
|   "MessageNoChapters": "No Chapters", | ||||
|   "MessageNoCoversFound": "No Covers Found", | ||||
|   "MessageNoEpisodes": "No Episodes", | ||||
|   "MessageNoFoldersAvailable": "No Folders Available", | ||||
|   "MessageNoGenres": "No Genres", | ||||
|   "MessageNoItems": "No Items", | ||||
| @ -284,6 +304,7 @@ | ||||
|   "MessageNoResults": "No Results", | ||||
|   "MessageQuickMatchDescription": "Populate empty item details & cover with first match result from '{0}'. Does not overwrite details unless 'Prefer matched metadata' server setting is enabled.", | ||||
|   "MessageRemoveAllItemsWarning": "WARNING! This action will remove all library items from the database including any updates or matches you have made. This does not do anything to your actual files. Are you sure?", | ||||
|   "MessageRemoveEpisodes": "Remove {0} episode(s)", | ||||
|   "MessageRemoveUserWarning": "Are you sure you want to permanently delete user \"{0}\"?", | ||||
|   "MessageReportBugsAndContribute": "Report bugs, request features, and contribute on", | ||||
|   "MessageRestoreBackupConfirm": "Are you sure you want to restore the backup created on", | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user