diff --git a/lib/features/chat/widgets/modern_chat_input.dart b/lib/features/chat/widgets/modern_chat_input.dart index 0a41492..d1ae4bb 100644 --- a/lib/features/chat/widgets/modern_chat_input.dart +++ b/lib/features/chat/widgets/modern_chat_input.dart @@ -1563,76 +1563,72 @@ class _ModernChatInputState extends ConsumerState : FontWeight.w400; final TextStyle baseChatStyle = AppTypography.chatMessageStyle; - // Wrap with Semantics to provide an accessible label for screen - // readers. We avoid MergeSemantics which caused double- - // announcements. The TextField provides its own text field - // semantics; this just adds the descriptive label. - return Semantics( - label: AppLocalizations.of(context)!.messageInputLabel, - child: TextField( - controller: _controller, - focusNode: _focusNode, - enabled: widget.enabled, - autofocus: false, - minLines: 1, - maxLines: null, - keyboardType: TextInputType.multiline, - textCapitalization: TextCapitalization.sentences, - textInputAction: sendOnEnter - ? TextInputAction.send - : TextInputAction.newline, - autofillHints: const [], - showCursor: true, - scrollPadding: const EdgeInsets.only(bottom: 80), - keyboardAppearance: brightness, - cursorColor: animatedTextColor, - style: baseChatStyle.copyWith( - color: animatedTextColor, - fontStyle: _isRecording - ? FontStyle.italic - : FontStyle.normal, - fontWeight: recordingWeight, - ), - decoration: InputDecoration( - hintText: AppLocalizations.of(context)!.messageHintText, - hintStyle: baseChatStyle.copyWith( - color: animatedPlaceholder, - fontWeight: recordingWeight, - fontStyle: _isRecording - ? FontStyle.italic - : FontStyle.normal, - ), - filled: false, - border: InputBorder.none, - enabledBorder: InputBorder.none, - focusedBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - contentPadding: contentPadding, - isDense: true, - alignLabelWithHint: true, - ), - // Enable pasting images and files from clipboard - contentInsertionConfiguration: ContentInsertionConfiguration( - allowedMimeTypes: ClipboardAttachmentService - .supportedImageMimeTypes - .toList(), - onContentInserted: _handleContentInserted, - ), - // Custom context menu with "Paste Image" option for iOS - contextMenuBuilder: (context, editableTextState) { - return _buildContextMenu(context, editableTextState); - }, - onSubmitted: (_) { - if (sendOnEnter) { - _sendMessage(); - } - }, - onTap: () { - if (!widget.enabled) return; - _ensureFocusedIfEnabled(); - }, + // Rely on TextField's built-in accessibility via hintText. + // Wrapping with Semantics creates duplicate accessibility nodes + // which confuses screen readers and causes keyboard issues with + // alternative input methods (e.g., Braille keyboards). + // The hintText "Ask Conduit" provides sufficient context for + // screen readers to identify this as a message input field. + return TextField( + controller: _controller, + focusNode: _focusNode, + enabled: widget.enabled, + autofocus: false, + minLines: 1, + maxLines: null, + keyboardType: TextInputType.multiline, + textCapitalization: TextCapitalization.sentences, + textInputAction: sendOnEnter + ? TextInputAction.send + : TextInputAction.newline, + autofillHints: const [], + showCursor: true, + scrollPadding: const EdgeInsets.only(bottom: 80), + keyboardAppearance: brightness, + cursorColor: animatedTextColor, + style: baseChatStyle.copyWith( + color: animatedTextColor, + fontStyle: _isRecording ? FontStyle.italic : FontStyle.normal, + fontWeight: recordingWeight, ), + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.messageHintText, + hintStyle: baseChatStyle.copyWith( + color: animatedPlaceholder, + fontWeight: recordingWeight, + fontStyle: + _isRecording ? FontStyle.italic : FontStyle.normal, + ), + filled: false, + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + contentPadding: contentPadding, + isDense: true, + alignLabelWithHint: true, + ), + // Enable pasting images and files from clipboard + contentInsertionConfiguration: ContentInsertionConfiguration( + allowedMimeTypes: ClipboardAttachmentService + .supportedImageMimeTypes + .toList(), + onContentInserted: _handleContentInserted, + ), + // Custom context menu with "Paste Image" option for iOS + contextMenuBuilder: (context, editableTextState) { + return _buildContextMenu(context, editableTextState); + }, + onSubmitted: (_) { + if (sendOnEnter) { + _sendMessage(); + } + }, + onTap: () { + if (!widget.enabled) return; + _ensureFocusedIfEnabled(); + }, ); }, ), diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 1b2723a..27df470 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -5,7 +5,6 @@ "back": "Zurück", "you": "Du", "loadingProfile": "Profil wird geladen...", - "unableToLoadProfile": "Profil konnte nicht geladen werden", "pleaseCheckConnection": "Bitte überprüfe deine Verbindung und versuche es erneut", "connectionIssueTitle": "Server nicht erreichbar", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Token", "usernameOrEmail": "Benutzername oder E‑Mail", "password": "Passwort", - "signInWithApiKey": "Mit API-Schlüssel anmelden", "signInWithToken": "Mit Token anmelden", "connectToServer": "Mit Server verbinden", "enterServerAddress": "Gib die Adresse deines Open-WebUI-Servers ein, um zu beginnen", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Tippe auf \"Starten\", um zu beginnen", "voiceActionStop": "Stopp", "voiceActionStart": "Starten", - "messageInputLabel": "Nachrichteneingabe", - "messageInputHint": "Nachricht eingeben", "messageHintText": "Frag Conduit", "stopGenerating": "Generierung stoppen", "codeCopiedToClipboard": "Code in die Zwischenablage kopiert.", @@ -128,7 +124,6 @@ "file": "Datei", "photo": "Foto", "camera": "Kamera", - "pasteFromClipboard": "Einfügen", "pasteImage": "Bild einfügen", "apiUnavailable": "API-Dienst nicht verfügbar", "unableToLoadImage": "Bild kann nicht geladen werden", @@ -229,7 +224,6 @@ "noConversationsYet": "Noch keine Unterhaltungen", "usernameOrEmailHint": "Gib deinen Benutzernamen oder deine E‑Mail ein", "passwordHint": "Gib dein Passwort ein", - "enterApiKey": "Gib deinen API-Schlüssel ein", "enterToken": "Gib dein JWT-Token ein", "tokenHint": "Hole das JWT-Token aus den OpenWebUI-Einstellungen. API-Schlüssel (sk-...) werden für Streaming nicht unterstützt.", "apiKeyNotSupported": "API-Schlüssel (sk-...) werden nicht unterstützt. Bitte verwende stattdessen ein JWT-Token.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Hilfetext, der die Risiken beim Aktivieren des Schalters für selbstsignierte Zertifikate erklärt." }, - "headerNameEmpty": "Header-Name darf nicht leer sein", "headerNameTooLong": "Header-Name zu lang (max. 64 Zeichen)", "headerNameInvalidChars": "Ungültiger Header-Name. Verwende nur Buchstaben, Zahlen und diese Zeichen: !#$&-^_`|~", "headerNameReserved": "Reservierten Header \"{key}\" kann nicht überschrieben werden", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "Header-Wert darf nicht leer sein", "headerValueTooLong": "Header-Wert zu lang (max. 1024 Zeichen)", "headerValueInvalidChars": "Header-Wert enthält ungültige Zeichen. Nur druckbare ASCII-Zeichen verwenden.", "headerValueUnsafe": "Header-Wert scheint potenziell unsicheren Inhalt zu enthalten", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Notiz-Titel", "writeNote": "Schreibe etwas...", - "noteSaved": "Notiz gespeichert", "saving": "Speichern...", "saved": "Gespeichert", - "unsavedChanges": "Ungespeicherte Änderungen", "noteCopiedToClipboard": "Notiz in Zwischenablage kopiert", "generateTitle": "Titel generieren", "generatingTitle": "Titel wird generiert...", @@ -815,15 +804,6 @@ "previous7Days": "Letzte 7 Tage", "previous30Days": "Letzte 30 Tage", "older": "Älter", - "tapToExpand": "Tippen zum Erweitern", - "byAuthor": "Von {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} Wörter", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Conduit fragen", - "widgetCamera": "Kamera", - "widgetPhotos": "Fotos", - "widgetClipboard": "Zwischenablage", - "widgetDescription": "Schnellzugriff auf den Conduit-Chat mit Kamera, Fotos und Zwischenablage-Verknüpfungen", "sso": "SSO", "ssoDescription": "Mit dem Identitätsanbieter Ihrer Organisation anmelden", "signInWithSso": "Mit SSO anmelden", "ssoAuthenticating": "Authentifizierung...", "ssoAuthFailed": "SSO-Authentifizierung fehlgeschlagen", - "ssoTokenNotFound": "Authentifizierungstoken vom SSO-Anbieter konnte nicht abgerufen werden", "ssoLoadingLogin": "Anmeldeseite wird geladen...", "ldap": "LDAP", "ldapDescription": "Mit Ihren LDAP-Verzeichnis-Anmeldedaten anmelden", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 75cbfa2..ec6355c 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -20,10 +20,6 @@ "@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": { @@ -228,10 +224,6 @@ "@password": { "description": "Label for password input field." }, - "signInWithApiKey": "Sign in with API Key", - "@signInWithApiKey": { - "description": "Alternative sign-in method using an API key." - }, "signInWithToken": "Sign in with Token", "@signInWithToken": { "description": "Alternative sign-in method using a JWT token." @@ -562,14 +554,6 @@ "@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." @@ -606,10 +590,6 @@ "@camera": { "description": "Camera source label." }, - "pasteFromClipboard": "Paste", - "@pasteFromClipboard": { - "description": "Action label to paste images or files from the clipboard." - }, "pasteImage": "Paste Image", "@pasteImage": { "description": "Context menu action to paste an image from the clipboard." @@ -1086,10 +1066,6 @@ "@passwordHint": { "description": "Hint text for password input." }, - "enterApiKey": "Enter your API key", - "@enterApiKey": { - "description": "Hint text for API key input." - }, "enterToken": "Enter your JWT token", "@enterToken": { "description": "Hint text for JWT token input." @@ -1134,10 +1110,6 @@ "@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." @@ -1155,10 +1127,6 @@ } } }, - "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." @@ -1723,18 +1691,10 @@ } } }, - "noteTitle": "Note title", - "@noteTitle": { - "description": "Hint text for note title input field." - }, "writeNote": "Write something...", "@writeNote": { "description": "Hint text for note content input field." }, - "noteSaved": "Note saved", - "@noteSaved": { - "description": "Confirmation message when note is saved." - }, "saving": "Saving...", "@saving": { "description": "Status text while saving." @@ -1743,10 +1703,6 @@ "@saved": { "description": "Status text when content is saved." }, - "unsavedChanges": "Unsaved changes", - "@unsavedChanges": { - "description": "Status text when there are unsaved changes." - }, "noteCopiedToClipboard": "Note copied to clipboard", "@noteCopiedToClipboard": { "description": "Confirmation message when note content is copied to clipboard." @@ -1835,20 +1791,6 @@ "@older": { "description": "Time range label for items older than 30 days." }, - "tapToExpand": "Tap to expand", - "@tapToExpand": { - "description": "Hint text shown on collapsed sections." - }, - "byAuthor": "By {name}", - "@byAuthor": { - "description": "Attribution text showing the note author.", - "placeholders": { - "name": { - "type": "String", - "example": "John" - } - } - }, "wordCount": "{count} words", "@wordCount": { "description": "Status bar text showing word count.", @@ -1869,26 +1811,6 @@ } } }, - "widgetAskConduit": "Ask Conduit", - "@widgetAskConduit": { - "description": "Main button text on the home screen widget." - }, - "widgetCamera": "Camera", - "@widgetCamera": { - "description": "Camera button label on the home screen widget." - }, - "widgetPhotos": "Photos", - "@widgetPhotos": { - "description": "Photos button label on the home screen widget." - }, - "widgetClipboard": "Clipboard", - "@widgetClipboard": { - "description": "Clipboard button label on the home screen widget." - }, - "widgetDescription": "Quick access to Conduit chat with camera, photos, and clipboard shortcuts", - "@widgetDescription": { - "description": "Description shown in the widget picker when adding the widget." - }, "mermaidPreviewUnavailable": "Mermaid preview is not available on this platform.", "@mermaidPreviewUnavailable": { "description": "Shown when Mermaid diagrams cannot be rendered on the current platform." @@ -1945,10 +1867,6 @@ "@ssoAuthFailed": { "description": "Error message when SSO authentication fails." }, - "ssoTokenNotFound": "Could not retrieve authentication token from SSO provider", - "@ssoTokenNotFound": { - "description": "Error message when SSO token cannot be captured." - }, "ssoLoadingLogin": "Loading login page...", "@ssoLoadingLogin": { "description": "Loading message while SSO login page loads." diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 8a0eff4..b45ae94 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -5,7 +5,6 @@ "back": "Atrás", "you": "Tú", "loadingProfile": "Cargando perfil...", - "unableToLoadProfile": "No se puede cargar el perfil", "pleaseCheckConnection": "Por favor, verifica tu conexión e inténtalo de nuevo", "connectionIssueTitle": "No se puede conectar al servidor", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Token", "usernameOrEmail": "Usuario o correo electrónico", "password": "Contraseña", - "signInWithApiKey": "Iniciar sesión con clave API", "signInWithToken": "Iniciar sesión con token", "connectToServer": "Conectar al servidor", "enterServerAddress": "Ingresa la dirección de tu servidor Open-WebUI para comenzar", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Toca Iniciar para comenzar", "voiceActionStop": "Detener", "voiceActionStart": "Iniciar", - "messageInputLabel": "Entrada de mensaje", - "messageInputHint": "Escribe tu mensaje", "messageHintText": "Pregunta a Conduit", "stopGenerating": "Detener generación", "codeCopiedToClipboard": "Código copiado al portapapeles.", @@ -128,7 +124,6 @@ "file": "Archivo", "photo": "Foto", "camera": "Cámara", - "pasteFromClipboard": "Pegar", "pasteImage": "Pegar imagen", "apiUnavailable": "Servicio de API no disponible", "unableToLoadImage": "No se puede cargar la imagen", @@ -229,7 +224,6 @@ "noConversationsYet": "Aún no hay conversaciones", "usernameOrEmailHint": "Ingresa tu usuario o correo electrónico", "passwordHint": "Ingresa tu contraseña", - "enterApiKey": "Ingresa tu clave API", "enterToken": "Ingresa tu token JWT", "tokenHint": "Obtén el token JWT desde la configuración de OpenWebUI. Las claves API (sk-...) no son compatibles con streaming.", "apiKeyNotSupported": "Las claves API (sk-...) no son compatibles. Por favor usa un token JWT en su lugar.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Texto de ayuda que aclara los riesgos de habilitar el interruptor de certificados autofirmados." }, - "headerNameEmpty": "El nombre del encabezado no puede estar vacío", "headerNameTooLong": "Nombre de encabezado demasiado largo (máx. 64 caracteres)", "headerNameInvalidChars": "Nombre de encabezado inválido. Usa solo letras, números y estos símbolos: !#$&-^_`|~", "headerNameReserved": "No se puede sobrescribir el encabezado reservado \"{key}\"", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "El valor del encabezado no puede estar vacío", "headerValueTooLong": "Valor de encabezado demasiado largo (máx. 1024 caracteres)", "headerValueInvalidChars": "El valor del encabezado contiene caracteres inválidos. Usa solo ASCII imprimible.", "headerValueUnsafe": "El valor del encabezado parece contener contenido potencialmente inseguro", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Título de la nota", "writeNote": "Escribe algo...", - "noteSaved": "Nota guardada", "saving": "Guardando...", "saved": "Guardado", - "unsavedChanges": "Cambios sin guardar", "noteCopiedToClipboard": "Nota copiada al portapapeles", "generateTitle": "Generar título", "generatingTitle": "Generando título...", @@ -815,15 +804,6 @@ "previous7Days": "Últimos 7 días", "previous30Days": "Últimos 30 días", "older": "Más antiguo", - "tapToExpand": "Toca para expandir", - "byAuthor": "Por {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} palabras", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Preguntar a Conduit", - "widgetCamera": "Cámara", - "widgetPhotos": "Fotos", - "widgetClipboard": "Portapapeles", - "widgetDescription": "Acceso rápido al chat de Conduit con cámara, fotos y atajos del portapapeles", "sso": "SSO", "ssoDescription": "Iniciar sesión con el proveedor de identidad de su organización", "signInWithSso": "Iniciar sesión con SSO", "ssoAuthenticating": "Autenticando...", "ssoAuthFailed": "Error de autenticación SSO", - "ssoTokenNotFound": "No se pudo obtener el token de autenticación del proveedor SSO", "ssoLoadingLogin": "Cargando página de inicio de sesión...", "ldap": "LDAP", "ldapDescription": "Iniciar sesión con sus credenciales de directorio LDAP", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 1197ce5..795a1ba 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -5,7 +5,6 @@ "back": "Retour", "you": "Vous", "loadingProfile": "Chargement du profil...", - "unableToLoadProfile": "Impossible de charger le profil", "pleaseCheckConnection": "Veuillez vérifier votre connexion et réessayer", "connectionIssueTitle": "Impossible d'atteindre votre serveur", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Jeton", "usernameOrEmail": "Nom d'utilisateur ou e‑mail", "password": "Mot de passe", - "signInWithApiKey": "Se connecter avec une clé API", "signInWithToken": "Se connecter avec un jeton", "connectToServer": "Se connecter au serveur", "enterServerAddress": "Saisissez l'adresse de votre serveur Open-WebUI pour commencer", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Appuyez sur \"Démarrer\" pour commencer", "voiceActionStop": "Arrêter", "voiceActionStart": "Démarrer", - "messageInputLabel": "Saisie du message", - "messageInputHint": "Saisissez votre message", "messageHintText": "Demander à Conduit", "stopGenerating": "Arrêter la génération", "codeCopiedToClipboard": "Code copié dans le presse-papiers.", @@ -128,7 +124,6 @@ "file": "Fichier", "photo": "Photo", "camera": "Appareil photo", - "pasteFromClipboard": "Coller", "pasteImage": "Coller l'image", "apiUnavailable": "Service API indisponible", "unableToLoadImage": "Impossible de charger l'image", @@ -229,7 +224,6 @@ "noConversationsYet": "Aucune conversation pour l'instant", "usernameOrEmailHint": "Entrez votre nom d'utilisateur ou e‑mail", "passwordHint": "Entrez votre mot de passe", - "enterApiKey": "Entrez votre clé API", "enterToken": "Entrez votre jeton JWT", "tokenHint": "Obtenez le jeton JWT dans les paramètres d'OpenWebUI. Les clés API (sk-...) ne sont pas prises en charge pour le streaming.", "apiKeyNotSupported": "Les clés API (sk-...) ne sont pas prises en charge. Veuillez utiliser un jeton JWT à la place.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Texte d'aide expliquant les risques liés à l'activation de l'option de certificat auto-signé." }, - "headerNameEmpty": "Le nom de l'en-tête ne peut pas être vide", "headerNameTooLong": "Nom d'en-tête trop long (max 64 caractères)", "headerNameInvalidChars": "Nom d'en-tête invalide. Utilisez uniquement des lettres, des chiffres et ces symboles : !#$&-^_`|~", "headerNameReserved": "Impossible d'écraser l'en-tête réservé « {key} »", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "La valeur de l'en-tête ne peut pas être vide", "headerValueTooLong": "Valeur d'en-tête trop longue (max 1024 caractères)", "headerValueInvalidChars": "La valeur de l'en-tête contient des caractères invalides. Utilisez uniquement des caractères ASCII imprimables.", "headerValueUnsafe": "La valeur de l'en-tête semble contenir du contenu potentiellement dangereux", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Titre de la note", "writeNote": "Écrivez quelque chose...", - "noteSaved": "Note enregistrée", "saving": "Enregistrement...", "saved": "Enregistré", - "unsavedChanges": "Modifications non enregistrées", "noteCopiedToClipboard": "Note copiée dans le presse-papiers", "generateTitle": "Générer un titre", "generatingTitle": "Génération du titre...", @@ -815,15 +804,6 @@ "previous7Days": "7 derniers jours", "previous30Days": "30 derniers jours", "older": "Plus ancien", - "tapToExpand": "Appuyez pour développer", - "byAuthor": "Par {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} mots", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Demander à Conduit", - "widgetCamera": "Appareil photo", - "widgetPhotos": "Photos", - "widgetClipboard": "Presse-papiers", - "widgetDescription": "Accès rapide au chat Conduit avec appareil photo, photos et raccourcis du presse-papiers", "sso": "SSO", "ssoDescription": "Connectez-vous avec le fournisseur d'identité de votre organisation", "signInWithSso": "Se connecter avec SSO", "ssoAuthenticating": "Authentification...", "ssoAuthFailed": "Échec de l'authentification SSO", - "ssoTokenNotFound": "Impossible de récupérer le jeton d'authentification du fournisseur SSO", "ssoLoadingLogin": "Chargement de la page de connexion...", "ldap": "LDAP", "ldapDescription": "Connectez-vous avec vos identifiants d'annuaire LDAP", diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index f67eecb..78b88de 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -5,7 +5,6 @@ "back": "Indietro", "you": "Tu", "loadingProfile": "Caricamento profilo...", - "unableToLoadProfile": "Impossibile caricare il profilo", "pleaseCheckConnection": "Controlla la connessione e riprova", "connectionIssueTitle": "Impossibile raggiungere il server", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Token", "usernameOrEmail": "Username o e‑mail", "password": "Password", - "signInWithApiKey": "Accedi con chiave API", "signInWithToken": "Accedi con token", "connectToServer": "Connetti al server", "enterServerAddress": "Inserisci l'indirizzo del server Open-WebUI per iniziare", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Tocca \"Avvia\" per iniziare", "voiceActionStop": "Stop", "voiceActionStart": "Avvia", - "messageInputLabel": "Input messaggio", - "messageInputHint": "Scrivi il tuo messaggio", "messageHintText": "Chiedi a Conduit", "stopGenerating": "Interrompi generazione", "codeCopiedToClipboard": "Codice copiato negli appunti.", @@ -128,7 +124,6 @@ "file": "File", "photo": "Foto", "camera": "Fotocamera", - "pasteFromClipboard": "Incolla", "pasteImage": "Incolla immagine", "apiUnavailable": "Servizio API non disponibile", "unableToLoadImage": "Impossibile caricare l'immagine", @@ -229,7 +224,6 @@ "noConversationsYet": "Ancora nessuna conversazione", "usernameOrEmailHint": "Inserisci il tuo username o e‑mail", "passwordHint": "Inserisci la password", - "enterApiKey": "Inserisci la tua chiave API", "enterToken": "Inserisci il tuo token JWT", "tokenHint": "Ottieni il token JWT dalle impostazioni di OpenWebUI. Le chiavi API (sk-...) non sono supportate per lo streaming.", "apiKeyNotSupported": "Le chiavi API (sk-...) non sono supportate. Per favore usa un token JWT.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Testo di supporto che chiarisce i rischi dell'attivazione dell'opzione per certificati autofirmati." }, - "headerNameEmpty": "Il nome header non può essere vuoto", "headerNameTooLong": "Nome header troppo lungo (max 64 caratteri)", "headerNameInvalidChars": "Nome header non valido. Usa solo lettere, numeri e questi simboli: !#$&-^_`|~", "headerNameReserved": "Impossibile sovrascrivere l'header riservato \"{key}\"", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "Il valore dell'header non può essere vuoto", "headerValueTooLong": "Valore header troppo lungo (max 1024 caratteri)", "headerValueInvalidChars": "Il valore dell'header contiene caratteri non validi. Usa solo ASCII stampabile.", "headerValueUnsafe": "Il valore dell'header sembra contenere contenuti potenzialmente non sicuri", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Titolo della nota", "writeNote": "Scrivi qualcosa...", - "noteSaved": "Nota salvata", "saving": "Salvataggio...", "saved": "Salvato", - "unsavedChanges": "Modifiche non salvate", "noteCopiedToClipboard": "Nota copiata negli appunti", "generateTitle": "Genera titolo", "generatingTitle": "Generazione titolo...", @@ -815,15 +804,6 @@ "previous7Days": "Ultimi 7 giorni", "previous30Days": "Ultimi 30 giorni", "older": "Più vecchio", - "tapToExpand": "Tocca per espandere", - "byAuthor": "Di {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} parole", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Chiedi a Conduit", - "widgetCamera": "Fotocamera", - "widgetPhotos": "Foto", - "widgetClipboard": "Appunti", - "widgetDescription": "Accesso rapido alla chat di Conduit con fotocamera, foto e scorciatoie degli appunti", "sso": "SSO", "ssoDescription": "Accedi con il provider di identità della tua organizzazione", "signInWithSso": "Accedi con SSO", "ssoAuthenticating": "Autenticazione...", "ssoAuthFailed": "Autenticazione SSO fallita", - "ssoTokenNotFound": "Impossibile recuperare il token di autenticazione dal provider SSO", "ssoLoadingLogin": "Caricamento pagina di accesso...", "ldap": "LDAP", "ldapDescription": "Accedi con le credenziali della directory LDAP", diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index 9040a8f..f060180 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -5,7 +5,6 @@ "back": "뒤로", "you": "프로필", "loadingProfile": "프로필 로딩 중...", - "unableToLoadProfile": "프로필을 불러올 수 없습니다", "pleaseCheckConnection": "연결을 확인하고 다시 시도해주세요", "connectionIssueTitle": "서버에 연결할 수 없습니다", "connectionIssueSubtitle": "다시 연결하거나 로그아웃하여 다른 서버를 선택하세요.", @@ -90,7 +89,6 @@ "token": "토큰", "usernameOrEmail": "사용자 이름 또는 이메일", "password": "비밀번호", - "signInWithApiKey": "API 키로 로그인", "signInWithToken": "토큰으로 로그인", "connectToServer": "서버 연결", "enterServerAddress": "시작하려면 Open-WebUI 서버 주소를 입력하세요", @@ -181,8 +179,6 @@ "voiceCallSpeaking": "말하는 중", "voiceCallDisconnected": "연결 끊김", "voiceCallErrorHelp": "다음을 확인하세요:\n• 마이크 권한이 부여되었는지\n• 기기에서 음성 인식이 사용 가능한지\n• 서버에 연결되어 있는지", - "messageInputLabel": "메시지 입력", - "messageInputHint": "메시지를 입력하세요", "messageHintText": "Conduit에게 물어보기", "stopGenerating": "생성 중지", "send": "전송", @@ -192,7 +188,6 @@ "chooseDifferentFile": "다른 파일 선택", "photo": "사진", "camera": "카메라", - "pasteFromClipboard": "붙여넣기", "pasteImage": "이미지 붙여넣기", "apiUnavailable": "API 서비스를 사용할 수 없습니다", "unableToLoadImage": "이미지를 불러올 수 없습니다", @@ -339,7 +334,6 @@ "noConversationsYet": "아직 대화가 없습니다", "usernameOrEmailHint": "사용자 이름 또는 이메일을 입력하세요", "passwordHint": "비밀번호를 입력하세요", - "enterApiKey": "API 키를 입력하세요", "enterToken": "JWT 토큰을 입력하세요", "tokenHint": "OpenWebUI 설정에서 JWT 토큰을 가져오세요. API 키(sk-...)는 스트리밍에 지원되지 않습니다.", "apiKeyNotSupported": "API 키(sk-...)는 지원되지 않습니다. JWT 토큰을 사용하세요.", @@ -351,7 +345,6 @@ "customHeadersDescription": "인증, API 키 또는 특수 서버 요구사항을 위한 사용자 정의 HTTP 헤더를 추가하세요.", "allowSelfSignedCertificates": "자체 서명된 인증서 신뢰", "allowSelfSignedCertificatesDescription": "자체 서명된 경우에도 이 서버의 TLS 인증서를 수락합니다. 신뢰하는 서버에만 사용하세요.", - "headerNameEmpty": "헤더 이름은 비어 있을 수 없습니다", "headerNameTooLong": "헤더 이름이 너무 깁니다 (최대 64자)", "headerNameInvalidChars": "잘못된 헤더 이름입니다. 문자, 숫자 및 다음 기호만 사용하세요: !#$&-^_`|~", "headerNameReserved": "예약된 헤더 \"{key}\"를 재정의할 수 없습니다", @@ -363,7 +356,6 @@ } } }, - "headerValueEmpty": "헤더 값은 비어 있을 수 없습니다", "headerValueTooLong": "헤더 값이 너무 깁니다 (최대 1024자)", "headerValueInvalidChars": "헤더 값에 잘못된 문자가 포함되어 있습니다. 인쇄 가능한 ASCII만 사용하세요.", "headerValueUnsafe": "헤더 값에 잠재적으로 안전하지 않은 콘텐츠가 포함된 것으로 보입니다", @@ -565,12 +557,9 @@ } } }, - "noteTitle": "노트 제목", "writeNote": "무언가 작성하세요...", - "noteSaved": "노트 저장됨", "saving": "저장 중...", "saved": "저장됨", - "unsavedChanges": "저장되지 않은 변경사항", "noteCopiedToClipboard": "노트가 클립보드에 복사됨", "generateTitle": "제목 생성", "generatingTitle": "제목 생성 중...", @@ -593,15 +582,6 @@ "previous7Days": "지난 7일", "previous30Days": "지난 30일", "older": "이전", - "tapToExpand": "탭하여 확장", - "byAuthor": "{name} 작성", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count}단어", "@wordCount": { "placeholders": { @@ -636,17 +616,11 @@ } } }, - "widgetAskConduit": "Conduit에게 묻기", - "widgetCamera": "카메라", - "widgetPhotos": "사진", - "widgetClipboard": "클립보드", - "widgetDescription": "카메라, 사진 및 클립보드 바로가기로 Conduit 채팅에 빠르게 액세스", "sso": "SSO", "ssoDescription": "조직의 ID 공급자로 로그인", "signInWithSso": "SSO로 로그인", "ssoAuthenticating": "인증 중...", "ssoAuthFailed": "SSO 인증 실패", - "ssoTokenNotFound": "SSO 공급자에서 인증 토큰을 검색할 수 없습니다", "ssoLoadingLogin": "로그인 페이지 로딩 중...", "ldap": "LDAP", "ldapDescription": "LDAP 디렉토리 자격 증명으로 로그인", diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 998abd9..a2dd8e9 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -5,7 +5,6 @@ "back": "Terug", "you": "Jij", "loadingProfile": "Profiel laden...", - "unableToLoadProfile": "Kan profiel niet laden", "pleaseCheckConnection": "Controleer je verbinding en probeer het opnieuw", "connectionIssueTitle": "Kan je server niet bereiken", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Token", "usernameOrEmail": "Gebruikersnaam of e-mail", "password": "Wachtwoord", - "signInWithApiKey": "Inloggen met API-sleutel", "signInWithToken": "Inloggen met token", "connectToServer": "Verbinden met server", "enterServerAddress": "Voer je Open-WebUI serveradres in om te beginnen", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Tik op Start om te beginnen", "voiceActionStop": "Stop", "voiceActionStart": "Start", - "messageInputLabel": "Berichtinvoer", - "messageInputHint": "Typ je bericht", "messageHintText": "Vraag Conduit", "stopGenerating": "Stop met genereren", "codeCopiedToClipboard": "Code gekopieerd naar klembord.", @@ -128,7 +124,6 @@ "file": "Bestand", "photo": "Foto", "camera": "Camera", - "pasteFromClipboard": "Plakken", "pasteImage": "Afbeelding plakken", "apiUnavailable": "API-service niet beschikbaar", "unableToLoadImage": "Kan afbeelding niet laden", @@ -229,7 +224,6 @@ "noConversationsYet": "Nog geen gesprekken", "usernameOrEmailHint": "Voer je gebruikersnaam of e-mail in", "passwordHint": "Voer je wachtwoord in", - "enterApiKey": "Voer je API-sleutel in", "enterToken": "Voer je JWT-token in", "tokenHint": "Haal het JWT-token uit de OpenWebUI-instellingen. API-sleutels (sk-...) worden niet ondersteund voor streaming.", "apiKeyNotSupported": "API-sleutels (sk-...) worden niet ondersteund. Gebruik in plaats daarvan een JWT-token.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Hulptekst die de risico's van het inschakelen van de schakelaar voor zelfondertekende certificaten verduidelijkt." }, - "headerNameEmpty": "Header-naam mag niet leeg zijn", "headerNameTooLong": "Header-naam te lang (max 64 tekens)", "headerNameInvalidChars": "Ongeldige header-naam. Gebruik alleen letters, cijfers en deze symbolen: !#$&-^_`|~", "headerNameReserved": "Kan gereserveerde header '{key}' niet overschrijven", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "Header-waarde mag niet leeg zijn", "headerValueTooLong": "Header-waarde te lang (max 1024 tekens)", "headerValueInvalidChars": "Header-waarde bevat ongeldige tekens. Gebruik alleen afdrukbare ASCII.", "headerValueUnsafe": "Header-waarde lijkt mogelijk onveilige inhoud te bevatten", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Notitietitel", "writeNote": "Schrijf iets...", - "noteSaved": "Notitie opgeslagen", "saving": "Opslaan...", "saved": "Opgeslagen", - "unsavedChanges": "Niet-opgeslagen wijzigingen", "noteCopiedToClipboard": "Notitie gekopieerd naar klembord", "generateTitle": "Titel genereren", "generatingTitle": "Titel genereren...", @@ -815,15 +804,6 @@ "previous7Days": "Afgelopen 7 dagen", "previous30Days": "Afgelopen 30 dagen", "older": "Ouder", - "tapToExpand": "Tik om uit te vouwen", - "byAuthor": "Door {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} woorden", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Vraag Conduit", - "widgetCamera": "Camera", - "widgetPhotos": "Foto's", - "widgetClipboard": "Klembord", - "widgetDescription": "Snelle toegang tot Conduit-chat met camera, foto's en klembordsnelkoppelingen", "sso": "SSO", "ssoDescription": "Aanmelden met de identiteitsprovider van uw organisatie", "signInWithSso": "Aanmelden met SSO", "ssoAuthenticating": "Authenticeren...", "ssoAuthFailed": "SSO-authenticatie mislukt", - "ssoTokenNotFound": "Kan authenticatietoken niet ophalen van SSO-provider", "ssoLoadingLogin": "Inlogpagina laden...", "ldap": "LDAP", "ldapDescription": "Aanmelden met uw LDAP-directorygegevens", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index eab81df..5cb7e7e 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -5,7 +5,6 @@ "back": "Назад", "you": "Вы", "loadingProfile": "Загрузка профиля...", - "unableToLoadProfile": "Не удалось загрузить профиль", "pleaseCheckConnection": "Пожалуйста, проверьте соединение и повторите попытку", "connectionIssueTitle": "Не удается подключиться к серверу", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "Токен", "usernameOrEmail": "Имя пользователя или email", "password": "Пароль", - "signInWithApiKey": "Войти с помощью API-ключа", "signInWithToken": "Войти с помощью токена", "connectToServer": "Подключиться к серверу", "enterServerAddress": "Введите адрес вашего сервера Open-WebUI для начала", @@ -118,8 +116,6 @@ "voicePromptTapStart": "Нажмите «Начать» для запуска", "voiceActionStop": "Стоп", "voiceActionStart": "Начать", - "messageInputLabel": "Ввод сообщения", - "messageInputHint": "Введите ваше сообщение", "messageHintText": "Спросите Conduit", "stopGenerating": "Остановить генерацию", "codeCopiedToClipboard": "Код скопирован в буфер обмена.", @@ -128,7 +124,6 @@ "file": "Файл", "photo": "Фото", "camera": "Камера", - "pasteFromClipboard": "Вставить", "pasteImage": "Вставить изображение", "apiUnavailable": "Служба API недоступна", "unableToLoadImage": "Не удалось загрузить изображение", @@ -229,7 +224,6 @@ "noConversationsYet": "Пока нет разговоров", "usernameOrEmailHint": "Введите ваше имя пользователя или email", "passwordHint": "Введите ваш пароль", - "enterApiKey": "Введите ваш API-ключ", "enterToken": "Введите ваш JWT-токен", "tokenHint": "Получите JWT-токен в настройках OpenWebUI. API-ключи (sk-...) не поддерживаются для потоковой передачи.", "apiKeyNotSupported": "API-ключи (sk-...) не поддерживаются. Пожалуйста, используйте JWT-токен.", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "Вспомогательный текст, разъясняющий риски включения переключателя самоподписанных сертификатов." }, - "headerNameEmpty": "Имя заголовка не может быть пустым", "headerNameTooLong": "Имя заголовка слишком длинное (максимум 64 символа)", "headerNameInvalidChars": "Недопустимое имя заголовка. Используйте только буквы, цифры и эти символы: !#$&-^_`|~", "headerNameReserved": "Невозможно переопределить зарезервированный заголовок «{key}»", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "Значение заголовка не может быть пустым", "headerValueTooLong": "Значение заголовка слишком длинное (максимум 1024 символа)", "headerValueInvalidChars": "Значение заголовка содержит недопустимые символы. Используйте только печатаемые ASCII.", "headerValueUnsafe": "Значение заголовка содержит потенциально небезопасное содержимое", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "Название заметки", "writeNote": "Напишите что-нибудь...", - "noteSaved": "Заметка сохранена", "saving": "Сохранение...", "saved": "Сохранено", - "unsavedChanges": "Несохранённые изменения", "noteCopiedToClipboard": "Заметка скопирована в буфер обмена", "generateTitle": "Сгенерировать название", "generatingTitle": "Генерация названия...", @@ -815,15 +804,6 @@ "previous7Days": "Последние 7 дней", "previous30Days": "Последние 30 дней", "older": "Старше", - "tapToExpand": "Нажмите для раскрытия", - "byAuthor": "Автор: {name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} слов", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "Спросить Conduit", - "widgetCamera": "Камера", - "widgetPhotos": "Фотографии", - "widgetClipboard": "Буфер обмена", - "widgetDescription": "Быстрый доступ к чату Conduit с камерой, фотографиями и буфером обмена", "sso": "SSO", "ssoDescription": "Войдите через провайдера идентификации вашей организации", "signInWithSso": "Войти через SSO", "ssoAuthenticating": "Аутентификация...", "ssoAuthFailed": "Ошибка SSO-аутентификации", - "ssoTokenNotFound": "Не удалось получить токен аутентификации от провайдера SSO", "ssoLoadingLogin": "Загрузка страницы входа...", "ldap": "LDAP", "ldapDescription": "Войдите с учётными данными каталога LDAP", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 2ea71de..31c15d0 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -5,7 +5,6 @@ "back": "返回", "you": "你", "loadingProfile": "加载个人资料中...", - "unableToLoadProfile": "无法加载个人资料", "pleaseCheckConnection": "请检查您的连接并重试", "connectionIssueTitle": "无法连接到您的服务器", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "令牌", "usernameOrEmail": "用户名或电子邮件", "password": "密码", - "signInWithApiKey": "使用 API 密钥登录", "signInWithToken": "使用令牌登录", "connectToServer": "连接到服务器", "enterServerAddress": "输入您的 Open-WebUI 服务器地址以开始", @@ -118,8 +116,6 @@ "voicePromptTapStart": "点击开始以开始", "voiceActionStop": "停止", "voiceActionStart": "开始", - "messageInputLabel": "消息输入", - "messageInputHint": "输入您的消息", "messageHintText": "问 Conduit", "stopGenerating": "停止生成", "codeCopiedToClipboard": "代码已复制到剪贴板。", @@ -128,7 +124,6 @@ "file": "文件", "photo": "照片", "camera": "相机", - "pasteFromClipboard": "粘贴", "pasteImage": "粘贴图片", "apiUnavailable": "API 服务不可用", "unableToLoadImage": "无法加载图像", @@ -229,7 +224,6 @@ "noConversationsYet": "尚无对话", "usernameOrEmailHint": "输入您的用户名或电子邮件", "passwordHint": "输入您的密码", - "enterApiKey": "输入您的 API 密钥", "enterToken": "输入您的 JWT 令牌", "tokenHint": "从 OpenWebUI 设置获取 JWT 令牌。API 密钥 (sk-...) 不支持流式传输。", "apiKeyNotSupported": "不支持 API 密钥 (sk-...)。请改用 JWT 令牌。", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "阐明启用自签名证书切换风险的帮助文本。" }, - "headerNameEmpty": "标头名称不能为空", "headerNameTooLong": "标头名称太长(最多 64 个字符)", "headerNameInvalidChars": "无效的标头名称。仅使用字母、数字和这些符号:!#$&-^_`|~", "headerNameReserved": "无法覆盖保留的标头「{key}」", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "标头值不能为空", "headerValueTooLong": "标头值太长(最多 1024 个字符)", "headerValueInvalidChars": "标头值包含无效字符。仅使用可打印的 ASCII。", "headerValueUnsafe": "标头值似乎包含潜在的不安全内容", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "笔记标题", "writeNote": "写点什么...", - "noteSaved": "笔记已保存", "saving": "保存中...", "saved": "已保存", - "unsavedChanges": "未保存的更改", "noteCopiedToClipboard": "笔记已复制到剪贴板", "generateTitle": "生成标题", "generatingTitle": "正在生成标题...", @@ -815,15 +804,6 @@ "previous7Days": "过去 7 天", "previous30Days": "过去 30 天", "older": "更早", - "tapToExpand": "点击展开", - "byAuthor": "作者:{name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} 字", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "询问 Conduit", - "widgetCamera": "相机", - "widgetPhotos": "照片", - "widgetClipboard": "剪贴板", - "widgetDescription": "快速访问 Conduit 聊天,支持相机、照片和剪贴板快捷方式", "sso": "SSO", "ssoDescription": "使用组织的身份提供商登录", "signInWithSso": "使用 SSO 登录", "ssoAuthenticating": "正在验证...", "ssoAuthFailed": "SSO 验证失败", - "ssoTokenNotFound": "无法从 SSO 提供商获取验证令牌", "ssoLoadingLogin": "正在加载登录页面...", "ldap": "LDAP", "ldapDescription": "使用 LDAP 目录凭据登录", diff --git a/lib/l10n/app_zh_Hant.arb b/lib/l10n/app_zh_Hant.arb index e26a898..2adba9a 100644 --- a/lib/l10n/app_zh_Hant.arb +++ b/lib/l10n/app_zh_Hant.arb @@ -5,7 +5,6 @@ "back": "返回", "you": "你", "loadingProfile": "加載個人資料中...", - "unableToLoadProfile": "無法加載個人資料", "pleaseCheckConnection": "請檢查您的連接並重試", "connectionIssueTitle": "無法連接到您的服務器", "@connectionIssueTitle": { @@ -49,7 +48,6 @@ "token": "令牌", "usernameOrEmail": "用戶名或電子郵件", "password": "密碼", - "signInWithApiKey": "使用 API 密鑰登錄", "signInWithToken": "使用令牌登錄", "connectToServer": "連接到服務器", "enterServerAddress": "輸入您的 Open-WebUI 服務器地址以開始", @@ -118,8 +116,6 @@ "voicePromptTapStart": "點擊開始以開始", "voiceActionStop": "停止", "voiceActionStart": "開始", - "messageInputLabel": "消息輸入", - "messageInputHint": "輸入您的消息", "messageHintText": "問 Conduit", "stopGenerating": "停止生成", "codeCopiedToClipboard": "代碼已複製到剪貼板。", @@ -128,7 +124,6 @@ "file": "文件", "photo": "照片", "camera": "相機", - "pasteFromClipboard": "貼上", "pasteImage": "貼上圖片", "apiUnavailable": "API 服務不可用", "unableToLoadImage": "無法加載圖像", @@ -229,7 +224,6 @@ "noConversationsYet": "尚無對話", "usernameOrEmailHint": "輸入您的用戶名或電子郵件", "passwordHint": "輸入您的密碼", - "enterApiKey": "輸入您的 API 密鑰", "enterToken": "輸入您的 JWT 令牌", "tokenHint": "從 OpenWebUI 設定取得 JWT 令牌。API 密鑰 (sk-...) 不支援串流。", "apiKeyNotSupported": "不支援 API 密鑰 (sk-...)。請改用 JWT 令牌。", @@ -247,7 +241,6 @@ "@allowSelfSignedCertificatesDescription": { "description": "阐明启用自签名证书切换风险的帮助文本。" }, - "headerNameEmpty": "標頭名稱不能爲空", "headerNameTooLong": "標頭名稱太長(最多 64 個字符)", "headerNameInvalidChars": "無效的標頭名稱。僅使用字母、數字和這些符號:!#$&-^_`|~", "headerNameReserved": "無法覆蓋保留的標頭「{key}」", @@ -258,7 +251,6 @@ } } }, - "headerValueEmpty": "標頭值不能爲空", "headerValueTooLong": "標頭值太長(最多 1024 個字符)", "headerValueInvalidChars": "標頭值包含無效字符。僅使用可打印的 ASCII。", "headerValueUnsafe": "標頭值似乎包含潛在的不安全內容", @@ -787,12 +779,9 @@ } } }, - "noteTitle": "筆記標題", "writeNote": "寫點什麼...", - "noteSaved": "筆記已儲存", "saving": "儲存中...", "saved": "已儲存", - "unsavedChanges": "未儲存的變更", "noteCopiedToClipboard": "筆記已複製到剪貼簿", "generateTitle": "產生標題", "generatingTitle": "正在產生標題...", @@ -815,15 +804,6 @@ "previous7Days": "過去 7 天", "previous30Days": "過去 30 天", "older": "更早", - "tapToExpand": "點擊展開", - "byAuthor": "作者:{name}", - "@byAuthor": { - "placeholders": { - "name": { - "type": "String" - } - } - }, "wordCount": "{count} 字", "@wordCount": { "placeholders": { @@ -858,17 +838,11 @@ } } }, - "widgetAskConduit": "詢問 Conduit", - "widgetCamera": "相機", - "widgetPhotos": "照片", - "widgetClipboard": "剪貼簿", - "widgetDescription": "快速存取 Conduit 聊天,支援相機、照片和剪貼簿捷徑", "sso": "SSO", "ssoDescription": "使用組織的身份提供商登入", "signInWithSso": "使用 SSO 登入", "ssoAuthenticating": "正在驗證...", "ssoAuthFailed": "SSO 驗證失敗", - "ssoTokenNotFound": "無法從 SSO 提供商取得驗證權杖", "ssoLoadingLogin": "正在載入登入頁面...", "ldap": "LDAP", "ldapDescription": "使用 LDAP 目錄憑據登入",