fix: duplicate semantics

This commit is contained in:
cogwheel0
2025-12-16 16:47:05 +05:30
parent 67bcd242bc
commit 50e286add8
11 changed files with 65 additions and 385 deletions

View File

@@ -1563,76 +1563,72 @@ class _ModernChatInputState extends ConsumerState<ModernChatInput>
: FontWeight.w400; : FontWeight.w400;
final TextStyle baseChatStyle = AppTypography.chatMessageStyle; final TextStyle baseChatStyle = AppTypography.chatMessageStyle;
// Wrap with Semantics to provide an accessible label for screen // Rely on TextField's built-in accessibility via hintText.
// readers. We avoid MergeSemantics which caused double- // Wrapping with Semantics creates duplicate accessibility nodes
// announcements. The TextField provides its own text field // which confuses screen readers and causes keyboard issues with
// semantics; this just adds the descriptive label. // alternative input methods (e.g., Braille keyboards).
return Semantics( // The hintText "Ask Conduit" provides sufficient context for
label: AppLocalizations.of(context)!.messageInputLabel, // screen readers to identify this as a message input field.
child: TextField( return TextField(
controller: _controller, controller: _controller,
focusNode: _focusNode, focusNode: _focusNode,
enabled: widget.enabled, enabled: widget.enabled,
autofocus: false, autofocus: false,
minLines: 1, minLines: 1,
maxLines: null, maxLines: null,
keyboardType: TextInputType.multiline, keyboardType: TextInputType.multiline,
textCapitalization: TextCapitalization.sentences, textCapitalization: TextCapitalization.sentences,
textInputAction: sendOnEnter textInputAction: sendOnEnter
? TextInputAction.send ? TextInputAction.send
: TextInputAction.newline, : TextInputAction.newline,
autofillHints: const <String>[], autofillHints: const <String>[],
showCursor: true, showCursor: true,
scrollPadding: const EdgeInsets.only(bottom: 80), scrollPadding: const EdgeInsets.only(bottom: 80),
keyboardAppearance: brightness, keyboardAppearance: brightness,
cursorColor: animatedTextColor, cursorColor: animatedTextColor,
style: baseChatStyle.copyWith( style: baseChatStyle.copyWith(
color: animatedTextColor, color: animatedTextColor,
fontStyle: _isRecording fontStyle: _isRecording ? FontStyle.italic : FontStyle.normal,
? FontStyle.italic fontWeight: recordingWeight,
: 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();
},
), ),
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();
},
); );
}, },
), ),

View File

@@ -5,7 +5,6 @@
"back": "Zurück", "back": "Zurück",
"you": "Du", "you": "Du",
"loadingProfile": "Profil wird geladen...", "loadingProfile": "Profil wird geladen...",
"unableToLoadProfile": "Profil konnte nicht geladen werden",
"pleaseCheckConnection": "Bitte überprüfe deine Verbindung und versuche es erneut", "pleaseCheckConnection": "Bitte überprüfe deine Verbindung und versuche es erneut",
"connectionIssueTitle": "Server nicht erreichbar", "connectionIssueTitle": "Server nicht erreichbar",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Token", "token": "Token",
"usernameOrEmail": "Benutzername oder EMail", "usernameOrEmail": "Benutzername oder EMail",
"password": "Passwort", "password": "Passwort",
"signInWithApiKey": "Mit API-Schlüssel anmelden",
"signInWithToken": "Mit Token anmelden", "signInWithToken": "Mit Token anmelden",
"connectToServer": "Mit Server verbinden", "connectToServer": "Mit Server verbinden",
"enterServerAddress": "Gib die Adresse deines Open-WebUI-Servers ein, um zu beginnen", "enterServerAddress": "Gib die Adresse deines Open-WebUI-Servers ein, um zu beginnen",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Tippe auf \"Starten\", um zu beginnen", "voicePromptTapStart": "Tippe auf \"Starten\", um zu beginnen",
"voiceActionStop": "Stopp", "voiceActionStop": "Stopp",
"voiceActionStart": "Starten", "voiceActionStart": "Starten",
"messageInputLabel": "Nachrichteneingabe",
"messageInputHint": "Nachricht eingeben",
"messageHintText": "Frag Conduit", "messageHintText": "Frag Conduit",
"stopGenerating": "Generierung stoppen", "stopGenerating": "Generierung stoppen",
"codeCopiedToClipboard": "Code in die Zwischenablage kopiert.", "codeCopiedToClipboard": "Code in die Zwischenablage kopiert.",
@@ -128,7 +124,6 @@
"file": "Datei", "file": "Datei",
"photo": "Foto", "photo": "Foto",
"camera": "Kamera", "camera": "Kamera",
"pasteFromClipboard": "Einfügen",
"pasteImage": "Bild einfügen", "pasteImage": "Bild einfügen",
"apiUnavailable": "API-Dienst nicht verfügbar", "apiUnavailable": "API-Dienst nicht verfügbar",
"unableToLoadImage": "Bild kann nicht geladen werden", "unableToLoadImage": "Bild kann nicht geladen werden",
@@ -229,7 +224,6 @@
"noConversationsYet": "Noch keine Unterhaltungen", "noConversationsYet": "Noch keine Unterhaltungen",
"usernameOrEmailHint": "Gib deinen Benutzernamen oder deine EMail ein", "usernameOrEmailHint": "Gib deinen Benutzernamen oder deine EMail ein",
"passwordHint": "Gib dein Passwort ein", "passwordHint": "Gib dein Passwort ein",
"enterApiKey": "Gib deinen API-Schlüssel ein",
"enterToken": "Gib dein JWT-Token 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.", "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.", "apiKeyNotSupported": "API-Schlüssel (sk-...) werden nicht unterstützt. Bitte verwende stattdessen ein JWT-Token.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Hilfetext, der die Risiken beim Aktivieren des Schalters für selbstsignierte Zertifikate erklärt." "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)", "headerNameTooLong": "Header-Name zu lang (max. 64 Zeichen)",
"headerNameInvalidChars": "Ungültiger Header-Name. Verwende nur Buchstaben, Zahlen und diese Zeichen: !#$&-^_`|~", "headerNameInvalidChars": "Ungültiger Header-Name. Verwende nur Buchstaben, Zahlen und diese Zeichen: !#$&-^_`|~",
"headerNameReserved": "Reservierten Header \"{key}\" kann nicht überschrieben werden", "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)", "headerValueTooLong": "Header-Wert zu lang (max. 1024 Zeichen)",
"headerValueInvalidChars": "Header-Wert enthält ungültige Zeichen. Nur druckbare ASCII-Zeichen verwenden.", "headerValueInvalidChars": "Header-Wert enthält ungültige Zeichen. Nur druckbare ASCII-Zeichen verwenden.",
"headerValueUnsafe": "Header-Wert scheint potenziell unsicheren Inhalt zu enthalten", "headerValueUnsafe": "Header-Wert scheint potenziell unsicheren Inhalt zu enthalten",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "Notiz-Titel",
"writeNote": "Schreibe etwas...", "writeNote": "Schreibe etwas...",
"noteSaved": "Notiz gespeichert",
"saving": "Speichern...", "saving": "Speichern...",
"saved": "Gespeichert", "saved": "Gespeichert",
"unsavedChanges": "Ungespeicherte Änderungen",
"noteCopiedToClipboard": "Notiz in Zwischenablage kopiert", "noteCopiedToClipboard": "Notiz in Zwischenablage kopiert",
"generateTitle": "Titel generieren", "generateTitle": "Titel generieren",
"generatingTitle": "Titel wird generiert...", "generatingTitle": "Titel wird generiert...",
@@ -815,15 +804,6 @@
"previous7Days": "Letzte 7 Tage", "previous7Days": "Letzte 7 Tage",
"previous30Days": "Letzte 30 Tage", "previous30Days": "Letzte 30 Tage",
"older": "Älter", "older": "Älter",
"tapToExpand": "Tippen zum Erweitern",
"byAuthor": "Von {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} Wörter", "wordCount": "{count} Wörter",
"@wordCount": { "@wordCount": {
"placeholders": { "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", "sso": "SSO",
"ssoDescription": "Mit dem Identitätsanbieter Ihrer Organisation anmelden", "ssoDescription": "Mit dem Identitätsanbieter Ihrer Organisation anmelden",
"signInWithSso": "Mit SSO anmelden", "signInWithSso": "Mit SSO anmelden",
"ssoAuthenticating": "Authentifizierung...", "ssoAuthenticating": "Authentifizierung...",
"ssoAuthFailed": "SSO-Authentifizierung fehlgeschlagen", "ssoAuthFailed": "SSO-Authentifizierung fehlgeschlagen",
"ssoTokenNotFound": "Authentifizierungstoken vom SSO-Anbieter konnte nicht abgerufen werden",
"ssoLoadingLogin": "Anmeldeseite wird geladen...", "ssoLoadingLogin": "Anmeldeseite wird geladen...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Mit Ihren LDAP-Verzeichnis-Anmeldedaten anmelden", "ldapDescription": "Mit Ihren LDAP-Verzeichnis-Anmeldedaten anmelden",

View File

@@ -20,10 +20,6 @@
"@loadingProfile": { "@loadingProfile": {
"description": "Progress message while fetching profile data." "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": "Please check your connection and try again",
"connectionIssueTitle": "Can't reach your server", "connectionIssueTitle": "Can't reach your server",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -228,10 +224,6 @@
"@password": { "@password": {
"description": "Label for password input field." "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": "Sign in with Token",
"@signInWithToken": { "@signInWithToken": {
"description": "Alternative sign-in method using a JWT token." "description": "Alternative sign-in method using a JWT token."
@@ -562,14 +554,6 @@
"@voiceCallErrorHelp": { "@voiceCallErrorHelp": {
"description": "Guidance shown when the voice call encounters an error." "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": "Ask Conduit",
"@messageHintText": { "@messageHintText": {
"description": "Short placeholder text in the message input." "description": "Short placeholder text in the message input."
@@ -606,10 +590,6 @@
"@camera": { "@camera": {
"description": "Camera source label." "description": "Camera source label."
}, },
"pasteFromClipboard": "Paste",
"@pasteFromClipboard": {
"description": "Action label to paste images or files from the clipboard."
},
"pasteImage": "Paste Image", "pasteImage": "Paste Image",
"@pasteImage": { "@pasteImage": {
"description": "Context menu action to paste an image from the clipboard." "description": "Context menu action to paste an image from the clipboard."
@@ -1086,10 +1066,6 @@
"@passwordHint": { "@passwordHint": {
"description": "Hint text for password input." "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": "Enter your JWT token",
"@enterToken": { "@enterToken": {
"description": "Hint text for JWT token input." "description": "Hint text for JWT token input."
@@ -1134,10 +1110,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Helper text clarifying the risks of enabling the self-signed certificate toggle." "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": "Header name too long (max 64 characters)",
"@headerNameTooLong": { "@headerNameTooLong": {
"description": "Validation message for header name length." "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": "Header value too long (max 1024 characters)",
"@headerValueTooLong": { "@headerValueTooLong": {
"description": "Validation message for header value length." "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": "Write something...",
"@writeNote": { "@writeNote": {
"description": "Hint text for note content input field." "description": "Hint text for note content input field."
}, },
"noteSaved": "Note saved",
"@noteSaved": {
"description": "Confirmation message when note is saved."
},
"saving": "Saving...", "saving": "Saving...",
"@saving": { "@saving": {
"description": "Status text while saving." "description": "Status text while saving."
@@ -1743,10 +1703,6 @@
"@saved": { "@saved": {
"description": "Status text when content is 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": "Note copied to clipboard",
"@noteCopiedToClipboard": { "@noteCopiedToClipboard": {
"description": "Confirmation message when note content is copied to clipboard." "description": "Confirmation message when note content is copied to clipboard."
@@ -1835,20 +1791,6 @@
"@older": { "@older": {
"description": "Time range label for items older than 30 days." "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": "{count} words",
"@wordCount": { "@wordCount": {
"description": "Status bar text showing word count.", "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": "Mermaid preview is not available on this platform.",
"@mermaidPreviewUnavailable": { "@mermaidPreviewUnavailable": {
"description": "Shown when Mermaid diagrams cannot be rendered on the current platform." "description": "Shown when Mermaid diagrams cannot be rendered on the current platform."
@@ -1945,10 +1867,6 @@
"@ssoAuthFailed": { "@ssoAuthFailed": {
"description": "Error message when SSO authentication fails." "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": "Loading login page...",
"@ssoLoadingLogin": { "@ssoLoadingLogin": {
"description": "Loading message while SSO login page loads." "description": "Loading message while SSO login page loads."

View File

@@ -5,7 +5,6 @@
"back": "Atrás", "back": "Atrás",
"you": "Tú", "you": "Tú",
"loadingProfile": "Cargando perfil...", "loadingProfile": "Cargando perfil...",
"unableToLoadProfile": "No se puede cargar el perfil",
"pleaseCheckConnection": "Por favor, verifica tu conexión e inténtalo de nuevo", "pleaseCheckConnection": "Por favor, verifica tu conexión e inténtalo de nuevo",
"connectionIssueTitle": "No se puede conectar al servidor", "connectionIssueTitle": "No se puede conectar al servidor",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Token", "token": "Token",
"usernameOrEmail": "Usuario o correo electrónico", "usernameOrEmail": "Usuario o correo electrónico",
"password": "Contraseña", "password": "Contraseña",
"signInWithApiKey": "Iniciar sesión con clave API",
"signInWithToken": "Iniciar sesión con token", "signInWithToken": "Iniciar sesión con token",
"connectToServer": "Conectar al servidor", "connectToServer": "Conectar al servidor",
"enterServerAddress": "Ingresa la dirección de tu servidor Open-WebUI para comenzar", "enterServerAddress": "Ingresa la dirección de tu servidor Open-WebUI para comenzar",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Toca Iniciar para comenzar", "voicePromptTapStart": "Toca Iniciar para comenzar",
"voiceActionStop": "Detener", "voiceActionStop": "Detener",
"voiceActionStart": "Iniciar", "voiceActionStart": "Iniciar",
"messageInputLabel": "Entrada de mensaje",
"messageInputHint": "Escribe tu mensaje",
"messageHintText": "Pregunta a Conduit", "messageHintText": "Pregunta a Conduit",
"stopGenerating": "Detener generación", "stopGenerating": "Detener generación",
"codeCopiedToClipboard": "Código copiado al portapapeles.", "codeCopiedToClipboard": "Código copiado al portapapeles.",
@@ -128,7 +124,6 @@
"file": "Archivo", "file": "Archivo",
"photo": "Foto", "photo": "Foto",
"camera": "Cámara", "camera": "Cámara",
"pasteFromClipboard": "Pegar",
"pasteImage": "Pegar imagen", "pasteImage": "Pegar imagen",
"apiUnavailable": "Servicio de API no disponible", "apiUnavailable": "Servicio de API no disponible",
"unableToLoadImage": "No se puede cargar la imagen", "unableToLoadImage": "No se puede cargar la imagen",
@@ -229,7 +224,6 @@
"noConversationsYet": "Aún no hay conversaciones", "noConversationsYet": "Aún no hay conversaciones",
"usernameOrEmailHint": "Ingresa tu usuario o correo electrónico", "usernameOrEmailHint": "Ingresa tu usuario o correo electrónico",
"passwordHint": "Ingresa tu contraseña", "passwordHint": "Ingresa tu contraseña",
"enterApiKey": "Ingresa tu clave API",
"enterToken": "Ingresa tu token JWT", "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.", "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.", "apiKeyNotSupported": "Las claves API (sk-...) no son compatibles. Por favor usa un token JWT en su lugar.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Texto de ayuda que aclara los riesgos de habilitar el interruptor de certificados autofirmados." "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)", "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: !#$&-^_`|~", "headerNameInvalidChars": "Nombre de encabezado inválido. Usa solo letras, números y estos símbolos: !#$&-^_`|~",
"headerNameReserved": "No se puede sobrescribir el encabezado reservado \"{key}\"", "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)", "headerValueTooLong": "Valor de encabezado demasiado largo (máx. 1024 caracteres)",
"headerValueInvalidChars": "El valor del encabezado contiene caracteres inválidos. Usa solo ASCII imprimible.", "headerValueInvalidChars": "El valor del encabezado contiene caracteres inválidos. Usa solo ASCII imprimible.",
"headerValueUnsafe": "El valor del encabezado parece contener contenido potencialmente inseguro", "headerValueUnsafe": "El valor del encabezado parece contener contenido potencialmente inseguro",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "Título de la nota",
"writeNote": "Escribe algo...", "writeNote": "Escribe algo...",
"noteSaved": "Nota guardada",
"saving": "Guardando...", "saving": "Guardando...",
"saved": "Guardado", "saved": "Guardado",
"unsavedChanges": "Cambios sin guardar",
"noteCopiedToClipboard": "Nota copiada al portapapeles", "noteCopiedToClipboard": "Nota copiada al portapapeles",
"generateTitle": "Generar título", "generateTitle": "Generar título",
"generatingTitle": "Generando título...", "generatingTitle": "Generando título...",
@@ -815,15 +804,6 @@
"previous7Days": "Últimos 7 días", "previous7Days": "Últimos 7 días",
"previous30Days": "Últimos 30 días", "previous30Days": "Últimos 30 días",
"older": "Más antiguo", "older": "Más antiguo",
"tapToExpand": "Toca para expandir",
"byAuthor": "Por {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} palabras", "wordCount": "{count} palabras",
"@wordCount": { "@wordCount": {
"placeholders": { "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", "sso": "SSO",
"ssoDescription": "Iniciar sesión con el proveedor de identidad de su organización", "ssoDescription": "Iniciar sesión con el proveedor de identidad de su organización",
"signInWithSso": "Iniciar sesión con SSO", "signInWithSso": "Iniciar sesión con SSO",
"ssoAuthenticating": "Autenticando...", "ssoAuthenticating": "Autenticando...",
"ssoAuthFailed": "Error de autenticación SSO", "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...", "ssoLoadingLogin": "Cargando página de inicio de sesión...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Iniciar sesión con sus credenciales de directorio LDAP", "ldapDescription": "Iniciar sesión con sus credenciales de directorio LDAP",

View File

@@ -5,7 +5,6 @@
"back": "Retour", "back": "Retour",
"you": "Vous", "you": "Vous",
"loadingProfile": "Chargement du profil...", "loadingProfile": "Chargement du profil...",
"unableToLoadProfile": "Impossible de charger le profil",
"pleaseCheckConnection": "Veuillez vérifier votre connexion et réessayer", "pleaseCheckConnection": "Veuillez vérifier votre connexion et réessayer",
"connectionIssueTitle": "Impossible d'atteindre votre serveur", "connectionIssueTitle": "Impossible d'atteindre votre serveur",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Jeton", "token": "Jeton",
"usernameOrEmail": "Nom d'utilisateur ou email", "usernameOrEmail": "Nom d'utilisateur ou email",
"password": "Mot de passe", "password": "Mot de passe",
"signInWithApiKey": "Se connecter avec une clé API",
"signInWithToken": "Se connecter avec un jeton", "signInWithToken": "Se connecter avec un jeton",
"connectToServer": "Se connecter au serveur", "connectToServer": "Se connecter au serveur",
"enterServerAddress": "Saisissez l'adresse de votre serveur Open-WebUI pour commencer", "enterServerAddress": "Saisissez l'adresse de votre serveur Open-WebUI pour commencer",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Appuyez sur \"Démarrer\" pour commencer", "voicePromptTapStart": "Appuyez sur \"Démarrer\" pour commencer",
"voiceActionStop": "Arrêter", "voiceActionStop": "Arrêter",
"voiceActionStart": "Démarrer", "voiceActionStart": "Démarrer",
"messageInputLabel": "Saisie du message",
"messageInputHint": "Saisissez votre message",
"messageHintText": "Demander à Conduit", "messageHintText": "Demander à Conduit",
"stopGenerating": "Arrêter la génération", "stopGenerating": "Arrêter la génération",
"codeCopiedToClipboard": "Code copié dans le presse-papiers.", "codeCopiedToClipboard": "Code copié dans le presse-papiers.",
@@ -128,7 +124,6 @@
"file": "Fichier", "file": "Fichier",
"photo": "Photo", "photo": "Photo",
"camera": "Appareil photo", "camera": "Appareil photo",
"pasteFromClipboard": "Coller",
"pasteImage": "Coller l'image", "pasteImage": "Coller l'image",
"apiUnavailable": "Service API indisponible", "apiUnavailable": "Service API indisponible",
"unableToLoadImage": "Impossible de charger l'image", "unableToLoadImage": "Impossible de charger l'image",
@@ -229,7 +224,6 @@
"noConversationsYet": "Aucune conversation pour l'instant", "noConversationsYet": "Aucune conversation pour l'instant",
"usernameOrEmailHint": "Entrez votre nom d'utilisateur ou email", "usernameOrEmailHint": "Entrez votre nom d'utilisateur ou email",
"passwordHint": "Entrez votre mot de passe", "passwordHint": "Entrez votre mot de passe",
"enterApiKey": "Entrez votre clé API",
"enterToken": "Entrez votre jeton JWT", "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.", "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.", "apiKeyNotSupported": "Les clés API (sk-...) ne sont pas prises en charge. Veuillez utiliser un jeton JWT à la place.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Texte d'aide expliquant les risques liés à l'activation de l'option de certificat auto-signé." "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)", "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 : !#$&-^_`|~", "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} »", "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)", "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.", "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", "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...", "writeNote": "Écrivez quelque chose...",
"noteSaved": "Note enregistrée",
"saving": "Enregistrement...", "saving": "Enregistrement...",
"saved": "Enregistré", "saved": "Enregistré",
"unsavedChanges": "Modifications non enregistrées",
"noteCopiedToClipboard": "Note copiée dans le presse-papiers", "noteCopiedToClipboard": "Note copiée dans le presse-papiers",
"generateTitle": "Générer un titre", "generateTitle": "Générer un titre",
"generatingTitle": "Génération du titre...", "generatingTitle": "Génération du titre...",
@@ -815,15 +804,6 @@
"previous7Days": "7 derniers jours", "previous7Days": "7 derniers jours",
"previous30Days": "30 derniers jours", "previous30Days": "30 derniers jours",
"older": "Plus ancien", "older": "Plus ancien",
"tapToExpand": "Appuyez pour développer",
"byAuthor": "Par {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} mots", "wordCount": "{count} mots",
"@wordCount": { "@wordCount": {
"placeholders": { "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", "sso": "SSO",
"ssoDescription": "Connectez-vous avec le fournisseur d'identité de votre organisation", "ssoDescription": "Connectez-vous avec le fournisseur d'identité de votre organisation",
"signInWithSso": "Se connecter avec SSO", "signInWithSso": "Se connecter avec SSO",
"ssoAuthenticating": "Authentification...", "ssoAuthenticating": "Authentification...",
"ssoAuthFailed": "Échec de l'authentification SSO", "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...", "ssoLoadingLogin": "Chargement de la page de connexion...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Connectez-vous avec vos identifiants d'annuaire LDAP", "ldapDescription": "Connectez-vous avec vos identifiants d'annuaire LDAP",

View File

@@ -5,7 +5,6 @@
"back": "Indietro", "back": "Indietro",
"you": "Tu", "you": "Tu",
"loadingProfile": "Caricamento profilo...", "loadingProfile": "Caricamento profilo...",
"unableToLoadProfile": "Impossibile caricare il profilo",
"pleaseCheckConnection": "Controlla la connessione e riprova", "pleaseCheckConnection": "Controlla la connessione e riprova",
"connectionIssueTitle": "Impossibile raggiungere il server", "connectionIssueTitle": "Impossibile raggiungere il server",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Token", "token": "Token",
"usernameOrEmail": "Username o email", "usernameOrEmail": "Username o email",
"password": "Password", "password": "Password",
"signInWithApiKey": "Accedi con chiave API",
"signInWithToken": "Accedi con token", "signInWithToken": "Accedi con token",
"connectToServer": "Connetti al server", "connectToServer": "Connetti al server",
"enterServerAddress": "Inserisci l'indirizzo del server Open-WebUI per iniziare", "enterServerAddress": "Inserisci l'indirizzo del server Open-WebUI per iniziare",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Tocca \"Avvia\" per iniziare", "voicePromptTapStart": "Tocca \"Avvia\" per iniziare",
"voiceActionStop": "Stop", "voiceActionStop": "Stop",
"voiceActionStart": "Avvia", "voiceActionStart": "Avvia",
"messageInputLabel": "Input messaggio",
"messageInputHint": "Scrivi il tuo messaggio",
"messageHintText": "Chiedi a Conduit", "messageHintText": "Chiedi a Conduit",
"stopGenerating": "Interrompi generazione", "stopGenerating": "Interrompi generazione",
"codeCopiedToClipboard": "Codice copiato negli appunti.", "codeCopiedToClipboard": "Codice copiato negli appunti.",
@@ -128,7 +124,6 @@
"file": "File", "file": "File",
"photo": "Foto", "photo": "Foto",
"camera": "Fotocamera", "camera": "Fotocamera",
"pasteFromClipboard": "Incolla",
"pasteImage": "Incolla immagine", "pasteImage": "Incolla immagine",
"apiUnavailable": "Servizio API non disponibile", "apiUnavailable": "Servizio API non disponibile",
"unableToLoadImage": "Impossibile caricare l'immagine", "unableToLoadImage": "Impossibile caricare l'immagine",
@@ -229,7 +224,6 @@
"noConversationsYet": "Ancora nessuna conversazione", "noConversationsYet": "Ancora nessuna conversazione",
"usernameOrEmailHint": "Inserisci il tuo username o email", "usernameOrEmailHint": "Inserisci il tuo username o email",
"passwordHint": "Inserisci la password", "passwordHint": "Inserisci la password",
"enterApiKey": "Inserisci la tua chiave API",
"enterToken": "Inserisci il tuo token JWT", "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.", "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.", "apiKeyNotSupported": "Le chiavi API (sk-...) non sono supportate. Per favore usa un token JWT.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Testo di supporto che chiarisce i rischi dell'attivazione dell'opzione per certificati autofirmati." "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)", "headerNameTooLong": "Nome header troppo lungo (max 64 caratteri)",
"headerNameInvalidChars": "Nome header non valido. Usa solo lettere, numeri e questi simboli: !#$&-^_`|~", "headerNameInvalidChars": "Nome header non valido. Usa solo lettere, numeri e questi simboli: !#$&-^_`|~",
"headerNameReserved": "Impossibile sovrascrivere l'header riservato \"{key}\"", "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)", "headerValueTooLong": "Valore header troppo lungo (max 1024 caratteri)",
"headerValueInvalidChars": "Il valore dell'header contiene caratteri non validi. Usa solo ASCII stampabile.", "headerValueInvalidChars": "Il valore dell'header contiene caratteri non validi. Usa solo ASCII stampabile.",
"headerValueUnsafe": "Il valore dell'header sembra contenere contenuti potenzialmente non sicuri", "headerValueUnsafe": "Il valore dell'header sembra contenere contenuti potenzialmente non sicuri",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "Titolo della nota",
"writeNote": "Scrivi qualcosa...", "writeNote": "Scrivi qualcosa...",
"noteSaved": "Nota salvata",
"saving": "Salvataggio...", "saving": "Salvataggio...",
"saved": "Salvato", "saved": "Salvato",
"unsavedChanges": "Modifiche non salvate",
"noteCopiedToClipboard": "Nota copiata negli appunti", "noteCopiedToClipboard": "Nota copiata negli appunti",
"generateTitle": "Genera titolo", "generateTitle": "Genera titolo",
"generatingTitle": "Generazione titolo...", "generatingTitle": "Generazione titolo...",
@@ -815,15 +804,6 @@
"previous7Days": "Ultimi 7 giorni", "previous7Days": "Ultimi 7 giorni",
"previous30Days": "Ultimi 30 giorni", "previous30Days": "Ultimi 30 giorni",
"older": "Più vecchio", "older": "Più vecchio",
"tapToExpand": "Tocca per espandere",
"byAuthor": "Di {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} parole", "wordCount": "{count} parole",
"@wordCount": { "@wordCount": {
"placeholders": { "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", "sso": "SSO",
"ssoDescription": "Accedi con il provider di identità della tua organizzazione", "ssoDescription": "Accedi con il provider di identità della tua organizzazione",
"signInWithSso": "Accedi con SSO", "signInWithSso": "Accedi con SSO",
"ssoAuthenticating": "Autenticazione...", "ssoAuthenticating": "Autenticazione...",
"ssoAuthFailed": "Autenticazione SSO fallita", "ssoAuthFailed": "Autenticazione SSO fallita",
"ssoTokenNotFound": "Impossibile recuperare il token di autenticazione dal provider SSO",
"ssoLoadingLogin": "Caricamento pagina di accesso...", "ssoLoadingLogin": "Caricamento pagina di accesso...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Accedi con le credenziali della directory LDAP", "ldapDescription": "Accedi con le credenziali della directory LDAP",

View File

@@ -5,7 +5,6 @@
"back": "뒤로", "back": "뒤로",
"you": "프로필", "you": "프로필",
"loadingProfile": "프로필 로딩 중...", "loadingProfile": "프로필 로딩 중...",
"unableToLoadProfile": "프로필을 불러올 수 없습니다",
"pleaseCheckConnection": "연결을 확인하고 다시 시도해주세요", "pleaseCheckConnection": "연결을 확인하고 다시 시도해주세요",
"connectionIssueTitle": "서버에 연결할 수 없습니다", "connectionIssueTitle": "서버에 연결할 수 없습니다",
"connectionIssueSubtitle": "다시 연결하거나 로그아웃하여 다른 서버를 선택하세요.", "connectionIssueSubtitle": "다시 연결하거나 로그아웃하여 다른 서버를 선택하세요.",
@@ -90,7 +89,6 @@
"token": "토큰", "token": "토큰",
"usernameOrEmail": "사용자 이름 또는 이메일", "usernameOrEmail": "사용자 이름 또는 이메일",
"password": "비밀번호", "password": "비밀번호",
"signInWithApiKey": "API 키로 로그인",
"signInWithToken": "토큰으로 로그인", "signInWithToken": "토큰으로 로그인",
"connectToServer": "서버 연결", "connectToServer": "서버 연결",
"enterServerAddress": "시작하려면 Open-WebUI 서버 주소를 입력하세요", "enterServerAddress": "시작하려면 Open-WebUI 서버 주소를 입력하세요",
@@ -181,8 +179,6 @@
"voiceCallSpeaking": "말하는 중", "voiceCallSpeaking": "말하는 중",
"voiceCallDisconnected": "연결 끊김", "voiceCallDisconnected": "연결 끊김",
"voiceCallErrorHelp": "다음을 확인하세요:\n• 마이크 권한이 부여되었는지\n• 기기에서 음성 인식이 사용 가능한지\n• 서버에 연결되어 있는지", "voiceCallErrorHelp": "다음을 확인하세요:\n• 마이크 권한이 부여되었는지\n• 기기에서 음성 인식이 사용 가능한지\n• 서버에 연결되어 있는지",
"messageInputLabel": "메시지 입력",
"messageInputHint": "메시지를 입력하세요",
"messageHintText": "Conduit에게 물어보기", "messageHintText": "Conduit에게 물어보기",
"stopGenerating": "생성 중지", "stopGenerating": "생성 중지",
"send": "전송", "send": "전송",
@@ -192,7 +188,6 @@
"chooseDifferentFile": "다른 파일 선택", "chooseDifferentFile": "다른 파일 선택",
"photo": "사진", "photo": "사진",
"camera": "카메라", "camera": "카메라",
"pasteFromClipboard": "붙여넣기",
"pasteImage": "이미지 붙여넣기", "pasteImage": "이미지 붙여넣기",
"apiUnavailable": "API 서비스를 사용할 수 없습니다", "apiUnavailable": "API 서비스를 사용할 수 없습니다",
"unableToLoadImage": "이미지를 불러올 수 없습니다", "unableToLoadImage": "이미지를 불러올 수 없습니다",
@@ -339,7 +334,6 @@
"noConversationsYet": "아직 대화가 없습니다", "noConversationsYet": "아직 대화가 없습니다",
"usernameOrEmailHint": "사용자 이름 또는 이메일을 입력하세요", "usernameOrEmailHint": "사용자 이름 또는 이메일을 입력하세요",
"passwordHint": "비밀번호를 입력하세요", "passwordHint": "비밀번호를 입력하세요",
"enterApiKey": "API 키를 입력하세요",
"enterToken": "JWT 토큰을 입력하세요", "enterToken": "JWT 토큰을 입력하세요",
"tokenHint": "OpenWebUI 설정에서 JWT 토큰을 가져오세요. API 키(sk-...)는 스트리밍에 지원되지 않습니다.", "tokenHint": "OpenWebUI 설정에서 JWT 토큰을 가져오세요. API 키(sk-...)는 스트리밍에 지원되지 않습니다.",
"apiKeyNotSupported": "API 키(sk-...)는 지원되지 않습니다. JWT 토큰을 사용하세요.", "apiKeyNotSupported": "API 키(sk-...)는 지원되지 않습니다. JWT 토큰을 사용하세요.",
@@ -351,7 +345,6 @@
"customHeadersDescription": "인증, API 키 또는 특수 서버 요구사항을 위한 사용자 정의 HTTP 헤더를 추가하세요.", "customHeadersDescription": "인증, API 키 또는 특수 서버 요구사항을 위한 사용자 정의 HTTP 헤더를 추가하세요.",
"allowSelfSignedCertificates": "자체 서명된 인증서 신뢰", "allowSelfSignedCertificates": "자체 서명된 인증서 신뢰",
"allowSelfSignedCertificatesDescription": "자체 서명된 경우에도 이 서버의 TLS 인증서를 수락합니다. 신뢰하는 서버에만 사용하세요.", "allowSelfSignedCertificatesDescription": "자체 서명된 경우에도 이 서버의 TLS 인증서를 수락합니다. 신뢰하는 서버에만 사용하세요.",
"headerNameEmpty": "헤더 이름은 비어 있을 수 없습니다",
"headerNameTooLong": "헤더 이름이 너무 깁니다 (최대 64자)", "headerNameTooLong": "헤더 이름이 너무 깁니다 (최대 64자)",
"headerNameInvalidChars": "잘못된 헤더 이름입니다. 문자, 숫자 및 다음 기호만 사용하세요: !#$&-^_`|~", "headerNameInvalidChars": "잘못된 헤더 이름입니다. 문자, 숫자 및 다음 기호만 사용하세요: !#$&-^_`|~",
"headerNameReserved": "예약된 헤더 \"{key}\"를 재정의할 수 없습니다", "headerNameReserved": "예약된 헤더 \"{key}\"를 재정의할 수 없습니다",
@@ -363,7 +356,6 @@
} }
} }
}, },
"headerValueEmpty": "헤더 값은 비어 있을 수 없습니다",
"headerValueTooLong": "헤더 값이 너무 깁니다 (최대 1024자)", "headerValueTooLong": "헤더 값이 너무 깁니다 (최대 1024자)",
"headerValueInvalidChars": "헤더 값에 잘못된 문자가 포함되어 있습니다. 인쇄 가능한 ASCII만 사용하세요.", "headerValueInvalidChars": "헤더 값에 잘못된 문자가 포함되어 있습니다. 인쇄 가능한 ASCII만 사용하세요.",
"headerValueUnsafe": "헤더 값에 잠재적으로 안전하지 않은 콘텐츠가 포함된 것으로 보입니다", "headerValueUnsafe": "헤더 값에 잠재적으로 안전하지 않은 콘텐츠가 포함된 것으로 보입니다",
@@ -565,12 +557,9 @@
} }
} }
}, },
"noteTitle": "노트 제목",
"writeNote": "무언가 작성하세요...", "writeNote": "무언가 작성하세요...",
"noteSaved": "노트 저장됨",
"saving": "저장 중...", "saving": "저장 중...",
"saved": "저장됨", "saved": "저장됨",
"unsavedChanges": "저장되지 않은 변경사항",
"noteCopiedToClipboard": "노트가 클립보드에 복사됨", "noteCopiedToClipboard": "노트가 클립보드에 복사됨",
"generateTitle": "제목 생성", "generateTitle": "제목 생성",
"generatingTitle": "제목 생성 중...", "generatingTitle": "제목 생성 중...",
@@ -593,15 +582,6 @@
"previous7Days": "지난 7일", "previous7Days": "지난 7일",
"previous30Days": "지난 30일", "previous30Days": "지난 30일",
"older": "이전", "older": "이전",
"tapToExpand": "탭하여 확장",
"byAuthor": "{name} 작성",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count}단어", "wordCount": "{count}단어",
"@wordCount": { "@wordCount": {
"placeholders": { "placeholders": {
@@ -636,17 +616,11 @@
} }
} }
}, },
"widgetAskConduit": "Conduit에게 묻기",
"widgetCamera": "카메라",
"widgetPhotos": "사진",
"widgetClipboard": "클립보드",
"widgetDescription": "카메라, 사진 및 클립보드 바로가기로 Conduit 채팅에 빠르게 액세스",
"sso": "SSO", "sso": "SSO",
"ssoDescription": "조직의 ID 공급자로 로그인", "ssoDescription": "조직의 ID 공급자로 로그인",
"signInWithSso": "SSO로 로그인", "signInWithSso": "SSO로 로그인",
"ssoAuthenticating": "인증 중...", "ssoAuthenticating": "인증 중...",
"ssoAuthFailed": "SSO 인증 실패", "ssoAuthFailed": "SSO 인증 실패",
"ssoTokenNotFound": "SSO 공급자에서 인증 토큰을 검색할 수 없습니다",
"ssoLoadingLogin": "로그인 페이지 로딩 중...", "ssoLoadingLogin": "로그인 페이지 로딩 중...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "LDAP 디렉토리 자격 증명으로 로그인", "ldapDescription": "LDAP 디렉토리 자격 증명으로 로그인",

View File

@@ -5,7 +5,6 @@
"back": "Terug", "back": "Terug",
"you": "Jij", "you": "Jij",
"loadingProfile": "Profiel laden...", "loadingProfile": "Profiel laden...",
"unableToLoadProfile": "Kan profiel niet laden",
"pleaseCheckConnection": "Controleer je verbinding en probeer het opnieuw", "pleaseCheckConnection": "Controleer je verbinding en probeer het opnieuw",
"connectionIssueTitle": "Kan je server niet bereiken", "connectionIssueTitle": "Kan je server niet bereiken",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Token", "token": "Token",
"usernameOrEmail": "Gebruikersnaam of e-mail", "usernameOrEmail": "Gebruikersnaam of e-mail",
"password": "Wachtwoord", "password": "Wachtwoord",
"signInWithApiKey": "Inloggen met API-sleutel",
"signInWithToken": "Inloggen met token", "signInWithToken": "Inloggen met token",
"connectToServer": "Verbinden met server", "connectToServer": "Verbinden met server",
"enterServerAddress": "Voer je Open-WebUI serveradres in om te beginnen", "enterServerAddress": "Voer je Open-WebUI serveradres in om te beginnen",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Tik op Start om te beginnen", "voicePromptTapStart": "Tik op Start om te beginnen",
"voiceActionStop": "Stop", "voiceActionStop": "Stop",
"voiceActionStart": "Start", "voiceActionStart": "Start",
"messageInputLabel": "Berichtinvoer",
"messageInputHint": "Typ je bericht",
"messageHintText": "Vraag Conduit", "messageHintText": "Vraag Conduit",
"stopGenerating": "Stop met genereren", "stopGenerating": "Stop met genereren",
"codeCopiedToClipboard": "Code gekopieerd naar klembord.", "codeCopiedToClipboard": "Code gekopieerd naar klembord.",
@@ -128,7 +124,6 @@
"file": "Bestand", "file": "Bestand",
"photo": "Foto", "photo": "Foto",
"camera": "Camera", "camera": "Camera",
"pasteFromClipboard": "Plakken",
"pasteImage": "Afbeelding plakken", "pasteImage": "Afbeelding plakken",
"apiUnavailable": "API-service niet beschikbaar", "apiUnavailable": "API-service niet beschikbaar",
"unableToLoadImage": "Kan afbeelding niet laden", "unableToLoadImage": "Kan afbeelding niet laden",
@@ -229,7 +224,6 @@
"noConversationsYet": "Nog geen gesprekken", "noConversationsYet": "Nog geen gesprekken",
"usernameOrEmailHint": "Voer je gebruikersnaam of e-mail in", "usernameOrEmailHint": "Voer je gebruikersnaam of e-mail in",
"passwordHint": "Voer je wachtwoord in", "passwordHint": "Voer je wachtwoord in",
"enterApiKey": "Voer je API-sleutel in",
"enterToken": "Voer je JWT-token in", "enterToken": "Voer je JWT-token in",
"tokenHint": "Haal het JWT-token uit de OpenWebUI-instellingen. API-sleutels (sk-...) worden niet ondersteund voor streaming.", "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.", "apiKeyNotSupported": "API-sleutels (sk-...) worden niet ondersteund. Gebruik in plaats daarvan een JWT-token.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Hulptekst die de risico's van het inschakelen van de schakelaar voor zelfondertekende certificaten verduidelijkt." "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)", "headerNameTooLong": "Header-naam te lang (max 64 tekens)",
"headerNameInvalidChars": "Ongeldige header-naam. Gebruik alleen letters, cijfers en deze symbolen: !#$&-^_`|~", "headerNameInvalidChars": "Ongeldige header-naam. Gebruik alleen letters, cijfers en deze symbolen: !#$&-^_`|~",
"headerNameReserved": "Kan gereserveerde header '{key}' niet overschrijven", "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)", "headerValueTooLong": "Header-waarde te lang (max 1024 tekens)",
"headerValueInvalidChars": "Header-waarde bevat ongeldige tekens. Gebruik alleen afdrukbare ASCII.", "headerValueInvalidChars": "Header-waarde bevat ongeldige tekens. Gebruik alleen afdrukbare ASCII.",
"headerValueUnsafe": "Header-waarde lijkt mogelijk onveilige inhoud te bevatten", "headerValueUnsafe": "Header-waarde lijkt mogelijk onveilige inhoud te bevatten",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "Notitietitel",
"writeNote": "Schrijf iets...", "writeNote": "Schrijf iets...",
"noteSaved": "Notitie opgeslagen",
"saving": "Opslaan...", "saving": "Opslaan...",
"saved": "Opgeslagen", "saved": "Opgeslagen",
"unsavedChanges": "Niet-opgeslagen wijzigingen",
"noteCopiedToClipboard": "Notitie gekopieerd naar klembord", "noteCopiedToClipboard": "Notitie gekopieerd naar klembord",
"generateTitle": "Titel genereren", "generateTitle": "Titel genereren",
"generatingTitle": "Titel genereren...", "generatingTitle": "Titel genereren...",
@@ -815,15 +804,6 @@
"previous7Days": "Afgelopen 7 dagen", "previous7Days": "Afgelopen 7 dagen",
"previous30Days": "Afgelopen 30 dagen", "previous30Days": "Afgelopen 30 dagen",
"older": "Ouder", "older": "Ouder",
"tapToExpand": "Tik om uit te vouwen",
"byAuthor": "Door {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} woorden", "wordCount": "{count} woorden",
"@wordCount": { "@wordCount": {
"placeholders": { "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", "sso": "SSO",
"ssoDescription": "Aanmelden met de identiteitsprovider van uw organisatie", "ssoDescription": "Aanmelden met de identiteitsprovider van uw organisatie",
"signInWithSso": "Aanmelden met SSO", "signInWithSso": "Aanmelden met SSO",
"ssoAuthenticating": "Authenticeren...", "ssoAuthenticating": "Authenticeren...",
"ssoAuthFailed": "SSO-authenticatie mislukt", "ssoAuthFailed": "SSO-authenticatie mislukt",
"ssoTokenNotFound": "Kan authenticatietoken niet ophalen van SSO-provider",
"ssoLoadingLogin": "Inlogpagina laden...", "ssoLoadingLogin": "Inlogpagina laden...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Aanmelden met uw LDAP-directorygegevens", "ldapDescription": "Aanmelden met uw LDAP-directorygegevens",

View File

@@ -5,7 +5,6 @@
"back": "Назад", "back": "Назад",
"you": "Вы", "you": "Вы",
"loadingProfile": "Загрузка профиля...", "loadingProfile": "Загрузка профиля...",
"unableToLoadProfile": "Не удалось загрузить профиль",
"pleaseCheckConnection": "Пожалуйста, проверьте соединение и повторите попытку", "pleaseCheckConnection": "Пожалуйста, проверьте соединение и повторите попытку",
"connectionIssueTitle": "Не удается подключиться к серверу", "connectionIssueTitle": "Не удается подключиться к серверу",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "Токен", "token": "Токен",
"usernameOrEmail": "Имя пользователя или email", "usernameOrEmail": "Имя пользователя или email",
"password": "Пароль", "password": "Пароль",
"signInWithApiKey": "Войти с помощью API-ключа",
"signInWithToken": "Войти с помощью токена", "signInWithToken": "Войти с помощью токена",
"connectToServer": "Подключиться к серверу", "connectToServer": "Подключиться к серверу",
"enterServerAddress": "Введите адрес вашего сервера Open-WebUI для начала", "enterServerAddress": "Введите адрес вашего сервера Open-WebUI для начала",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "Нажмите «Начать» для запуска", "voicePromptTapStart": "Нажмите «Начать» для запуска",
"voiceActionStop": "Стоп", "voiceActionStop": "Стоп",
"voiceActionStart": "Начать", "voiceActionStart": "Начать",
"messageInputLabel": "Ввод сообщения",
"messageInputHint": "Введите ваше сообщение",
"messageHintText": "Спросите Conduit", "messageHintText": "Спросите Conduit",
"stopGenerating": "Остановить генерацию", "stopGenerating": "Остановить генерацию",
"codeCopiedToClipboard": "Код скопирован в буфер обмена.", "codeCopiedToClipboard": "Код скопирован в буфер обмена.",
@@ -128,7 +124,6 @@
"file": "Файл", "file": "Файл",
"photo": "Фото", "photo": "Фото",
"camera": "Камера", "camera": "Камера",
"pasteFromClipboard": "Вставить",
"pasteImage": "Вставить изображение", "pasteImage": "Вставить изображение",
"apiUnavailable": "Служба API недоступна", "apiUnavailable": "Служба API недоступна",
"unableToLoadImage": "Не удалось загрузить изображение", "unableToLoadImage": "Не удалось загрузить изображение",
@@ -229,7 +224,6 @@
"noConversationsYet": "Пока нет разговоров", "noConversationsYet": "Пока нет разговоров",
"usernameOrEmailHint": "Введите ваше имя пользователя или email", "usernameOrEmailHint": "Введите ваше имя пользователя или email",
"passwordHint": "Введите ваш пароль", "passwordHint": "Введите ваш пароль",
"enterApiKey": "Введите ваш API-ключ",
"enterToken": "Введите ваш JWT-токен", "enterToken": "Введите ваш JWT-токен",
"tokenHint": "Получите JWT-токен в настройках OpenWebUI. API-ключи (sk-...) не поддерживаются для потоковой передачи.", "tokenHint": "Получите JWT-токен в настройках OpenWebUI. API-ключи (sk-...) не поддерживаются для потоковой передачи.",
"apiKeyNotSupported": "API-ключи (sk-...) не поддерживаются. Пожалуйста, используйте JWT-токен.", "apiKeyNotSupported": "API-ключи (sk-...) не поддерживаются. Пожалуйста, используйте JWT-токен.",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "Вспомогательный текст, разъясняющий риски включения переключателя самоподписанных сертификатов." "description": "Вспомогательный текст, разъясняющий риски включения переключателя самоподписанных сертификатов."
}, },
"headerNameEmpty": "Имя заголовка не может быть пустым",
"headerNameTooLong": "Имя заголовка слишком длинное (максимум 64 символа)", "headerNameTooLong": "Имя заголовка слишком длинное (максимум 64 символа)",
"headerNameInvalidChars": "Недопустимое имя заголовка. Используйте только буквы, цифры и эти символы: !#$&-^_`|~", "headerNameInvalidChars": "Недопустимое имя заголовка. Используйте только буквы, цифры и эти символы: !#$&-^_`|~",
"headerNameReserved": "Невозможно переопределить зарезервированный заголовок «{key}»", "headerNameReserved": "Невозможно переопределить зарезервированный заголовок «{key}»",
@@ -258,7 +251,6 @@
} }
} }
}, },
"headerValueEmpty": "Значение заголовка не может быть пустым",
"headerValueTooLong": "Значение заголовка слишком длинное (максимум 1024 символа)", "headerValueTooLong": "Значение заголовка слишком длинное (максимум 1024 символа)",
"headerValueInvalidChars": "Значение заголовка содержит недопустимые символы. Используйте только печатаемые ASCII.", "headerValueInvalidChars": "Значение заголовка содержит недопустимые символы. Используйте только печатаемые ASCII.",
"headerValueUnsafe": "Значение заголовка содержит потенциально небезопасное содержимое", "headerValueUnsafe": "Значение заголовка содержит потенциально небезопасное содержимое",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "Название заметки",
"writeNote": "Напишите что-нибудь...", "writeNote": "Напишите что-нибудь...",
"noteSaved": "Заметка сохранена",
"saving": "Сохранение...", "saving": "Сохранение...",
"saved": "Сохранено", "saved": "Сохранено",
"unsavedChanges": "Несохранённые изменения",
"noteCopiedToClipboard": "Заметка скопирована в буфер обмена", "noteCopiedToClipboard": "Заметка скопирована в буфер обмена",
"generateTitle": "Сгенерировать название", "generateTitle": "Сгенерировать название",
"generatingTitle": "Генерация названия...", "generatingTitle": "Генерация названия...",
@@ -815,15 +804,6 @@
"previous7Days": "Последние 7 дней", "previous7Days": "Последние 7 дней",
"previous30Days": "Последние 30 дней", "previous30Days": "Последние 30 дней",
"older": "Старше", "older": "Старше",
"tapToExpand": "Нажмите для раскрытия",
"byAuthor": "Автор: {name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} слов", "wordCount": "{count} слов",
"@wordCount": { "@wordCount": {
"placeholders": { "placeholders": {
@@ -858,17 +838,11 @@
} }
} }
}, },
"widgetAskConduit": "Спросить Conduit",
"widgetCamera": "Камера",
"widgetPhotos": "Фотографии",
"widgetClipboard": "Буфер обмена",
"widgetDescription": "Быстрый доступ к чату Conduit с камерой, фотографиями и буфером обмена",
"sso": "SSO", "sso": "SSO",
"ssoDescription": "Войдите через провайдера идентификации вашей организации", "ssoDescription": "Войдите через провайдера идентификации вашей организации",
"signInWithSso": "Войти через SSO", "signInWithSso": "Войти через SSO",
"ssoAuthenticating": "Аутентификация...", "ssoAuthenticating": "Аутентификация...",
"ssoAuthFailed": "Ошибка SSO-аутентификации", "ssoAuthFailed": "Ошибка SSO-аутентификации",
"ssoTokenNotFound": "Не удалось получить токен аутентификации от провайдера SSO",
"ssoLoadingLogin": "Загрузка страницы входа...", "ssoLoadingLogin": "Загрузка страницы входа...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "Войдите с учётными данными каталога LDAP", "ldapDescription": "Войдите с учётными данными каталога LDAP",

View File

@@ -5,7 +5,6 @@
"back": "返回", "back": "返回",
"you": "你", "you": "你",
"loadingProfile": "加载个人资料中...", "loadingProfile": "加载个人资料中...",
"unableToLoadProfile": "无法加载个人资料",
"pleaseCheckConnection": "请检查您的连接并重试", "pleaseCheckConnection": "请检查您的连接并重试",
"connectionIssueTitle": "无法连接到您的服务器", "connectionIssueTitle": "无法连接到您的服务器",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "令牌", "token": "令牌",
"usernameOrEmail": "用户名或电子邮件", "usernameOrEmail": "用户名或电子邮件",
"password": "密码", "password": "密码",
"signInWithApiKey": "使用 API 密钥登录",
"signInWithToken": "使用令牌登录", "signInWithToken": "使用令牌登录",
"connectToServer": "连接到服务器", "connectToServer": "连接到服务器",
"enterServerAddress": "输入您的 Open-WebUI 服务器地址以开始", "enterServerAddress": "输入您的 Open-WebUI 服务器地址以开始",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "点击开始以开始", "voicePromptTapStart": "点击开始以开始",
"voiceActionStop": "停止", "voiceActionStop": "停止",
"voiceActionStart": "开始", "voiceActionStart": "开始",
"messageInputLabel": "消息输入",
"messageInputHint": "输入您的消息",
"messageHintText": "问 Conduit", "messageHintText": "问 Conduit",
"stopGenerating": "停止生成", "stopGenerating": "停止生成",
"codeCopiedToClipboard": "代码已复制到剪贴板。", "codeCopiedToClipboard": "代码已复制到剪贴板。",
@@ -128,7 +124,6 @@
"file": "文件", "file": "文件",
"photo": "照片", "photo": "照片",
"camera": "相机", "camera": "相机",
"pasteFromClipboard": "粘贴",
"pasteImage": "粘贴图片", "pasteImage": "粘贴图片",
"apiUnavailable": "API 服务不可用", "apiUnavailable": "API 服务不可用",
"unableToLoadImage": "无法加载图像", "unableToLoadImage": "无法加载图像",
@@ -229,7 +224,6 @@
"noConversationsYet": "尚无对话", "noConversationsYet": "尚无对话",
"usernameOrEmailHint": "输入您的用户名或电子邮件", "usernameOrEmailHint": "输入您的用户名或电子邮件",
"passwordHint": "输入您的密码", "passwordHint": "输入您的密码",
"enterApiKey": "输入您的 API 密钥",
"enterToken": "输入您的 JWT 令牌", "enterToken": "输入您的 JWT 令牌",
"tokenHint": "从 OpenWebUI 设置获取 JWT 令牌。API 密钥 (sk-...) 不支持流式传输。", "tokenHint": "从 OpenWebUI 设置获取 JWT 令牌。API 密钥 (sk-...) 不支持流式传输。",
"apiKeyNotSupported": "不支持 API 密钥 (sk-...)。请改用 JWT 令牌。", "apiKeyNotSupported": "不支持 API 密钥 (sk-...)。请改用 JWT 令牌。",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "阐明启用自签名证书切换风险的帮助文本。" "description": "阐明启用自签名证书切换风险的帮助文本。"
}, },
"headerNameEmpty": "标头名称不能为空",
"headerNameTooLong": "标头名称太长(最多 64 个字符)", "headerNameTooLong": "标头名称太长(最多 64 个字符)",
"headerNameInvalidChars": "无效的标头名称。仅使用字母、数字和这些符号:!#$&-^_`|~", "headerNameInvalidChars": "无效的标头名称。仅使用字母、数字和这些符号:!#$&-^_`|~",
"headerNameReserved": "无法覆盖保留的标头「{key}」", "headerNameReserved": "无法覆盖保留的标头「{key}」",
@@ -258,7 +251,6 @@
} }
} }
}, },
"headerValueEmpty": "标头值不能为空",
"headerValueTooLong": "标头值太长(最多 1024 个字符)", "headerValueTooLong": "标头值太长(最多 1024 个字符)",
"headerValueInvalidChars": "标头值包含无效字符。仅使用可打印的 ASCII。", "headerValueInvalidChars": "标头值包含无效字符。仅使用可打印的 ASCII。",
"headerValueUnsafe": "标头值似乎包含潜在的不安全内容", "headerValueUnsafe": "标头值似乎包含潜在的不安全内容",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "笔记标题",
"writeNote": "写点什么...", "writeNote": "写点什么...",
"noteSaved": "笔记已保存",
"saving": "保存中...", "saving": "保存中...",
"saved": "已保存", "saved": "已保存",
"unsavedChanges": "未保存的更改",
"noteCopiedToClipboard": "笔记已复制到剪贴板", "noteCopiedToClipboard": "笔记已复制到剪贴板",
"generateTitle": "生成标题", "generateTitle": "生成标题",
"generatingTitle": "正在生成标题...", "generatingTitle": "正在生成标题...",
@@ -815,15 +804,6 @@
"previous7Days": "过去 7 天", "previous7Days": "过去 7 天",
"previous30Days": "过去 30 天", "previous30Days": "过去 30 天",
"older": "更早", "older": "更早",
"tapToExpand": "点击展开",
"byAuthor": "作者:{name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} 字", "wordCount": "{count} 字",
"@wordCount": { "@wordCount": {
"placeholders": { "placeholders": {
@@ -858,17 +838,11 @@
} }
} }
}, },
"widgetAskConduit": "询问 Conduit",
"widgetCamera": "相机",
"widgetPhotos": "照片",
"widgetClipboard": "剪贴板",
"widgetDescription": "快速访问 Conduit 聊天,支持相机、照片和剪贴板快捷方式",
"sso": "SSO", "sso": "SSO",
"ssoDescription": "使用组织的身份提供商登录", "ssoDescription": "使用组织的身份提供商登录",
"signInWithSso": "使用 SSO 登录", "signInWithSso": "使用 SSO 登录",
"ssoAuthenticating": "正在验证...", "ssoAuthenticating": "正在验证...",
"ssoAuthFailed": "SSO 验证失败", "ssoAuthFailed": "SSO 验证失败",
"ssoTokenNotFound": "无法从 SSO 提供商获取验证令牌",
"ssoLoadingLogin": "正在加载登录页面...", "ssoLoadingLogin": "正在加载登录页面...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "使用 LDAP 目录凭据登录", "ldapDescription": "使用 LDAP 目录凭据登录",

View File

@@ -5,7 +5,6 @@
"back": "返回", "back": "返回",
"you": "你", "you": "你",
"loadingProfile": "加載個人資料中...", "loadingProfile": "加載個人資料中...",
"unableToLoadProfile": "無法加載個人資料",
"pleaseCheckConnection": "請檢查您的連接並重試", "pleaseCheckConnection": "請檢查您的連接並重試",
"connectionIssueTitle": "無法連接到您的服務器", "connectionIssueTitle": "無法連接到您的服務器",
"@connectionIssueTitle": { "@connectionIssueTitle": {
@@ -49,7 +48,6 @@
"token": "令牌", "token": "令牌",
"usernameOrEmail": "用戶名或電子郵件", "usernameOrEmail": "用戶名或電子郵件",
"password": "密碼", "password": "密碼",
"signInWithApiKey": "使用 API 密鑰登錄",
"signInWithToken": "使用令牌登錄", "signInWithToken": "使用令牌登錄",
"connectToServer": "連接到服務器", "connectToServer": "連接到服務器",
"enterServerAddress": "輸入您的 Open-WebUI 服務器地址以開始", "enterServerAddress": "輸入您的 Open-WebUI 服務器地址以開始",
@@ -118,8 +116,6 @@
"voicePromptTapStart": "點擊開始以開始", "voicePromptTapStart": "點擊開始以開始",
"voiceActionStop": "停止", "voiceActionStop": "停止",
"voiceActionStart": "開始", "voiceActionStart": "開始",
"messageInputLabel": "消息輸入",
"messageInputHint": "輸入您的消息",
"messageHintText": "問 Conduit", "messageHintText": "問 Conduit",
"stopGenerating": "停止生成", "stopGenerating": "停止生成",
"codeCopiedToClipboard": "代碼已複製到剪貼板。", "codeCopiedToClipboard": "代碼已複製到剪貼板。",
@@ -128,7 +124,6 @@
"file": "文件", "file": "文件",
"photo": "照片", "photo": "照片",
"camera": "相機", "camera": "相機",
"pasteFromClipboard": "貼上",
"pasteImage": "貼上圖片", "pasteImage": "貼上圖片",
"apiUnavailable": "API 服務不可用", "apiUnavailable": "API 服務不可用",
"unableToLoadImage": "無法加載圖像", "unableToLoadImage": "無法加載圖像",
@@ -229,7 +224,6 @@
"noConversationsYet": "尚無對話", "noConversationsYet": "尚無對話",
"usernameOrEmailHint": "輸入您的用戶名或電子郵件", "usernameOrEmailHint": "輸入您的用戶名或電子郵件",
"passwordHint": "輸入您的密碼", "passwordHint": "輸入您的密碼",
"enterApiKey": "輸入您的 API 密鑰",
"enterToken": "輸入您的 JWT 令牌", "enterToken": "輸入您的 JWT 令牌",
"tokenHint": "從 OpenWebUI 設定取得 JWT 令牌。API 密鑰 (sk-...) 不支援串流。", "tokenHint": "從 OpenWebUI 設定取得 JWT 令牌。API 密鑰 (sk-...) 不支援串流。",
"apiKeyNotSupported": "不支援 API 密鑰 (sk-...)。請改用 JWT 令牌。", "apiKeyNotSupported": "不支援 API 密鑰 (sk-...)。請改用 JWT 令牌。",
@@ -247,7 +241,6 @@
"@allowSelfSignedCertificatesDescription": { "@allowSelfSignedCertificatesDescription": {
"description": "阐明启用自签名证书切换风险的帮助文本。" "description": "阐明启用自签名证书切换风险的帮助文本。"
}, },
"headerNameEmpty": "標頭名稱不能爲空",
"headerNameTooLong": "標頭名稱太長(最多 64 個字符)", "headerNameTooLong": "標頭名稱太長(最多 64 個字符)",
"headerNameInvalidChars": "無效的標頭名稱。僅使用字母、數字和這些符號:!#$&-^_`|~", "headerNameInvalidChars": "無效的標頭名稱。僅使用字母、數字和這些符號:!#$&-^_`|~",
"headerNameReserved": "無法覆蓋保留的標頭「{key}」", "headerNameReserved": "無法覆蓋保留的標頭「{key}」",
@@ -258,7 +251,6 @@
} }
} }
}, },
"headerValueEmpty": "標頭值不能爲空",
"headerValueTooLong": "標頭值太長(最多 1024 個字符)", "headerValueTooLong": "標頭值太長(最多 1024 個字符)",
"headerValueInvalidChars": "標頭值包含無效字符。僅使用可打印的 ASCII。", "headerValueInvalidChars": "標頭值包含無效字符。僅使用可打印的 ASCII。",
"headerValueUnsafe": "標頭值似乎包含潛在的不安全內容", "headerValueUnsafe": "標頭值似乎包含潛在的不安全內容",
@@ -787,12 +779,9 @@
} }
} }
}, },
"noteTitle": "筆記標題",
"writeNote": "寫點什麼...", "writeNote": "寫點什麼...",
"noteSaved": "筆記已儲存",
"saving": "儲存中...", "saving": "儲存中...",
"saved": "已儲存", "saved": "已儲存",
"unsavedChanges": "未儲存的變更",
"noteCopiedToClipboard": "筆記已複製到剪貼簿", "noteCopiedToClipboard": "筆記已複製到剪貼簿",
"generateTitle": "產生標題", "generateTitle": "產生標題",
"generatingTitle": "正在產生標題...", "generatingTitle": "正在產生標題...",
@@ -815,15 +804,6 @@
"previous7Days": "過去 7 天", "previous7Days": "過去 7 天",
"previous30Days": "過去 30 天", "previous30Days": "過去 30 天",
"older": "更早", "older": "更早",
"tapToExpand": "點擊展開",
"byAuthor": "作者:{name}",
"@byAuthor": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"wordCount": "{count} 字", "wordCount": "{count} 字",
"@wordCount": { "@wordCount": {
"placeholders": { "placeholders": {
@@ -858,17 +838,11 @@
} }
} }
}, },
"widgetAskConduit": "詢問 Conduit",
"widgetCamera": "相機",
"widgetPhotos": "照片",
"widgetClipboard": "剪貼簿",
"widgetDescription": "快速存取 Conduit 聊天,支援相機、照片和剪貼簿捷徑",
"sso": "SSO", "sso": "SSO",
"ssoDescription": "使用組織的身份提供商登入", "ssoDescription": "使用組織的身份提供商登入",
"signInWithSso": "使用 SSO 登入", "signInWithSso": "使用 SSO 登入",
"ssoAuthenticating": "正在驗證...", "ssoAuthenticating": "正在驗證...",
"ssoAuthFailed": "SSO 驗證失敗", "ssoAuthFailed": "SSO 驗證失敗",
"ssoTokenNotFound": "無法從 SSO 提供商取得驗證權杖",
"ssoLoadingLogin": "正在載入登入頁面...", "ssoLoadingLogin": "正在載入登入頁面...",
"ldap": "LDAP", "ldap": "LDAP",
"ldapDescription": "使用 LDAP 目錄憑據登入", "ldapDescription": "使用 LDAP 目錄憑據登入",