refactor: 重构中间件和路由处理逻辑 fix: 修复音频示例API的错误处理 docs: 更新README和DOCKER_USAGE文档 style: 优化语言切换器样式 chore: 更新.gitignore添加生产环境配置文件
258 lines
9.7 KiB
JSON
258 lines
9.7 KiB
JSON
{
|
|
"audioPlayer": {
|
|
"play": "Play",
|
|
"pause": "Pause",
|
|
"backward10s": "Backward 10s",
|
|
"forward10s": "Forward 10s",
|
|
"currentPlaybackRate": "Current playback rate",
|
|
"mute": "Mute",
|
|
"unmute": "Unmute",
|
|
"share": "Share",
|
|
"download": "Download",
|
|
"cannotGetAudioFileName": "Cannot get audio file name for sharing.",
|
|
"shareFailed": "Share failed: Cannot get audio file name.",
|
|
"playLinkCopied": "Play link copied to clipboard!"
|
|
},
|
|
"audioPlayerControls": {
|
|
"pause": "Pause",
|
|
"play": "Play"
|
|
},
|
|
"billingToggle": {
|
|
"monthly": "Monthly",
|
|
"annually": "Annually",
|
|
"save20Percent": "Save 20%"
|
|
},
|
|
"configSelector": {
|
|
"loading": "Loading...",
|
|
"selectTTSConfig": "Select TTS Config",
|
|
"noAvailableTTSConfig": "No available TTS config",
|
|
"pleaseConfigTTS": "Please configure TTS service in settings first"
|
|
},
|
|
"contentSection": {
|
|
"viewAll": "View All",
|
|
"noContent": "No content yet",
|
|
"refresh": "Refresh",
|
|
"recommendForYou": "Recommend for you"
|
|
},
|
|
"footerLinks": {
|
|
"termsOfUse": "Terms of Use",
|
|
"privacyPolicy": "Privacy Policy",
|
|
"contactUs": "Contact Us",
|
|
"copyright": "© 2025 Hex2077"
|
|
},
|
|
"languageSwitcher": {
|
|
"chinese": "中文",
|
|
"english": "English",
|
|
"japanese": "日本語"
|
|
},
|
|
"loginModal": {
|
|
"loginToYourAccount": "Login to Your Account",
|
|
"signInWithGoogle": "Sign in with Google",
|
|
"signInWithGitHub": "Sign in with GitHub"
|
|
},
|
|
"podcastCard": {
|
|
"podcastGenerationQueued": "Podcast generation queued...",
|
|
"podcastGenerating": "Podcast generating...",
|
|
"moreOperations": "More operations",
|
|
"mostPopular": "Most Popular"
|
|
},
|
|
"podcastContent": {
|
|
"speaker": "Speaker",
|
|
"cannotLoadPodcastDetails": "Cannot load podcast details:",
|
|
"unknownError": "Unknown error",
|
|
"returnToHomepage": "Return to Homepage",
|
|
"downloadAudio": "Download Audio",
|
|
"script": "Script",
|
|
"outline": "Outline",
|
|
"noOutlineContent": "No outline content."
|
|
},
|
|
"podcastCreator": {
|
|
"giveVoiceToCreativity": "Lend creativity an authentic voice",
|
|
"enterTextPlaceholder": "Enter text, Markdown format supported...",
|
|
"addCustomInstructions": "Add custom instructions (optional)... e.g. fixed opening and closing remarks, contextual text, key points of output content",
|
|
"ttsConfigSelection": "TTS Config Selection",
|
|
"speaker": "Speaker",
|
|
"languageSelection": "Language Selection",
|
|
"durationSelection": "Duration Selection",
|
|
"fileUpload": "Upload File",
|
|
"pasteContent": "Paste Content",
|
|
"copyContent": "Copy Content",
|
|
"credits": "Credits",
|
|
"checkIn": "Check In",
|
|
"create": "Create",
|
|
"biu": "Biu!",
|
|
"checkInSuccess": "Check-in successful",
|
|
"checkInFailed": "Check-in failed",
|
|
"networkError": "Network error or server no response",
|
|
"topicCannotBeEmpty": "Topic cannot be empty",
|
|
"pleaseEnterPodcastTopic": "Please enter podcast topic.",
|
|
"ttsConfigNotSelected": "TTS config not selected",
|
|
"pleaseSelectTTSConfig": "Please select a TTS config.",
|
|
"pleaseSelectSpeaker": "Please select a speaker",
|
|
"pleaseSelectAtLeastOneSpeaker": "Please select at least one podcast speaker.",
|
|
"podcastGenerationFailed": "Podcast generation failed:",
|
|
"maximum5Speakers": "You can select up to 5 speakers.",
|
|
"chinese": "Chinese",
|
|
"english": "English",
|
|
"japanese": "Japanese",
|
|
"under5Minutes": "Under 5 minutes",
|
|
"between5And10Minutes": "5-10 minutes",
|
|
"between10And15Minutes": "10-15 minutes"
|
|
},
|
|
"podcastTabs": {
|
|
"script": "Script",
|
|
"outline": "Outline",
|
|
"noOutlineContent": "No outline content."
|
|
},
|
|
"pointsOverview": {
|
|
"totalPoints": "Total Points",
|
|
"last20EntriesOnly": "Only the last 20 entries are displayed.",
|
|
"pointDetails": "Point Details",
|
|
"noPointDetails": "No point details yet."
|
|
},
|
|
"pricingCard": {
|
|
"perMonth": "/month",
|
|
"getStarted": "Get Started",
|
|
"upgradeToPro": "Upgrade to Pro",
|
|
"upgradeToBusiness": "Upgrade to Business",
|
|
"mostPopular": "Most Popular"
|
|
},
|
|
"pricingSection": {
|
|
"creator": "Creator",
|
|
"pro": "Pro",
|
|
"business": "Business",
|
|
"chooseYourPlan": "Choose your plan",
|
|
"forIndividualsOrTeams": "Whether you are an individual creator or a large team, we have a plan for you.",
|
|
"visitPricingPage": "Visit Pricing Page",
|
|
"monthlyCreatorFeatures": {
|
|
"points": "2,000 Points/month",
|
|
"aiVoiceSynthesis": "AI voice synthesis",
|
|
"twoSpeakers": "Up to 2 speakers",
|
|
"commercialLicense": "Commercial License",
|
|
"audioDownload": "Audio Download"
|
|
},
|
|
"monthlyProFeatures": {
|
|
"points": "5,000 Points/month",
|
|
"aiVoiceSynthesis": "AI voice synthesis",
|
|
"multiSpeakers": "Multi-speaker support",
|
|
"commercialLicense": "Commercial License",
|
|
"audioDownload": "Audio Download",
|
|
"advancedVoices": "Advanced Voices",
|
|
"storytellingMode": "Storytelling Mode"
|
|
},
|
|
"monthlyBusinessFeatures": {
|
|
"points": "12,000 Points/month",
|
|
"aiVoiceSynthesis": "AI voice synthesis",
|
|
"multiSpeakers": "Multi-speaker support",
|
|
"commercialLicense": "Commercial License",
|
|
"dedicatedAccountManager": "Dedicated Account Manager",
|
|
"audioDownload": "Audio Download",
|
|
"advancedVoices": "Advanced Voices",
|
|
"storytellingMode": "Storytelling Mode",
|
|
"apiAccess": "API Access"
|
|
},
|
|
"comingSoon": "(Coming Soon)"
|
|
},
|
|
"settingsForm": {
|
|
"settings": "Settings",
|
|
"apiSettingsDescription": "Configure API settings and TTS services for the podcast generator",
|
|
"generalSettings": "General Settings",
|
|
"inputYourOpenAIAPIKey": "Input your OpenAI API Key",
|
|
"model": "Model",
|
|
"selectOrEnterModelName": "Select or enter model name",
|
|
"customModelInput": "Enter custom model",
|
|
"optionalCustomBaseURL": "Optional: Custom API Base URL",
|
|
"ttsServiceSettings": "TTS Service Settings",
|
|
"webAPITTSServices": "Web API TTS Services",
|
|
"edgeTTS": "Edge TTS",
|
|
"edgeTTSDescription": "Free TTS service based on Microsoft Edge, providing high-quality speech synthesis.",
|
|
"doubaoTTS": "Doubao TTS",
|
|
"doubaoTTSDescription": "Speech synthesis service powered by ByteDance Volcano Engine, baseUrl=https://openspeech.bytedance.com/api/v3/tts/unidirectional",
|
|
"inputDoubaoAppID": "Input Doubao App ID",
|
|
"inputDoubaoAccessKey": "Input Doubao Access Key",
|
|
"minimaxTTS": "Minimax TTS",
|
|
"minimaxTTSDescription": "Speech synthesis service powered by Minimax, baseUrl=https://api.minimaxi.com/v1/t2a_v2",
|
|
"inputMinimaxGroupID": "Input Minimax Group ID",
|
|
"inputMinimaxAPIKey": "Input Minimax API Key",
|
|
"fishTTS": "Fish TTS",
|
|
"fishTTSDescription": "Speech synthesis service powered by FishAudio, baseUrl=https://api.fish.audio/v1/tts",
|
|
"inputFishTTSAPIKey": "Input Fish TTS API Key",
|
|
"geminiTTS": "Gemini TTS",
|
|
"geminiTTSDescription": "Speech synthesis service powered by Google Gemini, baseUrl=https://generativelanguage.googleapis.com/v1beta/models",
|
|
"inputGeminiAPIKey": "Input Gemini API Key",
|
|
"localAPITTSServices": "Local API TTS Services",
|
|
"indexTTS": "Index TTS",
|
|
"indexTTSDescription": "IndexTTS service for local deployment, providing custom speech synthesis capabilities.",
|
|
"reset": "Reset",
|
|
"saving": "Saving...",
|
|
"saveSettings": "Save Settings",
|
|
"settingsSavedSuccessfully": "Settings saved successfully!",
|
|
"errorSavingSettings": "Error saving settings, please try again",
|
|
"configurationNotes": "Configuration Notes",
|
|
"apiKeyRequired": "API Key is required to call OpenAI service to generate podcast script",
|
|
"ttsOptional": "TTS service configuration is optional, unconfigured services will not be displayed in voice selection",
|
|
"emptyFieldsNull": "Empty fields will be saved as null values",
|
|
"settingsApplyImmediately": "Settings will take effect immediately after saving, no application restart required",
|
|
"apiKey": "API Key",
|
|
"baseURL": "Base URL",
|
|
"appID": "App ID",
|
|
"accessKey": "Access Key",
|
|
"groupID": "Group ID"
|
|
},
|
|
"shareButton": {
|
|
"copySuccess": "Copy successful",
|
|
"pageLinkCopied": "Page link copied to clipboard!",
|
|
"copyFailed": "Copy failed",
|
|
"cannotCopyPageLink": "Cannot copy page link to clipboard."
|
|
},
|
|
"sidebar": {
|
|
"expandSidebar": "Expand Sidebar",
|
|
"collapseSidebar": "Collapse Sidebar",
|
|
"home": "Home",
|
|
"library": "Library",
|
|
"explore": "Explore",
|
|
"pricing": "Pricing",
|
|
"points": "Points",
|
|
"ttsSettings": "TTS Settings",
|
|
"github": "Github",
|
|
"twitter": "Twitter",
|
|
"tiktok": "TikTok",
|
|
"email": "Email",
|
|
"login": "Login",
|
|
"logout": "Logout",
|
|
"areYouSureToLogout": "Are you sure you want to log out?",
|
|
"cancel": "Cancel",
|
|
"confirmLogout": "Logout",
|
|
"sessionExpired": "Session expired, logging out",
|
|
"user": "User",
|
|
"clickAvatarToLogout": "Click avatar to logout",
|
|
"lessThanSMSizeCannotExpand": "Cannot expand on screens smaller than sm size",
|
|
"showMore": "Show more",
|
|
"generalSettings": "General Settings"
|
|
},
|
|
"toast": {
|
|
"title": "Notification",
|
|
"message": "This is a notification message."
|
|
},
|
|
"voicesModal": {
|
|
"selectSpeaker": "Select Speaker",
|
|
"all": "All",
|
|
"male": "Male",
|
|
"female": "Female",
|
|
"chinese": "Chinese (zh)",
|
|
"english": "English (en)",
|
|
"japanese": "Japanese (ja)",
|
|
"close": "Close",
|
|
"searchVoices": "Search voices...",
|
|
"noMatchingVoices": "No matching voices found.",
|
|
"language": "Language",
|
|
"unknown": "Unknown",
|
|
"host": "Host",
|
|
"confirmSelection": "Confirm Selection",
|
|
"max5Speakers": "You can select up to 5 speakers.",
|
|
"searchVoicesPlaceholder": "Search voices...",
|
|
"maxVoicesAlert": "You can select up to 5 speakers.",
|
|
"delete": "Delete",
|
|
"presenter": "Presenter"
|
|
}
|
|
} |