474 lines
22 KiB
TypeScript
474 lines
22 KiB
TypeScript
export const en = {
|
|
// Header
|
|
myTube: "MyTube",
|
|
manage: "Manage",
|
|
settings: "Settings",
|
|
logout: "Logout",
|
|
pleaseEnterUrlOrSearchTerm: "Please enter a video URL or search term",
|
|
unexpectedErrorOccurred: "An unexpected error occurred. Please try again.",
|
|
uploadVideo: "Upload Video",
|
|
enterUrlOrSearchTerm: "Enter video URL or search term",
|
|
manageVideos: "Manage Videos",
|
|
instruction: "Instruction",
|
|
|
|
// Home
|
|
pasteUrl: "Paste video or collection URL",
|
|
download: "Download",
|
|
search: "Search",
|
|
recentDownloads: "Recent Downloads",
|
|
noDownloads: "No downloads yet",
|
|
downloadStarted: "Download started",
|
|
downloadFailed: "Download failed",
|
|
loadingVideos: "Loading videos...",
|
|
searchResultsFor: "Search Results for",
|
|
fromYourLibrary: "From Your Library",
|
|
noMatchingVideos: "No matching videos in your library.",
|
|
fromYouTube: "From YouTube",
|
|
loadingYouTubeResults: "Loading YouTube results...",
|
|
noYouTubeResults: "No YouTube results found",
|
|
noVideosYet: "No videos yet. Submit a video URL to download your first one!",
|
|
views: "views",
|
|
|
|
// Settings
|
|
general: "General",
|
|
security: "Security",
|
|
videoDefaults: "Video Player Defaults",
|
|
downloadSettings: "Download Settings",
|
|
language: "Language",
|
|
enableLogin: "Enable Login Protection",
|
|
password: "Password",
|
|
passwordHelper: "Leave empty to keep current password, or type to change",
|
|
passwordSetHelper: "Set a password for accessing the application",
|
|
autoPlay: "Auto-play Videos",
|
|
autoLoop: "Auto-loop Videos",
|
|
maxConcurrent: "Max Concurrent Downloads",
|
|
saveSettings: "Save Settings",
|
|
saving: "Saving...",
|
|
backToManage: "Back to Manage",
|
|
settingsSaved: "Settings saved successfully",
|
|
settingsFailed: "Failed to save settings",
|
|
debugMode: "Debug Mode",
|
|
debugModeDescription: "Show or hide console messages (requires refresh)",
|
|
tagsManagement: "Tags Management",
|
|
newTag: "New Tag",
|
|
tags: "Tags",
|
|
// Database
|
|
database: "Database",
|
|
migrateDataDescription:
|
|
"Migrate data from legacy JSON files to the new SQLite database. This action is safe to run multiple times (duplicates will be skipped).",
|
|
migrateDataButton: "Migrate Data from JSON",
|
|
scanFiles: "Scan Files",
|
|
scanFilesSuccess: "Scan complete. Added {count} new videos.",
|
|
scanFilesDeleted: " {count} missing files removed.",
|
|
scanFilesFailed: "Scan failed",
|
|
scanFilesConfirmMessage:
|
|
"The system will scan the root folder of the video path. New files will be added, and missing video files will be removed from the system.",
|
|
scanning: "Scanning...",
|
|
migrateConfirmation:
|
|
"Are you sure you want to migrate data? This may take a few moments.",
|
|
migrationResults: "Migration Results",
|
|
migrationReport: "Migration Report",
|
|
migrationSuccess: "Migration completed. See details in alert.",
|
|
migrationNoData: "Migration finished but no data found.",
|
|
migrationFailed: "Migration failed",
|
|
migrationWarnings: "WARNINGS",
|
|
migrationErrors: "ERRORS",
|
|
itemsMigrated: "items migrated",
|
|
fileNotFound: "File not found at",
|
|
noDataFilesFound:
|
|
"No data files were found to migrate. Please check your volume mappings.",
|
|
removeLegacyData: "Remove Legacy Data",
|
|
removeLegacyDataDescription:
|
|
"Delete the old JSON files (videos.json, collections.json, etc.) to clean up disk space. Only do this after verifying your data has been successfully migrated.",
|
|
removeLegacyDataConfirmTitle: "Delete Legacy Data?",
|
|
removeLegacyDataConfirmMessage:
|
|
"Are you sure you want to delete the legacy JSON data files? This action cannot be undone.",
|
|
legacyDataDeleted: "Legacy data deleted successfully.",
|
|
formatLegacyFilenames: "Format Legacy Filenames",
|
|
formatLegacyFilenamesDescription:
|
|
"Batch rename all video files, thumbnails, and subtitles to the new standard format: Title-Author-YYYY. This operation will modify filenames on the disk and update the database logic.",
|
|
formatLegacyFilenamesButton: "Format Filenames",
|
|
deleteLegacyDataButton: "Delete Legacy Data",
|
|
cleanupTempFiles: "Clean Up Temp Files",
|
|
cleanupTempFilesDescription:
|
|
"Remove all temporary download files (.ytdl, .part) from the uploads directory. This helps free up disk space from incomplete or cancelled downloads.",
|
|
cleanupTempFilesConfirmTitle: "Clean Up Temporary Files?",
|
|
cleanupTempFilesConfirmMessage:
|
|
"This will permanently delete all .ytdl and .part files in the uploads directory. Make sure there are no active downloads before proceeding.",
|
|
cleanupTempFilesActiveDownloads:
|
|
"Cannot clean up temporary files while downloads are active. Please wait for all downloads to complete or cancel them first.",
|
|
formatFilenamesSuccess:
|
|
"Processed: {processed}\nRenamed: {renamed}\nErrors: {errors}",
|
|
formatFilenamesDetails: "Details:",
|
|
formatFilenamesMore: "...and {count} more",
|
|
formatFilenamesError: "Failed to format filenames: {error}",
|
|
itemsPerPage: "Items Per Page",
|
|
itemsPerPageHelper: "Number of videos to show per page (Default: 12)",
|
|
showYoutubeSearch: "Show YouTube Search Results",
|
|
cleanupTempFilesSuccess: "Successfully deleted {count} temporary file(s).",
|
|
cleanupTempFilesFailed: "Failed to clean up temporary files",
|
|
|
|
// Cookie Settings
|
|
cookieSettings: "Cookie Settings",
|
|
cookieUploadDescription:
|
|
'Upload cookies.txt to pass YouTube bot checks and enable Bilibili subtitle downloads. The file will be renamed to cookies.txt automatically. (Example: use "Get cookies.txt LOCALLY" extension to export cookies)',
|
|
uploadCookies: "Upload Cookies",
|
|
onlyTxtFilesAllowed: "Only .txt files are allowed",
|
|
cookiesUploadedSuccess: "Cookies uploaded successfully",
|
|
cookiesUploadFailed: "Failed to upload cookies",
|
|
cookiesFound: "cookies.txt found",
|
|
cookiesNotFound: "cookies.txt not found",
|
|
deleteCookies: "Delete Cookies",
|
|
confirmDeleteCookies:
|
|
"Are you sure you want to delete the cookies file? This will affect your ability to download age-restricted or member-only videos.",
|
|
cookiesDeletedSuccess: "Cookies deleted successfully",
|
|
cookiesDeleteFailed: "Failed to delete cookies",
|
|
|
|
// Cloud Drive
|
|
cloudDriveSettings: "Cloud Drive (OpenList)",
|
|
enableAutoSave: "Enable Auto Save to Cloud",
|
|
apiUrl: "API URL",
|
|
apiUrlHelper: "e.g. https://your-alist-instance.com/api/fs/put",
|
|
token: "Token",
|
|
uploadPath: "Upload Path",
|
|
cloudDrivePathHelper: "Directory path in cloud drive, e.g. /mytube-uploads",
|
|
|
|
// Manage
|
|
manageContent: "Manage Content",
|
|
videos: "Videos",
|
|
collections: "Collections",
|
|
allVideos: "All Videos",
|
|
delete: "Delete",
|
|
backToHome: "Back to Home",
|
|
confirmDelete: "Are you sure you want to delete this?",
|
|
deleteSuccess: "Deleted successfully",
|
|
deleteFailed: "Failed to delete",
|
|
noVideos: "No videos found",
|
|
noCollectionsFound: "No collections found",
|
|
noCollections: "No collections found",
|
|
searchVideos: "Search videos...",
|
|
thumbnail: "Thumbnail",
|
|
title: "Title",
|
|
author: "Author",
|
|
authors: "Authors",
|
|
created: "Created",
|
|
name: "Name",
|
|
size: "Size",
|
|
actions: "Actions",
|
|
deleteCollection: "Delete Collection",
|
|
deleteVideo: "Delete Video",
|
|
noVideosFoundMatching: "No videos found matching your search.",
|
|
refreshThumbnail: "Refresh Thumbnail",
|
|
|
|
// Video Player
|
|
playing: "Play",
|
|
paused: "Pause",
|
|
next: "Next",
|
|
previous: "Previous",
|
|
loop: "Loop",
|
|
autoPlayOn: "Auto-play On",
|
|
autoPlayOff: "Auto-play Off",
|
|
autoPlayNext: "Auto-play Next",
|
|
videoNotFound: "Video not found",
|
|
videoNotFoundOrLoaded: "Video not found or could not be loaded.",
|
|
deleting: "Deleting...",
|
|
addToCollection: "Add to Collection",
|
|
originalLink: "Original Link",
|
|
source: "Source:",
|
|
addedDate: "Added Date:",
|
|
hideComments: "Hide Comments",
|
|
showComments: "Show Comments",
|
|
latestComments: "Latest Comments",
|
|
noComments: "No comments available.",
|
|
upNext: "Up Next",
|
|
noOtherVideos: "No other videos available",
|
|
currentlyIn: "Currently in:",
|
|
collectionWarning:
|
|
"Adding to a different collection will remove it from the current one.",
|
|
addToExistingCollection: "Add to existing collection:",
|
|
selectCollection: "Select a collection",
|
|
add: "Add",
|
|
createNewCollection: "Create new collection:",
|
|
collectionName: "Collection name",
|
|
create: "Create",
|
|
removeFromCollection: "Remove from Collection",
|
|
confirmRemoveFromCollection:
|
|
"Are you sure you want to remove this video from the collection?",
|
|
remove: "Remove",
|
|
loadingVideo: "Loading video...",
|
|
current: "(Current)",
|
|
rateThisVideo: "Rate this video",
|
|
enterFullscreen: "Enter Fullscreen",
|
|
exitFullscreen: "Exit Fullscreen",
|
|
share: "Share",
|
|
editTitle: "Edit Title",
|
|
titleUpdated: "Title updated successfully",
|
|
titleUpdateFailed: "Failed to update title",
|
|
thumbnailRefreshed: "Thumbnail refreshed successfully",
|
|
thumbnailRefreshFailed: "Failed to refresh thumbnail",
|
|
videoUpdated: "Video updated successfully",
|
|
videoUpdateFailed: "Failed to update video",
|
|
failedToLoadVideos: "Failed to load videos. Please try again later.",
|
|
videoRemovedSuccessfully: "Video removed successfully",
|
|
failedToDeleteVideo: "Failed to delete video",
|
|
pleaseEnterSearchTerm: "Please enter a search term",
|
|
failedToSearch: "Failed to search. Please try again.",
|
|
searchCancelled: "Search was cancelled",
|
|
openInExternalPlayer: "Open in external player",
|
|
playWith: "Play with...",
|
|
|
|
// Login
|
|
signIn: "Sign in",
|
|
verifying: "Verifying...",
|
|
incorrectPassword: "Incorrect password",
|
|
loginFailed: "Failed to verify password",
|
|
defaultPasswordHint: "Default password: 123",
|
|
checkingConnection: "Checking connection...",
|
|
connectionError: "Connection Error",
|
|
backendConnectionFailed:
|
|
"Unable to connect to the server. Please check if the backend is running and port is open, then try again.",
|
|
retry: "Retry",
|
|
resetPassword: "Reset Password",
|
|
resetPasswordTitle: "Reset Password",
|
|
resetPasswordMessage: "Are you sure you want to reset the password? The current password will be reset to a random 8-character string and displayed in the backend log.",
|
|
resetPasswordConfirm: "Reset",
|
|
resetPasswordSuccess: "Password has been reset. Check backend logs for the new password.",
|
|
waitTimeMessage: "Please wait {time} before trying again.",
|
|
tooManyAttempts: "Too many failed attempts.",
|
|
linkCopied: "Link copied to clipboard",
|
|
copyFailed: "Failed to copy link",
|
|
|
|
// Collection Page
|
|
loadingCollection: "Loading collection...",
|
|
collectionNotFound: "Collection not found",
|
|
noVideosInCollection: "No videos in this collection.",
|
|
back: "Back",
|
|
|
|
// Author Videos
|
|
loadVideosError: "Failed to load videos. Please try again later.",
|
|
unknownAuthor: "Unknown",
|
|
noVideosForAuthor: "No videos found for this author.",
|
|
|
|
// Delete Collection Modal
|
|
deleteCollectionTitle: "Delete Collection",
|
|
deleteCollectionConfirmation:
|
|
"Are you sure you want to delete the collection",
|
|
collectionContains: "This collection contains",
|
|
deleteCollectionOnly: "Delete Collection Only",
|
|
deleteCollectionAndVideos: "Delete Collection & All Videos",
|
|
|
|
// Common
|
|
loading: "Loading...",
|
|
error: "Error",
|
|
success: "Success",
|
|
cancel: "Cancel",
|
|
confirm: "Confirm",
|
|
save: "Save",
|
|
on: "On",
|
|
off: "Off",
|
|
continue: "Continue",
|
|
expand: "Expand",
|
|
collapse: "Collapse",
|
|
|
|
// Video Card
|
|
unknownDate: "Unknown date",
|
|
part: "Part",
|
|
collection: "Collection",
|
|
|
|
// Upload Modal
|
|
selectVideoFile: "Select Video File",
|
|
pleaseSelectVideo: "Please select a video file",
|
|
uploadFailed: "Upload failed",
|
|
failedToUpload: "Failed to upload video",
|
|
uploading: "Uploading...",
|
|
upload: "Upload",
|
|
|
|
// Bilibili Modal
|
|
bilibiliCollectionDetected: "Bilibili Collection Detected",
|
|
bilibiliSeriesDetected: "Bilibili Series Detected",
|
|
multiPartVideoDetected: "Multi-part Video Detected",
|
|
collectionHasVideos: "This Bilibili collection has {count} videos.",
|
|
seriesHasVideos: "This Bilibili series has {count} videos.",
|
|
videoHasParts: "This Bilibili video has {count} parts.",
|
|
downloadAllVideos: "Download All {count} Videos",
|
|
downloadAllParts: "Download All {count} Parts",
|
|
downloadThisVideoOnly: "Download This Video Only",
|
|
downloadCurrentPartOnly: "Download Current Part Only",
|
|
processing: "Processing...",
|
|
wouldYouLikeToDownloadAllParts: "Would you like to download all parts?",
|
|
wouldYouLikeToDownloadAllVideos: "Would you like to download all videos?",
|
|
allPartsAddedToCollection: "All parts will be added to this collection",
|
|
allVideosAddedToCollection: "All videos will be added to this collection",
|
|
queued: "Queued",
|
|
waitingInQueue: "Waiting in queue",
|
|
|
|
// Downloads
|
|
downloads: "Downloads",
|
|
activeDownloads: "Active Downloads",
|
|
manageDownloads: "Manage Downloads",
|
|
queuedDownloads: "Queued Downloads",
|
|
downloadHistory: "Download History",
|
|
clearQueue: "Clear Queue",
|
|
clearHistory: "Clear History",
|
|
noActiveDownloads: "No active downloads",
|
|
noQueuedDownloads: "No queued downloads",
|
|
noDownloadHistory: "No download history",
|
|
downloadCancelled: "Download cancelled",
|
|
queueCleared: "Queue cleared",
|
|
historyCleared: "History cleared",
|
|
removedFromQueue: "Removed from queue",
|
|
removedFromHistory: "Removed from history",
|
|
status: "Status",
|
|
progress: "Progress",
|
|
speed: "Speed",
|
|
finishedAt: "Finished At",
|
|
failed: "Failed",
|
|
|
|
// Snackbar Messages
|
|
videoDownloading: "Video downloading",
|
|
downloadStartedSuccessfully: "Download started successfully",
|
|
collectionCreatedSuccessfully: "Collection created successfully",
|
|
videoAddedToCollection: "Video added to collection",
|
|
videoRemovedFromCollection: "Video removed from collection",
|
|
collectionDeletedSuccessfully: "Collection deleted successfully",
|
|
failedToDeleteCollection: "Failed to delete collection",
|
|
|
|
// Batch Download
|
|
batchDownload: "Batch Download",
|
|
batchDownloadDescription: "Paste multiple URLs below, one per line.",
|
|
urls: "URLs",
|
|
addToQueue: "Add to Queue",
|
|
batchTasksAdded: "{count} tasks added",
|
|
addBatchTasks: "Add batch tasks",
|
|
|
|
// Subscriptions
|
|
subscribeToAuthor: "Subscribe to Author",
|
|
subscribeConfirmationMessage: "Do you want to subscribe to {author}?",
|
|
subscribeDescription:
|
|
"The system will automatically check for new videos from this author and download them.",
|
|
checkIntervalMinutes: "Check Interval (minutes)",
|
|
subscribe: "Subscribe",
|
|
subscriptions: "Subscriptions",
|
|
interval: "Interval",
|
|
lastCheck: "Last Check",
|
|
platform: "Platform",
|
|
unsubscribe: "Unsubscribe",
|
|
confirmUnsubscribe: "Are you sure you want to unsubscribe from {author}?",
|
|
subscribedSuccessfully: "Subscribed successfully",
|
|
unsubscribedSuccessfully: "Unsubscribed successfully",
|
|
subscriptionAlreadyExists: "You are already subscribed to this author.",
|
|
minutes: "minutes",
|
|
never: "Never",
|
|
// Instruction Page
|
|
instructionSection1Title: "1. Download & Task Management",
|
|
instructionSection1Desc:
|
|
"This module includes video acquisition, batch tasks, and file import functions.",
|
|
instructionSection1Sub1: "Link Download:",
|
|
instructionSection1Item1Label: "Basic Download:",
|
|
instructionSection1Item1Text:
|
|
"Paste links from various video sites into the input box to download directly.",
|
|
instructionSection1Item2Label: "Permissions:",
|
|
instructionSection1Item2Text:
|
|
"For sites requiring membership or login, please log in to the corresponding account in a new browser tab first to acquire download permissions.",
|
|
instructionSection1Sub2: "Smart Recognition:",
|
|
instructionSection1Item3Label: "YouTube Author Subscription:",
|
|
instructionSection1Item3Text:
|
|
"When the pasted link is an author's channel, the system will ask if you want to subscribe. After subscribing, the system can automatically scan and download the author's updates at set intervals.",
|
|
instructionSection1Item4Label: "Bilibili Collection Download:",
|
|
instructionSection1Item4Text:
|
|
"When the pasted link is a Bilibili favorite/collection, the system will ask if you want to download the entire collection content.",
|
|
instructionSection1Sub3: "Advanced Tools (Download Management Page):",
|
|
instructionSection1Item5Label: "Batch Add Tasks:",
|
|
instructionSection1Item5Text:
|
|
"Supports pasting multiple download links at once (one per line) for batch addition.",
|
|
instructionSection1Item6Label: "Scan Files:",
|
|
instructionSection1Item6Text:
|
|
"Automatically searches for all files in the video storage root directory and first-level folders. This function is suitable for syncing files to the system after administrators manually deposit them in the server backend.",
|
|
instructionSection1Item7Label: "Upload Video:",
|
|
instructionSection1Item7Text:
|
|
"Supports uploading local video files directly from the client to the server.",
|
|
|
|
instructionSection2Title: "2. Video Library Management",
|
|
instructionSection2Desc:
|
|
"Maintain and edit downloaded or imported video resources.",
|
|
instructionSection2Sub1: "Collection/Video Deletion:",
|
|
instructionSection2Text1:
|
|
"When deleting a collection on the management page, the system offers two options: delete only the collection list item (keep files), or completely delete the physical files within the collection.",
|
|
instructionSection2Sub2: "Thumbnail Repair:",
|
|
instructionSection2Text2:
|
|
"If a video has no cover after downloading, click the refresh button on the video thumbnail, and the system will re-capture the first frame of the video as the new thumbnail.",
|
|
|
|
instructionSection3Title: "3. System Settings",
|
|
instructionSection3Desc:
|
|
"Configure system parameters, maintain data, and extend functions.",
|
|
instructionSection3Sub1: "Security Settings:",
|
|
instructionSection3Text1:
|
|
"Set the system login password (default initial password is 123, recommended to change after first login).",
|
|
instructionSection3Sub2: "Tag Management:",
|
|
instructionSection3Text2:
|
|
'Supports adding or deleting video classification tags. Note: You must click the "Save" button at the bottom of the page for changes to take effect.',
|
|
instructionSection3Sub3: "System Maintenance:",
|
|
instructionSection3Item1Label: "Clean Up Temp Files:",
|
|
instructionSection3Item1Text:
|
|
"Used to clear residual temporary download files caused by occasional backend failures to free up space.",
|
|
instructionSection3Item2Label: "Database Migration:",
|
|
instructionSection3Item2Text:
|
|
"Designed for early version users. Use this function to migrate data from JSON to the new SQLite database. After successful migration, click the delete button to clean up old history data.",
|
|
instructionSection3Sub4: "Extended Services:",
|
|
instructionSection3Item3Label: "OpenList Cloud Drive:",
|
|
instructionSection3Item3Text:
|
|
"(In Development) Supports connecting to user-deployed OpenList services. Add configuration here to enable cloud drive integration.",
|
|
|
|
// Disclaimer
|
|
disclaimerTitle: "Disclaimer",
|
|
disclaimerText:
|
|
"1. Purpose and Restrictions\nThis software (including code and documentation) is intended solely for personal learning, research, and technical exchange. It is strictly prohibited to use this software for any commercial purposes or for any illegal activities that violate local laws and regulations.\n\n2. Liability\nThe developer is unaware of and has no control over how users utilize this software. Any legal liabilities, disputes, or damages arising from the illegal or improper use of this software (including but not limited to copyright infringement) shall be borne solely by the user. The developer assumes no direct, indirect, or joint liability.\n\n3. Modifications and Distribution\nThis project is open-source. Any individual or organization modifying or forking this code must comply with the open-source license. Important: If a third party modifies the code to bypass or remove the original user authentication/security mechanisms and distributes such versions, the modifier/distributor bears full responsibility for any consequences. We strongly discourage bypassing or tampering with any security verification mechanisms.\n\n4. Non-Profit Statement\nThis is a completely free open-source project. The developer does not accept donations and has never published any donation pages. The software itself allows no charges and offers no paid services. Please be vigilant and beware of any scams or misleading information claiming to collect fees on behalf of this project.",
|
|
history: "History",
|
|
|
|
// Existing Video Detection
|
|
existingVideoDetected: "Existing Video Detected",
|
|
videoAlreadyDownloaded: "This video has already been downloaded.",
|
|
viewVideo: "View Video",
|
|
previouslyDeletedVideo: "Previously Deleted Video",
|
|
previouslyDeleted: "Previously Deleted",
|
|
videoWasDeleted: "This video was previously downloaded but has been deleted.",
|
|
downloadAgain: "Download Again",
|
|
downloadedOn: "Downloaded on",
|
|
deletedOn: "Deleted on",
|
|
existingVideo: "Existing Video",
|
|
skipped: "Skipped",
|
|
videoSkippedExists: "Video already exists, skipped download",
|
|
videoSkippedDeleted: "Video was previously deleted, skipped download",
|
|
downloading: "Downloading...",
|
|
poweredBy: "Powered by MyTube",
|
|
|
|
// Sorting
|
|
sort: "Sort",
|
|
sortBy: "Sort by",
|
|
dateDesc: "Date Added (Newest)",
|
|
dateAsc: "Date Added (Oldest)",
|
|
viewsDesc: "Views (High to Low)",
|
|
viewsAsc: "Views (Low to High)",
|
|
nameAsc: "Name (A-Z)",
|
|
random: "Random Shuffle",
|
|
|
|
// yt-dlp Configuration
|
|
ytDlpConfiguration: "yt-dlp Configuration",
|
|
ytDlpConfigurationDescription: "Configure yt-dlp download options. See",
|
|
ytDlpConfigurationDocs: "documentation",
|
|
ytDlpConfigurationDescriptionEnd: "for more information.",
|
|
customize: "Customize",
|
|
hide: "Hide",
|
|
reset: "Reset",
|
|
more: "More",
|
|
proxyOnlyApplyToYoutube: 'Proxy only apply to Youtube',
|
|
moveSubtitlesToVideoFolder: 'Subtitles Location',
|
|
moveSubtitlesToVideoFolderOn: 'With video together',
|
|
moveSubtitlesToVideoFolderOff: 'In isolated subtitle folder',
|
|
moveSubtitlesToVideoFolderDescription: 'When enabled, subtitle files will be moved to the same folder as the video file. When disabled, they will be moved to the isolated subtitle folder.',
|
|
moveThumbnailsToVideoFolder: 'Thumbnail Location',
|
|
moveThumbnailsToVideoFolderOn: 'With video together',
|
|
moveThumbnailsToVideoFolderOff: 'In isolated images folder',
|
|
moveThumbnailsToVideoFolderDescription: 'When enabled, thumbnail files will be moved to the same folder as the video file. When disabled, they will be moved to the isolated images folder.',
|
|
};
|