1471 lines
49 KiB
Plaintext
1471 lines
49 KiB
Plaintext
{
|
|
"@@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."
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"onboardStartTitle": "Hello, {username}",
|
|
"@onboardStartTitle": {
|
|
"description": "Onboarding card: start chatting title.",
|
|
"placeholders": {
|
|
"username": {
|
|
"type": "String",
|
|
"example": "Alex"
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
},
|
|
"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}",
|
|
"@notAnImageFile": {
|
|
"description": "Error when a referenced file is not an image.",
|
|
"placeholders": {
|
|
"fileName": {
|
|
"type": "String",
|
|
"example": "image.txt"
|
|
}
|
|
}
|
|
},
|
|
"failedToLoadImage": "Failed to load image: {error}",
|
|
"@failedToLoadImage": {
|
|
"description": "Error including the underlying reason when image loading fails.",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String",
|
|
"example": "Network error"
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"save": "Save",
|
|
"@save": {
|
|
"description": "Primary action to save changes."
|
|
},
|
|
"chooseModel": "Choose Model",
|
|
"@chooseModel": {
|
|
"description": "Button/label to choose a model."
|
|
},
|
|
"reviewerMode": "REVIEWER MODE",
|
|
"@reviewerMode": {
|
|
"description": "Developer/reviewer mode indicator."
|
|
},
|
|
"selectLanguage": "Select Language",
|
|
"@selectLanguage": {
|
|
"description": "Dialog title to pick application language."
|
|
},
|
|
"newFolder": "New Folder",
|
|
"@newFolder": {
|
|
"description": "Action to create a new folder."
|
|
},
|
|
"folderName": "Folder name",
|
|
"@folderName": {
|
|
"description": "Label for entering a folder's name."
|
|
},
|
|
"newChat": "New Chat",
|
|
"@newChat": {
|
|
"description": "Action to start a new chat."
|
|
},
|
|
"more": "More",
|
|
"@more": {
|
|
"description": "Opens additional actions or content."
|
|
},
|
|
"clear": "Clear",
|
|
"@clear": {
|
|
"description": "Action to clear input or selection."
|
|
},
|
|
"searchConversations": "Search conversations...",
|
|
"@searchConversations": {
|
|
"description": "Search input hint scoped to conversations."
|
|
},
|
|
"create": "Create",
|
|
"@create": {
|
|
"description": "Primary action to create a resource."
|
|
},
|
|
"failedToCreateFolder": "Failed to create folder",
|
|
"@failedToCreateFolder": {
|
|
"description": "Error notice when folder creation fails."
|
|
},
|
|
"failedToMoveChat": "Failed to move chat",
|
|
"@failedToMoveChat": {
|
|
"description": "Error notice when moving a chat fails."
|
|
},
|
|
"failedToLoadChats": "Failed to load chats",
|
|
"@failedToLoadChats": {
|
|
"description": "Error notice when fetching chat list fails."
|
|
},
|
|
"failedToUpdatePin": "Failed to update pin",
|
|
"@failedToUpdatePin": {
|
|
"description": "Error notice when updating pin star/flag fails."
|
|
},
|
|
"failedToDeleteChat": "Failed to delete chat",
|
|
"@failedToDeleteChat": {
|
|
"description": "Error notice when deleting a chat fails."
|
|
},
|
|
"manage": "Manage",
|
|
"@manage": {
|
|
"description": "Context action to manage an item."
|
|
},
|
|
"rename": "Rename",
|
|
"@rename": {
|
|
"description": "Context action to rename an item."
|
|
},
|
|
"delete": "Delete",
|
|
"@delete": {
|
|
"description": "Context action to delete an item."
|
|
},
|
|
"renameChat": "Rename Chat",
|
|
"@renameChat": {
|
|
"description": "Dialog title to rename a chat."
|
|
},
|
|
"enterChatName": "Enter chat name",
|
|
"@enterChatName": {
|
|
"description": "Input hint/label for new chat name."
|
|
},
|
|
"failedToRenameChat": "Failed to rename chat",
|
|
"@failedToRenameChat": {
|
|
"description": "Error notice when renaming chat fails."
|
|
},
|
|
"failedToUpdateArchive": "Failed to update archive",
|
|
"@failedToUpdateArchive": {
|
|
"description": "Error notice when archiving/unarchiving fails."
|
|
},
|
|
"unarchive": "Unarchive",
|
|
"@unarchive": {
|
|
"description": "Action to unarchive an item."
|
|
},
|
|
"archive": "Archive",
|
|
"@archive": {
|
|
"description": "Action to archive an item."
|
|
},
|
|
"pin": "Pin",
|
|
"@pin": {
|
|
"description": "Action to pin/star an item."
|
|
},
|
|
"unpin": "Unpin",
|
|
"@unpin": {
|
|
"description": "Action to remove pin from an item."
|
|
},
|
|
"recent": "Recent",
|
|
"@recent": {
|
|
"description": "List filter for recently used items."
|
|
},
|
|
"system": "System",
|
|
"@system": {
|
|
"description": "Option indicating the device/system default."
|
|
},
|
|
"english": "English",
|
|
"@english": {
|
|
"description": "Language name: English."
|
|
},
|
|
"deutsch": "Deutsch",
|
|
"@deutsch": {
|
|
"description": "Language name: German."
|
|
},
|
|
"francais": "Français",
|
|
"@francais": {
|
|
"description": "Language name: French."
|
|
},
|
|
"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."
|
|
},
|
|
"deleteMessagesTitle": "Delete Messages",
|
|
"@deleteMessagesTitle": {
|
|
"description": "Dialog title asking to confirm deletion of messages."
|
|
},
|
|
"deleteMessagesMessage": "Delete {count} messages?",
|
|
"@deleteMessagesMessage": {
|
|
"description": "Confirmation prompt asking to delete a number of messages.",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"routeNotFound": "Route not found: {routeName}",
|
|
"@routeNotFound": {
|
|
"description": "Displayed when navigation fails to find a route name.",
|
|
"placeholders": {
|
|
"routeName": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"deleteChatTitle": "Delete Chat",
|
|
"@deleteChatTitle": {
|
|
"description": "Dialog title asking to confirm deletion of a chat."
|
|
},
|
|
"deleteChatMessage": "This chat will be permanently deleted.",
|
|
"@deleteChatMessage": {
|
|
"description": "Warning that deleting a chat cannot be undone."
|
|
},
|
|
"deleteFolderTitle": "Delete Folder",
|
|
"@deleteFolderTitle": {
|
|
"description": "Dialog title asking to confirm deletion of a folder."
|
|
},
|
|
"deleteFolderMessage": "This folder and its assignment references will be removed.",
|
|
"@deleteFolderMessage": {
|
|
"description": "Warning that deleting a folder will remove it and its associations."
|
|
},
|
|
"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."
|
|
},
|
|
"imageGenerationDescription": "Create images from your prompts.",
|
|
"@imageGenerationDescription": {
|
|
"description": "Explains creating images via model prompts."
|
|
},
|
|
"copy": "Copy",
|
|
"@copy": {
|
|
"description": "Action to copy text to clipboard."
|
|
},
|
|
"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"
|
|
},
|
|
"edit": "Edit",
|
|
"@edit": {
|
|
"description": "Action to edit an item/message."
|
|
},
|
|
"regenerate": "Regenerate",
|
|
"@regenerate": {
|
|
"description": "Action to request a new assistant response."
|
|
},
|
|
"noConversationsYet": "No conversations yet",
|
|
"@noConversationsYet": {
|
|
"description": "Empty state when the user has no chats."
|
|
},
|
|
"usernameOrEmailHint": "Enter your username or email",
|
|
"@usernameOrEmailHint": {
|
|
"description": "Hint text for username/email input."
|
|
},
|
|
"passwordHint": "Enter your password",
|
|
"@passwordHint": {
|
|
"description": "Hint text for password input."
|
|
},
|
|
"enterApiKey": "Enter your API key",
|
|
"@enterApiKey": {
|
|
"description": "Hint text for API key input."
|
|
},
|
|
"signingIn": "Signing in...",
|
|
"@signingIn": {
|
|
"description": "Status message shown while signing in."
|
|
},
|
|
"advancedSettings": "Advanced Settings",
|
|
"@advancedSettings": {
|
|
"description": "Section that contains additional/optional configuration."
|
|
},
|
|
"customHeaders": "Custom Headers",
|
|
"@customHeaders": {
|
|
"description": "Section title for adding custom HTTP headers."
|
|
},
|
|
"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."
|
|
},
|
|
"headerNameEmpty": "Header name cannot be empty",
|
|
"@headerNameEmpty": {
|
|
"description": "Validation message for empty header name."
|
|
},
|
|
"headerNameTooLong": "Header name too long (max 64 characters)",
|
|
"@headerNameTooLong": {
|
|
"description": "Validation message for header name length."
|
|
},
|
|
"headerNameInvalidChars": "Invalid header name. Use only letters, numbers, and these symbols: !#$&-^_`|~",
|
|
"@headerNameInvalidChars": {
|
|
"description": "Validation message for invalid characters in header name."
|
|
},
|
|
"headerNameReserved": "Cannot override reserved header \"{key}\"",
|
|
"@headerNameReserved": {
|
|
"description": "Error when attempting to override a reserved HTTP header {key}.",
|
|
"placeholders": {
|
|
"key": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"headerValueEmpty": "Header value cannot be empty",
|
|
"@headerValueEmpty": {
|
|
"description": "Validation message for empty header value."
|
|
},
|
|
"headerValueTooLong": "Header value too long (max 1024 characters)",
|
|
"@headerValueTooLong": {
|
|
"description": "Validation message for header value length."
|
|
},
|
|
"headerValueInvalidChars": "Header value contains invalid characters. Use only printable ASCII.",
|
|
"@headerValueInvalidChars": {
|
|
"description": "Validation message for invalid characters in header value."
|
|
},
|
|
"headerValueUnsafe": "Header value appears to contain potentially unsafe content",
|
|
"@headerValueUnsafe": {
|
|
"description": "Security warning for suspicious header values."
|
|
},
|
|
"headerAlreadyExists": "Header \"{key}\" already exists. Remove it first to update.",
|
|
"@headerAlreadyExists": {
|
|
"description": "Error when a custom header with key {key} already exists.",
|
|
"placeholders": {
|
|
"key": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"maxHeadersReachedDetail": "Maximum of 10 custom headers allowed. Remove some to add more.",
|
|
"@maxHeadersReachedDetail": {
|
|
"description": "Explains the upper limit of custom headers."
|
|
},
|
|
"noModelsAvailable": "No models available",
|
|
"@noModelsAvailable": {
|
|
"description": "Shown when model list is empty or failed to load."
|
|
},
|
|
"followingSystem": "Following system: {theme}",
|
|
"@followingSystem": {
|
|
"description": "Indicates the app is following the system theme (\"Dark\"/\"Light\").",
|
|
"placeholders": {
|
|
"theme": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
},
|
|
"themeLight": "Light",
|
|
"@themeLight": {
|
|
"description": "Theme label for light appearance."
|
|
},
|
|
"currentlyUsingDarkTheme": "Currently using Dark theme",
|
|
"@currentlyUsingDarkTheme": {
|
|
"description": "Status text indicating dark theme is active."
|
|
},
|
|
"currentlyUsingLightTheme": "Currently using Light theme",
|
|
"@currentlyUsingLightTheme": {
|
|
"description": "Status text indicating light theme is active."
|
|
},
|
|
"aboutConduit": "About Conduit",
|
|
"@aboutConduit": {
|
|
"description": "Dialog title for app information."
|
|
},
|
|
"versionLabel": "Version: {version} ({build})",
|
|
"@versionLabel": {
|
|
"description": "Displays version and build number in the About dialog.",
|
|
"placeholders": {
|
|
"version": {
|
|
"type": "String"
|
|
},
|
|
"build": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"githubRepository": "GitHub Repository",
|
|
"@githubRepository": {
|
|
"description": "Link label pointing to the app repository."
|
|
},
|
|
"unableToLoadAppInfo": "Unable to load app info",
|
|
"@unableToLoadAppInfo": {
|
|
"description": "Error text when package info cannot be retrieved."
|
|
},
|
|
"thinking": "Thinking…",
|
|
"@thinking": {
|
|
"description": "Label shown while the assistant is reasoning."
|
|
},
|
|
"thoughts": "Thoughts",
|
|
"@thoughts": {
|
|
"description": "Section title for showing reasoning content."
|
|
},
|
|
"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."
|
|
},
|
|
"display": "Display",
|
|
"@display": {
|
|
"description": "Section header for visual and layout related settings."
|
|
},
|
|
"realtime": "Realtime",
|
|
"@realtime": {
|
|
"description": "Section header for realtime/transport settings."
|
|
},
|
|
"transportMode": "Transport mode",
|
|
"@transportMode": {
|
|
"description": "Title for selecting the networking transport used for realtime."
|
|
},
|
|
"mode": "Mode",
|
|
"@mode": {
|
|
"description": "Form field label for transport mode dropdown."
|
|
},
|
|
"transportModePolling": "Polling fallback",
|
|
"@transportModePolling": {
|
|
"description": "Dropdown option label for HTTP polling fallback transport."
|
|
},
|
|
"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."
|
|
}
|
|
}
|