feat: localisation with en, de, fr and it
This commit is contained in:
145
lib/l10n/app_de.arb
Normal file
145
lib/l10n/app_de.arb
Normal file
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"@@locale": "de",
|
||||
"appTitle": "Conduit",
|
||||
"initializationFailed": "Initialisierung fehlgeschlagen",
|
||||
"retry": "Erneut versuchen",
|
||||
"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",
|
||||
"account": "Konto",
|
||||
"signOut": "Abmelden",
|
||||
"endYourSession": "Sitzung beenden",
|
||||
"defaultModel": "Standardmodell",
|
||||
"autoSelect": "Automatische Auswahl",
|
||||
"loadingModels": "Modelle werden geladen...",
|
||||
"failedToLoadModels": "Modelle konnten nicht geladen werden",
|
||||
"availableModels": "Verfügbare Modelle",
|
||||
"noResults": "Keine Ergebnisse",
|
||||
"searchModels": "Modelle suchen...",
|
||||
"errorMessage": "Etwas ist schief gelaufen. Bitte versuche es erneut.",
|
||||
"loginButton": "Anmelden",
|
||||
"menuItem": "Einstellungen",
|
||||
"dynamicContentWithPlaceholder": "Willkommen, {name}!",
|
||||
"itemsCount": "{count, plural, =0{Keine Elemente} one{1 Element} other{{count} Elemente}}",
|
||||
"closeButtonSemantic": "Schließen",
|
||||
"loadingContent": "Inhalt wird geladen",
|
||||
"noItems": "Keine Elemente",
|
||||
"noItemsToDisplay": "Keine Elemente zum Anzeigen",
|
||||
"loadMore": "Mehr laden",
|
||||
"workspace": "Arbeitsbereich",
|
||||
"recentFiles": "Zuletzt verwendete Dateien",
|
||||
"knowledgeBase": "Wissensdatenbank",
|
||||
"noFilesYet": "Noch keine Dateien",
|
||||
"uploadDocsPrompt": "Lade Dokumente hoch, um sie in deinen Unterhaltungen mit Conduit zu verwenden",
|
||||
"uploadFirstFile": "Erste Datei hochladen",
|
||||
"knowledgeBaseEmpty": "Wissensdatenbank ist leer",
|
||||
"createCollectionsPrompt": "Erstelle Sammlungen verwandter Dokumente zur einfachen Referenz",
|
||||
"chooseSourcePhoto": "Quelle auswählen",
|
||||
"takePhoto": "Foto aufnehmen",
|
||||
"chooseFromGallery": "Aus Fotos auswählen",
|
||||
"document": "Dokument",
|
||||
"documentHint": "PDF-, Word- oder Textdatei",
|
||||
"uploadFileTitle": "Datei hochladen",
|
||||
"fileUploadComingSoon": "Dateiupload für {type} kommt bald!",
|
||||
"kbCreationComingSoon": "Erstellung der Wissensdatenbank kommt bald!",
|
||||
"backToServerSetup": "Zur Servereinrichtung zurück",
|
||||
"connectedToServer": "Mit Server verbunden",
|
||||
"signIn": "Anmelden",
|
||||
"enterCredentials": "Gib deine Anmeldedaten ein, um auf deine KI-Unterhaltungen zuzugreifen",
|
||||
"credentials": "Zugangsdaten",
|
||||
"apiKey": "API-Schlüssel",
|
||||
"usernameOrEmail": "Benutzername oder E‑Mail",
|
||||
"password": "Passwort",
|
||||
"signInWithApiKey": "Mit API-Schlüssel anmelden",
|
||||
"connectToServer": "Mit Server verbinden",
|
||||
"enterServerAddress": "Gib die Adresse deines Open-WebUI-Servers ein, um zu beginnen",
|
||||
"serverUrl": "Server-URL",
|
||||
"serverUrlHint": "https://dein-server.com",
|
||||
"enterServerUrlSemantic": "Gib deine Server-URL oder IP-Adresse ein",
|
||||
"headerName": "Header-Name",
|
||||
"headerValue": "Header-Wert",
|
||||
"headerValueHint": "api-key-123 oder Bearer-Token",
|
||||
"addHeader": "Header hinzufügen",
|
||||
"maximumHeadersReached": "Maximale Anzahl erreicht",
|
||||
"removeHeader": "Header entfernen",
|
||||
"connecting": "Verbindung wird hergestellt...",
|
||||
"connectToServerButton": "Mit Server verbinden",
|
||||
"demoModeActive": "Demo-Modus aktiv",
|
||||
"skipServerSetupTryDemo": "Servereinrichtung überspringen und Demo testen",
|
||||
"enterDemo": "Demo starten",
|
||||
"demoBadge": "Demo",
|
||||
"serverNotOpenWebUI": "Dies scheint kein Open-WebUI-Server zu sein.",
|
||||
"serverUrlEmpty": "Server-URL darf nicht leer sein",
|
||||
"invalidUrlFormat": "Ungültiges URL-Format. Bitte Eingabe prüfen.",
|
||||
"onlyHttpHttps": "Nur HTTP- und HTTPS-Protokolle werden unterstützt.",
|
||||
"serverAddressRequired": "Serveradresse erforderlich (z. B. 192.168.1.10 oder example.com).",
|
||||
"portRange": "Port muss zwischen 1 und 65535 liegen.",
|
||||
"invalidIpFormat": "Ungültiges IP-Format. Beispiel: 192.168.1.10.",
|
||||
"couldNotConnectGeneric": "Verbindung fehlgeschlagen. Adresse prüfen und erneut versuchen.",
|
||||
"weCouldntReachServer": "Server nicht erreichbar. Verbindung und Serverstatus prüfen.",
|
||||
"connectionTimedOut": "Zeitüberschreitung. Server eventuell ausgelastet oder blockiert.",
|
||||
"useHttpOrHttpsOnly": "Nur http:// oder https:// verwenden.",
|
||||
"loginFailed": "Anmeldung fehlgeschlagen",
|
||||
"invalidCredentials": "Ungültiger Benutzername oder Passwort. Bitte erneut versuchen.",
|
||||
"serverRedirectingHttps": "Server leitet um. HTTPS-Konfiguration prüfen.",
|
||||
"unableToConnectServer": "Verbindung zum Server nicht möglich. Bitte Verbindung prüfen.",
|
||||
"requestTimedOut": "Zeitüberschreitung. Bitte erneut versuchen.",
|
||||
"genericSignInFailed": "Anmeldung nicht möglich. Zugangsdaten und Server prüfen.",
|
||||
"skip": "Überspringen",
|
||||
"next": "Weiter",
|
||||
"done": "Fertig",
|
||||
"onboardStartTitle": "Unterhaltung starten",
|
||||
"onboardStartSubtitle": "Wähle ein Modell und tippe los. Tippe jederzeit auf Neuer Chat.",
|
||||
"onboardStartBullet1": "Modellname oben antippen, um zu wechseln",
|
||||
"onboardStartBullet2": "Mit Neuer Chat den Kontext zurücksetzen",
|
||||
"onboardAttachTitle": "Kontext anhängen",
|
||||
"onboardAttachSubtitle": "Antworten mit Dateien oder Bildern untermauern.",
|
||||
"onboardAttachBullet1": "Dateien: PDFs, Dokumente, Datensätze",
|
||||
"onboardAttachBullet2": "Bilder: Fotos oder Screenshots",
|
||||
"onboardSpeakTitle": "Natürlich sprechen",
|
||||
"onboardSpeakSubtitle": "Auf das Mikro tippen, um zu diktieren.",
|
||||
"onboardSpeakBullet1": "Jederzeit stoppen; Text bleibt erhalten",
|
||||
"onboardSpeakBullet2": "Ideal für kurze Notizen oder lange Prompts",
|
||||
"onboardQuickTitle": "Schnellaktionen",
|
||||
"onboardQuickSubtitle": "Links oben das Menü für Chats und Navigation öffnen.",
|
||||
"onboardQuickBullet1": "Menü tippen, um Chats und Navigation zu öffnen",
|
||||
"onboardQuickBullet2": "Schnell zu Neuer Chat, Dateien oder Profil springen"
|
||||
,
|
||||
"addAttachment": "Anhang hinzufügen",
|
||||
"tools": "Werkzeuge",
|
||||
"voiceInput": "Spracheingabe",
|
||||
"messageInputLabel": "Nachrichteneingabe",
|
||||
"messageInputHint": "Nachricht eingeben",
|
||||
"messageHintText": "Nachricht...",
|
||||
"stopGenerating": "Generierung stoppen",
|
||||
"send": "Senden",
|
||||
"sendMessage": "Nachricht senden",
|
||||
"file": "Datei",
|
||||
"photo": "Foto",
|
||||
"camera": "Kamera",
|
||||
"apiUnavailable": "API-Dienst nicht verfügbar",
|
||||
"unableToLoadImage": "Bild kann nicht geladen werden",
|
||||
"notAnImageFile": "Keine Bilddatei: {fileName}",
|
||||
"failedToLoadImage": "Bild konnte nicht geladen werden: {error}",
|
||||
"invalidDataUrl": "Ungültiges Data-URL-Format",
|
||||
"failedToDecodeImage": "Bild konnte nicht decodiert werden",
|
||||
"invalidImageFormat": "Ungültiges Bildformat",
|
||||
"emptyImageData": "Leere Bilddaten"
|
||||
,
|
||||
"offlineBanner": "Du bist offline. Einige Funktionen sind eingeschränkt.",
|
||||
"featureRequiresInternet": "Diese Funktion erfordert eine Internetverbindung",
|
||||
"messagesWillSendWhenOnline": "Nachrichten werden gesendet, sobald du wieder online bist",
|
||||
"confirm": "Bestätigen",
|
||||
"cancel": "Abbrechen"
|
||||
,
|
||||
"ok": "OK",
|
||||
"inputField": "Eingabefeld",
|
||||
"captureDocumentOrImage": "Dokument oder Bild aufnehmen",
|
||||
"checkConnection": "Verbindung prüfen",
|
||||
"openSettings": "Einstellungen öffnen",
|
||||
"chooseDifferentFile": "Andere Datei wählen",
|
||||
"goBack": "Zurück",
|
||||
"technicalDetails": "Technische Details"
|
||||
}
|
||||
169
lib/l10n/app_en.arb
Normal file
169
lib/l10n/app_en.arb
Normal file
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"@@locale": "en",
|
||||
"appTitle": "Conduit",
|
||||
"initializationFailed": "Initialization Failed",
|
||||
"retry": "Retry",
|
||||
"back": "Back",
|
||||
"you": "You",
|
||||
"loadingProfile": "Loading profile...",
|
||||
"unableToLoadProfile": "Unable to load profile",
|
||||
"pleaseCheckConnection": "Please check your connection and try again",
|
||||
"account": "Account",
|
||||
"signOut": "Sign Out",
|
||||
"endYourSession": "End your session",
|
||||
"defaultModel": "Default Model",
|
||||
"autoSelect": "Auto-select",
|
||||
"loadingModels": "Loading models...",
|
||||
"failedToLoadModels": "Failed to load models",
|
||||
"availableModels": "Available Models",
|
||||
"noResults": "No results",
|
||||
"searchModels": "Search models...",
|
||||
"errorMessage": "Something went wrong. Please try again.",
|
||||
"loginButton": "Login",
|
||||
"menuItem": "Settings",
|
||||
"dynamicContentWithPlaceholder": "Welcome, {name}!",
|
||||
"@dynamicContentWithPlaceholder": {
|
||||
"description": "Greeting message with a dynamic user name.",
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String",
|
||||
"example": "Alex"
|
||||
}
|
||||
}
|
||||
},
|
||||
"itemsCount": "{count, plural, =0{No items} one{1 item} other{{count} items}}",
|
||||
"@itemsCount": {
|
||||
"description": "Pluralized count of items.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int",
|
||||
"example": "3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"closeButtonSemantic": "Close",
|
||||
"loadingContent": "Loading content",
|
||||
"noItems": "No items",
|
||||
"noItemsToDisplay": "No items to display",
|
||||
"loadMore": "Load More",
|
||||
"workspace": "Workspace",
|
||||
"recentFiles": "Recent Files",
|
||||
"knowledgeBase": "Knowledge Base",
|
||||
"noFilesYet": "No files yet",
|
||||
"uploadDocsPrompt": "Upload documents to reference in your conversations with Conduit",
|
||||
"uploadFirstFile": "Upload your first file",
|
||||
"knowledgeBaseEmpty": "Knowledge base is empty",
|
||||
"createCollectionsPrompt": "Create collections of related documents for easy reference",
|
||||
"chooseSourcePhoto": "Choose your source",
|
||||
"takePhoto": "Take a photo",
|
||||
"chooseFromGallery": "Choose from your photos",
|
||||
"document": "Document",
|
||||
"documentHint": "PDF, Word, or text file",
|
||||
"uploadFileTitle": "Upload File",
|
||||
"fileUploadComingSoon": "File upload for {type} is coming soon!",
|
||||
"@fileUploadComingSoon": {
|
||||
"placeholders": {"type": {"type": "String", "example": "gallery"}},
|
||||
"description": "Temporary message for upcoming upload feature by type"
|
||||
},
|
||||
"kbCreationComingSoon": "Knowledge base creation is coming soon!",
|
||||
"backToServerSetup": "Back to server setup",
|
||||
"connectedToServer": "Connected to Server",
|
||||
"signIn": "Sign In",
|
||||
"enterCredentials": "Enter your credentials to access your AI conversations",
|
||||
"credentials": "Credentials",
|
||||
"apiKey": "API Key",
|
||||
"usernameOrEmail": "Username or Email",
|
||||
"password": "Password",
|
||||
"signInWithApiKey": "Sign in with API Key",
|
||||
"connectToServer": "Connect to Server",
|
||||
"enterServerAddress": "Enter your Open-WebUI server address to get started",
|
||||
"serverUrl": "Server URL",
|
||||
"serverUrlHint": "https://your-server.com",
|
||||
"enterServerUrlSemantic": "Enter your server URL or IP address",
|
||||
"headerName": "Header Name",
|
||||
"headerValue": "Header Value",
|
||||
"headerValueHint": "api-key-123 or Bearer token",
|
||||
"addHeader": "Add header",
|
||||
"maximumHeadersReached": "Maximum headers reached",
|
||||
"removeHeader": "Remove header",
|
||||
"connecting": "Connecting...",
|
||||
"connectToServerButton": "Connect to Server",
|
||||
"demoModeActive": "Demo Mode Active",
|
||||
"skipServerSetupTryDemo": "Skip server setup and try the demo",
|
||||
"enterDemo": "Enter Demo",
|
||||
"demoBadge": "Demo",
|
||||
"serverNotOpenWebUI": "This does not appear to be an Open-WebUI server.",
|
||||
"serverUrlEmpty": "Server URL cannot be empty",
|
||||
"invalidUrlFormat": "Invalid URL format. Please check your input.",
|
||||
"onlyHttpHttps": "Only HTTP and HTTPS protocols are supported.",
|
||||
"serverAddressRequired": "Server address is required (e.g., 192.168.1.10 or example.com).",
|
||||
"portRange": "Port must be between 1 and 65535.",
|
||||
"invalidIpFormat": "Invalid IP address format. Use format like 192.168.1.10.",
|
||||
"couldNotConnectGeneric": "Couldn't connect. Double-check the address and try again.",
|
||||
"weCouldntReachServer": "We couldn't reach the server. Check your connection and that the server is running.",
|
||||
"connectionTimedOut": "Connection timed out. The server might be busy or blocked by a firewall.",
|
||||
"useHttpOrHttpsOnly": "Use http:// or https:// only.",
|
||||
"loginFailed": "Login failed",
|
||||
"invalidCredentials": "Invalid username or password. Please try again.",
|
||||
"serverRedirectingHttps": "The server is redirecting requests. Check your server's HTTPS configuration.",
|
||||
"unableToConnectServer": "Unable to connect to server. Please check your connection.",
|
||||
"requestTimedOut": "The request timed out. Please try again.",
|
||||
"genericSignInFailed": "We couldn't sign you in. Check your credentials and server settings.",
|
||||
"skip": "Skip",
|
||||
"next": "Next",
|
||||
"done": "Done",
|
||||
"onboardStartTitle": "Start a conversation",
|
||||
"onboardStartSubtitle": "Choose a model, then type below to begin. Tap New Chat anytime.",
|
||||
"onboardStartBullet1": "Tap the model name in the top bar to switch models",
|
||||
"onboardStartBullet2": "Use New Chat to reset context",
|
||||
"onboardAttachTitle": "Attach context",
|
||||
"onboardAttachSubtitle": "Ground responses by adding files or images.",
|
||||
"onboardAttachBullet1": "Files: PDFs, docs, datasets",
|
||||
"onboardAttachBullet2": "Images: photos or screenshots",
|
||||
"onboardSpeakTitle": "Speak naturally",
|
||||
"onboardSpeakSubtitle": "Tap the mic to dictate with live waveform feedback.",
|
||||
"onboardSpeakBullet1": "Stop anytime; partial text is preserved",
|
||||
"onboardSpeakBullet2": "Great for quick notes or long prompts",
|
||||
"onboardQuickTitle": "Quick actions",
|
||||
"onboardQuickSubtitle": "Use the top‑left menu to open the chats list and navigation.",
|
||||
"onboardQuickBullet1": "Tap the menu to open the chats list and navigation",
|
||||
"onboardQuickBullet2": "Jump instantly to New Chat, Files, or Profile"
|
||||
,
|
||||
"addAttachment": "Add attachment",
|
||||
"tools": "Tools",
|
||||
"voiceInput": "Voice input",
|
||||
"messageInputLabel": "Message input",
|
||||
"messageInputHint": "Type your message",
|
||||
"messageHintText": "Message...",
|
||||
"stopGenerating": "Stop generating",
|
||||
"send": "Send",
|
||||
"sendMessage": "Send message",
|
||||
"file": "File",
|
||||
"photo": "Photo",
|
||||
"camera": "Camera",
|
||||
"apiUnavailable": "API service not available",
|
||||
"unableToLoadImage": "Unable to load image",
|
||||
"notAnImageFile": "Not an image file: {fileName}",
|
||||
"@notAnImageFile": {"placeholders": {"fileName": {"type": "String", "example": "image.txt"}}},
|
||||
"failedToLoadImage": "Failed to load image: {error}",
|
||||
"@failedToLoadImage": {"placeholders": {"error": {"type": "String", "example": "Network error"}}},
|
||||
"invalidDataUrl": "Invalid data URL format",
|
||||
"failedToDecodeImage": "Failed to decode image",
|
||||
"invalidImageFormat": "Invalid image format",
|
||||
"emptyImageData": "Empty image data"
|
||||
,
|
||||
"offlineBanner": "You're offline. Some features may be limited.",
|
||||
"featureRequiresInternet": "This feature requires an internet connection",
|
||||
"messagesWillSendWhenOnline": "Messages will be sent when you're back online",
|
||||
"confirm": "Confirm",
|
||||
"cancel": "Cancel"
|
||||
,
|
||||
"ok": "OK",
|
||||
"inputField": "Input field",
|
||||
"captureDocumentOrImage": "Capture a document or image",
|
||||
"checkConnection": "Check Connection",
|
||||
"openSettings": "Open Settings",
|
||||
"chooseDifferentFile": "Choose Different File",
|
||||
"goBack": "Go Back",
|
||||
"technicalDetails": "Technical Details"
|
||||
}
|
||||
145
lib/l10n/app_fr.arb
Normal file
145
lib/l10n/app_fr.arb
Normal file
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"@@locale": "fr",
|
||||
"appTitle": "Conduit",
|
||||
"initializationFailed": "Échec de l'initialisation",
|
||||
"retry": "Réessayer",
|
||||
"back": "Retour",
|
||||
"you": "Vous",
|
||||
"loadingProfile": "Chargement du profil...",
|
||||
"unableToLoadProfile": "Impossible de charger le profil",
|
||||
"pleaseCheckConnection": "Veuillez vérifier votre connexion et réessayer",
|
||||
"account": "Compte",
|
||||
"signOut": "Se déconnecter",
|
||||
"endYourSession": "Terminer votre session",
|
||||
"defaultModel": "Modèle par défaut",
|
||||
"autoSelect": "Sélection automatique",
|
||||
"loadingModels": "Chargement des modèles...",
|
||||
"failedToLoadModels": "Échec du chargement des modèles",
|
||||
"availableModels": "Modèles disponibles",
|
||||
"noResults": "Aucun résultat",
|
||||
"searchModels": "Rechercher des modèles...",
|
||||
"errorMessage": "Une erreur s'est produite. Veuillez réessayer.",
|
||||
"loginButton": "Connexion",
|
||||
"menuItem": "Paramètres",
|
||||
"dynamicContentWithPlaceholder": "Bienvenue, {name} !",
|
||||
"itemsCount": "{count, plural, =0{Aucun élément} one{1 élément} other{{count} éléments}}",
|
||||
"closeButtonSemantic": "Fermer",
|
||||
"loadingContent": "Chargement du contenu",
|
||||
"noItems": "Aucun élément",
|
||||
"noItemsToDisplay": "Aucun élément à afficher",
|
||||
"loadMore": "Charger plus",
|
||||
"workspace": "Espace de travail",
|
||||
"recentFiles": "Fichiers récents",
|
||||
"knowledgeBase": "Base de connaissances",
|
||||
"noFilesYet": "Pas encore de fichiers",
|
||||
"uploadDocsPrompt": "Importez des documents à utiliser dans vos conversations avec Conduit",
|
||||
"uploadFirstFile": "Importer votre premier fichier",
|
||||
"knowledgeBaseEmpty": "La base de connaissances est vide",
|
||||
"createCollectionsPrompt": "Créez des collections de documents liés pour une référence facile",
|
||||
"chooseSourcePhoto": "Choisir la source",
|
||||
"takePhoto": "Prendre une photo",
|
||||
"chooseFromGallery": "Choisir depuis vos photos",
|
||||
"document": "Document",
|
||||
"documentHint": "Fichier PDF, Word ou texte",
|
||||
"uploadFileTitle": "Importer un fichier",
|
||||
"fileUploadComingSoon": "Le téléversement de fichiers pour {type} arrive bientôt !",
|
||||
"kbCreationComingSoon": "La création de la base de connaissances arrive bientôt !",
|
||||
"backToServerSetup": "Retour à la configuration du serveur",
|
||||
"connectedToServer": "Connecté au serveur",
|
||||
"signIn": "Se connecter",
|
||||
"enterCredentials": "Entrez vos identifiants pour accéder à vos conversations IA",
|
||||
"credentials": "Identifiants",
|
||||
"apiKey": "Clé API",
|
||||
"usernameOrEmail": "Nom d'utilisateur ou e‑mail",
|
||||
"password": "Mot de passe",
|
||||
"signInWithApiKey": "Se connecter avec une clé API",
|
||||
"connectToServer": "Se connecter au serveur",
|
||||
"enterServerAddress": "Saisissez l'adresse de votre serveur Open-WebUI pour commencer",
|
||||
"serverUrl": "URL du serveur",
|
||||
"serverUrlHint": "https://votre-serveur.com",
|
||||
"enterServerUrlSemantic": "Saisissez l'URL ou l'adresse IP de votre serveur",
|
||||
"headerName": "Nom de l'en-tête",
|
||||
"headerValue": "Valeur de l'en-tête",
|
||||
"headerValueHint": "api-key-123 ou jeton Bearer",
|
||||
"addHeader": "Ajouter l'en-tête",
|
||||
"maximumHeadersReached": "Nombre maximal atteint",
|
||||
"removeHeader": "Supprimer l'en-tête",
|
||||
"connecting": "Connexion en cours...",
|
||||
"connectToServerButton": "Se connecter au serveur",
|
||||
"demoModeActive": "Mode démo activé",
|
||||
"skipServerSetupTryDemo": "Ignorer la configuration et essayer la démo",
|
||||
"enterDemo": "Entrer en démo",
|
||||
"demoBadge": "Démo",
|
||||
"serverNotOpenWebUI": "Ceci ne semble pas être un serveur Open-WebUI.",
|
||||
"serverUrlEmpty": "L'URL du serveur ne peut pas être vide",
|
||||
"invalidUrlFormat": "Format d'URL invalide. Veuillez vérifier votre saisie.",
|
||||
"onlyHttpHttps": "Seuls les protocoles HTTP et HTTPS sont pris en charge.",
|
||||
"serverAddressRequired": "Adresse du serveur requise (ex. 192.168.1.10 ou example.com).",
|
||||
"portRange": "Le port doit être compris entre 1 et 65535.",
|
||||
"invalidIpFormat": "Format d'IP invalide. Exemple : 192.168.1.10.",
|
||||
"couldNotConnectGeneric": "Connexion impossible. Vérifiez l'adresse et réessayez.",
|
||||
"weCouldntReachServer": "Impossible d'atteindre le serveur. Vérifiez la connexion et l'état du serveur.",
|
||||
"connectionTimedOut": "Délai d'attente dépassé. Le serveur est peut-être occupé ou bloqué.",
|
||||
"useHttpOrHttpsOnly": "Utilisez uniquement http:// ou https://.",
|
||||
"loginFailed": "Échec de la connexion",
|
||||
"invalidCredentials": "Nom d'utilisateur ou mot de passe invalide. Réessayez.",
|
||||
"serverRedirectingHttps": "Le serveur redirige les requêtes. Vérifiez la configuration HTTPS.",
|
||||
"unableToConnectServer": "Impossible de se connecter au serveur. Vérifiez votre connexion.",
|
||||
"requestTimedOut": "Délai d'attente dépassé. Réessayez.",
|
||||
"genericSignInFailed": "Connexion impossible. Vérifiez vos identifiants et le serveur.",
|
||||
"skip": "Ignorer",
|
||||
"next": "Suivant",
|
||||
"done": "Terminé",
|
||||
"onboardStartTitle": "Commencer une conversation",
|
||||
"onboardStartSubtitle": "Choisissez un modèle puis commencez à écrire. Touchez Nouveau chat à tout moment.",
|
||||
"onboardStartBullet1": "Touchez le nom du modèle en haut pour changer",
|
||||
"onboardStartBullet2": "Utilisez Nouveau chat pour réinitialiser le contexte",
|
||||
"onboardAttachTitle": "Ajouter du contexte",
|
||||
"onboardAttachSubtitle": "Améliorez les réponses en ajoutant des fichiers ou des images.",
|
||||
"onboardAttachBullet1": "Fichiers : PDF, documents, jeux de données",
|
||||
"onboardAttachBullet2": "Images : photos ou captures d'écran",
|
||||
"onboardSpeakTitle": "Parlez naturellement",
|
||||
"onboardSpeakSubtitle": "Touchez le micro pour dicter avec retour visuel.",
|
||||
"onboardSpeakBullet1": "Arrêtez à tout moment ; le texte partiel est conservé",
|
||||
"onboardSpeakBullet2": "Idéal pour des notes rapides ou de longs prompts",
|
||||
"onboardQuickTitle": "Actions rapides",
|
||||
"onboardQuickSubtitle": "Utilisez le menu en haut à gauche pour ouvrir la liste des chats et la navigation.",
|
||||
"onboardQuickBullet1": "Touchez le menu pour ouvrir les chats et la navigation",
|
||||
"onboardQuickBullet2": "Accédez rapidement à Nouveau chat, Fichiers ou Profil"
|
||||
,
|
||||
"addAttachment": "Ajouter une pièce jointe",
|
||||
"tools": "Outils",
|
||||
"voiceInput": "Entrée vocale",
|
||||
"messageInputLabel": "Saisie du message",
|
||||
"messageInputHint": "Saisissez votre message",
|
||||
"messageHintText": "Message...",
|
||||
"stopGenerating": "Arrêter la génération",
|
||||
"send": "Envoyer",
|
||||
"sendMessage": "Envoyer le message",
|
||||
"file": "Fichier",
|
||||
"photo": "Photo",
|
||||
"camera": "Appareil photo",
|
||||
"apiUnavailable": "Service API indisponible",
|
||||
"unableToLoadImage": "Impossible de charger l'image",
|
||||
"notAnImageFile": "Ce n'est pas un fichier image : {fileName}",
|
||||
"failedToLoadImage": "Échec du chargement de l'image : {error}",
|
||||
"invalidDataUrl": "Format d'URL de données invalide",
|
||||
"failedToDecodeImage": "Échec du décodage de l'image",
|
||||
"invalidImageFormat": "Format d'image invalide",
|
||||
"emptyImageData": "Données d'image vides"
|
||||
,
|
||||
"offlineBanner": "Vous êtes hors ligne. Certaines fonctions peuvent être limitées.",
|
||||
"featureRequiresInternet": "Cette fonctionnalité nécessite une connexion Internet",
|
||||
"messagesWillSendWhenOnline": "Les messages seront envoyés lorsque vous serez de nouveau en ligne",
|
||||
"confirm": "Confirmer",
|
||||
"cancel": "Annuler"
|
||||
,
|
||||
"ok": "OK",
|
||||
"inputField": "Champ de saisie",
|
||||
"captureDocumentOrImage": "Capturer un document ou une image",
|
||||
"checkConnection": "Vérifier la connexion",
|
||||
"openSettings": "Ouvrir les réglages",
|
||||
"chooseDifferentFile": "Choisir un autre fichier",
|
||||
"goBack": "Retour",
|
||||
"technicalDetails": "Détails techniques"
|
||||
}
|
||||
145
lib/l10n/app_it.arb
Normal file
145
lib/l10n/app_it.arb
Normal file
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"@@locale": "it",
|
||||
"appTitle": "Conduit",
|
||||
"initializationFailed": "Inizializzazione non riuscita",
|
||||
"retry": "Riprova",
|
||||
"back": "Indietro",
|
||||
"you": "Tu",
|
||||
"loadingProfile": "Caricamento profilo...",
|
||||
"unableToLoadProfile": "Impossibile caricare il profilo",
|
||||
"pleaseCheckConnection": "Controlla la connessione e riprova",
|
||||
"account": "Account",
|
||||
"signOut": "Esci",
|
||||
"endYourSession": "Termina la sessione",
|
||||
"defaultModel": "Modello predefinito",
|
||||
"autoSelect": "Selezione automatica",
|
||||
"loadingModels": "Caricamento modelli...",
|
||||
"failedToLoadModels": "Impossibile caricare i modelli",
|
||||
"availableModels": "Modelli disponibili",
|
||||
"noResults": "Nessun risultato",
|
||||
"searchModels": "Cerca modelli...",
|
||||
"errorMessage": "Qualcosa è andato storto. Riprova.",
|
||||
"loginButton": "Accedi",
|
||||
"menuItem": "Impostazioni",
|
||||
"dynamicContentWithPlaceholder": "Benvenuto, {name}!",
|
||||
"itemsCount": "{count, plural, =0{Nessun elemento} one{1 elemento} other{{count} elementi}}",
|
||||
"closeButtonSemantic": "Chiudi",
|
||||
"loadingContent": "Caricamento contenuto",
|
||||
"noItems": "Nessun elemento",
|
||||
"noItemsToDisplay": "Nessun elemento da visualizzare",
|
||||
"loadMore": "Carica altro",
|
||||
"workspace": "Spazio di lavoro",
|
||||
"recentFiles": "File recenti",
|
||||
"knowledgeBase": "Base di conoscenza",
|
||||
"noFilesYet": "Ancora nessun file",
|
||||
"uploadDocsPrompt": "Carica documenti da usare nelle conversazioni con Conduit",
|
||||
"uploadFirstFile": "Carica il tuo primo file",
|
||||
"knowledgeBaseEmpty": "La base di conoscenza è vuota",
|
||||
"createCollectionsPrompt": "Crea raccolte di documenti correlati per un rapido riferimento",
|
||||
"chooseSourcePhoto": "Scegli origine",
|
||||
"takePhoto": "Scatta una foto",
|
||||
"chooseFromGallery": "Scegli dalle foto",
|
||||
"document": "Documento",
|
||||
"documentHint": "File PDF, Word o di testo",
|
||||
"uploadFileTitle": "Carica file",
|
||||
"fileUploadComingSoon": "Il caricamento file per {type} arriverà presto!",
|
||||
"kbCreationComingSoon": "La creazione della base di conoscenza arriverà presto!",
|
||||
"backToServerSetup": "Torna alla configurazione del server",
|
||||
"connectedToServer": "Connesso al server",
|
||||
"signIn": "Accedi",
|
||||
"enterCredentials": "Inserisci le credenziali per accedere alle conversazioni IA",
|
||||
"credentials": "Credenziali",
|
||||
"apiKey": "Chiave API",
|
||||
"usernameOrEmail": "Username o e‑mail",
|
||||
"password": "Password",
|
||||
"signInWithApiKey": "Accedi con chiave API",
|
||||
"connectToServer": "Connetti al server",
|
||||
"enterServerAddress": "Inserisci l'indirizzo del server Open-WebUI per iniziare",
|
||||
"serverUrl": "URL del server",
|
||||
"serverUrlHint": "https://tuo-server.com",
|
||||
"enterServerUrlSemantic": "Inserisci l'URL o l'indirizzo IP del server",
|
||||
"headerName": "Nome header",
|
||||
"headerValue": "Valore header",
|
||||
"headerValueHint": "api-key-123 o token Bearer",
|
||||
"addHeader": "Aggiungi header",
|
||||
"maximumHeadersReached": "Numero massimo raggiunto",
|
||||
"removeHeader": "Rimuovi header",
|
||||
"connecting": "Connessione in corso...",
|
||||
"connectToServerButton": "Connetti al server",
|
||||
"demoModeActive": "Modalità demo attiva",
|
||||
"skipServerSetupTryDemo": "Salta configurazione server e prova la demo",
|
||||
"enterDemo": "Entra in demo",
|
||||
"demoBadge": "Demo",
|
||||
"serverNotOpenWebUI": "Questo non sembra un server Open-WebUI.",
|
||||
"serverUrlEmpty": "L'URL del server non può essere vuoto",
|
||||
"invalidUrlFormat": "Formato URL non valido. Controlla l'input.",
|
||||
"onlyHttpHttps": "Sono supportati solo i protocolli HTTP e HTTPS.",
|
||||
"serverAddressRequired": "Indirizzo server richiesto (es. 192.168.1.10 o example.com).",
|
||||
"portRange": "La porta deve essere tra 1 e 65535.",
|
||||
"invalidIpFormat": "Formato IP non valido. Esempio: 192.168.1.10.",
|
||||
"couldNotConnectGeneric": "Impossibile connettersi. Verifica l'indirizzo e riprova.",
|
||||
"weCouldntReachServer": "Impossibile raggiungere il server. Verifica connessione e stato del server.",
|
||||
"connectionTimedOut": "Tempo scaduto. Il server potrebbe essere occupato o bloccato.",
|
||||
"useHttpOrHttpsOnly": "Usa solo http:// o https://.",
|
||||
"loginFailed": "Accesso non riuscito",
|
||||
"invalidCredentials": "Nome utente o password non validi. Riprova.",
|
||||
"serverRedirectingHttps": "Il server sta reindirizzando. Controlla la configurazione HTTPS.",
|
||||
"unableToConnectServer": "Impossibile connettersi al server. Controlla la connessione.",
|
||||
"requestTimedOut": "Richiesta scaduta. Riprova.",
|
||||
"genericSignInFailed": "Impossibile accedere. Controlla credenziali e server.",
|
||||
"skip": "Salta",
|
||||
"next": "Avanti",
|
||||
"done": "Fatto",
|
||||
"onboardStartTitle": "Inizia una conversazione",
|
||||
"onboardStartSubtitle": "Scegli un modello e inizia a scrivere. Tocca Nuova chat in qualsiasi momento.",
|
||||
"onboardStartBullet1": "Tocca il nome del modello in alto per cambiare",
|
||||
"onboardStartBullet2": "Usa Nuova chat per azzerare il contesto",
|
||||
"onboardAttachTitle": "Aggiungi contesto",
|
||||
"onboardAttachSubtitle": "Migliora le risposte aggiungendo file o immagini.",
|
||||
"onboardAttachBullet1": "File: PDF, documenti, dataset",
|
||||
"onboardAttachBullet2": "Immagini: foto o screenshot",
|
||||
"onboardSpeakTitle": "Parla in modo naturale",
|
||||
"onboardSpeakSubtitle": "Tocca il microfono per dettare con feedback visivo.",
|
||||
"onboardSpeakBullet1": "Interrompi in qualsiasi momento; il testo parziale viene mantenuto",
|
||||
"onboardSpeakBullet2": "Ottimo per note rapide o prompt lunghi",
|
||||
"onboardQuickTitle": "Azioni rapide",
|
||||
"onboardQuickSubtitle": "Usa il menu in alto a sinistra per aprire l'elenco chat e la navigazione.",
|
||||
"onboardQuickBullet1": "Tocca il menu per aprire chat e navigazione",
|
||||
"onboardQuickBullet2": "Vai subito a Nuova chat, File o Profilo"
|
||||
,
|
||||
"addAttachment": "Aggiungi allegato",
|
||||
"tools": "Strumenti",
|
||||
"voiceInput": "Input vocale",
|
||||
"messageInputLabel": "Input messaggio",
|
||||
"messageInputHint": "Scrivi il tuo messaggio",
|
||||
"messageHintText": "Messaggio...",
|
||||
"stopGenerating": "Interrompi generazione",
|
||||
"send": "Invia",
|
||||
"sendMessage": "Invia messaggio",
|
||||
"file": "File",
|
||||
"photo": "Foto",
|
||||
"camera": "Fotocamera",
|
||||
"apiUnavailable": "Servizio API non disponibile",
|
||||
"unableToLoadImage": "Impossibile caricare l'immagine",
|
||||
"notAnImageFile": "Non è un file immagine: {fileName}",
|
||||
"failedToLoadImage": "Impossibile caricare l'immagine: {error}",
|
||||
"invalidDataUrl": "Formato data URL non valido",
|
||||
"failedToDecodeImage": "Impossibile decodificare l'immagine",
|
||||
"invalidImageFormat": "Formato immagine non valido",
|
||||
"emptyImageData": "Dati immagine vuoti"
|
||||
,
|
||||
"offlineBanner": "Sei offline. Alcune funzioni potrebbero essere limitate.",
|
||||
"featureRequiresInternet": "Questa funzione richiede una connessione Internet",
|
||||
"messagesWillSendWhenOnline": "I messaggi verranno inviati quando tornerai online",
|
||||
"confirm": "Conferma",
|
||||
"cancel": "Annulla"
|
||||
,
|
||||
"ok": "OK",
|
||||
"inputField": "Campo di input",
|
||||
"captureDocumentOrImage": "Acquisisci un documento o un'immagine",
|
||||
"checkConnection": "Controlla connessione",
|
||||
"openSettings": "Apri impostazioni",
|
||||
"chooseDifferentFile": "Scegli un altro file",
|
||||
"goBack": "Indietro",
|
||||
"technicalDetails": "Dettagli tecnici"
|
||||
}
|
||||
969
lib/l10n/app_localizations.dart
Normal file
969
lib/l10n/app_localizations.dart
Normal file
@@ -0,0 +1,969 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
|
||||
import 'app_localizations_de.dart';
|
||||
import 'app_localizations_en.dart';
|
||||
import 'app_localizations_fr.dart';
|
||||
import 'app_localizations_it.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||||
/// returned by `AppLocalizations.of(context)`.
|
||||
///
|
||||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||||
/// `localizationDelegates` list, and the locales they support in the app's
|
||||
/// `supportedLocales` list. For example:
|
||||
///
|
||||
/// ```dart
|
||||
/// import 'l10n/app_localizations.dart';
|
||||
///
|
||||
/// return MaterialApp(
|
||||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||||
/// home: MyApplicationHome(),
|
||||
/// );
|
||||
/// ```
|
||||
///
|
||||
/// ## Update pubspec.yaml
|
||||
///
|
||||
/// Please make sure to update your pubspec.yaml to include the following
|
||||
/// packages:
|
||||
///
|
||||
/// ```yaml
|
||||
/// dependencies:
|
||||
/// # Internationalization support.
|
||||
/// flutter_localizations:
|
||||
/// sdk: flutter
|
||||
/// intl: any # Use the pinned version from flutter_localizations
|
||||
///
|
||||
/// # Rest of dependencies
|
||||
/// ```
|
||||
///
|
||||
/// ## iOS Applications
|
||||
///
|
||||
/// iOS applications define key application metadata, including supported
|
||||
/// locales, in an Info.plist file that is built into the application bundle.
|
||||
/// To configure the locales supported by your app, you’ll need to edit this
|
||||
/// file.
|
||||
///
|
||||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||||
/// project’s Runner folder.
|
||||
///
|
||||
/// Next, select the Information Property List item, select Add Item from the
|
||||
/// Editor menu, then select Localizations from the pop-up menu.
|
||||
///
|
||||
/// Select and expand the newly-created Localizations item then, for each
|
||||
/// locale your application supports, add a new item and select the locale
|
||||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||||
/// property.
|
||||
abstract class AppLocalizations {
|
||||
AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||||
|
||||
final String localeName;
|
||||
|
||||
static AppLocalizations? of(BuildContext context) {
|
||||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||||
}
|
||||
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate();
|
||||
|
||||
/// A list of this localizations delegate along with the default localizations
|
||||
/// delegates.
|
||||
///
|
||||
/// Returns a list of localizations delegates containing this delegate along with
|
||||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||||
/// and GlobalWidgetsLocalizations.delegate.
|
||||
///
|
||||
/// Additional delegates can be added by appending to this list in
|
||||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||||
/// of delegates is preferred or required.
|
||||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[
|
||||
delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
];
|
||||
|
||||
/// A list of this localizations delegate's supported locales.
|
||||
static const List<Locale> supportedLocales = <Locale>[
|
||||
Locale('de'),
|
||||
Locale('en'),
|
||||
Locale('fr'),
|
||||
Locale('it')
|
||||
];
|
||||
|
||||
/// No description provided for @appTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Conduit'**
|
||||
String get appTitle;
|
||||
|
||||
/// No description provided for @initializationFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Initialization Failed'**
|
||||
String get initializationFailed;
|
||||
|
||||
/// No description provided for @retry.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Retry'**
|
||||
String get retry;
|
||||
|
||||
/// No description provided for @back.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Back'**
|
||||
String get back;
|
||||
|
||||
/// No description provided for @you.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You'**
|
||||
String get you;
|
||||
|
||||
/// No description provided for @loadingProfile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Loading profile...'**
|
||||
String get loadingProfile;
|
||||
|
||||
/// No description provided for @unableToLoadProfile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Unable to load profile'**
|
||||
String get unableToLoadProfile;
|
||||
|
||||
/// No description provided for @pleaseCheckConnection.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Please check your connection and try again'**
|
||||
String get pleaseCheckConnection;
|
||||
|
||||
/// No description provided for @account.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Account'**
|
||||
String get account;
|
||||
|
||||
/// No description provided for @signOut.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sign Out'**
|
||||
String get signOut;
|
||||
|
||||
/// No description provided for @endYourSession.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'End your session'**
|
||||
String get endYourSession;
|
||||
|
||||
/// No description provided for @defaultModel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Default Model'**
|
||||
String get defaultModel;
|
||||
|
||||
/// No description provided for @autoSelect.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Auto-select'**
|
||||
String get autoSelect;
|
||||
|
||||
/// No description provided for @loadingModels.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Loading models...'**
|
||||
String get loadingModels;
|
||||
|
||||
/// No description provided for @failedToLoadModels.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to load models'**
|
||||
String get failedToLoadModels;
|
||||
|
||||
/// No description provided for @availableModels.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Available Models'**
|
||||
String get availableModels;
|
||||
|
||||
/// No description provided for @noResults.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No results'**
|
||||
String get noResults;
|
||||
|
||||
/// No description provided for @searchModels.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Search models...'**
|
||||
String get searchModels;
|
||||
|
||||
/// No description provided for @errorMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Something went wrong. Please try again.'**
|
||||
String get errorMessage;
|
||||
|
||||
/// No description provided for @loginButton.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Login'**
|
||||
String get loginButton;
|
||||
|
||||
/// No description provided for @menuItem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Settings'**
|
||||
String get menuItem;
|
||||
|
||||
/// Greeting message with a dynamic user name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Welcome, {name}!'**
|
||||
String dynamicContentWithPlaceholder(String name);
|
||||
|
||||
/// Pluralized count of items.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =0{No items} one{1 item} other{{count} items}}'**
|
||||
String itemsCount(int count);
|
||||
|
||||
/// No description provided for @closeButtonSemantic.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Close'**
|
||||
String get closeButtonSemantic;
|
||||
|
||||
/// No description provided for @loadingContent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Loading content'**
|
||||
String get loadingContent;
|
||||
|
||||
/// No description provided for @noItems.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No items'**
|
||||
String get noItems;
|
||||
|
||||
/// No description provided for @noItemsToDisplay.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No items to display'**
|
||||
String get noItemsToDisplay;
|
||||
|
||||
/// No description provided for @loadMore.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Load More'**
|
||||
String get loadMore;
|
||||
|
||||
/// No description provided for @workspace.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Workspace'**
|
||||
String get workspace;
|
||||
|
||||
/// No description provided for @recentFiles.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Recent Files'**
|
||||
String get recentFiles;
|
||||
|
||||
/// No description provided for @knowledgeBase.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Knowledge Base'**
|
||||
String get knowledgeBase;
|
||||
|
||||
/// No description provided for @noFilesYet.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No files yet'**
|
||||
String get noFilesYet;
|
||||
|
||||
/// No description provided for @uploadDocsPrompt.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Upload documents to reference in your conversations with Conduit'**
|
||||
String get uploadDocsPrompt;
|
||||
|
||||
/// No description provided for @uploadFirstFile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Upload your first file'**
|
||||
String get uploadFirstFile;
|
||||
|
||||
/// No description provided for @knowledgeBaseEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Knowledge base is empty'**
|
||||
String get knowledgeBaseEmpty;
|
||||
|
||||
/// No description provided for @createCollectionsPrompt.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Create collections of related documents for easy reference'**
|
||||
String get createCollectionsPrompt;
|
||||
|
||||
/// No description provided for @chooseSourcePhoto.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose your source'**
|
||||
String get chooseSourcePhoto;
|
||||
|
||||
/// No description provided for @takePhoto.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Take a photo'**
|
||||
String get takePhoto;
|
||||
|
||||
/// No description provided for @chooseFromGallery.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose from your photos'**
|
||||
String get chooseFromGallery;
|
||||
|
||||
/// No description provided for @document.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Document'**
|
||||
String get document;
|
||||
|
||||
/// No description provided for @documentHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'PDF, Word, or text file'**
|
||||
String get documentHint;
|
||||
|
||||
/// No description provided for @uploadFileTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Upload File'**
|
||||
String get uploadFileTitle;
|
||||
|
||||
/// Temporary message for upcoming upload feature by type
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'File upload for {type} is coming soon!'**
|
||||
String fileUploadComingSoon(String type);
|
||||
|
||||
/// No description provided for @kbCreationComingSoon.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Knowledge base creation is coming soon!'**
|
||||
String get kbCreationComingSoon;
|
||||
|
||||
/// No description provided for @backToServerSetup.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Back to server setup'**
|
||||
String get backToServerSetup;
|
||||
|
||||
/// No description provided for @connectedToServer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connected to Server'**
|
||||
String get connectedToServer;
|
||||
|
||||
/// No description provided for @signIn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sign In'**
|
||||
String get signIn;
|
||||
|
||||
/// No description provided for @enterCredentials.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your credentials to access your AI conversations'**
|
||||
String get enterCredentials;
|
||||
|
||||
/// No description provided for @credentials.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Credentials'**
|
||||
String get credentials;
|
||||
|
||||
/// No description provided for @apiKey.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'API Key'**
|
||||
String get apiKey;
|
||||
|
||||
/// No description provided for @usernameOrEmail.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Username or Email'**
|
||||
String get usernameOrEmail;
|
||||
|
||||
/// No description provided for @password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password'**
|
||||
String get password;
|
||||
|
||||
/// No description provided for @signInWithApiKey.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sign in with API Key'**
|
||||
String get signInWithApiKey;
|
||||
|
||||
/// No description provided for @connectToServer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connect to Server'**
|
||||
String get connectToServer;
|
||||
|
||||
/// No description provided for @enterServerAddress.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your Open-WebUI server address to get started'**
|
||||
String get enterServerAddress;
|
||||
|
||||
/// No description provided for @serverUrl.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server URL'**
|
||||
String get serverUrl;
|
||||
|
||||
/// No description provided for @serverUrlHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'https://your-server.com'**
|
||||
String get serverUrlHint;
|
||||
|
||||
/// No description provided for @enterServerUrlSemantic.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your server URL or IP address'**
|
||||
String get enterServerUrlSemantic;
|
||||
|
||||
/// No description provided for @headerName.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Header Name'**
|
||||
String get headerName;
|
||||
|
||||
/// No description provided for @headerValue.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Header Value'**
|
||||
String get headerValue;
|
||||
|
||||
/// No description provided for @headerValueHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'api-key-123 or Bearer token'**
|
||||
String get headerValueHint;
|
||||
|
||||
/// No description provided for @addHeader.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add header'**
|
||||
String get addHeader;
|
||||
|
||||
/// No description provided for @maximumHeadersReached.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Maximum headers reached'**
|
||||
String get maximumHeadersReached;
|
||||
|
||||
/// No description provided for @removeHeader.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Remove header'**
|
||||
String get removeHeader;
|
||||
|
||||
/// No description provided for @connecting.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connecting...'**
|
||||
String get connecting;
|
||||
|
||||
/// No description provided for @connectToServerButton.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connect to Server'**
|
||||
String get connectToServerButton;
|
||||
|
||||
/// No description provided for @demoModeActive.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Demo Mode Active'**
|
||||
String get demoModeActive;
|
||||
|
||||
/// No description provided for @skipServerSetupTryDemo.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Skip server setup and try the demo'**
|
||||
String get skipServerSetupTryDemo;
|
||||
|
||||
/// No description provided for @enterDemo.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter Demo'**
|
||||
String get enterDemo;
|
||||
|
||||
/// No description provided for @demoBadge.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Demo'**
|
||||
String get demoBadge;
|
||||
|
||||
/// No description provided for @serverNotOpenWebUI.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This does not appear to be an Open-WebUI server.'**
|
||||
String get serverNotOpenWebUI;
|
||||
|
||||
/// No description provided for @serverUrlEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server URL cannot be empty'**
|
||||
String get serverUrlEmpty;
|
||||
|
||||
/// No description provided for @invalidUrlFormat.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid URL format. Please check your input.'**
|
||||
String get invalidUrlFormat;
|
||||
|
||||
/// No description provided for @onlyHttpHttps.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Only HTTP and HTTPS protocols are supported.'**
|
||||
String get onlyHttpHttps;
|
||||
|
||||
/// No description provided for @serverAddressRequired.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server address is required (e.g., 192.168.1.10 or example.com).'**
|
||||
String get serverAddressRequired;
|
||||
|
||||
/// No description provided for @portRange.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Port must be between 1 and 65535.'**
|
||||
String get portRange;
|
||||
|
||||
/// No description provided for @invalidIpFormat.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid IP address format. Use format like 192.168.1.10.'**
|
||||
String get invalidIpFormat;
|
||||
|
||||
/// No description provided for @couldNotConnectGeneric.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Couldn\'t connect. Double-check the address and try again.'**
|
||||
String get couldNotConnectGeneric;
|
||||
|
||||
/// No description provided for @weCouldntReachServer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'We couldn\'t reach the server. Check your connection and that the server is running.'**
|
||||
String get weCouldntReachServer;
|
||||
|
||||
/// No description provided for @connectionTimedOut.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connection timed out. The server might be busy or blocked by a firewall.'**
|
||||
String get connectionTimedOut;
|
||||
|
||||
/// No description provided for @useHttpOrHttpsOnly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use http:// or https:// only.'**
|
||||
String get useHttpOrHttpsOnly;
|
||||
|
||||
/// No description provided for @loginFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Login failed'**
|
||||
String get loginFailed;
|
||||
|
||||
/// No description provided for @invalidCredentials.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid username or password. Please try again.'**
|
||||
String get invalidCredentials;
|
||||
|
||||
/// No description provided for @serverRedirectingHttps.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The server is redirecting requests. Check your server\'s HTTPS configuration.'**
|
||||
String get serverRedirectingHttps;
|
||||
|
||||
/// No description provided for @unableToConnectServer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Unable to connect to server. Please check your connection.'**
|
||||
String get unableToConnectServer;
|
||||
|
||||
/// No description provided for @requestTimedOut.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The request timed out. Please try again.'**
|
||||
String get requestTimedOut;
|
||||
|
||||
/// No description provided for @genericSignInFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'We couldn\'t sign you in. Check your credentials and server settings.'**
|
||||
String get genericSignInFailed;
|
||||
|
||||
/// No description provided for @skip.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Skip'**
|
||||
String get skip;
|
||||
|
||||
/// No description provided for @next.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Next'**
|
||||
String get next;
|
||||
|
||||
/// No description provided for @done.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Done'**
|
||||
String get done;
|
||||
|
||||
/// No description provided for @onboardStartTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Start a conversation'**
|
||||
String get onboardStartTitle;
|
||||
|
||||
/// No description provided for @onboardStartSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose a model, then type below to begin. Tap New Chat anytime.'**
|
||||
String get onboardStartSubtitle;
|
||||
|
||||
/// No description provided for @onboardStartBullet1.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap the model name in the top bar to switch models'**
|
||||
String get onboardStartBullet1;
|
||||
|
||||
/// No description provided for @onboardStartBullet2.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use New Chat to reset context'**
|
||||
String get onboardStartBullet2;
|
||||
|
||||
/// No description provided for @onboardAttachTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Attach context'**
|
||||
String get onboardAttachTitle;
|
||||
|
||||
/// No description provided for @onboardAttachSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Ground responses by adding files or images.'**
|
||||
String get onboardAttachSubtitle;
|
||||
|
||||
/// No description provided for @onboardAttachBullet1.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Files: PDFs, docs, datasets'**
|
||||
String get onboardAttachBullet1;
|
||||
|
||||
/// No description provided for @onboardAttachBullet2.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Images: photos or screenshots'**
|
||||
String get onboardAttachBullet2;
|
||||
|
||||
/// No description provided for @onboardSpeakTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Speak naturally'**
|
||||
String get onboardSpeakTitle;
|
||||
|
||||
/// No description provided for @onboardSpeakSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap the mic to dictate with live waveform feedback.'**
|
||||
String get onboardSpeakSubtitle;
|
||||
|
||||
/// No description provided for @onboardSpeakBullet1.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Stop anytime; partial text is preserved'**
|
||||
String get onboardSpeakBullet1;
|
||||
|
||||
/// No description provided for @onboardSpeakBullet2.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Great for quick notes or long prompts'**
|
||||
String get onboardSpeakBullet2;
|
||||
|
||||
/// No description provided for @onboardQuickTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Quick actions'**
|
||||
String get onboardQuickTitle;
|
||||
|
||||
/// No description provided for @onboardQuickSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use the top‑left menu to open the chats list and navigation.'**
|
||||
String get onboardQuickSubtitle;
|
||||
|
||||
/// No description provided for @onboardQuickBullet1.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap the menu to open the chats list and navigation'**
|
||||
String get onboardQuickBullet1;
|
||||
|
||||
/// No description provided for @onboardQuickBullet2.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Jump instantly to New Chat, Files, or Profile'**
|
||||
String get onboardQuickBullet2;
|
||||
|
||||
/// No description provided for @addAttachment.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add attachment'**
|
||||
String get addAttachment;
|
||||
|
||||
/// No description provided for @tools.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tools'**
|
||||
String get tools;
|
||||
|
||||
/// No description provided for @voiceInput.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Voice input'**
|
||||
String get voiceInput;
|
||||
|
||||
/// No description provided for @messageInputLabel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Message input'**
|
||||
String get messageInputLabel;
|
||||
|
||||
/// No description provided for @messageInputHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Type your message'**
|
||||
String get messageInputHint;
|
||||
|
||||
/// No description provided for @messageHintText.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Message...'**
|
||||
String get messageHintText;
|
||||
|
||||
/// No description provided for @stopGenerating.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Stop generating'**
|
||||
String get stopGenerating;
|
||||
|
||||
/// No description provided for @send.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Send'**
|
||||
String get send;
|
||||
|
||||
/// No description provided for @sendMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Send message'**
|
||||
String get sendMessage;
|
||||
|
||||
/// No description provided for @file.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'File'**
|
||||
String get file;
|
||||
|
||||
/// No description provided for @photo.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Photo'**
|
||||
String get photo;
|
||||
|
||||
/// No description provided for @camera.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Camera'**
|
||||
String get camera;
|
||||
|
||||
/// No description provided for @apiUnavailable.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'API service not available'**
|
||||
String get apiUnavailable;
|
||||
|
||||
/// No description provided for @unableToLoadImage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Unable to load image'**
|
||||
String get unableToLoadImage;
|
||||
|
||||
/// No description provided for @notAnImageFile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Not an image file: {fileName}'**
|
||||
String notAnImageFile(String fileName);
|
||||
|
||||
/// No description provided for @failedToLoadImage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to load image: {error}'**
|
||||
String failedToLoadImage(String error);
|
||||
|
||||
/// No description provided for @invalidDataUrl.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid data URL format'**
|
||||
String get invalidDataUrl;
|
||||
|
||||
/// No description provided for @failedToDecodeImage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to decode image'**
|
||||
String get failedToDecodeImage;
|
||||
|
||||
/// No description provided for @invalidImageFormat.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid image format'**
|
||||
String get invalidImageFormat;
|
||||
|
||||
/// No description provided for @emptyImageData.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Empty image data'**
|
||||
String get emptyImageData;
|
||||
|
||||
/// No description provided for @offlineBanner.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You\'re offline. Some features may be limited.'**
|
||||
String get offlineBanner;
|
||||
|
||||
/// No description provided for @featureRequiresInternet.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This feature requires an internet connection'**
|
||||
String get featureRequiresInternet;
|
||||
|
||||
/// No description provided for @messagesWillSendWhenOnline.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Messages will be sent when you\'re back online'**
|
||||
String get messagesWillSendWhenOnline;
|
||||
|
||||
/// No description provided for @confirm.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Confirm'**
|
||||
String get confirm;
|
||||
|
||||
/// No description provided for @cancel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Cancel'**
|
||||
String get cancel;
|
||||
|
||||
/// No description provided for @ok.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'OK'**
|
||||
String get ok;
|
||||
|
||||
/// No description provided for @inputField.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Input field'**
|
||||
String get inputField;
|
||||
|
||||
/// No description provided for @captureDocumentOrImage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Capture a document or image'**
|
||||
String get captureDocumentOrImage;
|
||||
|
||||
/// No description provided for @checkConnection.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Check Connection'**
|
||||
String get checkConnection;
|
||||
|
||||
/// No description provided for @openSettings.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Open Settings'**
|
||||
String get openSettings;
|
||||
|
||||
/// No description provided for @chooseDifferentFile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose Different File'**
|
||||
String get chooseDifferentFile;
|
||||
|
||||
/// No description provided for @goBack.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Go Back'**
|
||||
String get goBack;
|
||||
|
||||
/// No description provided for @technicalDetails.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Technical Details'**
|
||||
String get technicalDetails;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||||
const _AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
Future<AppLocalizations> load(Locale locale) {
|
||||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||||
}
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) => <String>['de', 'en', 'fr', 'it'].contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
|
||||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
|
||||
|
||||
// Lookup logic when only language code is specified.
|
||||
switch (locale.languageCode) {
|
||||
case 'de': return AppLocalizationsDe();
|
||||
case 'en': return AppLocalizationsEn();
|
||||
case 'fr': return AppLocalizationsFr();
|
||||
case 'it': return AppLocalizationsIt();
|
||||
}
|
||||
|
||||
throw FlutterError(
|
||||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||||
'an issue with the localizations generation tool. Please file an issue '
|
||||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||||
'that was used.'
|
||||
);
|
||||
}
|
||||
444
lib/l10n/app_localizations_de.dart
Normal file
444
lib/l10n/app_localizations_de.dart
Normal file
@@ -0,0 +1,444 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for German (`de`).
|
||||
class AppLocalizationsDe extends AppLocalizations {
|
||||
AppLocalizationsDe([String locale = 'de']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'Conduit';
|
||||
|
||||
@override
|
||||
String get initializationFailed => 'Initialisierung fehlgeschlagen';
|
||||
|
||||
@override
|
||||
String get retry => 'Erneut versuchen';
|
||||
|
||||
@override
|
||||
String get back => 'Zurück';
|
||||
|
||||
@override
|
||||
String get you => 'Du';
|
||||
|
||||
@override
|
||||
String get loadingProfile => 'Profil wird geladen...';
|
||||
|
||||
@override
|
||||
String get unableToLoadProfile => 'Profil konnte nicht geladen werden';
|
||||
|
||||
@override
|
||||
String get pleaseCheckConnection => 'Bitte überprüfe deine Verbindung und versuche es erneut';
|
||||
|
||||
@override
|
||||
String get account => 'Konto';
|
||||
|
||||
@override
|
||||
String get signOut => 'Abmelden';
|
||||
|
||||
@override
|
||||
String get endYourSession => 'Sitzung beenden';
|
||||
|
||||
@override
|
||||
String get defaultModel => 'Standardmodell';
|
||||
|
||||
@override
|
||||
String get autoSelect => 'Automatische Auswahl';
|
||||
|
||||
@override
|
||||
String get loadingModels => 'Modelle werden geladen...';
|
||||
|
||||
@override
|
||||
String get failedToLoadModels => 'Modelle konnten nicht geladen werden';
|
||||
|
||||
@override
|
||||
String get availableModels => 'Verfügbare Modelle';
|
||||
|
||||
@override
|
||||
String get noResults => 'Keine Ergebnisse';
|
||||
|
||||
@override
|
||||
String get searchModels => 'Modelle suchen...';
|
||||
|
||||
@override
|
||||
String get errorMessage => 'Etwas ist schief gelaufen. Bitte versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get loginButton => 'Anmelden';
|
||||
|
||||
@override
|
||||
String get menuItem => 'Einstellungen';
|
||||
|
||||
@override
|
||||
String dynamicContentWithPlaceholder(String name) {
|
||||
return 'Willkommen, $name!';
|
||||
}
|
||||
|
||||
@override
|
||||
String itemsCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count Elemente',
|
||||
one: '1 Element',
|
||||
zero: 'Keine Elemente',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get closeButtonSemantic => 'Schließen';
|
||||
|
||||
@override
|
||||
String get loadingContent => 'Inhalt wird geladen';
|
||||
|
||||
@override
|
||||
String get noItems => 'Keine Elemente';
|
||||
|
||||
@override
|
||||
String get noItemsToDisplay => 'Keine Elemente zum Anzeigen';
|
||||
|
||||
@override
|
||||
String get loadMore => 'Mehr laden';
|
||||
|
||||
@override
|
||||
String get workspace => 'Arbeitsbereich';
|
||||
|
||||
@override
|
||||
String get recentFiles => 'Zuletzt verwendete Dateien';
|
||||
|
||||
@override
|
||||
String get knowledgeBase => 'Wissensdatenbank';
|
||||
|
||||
@override
|
||||
String get noFilesYet => 'Noch keine Dateien';
|
||||
|
||||
@override
|
||||
String get uploadDocsPrompt => 'Lade Dokumente hoch, um sie in deinen Unterhaltungen mit Conduit zu verwenden';
|
||||
|
||||
@override
|
||||
String get uploadFirstFile => 'Erste Datei hochladen';
|
||||
|
||||
@override
|
||||
String get knowledgeBaseEmpty => 'Wissensdatenbank ist leer';
|
||||
|
||||
@override
|
||||
String get createCollectionsPrompt => 'Erstelle Sammlungen verwandter Dokumente zur einfachen Referenz';
|
||||
|
||||
@override
|
||||
String get chooseSourcePhoto => 'Quelle auswählen';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Foto aufnehmen';
|
||||
|
||||
@override
|
||||
String get chooseFromGallery => 'Aus Fotos auswählen';
|
||||
|
||||
@override
|
||||
String get document => 'Dokument';
|
||||
|
||||
@override
|
||||
String get documentHint => 'PDF-, Word- oder Textdatei';
|
||||
|
||||
@override
|
||||
String get uploadFileTitle => 'Datei hochladen';
|
||||
|
||||
@override
|
||||
String fileUploadComingSoon(String type) {
|
||||
return 'Dateiupload für $type kommt bald!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get kbCreationComingSoon => 'Erstellung der Wissensdatenbank kommt bald!';
|
||||
|
||||
@override
|
||||
String get backToServerSetup => 'Zur Servereinrichtung zurück';
|
||||
|
||||
@override
|
||||
String get connectedToServer => 'Mit Server verbunden';
|
||||
|
||||
@override
|
||||
String get signIn => 'Anmelden';
|
||||
|
||||
@override
|
||||
String get enterCredentials => 'Gib deine Anmeldedaten ein, um auf deine KI-Unterhaltungen zuzugreifen';
|
||||
|
||||
@override
|
||||
String get credentials => 'Zugangsdaten';
|
||||
|
||||
@override
|
||||
String get apiKey => 'API-Schlüssel';
|
||||
|
||||
@override
|
||||
String get usernameOrEmail => 'Benutzername oder E‑Mail';
|
||||
|
||||
@override
|
||||
String get password => 'Passwort';
|
||||
|
||||
@override
|
||||
String get signInWithApiKey => 'Mit API-Schlüssel anmelden';
|
||||
|
||||
@override
|
||||
String get connectToServer => 'Mit Server verbinden';
|
||||
|
||||
@override
|
||||
String get enterServerAddress => 'Gib die Adresse deines Open-WebUI-Servers ein, um zu beginnen';
|
||||
|
||||
@override
|
||||
String get serverUrl => 'Server-URL';
|
||||
|
||||
@override
|
||||
String get serverUrlHint => 'https://dein-server.com';
|
||||
|
||||
@override
|
||||
String get enterServerUrlSemantic => 'Gib deine Server-URL oder IP-Adresse ein';
|
||||
|
||||
@override
|
||||
String get headerName => 'Header-Name';
|
||||
|
||||
@override
|
||||
String get headerValue => 'Header-Wert';
|
||||
|
||||
@override
|
||||
String get headerValueHint => 'api-key-123 oder Bearer-Token';
|
||||
|
||||
@override
|
||||
String get addHeader => 'Header hinzufügen';
|
||||
|
||||
@override
|
||||
String get maximumHeadersReached => 'Maximale Anzahl erreicht';
|
||||
|
||||
@override
|
||||
String get removeHeader => 'Header entfernen';
|
||||
|
||||
@override
|
||||
String get connecting => 'Verbindung wird hergestellt...';
|
||||
|
||||
@override
|
||||
String get connectToServerButton => 'Mit Server verbinden';
|
||||
|
||||
@override
|
||||
String get demoModeActive => 'Demo-Modus aktiv';
|
||||
|
||||
@override
|
||||
String get skipServerSetupTryDemo => 'Servereinrichtung überspringen und Demo testen';
|
||||
|
||||
@override
|
||||
String get enterDemo => 'Demo starten';
|
||||
|
||||
@override
|
||||
String get demoBadge => 'Demo';
|
||||
|
||||
@override
|
||||
String get serverNotOpenWebUI => 'Dies scheint kein Open-WebUI-Server zu sein.';
|
||||
|
||||
@override
|
||||
String get serverUrlEmpty => 'Server-URL darf nicht leer sein';
|
||||
|
||||
@override
|
||||
String get invalidUrlFormat => 'Ungültiges URL-Format. Bitte Eingabe prüfen.';
|
||||
|
||||
@override
|
||||
String get onlyHttpHttps => 'Nur HTTP- und HTTPS-Protokolle werden unterstützt.';
|
||||
|
||||
@override
|
||||
String get serverAddressRequired => 'Serveradresse erforderlich (z. B. 192.168.1.10 oder example.com).';
|
||||
|
||||
@override
|
||||
String get portRange => 'Port muss zwischen 1 und 65535 liegen.';
|
||||
|
||||
@override
|
||||
String get invalidIpFormat => 'Ungültiges IP-Format. Beispiel: 192.168.1.10.';
|
||||
|
||||
@override
|
||||
String get couldNotConnectGeneric => 'Verbindung fehlgeschlagen. Adresse prüfen und erneut versuchen.';
|
||||
|
||||
@override
|
||||
String get weCouldntReachServer => 'Server nicht erreichbar. Verbindung und Serverstatus prüfen.';
|
||||
|
||||
@override
|
||||
String get connectionTimedOut => 'Zeitüberschreitung. Server eventuell ausgelastet oder blockiert.';
|
||||
|
||||
@override
|
||||
String get useHttpOrHttpsOnly => 'Nur http:// oder https:// verwenden.';
|
||||
|
||||
@override
|
||||
String get loginFailed => 'Anmeldung fehlgeschlagen';
|
||||
|
||||
@override
|
||||
String get invalidCredentials => 'Ungültiger Benutzername oder Passwort. Bitte erneut versuchen.';
|
||||
|
||||
@override
|
||||
String get serverRedirectingHttps => 'Server leitet um. HTTPS-Konfiguration prüfen.';
|
||||
|
||||
@override
|
||||
String get unableToConnectServer => 'Verbindung zum Server nicht möglich. Bitte Verbindung prüfen.';
|
||||
|
||||
@override
|
||||
String get requestTimedOut => 'Zeitüberschreitung. Bitte erneut versuchen.';
|
||||
|
||||
@override
|
||||
String get genericSignInFailed => 'Anmeldung nicht möglich. Zugangsdaten und Server prüfen.';
|
||||
|
||||
@override
|
||||
String get skip => 'Überspringen';
|
||||
|
||||
@override
|
||||
String get next => 'Weiter';
|
||||
|
||||
@override
|
||||
String get done => 'Fertig';
|
||||
|
||||
@override
|
||||
String get onboardStartTitle => 'Unterhaltung starten';
|
||||
|
||||
@override
|
||||
String get onboardStartSubtitle => 'Wähle ein Modell und tippe los. Tippe jederzeit auf Neuer Chat.';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet1 => 'Modellname oben antippen, um zu wechseln';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet2 => 'Mit Neuer Chat den Kontext zurücksetzen';
|
||||
|
||||
@override
|
||||
String get onboardAttachTitle => 'Kontext anhängen';
|
||||
|
||||
@override
|
||||
String get onboardAttachSubtitle => 'Antworten mit Dateien oder Bildern untermauern.';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet1 => 'Dateien: PDFs, Dokumente, Datensätze';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet2 => 'Bilder: Fotos oder Screenshots';
|
||||
|
||||
@override
|
||||
String get onboardSpeakTitle => 'Natürlich sprechen';
|
||||
|
||||
@override
|
||||
String get onboardSpeakSubtitle => 'Auf das Mikro tippen, um zu diktieren.';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet1 => 'Jederzeit stoppen; Text bleibt erhalten';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet2 => 'Ideal für kurze Notizen oder lange Prompts';
|
||||
|
||||
@override
|
||||
String get onboardQuickTitle => 'Schnellaktionen';
|
||||
|
||||
@override
|
||||
String get onboardQuickSubtitle => 'Links oben das Menü für Chats und Navigation öffnen.';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet1 => 'Menü tippen, um Chats und Navigation zu öffnen';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet2 => 'Schnell zu Neuer Chat, Dateien oder Profil springen';
|
||||
|
||||
@override
|
||||
String get addAttachment => 'Anhang hinzufügen';
|
||||
|
||||
@override
|
||||
String get tools => 'Werkzeuge';
|
||||
|
||||
@override
|
||||
String get voiceInput => 'Spracheingabe';
|
||||
|
||||
@override
|
||||
String get messageInputLabel => 'Nachrichteneingabe';
|
||||
|
||||
@override
|
||||
String get messageInputHint => 'Nachricht eingeben';
|
||||
|
||||
@override
|
||||
String get messageHintText => 'Nachricht...';
|
||||
|
||||
@override
|
||||
String get stopGenerating => 'Generierung stoppen';
|
||||
|
||||
@override
|
||||
String get send => 'Senden';
|
||||
|
||||
@override
|
||||
String get sendMessage => 'Nachricht senden';
|
||||
|
||||
@override
|
||||
String get file => 'Datei';
|
||||
|
||||
@override
|
||||
String get photo => 'Foto';
|
||||
|
||||
@override
|
||||
String get camera => 'Kamera';
|
||||
|
||||
@override
|
||||
String get apiUnavailable => 'API-Dienst nicht verfügbar';
|
||||
|
||||
@override
|
||||
String get unableToLoadImage => 'Bild kann nicht geladen werden';
|
||||
|
||||
@override
|
||||
String notAnImageFile(String fileName) {
|
||||
return 'Keine Bilddatei: $fileName';
|
||||
}
|
||||
|
||||
@override
|
||||
String failedToLoadImage(String error) {
|
||||
return 'Bild konnte nicht geladen werden: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get invalidDataUrl => 'Ungültiges Data-URL-Format';
|
||||
|
||||
@override
|
||||
String get failedToDecodeImage => 'Bild konnte nicht decodiert werden';
|
||||
|
||||
@override
|
||||
String get invalidImageFormat => 'Ungültiges Bildformat';
|
||||
|
||||
@override
|
||||
String get emptyImageData => 'Leere Bilddaten';
|
||||
|
||||
@override
|
||||
String get offlineBanner => 'Du bist offline. Einige Funktionen sind eingeschränkt.';
|
||||
|
||||
@override
|
||||
String get featureRequiresInternet => 'Diese Funktion erfordert eine Internetverbindung';
|
||||
|
||||
@override
|
||||
String get messagesWillSendWhenOnline => 'Nachrichten werden gesendet, sobald du wieder online bist';
|
||||
|
||||
@override
|
||||
String get confirm => 'Bestätigen';
|
||||
|
||||
@override
|
||||
String get cancel => 'Abbrechen';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get inputField => 'Eingabefeld';
|
||||
|
||||
@override
|
||||
String get captureDocumentOrImage => 'Dokument oder Bild aufnehmen';
|
||||
|
||||
@override
|
||||
String get checkConnection => 'Verbindung prüfen';
|
||||
|
||||
@override
|
||||
String get openSettings => 'Einstellungen öffnen';
|
||||
|
||||
@override
|
||||
String get chooseDifferentFile => 'Andere Datei wählen';
|
||||
|
||||
@override
|
||||
String get goBack => 'Zurück';
|
||||
|
||||
@override
|
||||
String get technicalDetails => 'Technische Details';
|
||||
}
|
||||
444
lib/l10n/app_localizations_en.dart
Normal file
444
lib/l10n/app_localizations_en.dart
Normal file
@@ -0,0 +1,444 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for English (`en`).
|
||||
class AppLocalizationsEn extends AppLocalizations {
|
||||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'Conduit';
|
||||
|
||||
@override
|
||||
String get initializationFailed => 'Initialization Failed';
|
||||
|
||||
@override
|
||||
String get retry => 'Retry';
|
||||
|
||||
@override
|
||||
String get back => 'Back';
|
||||
|
||||
@override
|
||||
String get you => 'You';
|
||||
|
||||
@override
|
||||
String get loadingProfile => 'Loading profile...';
|
||||
|
||||
@override
|
||||
String get unableToLoadProfile => 'Unable to load profile';
|
||||
|
||||
@override
|
||||
String get pleaseCheckConnection => 'Please check your connection and try again';
|
||||
|
||||
@override
|
||||
String get account => 'Account';
|
||||
|
||||
@override
|
||||
String get signOut => 'Sign Out';
|
||||
|
||||
@override
|
||||
String get endYourSession => 'End your session';
|
||||
|
||||
@override
|
||||
String get defaultModel => 'Default Model';
|
||||
|
||||
@override
|
||||
String get autoSelect => 'Auto-select';
|
||||
|
||||
@override
|
||||
String get loadingModels => 'Loading models...';
|
||||
|
||||
@override
|
||||
String get failedToLoadModels => 'Failed to load models';
|
||||
|
||||
@override
|
||||
String get availableModels => 'Available Models';
|
||||
|
||||
@override
|
||||
String get noResults => 'No results';
|
||||
|
||||
@override
|
||||
String get searchModels => 'Search models...';
|
||||
|
||||
@override
|
||||
String get errorMessage => 'Something went wrong. Please try again.';
|
||||
|
||||
@override
|
||||
String get loginButton => 'Login';
|
||||
|
||||
@override
|
||||
String get menuItem => 'Settings';
|
||||
|
||||
@override
|
||||
String dynamicContentWithPlaceholder(String name) {
|
||||
return 'Welcome, $name!';
|
||||
}
|
||||
|
||||
@override
|
||||
String itemsCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count items',
|
||||
one: '1 item',
|
||||
zero: 'No items',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get closeButtonSemantic => 'Close';
|
||||
|
||||
@override
|
||||
String get loadingContent => 'Loading content';
|
||||
|
||||
@override
|
||||
String get noItems => 'No items';
|
||||
|
||||
@override
|
||||
String get noItemsToDisplay => 'No items to display';
|
||||
|
||||
@override
|
||||
String get loadMore => 'Load More';
|
||||
|
||||
@override
|
||||
String get workspace => 'Workspace';
|
||||
|
||||
@override
|
||||
String get recentFiles => 'Recent Files';
|
||||
|
||||
@override
|
||||
String get knowledgeBase => 'Knowledge Base';
|
||||
|
||||
@override
|
||||
String get noFilesYet => 'No files yet';
|
||||
|
||||
@override
|
||||
String get uploadDocsPrompt => 'Upload documents to reference in your conversations with Conduit';
|
||||
|
||||
@override
|
||||
String get uploadFirstFile => 'Upload your first file';
|
||||
|
||||
@override
|
||||
String get knowledgeBaseEmpty => 'Knowledge base is empty';
|
||||
|
||||
@override
|
||||
String get createCollectionsPrompt => 'Create collections of related documents for easy reference';
|
||||
|
||||
@override
|
||||
String get chooseSourcePhoto => 'Choose your source';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Take a photo';
|
||||
|
||||
@override
|
||||
String get chooseFromGallery => 'Choose from your photos';
|
||||
|
||||
@override
|
||||
String get document => 'Document';
|
||||
|
||||
@override
|
||||
String get documentHint => 'PDF, Word, or text file';
|
||||
|
||||
@override
|
||||
String get uploadFileTitle => 'Upload File';
|
||||
|
||||
@override
|
||||
String fileUploadComingSoon(String type) {
|
||||
return 'File upload for $type is coming soon!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get kbCreationComingSoon => 'Knowledge base creation is coming soon!';
|
||||
|
||||
@override
|
||||
String get backToServerSetup => 'Back to server setup';
|
||||
|
||||
@override
|
||||
String get connectedToServer => 'Connected to Server';
|
||||
|
||||
@override
|
||||
String get signIn => 'Sign In';
|
||||
|
||||
@override
|
||||
String get enterCredentials => 'Enter your credentials to access your AI conversations';
|
||||
|
||||
@override
|
||||
String get credentials => 'Credentials';
|
||||
|
||||
@override
|
||||
String get apiKey => 'API Key';
|
||||
|
||||
@override
|
||||
String get usernameOrEmail => 'Username or Email';
|
||||
|
||||
@override
|
||||
String get password => 'Password';
|
||||
|
||||
@override
|
||||
String get signInWithApiKey => 'Sign in with API Key';
|
||||
|
||||
@override
|
||||
String get connectToServer => 'Connect to Server';
|
||||
|
||||
@override
|
||||
String get enterServerAddress => 'Enter your Open-WebUI server address to get started';
|
||||
|
||||
@override
|
||||
String get serverUrl => 'Server URL';
|
||||
|
||||
@override
|
||||
String get serverUrlHint => 'https://your-server.com';
|
||||
|
||||
@override
|
||||
String get enterServerUrlSemantic => 'Enter your server URL or IP address';
|
||||
|
||||
@override
|
||||
String get headerName => 'Header Name';
|
||||
|
||||
@override
|
||||
String get headerValue => 'Header Value';
|
||||
|
||||
@override
|
||||
String get headerValueHint => 'api-key-123 or Bearer token';
|
||||
|
||||
@override
|
||||
String get addHeader => 'Add header';
|
||||
|
||||
@override
|
||||
String get maximumHeadersReached => 'Maximum headers reached';
|
||||
|
||||
@override
|
||||
String get removeHeader => 'Remove header';
|
||||
|
||||
@override
|
||||
String get connecting => 'Connecting...';
|
||||
|
||||
@override
|
||||
String get connectToServerButton => 'Connect to Server';
|
||||
|
||||
@override
|
||||
String get demoModeActive => 'Demo Mode Active';
|
||||
|
||||
@override
|
||||
String get skipServerSetupTryDemo => 'Skip server setup and try the demo';
|
||||
|
||||
@override
|
||||
String get enterDemo => 'Enter Demo';
|
||||
|
||||
@override
|
||||
String get demoBadge => 'Demo';
|
||||
|
||||
@override
|
||||
String get serverNotOpenWebUI => 'This does not appear to be an Open-WebUI server.';
|
||||
|
||||
@override
|
||||
String get serverUrlEmpty => 'Server URL cannot be empty';
|
||||
|
||||
@override
|
||||
String get invalidUrlFormat => 'Invalid URL format. Please check your input.';
|
||||
|
||||
@override
|
||||
String get onlyHttpHttps => 'Only HTTP and HTTPS protocols are supported.';
|
||||
|
||||
@override
|
||||
String get serverAddressRequired => 'Server address is required (e.g., 192.168.1.10 or example.com).';
|
||||
|
||||
@override
|
||||
String get portRange => 'Port must be between 1 and 65535.';
|
||||
|
||||
@override
|
||||
String get invalidIpFormat => 'Invalid IP address format. Use format like 192.168.1.10.';
|
||||
|
||||
@override
|
||||
String get couldNotConnectGeneric => 'Couldn\'t connect. Double-check the address and try again.';
|
||||
|
||||
@override
|
||||
String get weCouldntReachServer => 'We couldn\'t reach the server. Check your connection and that the server is running.';
|
||||
|
||||
@override
|
||||
String get connectionTimedOut => 'Connection timed out. The server might be busy or blocked by a firewall.';
|
||||
|
||||
@override
|
||||
String get useHttpOrHttpsOnly => 'Use http:// or https:// only.';
|
||||
|
||||
@override
|
||||
String get loginFailed => 'Login failed';
|
||||
|
||||
@override
|
||||
String get invalidCredentials => 'Invalid username or password. Please try again.';
|
||||
|
||||
@override
|
||||
String get serverRedirectingHttps => 'The server is redirecting requests. Check your server\'s HTTPS configuration.';
|
||||
|
||||
@override
|
||||
String get unableToConnectServer => 'Unable to connect to server. Please check your connection.';
|
||||
|
||||
@override
|
||||
String get requestTimedOut => 'The request timed out. Please try again.';
|
||||
|
||||
@override
|
||||
String get genericSignInFailed => 'We couldn\'t sign you in. Check your credentials and server settings.';
|
||||
|
||||
@override
|
||||
String get skip => 'Skip';
|
||||
|
||||
@override
|
||||
String get next => 'Next';
|
||||
|
||||
@override
|
||||
String get done => 'Done';
|
||||
|
||||
@override
|
||||
String get onboardStartTitle => 'Start a conversation';
|
||||
|
||||
@override
|
||||
String get onboardStartSubtitle => 'Choose a model, then type below to begin. Tap New Chat anytime.';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet1 => 'Tap the model name in the top bar to switch models';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet2 => 'Use New Chat to reset context';
|
||||
|
||||
@override
|
||||
String get onboardAttachTitle => 'Attach context';
|
||||
|
||||
@override
|
||||
String get onboardAttachSubtitle => 'Ground responses by adding files or images.';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet1 => 'Files: PDFs, docs, datasets';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet2 => 'Images: photos or screenshots';
|
||||
|
||||
@override
|
||||
String get onboardSpeakTitle => 'Speak naturally';
|
||||
|
||||
@override
|
||||
String get onboardSpeakSubtitle => 'Tap the mic to dictate with live waveform feedback.';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet1 => 'Stop anytime; partial text is preserved';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet2 => 'Great for quick notes or long prompts';
|
||||
|
||||
@override
|
||||
String get onboardQuickTitle => 'Quick actions';
|
||||
|
||||
@override
|
||||
String get onboardQuickSubtitle => 'Use the top‑left menu to open the chats list and navigation.';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet1 => 'Tap the menu to open the chats list and navigation';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet2 => 'Jump instantly to New Chat, Files, or Profile';
|
||||
|
||||
@override
|
||||
String get addAttachment => 'Add attachment';
|
||||
|
||||
@override
|
||||
String get tools => 'Tools';
|
||||
|
||||
@override
|
||||
String get voiceInput => 'Voice input';
|
||||
|
||||
@override
|
||||
String get messageInputLabel => 'Message input';
|
||||
|
||||
@override
|
||||
String get messageInputHint => 'Type your message';
|
||||
|
||||
@override
|
||||
String get messageHintText => 'Message...';
|
||||
|
||||
@override
|
||||
String get stopGenerating => 'Stop generating';
|
||||
|
||||
@override
|
||||
String get send => 'Send';
|
||||
|
||||
@override
|
||||
String get sendMessage => 'Send message';
|
||||
|
||||
@override
|
||||
String get file => 'File';
|
||||
|
||||
@override
|
||||
String get photo => 'Photo';
|
||||
|
||||
@override
|
||||
String get camera => 'Camera';
|
||||
|
||||
@override
|
||||
String get apiUnavailable => 'API service not available';
|
||||
|
||||
@override
|
||||
String get unableToLoadImage => 'Unable to load image';
|
||||
|
||||
@override
|
||||
String notAnImageFile(String fileName) {
|
||||
return 'Not an image file: $fileName';
|
||||
}
|
||||
|
||||
@override
|
||||
String failedToLoadImage(String error) {
|
||||
return 'Failed to load image: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get invalidDataUrl => 'Invalid data URL format';
|
||||
|
||||
@override
|
||||
String get failedToDecodeImage => 'Failed to decode image';
|
||||
|
||||
@override
|
||||
String get invalidImageFormat => 'Invalid image format';
|
||||
|
||||
@override
|
||||
String get emptyImageData => 'Empty image data';
|
||||
|
||||
@override
|
||||
String get offlineBanner => 'You\'re offline. Some features may be limited.';
|
||||
|
||||
@override
|
||||
String get featureRequiresInternet => 'This feature requires an internet connection';
|
||||
|
||||
@override
|
||||
String get messagesWillSendWhenOnline => 'Messages will be sent when you\'re back online';
|
||||
|
||||
@override
|
||||
String get confirm => 'Confirm';
|
||||
|
||||
@override
|
||||
String get cancel => 'Cancel';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get inputField => 'Input field';
|
||||
|
||||
@override
|
||||
String get captureDocumentOrImage => 'Capture a document or image';
|
||||
|
||||
@override
|
||||
String get checkConnection => 'Check Connection';
|
||||
|
||||
@override
|
||||
String get openSettings => 'Open Settings';
|
||||
|
||||
@override
|
||||
String get chooseDifferentFile => 'Choose Different File';
|
||||
|
||||
@override
|
||||
String get goBack => 'Go Back';
|
||||
|
||||
@override
|
||||
String get technicalDetails => 'Technical Details';
|
||||
}
|
||||
444
lib/l10n/app_localizations_fr.dart
Normal file
444
lib/l10n/app_localizations_fr.dart
Normal file
@@ -0,0 +1,444 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for French (`fr`).
|
||||
class AppLocalizationsFr extends AppLocalizations {
|
||||
AppLocalizationsFr([String locale = 'fr']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'Conduit';
|
||||
|
||||
@override
|
||||
String get initializationFailed => 'Échec de l\'initialisation';
|
||||
|
||||
@override
|
||||
String get retry => 'Réessayer';
|
||||
|
||||
@override
|
||||
String get back => 'Retour';
|
||||
|
||||
@override
|
||||
String get you => 'Vous';
|
||||
|
||||
@override
|
||||
String get loadingProfile => 'Chargement du profil...';
|
||||
|
||||
@override
|
||||
String get unableToLoadProfile => 'Impossible de charger le profil';
|
||||
|
||||
@override
|
||||
String get pleaseCheckConnection => 'Veuillez vérifier votre connexion et réessayer';
|
||||
|
||||
@override
|
||||
String get account => 'Compte';
|
||||
|
||||
@override
|
||||
String get signOut => 'Se déconnecter';
|
||||
|
||||
@override
|
||||
String get endYourSession => 'Terminer votre session';
|
||||
|
||||
@override
|
||||
String get defaultModel => 'Modèle par défaut';
|
||||
|
||||
@override
|
||||
String get autoSelect => 'Sélection automatique';
|
||||
|
||||
@override
|
||||
String get loadingModels => 'Chargement des modèles...';
|
||||
|
||||
@override
|
||||
String get failedToLoadModels => 'Échec du chargement des modèles';
|
||||
|
||||
@override
|
||||
String get availableModels => 'Modèles disponibles';
|
||||
|
||||
@override
|
||||
String get noResults => 'Aucun résultat';
|
||||
|
||||
@override
|
||||
String get searchModels => 'Rechercher des modèles...';
|
||||
|
||||
@override
|
||||
String get errorMessage => 'Une erreur s\'est produite. Veuillez réessayer.';
|
||||
|
||||
@override
|
||||
String get loginButton => 'Connexion';
|
||||
|
||||
@override
|
||||
String get menuItem => 'Paramètres';
|
||||
|
||||
@override
|
||||
String dynamicContentWithPlaceholder(String name) {
|
||||
return 'Bienvenue, $name !';
|
||||
}
|
||||
|
||||
@override
|
||||
String itemsCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count éléments',
|
||||
one: '1 élément',
|
||||
zero: 'Aucun élément',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get closeButtonSemantic => 'Fermer';
|
||||
|
||||
@override
|
||||
String get loadingContent => 'Chargement du contenu';
|
||||
|
||||
@override
|
||||
String get noItems => 'Aucun élément';
|
||||
|
||||
@override
|
||||
String get noItemsToDisplay => 'Aucun élément à afficher';
|
||||
|
||||
@override
|
||||
String get loadMore => 'Charger plus';
|
||||
|
||||
@override
|
||||
String get workspace => 'Espace de travail';
|
||||
|
||||
@override
|
||||
String get recentFiles => 'Fichiers récents';
|
||||
|
||||
@override
|
||||
String get knowledgeBase => 'Base de connaissances';
|
||||
|
||||
@override
|
||||
String get noFilesYet => 'Pas encore de fichiers';
|
||||
|
||||
@override
|
||||
String get uploadDocsPrompt => 'Importez des documents à utiliser dans vos conversations avec Conduit';
|
||||
|
||||
@override
|
||||
String get uploadFirstFile => 'Importer votre premier fichier';
|
||||
|
||||
@override
|
||||
String get knowledgeBaseEmpty => 'La base de connaissances est vide';
|
||||
|
||||
@override
|
||||
String get createCollectionsPrompt => 'Créez des collections de documents liés pour une référence facile';
|
||||
|
||||
@override
|
||||
String get chooseSourcePhoto => 'Choisir la source';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Prendre une photo';
|
||||
|
||||
@override
|
||||
String get chooseFromGallery => 'Choisir depuis vos photos';
|
||||
|
||||
@override
|
||||
String get document => 'Document';
|
||||
|
||||
@override
|
||||
String get documentHint => 'Fichier PDF, Word ou texte';
|
||||
|
||||
@override
|
||||
String get uploadFileTitle => 'Importer un fichier';
|
||||
|
||||
@override
|
||||
String fileUploadComingSoon(String type) {
|
||||
return 'Le téléversement de fichiers pour $type arrive bientôt !';
|
||||
}
|
||||
|
||||
@override
|
||||
String get kbCreationComingSoon => 'La création de la base de connaissances arrive bientôt !';
|
||||
|
||||
@override
|
||||
String get backToServerSetup => 'Retour à la configuration du serveur';
|
||||
|
||||
@override
|
||||
String get connectedToServer => 'Connecté au serveur';
|
||||
|
||||
@override
|
||||
String get signIn => 'Se connecter';
|
||||
|
||||
@override
|
||||
String get enterCredentials => 'Entrez vos identifiants pour accéder à vos conversations IA';
|
||||
|
||||
@override
|
||||
String get credentials => 'Identifiants';
|
||||
|
||||
@override
|
||||
String get apiKey => 'Clé API';
|
||||
|
||||
@override
|
||||
String get usernameOrEmail => 'Nom d\'utilisateur ou e‑mail';
|
||||
|
||||
@override
|
||||
String get password => 'Mot de passe';
|
||||
|
||||
@override
|
||||
String get signInWithApiKey => 'Se connecter avec une clé API';
|
||||
|
||||
@override
|
||||
String get connectToServer => 'Se connecter au serveur';
|
||||
|
||||
@override
|
||||
String get enterServerAddress => 'Saisissez l\'adresse de votre serveur Open-WebUI pour commencer';
|
||||
|
||||
@override
|
||||
String get serverUrl => 'URL du serveur';
|
||||
|
||||
@override
|
||||
String get serverUrlHint => 'https://votre-serveur.com';
|
||||
|
||||
@override
|
||||
String get enterServerUrlSemantic => 'Saisissez l\'URL ou l\'adresse IP de votre serveur';
|
||||
|
||||
@override
|
||||
String get headerName => 'Nom de l\'en-tête';
|
||||
|
||||
@override
|
||||
String get headerValue => 'Valeur de l\'en-tête';
|
||||
|
||||
@override
|
||||
String get headerValueHint => 'api-key-123 ou jeton Bearer';
|
||||
|
||||
@override
|
||||
String get addHeader => 'Ajouter l\'en-tête';
|
||||
|
||||
@override
|
||||
String get maximumHeadersReached => 'Nombre maximal atteint';
|
||||
|
||||
@override
|
||||
String get removeHeader => 'Supprimer l\'en-tête';
|
||||
|
||||
@override
|
||||
String get connecting => 'Connexion en cours...';
|
||||
|
||||
@override
|
||||
String get connectToServerButton => 'Se connecter au serveur';
|
||||
|
||||
@override
|
||||
String get demoModeActive => 'Mode démo activé';
|
||||
|
||||
@override
|
||||
String get skipServerSetupTryDemo => 'Ignorer la configuration et essayer la démo';
|
||||
|
||||
@override
|
||||
String get enterDemo => 'Entrer en démo';
|
||||
|
||||
@override
|
||||
String get demoBadge => 'Démo';
|
||||
|
||||
@override
|
||||
String get serverNotOpenWebUI => 'Ceci ne semble pas être un serveur Open-WebUI.';
|
||||
|
||||
@override
|
||||
String get serverUrlEmpty => 'L\'URL du serveur ne peut pas être vide';
|
||||
|
||||
@override
|
||||
String get invalidUrlFormat => 'Format d\'URL invalide. Veuillez vérifier votre saisie.';
|
||||
|
||||
@override
|
||||
String get onlyHttpHttps => 'Seuls les protocoles HTTP et HTTPS sont pris en charge.';
|
||||
|
||||
@override
|
||||
String get serverAddressRequired => 'Adresse du serveur requise (ex. 192.168.1.10 ou example.com).';
|
||||
|
||||
@override
|
||||
String get portRange => 'Le port doit être compris entre 1 et 65535.';
|
||||
|
||||
@override
|
||||
String get invalidIpFormat => 'Format d\'IP invalide. Exemple : 192.168.1.10.';
|
||||
|
||||
@override
|
||||
String get couldNotConnectGeneric => 'Connexion impossible. Vérifiez l\'adresse et réessayez.';
|
||||
|
||||
@override
|
||||
String get weCouldntReachServer => 'Impossible d\'atteindre le serveur. Vérifiez la connexion et l\'état du serveur.';
|
||||
|
||||
@override
|
||||
String get connectionTimedOut => 'Délai d\'attente dépassé. Le serveur est peut-être occupé ou bloqué.';
|
||||
|
||||
@override
|
||||
String get useHttpOrHttpsOnly => 'Utilisez uniquement http:// ou https://.';
|
||||
|
||||
@override
|
||||
String get loginFailed => 'Échec de la connexion';
|
||||
|
||||
@override
|
||||
String get invalidCredentials => 'Nom d\'utilisateur ou mot de passe invalide. Réessayez.';
|
||||
|
||||
@override
|
||||
String get serverRedirectingHttps => 'Le serveur redirige les requêtes. Vérifiez la configuration HTTPS.';
|
||||
|
||||
@override
|
||||
String get unableToConnectServer => 'Impossible de se connecter au serveur. Vérifiez votre connexion.';
|
||||
|
||||
@override
|
||||
String get requestTimedOut => 'Délai d\'attente dépassé. Réessayez.';
|
||||
|
||||
@override
|
||||
String get genericSignInFailed => 'Connexion impossible. Vérifiez vos identifiants et le serveur.';
|
||||
|
||||
@override
|
||||
String get skip => 'Ignorer';
|
||||
|
||||
@override
|
||||
String get next => 'Suivant';
|
||||
|
||||
@override
|
||||
String get done => 'Terminé';
|
||||
|
||||
@override
|
||||
String get onboardStartTitle => 'Commencer une conversation';
|
||||
|
||||
@override
|
||||
String get onboardStartSubtitle => 'Choisissez un modèle puis commencez à écrire. Touchez Nouveau chat à tout moment.';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet1 => 'Touchez le nom du modèle en haut pour changer';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet2 => 'Utilisez Nouveau chat pour réinitialiser le contexte';
|
||||
|
||||
@override
|
||||
String get onboardAttachTitle => 'Ajouter du contexte';
|
||||
|
||||
@override
|
||||
String get onboardAttachSubtitle => 'Améliorez les réponses en ajoutant des fichiers ou des images.';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet1 => 'Fichiers : PDF, documents, jeux de données';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet2 => 'Images : photos ou captures d\'écran';
|
||||
|
||||
@override
|
||||
String get onboardSpeakTitle => 'Parlez naturellement';
|
||||
|
||||
@override
|
||||
String get onboardSpeakSubtitle => 'Touchez le micro pour dicter avec retour visuel.';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet1 => 'Arrêtez à tout moment ; le texte partiel est conservé';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet2 => 'Idéal pour des notes rapides ou de longs prompts';
|
||||
|
||||
@override
|
||||
String get onboardQuickTitle => 'Actions rapides';
|
||||
|
||||
@override
|
||||
String get onboardQuickSubtitle => 'Utilisez le menu en haut à gauche pour ouvrir la liste des chats et la navigation.';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet1 => 'Touchez le menu pour ouvrir les chats et la navigation';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet2 => 'Accédez rapidement à Nouveau chat, Fichiers ou Profil';
|
||||
|
||||
@override
|
||||
String get addAttachment => 'Ajouter une pièce jointe';
|
||||
|
||||
@override
|
||||
String get tools => 'Outils';
|
||||
|
||||
@override
|
||||
String get voiceInput => 'Entrée vocale';
|
||||
|
||||
@override
|
||||
String get messageInputLabel => 'Saisie du message';
|
||||
|
||||
@override
|
||||
String get messageInputHint => 'Saisissez votre message';
|
||||
|
||||
@override
|
||||
String get messageHintText => 'Message...';
|
||||
|
||||
@override
|
||||
String get stopGenerating => 'Arrêter la génération';
|
||||
|
||||
@override
|
||||
String get send => 'Envoyer';
|
||||
|
||||
@override
|
||||
String get sendMessage => 'Envoyer le message';
|
||||
|
||||
@override
|
||||
String get file => 'Fichier';
|
||||
|
||||
@override
|
||||
String get photo => 'Photo';
|
||||
|
||||
@override
|
||||
String get camera => 'Appareil photo';
|
||||
|
||||
@override
|
||||
String get apiUnavailable => 'Service API indisponible';
|
||||
|
||||
@override
|
||||
String get unableToLoadImage => 'Impossible de charger l\'image';
|
||||
|
||||
@override
|
||||
String notAnImageFile(String fileName) {
|
||||
return 'Ce n\'est pas un fichier image : $fileName';
|
||||
}
|
||||
|
||||
@override
|
||||
String failedToLoadImage(String error) {
|
||||
return 'Échec du chargement de l\'image : $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get invalidDataUrl => 'Format d\'URL de données invalide';
|
||||
|
||||
@override
|
||||
String get failedToDecodeImage => 'Échec du décodage de l\'image';
|
||||
|
||||
@override
|
||||
String get invalidImageFormat => 'Format d\'image invalide';
|
||||
|
||||
@override
|
||||
String get emptyImageData => 'Données d\'image vides';
|
||||
|
||||
@override
|
||||
String get offlineBanner => 'Vous êtes hors ligne. Certaines fonctions peuvent être limitées.';
|
||||
|
||||
@override
|
||||
String get featureRequiresInternet => 'Cette fonctionnalité nécessite une connexion Internet';
|
||||
|
||||
@override
|
||||
String get messagesWillSendWhenOnline => 'Les messages seront envoyés lorsque vous serez de nouveau en ligne';
|
||||
|
||||
@override
|
||||
String get confirm => 'Confirmer';
|
||||
|
||||
@override
|
||||
String get cancel => 'Annuler';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get inputField => 'Champ de saisie';
|
||||
|
||||
@override
|
||||
String get captureDocumentOrImage => 'Capturer un document ou une image';
|
||||
|
||||
@override
|
||||
String get checkConnection => 'Vérifier la connexion';
|
||||
|
||||
@override
|
||||
String get openSettings => 'Ouvrir les réglages';
|
||||
|
||||
@override
|
||||
String get chooseDifferentFile => 'Choisir un autre fichier';
|
||||
|
||||
@override
|
||||
String get goBack => 'Retour';
|
||||
|
||||
@override
|
||||
String get technicalDetails => 'Détails techniques';
|
||||
}
|
||||
444
lib/l10n/app_localizations_it.dart
Normal file
444
lib/l10n/app_localizations_it.dart
Normal file
@@ -0,0 +1,444 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Italian (`it`).
|
||||
class AppLocalizationsIt extends AppLocalizations {
|
||||
AppLocalizationsIt([String locale = 'it']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'Conduit';
|
||||
|
||||
@override
|
||||
String get initializationFailed => 'Inizializzazione non riuscita';
|
||||
|
||||
@override
|
||||
String get retry => 'Riprova';
|
||||
|
||||
@override
|
||||
String get back => 'Indietro';
|
||||
|
||||
@override
|
||||
String get you => 'Tu';
|
||||
|
||||
@override
|
||||
String get loadingProfile => 'Caricamento profilo...';
|
||||
|
||||
@override
|
||||
String get unableToLoadProfile => 'Impossibile caricare il profilo';
|
||||
|
||||
@override
|
||||
String get pleaseCheckConnection => 'Controlla la connessione e riprova';
|
||||
|
||||
@override
|
||||
String get account => 'Account';
|
||||
|
||||
@override
|
||||
String get signOut => 'Esci';
|
||||
|
||||
@override
|
||||
String get endYourSession => 'Termina la sessione';
|
||||
|
||||
@override
|
||||
String get defaultModel => 'Modello predefinito';
|
||||
|
||||
@override
|
||||
String get autoSelect => 'Selezione automatica';
|
||||
|
||||
@override
|
||||
String get loadingModels => 'Caricamento modelli...';
|
||||
|
||||
@override
|
||||
String get failedToLoadModels => 'Impossibile caricare i modelli';
|
||||
|
||||
@override
|
||||
String get availableModels => 'Modelli disponibili';
|
||||
|
||||
@override
|
||||
String get noResults => 'Nessun risultato';
|
||||
|
||||
@override
|
||||
String get searchModels => 'Cerca modelli...';
|
||||
|
||||
@override
|
||||
String get errorMessage => 'Qualcosa è andato storto. Riprova.';
|
||||
|
||||
@override
|
||||
String get loginButton => 'Accedi';
|
||||
|
||||
@override
|
||||
String get menuItem => 'Impostazioni';
|
||||
|
||||
@override
|
||||
String dynamicContentWithPlaceholder(String name) {
|
||||
return 'Benvenuto, $name!';
|
||||
}
|
||||
|
||||
@override
|
||||
String itemsCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count elementi',
|
||||
one: '1 elemento',
|
||||
zero: 'Nessun elemento',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get closeButtonSemantic => 'Chiudi';
|
||||
|
||||
@override
|
||||
String get loadingContent => 'Caricamento contenuto';
|
||||
|
||||
@override
|
||||
String get noItems => 'Nessun elemento';
|
||||
|
||||
@override
|
||||
String get noItemsToDisplay => 'Nessun elemento da visualizzare';
|
||||
|
||||
@override
|
||||
String get loadMore => 'Carica altro';
|
||||
|
||||
@override
|
||||
String get workspace => 'Spazio di lavoro';
|
||||
|
||||
@override
|
||||
String get recentFiles => 'File recenti';
|
||||
|
||||
@override
|
||||
String get knowledgeBase => 'Base di conoscenza';
|
||||
|
||||
@override
|
||||
String get noFilesYet => 'Ancora nessun file';
|
||||
|
||||
@override
|
||||
String get uploadDocsPrompt => 'Carica documenti da usare nelle conversazioni con Conduit';
|
||||
|
||||
@override
|
||||
String get uploadFirstFile => 'Carica il tuo primo file';
|
||||
|
||||
@override
|
||||
String get knowledgeBaseEmpty => 'La base di conoscenza è vuota';
|
||||
|
||||
@override
|
||||
String get createCollectionsPrompt => 'Crea raccolte di documenti correlati per un rapido riferimento';
|
||||
|
||||
@override
|
||||
String get chooseSourcePhoto => 'Scegli origine';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Scatta una foto';
|
||||
|
||||
@override
|
||||
String get chooseFromGallery => 'Scegli dalle foto';
|
||||
|
||||
@override
|
||||
String get document => 'Documento';
|
||||
|
||||
@override
|
||||
String get documentHint => 'File PDF, Word o di testo';
|
||||
|
||||
@override
|
||||
String get uploadFileTitle => 'Carica file';
|
||||
|
||||
@override
|
||||
String fileUploadComingSoon(String type) {
|
||||
return 'Il caricamento file per $type arriverà presto!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get kbCreationComingSoon => 'La creazione della base di conoscenza arriverà presto!';
|
||||
|
||||
@override
|
||||
String get backToServerSetup => 'Torna alla configurazione del server';
|
||||
|
||||
@override
|
||||
String get connectedToServer => 'Connesso al server';
|
||||
|
||||
@override
|
||||
String get signIn => 'Accedi';
|
||||
|
||||
@override
|
||||
String get enterCredentials => 'Inserisci le credenziali per accedere alle conversazioni IA';
|
||||
|
||||
@override
|
||||
String get credentials => 'Credenziali';
|
||||
|
||||
@override
|
||||
String get apiKey => 'Chiave API';
|
||||
|
||||
@override
|
||||
String get usernameOrEmail => 'Username o e‑mail';
|
||||
|
||||
@override
|
||||
String get password => 'Password';
|
||||
|
||||
@override
|
||||
String get signInWithApiKey => 'Accedi con chiave API';
|
||||
|
||||
@override
|
||||
String get connectToServer => 'Connetti al server';
|
||||
|
||||
@override
|
||||
String get enterServerAddress => 'Inserisci l\'indirizzo del server Open-WebUI per iniziare';
|
||||
|
||||
@override
|
||||
String get serverUrl => 'URL del server';
|
||||
|
||||
@override
|
||||
String get serverUrlHint => 'https://tuo-server.com';
|
||||
|
||||
@override
|
||||
String get enterServerUrlSemantic => 'Inserisci l\'URL o l\'indirizzo IP del server';
|
||||
|
||||
@override
|
||||
String get headerName => 'Nome header';
|
||||
|
||||
@override
|
||||
String get headerValue => 'Valore header';
|
||||
|
||||
@override
|
||||
String get headerValueHint => 'api-key-123 o token Bearer';
|
||||
|
||||
@override
|
||||
String get addHeader => 'Aggiungi header';
|
||||
|
||||
@override
|
||||
String get maximumHeadersReached => 'Numero massimo raggiunto';
|
||||
|
||||
@override
|
||||
String get removeHeader => 'Rimuovi header';
|
||||
|
||||
@override
|
||||
String get connecting => 'Connessione in corso...';
|
||||
|
||||
@override
|
||||
String get connectToServerButton => 'Connetti al server';
|
||||
|
||||
@override
|
||||
String get demoModeActive => 'Modalità demo attiva';
|
||||
|
||||
@override
|
||||
String get skipServerSetupTryDemo => 'Salta configurazione server e prova la demo';
|
||||
|
||||
@override
|
||||
String get enterDemo => 'Entra in demo';
|
||||
|
||||
@override
|
||||
String get demoBadge => 'Demo';
|
||||
|
||||
@override
|
||||
String get serverNotOpenWebUI => 'Questo non sembra un server Open-WebUI.';
|
||||
|
||||
@override
|
||||
String get serverUrlEmpty => 'L\'URL del server non può essere vuoto';
|
||||
|
||||
@override
|
||||
String get invalidUrlFormat => 'Formato URL non valido. Controlla l\'input.';
|
||||
|
||||
@override
|
||||
String get onlyHttpHttps => 'Sono supportati solo i protocolli HTTP e HTTPS.';
|
||||
|
||||
@override
|
||||
String get serverAddressRequired => 'Indirizzo server richiesto (es. 192.168.1.10 o example.com).';
|
||||
|
||||
@override
|
||||
String get portRange => 'La porta deve essere tra 1 e 65535.';
|
||||
|
||||
@override
|
||||
String get invalidIpFormat => 'Formato IP non valido. Esempio: 192.168.1.10.';
|
||||
|
||||
@override
|
||||
String get couldNotConnectGeneric => 'Impossibile connettersi. Verifica l\'indirizzo e riprova.';
|
||||
|
||||
@override
|
||||
String get weCouldntReachServer => 'Impossibile raggiungere il server. Verifica connessione e stato del server.';
|
||||
|
||||
@override
|
||||
String get connectionTimedOut => 'Tempo scaduto. Il server potrebbe essere occupato o bloccato.';
|
||||
|
||||
@override
|
||||
String get useHttpOrHttpsOnly => 'Usa solo http:// o https://.';
|
||||
|
||||
@override
|
||||
String get loginFailed => 'Accesso non riuscito';
|
||||
|
||||
@override
|
||||
String get invalidCredentials => 'Nome utente o password non validi. Riprova.';
|
||||
|
||||
@override
|
||||
String get serverRedirectingHttps => 'Il server sta reindirizzando. Controlla la configurazione HTTPS.';
|
||||
|
||||
@override
|
||||
String get unableToConnectServer => 'Impossibile connettersi al server. Controlla la connessione.';
|
||||
|
||||
@override
|
||||
String get requestTimedOut => 'Richiesta scaduta. Riprova.';
|
||||
|
||||
@override
|
||||
String get genericSignInFailed => 'Impossibile accedere. Controlla credenziali e server.';
|
||||
|
||||
@override
|
||||
String get skip => 'Salta';
|
||||
|
||||
@override
|
||||
String get next => 'Avanti';
|
||||
|
||||
@override
|
||||
String get done => 'Fatto';
|
||||
|
||||
@override
|
||||
String get onboardStartTitle => 'Inizia una conversazione';
|
||||
|
||||
@override
|
||||
String get onboardStartSubtitle => 'Scegli un modello e inizia a scrivere. Tocca Nuova chat in qualsiasi momento.';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet1 => 'Tocca il nome del modello in alto per cambiare';
|
||||
|
||||
@override
|
||||
String get onboardStartBullet2 => 'Usa Nuova chat per azzerare il contesto';
|
||||
|
||||
@override
|
||||
String get onboardAttachTitle => 'Aggiungi contesto';
|
||||
|
||||
@override
|
||||
String get onboardAttachSubtitle => 'Migliora le risposte aggiungendo file o immagini.';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet1 => 'File: PDF, documenti, dataset';
|
||||
|
||||
@override
|
||||
String get onboardAttachBullet2 => 'Immagini: foto o screenshot';
|
||||
|
||||
@override
|
||||
String get onboardSpeakTitle => 'Parla in modo naturale';
|
||||
|
||||
@override
|
||||
String get onboardSpeakSubtitle => 'Tocca il microfono per dettare con feedback visivo.';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet1 => 'Interrompi in qualsiasi momento; il testo parziale viene mantenuto';
|
||||
|
||||
@override
|
||||
String get onboardSpeakBullet2 => 'Ottimo per note rapide o prompt lunghi';
|
||||
|
||||
@override
|
||||
String get onboardQuickTitle => 'Azioni rapide';
|
||||
|
||||
@override
|
||||
String get onboardQuickSubtitle => 'Usa il menu in alto a sinistra per aprire l\'elenco chat e la navigazione.';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet1 => 'Tocca il menu per aprire chat e navigazione';
|
||||
|
||||
@override
|
||||
String get onboardQuickBullet2 => 'Vai subito a Nuova chat, File o Profilo';
|
||||
|
||||
@override
|
||||
String get addAttachment => 'Aggiungi allegato';
|
||||
|
||||
@override
|
||||
String get tools => 'Strumenti';
|
||||
|
||||
@override
|
||||
String get voiceInput => 'Input vocale';
|
||||
|
||||
@override
|
||||
String get messageInputLabel => 'Input messaggio';
|
||||
|
||||
@override
|
||||
String get messageInputHint => 'Scrivi il tuo messaggio';
|
||||
|
||||
@override
|
||||
String get messageHintText => 'Messaggio...';
|
||||
|
||||
@override
|
||||
String get stopGenerating => 'Interrompi generazione';
|
||||
|
||||
@override
|
||||
String get send => 'Invia';
|
||||
|
||||
@override
|
||||
String get sendMessage => 'Invia messaggio';
|
||||
|
||||
@override
|
||||
String get file => 'File';
|
||||
|
||||
@override
|
||||
String get photo => 'Foto';
|
||||
|
||||
@override
|
||||
String get camera => 'Fotocamera';
|
||||
|
||||
@override
|
||||
String get apiUnavailable => 'Servizio API non disponibile';
|
||||
|
||||
@override
|
||||
String get unableToLoadImage => 'Impossibile caricare l\'immagine';
|
||||
|
||||
@override
|
||||
String notAnImageFile(String fileName) {
|
||||
return 'Non è un file immagine: $fileName';
|
||||
}
|
||||
|
||||
@override
|
||||
String failedToLoadImage(String error) {
|
||||
return 'Impossibile caricare l\'immagine: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get invalidDataUrl => 'Formato data URL non valido';
|
||||
|
||||
@override
|
||||
String get failedToDecodeImage => 'Impossibile decodificare l\'immagine';
|
||||
|
||||
@override
|
||||
String get invalidImageFormat => 'Formato immagine non valido';
|
||||
|
||||
@override
|
||||
String get emptyImageData => 'Dati immagine vuoti';
|
||||
|
||||
@override
|
||||
String get offlineBanner => 'Sei offline. Alcune funzioni potrebbero essere limitate.';
|
||||
|
||||
@override
|
||||
String get featureRequiresInternet => 'Questa funzione richiede una connessione Internet';
|
||||
|
||||
@override
|
||||
String get messagesWillSendWhenOnline => 'I messaggi verranno inviati quando tornerai online';
|
||||
|
||||
@override
|
||||
String get confirm => 'Conferma';
|
||||
|
||||
@override
|
||||
String get cancel => 'Annulla';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get inputField => 'Campo di input';
|
||||
|
||||
@override
|
||||
String get captureDocumentOrImage => 'Acquisisci un documento o un\'immagine';
|
||||
|
||||
@override
|
||||
String get checkConnection => 'Controlla connessione';
|
||||
|
||||
@override
|
||||
String get openSettings => 'Apri impostazioni';
|
||||
|
||||
@override
|
||||
String get chooseDifferentFile => 'Scegli un altro file';
|
||||
|
||||
@override
|
||||
String get goBack => 'Indietro';
|
||||
|
||||
@override
|
||||
String get technicalDetails => 'Dettagli tecnici';
|
||||
}
|
||||
Reference in New Issue
Block a user