Files
iiEsaywebUIapp/lib/l10n/app_en.arb

1471 lines
49 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."
},
"unableToLoadProfile": "Unable to load profile",
"@unableToLoadProfile": {
"description": "Error title shown when profile request fails."
},
"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."
},
"usernameOrEmail": "Username or Email",
"@usernameOrEmail": {
"description": "Label for username/email input field."
},
"password": "Password",
"@password": {
"description": "Label for password input field."
},
"signInWithApiKey": "Sign in with API Key",
"@signInWithApiKey": {
"description": "Alternative sign-in method using an API key."
},
"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."
},
"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."
},
"messageInputLabel": "Message input",
"@messageInputLabel": {
"description": "Accessibility label for the message input."
},
"messageInputHint": "Type your message",
"@messageInputHint": {
"description": "Hint shown in the message input field."
},
"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."
},
"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."
},
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"
},
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."
},
2025-08-28 23:46:32 +05:30
"enterApiKey": "Enter your API key",
"@enterApiKey": {
"description": "Hint text for API key input."
},
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
"headerNameEmpty": "Header name cannot be empty",
"@headerNameEmpty": {
"description": "Validation message for empty header name."
},
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
"headerValueEmpty": "Header value cannot be empty",
"@headerValueEmpty": {
"description": "Validation message for empty header value."
},
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"
}
}
},
"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."
},
"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."
},
"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."
}
}