chore: prepare for weblate
This commit is contained in:
@@ -1,26 +1,47 @@
|
||||
{
|
||||
"@@locale": "en",
|
||||
"appTitle": "Conduit",
|
||||
"@appTitle": {"description": "Application name displayed in the app and OS UI."},
|
||||
"initializationFailed": "Initialization Failed",
|
||||
"@initializationFailed": {"description": "Shown if the app fails to initialize critical services."},
|
||||
"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",
|
||||
"@pleaseCheckConnection": {"description": "Generic connectivity hint after an error."},
|
||||
"account": "Account",
|
||||
"@account": {"description": "Section header for account-related options."},
|
||||
"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."},
|
||||
"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."},
|
||||
"loginButton": "Login",
|
||||
"@loginButton": {"description": "Button text for the login action."},
|
||||
"menuItem": "Settings",
|
||||
"@menuItem": {"description": "Generic settings menu item label."},
|
||||
"dynamicContentWithPlaceholder": "Welcome, {name}!",
|
||||
"@dynamicContentWithPlaceholder": {
|
||||
"description": "Greeting message with a dynamic user name.",
|
||||
@@ -42,242 +63,459 @@
|
||||
}
|
||||
},
|
||||
"closeButtonSemantic": "Close",
|
||||
"@closeButtonSemantic": {"description": "Accessible label for a generic Close button."},
|
||||
"loadingContent": "Loading content",
|
||||
"@loadingContent": {"description": "Shown while loading page content."},
|
||||
"noItems": "No items",
|
||||
"@noItems": {"description": "Placeholder text when a list is empty."},
|
||||
"noItemsToDisplay": "No items to display",
|
||||
"@noItemsToDisplay": {"description": "Alternative empty-state description."},
|
||||
"loadMore": "Load More",
|
||||
"@loadMore": {"description": "Button label to load additional items in a paged list."},
|
||||
"workspace": "Workspace",
|
||||
"@workspace": {"description": "Section/tab label for documents and files."},
|
||||
"recentFiles": "Recent Files",
|
||||
"@recentFiles": {"description": "Header for recently accessed files."},
|
||||
"knowledgeBase": "Knowledge Base",
|
||||
"@knowledgeBase": {"description": "Section for knowledge base content."},
|
||||
"noFilesYet": "No files yet",
|
||||
"@noFilesYet": {"description": "Empty state when no files are present."},
|
||||
"uploadDocsPrompt": "Upload documents to reference in your conversations with Conduit",
|
||||
"@uploadDocsPrompt": {"description": "Prompt encouraging users to upload documents."},
|
||||
"uploadFirstFile": "Upload your first file",
|
||||
"@uploadFirstFile": {"description": "CTA to add the first file."},
|
||||
"knowledgeBaseEmpty": "Knowledge base is empty",
|
||||
"@knowledgeBaseEmpty": {"description": "Empty state title for the knowledge base section."},
|
||||
"createCollectionsPrompt": "Create collections of related documents for easy reference",
|
||||
"@createCollectionsPrompt": {"description": "Prompt describing the benefit of creating collections."},
|
||||
"chooseSourcePhoto": "Choose your source",
|
||||
"@chooseSourcePhoto": {"description": "Sheet title to pick camera or photo library."},
|
||||
"takePhoto": "Take a photo",
|
||||
"@takePhoto": {"description": "Action to open camera and capture a new photo."},
|
||||
"chooseFromGallery": "Choose from your photos",
|
||||
"@chooseFromGallery": {"description": "Action to pick an existing photo from library."},
|
||||
"document": "Document",
|
||||
"@document": {"description": "Generic document label used in UI."},
|
||||
"documentHint": "PDF, Word, or text file",
|
||||
"@documentHint": {"description": "Helper hint listing supported document types."},
|
||||
"uploadFileTitle": "Upload File",
|
||||
"@uploadFileTitle": {"description": "Dialog/sheet title for file upload."},
|
||||
"fileUploadComingSoon": "File upload for {type} is coming soon!",
|
||||
"@fileUploadComingSoon": {
|
||||
"placeholders": {"type": {"type": "String", "example": "gallery"}},
|
||||
"description": "Temporary message for upcoming upload feature by type"
|
||||
},
|
||||
"kbCreationComingSoon": "Knowledge base creation is coming soon!",
|
||||
"@kbCreationComingSoon": {"description": "Temporary message indicating KB creation feature is not yet available."},
|
||||
"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": "Start a conversation",
|
||||
"@onboardStartTitle": {"description": "Onboarding card: start chatting title."},
|
||||
"onboardStartSubtitle": "Choose a model, then type below to begin. 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",
|
||||
"onboardQuickBullet2": "Start New Chat or manage models from the top bar"
|
||||
"@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."}
|
||||
,
|
||||
"addAttachment": "Add attachment",
|
||||
"@addAttachment": {"description": "Button to add an attachment (file/photo)."},
|
||||
"tools": "Tools",
|
||||
"@tools": {"description": "Header for a tools/actions section."},
|
||||
"voiceInput": "Voice input",
|
||||
"@voiceInput": {"description": "Label for voice input feature."},
|
||||
"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": "Message...",
|
||||
"@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."},
|
||||
"sendMessage": "Send message",
|
||||
"@sendMessage": {"description": "Semantic label for sending a message."},
|
||||
"file": "File",
|
||||
"@file": {"description": "A file item or attachment type label."},
|
||||
"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": {"placeholders": {"fileName": {"type": "String", "example": "image.txt"}}},
|
||||
"@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": {"placeholders": {"error": {"type": "String", "example": "Network 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",
|
||||
"emptyImageData": "Empty image data"
|
||||
"@invalidImageFormat": {"description": "Error when image type/format is not supported."},
|
||||
"emptyImageData": "Empty image data",
|
||||
"@emptyImageData": {"description": "Error when image data buffer is empty."}
|
||||
,
|
||||
"offlineBanner": "You're offline. Some features may be limited.",
|
||||
"@offlineBanner": {"description": "Banner warning when device is offline."},
|
||||
"featureRequiresInternet": "This feature requires an internet connection",
|
||||
"@featureRequiresInternet": {"description": "Informational text explaining internet requirement."},
|
||||
"messagesWillSendWhenOnline": "Messages will be sent when you're back online",
|
||||
"@messagesWillSendWhenOnline": {"description": "Queue behavior notice while offline."},
|
||||
"confirm": "Confirm",
|
||||
"cancel": "Cancel"
|
||||
"@confirm": {"description": "Confirmation button label."},
|
||||
"cancel": "Cancel",
|
||||
"@cancel": {"description": "Cancel button label."}
|
||||
,
|
||||
"ok": "OK",
|
||||
"@ok": {"description": "Generic OK button label."},
|
||||
"inputField": "Input field",
|
||||
"@inputField": {"description": "Accessibility label describing an input field."},
|
||||
"captureDocumentOrImage": "Capture a document or image",
|
||||
"@captureDocumentOrImage": {"description": "Action to capture a document or image using camera."},
|
||||
"checkConnection": "Check Connection",
|
||||
"@checkConnection": {"description": "CTA to verify network connectivity."},
|
||||
"openSettings": "Open Settings",
|
||||
"@openSettings": {"description": "CTA to open device or app settings."},
|
||||
"chooseDifferentFile": "Choose Different File",
|
||||
"@chooseDifferentFile": {"description": "CTA to pick an alternative file."},
|
||||
"goBack": "Go Back",
|
||||
"@goBack": {"description": "CTA to navigate back."},
|
||||
"technicalDetails": "Technical Details",
|
||||
"@technicalDetails": {"description": "Expandable section label to show error details or logs."},
|
||||
"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."},
|
||||
"searchHint": "Search...",
|
||||
"@searchHint": {"description": "Generic search input hint."},
|
||||
"searchConversations": "Search conversations...",
|
||||
"@searchConversations": {"description": "Search input hint scoped to conversations."},
|
||||
"create": "Create",
|
||||
"@create": {"description": "Primary action to create a resource."},
|
||||
"folderCreated": "Folder created",
|
||||
"@folderCreated": {"description": "Toast/notice after successfully creating a folder."},
|
||||
"failedToCreateFolder": "Failed to create folder",
|
||||
"@failedToCreateFolder": {"description": "Error notice when folder creation fails."},
|
||||
"movedChatToFolder": "Moved \"{title}\" to \"{folder}\"",
|
||||
"@movedChatToFolder": {
|
||||
"description": "Toast indicating a chat titled {title} was moved to folder {folder}.",
|
||||
"placeholders": {
|
||||
"title": {"type": "String"},
|
||||
"folder": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"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."},
|
||||
"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."},
|
||||
"aboutApp": "About App",
|
||||
"@aboutApp": {"description": "Settings tile title to view app information."},
|
||||
"aboutAppSubtitle": "Conduit information and links",
|
||||
"@aboutAppSubtitle": {"description": "Subtitle/description for the About section."},
|
||||
"typeBelowToBegin": "Type below to begin",
|
||||
"@typeBelowToBegin": {"description": "Hint shown in empty chat input area."},
|
||||
"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."},
|
||||
"edit": "Edit",
|
||||
"@edit": {"description": "Action to edit an item/message."},
|
||||
"regenerate": "Regenerate",
|
||||
"noConversationsYet": "No conversations yet"
|
||||
"@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."},
|
||||
"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": {"placeholders": {"key": {"type": "String"}}},
|
||||
"@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": {"placeholders": {"key": {"type": "String"}}},
|
||||
"maxHeadersReachedDetail": "Maximum of 10 custom headers allowed. Remove some to add more."
|
||||
"@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."}
|
||||
,
|
||||
"editMessage": "Edit Message"
|
||||
"editMessage": "Edit Message",
|
||||
"@editMessage": {"description": "Action to edit a previously sent message."}
|
||||
,
|
||||
"noModelsAvailable": "No models available",
|
||||
"@noModelsAvailable": {"description": "Shown when model list is empty or failed to load."},
|
||||
"followingSystem": "Following system: {theme}",
|
||||
"@followingSystem": {"placeholders": {"theme": {"type": "String"}}},
|
||||
"@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."},
|
||||
"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": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}},
|
||||
"@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.",
|
||||
@@ -285,16 +523,30 @@
|
||||
}
|
||||
,
|
||||
"appCustomization": "App Customization",
|
||||
"@appCustomization": {"description": "Title of the customization settings page."},
|
||||
"appCustomizationSubtitle": "Personalize how names and UI display",
|
||||
"@appCustomizationSubtitle": {"description": "Subtitle shown under App Customization tile and page header."},
|
||||
"display": "Display",
|
||||
"@display": {"description": "Section header for visual and layout related settings."},
|
||||
"realtime": "Realtime",
|
||||
"@realtime": {"description": "Section header for realtime/transport settings."},
|
||||
"hideProviderInModelNames": "Hide provider in model names",
|
||||
"@hideProviderInModelNames": {"description": "Toggle label to hide the provider prefix in model names (e.g., show gpt-4o instead of openai/gpt-4o)."},
|
||||
"hideProviderInModelNamesDescription": "Show names like \"gpt-4o\" instead of \"openai/gpt-4o\".",
|
||||
"@hideProviderInModelNamesDescription": {"description": "Helper text for provider hiding toggle."},
|
||||
"transportMode": "Transport mode",
|
||||
"@transportMode": {"description": "Title for selecting the networking transport used for realtime."},
|
||||
"transportModeDescription": "Choose how the app connects for realtime updates.",
|
||||
"@transportModeDescription": {"description": "Helper text explaining the transport setting."},
|
||||
"mode": "Mode",
|
||||
"@mode": {"description": "Form field label for transport mode dropdown."},
|
||||
"transportModeAuto": "Auto (Polling + WebSocket)",
|
||||
"@transportModeAuto": {"description": "Dropdown option label for automatic transport selection."},
|
||||
"transportModeWs": "WebSocket only",
|
||||
"@transportModeWs": {"description": "Dropdown option label for WebSocket-only transport."},
|
||||
"transportModeAutoInfo": "More robust on restrictive networks. Upgrades to WebSocket when possible.",
|
||||
"@transportModeAutoInfo": {"description": "Footnote text for the Auto transport mode."},
|
||||
"transportModeWsInfo": "Lower overhead, but may fail behind strict proxies/firewalls."
|
||||
,
|
||||
"@transportModeWsInfo": {"description": "Footnote text for the WebSocket-only transport mode."}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user