Files
iiEsaywebUIapp/lib/l10n/app_en.arb

1969 lines
67 KiB
Plaintext
Raw Normal View History

{
"@@locale": "en",
"appTitle": "Conduit",
"@appTitle": {
"description": "Application name displayed in the app and OS UI."
},
"retry": "Retry",
"@retry": {
"description": "Button label to try an action again."
},
"back": "Back",
"@back": {
"description": "Back navigation label/tooltip."
},
"you": "You",
"@you": {
"description": "Profile tab title."
},
"loadingProfile": "Loading profile...",
"@loadingProfile": {
"description": "Progress message while fetching profile data."
},
"pleaseCheckConnection": "Please check your connection and try again",
"connectionIssueTitle": "Can't reach your server",
"@connectionIssueTitle": {
"description": "Title shown when the configured server is unreachable"
},
"connectionIssueSubtitle": "Reconnect to continue or sign out to choose a different server.",
"@connectionIssueSubtitle": {
"description": "Subtitle explaining available actions when the server cannot be reached"
},
"@pleaseCheckConnection": {
"description": "Generic connectivity hint after an error."
},
"account": "Account",
"@account": {
"description": "Section header for account-related options."
},
2025-10-02 15:14:34 +05:30
"supportConduit": "Support Conduit",
"@supportConduit": {
"description": "Section header inviting the user to financially support the project."
},
"supportConduitSubtitle": "Keep Conduit independent by funding ongoing development.",
"@supportConduitSubtitle": {
"description": "Subtitle explaining why donations are helpful."
},
"githubSponsorsTitle": "GitHub Sponsors",
"@githubSponsorsTitle": {
"description": "Tile title linking to the GitHub Sponsors page."
},
"githubSponsorsSubtitle": "Become a recurring sponsor to fund roadmap items.",
"@githubSponsorsSubtitle": {
"description": "Subtitle explaining the impact of recurring sponsorship."
},
"buyMeACoffeeTitle": "Buy Me a Coffee",
"@buyMeACoffeeTitle": {
"description": "Tile title linking to the Buy Me a Coffee page."
},
"buyMeACoffeeSubtitle": "Make a one-time donation to say thanks.",
"@buyMeACoffeeSubtitle": {
"description": "Subtitle encouraging one-time donations via Buy Me a Coffee."
},
"signOut": "Sign Out",
"@signOut": {
"description": "Button/title for signing out of the app."
},
"endYourSession": "End your session",
"@endYourSession": {
"description": "Subtitle explaining the sign-out action."
},
"defaultModel": "Default Model",
"@defaultModel": {
"description": "Label for choosing a default AI model."
},
"autoSelect": "Auto-select",
"@autoSelect": {
"description": "Option to let the app pick a suitable model automatically."
},
"loadingModels": "Loading models...",
"@loadingModels": {
"description": "Progress message while fetching model list."
},
"failedToLoadModels": "Failed to load models",
"@failedToLoadModels": {
"description": "Error message shown when model list cannot be retrieved."
},
"availableModels": "Available Models",
"@availableModels": {
"description": "Header above a list of models to select from."
},
"modelCapabilityMultimodal": "Multimodal",
"@modelCapabilityMultimodal": {
"description": "Capability chip label for models that support multimodal input."
},
"modelCapabilityReasoning": "Reasoning",
"@modelCapabilityReasoning": {
"description": "Capability chip label for models that support reasoning features."
},
"noResults": "No results",
"@noResults": {
"description": "Shown when a search returns no matches."
},
"searchModels": "Search models...",
"@searchModels": {
"description": "Hint text for model search input."
},
"errorMessage": "Something went wrong. Please try again.",
"@errorMessage": {
"description": "Generic error message for unexpected failures."
},
"closeButtonSemantic": "Close",
"@closeButtonSemantic": {
"description": "Accessible label for a generic Close button."
},
"loadingContent": "Loading content",
"@loadingContent": {
"description": "Shown while loading page content."
},
"loadingShort": "Loading",
"@loadingShort": {
"description": "Short loading label used for accessibility."
},
"loadingAnnouncement": "Loading: {message}",
"@loadingAnnouncement": {
"description": "Screen reader announcement when loading a resource.",
"placeholders": {
"message": {
"type": "String",
"example": "Messages"
}
}
},
"errorAnnouncement": "Error: {error}",
"@errorAnnouncement": {
"description": "Screen reader announcement for an error.",
"placeholders": {
"error": {
"type": "String",
"example": "Network timeout"
}
}
},
"errorAnnouncementWithSuggestion": "Error: {error}. {suggestion}",
"@errorAnnouncementWithSuggestion": {
"description": "Screen reader announcement for an error with a follow-up suggestion.",
"placeholders": {
"error": {
"type": "String",
"example": "Network timeout"
},
"suggestion": {
"type": "String",
"example": "Please try again later."
}
}
},
"successAnnouncement": "Success: {message}",
"@successAnnouncement": {
"description": "Screen reader announcement for successful actions.",
"placeholders": {
"message": {
"type": "String",
"example": "Profile updated"
}
}
},
"noItems": "No items",
"@noItems": {
"description": "Placeholder text when a list is empty."
},
"noItemsToDisplay": "No items to display",
"@noItemsToDisplay": {
"description": "Alternative empty-state description."
},
"knowledgeBase": "Knowledge Base",
"@knowledgeBase": {
"description": "Section for knowledge base content."
},
2025-09-13 10:16:58 +05:30
"attachments": "Attachments",
"@attachments": {
"description": "Header above list of attached files in compose area."
},
"takePhoto": "Take a photo",
"@takePhoto": {
"description": "Action to open camera and capture a new photo."
},
"document": "Document",
"@document": {
"description": "Generic document label used in UI."
},
"backToServerSetup": "Back to server setup",
"@backToServerSetup": {
"description": "Button/back label to return to server configuration flow."
},
"connectedToServer": "Connected to Server",
"@connectedToServer": {
"description": "Status label indicating a successful server connection."
},
"signIn": "Sign In",
"@signIn": {
"description": "Button/heading for sign-in flows."
},
"enterCredentials": "Enter your credentials to access your AI conversations",
"@enterCredentials": {
"description": "Instructional text on the sign-in screen."
},
"credentials": "Credentials",
"@credentials": {
"description": "Header for credential input section."
},
"apiKey": "API Key",
"@apiKey": {
"description": "Label for API key input field."
},
"token": "Token",
"@token": {
"description": "Label for JWT token input field."
},
"usernameOrEmail": "Username or Email",
"@usernameOrEmail": {
"description": "Label for username/email input field."
},
"password": "Password",
"@password": {
"description": "Label for password input field."
},
"signInWithToken": "Sign in with Token",
"@signInWithToken": {
"description": "Alternative sign-in method using a JWT token."
},
"connectToServer": "Connect to Server",
"@connectToServer": {
"description": "Call-to-action button for server connection."
},
"enterServerAddress": "Enter your Open-WebUI server address to get started",
"@enterServerAddress": {
"description": "Instruction telling user to provide server URL to begin."
},
"serverUrl": "Server URL",
"@serverUrl": {
"description": "Label for server URL field."
},
"serverUrlHint": "https://your-server.com",
"@serverUrlHint": {
"description": "Hint text showing example server URL format."
},
"enterServerUrlSemantic": "Enter your server URL or IP address",
"@enterServerUrlSemantic": {
"description": "Semantic/ARIA label instructing to enter server URL or IP."
},
"headerName": "Header Name",
"@headerName": {
"description": "Label for custom header key."
},
"headerValue": "Header Value",
"@headerValue": {
"description": "Label for custom header value."
},
"headerValueHint": "api-key-123 or Bearer token",
"@headerValueHint": {
"description": "Hint text with example header values, including API key or Bearer token."
},
"addHeader": "Add header",
"@addHeader": {
"description": "Button to add a new custom header row."
},
"maximumHeadersReached": "Maximum headers reached",
"@maximumHeadersReached": {
"description": "Warning when custom header limit is reached."
},
"removeHeader": "Remove header",
"@removeHeader": {
"description": "Action to remove a custom header row."
},
"connecting": "Connecting...",
"@connecting": {
"description": "Status while attempting to connect to server."
},
"connectToServerButton": "Connect to Server",
"@connectToServerButton": {
"description": "Primary action button to initiate server connection."
},
"demoModeActive": "Demo Mode Active",
"@demoModeActive": {
"description": "Banner/text indicating the app runs in demo mode."
},
"skipServerSetupTryDemo": "Skip server setup and try the demo",
"@skipServerSetupTryDemo": {
"description": "CTA to bypass server configuration and enter demo mode."
},
"enterDemo": "Enter Demo",
"@enterDemo": {
"description": "Button to enter demo mode."
},
"demoBadge": "Demo",
"@demoBadge": {
"description": "Small badge label for demo content."
},
"serverNotOpenWebUI": "This does not appear to be an Open-WebUI server.",
"@serverNotOpenWebUI": {
"description": "Validation error when the server does not resemble Open-WebUI."
},
"serverUrlEmpty": "Server URL cannot be empty",
"@serverUrlEmpty": {
"description": "Validation message for empty server URL."
},
"invalidUrlFormat": "Invalid URL format. Please check your input.",
"@invalidUrlFormat": {
"description": "Validation message when URL format is incorrect."
},
"onlyHttpHttps": "Only HTTP and HTTPS protocols are supported.",
"@onlyHttpHttps": {
"description": "Validation note restricting protocols to HTTP/HTTPS."
},
"serverAddressRequired": "Server address is required (e.g., 192.168.1.10 or example.com).",
"@serverAddressRequired": {
"description": "Validation hint providing examples for server addresses."
},
"portRange": "Port must be between 1 and 65535.",
"@portRange": {
"description": "Validation message for allowed port range."
},
"invalidIpFormat": "Invalid IP address format. Use format like 192.168.1.10.",
"@invalidIpFormat": {
"description": "Validation message for IP addresses with example."
},
"couldNotConnectGeneric": "Couldn't connect. Double-check the address and try again.",
"@couldNotConnectGeneric": {
"description": "Generic failure when connecting to the server."
},
"weCouldntReachServer": "We couldn't reach the server. Check your connection and that the server is running.",
"@weCouldntReachServer": {
"description": "Connectivity error with hints to verify server status."
},
"connectionTimedOut": "Connection timed out. The server might be busy or blocked by a firewall.",
"@connectionTimedOut": {
"description": "Timeout error while connecting to server."
},
"useHttpOrHttpsOnly": "Use http:// or https:// only.",
"@useHttpOrHttpsOnly": {
"description": "Note instructing the user to include protocol in URL."
},
"loginFailed": "Login failed",
"@loginFailed": {
"description": "Title for failed login attempts."
},
"invalidCredentials": "Invalid username or password. Please try again.",
"@invalidCredentials": {
"description": "Detailed message when authentication fails."
},
"serverRedirectingHttps": "The server is redirecting requests. Check your server's HTTPS configuration.",
"@serverRedirectingHttps": {
"description": "Warning about HTTP→HTTPS redirect issues."
},
"unableToConnectServer": "Unable to connect to server. Please check your connection.",
"@unableToConnectServer": {
"description": "Generic server connection failure message."
},
"requestTimedOut": "The request timed out. Please try again.",
"@requestTimedOut": {
"description": "Timeout while waiting for a server response."
},
"genericSignInFailed": "We couldn't sign you in. Check your credentials and server settings.",
"@genericSignInFailed": {
"description": "Fallback sign-in error when no specific cause is known."
},
"skip": "Skip",
"@skip": {
"description": "Onboarding: skip current step."
},
"next": "Next",
"@next": {
"description": "Onboarding: go to the next step."
},
"done": "Done",
"@done": {
"description": "Onboarding: finish the flow."
},
2025-09-16 16:24:45 +05:30
"onboardStartTitle": "Hello, {username}",
"@onboardStartTitle": {
"description": "Onboarding card: start chatting title.",
"placeholders": {
"username": {
"type": "String",
"example": "Alex"
}
}
},
2025-09-16 20:10:53 +05:30
"onboardStartSubtitle": "Choose a model to get started. Tap New Chat anytime.",
"@onboardStartSubtitle": {
"description": "Onboarding card: brief guidance to begin a chat."
},
"onboardStartBullet1": "Tap the model name in the top bar to switch models",
"@onboardStartBullet1": {
"description": "Bullet: how to switch models."
},
"onboardStartBullet2": "Use New Chat to reset context",
"@onboardStartBullet2": {
"description": "Bullet: how to reset context."
},
"onboardAttachTitle": "Add context",
"@onboardAttachTitle": {
"description": "Onboarding card: attach context title."
},
"onboardAttachSubtitle": "Ground replies with content from Workspace or photos.",
"@onboardAttachSubtitle": {
"description": "Onboarding card: why attaching context helps."
},
"onboardAttachBullet1": "Workspace: PDFs, docs, datasets",
"@onboardAttachBullet1": {
"description": "Bullet: types of workspace files."
},
"onboardAttachBullet2": "Photos: camera or library",
"@onboardAttachBullet2": {
"description": "Bullet: photo sources supported."
},
"onboardSpeakTitle": "Speak naturally",
"@onboardSpeakTitle": {
"description": "Onboarding card: voice input title."
},
"onboardSpeakSubtitle": "Tap the mic to dictate with live waveform feedback.",
"@onboardSpeakSubtitle": {
"description": "Onboarding card: how voice input works."
},
"onboardSpeakBullet1": "Stop anytime; partial text is preserved",
"@onboardSpeakBullet1": {
"description": "Bullet: stop dictation preserves text."
},
"onboardSpeakBullet2": "Great for quick notes or long prompts",
"@onboardSpeakBullet2": {
"description": "Bullet: benefits of voice input."
},
"onboardQuickTitle": "Quick actions",
"@onboardQuickTitle": {
"description": "Onboarding card: quick actions title."
},
"onboardQuickSubtitle": "Open the menu to switch between Chats, Workspace, and Profile.",
"@onboardQuickSubtitle": {
"description": "Onboarding card: how to use the app menu."
},
"onboardQuickBullet1": "Tap the menu to access Chats, Workspace, Profile",
"@onboardQuickBullet1": {
"description": "Bullet: menu access to sections."
},
2025-09-07 12:22:02 +05:30
"onboardQuickBullet2": "Start New Chat or manage models from the top bar",
"@onboardQuickBullet2": {
"description": "Bullet: actions available in the top bar."
},
"attachmentLabel": "Attachment",
"@attachmentLabel": {
"description": "Label shown beside attachment chips in messages."
},
"tools": "Tools",
"@tools": {
"description": "Header for a tools/actions section."
},
"filters": "Filters",
"@filters": {
"description": "Header for toggle filters section."
},
"voiceInput": "Voice input",
"@voiceInput": {
"description": "Label for voice input feature."
},
"voice": "Voice",
"@voice": {
"description": "Title for the voice input bottom sheet."
},
"voiceStatusListening": "Listening…",
"@voiceStatusListening": {
"description": "Indicates the app is actively listening during voice input."
},
"voiceStatusRecording": "Recording…",
"@voiceStatusRecording": {
"description": "Indicates the app is recording audio for speech recognition."
},
"voiceHoldToTalk": "Hold to talk",
"@voiceHoldToTalk": {
"description": "Toggle label for hold-to-talk mode in voice input."
},
"voiceAutoSend": "Auto-send",
"@voiceAutoSend": {
"description": "Toggle label for automatically sending the final transcript."
},
"voiceTranscript": "Transcript",
"@voiceTranscript": {
"description": "Label above the transcribed voice input text."
},
"voicePromptSpeakNow": "Speak now…",
"@voicePromptSpeakNow": {
"description": "Placeholder prompting the user to start speaking."
},
"voicePromptTapStart": "Tap Start to begin",
"@voicePromptTapStart": {
"description": "Placeholder instructing the user to tap Start to begin recording."
},
"voiceActionStop": "Stop",
"@voiceActionStop": {
"description": "Button label to stop voice recording."
},
"voiceActionStart": "Start",
"@voiceActionStart": {
"description": "Button label to start voice recording."
},
"voiceCallTitle": "Voice Call",
"@voiceCallTitle": {
"description": "Title displayed on the voice call screen."
},
"voiceCallPause": "Pause",
"@voiceCallPause": {
"description": "Button label to pause a voice call."
},
"voiceCallResume": "Resume",
"@voiceCallResume": {
"description": "Button label to resume a paused voice call."
},
"voiceCallStop": "Stop",
"@voiceCallStop": {
"description": "Button label to stop the active voice call."
},
"voiceCallEnd": "End Call",
"@voiceCallEnd": {
"description": "Button label to end the voice call session."
},
"voiceCallReady": "Ready",
"@voiceCallReady": {
"description": "Status label shown when the voice call is ready to start."
},
"voiceCallConnecting": "Connecting...",
"@voiceCallConnecting": {
"description": "Status label shown while the voice call is connecting."
},
"voiceCallListening": "Listening",
"@voiceCallListening": {
"description": "Status label shown while the call is listening for input."
},
"voiceCallPaused": "Paused",
"@voiceCallPaused": {
"description": "Status label shown when the call is paused."
},
"voiceCallProcessing": "Thinking...",
"@voiceCallProcessing": {
"description": "Status label shown while the call processes a response."
},
"voiceCallSpeaking": "Speaking",
"@voiceCallSpeaking": {
"description": "Status label shown while the assistant is speaking."
},
"voiceCallDisconnected": "Disconnected",
"@voiceCallDisconnected": {
"description": "Status label shown when the voice call has ended or disconnected."
},
"voiceCallErrorHelp": "Please check:\n• Microphone permissions are granted\n• Speech recognition is available on your device\n• You are connected to the server",
"@voiceCallErrorHelp": {
"description": "Guidance shown when the voice call encounters an error."
},
"messageHintText": "Ask Conduit",
"@messageHintText": {
"description": "Short placeholder text in the message input."
},
"stopGenerating": "Stop generating",
"@stopGenerating": {
"description": "Action to stop the assistant's response generation."
},
"send": "Send",
"@send": {
"description": "Primary action to send a message."
},
"codeCopiedToClipboard": "Code copied to clipboard.",
"@codeCopiedToClipboard": {
"description": "Snack bar message confirming code was copied."
},
"sendMessage": "Send message",
"@sendMessage": {
"description": "Semantic label for sending a message."
},
"file": "File",
"@file": {
"description": "A file item or attachment type label."
},
"chooseDifferentFile": "Choose Different File",
"@chooseDifferentFile": {
"description": "Action label prompting the user to pick another file."
},
"photo": "Photo",
"@photo": {
"description": "A photo item or attachment type label."
},
"camera": "Camera",
"@camera": {
"description": "Camera source label."
},
"pasteImage": "Paste Image",
"@pasteImage": {
"description": "Context menu action to paste an image from the clipboard."
},
"apiUnavailable": "API service not available",
"@apiUnavailable": {
"description": "Shown when backend API service is unavailable."
},
"unableToLoadImage": "Unable to load image",
"@unableToLoadImage": {
"description": "General failure to load an image."
},
"notAnImageFile": "Not an image file: {fileName}",
2025-09-07 12:22:02 +05:30
"@notAnImageFile": {
"description": "Error when a referenced file is not an image.",
"placeholders": {
"fileName": {
"type": "String",
"example": "image.txt"
}
}
2025-09-07 12:22:02 +05:30
},
"failedToLoadImage": "Failed to load image: {error}",
2025-09-07 12:22:02 +05:30
"@failedToLoadImage": {
"description": "Error including the underlying reason when image loading fails.",
"placeholders": {
"error": {
"type": "String",
"example": "Network error"
}
}
2025-09-07 12:22:02 +05:30
},
"invalidDataUrl": "Invalid data URL format",
"@invalidDataUrl": {
"description": "Error for malformed data: URLs."
},
"failedToDecodeImage": "Failed to decode image",
"@failedToDecodeImage": {
"description": "Error when decoding image bytes/base64."
},
"invalidImageFormat": "Invalid image format",
"@invalidImageFormat": {
"description": "Error when image type/format is not supported."
},
2025-09-07 12:22:02 +05:30
"emptyImageData": "Empty image data",
"@emptyImageData": {
"description": "Error when image data buffer is empty."
},
"confirm": "Confirm",
"@confirm": {
"description": "Confirmation button label."
},
"continueAction": "Continue",
"@continueAction": {
"description": "Button label to continue an action or flow."
},
2025-09-07 12:22:02 +05:30
"cancel": "Cancel",
"@cancel": {
"description": "Cancel button label."
},
"ok": "OK",
"@ok": {
"description": "Generic OK button label."
},
"previousLabel": "Prev",
"@previousLabel": {
"description": "Label for navigating to the previous item."
},
"nextLabel": "Next",
"@nextLabel": {
"description": "Label for navigating to the next item."
},
"inputField": "Input field",
"@inputField": {
"description": "Accessibility label describing an input field."
},
"checkConnection": "Check Connection",
"@checkConnection": {
"description": "CTA to verify network connectivity."
},
"openSettings": "Open Settings",
"@openSettings": {
"description": "CTA to open device or app settings."
},
"goBack": "Go Back",
"@goBack": {
"description": "CTA to navigate back."
},
2025-08-23 23:56:53 +05:30
"technicalDetails": "Technical Details",
"@technicalDetails": {
"description": "Expandable section label to show error details or logs."
},
"requiredFieldLabel": "{label} *",
"@requiredFieldLabel": {
"description": "Label text indicating a required field.",
"placeholders": {
"label": {
"type": "String",
"example": "Email"
}
}
},
"requiredFieldHelper": "Required field",
"@requiredFieldHelper": {
"description": "Helper text indicating that the field is required."
},
"switchOnLabel": "On",
"@switchOnLabel": {
"description": "Semantic label when a switch is enabled."
},
"switchOffLabel": "Off",
"@switchOffLabel": {
"description": "Semantic label when a switch is disabled."
},
"dialogSemanticLabel": "Dialog: {title}",
"@dialogSemanticLabel": {
"description": "Semantic label describing the dialog title.",
"placeholders": {
"title": {
"type": "String",
"example": "Settings"
}
}
},
2025-08-23 23:56:53 +05:30
"save": "Save",
"@save": {
"description": "Primary action to save changes."
},
2025-08-23 23:56:53 +05:30
"chooseModel": "Choose Model",
"@chooseModel": {
"description": "Button/label to choose a model."
},
2025-08-23 23:56:53 +05:30
"reviewerMode": "REVIEWER MODE",
"@reviewerMode": {
"description": "Developer/reviewer mode indicator."
},
2025-08-23 23:56:53 +05:30
"selectLanguage": "Select Language",
"@selectLanguage": {
"description": "Dialog title to pick application language."
},
2025-08-23 23:56:53 +05:30
"newFolder": "New Folder",
"@newFolder": {
"description": "Action to create a new folder."
},
2025-08-23 23:56:53 +05:30
"folderName": "Folder name",
"@folderName": {
"description": "Label for entering a folder's name."
},
2025-08-23 23:56:53 +05:30
"newChat": "New Chat",
"@newChat": {
"description": "Action to start a new chat."
},
2025-08-23 23:56:53 +05:30
"more": "More",
"@more": {
"description": "Opens additional actions or content."
},
2025-08-23 23:56:53 +05:30
"clear": "Clear",
"@clear": {
"description": "Action to clear input or selection."
},
2025-08-23 23:56:53 +05:30
"searchConversations": "Search conversations...",
"@searchConversations": {
"description": "Search input hint scoped to conversations."
},
2025-08-23 23:56:53 +05:30
"create": "Create",
"@create": {
"description": "Primary action to create a resource."
},
2025-08-23 23:56:53 +05:30
"failedToCreateFolder": "Failed to create folder",
"@failedToCreateFolder": {
"description": "Error notice when folder creation fails."
2025-08-23 23:56:53 +05:30
},
"failedToMoveChat": "Failed to move chat",
"@failedToMoveChat": {
"description": "Error notice when moving a chat fails."
},
2025-08-23 23:56:53 +05:30
"failedToLoadChats": "Failed to load chats",
"@failedToLoadChats": {
"description": "Error notice when fetching chat list fails."
},
2025-08-23 23:56:53 +05:30
"failedToUpdatePin": "Failed to update pin",
"@failedToUpdatePin": {
"description": "Error notice when updating pin star/flag fails."
},
2025-08-23 23:56:53 +05:30
"failedToDeleteChat": "Failed to delete chat",
"@failedToDeleteChat": {
"description": "Error notice when deleting a chat fails."
},
2025-08-23 23:56:53 +05:30
"manage": "Manage",
"@manage": {
"description": "Context action to manage an item."
},
2025-08-23 23:56:53 +05:30
"rename": "Rename",
"@rename": {
"description": "Context action to rename an item."
},
2025-08-23 23:56:53 +05:30
"delete": "Delete",
"@delete": {
"description": "Context action to delete an item."
},
2025-08-23 23:56:53 +05:30
"renameChat": "Rename Chat",
"@renameChat": {
"description": "Dialog title to rename a chat."
},
2025-08-23 23:56:53 +05:30
"enterChatName": "Enter chat name",
"@enterChatName": {
"description": "Input hint/label for new chat name."
},
2025-08-23 23:56:53 +05:30
"failedToRenameChat": "Failed to rename chat",
"@failedToRenameChat": {
"description": "Error notice when renaming chat fails."
},
2025-08-23 23:56:53 +05:30
"failedToUpdateArchive": "Failed to update archive",
"@failedToUpdateArchive": {
"description": "Error notice when archiving/unarchiving fails."
},
2025-08-23 23:56:53 +05:30
"unarchive": "Unarchive",
"@unarchive": {
"description": "Action to unarchive an item."
},
2025-08-23 23:56:53 +05:30
"archive": "Archive",
"@archive": {
"description": "Action to archive an item."
},
2025-08-23 23:56:53 +05:30
"pin": "Pin",
"@pin": {
"description": "Action to pin/star an item."
},
2025-08-23 23:56:53 +05:30
"unpin": "Unpin",
"@unpin": {
"description": "Action to remove pin from an item."
},
2025-08-23 23:56:53 +05:30
"recent": "Recent",
"@recent": {
"description": "List filter for recently used items."
},
2025-08-23 23:56:53 +05:30
"system": "System",
"@system": {
"description": "Option indicating the device/system default."
},
2025-08-23 23:56:53 +05:30
"english": "English",
"@english": {
"description": "Language name: English."
},
2025-08-23 23:56:53 +05:30
"deutsch": "Deutsch",
"@deutsch": {
"description": "Language name: German."
},
2025-08-23 23:56:53 +05:30
"francais": "Français",
"@francais": {
"description": "Language name: French."
},
2025-08-23 23:56:53 +05:30
"italiano": "Italiano",
"@italiano": {
"description": "Language name: Italian."
},
"espanol": "Español",
"@espanol": {
"description": "Language name: Spanish."
},
"nederlands": "Nederlands",
"@nederlands": {
"description": "Language name: Dutch."
},
"russian": "Русский",
"@russian": {
"description": "Language name: Russian."
},
"chinese": "中文",
"@chinese": {
"description": "Language name: Chinese."
},
"chineseSimplified": "Chinese (Simplified)",
"@chineseSimplified": {
"description": "Language name: Chinese (Simplified)."
},
"chineseTraditional": "Chinese (Traditional)",
"@chineseTraditional": {
"description": "Language name: Chinese (Traditional)."
},
"korean": "한국어",
"@korean": {
"description": "Language name: Korean."
},
2025-08-23 23:56:53 +05:30
"deleteMessagesTitle": "Delete Messages",
"@deleteMessagesTitle": {
"description": "Dialog title asking to confirm deletion of messages."
},
2025-08-23 23:56:53 +05:30
"deleteMessagesMessage": "Delete {count} messages?",
"@deleteMessagesMessage": {
2025-09-07 12:22:02 +05:30
"description": "Confirmation prompt asking to delete a number of messages.",
2025-08-23 23:56:53 +05:30
"placeholders": {
"count": {
"type": "int"
}
2025-08-23 23:56:53 +05:30
}
},
"routeNotFound": "Route not found: {routeName}",
"@routeNotFound": {
2025-09-07 12:22:02 +05:30
"description": "Displayed when navigation fails to find a route name.",
2025-08-23 23:56:53 +05:30
"placeholders": {
"routeName": {
"type": "String"
}
2025-08-23 23:56:53 +05:30
}
},
"deleteChatTitle": "Delete Chat",
"@deleteChatTitle": {
"description": "Dialog title asking to confirm deletion of a chat."
},
2025-08-23 23:56:53 +05:30
"deleteChatMessage": "This chat will be permanently deleted.",
"@deleteChatMessage": {
"description": "Warning that deleting a chat cannot be undone."
},
2025-09-07 23:48:47 +05:30
"deleteFolderTitle": "Delete Folder",
"@deleteFolderTitle": {
"description": "Dialog title asking to confirm deletion of a folder."
},
2025-09-07 23:48:47 +05:30
"deleteFolderMessage": "This folder and its assignment references will be removed.",
"@deleteFolderMessage": {
"description": "Warning that deleting a folder will remove it and its associations."
},
2025-09-07 23:48:47 +05:30
"failedToDeleteFolder": "Failed to delete folder",
"@failedToDeleteFolder": {
"description": "Error notice when deleting a folder fails."
},
"aboutApp": "About",
"@aboutApp": {
"description": "Settings tile title to view app information."
},
"aboutAppSubtitle": "Conduit information and links",
"@aboutAppSubtitle": {
"description": "Subtitle/description for the About section."
},
"web": "Web",
"@web": {
"description": "Tab/section label for web features."
},
"imageGen": "Image Gen",
"@imageGen": {
"description": "Short label for image generation section/tab."
},
"pinned": "Pinned",
"@pinned": {
"description": "Filter/tab for pinned items."
},
"folders": "Folders",
"@folders": {
"description": "Tab listing chat folders."
},
"archived": "Archived",
"@archived": {
"description": "Filter/tab for archived chats."
},
"appLanguage": "App Language",
"@appLanguage": {
"description": "Label for choosing the app's display language."
},
"darkMode": "Dark Mode",
"@darkMode": {
"description": "Label for toggling dark theme."
},
"webSearch": "Web Search",
"@webSearch": {
"description": "Feature toggle/section for web search."
},
"webSearchDescription": "Search the web and cite sources in replies.",
"@webSearchDescription": {
"description": "Explains that responses can include citations from the web."
},
"imageGeneration": "Image Generation",
"@imageGeneration": {
"description": "Feature toggle/section for image generation."
},
2025-08-28 23:46:32 +05:30
"imageGenerationDescription": "Create images from your prompts.",
"@imageGenerationDescription": {
"description": "Explains creating images via model prompts."
},
2025-08-28 23:46:32 +05:30
"copy": "Copy",
"@copy": {
"description": "Action to copy text to clipboard."
},
2025-09-20 23:58:18 +05:30
"ttsListen": "Listen",
"@ttsListen": {
"description": "Action to play the assistant message using text to speech"
},
"ttsStop": "Stop",
"@ttsStop": {
"description": "Action to stop text to speech playback"
},
"usageInfo": "Info",
"@usageInfo": {
"description": "Action to show usage/performance statistics for a response"
},
"usageInfoTitle": "Response Statistics",
"@usageInfoTitle": {
"description": "Title for the usage statistics dialog/sheet"
},
"usageTokenGeneration": "Token Generation",
"@usageTokenGeneration": {
"description": "Label for token generation speed metric"
},
"usagePromptEval": "Prompt Processing",
"@usagePromptEval": {
"description": "Label for prompt evaluation/pre-processing speed metric"
},
"usageTotalDuration": "Total Duration",
"@usageTotalDuration": {
"description": "Label for total response generation duration"
},
"usageTokensPerSecond": "{speed} t/s",
"@usageTokensPerSecond": {
"description": "Tokens per second display format",
"placeholders": {
"speed": {
"type": "String",
"example": "45.2"
}
}
},
"usageTokenCount": "{count} tokens",
"@usageTokenCount": {
"description": "Token count display format",
"placeholders": {
"count": {
"type": "int",
"example": "128"
}
}
},
"usageSecondsFormat": "{seconds}s",
"@usageSecondsFormat": {
"description": "Seconds duration format",
"placeholders": {
"seconds": {
"type": "String",
"example": "2.34"
}
}
},
"usageLoadDuration": "Model Load Time",
"@usageLoadDuration": {
"description": "Label for model loading duration metric"
},
"usageQueueTime": "Queue Time",
"@usageQueueTime": {
"description": "Label for queue waiting time metric"
},
"usageReasoningTokens": "Reasoning Tokens",
"@usageReasoningTokens": {
"description": "Label for reasoning/thinking tokens count"
},
"usageTotalTokens": "Total Tokens",
"@usageTotalTokens": {
"description": "Label for total token count"
},
2025-08-28 23:46:32 +05:30
"edit": "Edit",
"@edit": {
"description": "Action to edit an item/message."
},
2025-08-28 23:46:32 +05:30
"regenerate": "Regenerate",
"@regenerate": {
"description": "Action to request a new assistant response."
},
2025-09-07 12:22:02 +05:30
"noConversationsYet": "No conversations yet",
"@noConversationsYet": {
"description": "Empty state when the user has no chats."
},
2025-08-28 23:46:32 +05:30
"usernameOrEmailHint": "Enter your username or email",
"@usernameOrEmailHint": {
"description": "Hint text for username/email input."
},
2025-08-28 23:46:32 +05:30
"passwordHint": "Enter your password",
"@passwordHint": {
"description": "Hint text for password input."
},
"enterToken": "Enter your JWT token",
"@enterToken": {
"description": "Hint text for JWT token input."
},
"tokenHint": "Get the JWT token from OpenWebUI settings. API keys (sk-...) are not supported for streaming.",
"@tokenHint": {
"description": "Help text explaining what type of token to use."
},
"apiKeyNotSupported": "API keys (sk-...) are not supported. Please use a JWT token instead.",
"@apiKeyNotSupported": {
"description": "Error message when user tries to use an API key instead of JWT token."
},
"apiKeyNoLongerSupported": "You were logged out because API keys are no longer supported. Please sign in with a JWT token from OpenWebUI settings.",
"@apiKeyNoLongerSupported": {
"description": "Error message shown when user is forced logged out due to using an API key."
},
"tokenTooShort": "Token is too short",
"@tokenTooShort": {
"description": "Error message when token is too short."
},
2025-08-28 23:46:32 +05:30
"signingIn": "Signing in...",
"@signingIn": {
"description": "Status message shown while signing in."
},
2025-08-28 23:46:32 +05:30
"advancedSettings": "Advanced Settings",
"@advancedSettings": {
"description": "Section that contains additional/optional configuration."
},
2025-08-28 23:46:32 +05:30
"customHeaders": "Custom Headers",
"@customHeaders": {
"description": "Section title for adding custom HTTP headers."
},
2025-08-28 23:46:32 +05:30
"customHeadersDescription": "Add custom HTTP headers for authentication, API keys, or special server requirements.",
"@customHeadersDescription": {
"description": "Helper text explaining use-cases for custom headers."
},
"allowSelfSignedCertificates": "Trust self-signed certificates",
"@allowSelfSignedCertificates": {
"description": "Toggle label that allows trusting self-signed TLS certificates for the configured server."
},
"allowSelfSignedCertificatesDescription": "Accept this server's TLS certificate even if it is self-signed. Enable only for servers you trust.",
"@allowSelfSignedCertificatesDescription": {
"description": "Helper text clarifying the risks of enabling the self-signed certificate toggle."
},
2025-08-28 23:46:32 +05:30
"headerNameTooLong": "Header name too long (max 64 characters)",
"@headerNameTooLong": {
"description": "Validation message for header name length."
},
2025-08-28 23:46:32 +05:30
"headerNameInvalidChars": "Invalid header name. Use only letters, numbers, and these symbols: !#$&-^_`|~",
"@headerNameInvalidChars": {
"description": "Validation message for invalid characters in header name."
},
2025-08-28 23:46:32 +05:30
"headerNameReserved": "Cannot override reserved header \"{key}\"",
2025-09-07 12:22:02 +05:30
"@headerNameReserved": {
"description": "Error when attempting to override a reserved HTTP header {key}.",
"placeholders": {
"key": {
"type": "String"
}
}
2025-09-07 12:22:02 +05:30
},
2025-08-28 23:46:32 +05:30
"headerValueTooLong": "Header value too long (max 1024 characters)",
"@headerValueTooLong": {
"description": "Validation message for header value length."
},
2025-08-28 23:46:32 +05:30
"headerValueInvalidChars": "Header value contains invalid characters. Use only printable ASCII.",
"@headerValueInvalidChars": {
"description": "Validation message for invalid characters in header value."
},
2025-08-28 23:46:32 +05:30
"headerValueUnsafe": "Header value appears to contain potentially unsafe content",
"@headerValueUnsafe": {
"description": "Security warning for suspicious header values."
},
2025-08-28 23:46:32 +05:30
"headerAlreadyExists": "Header \"{key}\" already exists. Remove it first to update.",
2025-09-07 12:22:02 +05:30
"@headerAlreadyExists": {
"description": "Error when a custom header with key {key} already exists.",
"placeholders": {
"key": {
"type": "String"
}
}
2025-09-07 12:22:02 +05:30
},
"maxHeadersReachedDetail": "Maximum of 10 custom headers allowed. Remove some to add more.",
"@maxHeadersReachedDetail": {
"description": "Explains the upper limit of custom headers."
},
2025-08-28 23:46:32 +05:30
"noModelsAvailable": "No models available",
"@noModelsAvailable": {
"description": "Shown when model list is empty or failed to load."
},
2025-08-28 23:46:32 +05:30
"followingSystem": "Following system: {theme}",
2025-09-07 12:22:02 +05:30
"@followingSystem": {
"description": "Indicates the app is following the system theme (\"Dark\"/\"Light\").",
"placeholders": {
"theme": {
"type": "String"
}
}
2025-09-07 12:22:02 +05:30
},
2025-08-28 23:46:32 +05:30
"themeDark": "Dark",
"@themeDark": {
"description": "Theme label for dark appearance."
},
"themePalette": "Accent palette",
"@themePalette": {
"description": "Title for selecting the app color palette."
},
"themePaletteConduitLabel": "Conduit",
"@themePaletteConduitLabel": {
"description": "Palette name for the default Conduit theme."
},
"themePaletteConduitDescription": "Clean neutral theme designed for Conduit.",
"@themePaletteConduitDescription": {
"description": "Description of the Conduit palette."
},
"themePaletteClaudeLabel": "Claude",
"@themePaletteClaudeLabel": {
"description": "Palette name inspired by the Claude web client."
},
"themePaletteClaudeDescription": "Warm, tactile palette lifted from the Claude web client.",
"@themePaletteClaudeDescription": {
"description": "Description of the Claude palette."
},
"themePaletteT3ChatLabel": "T3 Chat",
"@themePaletteT3ChatLabel": {
"description": "Palette name inspired by the T3 Stack brand."
},
"themePaletteT3ChatDescription": "Playful gradients inspired by the T3 Stack brand.",
"@themePaletteT3ChatDescription": {
"description": "Description of the T3 Chat palette."
},
"themePaletteCatppuccinLabel": "Catppuccin",
"@themePaletteCatppuccinLabel": {
"description": "Palette name for Catppuccin colors."
},
"themePaletteCatppuccinDescription": "Soft pastel palette.",
"@themePaletteCatppuccinDescription": {
"description": "Description of the Catppuccin palette."
},
"themePaletteTangerineLabel": "Tangerine",
"@themePaletteTangerineLabel": {
"description": "Palette name for Tangerine colors."
},
"themePaletteTangerineDescription": "Warm orange-and-slate palette.",
"@themePaletteTangerineDescription": {
"description": "Description of the Tangerine palette."
},
2025-08-28 23:46:32 +05:30
"themeLight": "Light",
"@themeLight": {
"description": "Theme label for light appearance."
},
2025-08-28 23:46:32 +05:30
"currentlyUsingDarkTheme": "Currently using Dark theme",
"@currentlyUsingDarkTheme": {
"description": "Status text indicating dark theme is active."
},
2025-08-28 23:46:32 +05:30
"currentlyUsingLightTheme": "Currently using Light theme",
"@currentlyUsingLightTheme": {
"description": "Status text indicating light theme is active."
},
2025-08-28 23:46:32 +05:30
"aboutConduit": "About Conduit",
"@aboutConduit": {
"description": "Dialog title for app information."
},
2025-08-28 23:46:32 +05:30
"versionLabel": "Version: {version} ({build})",
2025-09-07 12:22:02 +05:30
"@versionLabel": {
"description": "Displays version and build number in the About dialog.",
"placeholders": {
"version": {
"type": "String"
},
"build": {
"type": "String"
}
}
2025-09-07 12:22:02 +05:30
},
2025-08-28 23:46:32 +05:30
"githubRepository": "GitHub Repository",
"@githubRepository": {
"description": "Link label pointing to the app repository."
},
2025-08-29 01:04:29 +05:30
"unableToLoadAppInfo": "Unable to load app info",
"@unableToLoadAppInfo": {
"description": "Error text when package info cannot be retrieved."
},
2025-08-29 01:04:29 +05:30
"thinking": "Thinking…",
"@thinking": {
"description": "Label shown while the assistant is reasoning."
},
2025-08-29 01:04:29 +05:30
"thoughts": "Thoughts",
"@thoughts": {
"description": "Section title for showing reasoning content."
},
2025-08-29 01:04:29 +05:30
"thoughtForDuration": "Thought for {duration}",
"@thoughtForDuration": {
"description": "Shows how long the assistant thought before replying.",
"placeholders": {
"duration": {
"type": "String",
"example": "3s"
}
}
},
"analyzing": "Analyzing…",
"@analyzing": {
"description": "Label shown while code interpreter is processing."
},
"analyzed": "Analyzed",
"@analyzed": {
"description": "Label shown after code interpreter has finished."
},
"appCustomization": "Customization",
"@appCustomization": {
"description": "Title of the customization settings page."
},
"appCustomizationSubtitle": "Theme, language, voice, and quickpills",
"@appCustomizationSubtitle": {
"description": "Subtitle shown under App Customization tile and page header."
},
"quickActionsDescription": "Quickpills in chat",
"@quickActionsDescription": {
"description": "Helper text explaining quick action pill selection in customization."
},
"quickActionsSelectedCount": "{count, plural, =0{No actions selected} one{1 action selected} other{{count} actions selected}}",
"@quickActionsSelectedCount": {
"description": "Subtitle indicating how many quick actions are selected.",
"placeholders": {
"count": {
"type": "int",
"example": "2"
}
}
},
"autoSelectDescription": "Let the app choose the best model",
"@autoSelectDescription": {
"description": "Explains what the auto-select model setting does."
},
"chatSettings": "Chat",
"@chatSettings": {
"description": "Section header for chat-related customization options."
},
"sendOnEnter": "Send on Enter",
"@sendOnEnter": {
"description": "Toggle title for sending messages when pressing Enter."
},
"sendOnEnterDescription": "Enter sends (soft keyboard). Cmd/Ctrl+Enter also available",
"@sendOnEnterDescription": {
"description": "Explanation of how the Send on Enter toggle behaves."
},
"androidAssistantTitle": "Android digital assistant",
"@androidAssistantTitle": {
"description": "Tile title for configuring the Android digital assistant trigger."
},
"androidAssistantDescription": "Choose what happens when you trigger the Android digital assistant.",
"@androidAssistantDescription": {
"description": "Helper text describing the Android digital assistant trigger setting."
},
"androidAssistantOverlayOption": "Show quick overlay (default)",
"@androidAssistantOverlayOption": {
"description": "Option label for keeping the current assistant overlay."
},
"androidAssistantNewChatOption": "Open Conduit with a new chat",
"@androidAssistantNewChatOption": {
"description": "Option label for opening the app to a fresh chat from the assistant trigger."
},
"androidAssistantVoiceCallOption": "Start a voice call",
"@androidAssistantVoiceCallOption": {
"description": "Option label for jumping straight into voice call from assistant trigger."
},
"sttSettings": "Speech to Text",
"@sttSettings": {
"description": "Section header for speech-to-text settings."
},
"sttEngineLabel": "Recognition engine",
"@sttEngineLabel": {
"description": "Label shown above the speech-to-text engine chips."
},
"sttEngineDevice": "On device",
"@sttEngineDevice": {
"description": "Chip label for on-device speech recognition."
},
"sttEngineServer": "Server",
"@sttEngineServer": {
"description": "Chip label for server speech recognition."
},
"sttEngineDeviceDescription": "Keep audio on this device. Voice input stops working if on-device speech recognition isnt supported.",
"@sttEngineDeviceDescription": {
"description": "Description shown when on-device speech-to-text preference is active."
},
"sttEngineServerDescription": "Always send recordings to your OpenWebUI server for transcription.",
"@sttEngineServerDescription": {
"description": "Description shown when server speech-to-text preference is active."
},
"sttDeviceUnavailableWarning": "On-device speech recognition isnt available on this device.",
"@sttDeviceUnavailableWarning": {
"description": "Warning shown when the user selects on-device speech recognition but it is unavailable."
},
"sttServerUnavailableWarning": "Connect to a server with transcription enabled to use this option.",
"@sttServerUnavailableWarning": {
"description": "Warning shown when the user selects server speech recognition but no server is available."
},
"sttSilenceDuration": "Silence Duration",
"@sttSilenceDuration": {
"description": "Label for the silence duration setting in server speech-to-text."
},
"sttSilenceDurationDescription": "Time to wait after silence before auto-stopping recording",
"@sttSilenceDurationDescription": {
"description": "Description for the silence duration slider in server speech-to-text settings."
},
"ttsEngineLabel": "Engine",
"@ttsEngineLabel": {
"description": "Label for selecting the text-to-speech engine."
},
"ttsEngineDevice": "On device",
"@ttsEngineDevice": {
"description": "Chip label for using on-device text-to-speech."
},
"ttsEngineServer": "Server",
"@ttsEngineServer": {
"description": "Chip label for using server-side text-to-speech."
},
"ttsEngineDeviceDescription": "Keep synthesis on this device. Voice playback stops working if on-device TTS isnt supported.",
"@ttsEngineDeviceDescription": {
"description": "Description shown when on-device text-to-speech preference is active."
},
"ttsEngineServerDescription": "Always request audio from your OpenWebUI server.",
"@ttsEngineServerDescription": {
"description": "Description shown when server text-to-speech preference is active."
},
"ttsDeviceUnavailableWarning": "On-device text-to-speech isnt available on this device.",
"@ttsDeviceUnavailableWarning": {
"description": "Warning shown when on-device text-to-speech is unavailable."
},
"ttsServerUnavailableWarning": "Connect to a server with text-to-speech enabled to use this option.",
"@ttsServerUnavailableWarning": {
"description": "Warning shown when server text-to-speech is unavailable."
},
"ttsSettings": "Text to Speech",
"@ttsSettings": {
"description": "Section header for TTS-related customization options."
},
"ttsVoice": "Voice",
"@ttsVoice": {
"description": "Title for voice selection tile."
},
"ttsSpeechRate": "Speech Rate",
"@ttsSpeechRate": {
"description": "Title for speech rate slider."
},
"ttsPitch": "Pitch",
"@ttsPitch": {
"description": "Title for pitch slider."
},
"ttsVolume": "Volume",
"@ttsVolume": {
"description": "Title for volume slider."
},
"ttsPreview": "Preview Voice",
"@ttsPreview": {
"description": "Title for preview button."
},
"ttsSystemDefault": "System Default",
"@ttsSystemDefault": {
"description": "Label for system default voice option."
},
"ttsSelectVoice": "Select Voice",
"@ttsSelectVoice": {
"description": "Title for voice picker bottom sheet."
},
"ttsPreviewText": "This is a preview of the selected voice.",
"@ttsPreviewText": {
"description": "Sample text spoken during voice preview."
},
"ttsNoVoicesAvailable": "No voices available",
"@ttsNoVoicesAvailable": {
"description": "Error message when no TTS voices can be found."
},
"ttsVoicesForLanguage": "{language} Voices",
"@ttsVoicesForLanguage": {
"description": "Section header for voices matching the app language",
"placeholders": {
"language": {
"type": "String",
"example": "EN"
}
}
},
"ttsOtherVoices": "Other Languages",
"@ttsOtherVoices": {
"description": "Section header for voices in other languages."
},
"error": "Error",
"@error": {
"description": "Generic error label."
},
"errorWithMessage": "Error: {message}",
"@errorWithMessage": {
"description": "Error label with appended message text.",
"placeholders": {
"message": {
"type": "String",
"example": "Network timeout"
}
}
},
"networkTimeoutError": "Connection timed out. Please check your internet connection and try again.",
"@networkTimeoutError": {
"description": "User-facing message when a network request times out."
},
"networkUnreachableError": "Cannot reach the server. Please check your server URL and internet connection.",
"@networkUnreachableError": {
"description": "User-facing message when the server cannot be reached."
},
"networkServerNotResponding": "Server is not responding. Please verify the server is running and accessible.",
"@networkServerNotResponding": {
"description": "User-facing message when the server does not respond to a request."
},
"networkGenericError": "Network connection problem. Please check your internet connection.",
"@networkGenericError": {
"description": "Fallback message for generic network errors."
},
"serverError500": "Server is experiencing issues. This is usually temporary.",
"@serverError500": {
"description": "Message when a 500 error is encountered."
},
"serverErrorUnavailable": "Server is temporarily unavailable. Please try again in a moment.",
"@serverErrorUnavailable": {
"description": "Message when a 502/503 error is encountered."
},
"serverErrorTimeout": "Server took too long to respond. Please try again.",
"@serverErrorTimeout": {
"description": "Message when the server times out."
},
"serverErrorGeneric": "Server is having problems. Please try again later.",
"@serverErrorGeneric": {
"description": "Fallback server error message."
},
"authSessionExpired": "Your session has expired. Please sign in again.",
"@authSessionExpired": {
"description": "Message when an authentication session expires."
},
"authForbidden": "You don't have permission to perform this action.",
"@authForbidden": {
"description": "Message when the user lacks required permissions."
},
"authInvalidToken": "Authentication token is invalid. Please sign in again.",
"@authInvalidToken": {
"description": "Message when the authentication token is invalid."
},
"authGenericError": "Authentication problem. Please sign in again.",
"@authGenericError": {
"description": "Fallback authentication error message."
},
"validationInvalidEmail": "Please enter a valid email address.",
"@validationInvalidEmail": {
"description": "Validation message for invalid email input."
},
"validationWeakPassword": "Password doesn't meet requirements. Please check and try again.",
"@validationWeakPassword": {
"description": "Validation message for weak passwords."
},
"validationMissingRequired": "Please fill in all required fields.",
"@validationMissingRequired": {
"description": "Validation message when required fields are missing."
},
"validationFormatError": "Some information is in the wrong format. Please check and try again.",
"@validationFormatError": {
"description": "Validation message for generic formatting issues."
},
"validationGenericError": "Please check your input and try again.",
"@validationGenericError": {
"description": "Fallback validation message."
},
"fileNotFound": "File not found. It may have been moved or deleted.",
"@fileNotFound": {
"description": "Message when a file cannot be located."
},
"fileAccessDenied": "Cannot access the file. Please check permissions.",
"@fileAccessDenied": {
"description": "Message when file access is denied."
},
"fileTooLarge": "File is too large. Please choose a smaller file.",
"@fileTooLarge": {
"description": "Message when a file exceeds size limits."
},
"fileGenericError": "Problem with the file. Please try a different file.",
"@fileGenericError": {
"description": "Fallback file error message."
},
"permissionCameraRequired": "Camera permission is required. Please enable it in settings.",
"@permissionCameraRequired": {
"description": "Message when camera permission is missing."
},
"permissionStorageRequired": "Storage permission is required. Please enable it in settings.",
"@permissionStorageRequired": {
"description": "Message when storage permission is missing."
},
"permissionMicrophoneRequired": "Microphone permission is required. Please enable it in settings.",
"@permissionMicrophoneRequired": {
"description": "Message when microphone permission is missing."
},
"permissionGenericError": "Permission required. Please check app permissions in settings.",
"@permissionGenericError": {
"description": "Fallback permission error message."
},
"actionRetryRequest": "Try the request again.",
"@actionRetryRequest": {
"description": "Description for retrying a failed request."
},
"actionVerifyConnection": "Verify your internet connection.",
"@actionVerifyConnection": {
"description": "Description for checking internet connectivity."
},
"actionRetryOperation": "Retry the operation.",
"@actionRetryOperation": {
"description": "Description for retrying the same operation."
},
"actionRetryAfterDelay": "Wait a moment then try again.",
"@actionRetryAfterDelay": {
"description": "Description suggesting a short delay before retrying."
},
"actionSignInToAccount": "Sign in to your account.",
"@actionSignInToAccount": {
"description": "Description for signing back into the app."
},
"actionSelectAnotherFile": "Select another file.",
"@actionSelectAnotherFile": {
"description": "Description for choosing a different file."
},
"actionOpenAppSettings": "Open app settings to grant permissions.",
"@actionOpenAppSettings": {
"description": "Description for opening system or app settings."
},
"actionRetryAfterPermission": "Retry after granting permission.",
"@actionRetryAfterPermission": {
"description": "Description for retrying once permissions are granted."
},
"actionReturnToPrevious": "Return to previous screen.",
"@actionReturnToPrevious": {
"description": "Description for navigating back to the prior screen."
},
2025-09-07 11:29:29 +05:30
"display": "Display",
"@display": {
"description": "Section header for visual and layout related settings."
},
2025-09-07 11:29:29 +05:30
"realtime": "Realtime",
"@realtime": {
"description": "Section header for realtime/transport settings."
},
2025-09-07 11:29:29 +05:30
"transportMode": "Transport mode",
"@transportMode": {
"description": "Title for selecting the networking transport used for realtime."
},
2025-09-07 11:29:29 +05:30
"mode": "Mode",
"@mode": {
"description": "Form field label for transport mode dropdown."
},
"transportModePolling": "Polling fallback",
"@transportModePolling": {
"description": "Dropdown option label for HTTP polling fallback transport."
},
2025-09-07 11:29:29 +05:30
"transportModeWs": "WebSocket only",
"@transportModeWs": {
"description": "Dropdown option label for WebSocket-only transport."
},
"transportModePollingInfo": "Falls back to HTTP polling when WebSocket is blocked. Upgrades to WebSocket when possible.",
"@transportModePollingInfo": {
"description": "Footnote text for the polling fallback transport mode."
},
"transportModeWsInfo": "Lower overhead, but may fail behind strict proxies/firewalls.",
"@transportModeWsInfo": {
"description": "Footnote text for the WebSocket-only transport mode."
},
"notes": "Notes",
"@notes": {
"description": "Navigation item and page title for notes feature."
},
"searchNotes": "Search notes...",
"@searchNotes": {
"description": "Placeholder text for notes search field."
},
"createNote": "Create Note",
"@createNote": {
"description": "Tooltip/button label for creating a new note."
},
"noNotesYet": "No notes yet",
"@noNotesYet": {
"description": "Empty state title when user has no notes."
},
"noNotesFound": "No notes found",
"@noNotesFound": {
"description": "Empty state title when search returns no results."
},
"createFirstNoteHint": "Tap the + button to create your first note.",
"@createFirstNoteHint": {
"description": "Hint text encouraging user to create their first note."
},
"tryDifferentSearch": "Try a different search term.",
"@tryDifferentSearch": {
"description": "Hint text when note search returns no results."
},
"loadingNotes": "Loading notes...",
"@loadingNotes": {
"description": "Progress message while fetching notes list."
},
"loadingNote": "Loading note...",
"@loadingNote": {
"description": "Progress message while fetching a single note."
},
"failedToLoadNotes": "Failed to load notes",
"@failedToLoadNotes": {
"description": "Error message when notes list cannot be retrieved."
},
"deleteNoteTitle": "Delete Note",
"@deleteNoteTitle": {
"description": "Dialog title for confirming note deletion."
},
"deleteNoteMessage": "Delete \"{title}\"? This cannot be undone.",
"@deleteNoteMessage": {
"description": "Confirmation message for deleting a note.",
"placeholders": {
"title": {
"type": "String",
"example": "My Note"
}
}
},
"writeNote": "Write something...",
"@writeNote": {
"description": "Hint text for note content input field."
},
"saving": "Saving...",
"@saving": {
"description": "Status text while saving."
},
"saved": "Saved",
"@saved": {
"description": "Status text when content is saved."
},
"noteCopiedToClipboard": "Note copied to clipboard",
"@noteCopiedToClipboard": {
"description": "Confirmation message when note content is copied to clipboard."
},
"generateTitle": "Generate Title",
"@generateTitle": {
"description": "Tooltip for generating a title with AI."
},
"generatingTitle": "Generating title...",
"@generatingTitle": {
"description": "Placeholder while AI generates a title."
},
"noContentToGenerateTitle": "Add some content first to generate a title",
"@noContentToGenerateTitle": {
"description": "Error when trying to generate title with empty content."
},
"failedToGenerateTitle": "Failed to generate title",
"@failedToGenerateTitle": {
"description": "Error message when title generation fails."
},
"noContentToEnhance": "Add some content first to enhance",
"@noContentToEnhance": {
"description": "Error when trying to enhance empty content."
},
"noteEnhanced": "Note enhanced with AI",
"@noteEnhanced": {
"description": "Success message after AI enhancement."
},
"failedToEnhanceNote": "Failed to enhance note",
"@failedToEnhanceNote": {
"description": "Error message when enhancement fails."
},
"noModelSelected": "Please select a model first",
"@noModelSelected": {
"description": "Error message when no AI model is selected."
},
"enhanceWithAI": "Enhance with AI",
"@enhanceWithAI": {
"description": "Tooltip for AI enhance button."
},
"enhanceNote": "Enhance Note",
"@enhanceNote": {
"description": "Menu item to enhance note content."
},
"startDictation": "Start dictation",
"@startDictation": {
"description": "Tooltip for dictation button."
},
"stopRecording": "Stop recording",
"@stopRecording": {
"description": "Tooltip for stop recording button."
},
"voiceInputUnavailable": "Voice input is not available",
"@voiceInputUnavailable": {
"description": "Error when voice input is not available."
},
"failedToStartDictation": "Failed to start dictation",
"@failedToStartDictation": {
"description": "Error when starting dictation fails."
},
"noteNotFound": "Note not found",
"@noteNotFound": {
"description": "Error message when a note cannot be found."
},
"untitled": "Untitled",
"@untitled": {
"description": "Default title for notes without a title."
},
"today": "Today",
"@today": {
"description": "Time range label for items from today."
},
"yesterday": "Yesterday",
"@yesterday": {
"description": "Time range label for items from yesterday."
},
"previous7Days": "Previous 7 Days",
"@previous7Days": {
"description": "Time range label for items from the last week."
},
"previous30Days": "Previous 30 Days",
"@previous30Days": {
"description": "Time range label for items from the last month."
},
"older": "Older",
"@older": {
"description": "Time range label for items older than 30 days."
},
"wordCount": "{count} words",
"@wordCount": {
"description": "Status bar text showing word count.",
"placeholders": {
"count": {
"type": "int",
"example": "150"
}
}
},
"charCount": "{count} characters",
"@charCount": {
"description": "Status bar text showing character count.",
"placeholders": {
"count": {
"type": "int",
"example": "500"
}
}
},
"mermaidPreviewUnavailable": "Mermaid preview is not available on this platform.",
"@mermaidPreviewUnavailable": {
"description": "Shown when Mermaid diagrams cannot be rendered on the current platform."
},
"chartPreviewUnavailable": "Chart preview is not available on this platform.",
"@chartPreviewUnavailable": {
"description": "Shown when Chart.js charts cannot be rendered on the current platform."
2025-12-07 10:47:57 +05:30
},
"promptVariablesTitle": "Fill in Details",
"@promptVariablesTitle": {
"description": "Default title for the prompt variables dialog."
},
"promptVariablesDescription": "Complete the fields below to customize this prompt.",
"@promptVariablesDescription": {
"description": "Description shown in the prompt variables dialog."
},
"promptVariableNumberMin": "Minimum value is {min}",
"@promptVariableNumberMin": {
"description": "Validation message when a number is below the minimum.",
"placeholders": {
"min": {
"type": "double",
"example": "0"
}
}
},
"promptVariableNumberMax": "Maximum value is {max}",
"@promptVariableNumberMax": {
"description": "Validation message when a number is above the maximum.",
"placeholders": {
"max": {
"type": "double",
"example": "100"
}
}
},
"sso": "SSO",
"@sso": {
"description": "Label for Single Sign-On authentication option."
},
"ssoDescription": "Sign in with your organization's identity provider",
"@ssoDescription": {
"description": "Description text explaining SSO authentication."
},
"signInWithSso": "Sign in with SSO",
"@signInWithSso": {
"description": "Button text for SSO sign-in."
},
"ssoAuthenticating": "Authenticating...",
"@ssoAuthenticating": {
"description": "Loading message during SSO authentication."
},
"ssoAuthFailed": "SSO authentication failed",
"@ssoAuthFailed": {
"description": "Error message when SSO authentication fails."
},
"ssoLoadingLogin": "Loading login page...",
"@ssoLoadingLogin": {
"description": "Loading message while SSO login page loads."
},
"ldap": "LDAP",
"@ldap": {
"description": "Label for LDAP authentication option."
},
"ldapDescription": "Sign in with your LDAP directory credentials",
"@ldapDescription": {
"description": "Description text explaining LDAP authentication."
},
"signInWithLdap": "Sign in with LDAP",
"@signInWithLdap": {
"description": "Button text for LDAP sign-in."
},
"ldapUsername": "Username",
"@ldapUsername": {
"description": "Label for LDAP username field."
},
"ldapUsernameHint": "Enter your LDAP username",
"@ldapUsernameHint": {
"description": "Hint text for LDAP username field."
},
"moreSignInOptions": "More sign-in options",
"@moreSignInOptions": {
"description": "Section header for additional authentication methods."
},
"ldapNotEnabled": "LDAP authentication is not enabled on this server",
"@ldapNotEnabled": {
"description": "Error message when LDAP is not configured on the server."
},
"ssoPlatformNotSupported": "SSO authentication is not supported on this platform. Please use credentials or LDAP authentication instead.",
"@ssoPlatformNotSupported": {
"description": "Error message when SSO is attempted on an unsupported platform (desktop/web)."
},
"proxyAuthentication": "Proxy Authentication",
"@proxyAuthentication": {
"description": "Title for the proxy authentication page."
},
"proxyAuthPlatformNotSupported": "Proxy authentication requires a mobile device. Please authenticate through a browser first.",
"@proxyAuthPlatformNotSupported": {
"description": "Error message when proxy auth is attempted on an unsupported platform."
},
"proxyAuthLoading": "Loading authentication page...",
"@proxyAuthLoading": {
"description": "Loading message while the proxy login page loads."
},
"proxyAuthFailed": "Proxy authentication failed",
"@proxyAuthFailed": {
"description": "Error message when proxy authentication fails."
},
"proxyAuthHelpText": "Complete sign-in through your organization's proxy, then sign in to Open WebUI. You'll be redirected automatically.",
"@proxyAuthHelpText": {
"description": "Help text explaining how to complete proxy authentication."
},
"proxyAuthHelpTextSimple": "Sign in through your proxy. Once authenticated, tap Continue to proceed to sign in.",
"@proxyAuthHelpTextSimple": {
"description": "Simplified help text for proxy-only authentication flow."
},
"continueButton": "Continue",
"@continueButton": {
"description": "Generic continue button text."
},
"proxyAuthRequired": "This server requires proxy authentication",
"@proxyAuthRequired": {
"description": "Message when server is behind an authentication proxy."
},
"proxyAuthRequiredDescription": "Your server appears to be behind an authentication proxy (like oauth2-proxy). You'll need to sign in through the proxy first.",
"@proxyAuthRequiredDescription": {
"description": "Detailed explanation of proxy authentication requirement."
},
"authenticateThroughProxy": "Authenticate",
"@authenticateThroughProxy": {
"description": "Button text to start proxy authentication."
},
"serverBehindProxy": "Server behind proxy",
"@serverBehindProxy": {
"description": "Toggle label for servers behind authentication proxies."
},
"serverBehindProxyDescription": "Enable if your server uses oauth2-proxy or similar authentication.",
"@serverBehindProxyDescription": {
"description": "Description for the proxy server toggle."
},
"continueWithProvider": "Continue with {provider}",
"@continueWithProvider": {
"description": "Button text for OAuth provider sign-in.",
"placeholders": {
"provider": {
"type": "String",
"example": "Google"
}
}
},
"or": "or",
"@or": {
"description": "Separator text between authentication options."
}
}