diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 992989b1..77300ad7 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1003,34 +1003,6 @@ "message": "Extract all relevant details required to generate a calendar event from the following text. The extracted information should include:\n- Event Title\n- Start Date and Time (including timezone, if specified)\n- End Date and Time (including timezone, if specified)\n- Full day (if mentioned)\n- Attendees\nEnsure the data is formatted clearly and consistently so that it can be directly used for creating a calendar event.\nIf there are relative time references, consider that the date and time of the email are \"{%mail_datetime%}\". Calculate the start date and time based on this reference. If the calculated start date and time are earlier than \"{%current_datetime%}\", recalculate the start date and time using \"{%current_datetime%}\" as the base.\nIf the duration is not specified, set it to one hour.\nThese are the attendees: {%author%}, {%recipients%}, {%cc_list%}. If present, exclude my address: {%account_email_address%}.\nIf you're not able to get one or more of the required information, please respond with an empty string.\nGenerate a response in JSON format only. Do not include any additional text or explanations; provide only the JSON. Here is the format to be used:\n{\n\"startDate\": \"YYYYMMDDTHHMMSS\",\n\"endDate\": \"YYYYMMDDTHHMMSS\",\n\"summary\": \"Calendar event summary here\",\n\"forceAllDay\": false,\n\"attendees\": [attendee1@example.com,attendee2@example.com,attendee3@example.com]\n}\nHere's the text:\"{%selected_text%}\"", "description": "" }, - "Summarize_prompt_prefs_title": { - "message": "Add Summarization Options", - "description": "" - }, - "prompt_summarize": { - "message": "Summarize this email or these emails", - "description": "" - }, - "prompt_summarize_full_text": { - "message": "You are an assistant that summarizes email conversations.\n\nGiven an email thread, produce a concise, accurate summary that captures:\n\n- The main topic or purpose of the conversation\n- Key decisions, conclusions, or agreements\n- Important questions, requests, or action items\n- Who is responsible for each action item (if stated)\n\nOmit greetings, signatures, quoted text, and redundant back-and-forth.\nDo not add assumptions or information not present in the emails.\n\nWrite the summary in clear, neutral language suitable for a busy professional.", - "description": "" - }, - "prompt_summarize_email_template": { - "message": "Summarize email template", - "description": "" - }, - "prompt_summarize_email_template_full_text": { - "message": "From: {%author%}\nTo: {%recipients%}\nCC: {%cc_list%}\nSubject: {%mail_subject%}\nDate: {%mail_datetime%}\nAttachments:\n{%mail_attachments_info%}\n\nBody:\n{%mail_text_body%}", - "description": "" - }, - "prompt_summarize_email_separator": { - "message": "Email separator", - "description": "" - }, - "prompt_summarize_email_separator_full_text": { - "message": "\n\n---------- NEXT EMAIL ----------\n\n", - "description": "" - }, "prompt_get_task": { "message": "Add a new task", "description": "" @@ -1095,22 +1067,6 @@ "message": "You can change the prompt as you wish, but the response received from the AI must be in JSON format as specified in the default prompt!", "description": "" }, - "prefs_OptionText_Summarize_infoline2": { - "message": "You can change the prompt as you wish, the first field is the main prompt, the second field is the template for a single mail. The list of emails will be appended to the main prompt. Emails will be separated by the separator specified in the third field.", - "description": "" - }, - "prefs_OptionText_Summarize_main_prompt": { - "message": "The main prompt describing the task to be performed on all selected emails:", - "description": "" - }, - "prefs_OptionText_Summarize_email_template": { - "message": "The template for a single email:", - "description": "" - }, - "prefs_OptionText_Summarize_email_separator": { - "message": "The separator between emails:", - "description": "" - }, "prefs_OptionText_get_calendar_event_Sparks_not_present": { "message": "To use the calendar event and task features, please install the ThunderAI Sparks addon.", "description": "" @@ -1211,10 +1167,6 @@ "message": "If checked, the Model and API specified below will be used for adding tags to emails, regardless the one choosen in the ThunderAI options page.", "description": "" }, - "prefs_OptionText_get_calendar_event_use_specific_integration_Info": { - "message": "If checked, the Model and API specified below will be used for creating calendar events, regardless the one choosen in the ThunderAI options page.", - "description": "" - }, "placeholder_thunderai_def_sign": { "message": "Default signature as defined in ThunderAI options.", "description": "" @@ -1243,22 +1195,6 @@ "message": "Manage spam filter settings", "description": "" }, - "prefs_OptionText_summarize": { - "message": "Summarize mail", - "description": "" - }, - "prefs_OptionText_summarize_use_specific_integration_Info": { - "message": "If checked, the Model and API specified below will be used for summarizing email(s), regardless the one choosen in the ThunderAI options page.", - "description": "" - }, - "prefs_OptionText_summarize_Info": { - "message": "If checked, adds an option to context menu to summarize mail.", - "description": "" - }, - "prefs_OptionText_btnManageSummarizeInfo": { - "message": "Manage summarize settings", - "description": "" - }, "SpamFilter_PageTitle": { "message": "Manage Spam Filter Settings", "description": "" @@ -1283,18 +1219,6 @@ "message": "Spam Filter Options", "description": "" }, - "Summarize_PageTitle": { - "message": "Manage Summarize Settings", - "description": "" - }, - "Summarize_info_default": { - "message": "In this page you can modify the default prompt used to summarize emails.", - "description": "" - }, - "Summarize_prompt_text_title": { - "message": "Current prompt text", - "description": "" - }, "prefs_OptionText_use_specific_integration": { "message": "Use specific Model and API", "description": "" @@ -1355,11 +1279,11 @@ "message": "Report Date", "description": "" }, - "yes_string": { + "spamfilter_moved": { "message": "Yes", "description": "" }, - "no_string": { + "spamfilter_not_moved": { "message": "No", "description": "" }, @@ -1371,8 +1295,20 @@ "message": "Analyze for spam", "description": "" }, - "context_menu_mzta-summarize": { - "message": "Summarize", + "prefs_OptionText_add_tags_context_menu": { + "message": "Show the \"Add tags\" context menu item", + "description": "" + }, + "prefs_OptionText_add_tags_context_menu_Info": { + "message": "If checked, the \"Add tags\" context menu item will be shown when right-clicking on an email in the messages list.", + "description": "" + }, + "prefs_OptionText_spamfilter_context_menu": { + "message": "Show the \"Analyze for spam\" context menu item", + "description": "" + }, + "prefs_OptionText_spamfilter_context_menu_Info": { + "message": "If checked, the \"Analyze for spam\" context menu item will be shown when right-clicking on an email in the messages list.", "description": "" }, "noActiveCalendar": { @@ -1427,16 +1363,12 @@ "message": "Problems setting CORS?", "description": "" }, - "CORS_alternative_2_new": { - "message": "Press the button below to give the permission to the current host to avoid any CORS problem.", + "CORS_alternative_2": { + "message": "Press the button below to give the permission to avoid any CORS problem.", "description": "" }, - "CORS_give_host_perm": { - "message": "Give permission to the current host", - "description": "" - }, - "CORS_localhost_warn": { - "message": "If you are using localhost or 127.0.0.1 because the AI server is hosted on your PC, the permission is required.", + "CORS_give_allurls_perm": { + "message": "Give \"all URLs\" permission", "description": "" }, "prefs_OptionText_composing_plain_text": { @@ -1805,28 +1737,28 @@ "message": "You have denied the optional permission needed to fetch models for this integration.", "description": "" }, - "customPrompts_export_include_api_settings": { - "message": "Do you want to include the API settings in the export? Be aware that also the API Key will be saved in the file!", - "description": "" - }, "prefs_OptionText_auto_summary": { "message": "Enable automatic AI summarization for message previews", "description": "" }, "prefs_OptionText_auto_summary_Info": { - "message": "If checked, ThunderAI will automatically generate and display AI summaries above email messages when they are opened. Note that this means all messages you preview will immediately be sent to the configured AI service.", - "description": "" + "message": "If checked, ThunderAI will automatically generate and display AI summaries above email messages when they are opened. Note that this means all messages you preview will immediately be sent to the configured AI service.", + "description": "" }, "auto_summary_title": { - "message": "AI Summary", - "description": "" + "message": "ThunderAI Summary", + "description": "Title for the auto-summary pane" }, "auto_summary_generating": { - "message": "Generating summary...", - "description": "" + "message": "Generating AI summary...", + "description": "Loading text shown while generating summary" }, "auto_summary_failed": { - "message": "Failed to generate summary", - "description": "" + "message": "Failed to generate AI summary. Please confirm your settings and try again.", + "description": "Error message when summary generation fails" + }, + "auto_summary_prompt": { + "message": "Please provide a concise summary of the following email message. The summary should be 3-5 sentences maximum and capture the main points:\n\n", + "description": "Prompt template for AI summary generation" } } diff --git a/_locales/es/messages.json b/_locales/es/messages.json index f36367d4..86df6187 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -956,10 +956,10 @@ "Report_Date": { "message": "Fecha del informe" }, - "yes_string": { + "spamfilter_moved": { "message": "Si" }, - "no_string": { + "spamfilter_not_moved": { "message": "No" }, "context_menu_mzta-add-tags": { @@ -968,6 +968,18 @@ "context_menu_mzta-spamfilter": { "message": "Analizar el spam" }, + "prefs_OptionText_add_tags_context_menu": { + "message": "Mostrar el elemento del menú contextual “Añadir etiquetas”" + }, + "prefs_OptionText_add_tags_context_menu_Info": { + "message": "Si está marcado, el elemento del menú contextual “Añadir etiquetas” se mostrará al hacer clic derecho en un correo electrónico de la lista de mensajes." + }, + "prefs_OptionText_spamfilter_context_menu": { + "message": "Mostrar el elemento del menú contextual “Analizar el spam”" + }, + "prefs_OptionText_spamfilter_context_menu_Info": { + "message": "Si está marcado, el elemento del menú contextual “Analizar el spam” se mostrará al hacer clic derecho en un correo electrónico de la lista de mensajes." + }, "noActiveCalendar": { "message": "¡No se encontró un calendario editable!" }, @@ -1007,6 +1019,12 @@ "CORS_alternative_1": { "message": "¿Problemas al configurar CORS?" }, + "CORS_alternative_2": { + "message": "Presiona el botón a continuación para otorgar el permiso y evitar cualquier problema de CORS." + }, + "CORS_give_allurls_perm": { + "message": "Otorgar permiso “all URLs”" + }, "prefs_OptionText_composing_plain_text": { "message": "Redactando en texto plano" }, @@ -1284,32 +1302,26 @@ "Anthropic_System_Prompt": { "message": "Prompt del sistema" }, - "reset": { - "message": "Reiniciar" - } - }, - "customPrompts_export_include_api_settings": { - "message": "Do you want to include the API settings in the export? Be aware that also the API Key will be saved in the file!", - "description": "" - }, "prefs_OptionText_auto_summary": { - "message": "Enable automatic AI summarization for message previews", - "description": "" + "message": "Habilitar resumen automático de IA para vistas previas de mensajes" }, "prefs_OptionText_auto_summary_Info": { - "message": "If checked, ThunderAI will automatically generate and display AI summaries above email messages when they are opened. Note that this means all messages you preview will immediately be sent to the configured AI service.", - "description": "" + "message": "Si está marcado, ThunderAI generará y mostrará automáticamente resúmenes de IA sobre los mensajes de correo electrónico cuando se abran. Tenga en cuenta que esto significa que todos los mensajes que previsualice se enviarán inmediatamente al servicio de IA configurado." }, "auto_summary_title": { - "message": "AI Summary", - "description": "" + "message": "Resumen de ThunderAI", + "description": "Título del panel de resumen automático" }, "auto_summary_generating": { - "message": "Generating summary...", - "description": "" + "message": "Generando resumen de IA...", + "description": "Texto de carga mostrado mientras se genera el resumen" }, "auto_summary_failed": { - "message": "Failed to generate summary", - "description": "" + "message": "Error al generar el resumen de IA. Verifica tu configuración e inténtalo de nuevo.", + "description": "Mensaje de error cuando falla la generación del resumen" + }, + "auto_summary_prompt": { + "message": "Proporciona un resumen conciso del siguiente mensaje de correo electrónico. El resumen debe tener un máximo de 3-5 oraciones y capturar los puntos principales:\n\n", + "description": "Plantilla de prompt para la generación de resúmenes de IA" } } diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 374e13d3..dd71b608 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -327,6 +327,9 @@ "chagpt_api_send_button": { "message": "Utilisation du modèle" }, + "chagpt_api_connecting": { + "message": "Tentative de connexion à OpenAI ChatGPT en utilisant la clé API fournie" + }, "Debug": { "message": "Debug" }, @@ -360,6 +363,12 @@ "ollama_empty_model": { "message": "Vous n'avez pas choisi de modèle pour l'API Ollama. Veuillez en choisir un sur la page des options." }, + "ollama_api_connecting": { + "message": "Tentative de connexion au serveur local Ollama en utilisant l'hôte" + }, + "andModel": { + "message": "et le modèle" + }, "error_connection_interrupted": { "message": "La connexion au serveur a été interrompue de manière inattendue" }, @@ -390,6 +399,9 @@ "OpenAIComp_empty_model": { "message": "Vous n'avez pas choisi de modèle pour l'API compatible OpenAI. Veuillez en choisir un dans la page des options." }, + "OpenAIComp_api_connecting": { + "message": "Tentative de connexion au serveur local de l'API compatible OpenAI en utilisant l'hôte" + }, "OpenAIComp_api_request_failed": { "message": "La requête de l'API compatible OpenAI a échoué" }, @@ -669,6 +681,9 @@ "google_gemini_api_request_failed": { "message": "La requête API Google Gemini a échoué" }, + "google_gemini_api_connecting": { + "message": "Tentative de connexion à Google Gemini en utilisant la clé API fournie" + }, "google_gemini_empty_apikey": { "message": "Vous n'avez pas ajouté de clé API pour l'API Google Gemini. Veuillez en insérer une dans la page des options." }, @@ -777,7 +792,7 @@ "Moved_to_Spam": { "message": "Déplacé dans le spam" }, - "no_string": { + "spamfilter_not_moved": { "message": "Non" }, "spamfilter_no_reports": { @@ -786,6 +801,9 @@ "SpamFilter_PageTitle": { "message": "Gérer les paramètres du filtre anti-spam" }, + "sparks_not_installed": { + "message": "ThunderAI Sparks non installé !" + }, "SpamFilter_info_default": { "message": "Sur cette page, vous pouvez modifier l'invite par défaut utilisée pour détecter les e-mails indésirables." }, @@ -798,7 +816,7 @@ "SpamReport_Title": { "message": "Rapports du filtre anti-spam" }, - "yes_string": { + "spamfilter_moved": { "message": "Oui" }, "prefs_OptionText_add_tags_auto_Info": { @@ -840,6 +858,12 @@ "context_menu_mzta-add-tags": { "message": "Ajouter des étiquettes" }, + "prefs_OptionText_spamfilter_context_menu": { + "message": "Afficher l'option \"Analyser comme spam\" dans le menu contextuel" + }, + "prefs_OptionText_spamfilter_context_menu_Info": { + "message": "Si coché, l'option \"Analyser comme spam\" apparaîtra lors d’un clic droit sur un e-mail dans la liste des messages." + }, "noActiveCalendar": { "message": "Aucun calendrier modifiable trouvé !" }, @@ -855,6 +879,9 @@ "prefs_OptionText_calendar_enforce_timezone": { "message": "Forcer le fuseau horaire spécifié" }, + "prefs_OptionText_add_tags_context_menu_Info": { + "message": "Si coché, l'option \"Ajouter des étiquettes\" apparaîtra lors d’un clic droit sur un e-mail dans la liste des messages." + }, "chatgpt_win_diff_title": { "message": "Différences entre le texte original et le texte modifié" }, @@ -870,6 +897,9 @@ "apiwebchat_error": { "message": "Erreur" }, + "prefs_OptionText_add_tags_context_menu": { + "message": "Afficher l'option \"Ajouter des étiquettes\" dans le menu contextuel" + }, "apiwebchat_use_this_answer": { "message": "Utiliser cette réponse" }, @@ -900,6 +930,12 @@ "CORS_alternative_1": { "message": "Des problèmes pour configurer le CORS ?" }, + "CORS_alternative_2": { + "message": "Appuie sur le bouton ci-dessous pour accorder la permission afin d'éviter tout problème lié au CORS." + }, + "CORS_give_allurls_perm": { + "message": "Accorde la permission \"tous les URLs\"" + }, "remember_CORS": { "message": "N'oublie pas, tu dois configurer les paramètres CORS sur le serveur !" }, @@ -1300,32 +1336,27 @@ "prefs_anthropic_temperature_Info": { "message": "Degré d'aléa injecté dans la réponse. La valeur par défaut est 1,0. La plage de valeurs s'étend di 0,0 à 1,0. Utilisez une température proche de 0,0 pour des tâches analytiques ou des choix multiples, et proche de 1,0 pour des tâches créatives et génératives. Notez que même avec une température de 0,0, les résultats ne seront pas totalement déterministes." }, - "reset": { - "message": "Réinitialiser" - } - }, - "customPrompts_export_include_api_settings": { - "message": "Do you want to include the API settings in the export? Be aware that also the API Key will be saved in the file!", - "description": "" - }, "prefs_OptionText_auto_summary": { - "message": "Enable automatic AI summarization for message previews", - "description": "" + "message": "Activer le résumé automatique par IA pour les aperçus de messages" }, "prefs_OptionText_auto_summary_Info": { - "message": "If checked, ThunderAI will automatically generate and display AI summaries above email messages when they are opened. Note that this means all messages you preview will immediately be sent to the configured AI service.", + "message": "Si coché, ThunderAI générera et affichera automatiquement des résumés par IA au-dessus des messages lorsque vous les ouvrirez. Notez que cela signifie que tous les messages que vous prévisualisez seront immédiatement envoyés au service IA configuré.", "description": "" }, "auto_summary_title": { - "message": "AI Summary", - "description": "" + "message": "Résumé ThunderAI", + "description": "Titre du panneau de résumé automatique" }, "auto_summary_generating": { - "message": "Generating summary...", - "description": "" + "message": "Génération du résumé IA...", + "description": "Texte de chargement affiché pendant la génération du résumé" }, "auto_summary_failed": { - "message": "Failed to generate summary", - "description": "" + "message": "Échec de la génération du résumé IA. Veuillez vérifier vos paramètres et réessayer.", + "description": "Message d'erreur lorsque la génération du résumé échoue" + }, + "auto_summary_prompt": { + "message": "Veuillez fournir un résumé concis du message suivant. Le résumé doit comporter au maximum 3 à 5 phrases et capturer les points principaux :\n\n", + "description": "Modèle d'invite pour la génération de résumés IA" } } diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 2472ef2d..cee60b99 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -54,7 +54,7 @@ "message": "Försöka igen" }, "placeholder_selected_html": { - "message": "Markerad HTML" + "message": "Vald HTML" }, "placeholder_additional_text": { "message": "Ytterligare text" @@ -68,1289 +68,26 @@ "prefs_OptionText_chatgpt_win_width": { "message": "Bredd" }, - "prompt_summarize_this": { - "message": "Sammanfatta detta" + "prefs_OptionText_auto_summary": { + "message": "Aktivera automatisk AI-sammanfattning för meddelandeförhandsvisningar" }, - "prompt_translate_this": { - "message": "Översätt detta" + "prefs_OptionText_auto_summary_Info": { + "message": "Om markerad kommer ThunderAI att generera och visa AI-sammanfattningar ovanför e-postmeddelanden när de öppnas. Observera att detta innebär att alla meddelanden du förhandsgranskar kommer att skickas omedelbart till den konfigurerade AI-tjänsten." }, - "more_info_string": { - "message": "Mer information" + "auto_summary_title": { + "message": "ThunderAI Sammanfattning", + "description": "Titel för den automatiska sammanfattningspanelen" }, - "prompt_classify": { - "message": "Klassificera" + "auto_summary_generating": { + "message": "Genererar AI-sammanfattning...", + "description": "Laddningstext som visas medan sammanfattningen genereras" }, - "customPrompts_reloading_menus": { - "message": "Laddar om menyer..." + "auto_summary_failed": { + "message": "Misslyckades med att generera AI-sammanfattning. Kontrollera dina inställningar och försök igen.", + "description": "Felmeddelande när sammanfattningsgenereringen misslyckas" }, - "customPrompts_form_required_fields": { - "message": "Obligatoriska fält" - }, - "customPrompts_add_to_menu_reading": { - "message": "Läser ett e-postmeddelande" - }, - "customPrompts_add_to_menu_composing": { - "message": "Skriver ett e-postmeddelande" - }, - "chatgpt_win_working": { - "message": "Arbete pågår..." - }, - "chatgpt_win_job_completed": { - "message": "Färdigt!" - }, - "chatgpt_win_job_completed_select": { - "message": "Markera den text du vill använda och klicka på knappen." - }, - "chatgpt_win_get_answer": { - "message": "Använd det valda svaret" - }, - "prefs_OptionText_release_notes": { - "message": "Versionsinformation" - }, - "prefsInfoTitle": { - "message": "Viktig information" - }, - "placeholder_tags_current_email": { - "message": "E-posttaggar" - }, - "placeholder_tags_full_list": { - "message": "Befintliga taggar" - }, - "prefs_OptionText_add_tags_maxnum": { - "message": "Maximalt antal taggar" - }, - "prefs_OptionText_add_tags_maxnum_Info": { - "message": "Det maximala antalet taggar som föreslås av AI:n. Ställ den på 0 om du inte vill begränsa antalet taggar." - }, - "prompt_add_tags_maxnum": { - "message": "Begränsa antalet taggar till" - }, - "prefs_OptionText_add_tags_hide_exclusions": { - "message": "Dölj uteslutna taggar" - }, - "prefs_OptionText_add_tags_hide_exclusions_Info": { - "message": "Om markerad kommer taggarna som finns i undantagslistan att döljas i bekräftelsedialogrutan." - }, - "prefs_OptionText_btnManageTagsInfo": { - "message": "Hantera tagginställningar" - }, - "AddTags_PageTitle": { - "message": "Hantera tagginställningar" - }, - "AddTags_excl_list_title": { - "message": "Undantagslista" - }, - "AddTags_excl_list_infoline": { - "message": "Detta är en lista över taggar som inte får läggas till i e-postmeddelanden." - }, - "save": { - "message": "Spara" - }, - "reset_default": { - "message": "Återställ till standard" - }, - "reset": { - "message": "Återställ" - }, - "addtags_excl_list_infoline2": { - "message": "Lägg till ett ord per rad, eller separera med kommatecken." - }, - "addtags_dialog_title": { - "message": "Lägg till taggar i e-postmeddelandet" - }, - "addtags_exclude_tag": { - "message": "Uteslut tagg" - }, - "addtags_no_tags_received": { - "message": "Inga taggar mottagna från AI:n." - }, - "addtags_no_valid_tags": { - "message": "Inga giltiga taggar hittades efter filtrering med undantagslistan." - }, - "thunderai_error_title": { - "message": "ThunderAI-fel" - }, - "thunderai_warning_title": { - "message": "ThunderAI-varning" - }, - "prefs_OptionText_add_tags_first_uppercase_Info": { - "message": "Om markerad kommer taggarna att ställas in på gemener med endast den första bokstaven som versal." - }, - "prefs_OptionText_add_tags_first_uppercase": { - "message": "Första bokstaven som versal" - }, - "prompt_reply": { - "message": "Svara på detta e-postmeddelande" - }, - "prompt_reply_advanced": { - "message": "Svara på denna tråd" - }, - "prompt_reply_custom_command": { - "message": "Svara med kommando" - }, - "prompt_rewrite_polite": { - "message": "Skriv om artigt" - }, - "prompt_rewrite_formal": { - "message": "Skriv om formellt" - }, - "customPrompts_managePrompts": { - "message": "Hantera promptar" - }, - "prompt_lang": { - "message": "Svara på" - }, - "customPrompts_start_saving": { - "message": "Sparar promptar..." - }, - "customPrompts_reindexing_list": { - "message": "Omindexerar listan..." - }, - "customPrompts_filtering_prompts": { - "message": "Filtrerar promptar..." - }, - "customPrompts_saving_default_prompts": { - "message": "Sparar standardpromptar..." - }, - "customPrompts_saving_custom_prompts": { - "message": "Sparar anpassade promptar..." - }, - "customPrompts_saved": { - "message": "Promptar sparade!" - }, - "customPrompts_form_label_ID": { - "message": "Id" - }, - "customPrompts_form_label_ID_rules": { - "message": "Måste vara unikt, med gemener och utan mellanslag" - }, - "customPrompts_form_label_Text": { - "message": "Prompttext" - }, - "customPrompts_form_label_need_selected": { - "message": "Textval behövs" - }, - "customPrompts_form_label_need_signature": { - "message": "Lägg alltid till signaturen" - }, - "customPrompts_form_label_need_custom_text": { - "message": "Be om ytterligare text" - }, - "customPrompts_form_label_use_diff_viewer": { - "message": "Aktivera visaren för textjämförelse" - }, - "customPrompts_form_label_use_diff_viewer_title": { - "message": "Textjämförelsevisaren kan väljas när åtgärden är inställd på \"Ersätt text\"." - }, - "customPrompts_btnAddNewCommit": { - "message": "Lägg till prompten" - }, - "customPrompts_add_to_menu": { - "message": "Lägg till i meny" - }, - "customPrompts_close_button": { - "message": "Stäng-knapp" - }, - "customPrompts_do_reply": { - "message": "Svara" - }, - "customPrompts_substitute_text": { - "message": "Ersätt text" - }, - "chatgpt_textarea_not_found_error": { - "message": "Det verkar som att ChatGPT-sidan tar för lång tid att ladda. Om den är klar klickar du på knappen till höger. Om problemet kvarstår kontrollerar du tjänstens status." - }, - "chatgpt_sendbutton_not_found_error": { - "message": "Klicka på skicka-knappen för att skicka in prompten." - }, - "chatgpt_user_not_logged_in": { - "message": "Du är inte inloggad på ChatGPT. Logga in med dina inloggningsuppgifter, stäng ChatGPT-fönstret och upprepa sedan åtgärden du försökte göra. Du kommer att förbli inloggad efteråt." - }, - "chatgpt_win_model_warning": { - "message": "Av någon anledning är det inte möjligt att verifiera om rätt modell är laddad. För tillfället kan du trycka på den blå knappen för att fortsätta." - }, - "chatgpt_win_custom_text": { - "message": "Infoga här den ytterligare texten för prompten." - }, - "chatgpt_force_completion": { - "message": "tvinga slutförande" - }, - "prompt_this": { - "message": "Prompt detta" - }, - "prompt_string": { - "message": "Prompt" - }, - "customPrompts_managePrompts_info_default": { - "message": "Standardpromptar kan inte redigeras. Du kan inaktivera dem och sedan kopiera prompttexten och klistra in den i en ny för att skapa en modifierad version." - }, - "customPrompts_managePrompts_info_default_2": { - "message": "Du kan importera och exportera promptar. Befintliga promptar med samma ID kommer att skrivas över. Promptar med nya ID:n kommer att läggas till." - }, - "customPrompts_managePrompts_info_default_3": { - "message": "Om allt är korrekt, klicka på knappen \"Spara alla\" efter importen." - }, - "chatgpt_force_completion_title": { - "message": "Klicka här för att visa knappen \"Använd senaste svar\" om ChatGPT har slutfört sitt arbete men knappen inte har visats." - }, - "msg_prompt_too_long": { - "message": "Texten du angav är för lång. Du måste förkorta den." - }, - "prefs_status_page": { - "message": "tjänstestatus" - }, - "prefs_OptionText_chatgpt_win_text": { - "message": "AI-chattfönstrets dimensioner" - }, - "prefs_OptionText_default_sign_name": { - "message": "Standardsignaturnamn" - }, - "prefs_OptionText_default_chatgpt_lang": { - "message": "Standardspråk för svaren" - }, - "prefs_OptionText_reply_all": { - "message": "Svara alla" - }, - "prefs_OptionText_reply_sender": { - "message": "Svara till avsändaren" - }, - "prefs_OptionText_reply_type": { - "message": "Svarstyp" - }, - "prefs_OptionText_reply_type_Info": { - "message": "Detta är standardsvarstypen som används när du svarar på ett e-postmeddelande. Du kan välja den andra typen senare i svarsdialogrutan." - }, - "prefs_OptionText_btnManagePrompts": { - "message": "Hantera dina promptar" - }, - "prefs_OptionText_btnManageCustomDataPH": { - "message": "Hantera dina dataplatshållare" - }, - "prefsInfoDesc_1": { - "message": "Det kan hända att ChatGPT:s webbgränssnitt ändras på ett sätt som stör hur tillägget fungerar. Kontrollera sidan \"Tjänststatus\" som är länkad längst ner på den här sidan. Kom också ihåg att första gången du använder ThunderAI måste du logga in på ChatGPT." - }, - "prefsInfoDesc_2": { - "message": "För att använda ChatGPT API behöver du en OpenAI ChatGPT API-nyckel och måste välja en modell." - }, - "prefsInfoDesc_3": { - "message": "För att använda integrationen med Ollama måste du konfigurera en lokal Ollama-server. När servern är igång anger du dess adress i det angivna fältet i applikationen. För att säkerställa korrekt kommunikation mellan ThunderAI och Ollama-servern, kom ihåg att ange OLLAMA_ORIGINS=moz-extension://*." - }, - "prefsInfoDesc_4": { - "message": "För att använda den här integrationen behöver du konfigurera en lokal server som är kompatibel med OpenAI API, som LM Studio. När servern är igång anger du dess adress i det angivna fältet i applikationen. För att säkerställa korrekt kommunikation mellan ThunderAI och den lokala servern, kom ihåg att ställa in CORS-inställningarna korrekt." - }, - "prefsInfoDesc_5": { - "message": "Kom ihåg att du kan öppna ThunderAI-menyn med kortkommandot CTRL+ALT+A." - }, - "prefsInfoDesc_6": { - "message": "Du kan ändra genvägen genom att klicka på kugghjulsikonen längst upp till höger på den här sidan och välja \"Hantera genväg för tillägg\"." - }, - "prefsDonation_1": { - "message": "Gillar du det här tillägget?" - }, - "prefsDonation_2": { - "message": "Överväg att göra en donation!" - }, - "backToOptionsText": { - "message": "Alternativ" - }, - "TranslateText": { - "message": "Vill du hjälpa till att översätta det här tillägget?" - }, - "TranslateLink": { - "message": "Ta reda på hur!" - }, - "customPrompts_ExportAll": { - "message": "Exportera alla promptar" - }, - "customPrompts_Import": { - "message": "Importera nya promptar" - }, - "importPrompts_confirmText": { - "message": "Du håller på att importera nya promptar." - }, - "customPrompts_start_import": { - "message": "Startar import av anpassade promptar..." - }, - "customPrompts_import_completed": { - "message": "Import av anpassade promptar är klar! Du måste klicka på knappen \"Spara alla\" för att spara dina ändringar." - }, - "importPrompts_invalidFile": { - "message": "Filen du försöker importera är inte en giltig fil med anpassade promptar." - }, - "importPrompts_invalidPrompts": { - "message": "Filen du försöker importera innehåller inga giltiga promptar." - }, - "currently_used_prompt": { - "message": "För närvarande använt promptnamn" - }, - "customprompts_form_label_define_response_lang": { - "message": "Definiera svarsspråket i prompten" - }, - "prefs_Connection_type": { - "message": "Anslutningstyp" - }, - "prefs_Connection_type_ChatGPT_Web": { - "message": "ChatGPT-webbgränssnitt" - }, - "prefs_Connection_type_ChatGPT_API": { - "message": "ChatGPT OpenAI API" - }, - "prefs_ChatGPT_API_Key": { - "message": "ChatGPT API-nyckel" - }, - "ChatGPT_Models": { - "message": "ChatGPT-modeller" - }, - "ChatGPT_Models_Fetch": { - "message": "Uppdatera listan över ChatGPT-modeller" - }, - "ChatGPT_Models_Error_fetching": { - "message": "Fel vid försök att hämta ChatGPT-modeller" - }, - "Loading": { - "message": "Laddar..." - }, - "error": { - "message": "ThunderAI-fel!" - }, - "chatgpt_empty_apikey": { - "message": "Du har inte lagt till en API-nyckel för ChatGPT API. Vänligen ange en på alternativsidan." - }, - "chatgpt_empty_model": { - "message": "Du har inte valt någon modell för ChatGPT API. Välj en på alternativsidan." - }, - "chagpt_api_send_button": { - "message": "Använda modell" - }, - "Debug": { - "message": "Felsök" - }, - "prefs_OptionText_do_debug_info": { - "message": "Aktivera felsökningssystemet" - }, - "prefs_Connection_type_Ollama_API": { - "message": "Ollama API (Lokal LLM)" - }, - "prefs_Connection_type_OpenAI_Comp_API": { - "message": "OpenAI-kompatibelt API" - }, - "prefs_API_Host": { - "message": "Värdadress" - }, - "Ollama_Models": { - "message": "Ollama-modeller" - }, - "Ollama_Models_Fetch": { - "message": "Uppdatera listan över Ollama-modeller" - }, - "Ollama_Models_Error_fetching": { - "message": "Fel vid försök att hämta Ollama-modeller" - }, - "API_Models_Error_NoModels": { - "message": "Inga modeller hittades" - }, - "ollama_empty_host": { - "message": "Du har inte lagt till en värdadress för Ollama API. Vänligen ange en på alternativsidan." - }, - "ollama_empty_model": { - "message": "Du har inte valt någon modell för Ollama API. Välj en på alternativsidan." - }, - "error_connection_interrupted": { - "message": "Anslutningen till servern avbröts oväntat" - }, - "ollama_api_request_failed": { - "message": "Ollama API-begäran misslyckades" - }, - "chatgpt_api_request_failed": { - "message": "OpenAI ChatGPT API-begäran misslyckades" - }, - "WaitingServerResponse": { - "message": "Väntar på serversvar" - }, - "prefs_API_Host_Info": { - "message": "Något liknande" - }, - "OpenAIComp_Models": { - "message": "OpenAI-kompatibla API-modeller" - }, - "OpenAIComp_Models_Fetch": { - "message": "Uppdatera listan över OpenAI-kompatibla API-modeller" - }, - "OpenAIComp_Models_Error_fetching": { - "message": "Fel vid försök att hämta OpenAI-kompatibla API-modeller" - }, - "OpenAIComp_empty_host": { - "message": "Du har inte lagt till en värdadress för OpenAI-kompatibla API:et. Vänligen ange en på alternativsidan." - }, - "OpenAIComp_empty_model": { - "message": "Du har inte valt en modell för OpenAI-kompatibelt API. Välj en på alternativsidan." - }, - "OpenAIComp_api_request_failed": { - "message": "OpenAI Comp API-begäran misslyckades" - }, - "prefs_OpenAIComp_ChatName": { - "message": "Chattnamn" - }, - "prefs_OpenAIComp_ChatName_Info": { - "message": "Detta är namnet som kommer att användas i AI-chatten." - }, - "StorageSpace": { - "message": "Totalt upptaget lagringsutrymme" - }, - "SearchPrompt": { - "message": "Sök promptar" - }, - "prefs_OptionText_dynamic_menu_force_enter_info": { - "message": "Om markerat, skickas den markerade prompten från menyn automatiskt genom att använda kortkommandot CTRL+ALT+A. Annars visas promptnamnet för användaren, vilket kräver ytterligare ett tryck på Enter-tangenten för att skicka den." - }, - "prefs_OptionText_dynamic_menu_force_enter": { - "message": "Meny: skicka omedelbart prompt" - }, - "prefs_OptionText_dynamic_menu_order_alphabet": { - "message": "Meny: ordna alfabetiskt" - }, - "prefs_OptionText_dynamic_menu_order_alphabet_info": { - "message": "Om markerat kommer promptar i menyn att ordnas alfabetiskt." - }, - "prefs_OptionText_chatgpt_win_dims_info": { - "message": "Ställ in värdet till 0 om du inte vill ange fönsterstorleken." - }, - "prefs_OpenAIComp_API_Key": { - "message": "OpenAI Comp API-nyckel" - }, - "Optional": { - "message": "Valfri" - }, - "OpenChatGPTTab": { - "message": "Öppna fliken ChatGPT" - }, - "OpenChatGPTTab_Info": { - "message": "Vid inloggningsproblem i ThunderAI-fönstret, öppna ChatGPT i en ny flik med knappen till höger, logga in, stäng sedan fliken och fortsätt använda ThunderAI." - }, - "OpenChatGPTTab_Info2": { - "message": "Om du öppnar ChatGPT webbgränssnitt härifrån tillämpas alla konfigurerade inställningar för modellen, projektet och den anpassade GPT:n." - }, - "placeholder_mail_text_body": { - "message": "Mejltext" - }, - "placeholder_mail_html_body": { - "message": "HTML-mejltext" - }, - "placeholder_mail_subject": { - "message": "Ämne för e-postmeddelande" - }, - "placeholder_folder_name": { - "message": "Mappnamn" - }, - "placeholder_folder_path": { - "message": "Mappsökväg" - }, - "placeholder_mail_headers": { - "message": "E-postrubriker" - }, - "placeholder_selected_text": { - "message": "Makerad text" - }, - "placeholder_junk_score": { - "message": "Skräppoäng" - }, - "placeholder_recipients": { - "message": "Mottagare" - }, - "placeholder_cc_list": { - "message": "CC-lista" - }, - "placeholder_author": { - "message": "Författare" - }, - "placeholder_account_email_address": { - "message": "Kontots e-postadress" - }, - "prefs_OptionText_placeholders_use_default_value": { - "message": "Platshållare: använd standardvärde" - }, - "prefs_OptionText_placeholders_use_default_value_info": { - "message": "Om markerat kommer platshållarna att fyllas med standardvärdena när inget värde anges. Annars kommer platshållarna att behållas." - }, - "prefs_OptionText_max_prompt_length": { - "message": "Max promptlängd" - }, - "prefs_OptionText_max_prompt_length_Info": { - "message": "Detta är det maximala antalet tecken som kan användas i en prompt. Annars visas ett felmeddelande. Värdet kan inte redigeras för ChatGPT-webbgränssnittet. Ställ in det på 0 för att inaktivera kontrollen." - }, - "prefs_OptionText_chatgpt_web_model": { - "message": "ChatGPT webbmodell" - }, - "prefs_OptionText_chatgpt_web_model_info": { - "message": "Det här är modellen som kommer att tillämpas för ChatGPT:s webbgränssnitt. Om ingen modell anges eller om en felaktig modell anges, kommer standardmodellen att ställas in av ChatGPT på webbsidan. Den här inställningen fungerar inte med ett gratis ChatGPT-konto." - }, - "prefs_OptionText_chatgpt_web_tempchat": { - "message": "ChatGPT webbgränssnitt tillfällig chatt" - }, - "prefs_OptionText_chatgpt_web_tempchat_info": { - "message": "Om markerad kommer den tillfälliga chatten att användas i ChatGPT:s webbgränssnitt." - }, - "chatgpt_btn_model": { - "message": "Använd den nuvarande modellen" - }, - "SendingPrompt": { - "message": "Skickar prompt..." - }, - "AllowedValues": { - "message": "Tillåtna värden" - }, - "prefs_OptionText_btnManagePrompts_infoline": { - "message": "Du kan använda ytterligare dataplatshållare." - }, - "prefs_OptionText_openai_comp_use_v1": { - "message": "Behåll \"v1\"-kompatibiliteten" - }, - "prefs_OptionText_openai_comp_use_v1_info": { - "message": "Om markerat kommer segmentet \"v1\" i sökvägen för API-anrop att behållas, som \"http://localhost:1234/v1/chat/completions\"." - }, - "prefs_OptionText_openai_comp_info_remote": { - "message": "Här kan du även ange en fjärrserveradress." - }, - "prefs_OptionText_owl_warning": { - "message": "Det verkar som att minst ett av dina konton använder tillägget Owl for Exchange. Det finns ett känt problem mellan Thunderbird och Owl, vilket för närvarande åtgärdas. För närvarande kan du använda ThunderAI när du skriver e-postmeddelanden, men inte när du läser dem." - }, - "prefs_OptionText_chatgpt_web_model_tooltip": { - "message": "Klicka på ett värde för att ställa in det." - }, - "prompt_reply_full_text": { - "message": "Svara på följande e-postmeddelande. Svara endast med den text som behövs och utan extra kommentarer eller annan text." - }, - "prompt_reply_additional_text": { - "message": "Lägg inte till ämnesraden i svaret." - }, - "reply_same_lang": { - "message": "Svara på samma språk." - }, - "sign_msg_as": { - "message": "Signera meddelandet som" - }, - "prompt_reply_advanced_full_text": { - "message": "Svara på följande e-postmeddelande \"{%selected_text%}\", med tanke på att detta är hela tråden med e-postmeddelanden \"{%mail_html_body%}\". Svara endast med den text som behövs och utan extra kommentarer eller annan text." - }, - "prompt_reply_custom_command_full_text": { - "message": "Svara på följande e-postmeddelande \"{%mail_text_body%}\". {%additional_text%}. Svara endast med den text som behövs och utan extra kommentarer eller annan text." - }, - "prompt_rewrite_full_text": { - "message": "Skriv om följande text för att vara mer artig. Svara endast med den omskrivna texten och utan extra kommentarer eller annan text." - }, - "prompt_rewrite_formal_full_text": { - "message": "Skriv om följande text för att göra den mer formell. Svara endast med den omskrivna texten och utan extra kommentarer eller annan text." - }, - "prompt_summarize_this_full_text": { - "message": "Sammanfatta följande e-postmeddelande i en punktlista." - }, - "prompt_translate_this_full_text": { - "message": "Översätt följande e-postmeddelande till" - }, - "prompt_this_full_text": { - "message": "Svara endast med den text som behövs och utan extra kommentarer eller annan text." - }, - "prefs_OptionText_add_tags": { - "message": "Lägg till taggar i e-postmeddelanden" - }, - "prefs_OptionText_add_tags_Info": { - "message": "Om markerat kommer ett alternativ att inkluderas i menyn för att tillämpa taggar på e-postmeddelanden." - }, - "prompt_add_tags": { - "message": "Lägg till taggar i det här e-postmeddelandet" - }, - "prompt_proofread_this": { - "message": "Korrekturläs detta e-postmeddelande" - }, - "prompt_proofread_this_full_text": { - "message": "Korrekturläs följande e-postmeddelande och korrigera eventuella stavfel eller grammatikfel. Svara endast med den korrigerade texten och utan extra kommentarer eller annan text.\n\n\"{%mail_typed_text%}\"" - }, - "AddTags_info_default": { - "message": "På den här sidan kan du ändra standardprompten som används för att lägga till taggar i e-postmeddelanden och hantera undantagslistan." - }, - "AddTags_prompt_text_title": { - "message": "Aktuell prompttext" - }, - "prefs_SurveyLinkText": { - "message": "Dela din feedback och hjälp till att förbättra ThunderAI!" - }, - "prefs_SurveyLinkText2": { - "message": "Klicka här, det tar bara en minut!" - }, - "prefs_OpenAIComp_ForceModel": { - "message": "Infoga modell manuellt" - }, - "OpenAIComp_force_model_ask": { - "message": "Ange här modellnamnet du vill använda." - }, - "prefs_OptionText_add_tags_force_lang": { - "message": "Tvinga språk" - }, - "prefs_OptionText_add_tags_force_lang_Info": { - "message": "Om markerat kommer taggarnas språk att tvingas matcha språket som definierats på ThunderAI-inställningssidan, om det anges." - }, - "prompt_add_tags_force_lang": { - "message": "Taggarna måste vara skrivna på" - }, - "prefs_Connection_type_Google_Gemini_API": { - "message": "Google Gemini API" - }, - "prefs_GoogleGemini_API_Key": { - "message": "API-nyckel" - }, - "GoogleGemini_Models": { - "message": "Google Gemini API-modeller" - }, - "GoogleGemini_Models_Fetch": { - "message": "Uppdatera listan över Google Gemini-modeller" - }, - "GoogleGemini_Models_Error_fetching": { - "message": "Fel vid försök att hämta Google Gemini-modeller" - }, - "google_gemini_api_request_failed": { - "message": "Google Gemini API-begäran misslyckades" - }, - "google_gemini_empty_apikey": { - "message": "Du har inte lagt till en API-nyckel för Google Gemini API. Vänligen ange en på alternativsidan." - }, - "google_gemini_empty_model": { - "message": "Du har inte valt någon modell för Google Gemini API. Välj en på alternativsidan." - }, - "GoogleGemini_SystemInstruction": { - "message": "Systeminstruktion" - }, - "GoogleGemini_SystemInstruction_Info": { - "message": "När du anger en systeminstruktion ger du modellen ytterligare kontext för att förstå uppgiften, ge mer anpassade svar och följa specifika riktlinjer för den prompt som skickas." - }, - "ChatGPT_Developer_Messages": { - "message": "Utvecklarmeddelanden" - }, - "ChatGPT_Developer_Messages_Info": { - "message": "När du anger utvecklarmeddelandena ger du modellen ytterligare kontext för att förstå uppgiften, ge mer anpassade svar och följa specifika riktlinjer för den prompt som skickas." - }, - "prefs_OptionText_btnManagePrompts_infoline3": { - "message": "Du kan använda dataplatshållaren {%tags_full_list%} i prompten för att lista tillgängliga taggar. Med en lämplig prompt kan du sedan tvinga taggarna att endast väljas från listan över de som redan finns." - }, - "prefs_OptionText_get_calendar_event": { - "message": "Lägg till en ny kalenderhändelse från markerad text" - }, - "thunderai_def_lang": { - "message": "Standardspråk som definierat i ThunderAI-alternativ." - }, - "placeholder_mail_attachments_info": { - "message": "Information om bilagorna i e-postmeddelandet" - }, - "prefs_OptionText_spamfilter": { - "message": "Automatiskt skräppostfilter" - }, - "prefs_OptionText_spamfilter_Info": { - "message": "Om markerat kommer ThunderAI automatiskt att flytta skräppostmeddelanden till skräppostmappen." - }, - "prefs_OptionText_btnManageSpamFilterInfo": { - "message": "Hantera inställningar för skräppostfilter" - }, - "SpamFilter_PageTitle": { - "message": "Hantera inställningar för skräppostfilter" - }, - "SpamFilter_info_default": { - "message": "På den här sidan kan du ändra standardprompten som används för att upptäcka skräppost." - }, - "SpamFilter_prompt_text_title": { - "message": "Aktuell prompttext" - }, - "prompt_spamfilter": { - "message": "Upptäck skräppostmeddelanden" - }, - "SpamFilter_prompt_prefs_title": { - "message": "Alternativ för skräppostfilter" - }, - "prefs_OptionText_use_specific_integration": { - "message": "Använd specifik modell och API" - }, - "prefs_OptionText_spamfilter_use_specific_integration_Info": { - "message": "Om markerat kommer modellen och API:et som anges nedan att användas för spamfiltret, oavsett vilket som valts på ThunderAI-alternativsidan." - }, - "prefs_OptionText_spamfilter_threshold_Info": { - "message": "Om värdet som returneras av AI:n överstiger detta tröskelvärde flyttas e-postmeddelandet till skräppostmappen." - }, - "spamfilter_threshold_too_low": { - "message": "Tröskeln för skräppost är för låg! Du kommer troligtvis att markera för många e-postmeddelanden som skräppost!" - }, - "spamfilter_threshold_zero": { - "message": "Tröskeln för skräppost är noll! Du kommer att markera alla e-postmeddelanden som skräppost!" - }, - "Subject": { - "message": "Ämne" - }, - "From": { - "message": "Från" - }, - "Spam_Value": { - "message": "Skräppostvärde" - }, - "Moved_to_Spam": { - "message": "Flyttad till skräppost" - }, - "Explanation": { - "message": "Förklaring" - }, - "Report_Date": { - "message": "Rapportdatum" - }, - "yes_string": { - "message": "Ja" - }, - "no_string": { - "message": "Nej" - }, - "context_menu_mzta-add-tags": { - "message": "Lägg till taggar" - }, - "context_menu_mzta-spamfilter": { - "message": "Analysera för skräppost" - }, - "noActiveCalendar": { - "message": "Ingen redigerbar kalender hittades!" - }, - "btn_show_differences": { - "message": "Visa skillnader" - }, - "chatgpt_win_diff_title": { - "message": "Skillnader mellan originaltexten och den modifierade texten" - }, - "apiwebchat_you": { - "message": "Du" - }, - "apiwebchat_info": { - "message": "Information" - }, - "apiwebchat_error": { - "message": "Fel" - }, - "apiwebchat_use_this_answer": { - "message": "Använd detta svar" - }, - "apiwebchat_stopping": { - "message": "Stoppar" - }, - "apiwebchat_receiving_data": { - "message": "Mottar data" - }, - "hyprland_warning": { - "message": "Om du har problem med att öppna AI-chattfönstret kan du prova att ställa in höjd- och breddvärdena till 0. Det här problemet kan uppstå i vissa Linux-miljöer, till exempel när du använder Hyprland." - }, - "remember_CORS": { - "message": "Kom ihåg att du måste konfigurera CORS-inställningarna på servern!" - }, - "maybe_CORS_openai_comp": { - "message": "Att använda OpenAI-kompatibelt API kan kräva att CORS-inställningar konfigureras på servern." - }, - "CORS_alternative_1": { - "message": "Problem med att ställa in CORS?" - }, - "customPrompts_Properties": { - "message": "Egenskaper" - }, - "customPrompts_show_additional_info": { - "message": "Visa ytterligare egenskaper" - }, - "customPrompts_hide_additional_info": { - "message": "Dölj ytterligare egenskaper" - }, - "customPrompts_show_additional_info_show": { - "message": "Ytterligare egenskaper" - }, - "prefs_OptionText_CustomGPT_Warn": { - "message": "Om ett projekt anges i alternativen eller i en prompt kommer det att åsidosätta inställningen för anpassad GPT." - }, - "prefs_OptionText_Project_No_temporary_chat_warn": { - "message": "Om ett projekt anges i alternativen eller i en prompt kommer den tillfälliga chatten inte att användas." - }, - "prefs_Anthropic_API_Key": { - "message": "Claude API-nyckel" - }, - "prefs_Connection_type_Anthropic_API": { - "message": "Claude API" - }, - "Anthropic_Models": { - "message": "Claude-modeller" - }, - "Anthropic_Models_Fetch": { - "message": "Uppdatera listan med Claude-modeller" - }, - "Anthropic_Models_Error_fetching": { - "message": "Fel vid försök att hämta Claude-modeller" - }, - "Anthropic_Version": { - "message": "Claude API-version" - }, - "Anthropic_Version_Info": { - "message": "KRÄVS. Ändra inte detta värde om du inte vet vad du gör. Mer information finns på:" - }, - "prefs_OptionText_anthropic_max_tokens": { - "message": "Max antal tokens" - }, - "prefs_OptionText_anthropic_max_tokens_Info": { - "message": "Det maximala antalet tokens som ska genereras i slutförandet. Antalet tokens för din prompt plus max_tokens får inte överstiga modellens kontextlängd." - }, - "anthropic_empty_apikey": { - "message": "Du har inte lagt till en API-nyckel för Claude API. Vänligen ange en på alternativsidan." - }, - "anthropic_empty_model": { - "message": "Du har inte valt någon modell för Claude API. Välj en på alternativsidan." - }, - "anthropic_empty_version": { - "message": "Du har inte lagt till en versionssträng för Claude API. Vänligen infoga en på alternativsidan." - }, - "anthropic_api_request_failed": { - "message": "Claude API-begäran misslyckades" - }, - "_api_connecting": { - "message": "Försöker ansluta till $api_string$ med följande konfiguration...", - "placeholders": { - "api_string": { - "content": "$1" - } - } - }, - "_api_connecting_model": { - "message": "Modell" - }, - "_api_connecting_host": { - "message": "Värd" - }, - "_api_connecting_version": { - "message": "Version" - }, - "prefs_OpenAIComp_AvailableServices": { - "message": "Tillgängliga tjänster" - }, - "prefs_OpenAIComp_AvailableServices_Info": { - "message": "Välj en av tjänsterna som är tillgängliga för OpenAI Compatible API eller infoga en manuellt." - }, - "Custom": { - "message": "Anpassad" - }, - "OpenAIComp_Configs_ConfirmApply": { - "message": "Är du säker på att du vill använda konfigurationen \"$config_name$\"?", - "placeholders": { - "config_name": { - "content": "$1" - } - } - }, - "apiwebchat_selection_info": { - "message": "Om du väljer text kommer endast den delen att beaktas." - }, - "ChatGPT_chatgpt_api_store": { - "message": "Använd lagring" - }, - "ChatGPT_chatgpt_api_store_info": { - "message": "Om markerat kommer dina chattar att lagras av OpenAI." - }, - "prefs_chatgpt_api_temperature_Info": { - "message": "Vilken samplingstemperatur som ska användas, mellan 0 och 2. Högre värden som 0,8 gör utdata mer slumpmässig, medan lägre värden som 0,2 gör den mer fokuserad och deterministisk." - }, - "prefs_ollama_temperature_Info": { - "message": "Modellens temperatur. Att öka temperaturen gör att modellen svarar mer kreativt. Standardvärdet är 0,8. Det rekommenderas att använda värden mellan 0 och 1." - }, - "prefs_ollama_think": { - "message": "Aktivera tänkande" - }, - "prefs_ollama_think_Info": { - "message": "Om markerat kommer modellen att tänka innan den svarar. Det här alternativet fungerar bara med modeller som stöder funktionen \"tänk\"." - }, - "chatgpt_win_change_reply_type": { - "message": "Klicka för att ändra svarstypen" - }, - "SelectAll": { - "message": "Markera alla" - }, - "DeselectAll": { - "message": "Avmarkera alla" - }, - "Anthropic_System_Prompt": { - "message": "Systemprompt" - }, - "Anthropic_System_Prompt_Info": { - "message": "Du kan förbättra Claudes prestanda genom att använda en systemprompt för att ge den en roll. Denna teknik, känd som rollprompt, är det mest kraftfulla sättet att använda systempromptar med Claude. Rätt roll kan förvandla Claude från en allmän assistent till din virtuella domänexpert." - }, - "Optional_Permission_Denied_Model_Fetching": { - "message": "Du har nekat den valfria behörighet som krävs för att hämta modeller för den här integrationen." - }, - "Select_your_timezone": { - "message": "Välj din tidszon" - }, - "prefs_OptionText_calendar_enforce_timezone": { - "message": "Tvinga fram den angivna tidszonen" - }, - "prefs_OptionText_calendar_enforce_timezone_Info": { - "message": "Om markerad kommer den angivna tidszonen att tillämpas för kalenderhändelser och uppgifter." - }, - "prefs_OptionText_btnManageCalendarEventInfo": { - "message": "Hantera inställningar för kalenderhändelser" - }, - "GetCalendarEvent_PageTitle": { - "message": "Hantera inställningar för kalenderhändelser" - }, - "GetCalendarEvent_info_default": { - "message": "På den här sidan kan du ändra standardprompten som används för att hämta en kalenderhändelse från markerad text." - }, - "GetCalendarEvent_prompt_text_title": { - "message": "Aktuell prompttext" - }, - "prefs_OptionText_AdvancedPromptResponse_infoline2": { - "message": "Du kan ändra prompten som du vill, men svaret som tas emot från AI:n måste vara i JSON-format enligt standardprompten!" - }, - "prefs_OptionText_get_calendar_event_Sparks_not_present": { - "message": "För att använda kalenderhändelser och uppgifter, installera ThunderAI Sparks-tillägget." - }, - "prefs_OptionText_get_calendar_event_Sparks_wrong_version": { - "message": "För att använda kalenderhändelser och uppgifter, installera en uppdaterad version av ThunderAI Sparks-tillägget." - }, - "GetTask_PageTitle": { - "message": "Hantera inställningar för uppgifter" - }, - "GetTask_info_default": { - "message": "På den här sidan kan du ändra standardprompten som används för att hämta en uppgift från markerad text." - }, - "prefs_OptionText_btnManageTaskInfo": { - "message": "Hantera inställningar för uppgifter" - }, - "prefs_OptionText_download_now": { - "message": "Ladda ner ThunderAI Sparks nu!" - }, - "placeholder_mail_datetime": { - "message": "Datum och tid för e-postmeddelandet" - }, - "placeholder_current_datetime": { - "message": "Aktuellt datum och tid" - }, - "calendar_getting_data_error": { - "message": "Fel vid hämtning av kalenderhändelsedata" - }, - "calendar_opening_dialog_error": { - "message": "Fel vid öppning av dialogrutan för kalenderhändelse" - }, - "task_getting_data_error": { - "message": "Fel vid hämtning av uppgiftsdata" - }, - "task_opening_dialog_error": { - "message": "Fel vid öppning av uppgiftsdialogrutan" - }, - "no_valid_data_received": { - "message": "Inga giltiga data mottagna från AI:n." - }, - "prefs_OptionText_add_tags_auto": { - "message": "Lägg till taggar automatiskt" - }, - "prefs_OptionText_add_tags_auto_Info": { - "message": "Om markerat kommer AI:n automatiskt att lägga till taggar till nyligen mottagna e-postmeddelanden." - }, - "prefs_OptionText_add_tags_auto_Info2": { - "message": "Välj vilket konto du vill aktivera den här funktionen för längst ner på sidan." - }, - "prefs_OptionText_add_tags_auto_force_existing": { - "message": "Tvinga fram befintliga taggar" - }, - "prefs_OptionText_add_tags_auto_force_existing_Info": { - "message": "Om markerat kommer AI:n endast att lägga till befintliga taggar och inte skapa nya taggar." - }, - "prefs_OptionText_add_tags_auto_uselist": { - "message": "Använd endast dessa taggar" - }, - "prefs_OptionText_add_tags_auto_uselist_Info": { - "message": "Om markerat kommer AI:n endast att lägga till taggar från listan nedan." - }, - "prefs_OptionText_add_tags_auto_uselist_list_Info": { - "message": "Listan måste innehålla minst en tagg. Lägg till en tagg per rad, eller separera med ett kommatecken." - }, - "prompt_add_tags_use_list": { - "message": "Använd endast taggarna i den här kommaseparerade listan" - }, - "prefs_OptionText_add_tags_auto_only_inbox": { - "message": "Lägg bara till taggar i e-postmeddelanden i inkorgen" - }, - "prefs_OptionText_add_tags_auto_only_inbox_Info": { - "message": "Om markerat kommer AI:n bara att lägga till taggar till e-postmeddelanden som tas emot i inkorgen." - }, - "prefs_OptionText_add_tags_use_specific_integration_Info": { - "message": "Om markerat kommer modellen och API:et som anges nedan att användas för att lägga till taggar i e-postmeddelanden, oavsett vilket som valts på ThunderAI-alternativsidan." - }, - "placeholder_thunderai_def_sign": { - "message": "Standardsignatur som definierad i ThunderAI-alternativ." - }, - "empty": { - "message": "Den här platshållaren lägger inte till någon text, men den förhindrar att e-postmeddelandets brödtext läggs till automatiskt i slutet av prompten." - }, - "prefs_OptionText_spamfilter_threshold": { - "message": "Tröskel skräppost" - }, - "spamfilter_no_reports": { - "message": "Inga meddelanden har ännu granskats för skräppost. Här hittar du en lista över de senaste 100 skräppostrapporterna för den aktuella sessionen." - }, - "SpamReport_Title": { - "message": "Rapporter om skräppostfilter" - }, - "customDataPH_ExportAll": { - "message": "Exportera alla anpassade dataplatshållare" - }, - "customDataPH_Import": { - "message": "Importera nya dataplatshållare" - }, - "customDataPH_form_label_Text": { - "message": "Dataplatshållartext" - }, - "customDataPH_saving_custom": { - "message": "Sparar anpassade dataplatshållare..." - }, - "customDataPH_saved": { - "message": "Anpassade dataplatshållare sparade!" - }, - "customDataPH_btnAddNewCommit": { - "message": "Lägg till dataplatshållaren" - }, - "importCustomDataPH_confirmText": { - "message": "Du håller på att importera nya anpassade dataplatshållare." - }, - "importCustomDataPH_start_import": { - "message": "Startar import av anpassade dataplatshållare..." - }, - "importCustomDataPH_import_completed": { - "message": "Import av anpassade dataplatshållare är klar! Du måste klicka på knappen \"Spara alla\" för att spara dina ändringar." - }, - "importCustomDataPH_invalidFile": { - "message": "Filen du försöker importera är inte en giltig anpassad dataplatshållarfil." - }, - "importCustomDataPH_invalidDataPHs": { - "message": "Filen du försöker importera innehåller inga giltiga anpassade dataplatshållare." - }, - "customDataPH_add_to_menu": { - "message": "Kan användas i promptar som lagts till i menyn" - }, - "prefs_OptionText_chatgpt_web_br_replace_info": { - "message": "Observera att alla
-taggar i AI:ns svar kommer att ersättas med radbrytningar." - }, - "prefs_OpenAIComp_ClearModelsList": { - "message": "Rensa modelllistan" - }, - "OpenAIComp_ClearModelsList_Confirm": { - "message": "Är du säker på att du vill rensa modellistan? Den här åtgärden kan inte ångras." - }, - "prefs_api_temperature": { - "message": "Temperatur" - }, - "prefs_openai_comp_temperature_Info": { - "message": "Vilken samplingstemperatur som ska användas, mellan 0 och 2. Högre värden som 0,8 gör utdata mer slumpmässig, medan lägre värden som 0,2 gör den mer fokuserad och deterministisk." - }, - "chatgpt_click_force_completion": { - "message": "Det verkar som att det inte går att få tag på det om inte ChatGPT är klar. Klicka här för att tvinga fram slutförandet av jobbet." - }, - "warn_API_needed": { - "message": "För att använda den här funktionen behöver du en API-integration snarare än ChatGPT-webbintegrationen. Du kan definiera ett specifikt API på sidan med funktionsinställningar genom att först markera kryssrutan ovan och sedan klicka på knappen till vänster." - }, - "prompt_classify_full_text": { - "message": "Klassificera följande text i termer av artighet, värme, formalitet, självsäkerhet och anstötlighet. Ange en procentandel för varje kategori. Svara endast med kategorin och poängsätt utan extra kommentarer eller annan text." - }, - "prompt_get_calendar_event": { - "message": "Lägg till en ny kalenderhändelse" - }, - "prompt_get_task": { - "message": "Lägg till en ny uppgift" - }, - "prefs_OptionText_get_calendar_event_Info": { - "message": "Om markerat kommer ett alternativ att inkluderas i menyn för att hämta information om kalenderhändelser från markerad text." - }, - "get_calendar_event_prompt_prefs_title": { - "message": "Alternativ för kalenderhändelser" - }, - "prefs_OptionText_get_task": { - "message": "Lägg till en ny uppgift från markerad text" - }, - "prefs_OptionText_get_task_Info": { - "message": "Om markerat kommer ett alternativ att inkluderas i menyn för att hämta uppgiftsinformation från markerad text." - }, - "get_task_prompt_prefs_title": { - "message": "Uppgiftsalternativ" - }, - "prefs_OptionText_composing_plain_text": { - "message": "Skriva i oformaterad text" - }, - "prefs_OptionText_composing_plain_text_Info": { - "message": "Markera det här alternativet om du skriver e-postmeddelandena i oformaterad text." - }, - "Replace_No_Selected_Text": { - "message": "Ingen text vald, vill du infoga AI:ns svar i början av e-postmeddelandet?" - }, - "prefs_ollama_num_ctx": { - "message": "Antal kontexttokens" - }, - "prefs_ollama_num_ctx_Info": { - "message": "Antalet kontexttokens som ska användas för Ollama API. Ställ in på 0 om du inte vill skicka den som en parameter till servern." - }, - "ask_chatgptweb_permission_1": { - "message": "För att använda ChatGPT-webbintegrationen måste du ge nödvändig behörighet." - }, - "ask_anthropic_api_permission_1": { - "message": "För att använda Claude API-integrationen måste du ge nödvändig behörighet." - }, - "ask_openai_api_permission_1": { - "message": "För att använda OpenAI API-integrationen måste du ge nödvändig behörighet." - }, - "ask_integration_permission_2_popup": { - "message": "Klicka här för att öppna en ny flik och följ instruktionerna." - }, - "ask_integration_permission_2": { - "message": "Klicka här för att fortsätta." - }, - "ask_integration_permission_ok": { - "message": "Tillstånd beviljat. Du kan klicka här för att stänga den här fliken och återgå till huvudfönstret." - }, - "AccountSelector_AutoTags": { - "message": "Välj de konton där automatisk taggning är aktiverad" - }, - "AccountSelector_AutoTags_infoline": { - "message": "Varje ändring sparas omedelbart." - }, - "AccountSelector_Spamfilter": { - "message": "Välj de konton där skräppostfiltret är aktiverat" - }, - "prefs_OptionText_chatgpt_web_project": { - "message": "ChatGPT webbprojekt" - }, - "prefs_OptionText_chatgpt_web_project_info": { - "message": "Detta är projektet som kommer att tillämpas för ChatGPT-webbgränssnittet." - }, - "prefs_OptionText_chatgpt_web_custom_gpt": { - "message": "ChatGPT webbanpassad GPT" - }, - "prefs_OptionText_chatgpt_web_custom_gpt_info": { - "message": "Detta är den anpassade GPT som kommer att tillämpas för ChatGPT-webbgränssnittet." - }, - "prefs_OptionText_chatgpt_web_custom_data_info": { - "message": "Detta måste vara i följande form:" - }, - "prefs_OptionText_chatgpt_web_custom_data_info2": { - "message": "Du hittar rätt värde i webbläsarens URL-fält när du öppnar den relaterade ChatGPT-sidan." - }, - "prefs_OptionText_add_tags_exclusions_exact_match_Info": { - "message": "Om markerat kommer orden i undantagslistan att matchas exakt med taggarna. Annars kommer de också att matcha om de ingår i taggen." - }, - "prefs_OptionText_add_tags_exclusions_exact_match": { - "message": "Exakt matchning för undantag" - }, - "customDataPH_manageDataPH": { - "message": "Hantera dataplatshållare" - }, - "customDataPH_manageDataPH_info_default_3": { - "message": "Du kan också använda standarddataplatshållarna med autokomplettering, precis som när du skriver anpassade promptar." - }, - "customDataPH_manageDataPH_info_default": { - "message": "På den här sidan är det möjligt att definiera anpassade dataplatshållare som ska användas i dina anpassade promptar." - }, - "customDataPH_manageDataPH_info_default_2": { - "message": "Befintliga dataplatshållare med samma ID kommer att skrivas över. Platshållare med nya ID:n kommer att läggas till." - }, - "prefs_google_gemini_thinking_budget": { - "message": "Tänkande budget" - }, - "prefs_google_gemini_thinking_budget_Info": { - "message": "Definiera antalet tokens som ska användas för tänkande. Lämna det här fältet tomt om den valda modellen inte stöder tänkande eller om du vill använda standardmetoden. Ange 0 för att inaktivera tänkande eller -1 för att aktivera dynamiskt tänkande." - }, - "prefs_google_gemini_temperature_Info": { - "message": "Denna parameter måste vara ett tal mellan 0,0 och 2,0. Den styr utdatas slumpmässighet. Standardvärdet varierar beroende på modell. Lämna det tomt för att undvika att parametern anges i API-anropet." - }, - "prefs_anthropic_temperature_Info": { - "message": "Mängd slumpmässighet som injiceras i svaret. Standardvärdet är 1,0. Varierar från 0,0 till 1,0. Använd en temperatur närmare 0,0 för analytiska/flervalsfrågor och närmare 1,0 för kreativa och generativa uppgifter. Observera att även med en temperatur på 0,0 kommer resultaten inte att vara helt deterministiska." - }, - "prompt_add_tags_full_text": { - "message": "Analysera följande e-posttext och generera en JSON-matris med taggar som sammanfattar innehållet. Använd teman, nyckelämnen och relevanta beskrivningar som taggar. Se till att taggarna är koncisa och relevanta för e-postmeddelandets innehåll.\nE-posttext: {%mail_text_body%}\nTänk på följande detaljer för kontext:\n- Avsändare: {%author%}\n- Mottagare: {%recipients%}\n- CC-lista: {%cc_list%}\n- E-postämne: {%mail_subject%}\nBasera dina taggar på e-postmeddelandets text och kontext och ignorera onödig information eller triviala detaljer.\nGenerera ett svar endast i JSON-format. Utdata ska endast vara en JSON-matris med taggar utan ytterligare kommentarer eller text. Här är ett exempel på JSON-formatet som ska användas:\n{\n\"tags\": [\"tag1\", \"tag2\", \"tag3\", \"tag4\", \"tag5\"]\n}" - }, - "addtags_info_additional_statements": { - "message": "Detta uttryck kommer att läggas till i slutet av prompten:" - }, - "AddTags_prompt_prefs_title": { - "message": "Lägga till taggar alternativ" - }, - "placeholder_mail_typed_text": { - "message": "Skriven text före citatbrevets brödtext" - }, - "placeholder_mail_quoted_text": { - "message": "Citerad text i meddelandets brödtext" - }, - "prompt_get_calendar_event_full_text": { - "message": "Extrahera all relevant information som krävs för att generera en kalenderhändelse från följande text. Den extraherade informationen bör innehålla:\n- Händelsetitel\n- Startdatum och tid (inklusive tidszon, om angiven)\n- Slutdatum och tid (inklusive tidszon, om angiven)\n- Heldag (om angiven)\n- Deltagare\nSe till att informationen är tydligt och konsekvent formaterad så att den kan användas direkt för att skapa en kalenderhändelse.\nOm det finns relativa tidsreferenser, tänk på att datum och tid för e-postmeddelandet är \"{%mail_datetime%}\". Beräkna startdatum och tid baserat på denna referens. Om det beräknade startdatumet och tiden är tidigare än \"{%current_datetime%}\", beräkna om startdatumet och tiden med \"{%current_datetime%}\" som bas.\nOm varaktigheten inte anges, sätt den till en timme.\nDessa är deltagarna: {%author%}, {%recipients%}, {%cc_list%}. Om det finns, exkludera min adress: {%account_email_address%}.\nOm du inte kan få en eller flera av de obligatoriska uppgifterna, vänligen svara med en tom sträng.\nGenerera ett svar endast i JSON-format. Inkludera inte ytterligare text eller förklaringar; ange endast JSON. Här är formatet som ska användas:\n{\n\"startDate\": \"ÅÅÅÅMMDDTHHMMSS\",\n\"endDate\": \"ÅÅÅÅMMDDTHHMMSS\",\n\"summary\": \"Sammanfattning av kalenderhändelse här\",\n\"forceAllDay\": false,\n\"attendees\": [attendee1@example.com,attendee2@example.com,attendee3@example.com]\n}\nHär är texten: \"{%selected_text%}\"" - }, - "prompt_get_task_full_text": { - "message": "Extrahera alla relevanta detaljer som krävs för att generera en uppgift från följande text. Den extraherade informationen bör innehålla:\n- Förfallodatum och tid (inklusive tidszon, om angiven)\n- Uppgiftssammanfattning\n- Initialt datum och tid (inklusive tidszon, om angiven)\nSe till att informationen är tydligt och konsekvent formaterad så att den kan användas direkt för att skapa en uppgift.\nOm det finns relativa tidsreferenser, tänk på att datum och tid för e-postmeddelandet är \"{%mail_datetime%}\". Beräkna startdatum och tid baserat på denna referens. Om det beräknade startdatumet och tiden är tidigare än \"{%current_datetime%}\", beräkna om startdatumet och tiden med \"{%current_datetime%}\" som bas.\nOm du inte kan få en eller flera av de obligatoriska uppgifterna, vänligen svara med en tom sträng.\nGenerera ett svar endast i JSON-format. Inkludera inte ytterligare text eller förklaringar; ange endast JSON. Här är formatet som ska användas:\n{\n\"InitialDate\": \"ÅÅÅÅMMDDTHHMMSS\",\n\"dueDate\": \"ÅÅÅÅMMDDTHHMMSS\",\n\"summary\": \"Uppgiftssammanfattning här\"\n}\nOm det inte finns någon information om datumen, ta bort dem.\nHär är texten: \"{%selected_text%}\"" - }, - "prompt_spamfilter_full_text": { - "message": "Analysera följande e-postmeddelande och avgör om det är skräppost eller inte. Tänk på faktorer som misstänkta sökord, överdrivet reklamspråk, vilseledande ämnesrader, förfrågningar om personlig information och ovanliga avsändaradresser.\nAnge ett värde från 0 (inte skräppost) till 100 (skräppost) och en förklaring på högst 10 ord.\nOm meddelandedata saknas, sätt värdet till 0 (inte skräppost) och ange orsaken.\nGenerera ett svar endast i JSON-format. Inkludera inte ytterligare text eller förklaring; ange endast JSON. Här är formatet som ska användas:\n{\n\"spamValue\": ,\n\"explanation\": \"Kort förklaring av ditt resonemang\"\n}\nHär är e-postinformationen:\nAvsändare: \"{%author%}\"\nÄmne: \"{%mail_subject%}\"\nHtml-text: \"{%mail_html_body%}\"" - }, - "Summarize_prompt_prefs_title": { - "message": "Lägg till sammanfattningsalternativ" - }, - "prompt_summarize": { - "message": "Sammanfatta det här e-postmeddelandet eller dessa e-postmeddelanden" - }, - "prompt_summarize_full_text": { - "message": "Du är en assistent som sammanfattar e-postkonversationer.\n\nMed tanke på en e-posttråd, skapa en kortfattad och korrekt sammanfattning som fångar:\n\n- Konversationens huvudämne eller syfte\n- Viktiga beslut, slutsatser eller överenskommelser\n- Viktiga frågor, förfrågningar eller åtgärdspunkter\n- Vem som är ansvarig för varje åtgärdspunkt (om det anges)\n\nUteslut hälsningar, signaturer, citat och överflödig fram-och-tillbaka-text.\nLägg inte till antaganden eller information som inte finns i e-postmeddelandena.\n\nSkriv sammanfattningen på ett tydligt och neutralt språk som passar en upptagen yrkesperson." - }, - "prompt_summarize_email_template": { - "message": "Sammanfattningsmall för e-post" - }, - "prompt_summarize_email_template_full_text": { - "message": "Från: {%author%}\nTill: {%recipients%}\nCC: {%cc_list%}\nÄmne: {%mail_subject%}\nDatum: {%mail_datetime%}\nBilagor:\n{%mail_attachments_info%}\n\nBrödtext:\n{%mail_text_body%}" - }, - "prompt_summarize_email_separator": { - "message": "E-postavgränsare" - }, - "prompt_summarize_email_separator_full_text": { - "message": "\n\n---------- NÄSTA E-POST ----------\n\n" - }, - "prefs_OptionText_Summarize_infoline2": { - "message": "Du kan ändra prompten som du vill, det första fältet är huvudprompten, det andra fältet är mallen för ett enskilt e-postmeddelande. Listan över e-postmeddelanden kommer att läggas till i huvudprompten. E-postmeddelanden kommer att separeras med avgränsaren som anges i det tredje fältet." - }, - "prefs_OptionText_Summarize_main_prompt": { - "message": "Huvudprompten som beskriver uppgiften som ska utföras på alla valda e-postmeddelanden:" - }, - "prefs_OptionText_Summarize_email_template": { - "message": "Mallen för ett enda e-postmeddelande:" - }, - "prefs_OptionText_Summarize_email_separator": { - "message": "Avgränsaren mellan e-postmeddelanden:" - }, - "prefs_OptionText_summarize": { - "message": "Sammanfatta e-postmeddelande" - }, - "prefs_OptionText_summarize_use_specific_integration_Info": { - "message": "Om markerat kommer modellen och API:et som anges nedan att användas för att sammanfatta e-postmeddelanden, oavsett vilket som valts på ThunderAI-alternativsidan." - }, - "prefs_OptionText_summarize_Info": { - "message": "Om markerad läggs ett alternativ till i snabbmenyn för att sammanfatta e-post." - }, - "prefs_OptionText_btnManageSummarizeInfo": { - "message": "Hantera sammanfattningsinställningar" - }, - "Summarize_PageTitle": { - "message": "Hantera sammanfattningsinställningar" - }, - "Summarize_info_default": { - "message": "På den här sidan kan du ändra standardprompten som används för att sammanfatta e-postmeddelanden." - }, - "Summarize_prompt_text_title": { - "message": "Aktuell prompttext" - }, - "context_menu_mzta-summarize": { - "message": "Sammanfatta" - }, - "CORS_alternative_2_new": { - "message": "Tryck på knappen nedan för att ge den aktuella värden behörighet att undvika CORS-problem." - }, - "CORS_give_host_perm": { - "message": "Ge behörighet till den nuvarande värden" - }, - "CORS_localhost_warn": { - "message": "Om du använder localhost eller 127.0.0.1 eftersom AI-servern finns på din dator krävs behörigheten ." + "auto_summary_prompt": { + "message": "Ge en koncis sammanfattning av följande e-postmeddelande. Sammanfattningen bör vara max 3-5 meningar och fånga huvudpunkterna:\n\n", + "description": "Promptmall för AI-sammanfattningsgenerering" } } diff --git a/messageDisplay/message-content-script.js b/messageDisplay/message-content-script.js index b5ac35b8..7bb92c3d 100644 --- a/messageDisplay/message-content-script.js +++ b/messageDisplay/message-content-script.js @@ -14,12 +14,12 @@ async function showSummaryPane() { // Create the title element const summaryTitle = document.createElement("div"); summaryTitle.className = "thunderai-summary-title"; - summaryTitle.innerText = "ThunderAI Summary"; + summaryTitle.innerText = browser.i18n.getMessage("auto_summary_title"); // Create a loading indicator const loadingIndicator = document.createElement("div"); loadingIndicator.className = "thunderai-summary-content"; - loadingIndicator.innerText = "Generating AI summary..."; + loadingIndicator.innerText = browser.i18n.getMessage("auto_summary_generating"); // Create the content element (initially hidden) const summaryContent = document.createElement("div"); @@ -45,12 +45,9 @@ async function showSummaryPane() { summaryContent.style.display = 'block'; } catch (error) { console.error("Error generating AI summary:", error); - loadingIndicator.innerText = "Failed to generate AI summary. Showing message preview instead."; + loadingIndicator.innerText = browser.i18n.getMessage("auto_summary_failed"); loadingIndicator.style.color = '#d70022'; - // Fallback to showing truncated message content - const messageContent = getMessageContent(); - loadingIndicator.innerText += "\n\n" + truncateMessageContent(messageContent); } } @@ -83,12 +80,8 @@ async function generateAISummary(messageContent) { // Clean up the message content const cleanedContent = messageContent.replace(/\s+/g, ' ').trim(); - // Create a simple summary prompt - const summaryPrompt = `Please provide a concise summary of the following email message. The summary should be 3-5 sentences maximum and capture the main points: - -${cleanedContent} - -Summary:`; + // Create a simple summary prompt using localized string + const summaryPrompt = browser.i18n.getMessage("auto_summary_prompt") + cleanedContent; // Request AI summary from the background script return new Promise((resolve, reject) => { @@ -101,9 +94,10 @@ Summary:`; if (response && response.summary) { resolve(response.summary); } else if (response && response.error) { - reject(new Error(response.error)); + // Use the localized error message + reject(new Error(browser.i18n.getMessage("auto_summary_failed"))); } else { - reject(new Error("Failed to get AI summary")); + reject(new Error(browser.i18n.getMessage("auto_summary_failed"))); } }); }); diff --git a/mzta-background.js b/mzta-background.js index 3e7bf7f1..e6aeb0f1 100644 --- a/mzta-background.js +++ b/mzta-background.js @@ -257,16 +257,23 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => { }); // Use the existing ThunderAI infrastructure + // We need to adapt to the new v3.8.0 settings structure const summary = await generateAISummaryUsingThunderAIInfrastructure( message.content, message.prompt, - prefs + { + ...prefs, + // Add the dynamic settings that the new system expects + connection_type: prefs.connection_type, + // For summary, we don't have specific integration settings yet, + // so we'll use the global connection type + } ); return { summary: summary }; } catch (error) { console.error("[ThunderAI] Error generating summary:", error); - return { error: "Failed to generate AI summary: " + error.message }; + return { error: "Failed to generate AI summary. Please confirm your settings and try again." }; } } return _generate_summary(message); @@ -1298,27 +1305,56 @@ async function generateAISummaryUsingThunderAIInfrastructure(content, prompt, pr // Import the special command class const { mzta_specialCommand } = await import('./js/mzta-special-commands.js'); - // Determine which LLM to use based on user preferences - const llmType = getConnectionType(prefs.connection_type, {}, ''); + // Create a prompt config for summary (similar to how other features do it) + // This adapts to the new v3.8.0 dynamic settings system + const summaryPromptConfig = { + id: 'auto_summary', + name: 'Auto Summary', + model: '', // Model will be determined by getConnectionType + connection_type: prefs.connection_type + }; - // Create a special command instance + // Determine which LLM to use based on user preferences using the new v3.8.0 pattern + const llmType = getConnectionType(prefs, summaryPromptConfig, 'auto_summary'); + + // Get the appropriate model based on the connection type using dynamic settings + let model = ''; + if (prefs.connection_type === 'chatgpt_api') { + model = prefs.chatgpt_model; + } else if (prefs.connection_type === 'ollama_api') { + model = prefs.ollama_model; + } else if (prefs.connection_type === 'openai_comp_api') { + model = prefs.openai_comp_model; + } else if (prefs.connection_type === 'google_gemini_api') { + model = prefs.google_gemini_model; + } else if (prefs.connection_type === 'anthropic_api') { + model = prefs.anthropic_model; + } + + // Create a special command instance with the correct v3.8.0 pattern const summaryCommand = new mzta_specialCommand({ prompt: prompt, llm: llmType, - custom_model: prefs.chatgpt_model, - do_debug: prefs.do_debug + custom_model: model, + do_debug: prefs.do_debug, + config: summaryPromptConfig }); - // Initialize the worker - await summaryCommand.initWorker(); + try { + // Initialize the worker + await summaryCommand.initWorker(); - // Send the prompt and get the AI response - const aiResponse = await summaryCommand.sendPrompt(); + // Send the prompt and get the AI response + const aiResponse = await summaryCommand.sendPrompt(); - // Clean up the response - extract just the summary content - const cleanedResponse = cleanAISummaryResponse(aiResponse); + // Clean up the response - extract just the summary content + const cleanedResponse = cleanAISummaryResponse(aiResponse); - return cleanedResponse; + return cleanedResponse; + } catch (error) { + console.error("[ThunderAI] Error in AI summary generation:", error); + throw error; // Re-throw to be handled by the caller + } } /**