Compare commits

...

60 commits

Author SHA1 Message Date
mic
5d1d790e39 antispam in progress aligned to the left 2026-05-13 23:00:07 +02:00
Mic
998d626277
Merge pull request #795 from micz/v4.1.0
v4.1.0
2026-05-13 22:52:19 +02:00
Mic
59efb5f007
Merge branch 'main' into v4.1.0 2026-05-13 22:51:22 +02:00
mic
fb52da1436 Merge branch 'v4.1.0' of github.com:micz/ThunderAI into v4.1.0 2026-05-13 22:47:32 +02:00
mic
42d6b11e29 release notes updated 2026-05-13 22:47:26 +02:00
Mic
94019819ec
Merge pull request #794 from micz/tom-select-update-v4.1.0
Update Tom Select files from VENDORS.md
2026-05-13 22:41:38 +02:00
github-actions[bot]
ee853dd447 Update Tom Select files from VENDORS.md 2026-05-13 20:40:43 +00:00
mic
ce3eb57612 tomselect updated. see #793 2026-05-13 22:40:21 +02:00
mic
326bc39ee6 spamfilter_skip_addressbook is now true by default. fixes #785 2026-05-10 23:09:48 +02:00
Mic
538f8b59a9
Merge pull request #782 from weblate/weblate-thunderai-main
Translations update from Hosted Weblate
2026-04-24 21:13:00 +02:00
Mic
c7a9a7812c
Translated using Weblate (French)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/fr/
2026-04-24 21:11:51 +02:00
Mic
e1288d65d5
Translated using Weblate (Greek)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/el/
2026-04-24 21:11:50 +02:00
Mic
9bbc5fbc69
Translated using Weblate (German)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/de/
2026-04-24 21:11:50 +02:00
Mic
f7186431d3
Translated using Weblate (Italian)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/it/
2026-04-24 21:11:48 +02:00
Mic
39752e6b35
Translated using Weblate (French)
Currently translated at 96.1% (569 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/fr/
2026-04-24 17:08:29 +02:00
Mic
3a0f42f411
Translated using Weblate (French)
Currently translated at 96.1% (569 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/fr/
2026-04-23 23:13:31 +02:00
Mic
d6eaa5842b
Translated using Weblate (Italian)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/it/
2026-04-23 23:13:29 +02:00
Mic
13e0ceaefb
Merge pull request #781 from weblate/weblate-thunderai-main
Translations update from Hosted Weblate. Fixes #780
2026-04-23 22:48:56 +02:00
Christos Kanotidis
e7ec1476d7
Translated using Weblate (Greek)
Currently translated at 99.4% (589 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/el/
2026-04-23 20:12:59 +00:00
Mic
5dfcf20714
Merge pull request #777 from weblate/weblate-thunderai-main
Translations update from Hosted Weblate
2026-04-21 19:01:47 +02:00
bittin1ddc447d824349b2
4f620e2cce
Translated using Weblate (Swedish)
Currently translated at 100.0% (592 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/sv/
2026-04-21 17:09:49 +02:00
Mic
71b5c7f7d5
Merge pull request #775 from weblate/weblate-thunderai-main
Translations update from Hosted Weblate
2026-04-20 23:37:30 +02:00
Mic
48f9002f87
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 64.6% (383 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/zh_Hant/
2026-04-20 23:37:03 +02:00
Mic
71848558cd
Translated using Weblate (German)
Currently translated at 78.8% (467 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/de/
2026-04-20 23:37:03 +02:00
Mic
cccdc8442a
Translated using Weblate (Croatian)
Currently translated at 44.5% (264 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/hr/
2026-04-20 23:37:03 +02:00
Mic
6f0308bbf7
Translated using Weblate (Polish)
Currently translated at 46.1% (273 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/pl/
2026-04-20 23:37:03 +02:00
Mic
0eaa27f8aa
Translated using Weblate (Russian)
Currently translated at 63.8% (378 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/ru/
2026-04-20 23:37:03 +02:00
Mic
9f3671e13f
Translated using Weblate (Portuguese (Brazil))
Currently translated at 44.0% (261 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/pt_BR/
2026-04-20 23:37:03 +02:00
Mic
2f7055db78
Translated using Weblate (Italian)
Currently translated at 81.4% (482 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/it/
2026-04-20 23:37:03 +02:00
Mic
286d127bcd
Translated using Weblate (French)
Currently translated at 78.8% (467 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/fr/
2026-04-20 23:37:03 +02:00
Mic
d3086a7711
Translated using Weblate (Japanese)
Currently translated at 69.5% (412 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/ja/
2026-04-20 23:37:03 +02:00
Mic
2d924ce74c
Translated using Weblate (Greek)
Currently translated at 75.6% (448 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/el/
2026-04-20 23:37:02 +02:00
Mic
1b8ebb756f
Translated using Weblate (Italian)
Currently translated at 81.4% (482 of 592 strings)

Translation: ThunderAI for Thunderbird/main
Translate-URL: https://hosted.weblate.org/projects/thunderai/main/it/
2026-04-20 23:26:26 +02:00
mic
58e4f5130a prefs_OptionText_hide_thinking_info fixed 2026-04-20 23:26:14 +02:00
mic
d007ed37e9 version set to 4.0.7. release notes updated 2026-04-17 22:11:07 +02:00
Mic
82d38f7ebe
Merge pull request #759 from micz/improved_body_decoding
Improved multipart HTML body decoding
2026-04-17 22:09:11 +02:00
Mic
4d145db282
Fix formatting for Swedish translation entry 2026-04-17 00:09:25 +02:00
Mic
8522f0b7f6 improved multipart html body decoding 2026-04-12 22:10:00 +02:00
mic
b235005911 release notes fixed 2026-04-10 23:36:21 +02:00
Mic
fbedb7dfd9
Add ThunderAI Prompt Architect link to README
Added a section for ThunderAI Prompt Architect with attribution.
2026-04-09 21:28:29 +02:00
mic
a92d2f4c55 HTML title removed because Thunderbird is setting its title and then changing it after the windows creation and we are already doing that see https://github.com/micz/ThunderAI/issues/696#issuecomment-4190953876 2026-04-06 23:06:59 +02:00
mic
b17d094d0c the trigger "edited" removed from the workflow. 2026-04-06 00:15:32 +02:00
Mic
742034ce82
Add documentation section to README
Added documentation section with setup guides and custom prompt tutorial links.
2026-04-01 23:40:48 +02:00
mic
a87420c155 release notes updated 2026-04-01 23:05:37 +02:00
mic
da82fb0b6d normalizing also accented characters when creating new tags. see #732 2026-04-01 23:03:34 +02:00
mic
9df3667e75 version set to 4.0.6 2026-04-01 23:00:27 +02:00
mic
9f929ff003 release notes updated 2026-03-27 23:01:09 +01:00
mic
0b3c66b78d fix removing html elements added by thunderai when extracting text or html from the email. see #710 2026-03-27 23:00:33 +01:00
Mic
7d2b811926 stripping printing headers from the html body berfore using it in a placeholder 2026-03-27 00:24:00 +01:00
Mic
43ffdd32e1 release notes updated 2026-03-27 00:24:00 +01:00
mic
b1b02312e9 release notes updated 2026-03-27 00:24:20 +01:00
mic
696ef5aa3c removing html elements added by thunderai when extracting text or html from the email. see #710 2026-03-27 00:22:43 +01:00
mic
0e9790ccf4 release notes updated 2026-03-26 23:46:40 +01:00
mic
3623b92ea5 The API webchat window now has a dynamic title. see #696 2026-03-26 23:44:20 +01:00
mic
63f52703b7 escaping html code also in chatgpt web integration. see #711 2026-03-26 23:41:13 +01:00
mic
36d606bbc6 html mail parts are now displayed as code and are not rendered. see #711 2026-03-26 23:36:49 +01:00
mic
40235e5df4 version set to 4.0.5 2026-03-26 23:29:28 +01:00
mic
afdae833dc release notes updated 2026-03-26 00:14:35 +01:00
Mic
1522e2c04c version set to 4.0.4. release notes updated 2026-03-25 00:19:00 +01:00
Mic
021e317a37 correctly setting the current model in the special prompts pages 2026-03-25 00:13:00 +01:00
22 changed files with 1643 additions and 67 deletions

View file

@ -2,7 +2,7 @@ name: pre-release comment issues
on:
release:
types: [published, edited]
types: [published]
concurrency:
group: ${{ github.workflow }}

View file

@ -3,12 +3,14 @@
<h2>Version 4.1.0 - ??/??/2026</h2>
<h2>Version 4.1.0 - 13/05/2026</h2>
<ul>
<li>Antispam information are now permanently saved for each message [<a href="https://github.com/micz/ThunderAI/issues/675">#675</a>].</li>
<li><i>[All APIs]</i> A summary has been added above the mail content [<a href="https://github.com/micz/ThunderAI/issues/580">#580</a>].</li>
<li><i>[All APIs]</i> Added inline auto translation for emails [<a href="https://github.com/micz/ThunderAI/issues/247">#247</a>].</li>
<li>Custom menus configuration added. Now it's possibile to define which prompts show in the ThunderAI menu, which ones in the context menu and in which order [<a href="https://github.com/micz/ThunderAI/issues/49">#49</a>, <a href="https://github.com/micz/ThunderAI/issues/184">#184</a>, <a href="https://github.com/micz/ThunderAI/issues/680">#680</a>].</li>
<li>Now the popup menu closes immediatly and the working indicator is in the button icon [<a href="https://github.com/micz/ThunderAI/issues/247">#677</a>].</li>
<li><i>[All APIs]</i> Error messages added also for background operations when the API has not been configured correctly [<a href="https://github.com/micz/ThunderAI/issues/766">#766</a>].</li>
<li><i>[Ollama API]</i> Added <i>format: json</i> option [<a href="https://github.com/micz/ThunderAI/issues/703">#703</a>].</li>
<li>Fix: The "Important Information" section in the options page now updates correctly when choosing an integration [<a href="https://github.com/micz/ThunderAI/issues/730">#730</a>].</li>
<li>In the options page now is visible if a special prompt is using a specific API integration [<a href="https://github.com/micz/ThunderAI/issues/676">#676</a>].</li>
@ -18,10 +20,24 @@
<li>Added the <i>{%mail_full_headers%}</i> placeholder to retrieve all the email headers at once [<a href="https://github.com/micz/ThunderAI/issues/713">#713</a>].</li>
<li><i>[All APIs]</i> In the API webchat the status messages have different colors [<a href="https://github.com/micz/ThunderAI/issues/3">#3</a>].</li>
<li>Account exclusion lists for add tags and antispam are enforced only for automatic analysis of incoming emails and not for the context menu action that is always executed [<a href="https://github.com/micz/ThunderAI/issues/749">#749</a>].</li>
<li><i>[All APIs]</i> Inline auto translation for emails added [<a href="https://github.com/micz/ThunderAI/issues/247">#247</a>].</li>
<li>Custom menus configuration added. Now it's possibile to define which prompts show in the ThunderAI menu, which ones in the context menu and in which order [<a href="https://github.com/micz/ThunderAI/issues/49">#49</a>, <a href="https://github.com/micz/ThunderAI/issues/184">#184</a>, <a href="https://github.com/micz/ThunderAI/issues/680">#680</a>].</li>
<li><i>[All APIs]</i> Error messages added also for background operations when the API has not been configured correctly [<a href="https://github.com/micz/ThunderAI/issues/766">#766</a>].</li>
<li>...</li>
</ul>
<h2>Version 4.0.7 - 17/04/2026</h2>
<ul>
<li>Fix: Correctly parsing the body of HTML base64 encoded mails [<a href="https://github.com/micz/ThunderAI/issues/757">#757</a>].</li>
</ul>
<h2>Version 4.0.6 - 01/04/2026</h2>
<ul>
<li>Fix: Now it's possibile to create a tag also with accented characters in the label [<a href="https://github.com/micz/ThunderAI/issues/738">#738</a>].</li>
</ul>
<h2>Version 4.0.5 - 27/03/2026</h2>
<ul>
<li>Fix: HTML part of the mail body used in prompt is displayed as HTML code and it is not rendered. This a display fix, there is no change on how the prompt is sent to the AI [<a href="https://github.com/micz/ThunderAI/issues/711">#711</a>].</li>
<li>Fix: HTML elements added by ThunderAI (like the antispam banner) are now not present in HTML or text data placeholders [<a href="https://github.com/micz/ThunderAI/issues/710">#710</a>].</li>
<li><i>[All APIs]</i> The API webchat window now has a dynamic title [<a href="https://github.com/micz/ThunderAI/issues/696">#696</a>]</li>
</ul>
<h2>Version 4.0.4 - 26/03/2026</h2>
<ul>
<li>Fix: Correctly showing the selected model in the special prompt pages.</li>
</ul>
<h2>Version 4.0.3 - 20/03/2026</h2>
<ul>

View file

@ -60,6 +60,16 @@ Using an API integration, you can activate some automatic features:
<br>
## Documentation
[Setup Guides](https://micz.it/thunderbird-addon-thunderai/guides/) - Step-by-step guides to connect ThunderAI to the AI backend of your choice, from ChatGPT to local models with Ollama.
[Custom Prompt Tutorial](https://micz.it/thunderbird-addon-thunderai/tutorial/) - Learn how to build your first custom prompt from scratch, combining placeholders and user input to automate your email replies.
[ThunderAI Prompt Architect](https://chatgpt.com/g/g-69b6b11c89b88191a6798be6e97025f1-thunder-ai-prompt-architect) - Let ChatGPT help you crafting your custom prompts. Thanks to [Paweł](https://github.com/PawelKinczyk) for this tool!
<br>
## Translations
@ -67,6 +77,8 @@ Do you want to help translate this addon?
[Find out how!](https://micz.it/thunderbird-addon-thunderai/translate/)
<br>
## Changelog
@ -101,7 +113,7 @@ Are you using this addon in your Thunderbird?
- Polish - Polski (pl): [neexpl](https://github.com/neexpl), [makkacprzak](https://github.com/makkacprzak) <img src="https://micz.it/weblate/thunderai/pl.svg">
- Russian - Russkiy (русский) (ru): [Maksim](https://hosted.weblate.org/user/law820314/) <img src="https://micz.it/weblate/thunderai/ru.svg">
- Spanish - Español (es): [Gerardo Sobarzo](https://hosted.weblate.org/user/gerardo.sobarzo/), [Andrés Rendón Hernández](https://hosted.weblate.org/user/arendon/), [Erick Limon](https://hosted.weblate.org/user/ErickLimonG/) <img src="https://micz.it/weblate/thunderai/es.svg">
- Swedish - Svenska (sv): [Andreas Pettersson](https://hosted.weblate.org/user/Andy_tb/) , [Luna Jernberg](https://hosted.weblate.org/user/bittin1ddc447d824349b2/) <img src="https://micz.it/weblate/thunderai/sv.svg">
- Swedish - Svenska (sv): [Andreas Pettersson](https://hosted.weblate.org/user/Andy_tb/), [Luna Jernberg](https://hosted.weblate.org/user/bittin1ddc447d824349b2/) <img src="https://micz.it/weblate/thunderai/sv.svg">
<br>
Do you want to help translate this addon? [Find out how!](https://micz.it/thunderbird-addon-thunderai/translate/) <br>

View file

@ -2,10 +2,10 @@ file: pages\_lib\list.js
source: https://raw.githubusercontent.com/javve/list.js/v2.3.1/dist/list.js
file: pages\_lib\tom-select.base.js
source: https://cdn.jsdelivr.net/npm/tom-select@v2.6.0/dist/js/tom-select.base.js
source: https://cdn.jsdelivr.net/npm/tom-select@v2.6.1/dist/js/tom-select.base.js
file: pages\_lib\tom-select.default.min.css
source: https://cdn.jsdelivr.net/npm/tom-select@v2.6.0/dist/css/tom-select.default.min.css
source: https://cdn.jsdelivr.net/npm/tom-select@v2.6.1/dist/css/tom-select.default.min.css
file: js\lib\diff.js
source: https://cdnjs.cloudflare.com/ajax/libs/jsdiff/7.0.0/diff.js

View file

@ -517,7 +517,7 @@
"message": "Klassifizieren Sie den folgenden Text nach Höflichkeit, Wärme, Formalität, Bestimmtheit und Anstößigkeit und geben Sie einen Prozentsatz für jede Kategorie an. Antworten Sie nur mit der Kategorie und der Punktzahl ohne zusätzliche Kommentare oder andere Texte."
},
"prompt_translate_this_full_text": {
"message": "Übersetzen Sie die folgende E-Mail in"
"message": "Übersetzen Sie die unten stehende E-Mail in die Sprache {%thunderai_translate_lang%}.\n\nRegeln:\n- Übersetzen Sie sowohl den Betreff als auch den Textkörper.\n- Geben Sie das Ergebnis als JSON-Objekt mit drei Feldern zurück: \"subject\", \"body\" und \"status\".\n- Wenn die Übersetzung erstellt wurde, ist der Status gleich 1.\n- Wenn die E-Mail in einer dieser Sprachen \"{%thunderai_translate_exclude_lang%}\" oder in der Sprache {%thunderai_translate_lang%} verfasst ist, geben Sie eine leere Zeichenfolge für den Textkörper und den Betreff zurück und setzen Sie den Status auf -1.\n- Fügen Sie keine Erklärungen, Notizen oder Texte außerhalb des JSON-Objekts hinzu.\n\nE-Mail-Betreff: {%mail_subject%}\n\nE-Mail-Textkörper: {%mail_html_body%}\n\nGenerieren Sie die Antwort ausschließlich im JSON-Format. Die Ausgabe darf nur ein JSON-Objekt sein. Hier ist ein Beispiel für das zu verwendende JSON-Format:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Antworten Sie nur mit dem benötigten Text und ohne zusätzliche Kommentare oder andere Texte."
@ -529,7 +529,7 @@
"message": "Wenn aktiviert, wird ein Element im Menü hinzugefügt, um Tags auf E-Mails anzuwenden."
},
"prompt_add_tags": {
"message": "Tags zu dieser E-Mail hinzufügen"
"message": "Tags hinzufügen"
},
"prompt_add_tags_full_text": {
"message": "Analysiere den folgenden E-Mail-Text und erstelle ein JSON-Array mit Tags, die den Inhalt zusammenfassen. Verwende Themen, zentrale Schlagwörter und relevante Beschreibungen als Tags. Achte darauf, dass die Tags prägnant und inhaltlich relevant sind.\nE-Mail-Text: {%mail_text_body%}\nBerücksichtigen Sie die folgenden Details als Kontext:\n- Absender: {%author%}\n- Empfänger: {%recipients%}\n- CC-Liste: {%cc_list%}\n- E-Mail-Betreff: {%mail_subject%}\nErstelle die Tags auf Grundlage des E-Mail-Inhalts und Kontexts. Ignoriere unnötige Informationen oder unwichtige Details.\nGib die Antwort ausschließlich im JSON-Format aus. Die Ausgabe darf nur ein JSON-Array mit Tags enthalten ohne weiteren Kommentar oder Text. Hier ein Beispiel für das zu verwendende JSON-Format:\n{\n\"tags\": [\"tag1\", \"tag2\", \"tag3\", \"tag4\", \"tag5\"]\n}"
@ -754,7 +754,7 @@
"message": "Aktueller Aufforderungstext"
},
"prompt_spamfilter": {
"message": "Spam-E-Mails erkennen"
"message": "Auf Spam prüfen"
},
"SpamFilter_prompt_prefs_title": {
"message": "Spam-Filter-Optionen"
@ -808,7 +808,7 @@
"message": "Vorhandene Tags erzwingen"
},
"spamfilter_no_reports": {
"message": "Es wurden noch keine Nachrichten auf Spam überprüft. Hier finden Sie eine Liste der letzten 100 Spam-Berichte nur für die aktuelle Sitzung."
"message": "Es wurden noch keine Nachrichten auf Spam geprüft. Hier finden Sie eine Liste der letzten 100 Spam-Berichte."
},
"prefs_OptionText_spamfilter_Info": {
"message": "Wenn ausgewählt, wird ThunderAI Spam-E-Mails automatisch in den Spam-Ordner verschieben."
@ -979,7 +979,7 @@
"message": "Jede Änderung wird sofort gespeichert."
},
"AccountSelector_Spamfilter": {
"message": "Wähle die Konten aus, bei denen der Spamfilter aktiviert ist"
"message": "Wähle die Konten aus, bei denen der automatische Spamfilter aktiviert ist"
},
"prompt_proofread_this": {
"message": "Korrigiere diese E-Mail"
@ -1316,10 +1316,10 @@
"message": "Zusammenfassungseinstellungen"
},
"prompt_summarize": {
"message": "Diese E-Mail o. E-Mails zusammenfassen"
"message": "Zusammenfassen"
},
"prompt_summarize_full_text": {
"message": "Du bist ein Assistent, der E-Mail-Konversationen zusammenfasst.\n\nErstelle aus einem E-Mail-Verlauf eine prägnante und präzise Zusammenfassung, die Folgendes enthält:\n\n- Das Hauptthema oder den Zweck der Konversation\n- Wichtige Entscheidungen, Schlussfolgerungen oder Vereinbarungen\n- Wichtige Fragen, Anfragen oder Aufgaben (Action Items)\n- Die verantwortliche Person für jede Aufgabe (falls angegeben)\n\nLasse Begrüßungen, Signaturen, zitierten Text und redundantes Hin- und Her weg.\nFüge keine Annahmen oder Informationen hinzu, die nicht in den E-Mails enthalten sind.\n\nVerfasse die Zusammenfassung in einer klaren, neutralen Sprache, die für vielbeschäftigte Fachkräfte geeignet ist."
"message": "Geben Sie eine prägnante Zusammenfassung der folgenden E-Mail-Nachricht(en) an. Die Zusammenfassung sollte maximal 3 bis 5 Sätze umfassen und die wesentlichen Punkte enthalten. Schreiben Sie in einfachen Absätzen ohne Aufzählungszeichen, Listen oder Markdown-Formatierung.\n\n"
},
"prompt_summarize_email_template": {
"message": "Vorlage für E-Mail-Zusammenfassung"
@ -1446,5 +1446,369 @@
},
"prefs_chatgpt_win_position_info": {
"message": "Leer lassen, um die Standardposition zu verwenden."
},
"show_in": {
"message": "Anzeigen in"
},
"show_in_popup": {
"message": "Nur Popup"
},
"show_in_context": {
"message": "Nur Kontextmenü"
},
"show_in_both": {
"message": "Beide"
},
"webchat_save_as_summary": {
"message": "Als Zusammenfassung speichern"
},
"prefs_storage_title": {
"message": "Speicher"
},
"prefs_storage_info": {
"message": "Der Speicher wird verwendet, um Informationen über Spam-Scores, Zusammenfassungen und Übersetzungen jeder Nachricht zu speichern."
},
"prefs_storage_size": {
"message": "Speichergröße"
},
"prefs_storage_clear_button": {
"message": "Speicher leeren"
},
"prefs_storage_clear_confirm": {
"message": "Sind Sie sicher, dass Sie alle gespeicherten Daten (Zusammenfassungen, Spam-Berichte, Übersetzungen) löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden."
},
"prefs_storage_clear_done": {
"message": "$COUNT$ Datensätze entfernt.",
"placeholders": {
"count": {
"content": "$1"
}
}
},
"prefsInfoDesc_7": {
"message": "Um die Google Gemini API zu nutzen, benötigen Sie einen Google Gemini API-Key und müssen ein Modell auswählen."
},
"prefsInfoDesc_8": {
"message": "Um die Claude API zu nutzen, benötigen Sie einen Anthropic Claude API-Key und müssen ein Modell auswählen."
},
"placeholder_mail_full_headers": {
"message": "Alle E-Mail-Header"
},
"prefs_OptionText_hide_thinking": {
"message": "Denk-Block standardmäßig einklappen"
},
"prefs_OptionText_hide_thinking_info": {
"message": "Steuert den Anfangszustand des Denk-Blocks, der über der Antwort angezeigt wird. Wenn aktiviert, ist der Block standardmäßig eingeklappt und kann per Klick geöffnet werden. Wenn deaktiviert, ist der Block standardmäßig geöffnet und kann per Klick eingeklappt werden. Der Inhalt des Denk-Prozesses bleibt dabei stets erhalten."
},
"prefs_OptionText_thinking_summary": {
"message": "Denkt nach"
},
"placeholder_thunderai_translate_lang": {
"message": "Die Sprache, die für E-Mail-Übersetzungen verwendet werden soll."
},
"placeholder_thunderai_translate_exclude_lang": {
"message": "Sprachcodes, die nicht übersetzt werden sollen."
},
"SpamFilter_skip_addresses_title": {
"message": "Ausschlussliste für E-Mail-Adressen"
},
"SpamFilter_skip_addresses_infoline": {
"message": "E-Mails von diesen Adressen werden nicht zur Spam-Filterung an die KI gesendet."
},
"SpamFilter_skip_addresses_infoline2": {
"message": "Geben Sie eine E-Mail-Adresse pro Zeile ein oder trennen Sie diese durch Kommas."
},
"spamfilter_skip_addresses_explanation": {
"message": "Der Absender befindet sich auf der Antispam-Ausschlussliste."
},
"prefs_OptionText_spamfilter_skip_addressbook": {
"message": "Adressbuch-Kontakte überspringen"
},
"prefs_OptionText_spamfilter_skip_addressbook_Info": {
"message": "Wenn aktiviert, werden E-Mails von Absendern in Ihren Adressbüchern nicht zur Spam-Prüfung an die KI gesendet."
},
"spamfilter_skip_addressbook_explanation": {
"message": "Der Absender ist ein Kontakt im Adressbuch."
},
"addressbook_permission_denied": {
"message": "Der Zugriff auf das Adressbuch wurde verweigert. Bitte aktivieren Sie die Funktion erneut, um die Berechtigung zu erteilen."
},
"addressbook_permission_error": {
"message": "Fehler beim Anfordern der Adressbuch-Berechtigung. Bitte versuchen Sie es erneut."
},
"apiwebchat_done": {
"message": "Fertig!"
},
"prefs_OptionText_anthropic_extended_thinking_budget": {
"message": "Budget für erweitertes Denken (Tokens)"
},
"prefs_OptionText_anthropic_extended_thinking_budget_Info": {
"message": "Maximale Anzahl an Tokens, die das Modell für erweitertes Denken (Extended Thinking) verwenden darf. Auf 0 setzen, um das erweiterte Denken zu deaktivieren. Wenn diese Funktion aktiviert ist, wird der Temperature-Wert von der Claude-API ignoriert."
},
"prefs_ollama_format_json": {
"message": "JSON-Ausgabe erzwingen"
},
"prefs_ollama_format_json_Info": {
"message": "Wenn aktiviert, wird Ollama gezwungen, eine gültige JSON-Antwort zurückzugeben (nur für unterstützte Modelle)."
},
"prefs_specific_api_indicator": {
"message": "Verwendet $1",
"placeholders": {
"1": {
"content": "$1"
}
}
},
"prefs_OptionText_auto_summary": {
"message": "Automatische KI-Zusammenfassung für Nachrichtenvorschauen aktivieren"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Falls aktiviert, erstellt und zeigt ThunderAI automatisch KI-Zusammenfassungen oberhalb von E-Mails an, sobald diese geöffnet werden. Beachten Sie, dass hierbei alle von Ihnen aufgerufenen Nachrichten sofort an den konfigurierten KI-Dienst gesendet werden."
},
"auto_summary_title": {
"message": "ThunderAI Zusammenfassung"
},
"auto_summary_generating": {
"message": "KI-Zusammenfassung wird generiert..."
},
"auto_summary_failed": {
"message": "KI-Zusammenfassung konnte nicht generiert werden. Bitte Einstellungen prüfen."
},
"prefs_OptionText_summarize_auto": {
"message": "Nachrichten automatisch zusammenfassen"
},
"prefs_OptionText_summarize_auto_Info": {
"message": "Wählen Sie aus, ob beim Anzeigen von Nachrichten automatisch Zusammenfassungen erstellt werden sollen. Erfordert eine API-basierte Verbindung (kein ChatGPT Web)."
},
"prefs_OptionText_summarize_display_mode": {
"message": "Zusammenfassung anzeigen in"
},
"prefs_OptionText_summarize_display_mode_Info": {
"message": "Wählen Sie aus, wo das Ergebnis der Zusammenfassung angezeigt werden soll. Der Inline-Modus zeigt ein Zusammenfassungs-Banner direkt im Nachrichtenbereich an. Der Chat-Fenster-Modus öffnet das KI-Chat-Fenster."
},
"prefs_OptionText_summarize_max_display_length": {
"message": "Maximale Anzeigelänge"
},
"prefs_OptionText_summarize_max_display_length_Info": {
"message": "Maximale Anzahl der Zeichen in der Inline-Zusammenfassung. 0 für kein Limit."
},
"prefs_OptionText_summarize_strip_formatting": {
"message": "Formatierung entfernen"
},
"prefs_OptionText_summarize_strip_formatting_Info": {
"message": "Entfernt HTML und Markdown aus der Zusammenfassung, um nur reinen Text anzuzeigen."
},
"summarize_see_more": {
"message": "Mehr sehen"
},
"summarize_see_less": {
"message": "Weniger sehen"
},
"summarize_title": {
"message": "ThunderAI Überblick"
},
"get_ai_summary": {
"message": "KI-Zusammenfassung"
},
"summarize_collapse": {
"message": "Zusammenfassung einklappen"
},
"summarize_generating": {
"message": "Zusammenfassung wird generiert..."
},
"summarize_error": {
"message": "Zusammenfassung konnte nicht erstellt werden"
},
"summarize_click_to_generate": {
"message": "Klicken Sie hier, um eine Zusammenfassung zu erstellen"
},
"summarize_chatgpt_web_not_supported": {
"message": "Die automatische Zusammenfassung erfordert eine API-basierte Verbindung. Bitte konfigurieren Sie eine API-Verbindung in den ThunderAI-Einstellungen."
},
"summarize_refresh": {
"message": "Zusammenfassung aktualisieren"
},
"spamfilter_refresh": {
"message": "Spam-Bericht aktualisieren"
},
"spamfilter_delete": {
"message": "Spam-Bericht löschen"
},
"summarize_delete": {
"message": "Zusammenfassung löschen"
},
"generic_error_dismiss": {
"message": "Verwerfen"
},
"prefs_OptionText_translate": {
"message": "E-Mail übersetzen"
},
"prefs_OptionText_translate_use_specific_integration_Info": {
"message": "Wenn aktiviert, werden das unten angegebene Modell und die API für Übersetzungen verwendet."
},
"prefs_OptionText_translate_Info": {
"message": "Wenn aktiviert, wird eine Schaltfläche zum Übersetzen im Nachrichtentext hinzugefügt."
},
"prefs_OptionText_btnManageTranslateInfo": {
"message": "Übersetzungseinstellungen verwalten"
},
"Translate_PageTitle": {
"message": "Übersetzungseinstellungen verwalten"
},
"Translate_info_default": {
"message": "Auf dieser Seite können Sie den Standard-Prompt für Übersetzungen bearbeiten."
},
"Translate_prompt_text_title": {
"message": "Aktueller Prompt-Text"
},
"Translate_prompt_prefs_title": {
"message": "Übersetzungsoptionen"
},
"prefs_OptionText_translate_auto": {
"message": "Nachrichten automatisch übersetzen"
},
"prefs_OptionText_action_auto_disabled": {
"message": "Deaktiviert"
},
"prefs_OptionText_action_auto_manual": {
"message": "Nur manuelle Schaltfläche"
},
"prefs_OptionText_action_auto_automatic": {
"message": "Wenn die E-Mail geöffnet wird"
},
"prefs_OptionText_translate_auto_Info": {
"message": "Wählen Sie aus, wann Nachrichten übersetzt werden sollen: deaktiviert, nur beim Klicken auf die Schaltfläche oder automatisch beim Öffnen einer Nachricht."
},
"prefs_OptionText_display_mode_inline": {
"message": "Nachrichtenbereich (inline)"
},
"prefs_OptionText_display_mode_webchat": {
"message": "Chat-Fenster"
},
"prefs_OptionText_translate_max_display_length": {
"message": "Maximale Länge der Anzeige"
},
"prefs_OptionText_translate_max_display_length_Info": {
"message": "Maximale Anzahl der Zeichen, die in der Inline-Übersetzung angezeigt werden. 0 = kein Limit. Wenn festgelegt, wird längerer Text gekürzt und mit einer „Mehr anzeigen“-Schaltfläche versehen."
},
"translate_see_more": {
"message": "Mehr sehen"
},
"translate_see_less": {
"message": "Weniger sehen"
},
"prefs_OptionText_translate_lang": {
"message": "Zielsprache für Übersetzungen"
},
"prefs_OptionText_translate_lang_Info": {
"message": "Sprache, in die E-Mails übersetzt werden sollen. Wenn das Feld leer ist, wird die Standardspracheinstellung verwendet."
},
"prefs_OptionText_translate_exclude_lang": {
"message": "Sprachen ausschließen"
},
"prefs_OptionText_translate_exclude_lang_Info": {
"message": "Kommagetrennte Liste von Sprachkürzeln (z. B. en, fr, it), die von der automatischen Übersetzung ausgeschlossen werden sollen. Falls eine E-Mail in einer dieser Sprachen verfasst ist, wird sie nicht automatisch übersetzt bzw. die Schaltfläche für die manuelle Übersetzung wird nicht angezeigt."
},
"prefs_OptionText_Translate_main_prompt": {
"message": "Der Prompt für die Übersetzungsaufgabe:"
},
"translate_generating": {
"message": "Wird übersetzt..."
},
"translate_click_to_generate": {
"message": "Hier klicken, um diese E-Mail zu übersetzen"
},
"get_ai_translation": {
"message": "KI-Übersetzung"
},
"translate_chatgpt_web_not_supported": {
"message": "Die automatische Übersetzung erfordert eine API-basierte Verbindung. Bitte konfigurieren Sie eine API-Verbindung in den ThunderAI-Einstellungen."
},
"translate_refresh": {
"message": "Übersetzung aktualisieren"
},
"translate_delete": {
"message": "Übersetzung löschen"
},
"translate_banner_title": {
"message": "KI-Übersetzung"
},
"translate_error": {
"message": "Übersetzung fehlgeschlagen."
},
"translate_no_language_configured": {
"message": "Die Übersetzungssprache ist nicht konfiguriert. Bitte legen Sie eine Sprache in den Übersetzungseinstellungen fest oder definieren Sie eine Standardsprache in den allgemeinen Einstellungen."
},
"translate_skipped": {
"message": "Übersetzung übersprungen: Sprache ausgeschlossen oder identisch."
},
"spam_badge_tooltip": {
"message": "Spam-Score — Klicken für Details"
},
"summary_by": {
"message": "Zusammenfassung von"
},
"translate_by": {
"message": "Übersetzung von"
},
"prefs_OptionText_action_auto_batch": {
"message": "Wenn die E-Mail empfangen wird"
},
"placeholder_string": {
"message": "Platzhalter"
},
"menu_order_title": {
"message": "Menü-Reihenfolge"
},
"menu_order_popup_list_title": {
"message": "Popup-Menü"
},
"menu_order_context_list_title": {
"message": "Kontextmenü"
},
"menu_order_saved": {
"message": "Menü-Reihenfolge gespeichert!"
},
"menu_order_tab_reading": {
"message": "Lesen"
},
"menu_order_tab_composing": {
"message": "Verfassen"
},
"menu_order_badge_default": {
"message": "Standard"
},
"menu_order_badge_special": {
"message": "Spezial"
},
"menu_order_badge_custom": {
"message": "Benutzerdefiniert"
},
"menu_order_type_reading": {
"message": "Lesen"
},
"menu_order_type_composing": {
"message": "Verfassen"
},
"menu_order_type_always": {
"message": "Immer"
},
"menu_order_btn_label": {
"message": "Menü-Reihenfolge verwalten"
},
"menu_order_info": {
"message": "Elemente per Drag-and-Drop neu anordnen oder über den Umschalter ein-/ausblenden."
},
"menu_order_active_items": {
"message": "Sichtbare Elemente"
},
"menu_order_hidden_items": {
"message": "Versteckte Elemente"
},
"menu_order_icon_label": {
"message": "Icon wählen"
},
"menu_order_icon_none": {
"message": "(keines)"
}
}

View file

@ -27,7 +27,7 @@
"message": "Ταξινόμησε"
},
"prompt_translate_this": {
"message": "Μετάφρασε το"
"message": "Μετάφρασε"
},
"prompt_this": {
"message": "Μήνυμα για"
@ -705,7 +705,7 @@
"message": "Τρέχον κείμενο προτροπής"
},
"prompt_spamfilter": {
"message": "Εντοπισμός ανεπιθύμητων μηνυμάτων ηλεκτρονικού ταχυδρομείου"
"message": "Ανάλυση για ανεπιθύμητα μηνύματα"
},
"prompt_spamfilter_full_text": {
"message": "Αναλύστε το ακόλουθο email και προσδιορίστε εάν είναι spam ή όχι. Λάβετε υπόψη παράγοντες όπως ύποπτες λέξεις-κλειδιά, υπερβολική διαφημιστική γλώσσα, παραπλανητικές γραμμές θέματος, αιτήματα για προσωπικά στοιχεία και ασυνήθιστες διευθύνσεις αποστολέα.\nΔώστε μια τιμή από 0 (όχι spam) έως 100 (spam) και μια εξήγηση που δεν υπερβαίνει τις 10 λέξεις.\nΣε περίπτωση που λείπουν δεδομένα μηνύματος, ορίστε την τιμή σε 0 (όχι spam) και δώστε τον λόγο.\nΔημιουργήστε μια απάντηση μόνο σε μορφή JSON. Μην συμπεριλάβετε κανένα επιπλέον κείμενο ή εξήγηση. Δώστε μόνο το JSON. Ακολουθεί η μορφή που θα χρησιμοποιηθεί:\n{\n\"explanation\": \"Σύντομη εξήγηση του συλλογισμού σας\",\n\"spamValue\": <ακέραιος αριθμός από 0 έως 100>\n}\nΕδώ βρίσκονται οι πληροφορίες του email:\nΑποστολέας: \"{%author%}\"\nΘέμα: \"{%mail_subject%}\"\nΣώμα Html: \"{%mail_html_body%}\""
@ -732,7 +732,7 @@
"message": "Το όριο ανεπιθύμητης αλληλογραφίας είναι μηδέν! Θα επισημάνετε όλα τα μηνύματα ως ανεπιθύμητα!"
},
"spamfilter_no_reports": {
"message": "Δεν έχουν ελεγχθεί ακόμη μηνύματα για ανεπιθύμητα. Εδώ θα βρείτε μια λίστα με τις τελευταίες 100 αναφορές ανεπιθύμητων μηνυμάτων μόνο για την τρέχουσα συνεδρία."
"message": "Δεν έχουν ελεγχθεί ακόμη μηνύματα για ανεπιθύμητα. Εδώ θα βρείτε μια λίστα με τις τελευταίες 100 αναφορές ανεπιθύμητων μηνυμάτων."
},
"SpamReport_Title": {
"message": "Αναφορές φίλτρου ανεπιθύμητης αλληλογραφίας"
@ -1033,7 +1033,7 @@
"message": "Ταξινομήστε το ακόλουθο κείμενο με βάση την Ευγένεια, τη Ζεστασιά, την Τυπικότητα, την Επιθετικότητα και την Προσβλητικότητα, δίνοντας ένα ποσοστό για κάθε κατηγορία. Απαντήστε μόνο με την κατηγορία και βαθμολογήστε χωρίς επιπλέον σχόλια ή άλλο κείμενο."
},
"prompt_translate_this_full_text": {
"message": "Μεταφράστε το ακόλουθο μήνυμα ηλεκτρονικού ταχυδρομείου στα"
"message": "Μεταφράστε το παρακάτω μήνυμα ηλεκτρονικού ταχυδρομείου στη γλώσσα {%thunderai_translate_lang%}.\n\nΚανόνες:\n- Μεταφράστε τόσο το θέμα όσο και το σώμα του μηνύματος.\n- Επιστρέψτε το αποτέλεσμα ως αντικείμενο JSON με τρία πεδία: \"subject\", \"body\" και \"status\".\n- Εάν η μετάφραση έχει ολοκληρωθεί, το status είναι ίσο με 1.\n- Εάν το μήνυμα είναι γραμμένο σε μία από αυτές τις γλώσσες \"{%thunderai_translate_exclude_lang%}\" ή στη γλώσσα {%thunderai_translate_lang%}, επιστρέψτε μια κενή συμβολοσειρά για το σώμα και το θέμα και ορίστε το status σε -1.\n- Μην προσθέτετε εξηγήσεις, σημειώσεις ή οποιοδήποτε κείμενο εκτός του JSON.\n\nΘέμα μηνύματος: {%mail_subject%}\n\nΣώμα μηνύματος: {%mail_html_body%}\n\nΔημιουργήστε μια απάντηση μόνο σε μορφή JSON. Η έξοδος πρέπει να είναι μόνο ένα αντικείμενο JSON. Ακολουθεί ένα παράδειγμα της μορφής JSON που πρέπει να χρησιμοποιηθεί:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Απαντήστε μόνο με το απαραίτητο κείμενο και χωρίς επιπλέον σχόλια ή άλλο κείμενο."
@ -1045,7 +1045,7 @@
"message": "Εάν είναι επιλεγμένο, θα συμπεριληφθεί ένα στοιχείο στο μενού για την εφαρμογή ετικετών σε μηνύματα ηλεκτρονικού ταχυδρομείου."
},
"prompt_add_tags": {
"message": "Προσθήκη ετικετών σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου"
"message": "Προσθήκη ετικετών"
},
"prompt_add_tags_full_text": {
"message": "Αναλύστε το ακόλουθο κείμενο email και δημιουργήστε έναν πίνακα ετικετών JSON που συνοψίζει το περιεχόμενό του. Χρησιμοποιήστε θέματα, βασικά θέματα και σχετικές περιγραφές ως ετικέτες. Βεβαιωθείτε ότι οι ετικέτες είναι συνοπτικές και σχετικές με το περιεχόμενο του email.\nΚείμενο email: {%mail_text_body%}\nΛάβετε υπόψη τις ακόλουθες λεπτομέρειες για το περιεχόμενο:\n- Αποστολέας: {%author%}\n- Παραλήπτες: {%recipients%}\n- Λίστα CC: {%cc_list%}\n- Θέμα email: {%mail_subject%}\nΒασίστε τις ετικέτες σας στο κείμενο και το περιεχόμενο του email, αγνοώντας περιττές πληροφορίες ή ασήμαντες λεπτομέρειες.\nΔημιουργήστε μια απάντηση μόνο σε μορφή JSON. Η έξοδος θα πρέπει να είναι μόνο ένας πίνακας ετικετών JSON χωρίς κανένα επιπλέον σχόλιο ή κείμενο. Ακολουθεί ένα παράδειγμα της μορφής JSON που θα χρησιμοποιηθεί:\n{\n\"tags\": [\"tag1\", \"tag2\", \"tag3\", \"tag4\", \"tag5\"]\n}"
@ -1291,19 +1291,19 @@
"message": "Εμφάνιση ενός επιπλέον στοιχείου μενού για τη δημιουργία συμβάντων ημερολογίου από περιεχόμενο κειμένου στο πρόχειρο."
},
"Summarize_prompt_prefs_title": {
"message": "Προσθήκη επιλογών σύνοψης"
"message": "Επιλογές σύνοψης"
},
"prompt_summarize": {
"message": "Συνοψίστε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου ή αυτά τα μηνύματα ηλεκτρονικού ταχυδρομείου"
"message": "Συνοψίστε"
},
"prompt_summarize_full_text": {
"message": "Είστε βοηθός που συνοψίζει συνομιλίες μέσω email. \nΔεδομένου ενός νήματος email, δημιουργήστε μια συνοπτική και ακριβή περίληψη που να καταγράφει: \n- Το κύριο θέμα ή τον σκοπό της συζήτησης \n- Βασικές αποφάσεις, συμπεράσματα ή συμφωνίες \n- Σημαντικές ερωτήσεις, αιτήματα ή ενέργειες \n- Ποιος είναι υπεύθυνος για κάθε ενέργεια (εάν αναφέρεται) \nΠαραλείψτε χαιρετισμούς, υπογραφές, παρατιθέμενο κείμενο και περιττές ανταλλαγές απόψεων. Μην προσθέτετε υποθέσεις ή πληροφορίες που δεν υπάρχουν στα email. \nΓράψτε την περίληψη σε σαφή, ουδέτερη γλώσσα, κατάλληλη για έναν πολυάσχολο επαγγελματία."
"message": "Δώστε μια συνοπτική περίληψη των ακόλουθων μηνυμάτων ηλεκτρονικού ταχυδρομείου. Η περίληψη πρέπει να έχει μέγιστο μήκος 3-5 προτάσεις και να καταγράφει τα κύρια σημεία. Γράψτε σε απλές παραγράφους χωρίς κουκκίδες, λίστες ή μορφοποίηση markdown:\n\n"
},
"prompt_summarize_email_template": {
"message": "Σύνοψη προτύπου email"
},
"prompt_summarize_email_template_full_text": {
"message": "Από: {%author%} \nΠρος: {%recipients%} \nΚοινοποίηση: {%cc_list%} \nΘέμα: {%mail_subject%} \nΗμερομηνία: {%mail_datetime%} \nΣυνημμένα: {%mail_attachments_info%} \nΚύριο κείμενο: \n{%mail_text_body%}"
"message": "Από: {%author%} \nΠρος: {%recipients%} \nΚοινοποίηση: {%cc_list%} \nΘέμα: {%mail_subject%} \nΗμερομηνία: {%mail_datetime%} \nΣυνημμένα:\n{%mail_attachments_info%} \n\nΚύριο κείμενο: \n{%mail_text_body%}"
},
"prompt_summarize_email_separator": {
"message": "Διαχωριστής email"
@ -1382,5 +1382,417 @@
},
"copy_text": {
"message": "αντιγραφή"
},
"show_in": {
"message": "Εμφάνιση σε"
},
"show_in_popup": {
"message": "Μόνο αναδυόμενο παράθυρο"
},
"show_in_context": {
"message": "Μόνο μενού περιβάλλοντος"
},
"show_in_both": {
"message": "Και τα δύο"
},
"webchat_save_as_summary": {
"message": "Αποθήκευση ως Σύνοψη"
},
"prefs_storage_title": {
"message": "Αποθήκευση"
},
"prefs_storage_info": {
"message": "Ο χώρος αποθήκευσης χρησιμοποιείται για την αποθήκευση πληροφοριών σχετικά με τη βαθμολογία ανεπιθύμητης αλληλογραφίας, τις περιλήψεις και τις μεταφράσεις κάθε μηνύματος."
},
"prefs_storage_size": {
"message": "Μέγεθος αποθήκευσης"
},
"prefs_storage_clear_button": {
"message": "Εκκαθάριση χώρου αποθήκευσης"
},
"prefs_storage_clear_confirm": {
"message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα αποθηκευμένα δεδομένα (περιλήψεις, αναφορές ανεπιθύμητων μηνυμάτων, μεταφράσεις); Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."
},
"prefs_storage_clear_done": {
"message": "$COUNT$ εγγραφές καταργήθηκαν.",
"placeholders": {
"count": {
"content": "$1"
}
}
},
"prefsInfoDesc_7": {
"message": "Για να χρησιμοποιήσετε το Google Gemini API, χρειάζεστε ένα κλειδί Google Gemini API και πρέπει να επιλέξετε ένα μοντέλο."
},
"prefsInfoDesc_8": {
"message": "Για να χρησιμοποιήσετε το Claude API, χρειάζεστε ένα Anthropic Claude API Key και πρέπει να επιλέξετε ένα μοντέλο."
},
"placeholder_mail_full_headers": {
"message": "Όλες οι κεφαλίδες μηνυμάτων"
},
"prefs_OptionText_hide_thinking": {
"message": "Σύμπτυξη μπλοκ σκέψης από προεπιλογή"
},
"prefs_OptionText_hide_thinking_info": {
"message": "Ελέγχει την αρχική κατάσταση του μπλοκ σκέψης που εμφανίζεται πάνω από την απάντηση. Εάν είναι επιλεγμένο, το μπλοκ συμπτύσσεται από προεπιλογή και μπορεί να ανοιχτεί με ένα κλικ. Εάν δεν είναι επιλεγμένο, το μπλοκ είναι ανοιχτό από προεπιλογή και μπορεί να συμπτυχθεί με ένα κλικ. Το περιεχόμενο της σκέψης διατηρείται πάντα."
},
"prefs_OptionText_thinking_summary": {
"message": "Σκέψη"
},
"prefs_OptionText_chatgpt_web_load_wait_time": {
"message": "Χρόνος αναμονής για φόρτωση σελίδας"
},
"prefs_OptionText_chatgpt_web_load_wait_time_info": {
"message": "Χρόνος σε χιλιοστά του δευτερολέπτου για την αναμονή φόρτωσης της σελίδας ChatGPT πριν από τη φόρτωση του πρόσθετου περιεχομένου. Η προεπιλογή είναι 1000ms. Εάν έχει οριστεί ένα προσαρμοσμένο GPT ή έργο, θα προστεθούν επιπλέον 1000ms σε αυτήν την τιμή."
},
"prefs_doc_title": {
"message": "Documentation"
},
"prefs_doc_setup_guide": {
"message": "Οδηγοί εγκατάστασης"
},
"prefs_doc_custom_prompt_tutorial": {
"message": "Εκπαιδευτικό σεμινάριο προσαρμοσμένης προτροπής"
},
"prefs_doc_open_welcome": {
"message": "Άνοιγμα της σελίδας υποδοχής"
},
"placeholder_thunderai_translate_lang": {
"message": "Η γλώσσα που θα χρησιμοποιηθεί στις μεταφράσεις αλληλογραφίας."
},
"placeholder_thunderai_translate_exclude_lang": {
"message": "Ο κώδικας γλώσσας δεν θα μεταφράζεται όταν βρεθεί."
},
"SpamFilter_skip_addresses_title": {
"message": "Λίστα παράλειψης διεύθυνσης ηλεκτρονικού ταχυδρομείου"
},
"SpamFilter_skip_addresses_infoline": {
"message": "Τα email από αυτές τις διευθύνσεις δεν θα αποστέλλονται στην Τεχνητή Νοημοσύνη για φιλτράρισμα ανεπιθύμητης αλληλογραφίας."
},
"SpamFilter_skip_addresses_infoline2": {
"message": "Προσθέστε μία διεύθυνση ηλεκτρονικού ταχυδρομείου ανά γραμμή ή διαχωρισμένη με κόμμα."
},
"spamfilter_skip_addresses_explanation": {
"message": "Ο αποστολέας βρίσκεται στη λίστα παράλειψης ανεπιθύμητης αλληλογραφίας της διεύθυνσης ηλεκτρονικού ταχυδρομείου."
},
"prefs_OptionText_spamfilter_skip_addressbook": {
"message": "Παράλειψη διευθύνσεων βιβλίων διευθύνσεων"
},
"prefs_OptionText_spamfilter_skip_addressbook_Info": {
"message": "Εάν είναι επιλεγμένο, τα email από αποστολείς στα βιβλία διευθύνσεών σας δεν θα αποστέλλονται στην Τεχνητή Νοημοσύνη για φιλτράρισμα ανεπιθύμητης αλληλογραφίας."
},
"spamfilter_skip_addressbook_explanation": {
"message": "Ο αποστολέας είναι μια επαφή στο βιβλίο διευθύνσεων."
},
"addressbook_permission_denied": {
"message": "Η άδεια χρήσης του βιβλίου διευθύνσεων απορρίφθηκε. Ενεργοποιήστε ξανά τη λειτουργία για να παραχωρήσετε άδεια."
},
"addressbook_permission_error": {
"message": "Σφάλμα κατά την αίτηση άδειας για το βιβλίο διευθύνσεων. Δοκιμάστε ξανά."
},
"apiwebchat_done": {
"message": "Έγινε!"
},
"prefs_OptionText_anthropic_extended_thinking_budget": {
"message": "Προϋπολογισμός εκτεταμένης σκέψης (tokens)"
},
"prefs_OptionText_anthropic_extended_thinking_budget_Info": {
"message": "Μέγιστος αριθμός διακριτικών που μπορεί να δαπανήσει το μοντέλο για εκτεταμένη σκέψη. Ορίστε σε 0 για να απενεργοποιήσετε την εκτεταμένη σκέψη. Όταν είναι ενεργοποιημένη, η τιμή θερμοκρασίας αγνοείται από το Claude API."
},
"prefs_ollama_format_json": {
"message": "Επιβολή εξόδου JSON"
},
"prefs_ollama_format_json_Info": {
"message": "Εάν επιλεγεί, το Ollama θα αναγκαστεί να επιστρέψει μια έγκυρη απόκριση JSON. Αυτή η επιλογή λειτουργεί μόνο με μοντέλα που υποστηρίζουν δομημένη έξοδο."
},
"prefs_specific_api_indicator": {
"message": "Χρησιμοποιώντας 1$",
"placeholders": {
"1": {
"content": "$1"
}
}
},
"prefs_OptionText_auto_summary": {
"message": "Ενεργοποίηση αυτόματης σύνοψης με τεχνητή νοημοσύνη για προεπισκοπήσεις μηνυμάτων"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Εάν είναι επιλεγμένο, το ThunderAI θα δημιουργεί και θα εμφανίζει αυτόματα περιλήψεις AI πάνω από τα μηνύματα email όταν αυτά ανοίγονται. Σημειώστε ότι αυτό σημαίνει ότι όλα τα μηνύματα που βλέπετε σε προεπισκόπηση θα αποστέλλονται αμέσως στην διαμορφωμένη υπηρεσία AI."
},
"auto_summary_title": {
"message": "Σύνοψη ThunderAI"
},
"auto_summary_generating": {
"message": "Δημιουργία σύνοψης τεχνητής νοημοσύνης..."
},
"auto_summary_failed": {
"message": "Η δημιουργία σύνοψης τεχνητής νοημοσύνης απέτυχε. Επιβεβαιώστε τις ρυθμίσεις σας και δοκιμάστε ξανά."
},
"prefs_OptionText_calendar_no_selection_missing_placeholder": {
"message": "Η προτροπή πρέπει να περιέχει το σύμβολο κράτησης θέσης {%mail_text_body_or_selected%} ή {%mail_html_body_or_selected%} για να ενεργοποιηθεί αυτή η επιλογή. Προσθέστε ένα από αυτά τα σύμβολα κράτησης θέσης στην προτροπή ή επαναφέρετέ το στην προεπιλεγμένη τιμή."
},
"spam_check_in_progress": {
"message": "Έλεγχος ανεπιθύμητης αλληλογραφίας σε εξέλιξη..."
},
"prefs_OptionText_summarize_auto": {
"message": "Αυτόματη σύνοψη μηνυμάτων"
},
"prefs_OptionText_summarize_auto_Info": {
"message": "Επιλέξτε εάν θα δημιουργούνται αυτόματα συνόψεις κατά την προβολή μηνυμάτων. Απαιτείται σύνδεση που βασίζεται σε API (όχι ChatGPT Web)."
},
"prefs_OptionText_summarize_display_mode": {
"message": "Εμφάνιση σύνοψης σε"
},
"prefs_OptionText_summarize_display_mode_Info": {
"message": "Επιλέξτε πού θα εμφανίζεται το αποτέλεσμα σύνοψης. Η λειτουργία Inline εμφανίζει ένα banner σύνοψης απευθείας στο παράθυρο μηνύματος. Η λειτουργία παραθύρου συνομιλίας ανοίγει το παράθυρο συνομιλίας με τεχνητή νοημοσύνη."
},
"prefs_OptionText_summarize_max_display_length": {
"message": "Μέγιστο μήκος οθόνης"
},
"prefs_OptionText_summarize_max_display_length_Info": {
"message": "Μέγιστος αριθμός χαρακτήρων που θα εμφανίζονται στην ενσωματωμένη σύνοψη. Ορίστε σε 0 για χωρίς όριο."
},
"prefs_OptionText_summarize_strip_formatting": {
"message": "Μορφοποίηση λωρίδας"
},
"prefs_OptionText_summarize_strip_formatting_Info": {
"message": "Αφαιρέστε τη μορφοποίηση HTML και Markdown από τη σύνοψη που δημιουργείται από την τεχνητή νοημοσύνη, εμφανίζοντας μόνο απλό κείμενο."
},
"summarize_see_more": {
"message": "Δείτε περισσότερα"
},
"summarize_see_less": {
"message": "Δείτε λιγότερα"
},
"summarize_title": {
"message": "Επισκόπηση ThunderAI"
},
"get_ai_summary": {
"message": "Σύνοψη Τεχνητής Νοημοσύνης"
},
"summarize_collapse": {
"message": "Σύμπτυξη σύνοψης"
},
"summarize_generating": {
"message": "Δημιουργία σύνοψης..."
},
"summarize_error": {
"message": "Η δημιουργία σύνοψης απέτυχε"
},
"summarize_click_to_generate": {
"message": "Κάντε κλικ εδώ για να δημιουργήσετε μια σύνοψη"
},
"summarize_chatgpt_web_not_supported": {
"message": "Η αυτόματη σύνοψη απαιτεί σύνδεση που βασίζεται σε API. Παρακαλούμε διαμορφώστε μια σύνδεση API στις ρυθμίσεις του ThunderAI."
},
"summarize_refresh": {
"message": "Ανανέωση σύνοψης"
},
"spamfilter_refresh": {
"message": "Ανανέωση αναφοράς ανεπιθύμητων μηνυμάτων"
},
"spamfilter_delete": {
"message": "Διαγραφή αναφοράς ανεπιθύμητων μηνυμάτων"
},
"summarize_delete": {
"message": "Διαγραφή σύνοψης"
},
"generic_error_dismiss": {
"message": "Απόριψη"
},
"prefs_OptionText_translate": {
"message": "Μετάφραση email"
},
"prefs_OptionText_translate_use_specific_integration_Info": {
"message": "Εάν επιλεγεί, το μοντέλο και το API που καθορίζονται παρακάτω θα χρησιμοποιηθούν για τη μετάφραση email(s), ανεξάρτητα από αυτό που έχει επιλεγεί στη σελίδα επιλογών ThunderAI."
},
"prefs_OptionText_translate_Info": {
"message": "Εάν είναι επιλεγμένο, προσθέτει ένα κουμπί μετάφρασης στο σώμα του μηνύματος."
},
"prefs_OptionText_btnManageTranslateInfo": {
"message": "Διαχείριση ρυθμίσεων μετάφρασης"
},
"Translate_PageTitle": {
"message": "Διαχείριση ρυθμίσεων μετάφρασης"
},
"Translate_info_default": {
"message": "Σε αυτήν τη σελίδα μπορείτε να τροποποιήσετε την προεπιλεγμένη προτροπή που χρησιμοποιείται για τη μετάφραση μηνυμάτων ηλεκτρονικού ταχυδρομείου."
},
"Translate_prompt_text_title": {
"message": "Τρέχον κείμενο προτροπής"
},
"Translate_prompt_prefs_title": {
"message": "Επιλογές μετάφρασης"
},
"prefs_OptionText_translate_auto": {
"message": "Αυτόματη μετάφραση μηνυμάτων"
},
"prefs_OptionText_action_auto_disabled": {
"message": "Απενεργοποιημένο"
},
"prefs_OptionText_action_auto_manual": {
"message": "Μόνο χειροκίνητο κουμπί"
},
"prefs_OptionText_action_auto_automatic": {
"message": "Όταν ανοίξει το email"
},
"prefs_OptionText_translate_auto_Info": {
"message": "Επιλέξτε πότε θα μεταφράζονται τα μηνύματα: απενεργοποιημένη, μόνο όταν κάνετε κλικ στο κουμπί ή αυτόματα κατά το άνοιγμα ενός μηνύματος."
},
"prefs_OptionText_display_mode_inline": {
"message": "Παράθυρο μηνύματος (ενσωματωμένο)"
},
"prefs_OptionText_display_mode_webchat": {
"message": "Παράθυρο συνομιλίας"
},
"prefs_OptionText_translate_max_display_length": {
"message": "Μέγιστο μήκος εμφανιζόμενης μετάφρασης"
},
"prefs_OptionText_translate_max_display_length_Info": {
"message": "Μέγιστος αριθμός χαρακτήρων που εμφανίζονται στην ενσωματωμένη μετάφραση. 0 = χωρίς όριο. Όταν οριστεί, το μεγαλύτερο κείμενο περικόπτεται με την επιλογή \"Δείτε περισσότερα\"."
},
"translate_see_more": {
"message": "Δείτε περισσότερα"
},
"translate_see_less": {
"message": "Δείτε λιγότερα"
},
"prefs_OptionText_translate_lang": {
"message": "Γλώσσα-στόχος μετάφρασης"
},
"prefs_OptionText_translate_lang_Info": {
"message": "Γλώσσα στην οποία θα μεταφραστούν τα μηνύματα ηλεκτρονικού ταχυδρομείου. Εάν είναι κενό, χρησιμοποιείται η προεπιλεγμένη ρύθμιση γλώσσας."
},
"prefs_OptionText_translate_exclude_lang": {
"message": "Εξαίρεση γλωσσών"
},
"prefs_OptionText_translate_exclude_lang_Info": {
"message": "Λίστα κωδικών γλώσσας (π.χ., en, fr, it) διαχωρισμένων με κόμμα για παράλειψη για αυτόματη μετάφραση. Εάν το μήνυμα ηλεκτρονικού ταχυδρομείου είναι σε μία από αυτές τις γλώσσες, δεν θα μεταφραστεί αυτόματα ή το κουμπί χειροκίνητης μετάφρασης δεν θα εμφανιστεί."
},
"prefs_OptionText_Translate_main_prompt": {
"message": "Η προτροπή που περιγράφει την εργασία μετάφρασης:"
},
"translate_generating": {
"message": "Μεταφράζοντας..."
},
"translate_click_to_generate": {
"message": "Κάντε κλικ εδώ για να μεταφράσετε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου"
},
"get_ai_translation": {
"message": "Μετάφραση Τεχνητής Νοημοσύνης"
},
"translate_chatgpt_web_not_supported": {
"message": "Η αυτόματη μετάφραση απαιτεί σύνδεση που βασίζεται σε API. Παρακαλούμε διαμορφώστε μια σύνδεση API στις ρυθμίσεις του ThunderAI."
},
"translate_refresh": {
"message": "Ανανέωση μετάφρασης"
},
"translate_delete": {
"message": "Διαγραφή μετάφρασης"
},
"translate_banner_title": {
"message": "Μετάφραση Τεχνητής Νοημοσύνης"
},
"translate_error": {
"message": "Η μετάφραση απέτυχε."
},
"translate_no_language_configured": {
"message": "Η γλώσσα μετάφρασης δεν έχει ρυθμιστεί. Ορίστε μια γλώσσα στις ρυθμίσεις μετάφρασης ή ορίστε μια προεπιλεγμένη γλώσσα στις Γενικές ρυθμίσεις."
},
"translate_skipped": {
"message": "Η μετάφραση παραλείφθηκε: Η γλώσσα εξαιρείται ή είναι πανομοιότυπη με τη γλώσσα-στόχο."
},
"antispam_by": {
"message": "Antispam από"
},
"spam_badge_tooltip": {
"message": "Βαθμολογία ανεπιθύμητης αλληλογραφίας — Κάντε κλικ για να δείτε την εξήγηση"
},
"summary_by": {
"message": "Σύνοψη από"
},
"translate_by": {
"message": "Μετάφραση από"
},
"prefs_THStats_1": {
"message": "Θέλετε όμορφα στατιστικά στοιχεία για τα email σας;"
},
"prefs_THStats_2": {
"message": "Κάντε κλικ εδώ! Δοκιμάστε το ThunderStats!"
},
"prefs_OptionText_chatgpt_win_pos_text": {
"message": "Θέση παραθύρου συνομιλίας με τεχνητή νοημοσύνη"
},
"prefs_OptionText_chatgpt_win_top": {
"message": "Κορυφαία"
},
"prefs_OptionText_chatgpt_win_left": {
"message": "Αριστερά"
},
"prefs_chatgpt_win_save_position": {
"message": "Αυτόματη αποθήκευση της θέσης του παραθύρου όταν χρησιμοποιείται το κουμπί κλεισίματος."
},
"prefs_chatgpt_win_position_info": {
"message": "Αφήστε το κενό για να χρησιμοποιήσετε την προεπιλεγμένη θέση."
},
"prefs_OptionText_action_auto_batch": {
"message": "Όταν ληφθεί το email"
},
"placeholder_string": {
"message": "Θέση κράτησης"
},
"menu_order_title": {
"message": "Σειρά μενού"
},
"menu_order_popup_list_title": {
"message": "Αναδυόμενο μενού"
},
"menu_order_context_list_title": {
"message": "Μενού περιβάλλοντος"
},
"menu_order_saved": {
"message": "Η σειρά μενού αποθηκεύτηκε!"
},
"menu_order_tab_reading": {
"message": "Ανάγνωση"
},
"menu_order_tab_composing": {
"message": "Σύνθεση"
},
"menu_order_badge_default": {
"message": "Προεπιλογή"
},
"menu_order_badge_special": {
"message": "Σπέσιαλ"
},
"menu_order_badge_custom": {
"message": "Ειδικό"
},
"menu_order_type_reading": {
"message": "Ανάγνωση"
},
"menu_order_type_composing": {
"message": "Σύνθεση"
},
"menu_order_type_always": {
"message": "Πάντοτε"
},
"menu_order_btn_label": {
"message": "Διαχείριση ρυθμίσεων σειράς μενού"
},
"menu_order_info": {
"message": "Σύρετε και αποθέστε στοιχεία για να τα αναδιατάξετε. Χρησιμοποιήστε την εναλλαγή για να εμφανίσετε ή να αποκρύψετε στοιχεία σε κάθε μενού."
},
"menu_order_active_items": {
"message": "Ορατά στοιχεία"
},
"menu_order_hidden_items": {
"message": "Κρυμμένα αντικείμενα"
},
"menu_order_icon_label": {
"message": "Επιλέξτε ένα εικονίδιο"
},
"menu_order_icon_none": {
"message": "(τίποτα)"
}
}

View file

@ -725,11 +725,11 @@
"description": ""
},
"prefs_OptionText_hide_thinking": {
"message": "Hide thinking output",
"message": "Collapse thinking block by default",
"description": ""
},
"prefs_OptionText_hide_thinking_info": {
"message": "If checked, reasoning/thinking output produced by the model is completely removed. If unchecked, it is shown in a collapsed block above the answer.",
"message": "Controls the initial state of the thinking block shown above the answer. If checked, the block is collapsed by default and can be opened with a click. If unchecked, the block is open by default and can be collapsed with a click. The thinking content is always preserved.",
"description": ""
},
"prefs_OptionText_thinking_summary": {

View file

@ -517,7 +517,7 @@
"message": "Classifiez le texte suivant en termes de politesse, chaleur, formalité, assertivité, caractère offensant en donnant un pourcentage pour chaque catégorie. Répondez uniquement avec la catégorie et le score, sans commentaires ou autre texte."
},
"prompt_translate_this_full_text": {
"message": "Traduisez le courriel suivant en"
"message": "Traduisez l'e-mail ci-dessous en {%thunderai_translate_lang%}.\n\nRègles :\n- Traduisez à la fois l'objet et le corps du message.\n- Renvoyez le résultat sous forme d'objet JSON avec trois champs : \"subject\", \"body\" et \"status\".\n- Si la traduction a été effectuée, le statut est égal à 1.\n- Si l'e-mail est écrit dans l'une de ces langues \"{%thunderai_translate_exclude_lang%}\" ou dans la langue {%thunderai_translate_lang%}, renvoyez une chaîne vide pour le corps et l'objet et réglez le statut sur -1.\n- N'ajoutez pas d'explications, de notes ou de texte en dehors du JSON.\n\nObjet du mail : {%mail_subject%}\n\nCorps du mail : {%mail_html_body%}\n\nGénérez une réponse au format JSON uniquement. La sortie doit être exclusivement un objet JSON. Voici un exemple du format JSON à utiliser :\n{\n\"subject\" : \"subject translation\",\n\"body\" : \"body translation\",\n\"status\" : \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Répondez uniquement avec le texte nécessaire, sans commentaires ou autre texte."
@ -961,7 +961,7 @@
"message": "Chaque modification est enregistrée immédiatement."
},
"AccountSelector_Spamfilter": {
"message": "Choisissez les comptes pour lesquels le filtre anti-spam est acti"
"message": "Choisissez les comptes pour lesquels le filtre anti-spam est actif"
},
"ask_integration_permission_ok": {
"message": "Autorisation accordée. Vous pouvez cliquer ici pour fermer cet onglet et revenir à la fenêtre principale."
@ -1235,7 +1235,7 @@
"message": "Définissez le nombre de jetons à utiliser pour le raisonnement. Laissez ce champ vide si le modèle sélectionné ne prend pas en charge le raisonnement ou si vous souhaitez utiliser la méthode par défaut. Entrez 0 pour désactiver le raisonnement, ou -1 pour lactiver de manière dynamique."
},
"prefs_google_gemini_thinking_budget": {
"message": "Thinking Budget"
"message": "Budget de réflexion"
},
"SelectAll": {
"message": "Tout sélectionner"
@ -1319,7 +1319,7 @@
"message": "Résumer cet e-mail ou ces e-mails"
},
"prompt_summarize_full_text": {
"message": "Vous êtes un assistant qui résume les conversations par e-mail.\n\nÀ partir d'un fil de discussion, produisez un résumé concis et précis qui capture :\n\n- Le sujet principal ou l'objet de la conversation.\n- Les décisions clés, conclusions ou accords.\n- Les questions importantes, requêtes ou points à traiter.\n- Le responsable de chaque action à entreprendre (si précisé).\n\nOmettez les salutations, les signatures, le texte cité et les échanges redondants.\nN'ajoutez pas d'hypothèses ou d'informations non présentes dans les e-mails.\n\nRédigez le résumé dans un langage clair et neutre, adapté à un professionnel occupé."
"message": "Fournissez un résumé concis du ou des messages électroniques suivants. Le résumé doit comporter un maximum de 3 à 5 phrases et capturer les points principaux. Rédigez en paragraphes simples, sans listes à puces, énumérations ou formatage markdown.\n\n"
},
"prompt_summarize_email_template": {
"message": "Résumé du modèle d'e-mail"
@ -1446,5 +1446,369 @@
},
"prefs_chatgpt_win_position_info": {
"message": "Laisser vide pour utiliser la position par défaut."
},
"prefs_OptionText_spamfilter_skip_addressbook": {
"message": "Ignorer les adresses du carnet d'adresses"
},
"prefs_OptionText_spamfilter_skip_addressbook_Info": {
"message": "Si cette option est sélectionnée, les e-mails provenant d'expéditeurs figurant dans vos carnets d'adresses ne seront pas envoyés à l'IA pour le filtrage anti-spam."
},
"spamfilter_skip_addressbook_explanation": {
"message": "L'expéditeur est un contact dans votre carnet d'adresses."
},
"addressbook_permission_denied": {
"message": "La permission d'accéder au carnet d'adresses a été refusée. Veuillez réactiver la fonction pour accorder la permission."
},
"addressbook_permission_error": {
"message": "Erreur lors de la demande de permission pour le carnet d'adresses. Veuillez réessayer."
},
"apiwebchat_done": {
"message": "Terminé!"
},
"prefs_OptionText_anthropic_extended_thinking_budget": {
"message": "Budget de réflexion étendue (tokens)"
},
"prefs_OptionText_anthropic_extended_thinking_budget_Info": {
"message": "Nombre maximum de tokens que le modèle peut utiliser pour la réflexion étendue. Réglez sur 0 pour désactiver. Lorsqu'il est activé, la valeur de la température est ignorée par l'API Claude."
},
"prefs_ollama_format_json": {
"message": "Forcer le format JSON"
},
"prefs_ollama_format_json_Info": {
"message": "Si coché, Ollama sera forcé de renvoyer une réponse JSON valide. Cette option ne fonctionne qu'avec les modèles prenant en charge la sortie structurée."
},
"prefs_specific_api_indicator": {
"message": "Utilisation de $1",
"placeholders": {
"1": {
"content": "$1"
}
}
},
"prefs_OptionText_auto_summary": {
"message": "Activer le résumé IA automatique pour l'aperçu des messages"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Si sélectionné, ThunderAI générera et affichera automatiquement des résumés IA au-dessus des messages lors de leur ouverture. Remarque : cela enverra immédiatement chaque message consulté au service IA configuré."
},
"auto_summary_title": {
"message": "Résumé ThunderAI"
},
"auto_summary_generating": {
"message": "Génération du résumé IA..."
},
"auto_summary_failed": {
"message": "Échec de la génération du résumé IA. Vérifiez vos paramètres et réessayez."
},
"prefs_OptionText_summarize_auto": {
"message": "Résumer les messages automatiquement"
},
"prefs_OptionText_summarize_auto_Info": {
"message": "Choisissez de générer automatiquement des résumés lors de la visualisation des messages. Nécessite une connexion basée sur l'API (pas ChatGPT Web)."
},
"prefs_OptionText_summarize_display_mode": {
"message": "Afficher le résumé dans"
},
"prefs_OptionText_summarize_display_mode_Info": {
"message": "Choisissez où afficher le résultat du résumé. Le mode 'En ligne' affiche une bannière directement dans le panneau du message. Le mode 'Fenêtre de chat' ouvre la fenêtre de chat IA."
},
"prefs_OptionText_summarize_max_display_length": {
"message": "Longueur maximale d'affichage"
},
"prefs_OptionText_summarize_max_display_length_Info": {
"message": "Nombre maximum de caractères à afficher dans le résumé en ligne. Réglez sur 0 pour aucune limite."
},
"prefs_OptionText_summarize_strip_formatting": {
"message": "Supprimer le formatage"
},
"prefs_OptionText_summarize_strip_formatting_Info": {
"message": "Supprime le formatage HTML et Markdown du résumé généré par l'IA, n'affichant que du texte brut."
},
"summarize_see_more": {
"message": "Voir plus"
},
"summarize_see_less": {
"message": "Voir moins"
},
"summarize_title": {
"message": "Aperçu ThunderAI"
},
"get_ai_summary": {
"message": "Résumé IA"
},
"summarize_collapse": {
"message": "Réduire le résumé"
},
"summarize_generating": {
"message": "Génération du résumé..."
},
"summarize_error": {
"message": "Impossible de générer le résumé"
},
"summarize_click_to_generate": {
"message": "Cliquez ici pour générer un résumé"
},
"summarize_chatgpt_web_not_supported": {
"message": "Le résumé automatique nécessite une connexion basée sur l'API. Veuillez configurer une connexion API dans les paramètres de ThunderAI."
},
"summarize_refresh": {
"message": "Actualiser le résumé"
},
"spamfilter_refresh": {
"message": "Actualiser le rapport spam"
},
"spamfilter_delete": {
"message": "Supprimer le rapport spam"
},
"summarize_delete": {
"message": "Supprimer le résumé"
},
"generic_error_dismiss": {
"message": "Ignorer"
},
"prefs_OptionText_translate": {
"message": "Traduire les e-mails"
},
"prefs_OptionText_translate_use_specific_integration_Info": {
"message": "Si sélectionné, le modèle et l'API spécifiés ci-dessous seront utilisés pour la traduction des e-mails, quel que soit le choix fait dans les options générales de ThunderAI."
},
"prefs_OptionText_translate_Info": {
"message": "Si sélectionné, ajoute un bouton de traduction dans le corps du message."
},
"prefs_OptionText_btnManageTranslateInfo": {
"message": "Gérer les paramètres de traduction"
},
"Translate_PageTitle": {
"message": "Gérer les paramètres de traduction"
},
"Translate_info_default": {
"message": "Sur cette page, vous pouvez modifier le prompt par défaut utilisé pour traduire les e-mails."
},
"Translate_prompt_text_title": {
"message": "Texte du prompt actuel"
},
"Translate_prompt_prefs_title": {
"message": "Options de traduction"
},
"prefs_OptionText_translate_auto": {
"message": "Traduire les messages automatiquement"
},
"prefs_OptionText_action_auto_disabled": {
"message": "Désactivé"
},
"prefs_OptionText_action_auto_manual": {
"message": "Bouton manuel uniquement"
},
"prefs_OptionText_action_auto_automatic": {
"message": "À l'ouverture de l'e-mail"
},
"prefs_OptionText_translate_auto_Info": {
"message": "Choisissez quand traduire les messages : désactivé, uniquement au clic sur le bouton, ou automatiquement à l'ouverture d'un message."
},
"prefs_OptionText_display_mode_inline": {
"message": "Panneau de message (en ligne)"
},
"prefs_OptionText_display_mode_webchat": {
"message": "Fenêtre de chat"
},
"prefs_OptionText_translate_max_display_length": {
"message": "Longueur maximale de traduction affichée"
},
"prefs_OptionText_translate_max_display_length_Info": {
"message": "Nombre maximum de caractères affichés dans la traduction en ligne. 0 = pas de limite. Si défini, le texte plus long sera tronqué avec un bouton 'Voir plus'."
},
"translate_see_more": {
"message": "Voir plus"
},
"translate_see_less": {
"message": "Voir moins"
},
"prefs_OptionText_translate_lang": {
"message": "Langue de destination"
},
"prefs_OptionText_translate_lang_Info": {
"message": "Langue dans laquelle traduire les e-mails. Si vide, utilise le paramètre de langue par défaut."
},
"prefs_OptionText_translate_exclude_lang": {
"message": "Exclure des langues"
},
"prefs_OptionText_translate_exclude_lang_Info": {
"message": "Liste de codes de langue séparés par des virgules (ex : en, fr, it) à ignorer pour la traduction automatique. Si l'e-mail est dans l'une de ces langues, il ne sera pas traduit automatiquement ou le bouton manuel ne sera pas affiché."
},
"prefs_OptionText_Translate_main_prompt": {
"message": "Prompt décrivant la tâche de traduction :"
},
"translate_generating": {
"message": "Traduction en cours..."
},
"translate_click_to_generate": {
"message": "Cliquez ici pour traduire cet e-mail"
},
"get_ai_translation": {
"message": "Traduction IA"
},
"translate_chatgpt_web_not_supported": {
"message": "La traduction automatique nécessite une connexion basée sur l'API. Veuillez configurer une connexion API dans les paramètres de ThunderAI."
},
"translate_refresh": {
"message": "Actualiser la traduction"
},
"translate_delete": {
"message": "Supprimer la traduction"
},
"translate_banner_title": {
"message": "Traduction IA"
},
"translate_error": {
"message": "Échec de la traduction."
},
"translate_no_language_configured": {
"message": "Aucune langue de traduction n'est configurée. Définissez une langue dans les paramètres de Traduction ou une langue par défaut dans les paramètres Généraux."
},
"translate_skipped": {
"message": "Traduction ignorée : langue exclue ou identique à la destination."
},
"spam_badge_tooltip": {
"message": "Score de spam — Cliquez pour voir l'explication"
},
"summary_by": {
"message": "Résumé par"
},
"translate_by": {
"message": "Traduction par"
},
"prefs_OptionText_action_auto_batch": {
"message": "À la réception de l'e-mail"
},
"placeholder_string": {
"message": "Espace réservé"
},
"menu_order_title": {
"message": "Ordre du menu"
},
"menu_order_popup_list_title": {
"message": "Menu contextuel (Popup)"
},
"menu_order_context_list_title": {
"message": "Menu contextuel"
},
"menu_order_saved": {
"message": "Ordre du menu enregistré!"
},
"menu_order_tab_reading": {
"message": "Lecture"
},
"menu_order_tab_composing": {
"message": "Rédaction"
},
"menu_order_badge_default": {
"message": "Par défaut"
},
"menu_order_badge_special": {
"message": "Spécial"
},
"menu_order_badge_custom": {
"message": "Personnalisé"
},
"menu_order_type_reading": {
"message": "Lecture"
},
"menu_order_type_composing": {
"message": "Rédaction"
},
"menu_order_type_always": {
"message": "Toujours"
},
"menu_order_btn_label": {
"message": "Gérer les paramètres d'ordre du menu"
},
"menu_order_info": {
"message": "Faites glisser et déposez les éléments pour les réordonner. Utilisez l'interrupteur pour afficher ou masquer les éléments dans chaque menu."
},
"menu_order_active_items": {
"message": "Éléments visibles"
},
"menu_order_hidden_items": {
"message": "Éléments masqués"
},
"menu_order_icon_label": {
"message": "Choisir une icône"
},
"menu_order_icon_none": {
"message": "(aucune)"
},
"show_in": {
"message": "Afficher dans"
},
"show_in_popup": {
"message": "Fenêtre contextuelle uniquement"
},
"show_in_context": {
"message": "Menu contextuel uniquement"
},
"show_in_both": {
"message": "Les deux"
},
"webchat_save_as_summary": {
"message": "Enregistrer comme résumé"
},
"prefs_storage_title": {
"message": "Stockage"
},
"prefs_storage_info": {
"message": "Le stockage est utilisé pour sauvegarder les informations relatives au score de spam, aux résumés et aux traductions de chaque message."
},
"prefs_storage_size": {
"message": "Taille du stockage"
},
"prefs_storage_clear_button": {
"message": "Effacer le stockage"
},
"prefs_storage_clear_confirm": {
"message": "Êtes-vous sûr de vouloir effacer toutes le données stockées (résumés, rapports de spam, traductions)? Cette action est irréversible."
},
"prefs_storage_clear_done": {
"message": "$COUNT$ enregistrements supprimés.",
"placeholders": {
"count": {
"content": "$1"
}
}
},
"prefsInfoDesc_7": {
"message": "Pour utiliser l'API Google Gemini, vous avez besoin d'une clé API Google Gemini et vous devez choisir un modèle."
},
"prefsInfoDesc_8": {
"message": "Pour utiliser l'API Claude, vous avez besoin d'une clé API Anthropic Claude et vous devez choisir un modèle."
},
"placeholder_mail_full_headers": {
"message": "Tous les en-têtes du message"
},
"prefs_OptionText_hide_thinking": {
"message": "Réduire le bloc de réflexion par défaut"
},
"prefs_OptionText_hide_thinking_info": {
"message": "Contrôle l'état initial du bloc de réflexion affiché au-dessus de la réponse. Si coché, le bloc est réduit par défaut. Le contenu de la réflexion est toujours conservé."
},
"prefs_OptionText_thinking_summary": {
"message": "Réflexion"
},
"placeholder_thunderai_translate_lang": {
"message": "La langue à utiliser pour les traductions des messages."
},
"placeholder_thunderai_translate_exclude_lang": {
"message": "Les codes de langue à ne pas traduire lorsqu'ils sont détectés."
},
"SpamFilter_skip_addresses_title": {
"message": "Liste d'exclusion d'adresses e-mail"
},
"SpamFilter_skip_addresses_infoline": {
"message": "Les e-mails provenant de ces adresses ne seront pas envoyés à l'IA pour le filtrage du spam."
},
"SpamFilter_skip_addresses_infoline2": {
"message": "Ajoutez une adresse e-mail par ligne, ou séparez-les par une virgule."
},
"spamfilter_skip_addresses_explanation": {
"message": "L'expéditeur figure dans la liste d'exclusion de l'antispam."
}
}

View file

@ -517,7 +517,7 @@
"message": "Klasificiraj sljedeći tekst u smislu ljubaznosti, topline, formalnosti, asertivnosti, uvredljivosti dajući postotak za svaku kategoriju. Odgovori samo kategorijom i ocijeni bez dodatnih komentara ili drugog teksta."
},
"prompt_translate_this_full_text": {
"message": "Prevedi sljedeću e-poruku na"
"message": "Prevedite donju e-poštu na {%thunderai_translate_lang%}.\n\nPravila:\n- Prevedite i predmet i tijelo e-pošte.\n- Vratite rezultat kao JSON objekt s tri polja: \"subject\", \"body\" i \"status\".\n- Ako je prijevod izvršen, status je jedan 1.\n- Ako je e-pošta napisana na jednom od ovih jezika \"{%thunderai_translate_exclude_lang%}\" ili na jeziku {%thunderai_translate_lang%}, vratite prazan niz za tijelo i predmet i postavite status na -1.\n- Nemojte dodavati objašnjenja, bilješke ili bilo kakav tekst izvan JSON-a.\n\nPredmet e-pošte: {%mail_subject%}\n\nTijelo e-pošte: {%mail_html_body%}\n\nGenerirajte odgovor isključivo u JSON formatu. Izlaz treba biti samo JSON objekt. Evo primjera JSON formata koji treba koristiti:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Odgovori samo s potrebnim tekstom i bez dodatnih komentara ili drugog teksta."

View file

@ -517,7 +517,7 @@
"message": "Classifica il seguente testo in termini di Cortesia, Calore, Formalità, Assertività, Offensività, indicando una percentuale per ciascuna categoria. Rispondi solo con la categoria e il punteggio, senza commenti aggiuntivi o altro testo."
},
"prompt_translate_this_full_text": {
"message": "Traduci la seguente email in"
"message": "Traduci l'email qui sotto in italiano.\n\nRegole:\n- Traduci sia l'oggetto che il corpo dell'email.\n- Restituisci il risultato come un oggetto JSON con tre campi: \"subject\", \"body\" e \"status\".\n- Se la traduzione viene effettuata, lo stato è uguale a 1.\n- Se l'email è scritta in una di queste lingue \"{%thunderai_translate_exclude_lang%}\" o nella lingua {%thunderai_translate_lang%}, restituisci una stringa vuota per il corpo e l'oggetto e imposta lo stato a 1.\n- Non aggiungere spiegazioni, note o alcun testo al di fuori del JSON.\n\nOggetto dell'email: {%mail_subject%}\n\nCorpo dell'email: {%mail_html_body%}\n\nGenera una risposta esclusivamente in formato JSON. L'output deve essere solo un oggetto JSON. Ecco un esempio del formato JSON da utilizzare:\n{\n\"subject\": \"traduzione oggetto\",\n\"body\": \"traduzione corpo\",\n\"status\": \"risultato stato\"\n}"
},
"prompt_this_full_text": {
"message": "Rispondi solo con il testo necessario, senza commenti aggiuntivi o altro testo."
@ -529,7 +529,7 @@
"message": "Se selezionato, verrà incluso nel menu un elemento per applicare i tag alle email."
},
"prompt_add_tags": {
"message": "Aggiungi tag a questa email"
"message": "Aggiungi tag"
},
"prompt_add_tags_full_text": {
"message": "Analizza il seguente testo email e genera un array JSON di tag che ne riassumano il contenuto. Utilizza come tag i temi, gli argomenti principali e i descrizioni rilevanti. Assicurati che i tag siano concisi e pertinenti al contenuto dellemail.\nTesto email: {%mail_text_body%}\nConsidera i seguenti dettagli come contesto:\n- Mittente: {%author%}\n- Destinatari: {%recipients%}\n- Lista CC: {%cc_list%}\n- Oggetto dell'email: {%mail_subject%}\nBasati sul testo dellemail e sul contesto per generare i tag, ignorando le informazioni superflue o i dettagli irrilevanti.\nGenera una risposta esclusivamente in formato JSON. Loutput deve essere solo un array JSON di tag, senza alcun commento o testo aggiuntivo. Ecco un esempio del formato JSON da utilizzare:\n{\n\"tags\": [\"tag1\", \"tag2\", \"tag3\", \"tag4\", \"tag5\"]\n}"
@ -748,7 +748,7 @@
"message": "Aggiungi tag solo alle email nella posta in arrivo"
},
"prompt_spamfilter": {
"message": "Rileva le email di spam"
"message": "Analizza per spam"
},
"Moved_to_Spam": {
"message": "Spostato nello spam"
@ -790,7 +790,7 @@
"message": "Lingua predefinita come impostata nelle opzioni di ThunderAI."
},
"spamfilter_no_reports": {
"message": "Nessun messaggio è stato ancora controllato per lo spam. Qui troverai un elenco degli ultimi 100 report di spam solo per la sessione corrente."
"message": "Nessun messaggio è stato ancora controllato per lo spam. Qui troverai un elenco degli ultimi 100 report di spam."
},
"placeholder_thunderai_def_sign": {
"message": "Firma predefinita come impostata nelle opzioni di ThunderAI."
@ -1316,10 +1316,10 @@
"message": "Impostazioni riassunto"
},
"prompt_summarize": {
"message": "Riassumi email"
"message": "Riassumi"
},
"prompt_summarize_full_text": {
"message": "Sei un assistente che riassume conversazioni via email.\n\nDato un thread di email, produci un riassunto conciso e accurato che includa:\n\n- L'argomento principale o lo scopo della conversazione\n- Decisioni chiave, conclusioni o accordi\n- Domande importanti, richieste o punti d'azione\n- Il responsabile per ogni punto d'azione (se indicato)\n\nOmetti saluti, firme, testo citato e scambi ridondanti.\nNon aggiungere supposizioni o informazioni non presenti nelle email.\n\nScrivi il riassunto con un linguaggio chiaro e neutro, adatto a un professionista impegnato."
"message": "Fornisci un riassunto conciso dei seguenti messaggi email. Il riassunto deve essere di massimo 3-5 frasi e deve catturare i punti principali. Scrivi in paragrafi semplici, senza elenchi puntati, liste o formattazione markdown.\n\n"
},
"prompt_summarize_email_template": {
"message": "Template riassunto email"
@ -1446,5 +1446,369 @@
},
"prefs_chatgpt_win_position_info": {
"message": "Lascia vuoto per usare la posizione di default."
},
"show_in": {
"message": "Mostra in"
},
"show_in_popup": {
"message": "Solo popup"
},
"show_in_context": {
"message": "Solo menu contestuale"
},
"show_in_both": {
"message": "Entrambi"
},
"webchat_save_as_summary": {
"message": "Salva come Riepilogo"
},
"prefs_storage_title": {
"message": "Archiviazione"
},
"prefs_storage_info": {
"message": "L'archiviazione viene utilizzata per salvare informazioni sul punteggio di spam, i riepiloghi e le traduzioni di ogni messaggio."
},
"prefs_storage_size": {
"message": "Dimensione archiviazione"
},
"prefs_storage_clear_button": {
"message": "Svuota Archiviazione"
},
"prefs_storage_clear_confirm": {
"message": "Sei sicuro di voler cancellare tutti i dati memorizzati (riepiloghi, segnalazioni spam, traduzioni)? L'azione è irreversibile."
},
"prefs_storage_clear_done": {
"message": "$COUNT$ elementi cancellati.",
"placeholders": {
"count": {
"content": "$1"
}
}
},
"prefsInfoDesc_7": {
"message": "Per utilizzare le API di Google Gemini, è necessario avere una chiave API (API Key) di Google Gemini e scegliere un modello."
},
"prefsInfoDesc_8": {
"message": "Per utilizzare le API di Claude, è necessario avere una chiave API (API Key) di Anthropic Claude e scegliere un modello."
},
"placeholder_mail_full_headers": {
"message": "Tutte le intestazioni email"
},
"prefs_OptionText_hide_thinking": {
"message": "Nascondi l'output del ragionamento come impostazione predefinita"
},
"prefs_OptionText_thinking_summary": {
"message": "Ragionamento"
},
"prefs_OptionText_hide_thinking_info": {
"message": "Controlla lo stato iniziale del ragionamento visualizzato sopra la risposta. Se selezionato, il ragionamento è compresso di default e può essere aperto con un clic. Se deselezionato, è invece aperto di default e può essere compresso con un clic. Il contenuto del ragionamento viene sempre conservato."
},
"placeholder_thunderai_translate_lang": {
"message": "La lingua da utilizzare nella traduzioni delle email."
},
"placeholder_thunderai_translate_exclude_lang": {
"message": "I codici delle lingue da non tradurre se rilevate."
},
"SpamFilter_skip_addresses_title": {
"message": "Elenco di esclusione indirizzi email"
},
"SpamFilter_skip_addresses_infoline": {
"message": "Le email provenienti da questi indirizzi non saranno inviate all'IA per l'analisi antispam."
},
"SpamFilter_skip_addresses_infoline2": {
"message": "Aggiungi un indirizzo email per riga, oppure separali con una virgola."
},
"spamfilter_skip_addresses_explanation": {
"message": "Il mittente è incluso nell'elenco di esclusione antispam degli indirizzi email."
},
"prefs_OptionText_spamfilter_skip_addressbook": {
"message": "Salta gli indirizzi in rubrica"
},
"prefs_OptionText_spamfilter_skip_addressbook_Info": {
"message": "Se selezionato, le email provenienti da mittenti presenti nelle tue rubriche non verranno inviate all'IA per l'analisi antispam."
},
"spamfilter_skip_addressbook_explanation": {
"message": "Il mittente è un contatto presente in rubrica."
},
"addressbook_permission_denied": {
"message": "Il permesso di accesso alla rubrica è stato negato. Abilita nuovamente la funzione per concedere il permesso."
},
"addressbook_permission_error": {
"message": "Errore durante la richiesta del permesso per la rubrica. Per favore, riprova."
},
"apiwebchat_done": {
"message": "Fatto!"
},
"prefs_OptionText_anthropic_extended_thinking_budget": {
"message": "Budget per il pensiero esteso (token)"
},
"prefs_OptionText_anthropic_extended_thinking_budget_Info": {
"message": "Numero massimo di token che il modello può utilizzare per il pensiero esteso. Imposta a 0 per disabilitare. Quando abilitato, il valore della temperatura viene ignorato dall'API di Claude."
},
"prefs_ollama_format_json": {
"message": "Forza output JSON"
},
"prefs_ollama_format_json_Info": {
"message": "Se selezionato, Ollama sarà forzato a restituire una risposta JSON valida. Questa opzione funziona solo con i modelli che supportano l'output strutturato."
},
"prefs_specific_api_indicator": {
"message": "Utilizzando $1",
"placeholders": {
"1": {
"content": "$1"
}
}
},
"prefs_OptionText_auto_summary": {
"message": "Abilita riassunto IA automatico per l'anteprima messaggi"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Se selezionato, ThunderAI genererà e visualizzerà automaticamente dei riassunti IA sopra i messaggi quando vengono aperti. Nota: questo comporterà l'invio immediato di ogni messaggio visualizzato al servizio IA configurato."
},
"auto_summary_title": {
"message": "Riassunto ThunderAI"
},
"auto_summary_generating": {
"message": "Generazione riassunto IA..."
},
"auto_summary_failed": {
"message": "Impossibile generare il riassunto IA. Verifica le impostazioni e riprova."
},
"prefs_OptionText_summarize_auto": {
"message": "Riassumi messaggi automaticamente"
},
"prefs_OptionText_summarize_auto_Info": {
"message": "Scegli se generare automaticamente i riassunti durante la visualizzazione dei messaggi. Richiede una connessione basata su API (non ChatGPT Web)."
},
"prefs_OptionText_summarize_display_mode": {
"message": "Visualizza riassunto in"
},
"prefs_OptionText_summarize_display_mode_Info": {
"message": "Scegli dove visualizzare il risultato del riassunto. La modalità 'Inline' mostra un banner direttamente nel pannello del messaggio. La modalità 'Finestra chat' apre la finestra della chat IA."
},
"prefs_OptionText_summarize_max_display_length": {
"message": "Lunghezza massima visualizzata"
},
"prefs_OptionText_summarize_max_display_length_Info": {
"message": "Numero massimo di caratteri da mostrare nel riassunto inline. Imposta a 0 per nessun limite."
},
"prefs_OptionText_summarize_strip_formatting": {
"message": "Rimuovi formattazione"
},
"prefs_OptionText_summarize_strip_formatting_Info": {
"message": "Rimuove la formattazione HTML e Markdown dal riassunto generato dall'IA, mostrando solo testo semplice."
},
"summarize_see_more": {
"message": "Mostra altro"
},
"summarize_see_less": {
"message": "Mostra meno"
},
"summarize_title": {
"message": "Panoramica ThunderAI"
},
"get_ai_summary": {
"message": "Riassunto IA"
},
"summarize_collapse": {
"message": "Comprimi riassunto"
},
"summarize_generating": {
"message": "Generazione riassunto..."
},
"summarize_error": {
"message": "Impossibile generare il riassunto"
},
"summarize_click_to_generate": {
"message": "Clicca qui per generare un riassunto"
},
"summarize_chatgpt_web_not_supported": {
"message": "Il riassunto automatico richiede una connessione basata su API. Configura una connessione API nelle impostazioni di ThunderAI."
},
"summarize_refresh": {
"message": "Aggiorna riassunto"
},
"spamfilter_refresh": {
"message": "Aggiorna rapporto spam"
},
"spamfilter_delete": {
"message": "Elimina rapporto spam"
},
"summarize_delete": {
"message": "Elimina riassunto"
},
"generic_error_dismiss": {
"message": "Ignora"
},
"prefs_OptionText_translate": {
"message": "Traduci email"
},
"prefs_OptionText_translate_use_specific_integration_Info": {
"message": "Se selezionato, per la traduzione delle email verranno utilizzati il Modello e l'API specificati sotto, indipendentemente da quanto scelto nelle opzioni generali di ThunderAI."
},
"prefs_OptionText_translate_Info": {
"message": "Se selezionato, aggiunge un pulsante di traduzione nel corpo del messaggio."
},
"prefs_OptionText_btnManageTranslateInfo": {
"message": "Gestisci impostazioni traduzione"
},
"Translate_PageTitle": {
"message": "Gestisci Impostazioni Traduzione"
},
"Translate_info_default": {
"message": "In questa pagina puoi modificare il prompt predefinito utilizzato per tradurre le email."
},
"Translate_prompt_text_title": {
"message": "Testo del prompt attuale"
},
"Translate_prompt_prefs_title": {
"message": "Opzioni Traduzione"
},
"prefs_OptionText_translate_auto": {
"message": "Traduci messaggi automaticamente"
},
"prefs_OptionText_action_auto_disabled": {
"message": "Disabilitato"
},
"prefs_OptionText_action_auto_manual": {
"message": "Solo pulsante manuale"
},
"prefs_OptionText_action_auto_automatic": {
"message": "All'apertura dell'email"
},
"prefs_OptionText_translate_auto_Info": {
"message": "Scegli quando tradurre i messaggi: disabilitato, solo al click del pulsante, o automaticamente all'apertura di un messaggio."
},
"prefs_OptionText_display_mode_inline": {
"message": "Pannello messaggio (inline)"
},
"prefs_OptionText_display_mode_webchat": {
"message": "Finestra chat"
},
"prefs_OptionText_translate_max_display_length": {
"message": "Lunghezza massima della traduzione visualizzata"
},
"prefs_OptionText_translate_max_display_length_Info": {
"message": "Numero massimo di caratteri mostrati nella traduzione inline. 0 = nessun limite. Se impostato, il testo più lungo verrà troncato con un interruttore 'Mostra altro'."
},
"translate_see_more": {
"message": "Mostra altro"
},
"translate_see_less": {
"message": "Mostra meno"
},
"prefs_OptionText_translate_lang": {
"message": "Lingua di destinazione traduzione"
},
"prefs_OptionText_translate_lang_Info": {
"message": "Lingua in cui tradurre le email. Se vuoto, utilizza l'impostazione della lingua predefinita."
},
"prefs_OptionText_translate_exclude_lang": {
"message": "Escludi lingue"
},
"prefs_OptionText_translate_exclude_lang_Info": {
"message": "Elenco di codici lingua separati da virgola (es. en, fr, it) da saltare per la traduzione automatica. Se l'email è in una di queste lingue, non verrà tradotta automaticamente o il pulsante manuale non sarà mostrato."
},
"prefs_OptionText_Translate_main_prompt": {
"message": "Prompt che descrive l'attività di traduzione:"
},
"translate_generating": {
"message": "Traduzione in corso..."
},
"translate_click_to_generate": {
"message": "Clicca qui per tradurre questa email"
},
"get_ai_translation": {
"message": "Traduzione IA"
},
"translate_chatgpt_web_not_supported": {
"message": "La traduzione automatica richiede una connessione basata su API. Configura una connessione API nelle impostazioni di ThunderAI."
},
"translate_refresh": {
"message": "Aggiorna traduzione"
},
"translate_delete": {
"message": "Elimina traduzione"
},
"translate_banner_title": {
"message": "Traduzione IA"
},
"translate_error": {
"message": "Traduzione fallita."
},
"translate_no_language_configured": {
"message": "La lingua di traduzione non è configurata. Imposta una lingua nelle impostazioni di Traduzione o una lingua predefinita nelle impostazioni Generali."
},
"translate_skipped": {
"message": "Traduzione saltata: lingua esclusa o identica alla destinazione."
},
"spam_badge_tooltip": {
"message": "Punteggio spam — Clicca per vedere la spiegazione"
},
"summary_by": {
"message": "Riassunto da"
},
"translate_by": {
"message": "Traduzione da"
},
"prefs_OptionText_action_auto_batch": {
"message": "Alla ricezione dell'email"
},
"placeholder_string": {
"message": "Segnaposto"
},
"menu_order_title": {
"message": "Ordine Menu"
},
"menu_order_popup_list_title": {
"message": "Menu Popup"
},
"menu_order_context_list_title": {
"message": "Menu Contestuale"
},
"menu_order_saved": {
"message": "Ordine menu salvato!"
},
"menu_order_tab_reading": {
"message": "Lettura"
},
"menu_order_tab_composing": {
"message": "Composizione"
},
"menu_order_badge_default": {
"message": "Predefinito"
},
"menu_order_badge_special": {
"message": "Speciale"
},
"menu_order_badge_custom": {
"message": "Personalizzato"
},
"menu_order_type_reading": {
"message": "Lettura"
},
"menu_order_type_composing": {
"message": "Composizione"
},
"menu_order_type_always": {
"message": "Sempre"
},
"menu_order_btn_label": {
"message": "Gestisci impostazioni ordine menu"
},
"menu_order_info": {
"message": "Trascina gli elementi per riordinarli. Usa l'interruttore per mostrare o nascondere gli elementi in ogni menu."
},
"menu_order_active_items": {
"message": "Elementi visibili"
},
"menu_order_hidden_items": {
"message": "Elementi nascosti"
},
"menu_order_icon_label": {
"message": "Scegli un'icona"
},
"menu_order_icon_none": {
"message": "(nessuna)"
}
}

View file

@ -558,7 +558,7 @@
"message": "以下のテキストを丁寧さ、温かさ、フォーマルさ、自己主張、攻撃性の観点から分類し、各カテゴリのパーセンテージを示してください。カテゴリとスコアのみで、余分なコメントや他のテキストなしで返信してください。"
},
"prompt_translate_this_full_text": {
"message": "以下のメールを次の言語に翻訳してください:"
"message": "以下のメールを {%thunderai_translate_lang%} に翻訳してください。\n\nルール\n- 件名と本文の両方を翻訳してください。\n- 結果は \"subject\"、\"body\"、\"status\" の3つのフィールドを持つ JSON オブジェクトとして返してください。\n- 翻訳が実行された場合、status は 1 になります。\n- メールが \"{%thunderai_translate_exclude_lang%}\" のいずれかの言語、または {%thunderai_translate_lang%} 言語で書かれている場合は、本文と件名に空の文字列を返し、status を -1 に設定してください。\n- JSON 以外の説明、メモ、テキストを追加しないでください。\n\nメール件名{%mail_subject%}\n\nメール本文{%mail_html_body%}\n\nJSON 形式のみで回答を生成してください。出力は JSON オブジェクトのみである必要があります。使用する JSON 形式の例は次のとおりです:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "必要なテキストのみで、余分なコメントや他のテキストなしで返信してください。"

View file

@ -517,7 +517,7 @@
"message": "Sklasyfikuj poniższy tekst pod względem uprzejmości, serdeczności, formalności, stanowczości, obraźliwości, podając procent dla każdej kategorii. Odpowiedz wyłącznie kategorią i wynikiem, bez dodatkowych komentarzy ani innego tekstu."
},
"prompt_translate_this_full_text": {
"message": "Przetłumacz poniższy e-mail na"
"message": "Przetłumacz poniższą wiadomość e-mail na język {%thunderai_translate_lang%}.\n\nZasady:\n- Przetłumacz zarówno temat, jak i treść wiadomości.\n- Zwróć wynik jako obiekt JSON z trzema polami: \"subject\", \"body\" i \"status\".\n- Jeśli tłumaczenie zostało wykonane, status wynosi 1.\n- Jeśli wiadomość e-mail jest napisana w jednym z tych języków \"{%thunderai_translate_exclude_lang%}\" lub w języku {%thunderai_translate_lang%}, zwróć pusty ciąg znaków dla treści i tematu oraz ustaw status na -1.\n- Nie dodawaj wyjaśnień, notatek ani żadnego tekstu poza formatem JSON.\n\nTemat wiadomości: {%mail_subject%}\n\nTreść wiadomości: {%mail_html_body%}\n\nWygeneruj odpowiedź wyłącznie w formacie JSON. Wynikiem powinien być tylko obiekt JSON. Oto przykład formatu JSON, którego należy użyć:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Odpowiedz wyłącznie wymaganym tekstem, bez dodatkowych komentarzy ani innego tekstu."

View file

@ -517,7 +517,7 @@
"message": "Classifique o texto a seguir em termos de Educação, Calor, Formalidade, Assertividade e Ofensividade, atribuindo uma porcentagem para cada categoria. Responda apenas com as categorias e as pontuações, sem comentários adicionais ou outros textos."
},
"prompt_translate_this_full_text": {
"message": "Traduza o e-mail a seguir para"
"message": "Traduza o e-mail abaixo para o idioma {%thunderai_translate_lang%}.\n\nRegras:\n- Traduza tanto o assunto quanto o corpo do e-mail.\n- Retorne o resultado como um objeto JSON com três campos: \"subject\", \"body\" e \"status\".\n- Se a tradução for realizada, o status é igual a 1.\n- Se o e-mail estiver escrito em um destes idiomas \"{%thunderai_translate_exclude_lang%}\" ou no idioma {%thunderai_translate_lang%}, retorne uma string vazia para o corpo e o assunto e defina o status como -1.\n- Não adicione explicações, notas ou qualquer texto fora do JSON.\n\nAssunto do e-mail: {%mail_subject%}\n\nCorpo do e-mail: {%mail_html_body%}\n\nGere uma resposta apenas em formato JSON. A saída deve ser apenas um objeto JSON. Aqui está um exemplo do formato JSON a ser usado:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Responda apenas com o texto necessário e sem comentários adicionais ou outros textos."

View file

@ -546,7 +546,7 @@
"message": "Классифицируйте следующий текст с точки зрения вежливости, теплоты, формальности, настойчивости, оскорбительности, указав процентное соотношение для каждой категории. В ответе укажите только категорию и оценку, без доп. комментариев или др. текста."
},
"prompt_translate_this_full_text": {
"message": "Переведите следующее письмо на"
"message": "Переведите указанное ниже электронное письмо на язык {%thunderai_translate_lang%}.\n\nПравила:\n- Переведите и тему, и текст письма.\n- Верните результат в виде JSON-объекта с тремя полями: \"subject\", \"body\" и \"status\".\n- Если перевод выполнен, статус равен 1.\n- Если письмо написано на одном из этих языков \"{%thunderai_translate_exclude_lang%}\" или на языке {%thunderai_translate_lang%}, верните пустую строку для тела и темы и установите статус -1.\n- Не добавляйте никаких объяснений, заметок или любого текста вне JSON.\n\nТема письма: {%mail_subject%}\n\nТекст письма: {%mail_html_body%}\n\nСгенерируйте ответ только в формате JSON. На выходе должен быть только JSON-объект. Вот пример формата JSON, который необходимо использовать:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_this_full_text": {
"message": "Отвечайте только нужным текстом, без лишних комментариев и прочего."

View file

@ -1776,5 +1776,23 @@
},
"menu_order_icon_none": {
"message": "(ingen)"
},
"prefs_OptionText_hide_thinking": {
"message": "Fäll in tankeblock som standard"
},
"prefs_OptionText_hide_thinking_info": {
"message": "Styr det initiala tillståndet för tankeblocket som visas ovanför svaret. Om markerat är blocket hopfällt som standard och kan öppnas med ett klick. Om det avmarkeras är blocket öppet som standard och kan hopfällas med ett klick. Tankeinnehållet bevaras alltid."
},
"prefs_OptionText_thinking_summary": {
"message": "Tänker"
},
"prefs_OptionText_anthropic_extended_thinking_budget": {
"message": "Utökad tankebudget (tokens)"
},
"prefs_OptionText_anthropic_extended_thinking_budget_Info": {
"message": "Maximalt antal tokens som modellen kan spendera på utökat tänkande. Ställ in på 0 för att inaktivera utökat tänkande. När det är aktiverat ignoreras temperaturvärdet av Claude API."
},
"generic_error_dismiss": {
"message": "Avfärda"
}
}

View file

@ -656,7 +656,7 @@
"message": "回覆以下郵件。僅回覆所需內容,不要提供任何註解或其他文字。"
},
"prompt_translate_this_full_text": {
"message": "將以下電子郵件翻譯成"
"message": "將以下電子郵件翻譯成 **{%thunderai_translate_lang%}**。\n\n**規則:**\n- 同時翻譯主題Subject與正文Body。\n- 以 JSON 物件格式回傳結果,包含三個欄位:\"subject\"、\"body\" 以及 \"status\"。\n- 如果完成翻譯status 等於 1。\n- 如果郵件是以 \"{%thunderai_translate_exclude_lang%}\" 其中之一的語言或 {%thunderai_translate_lang%} 語言編寫,請將 body 和 subject 設為空字串,並將 status 設為 -1。\n- 請勿在 JSON 之外添加任何說明、備註或文字。\n\n郵件主題{%mail_subject%}\n\n郵件正文{%mail_html_body%}\n\n請僅以 JSON 格式生成回應。輸出應僅包含一個 JSON 物件。以下是要使用的 JSON 格式範例:\n{\n\"subject\": \"subject translation\",\n\"body\": \"body translation\",\n\"status\": \"status result\"\n}"
},
"prompt_rewrite_full_text": {
"message": "請重寫以下文字,使其更有禮貌。僅回覆重寫的文字,不要提供任何額外的註解或其他文字。"

View file

@ -119,6 +119,8 @@ if (worker) {
document.title += " [" + llmName + " | " + decodeURIComponent(prompt_name) + "]";
document.title += " [" + llmName + " | " + decodeURIComponent(prompt_name) + "]";
let workerInitMessage = {
type: 'init',
do_debug: prefs_api.do_debug,

View file

@ -923,7 +923,7 @@ switch (message.command) {
// Loading badge in toolbar
const badge = document.createElement('div');
badge.style.cssText = `background-color: ${colors.spamLoading.bg}; color: ${colors.spamLoading.text}; border: 1px solid ${colors.spamLoading.border}; border-radius: 4px; padding: 2px 8px; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;`;
badge.style.cssText = `background-color: ${colors.spamLoading.bg}; color: ${colors.spamLoading.text}; border: 1px solid ${colors.spamLoading.border}; border-radius: 4px; padding: 2px 8px; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; margin-right: auto;`;
const badgeLoading = document.createElement('img');
badgeLoading.src = browser.runtime.getURL("/images/loading.gif");
badgeLoading.style.cssText = "height: 14px; width: 14px;";

View file

@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "ThunderAI",
"description": "__MSG_extensionDescription__",
"version": "4.1.0pre4",
"version": "4.1.0",
"author": "Mic (m@micz.it)",
"homepage_url": "https://micz.it/thunderbird-addon-thunderai/",
"browser_specific_settings": {

View file

@ -140,7 +140,8 @@ export const prefs_default = {
spamfilter_threshold: 70,
spamfilter_enabled_accounts: [],
spamfilter_skip_addresses: [],
spamfilter_skip_addressbook: false,
spamfilter_skip_addressbook: true,
spamfilter_show_msg_panel: true,
summarize: false,
summarize_auto: 1, // 0: disabled, 1: manual button, 2: automatic on message open, 3: generate on email receive
summarize_display_mode: 'inline', // 'inline' or 'webchat'
@ -151,6 +152,5 @@ export const prefs_default = {
translate_max_display_length: 0, // 0 = no limit, otherwise max chars shown inline
translate_lang: '', // target language, fallback on default_chatgpt_lang
translate_exclude_lang: '', // languages to do not translate
spamfilter_show_msg_panel: true,
...generated_prefs
}

View file

@ -7,12 +7,14 @@
<body>
<div id="miczBackPrefs"><a href="mzta-options.html">__MSG_backToOptionsText__</a></div>
<div id="miczRelNotes"><h1>ThunderAI Release Notes</h1>
<h2>Version 4.1.0 - ??/??/2026</h2>
<h2>Version 4.1.0 - 13/05/2026</h2>
<ul>
<li>Antispam information are now permanently saved for each message [<a href="https://github.com/micz/ThunderAI/issues/675">#675</a>].</li>
<li><i>[All APIs]</i> A summary has been added above the mail content [<a href="https://github.com/micz/ThunderAI/issues/580">#580</a>].</li>
<li><i>[All APIs]</i> Added inline auto translation for emails [<a href="https://github.com/micz/ThunderAI/issues/247">#247</a>].</li>
<li>Custom menus configuration added. Now it's possibile to define which prompts show in the ThunderAI menu, which ones in the context menu and in which order [<a href="https://github.com/micz/ThunderAI/issues/49">#49</a>, <a href="https://github.com/micz/ThunderAI/issues/184">#184</a>, <a href="https://github.com/micz/ThunderAI/issues/680">#680</a>].</li>
<li>Now the popup menu closes immediatly and the working indicator is in the button icon [<a href="https://github.com/micz/ThunderAI/issues/247">#677</a>].</li>
<li><i>[All APIs]</i> Error messages added also for background operations when the API has not been configured correctly [<a href="https://github.com/micz/ThunderAI/issues/766">#766</a>].</li>
<li><i>[Ollama API]</i> Added <i>format: json</i> option [<a href="https://github.com/micz/ThunderAI/issues/703">#703</a>].</li>
<li>Fix: The "Important Information" section in the options page now updates correctly when choosing an integration [<a href="https://github.com/micz/ThunderAI/issues/730">#730</a>].</li>
<li>In the options page now is visible if a special prompt is using a specific API integration [<a href="https://github.com/micz/ThunderAI/issues/676">#676</a>].</li>
@ -22,10 +24,24 @@
<li>Added the <i>{%mail_full_headers%}</i> placeholder to retrieve all the email headers at once [<a href="https://github.com/micz/ThunderAI/issues/713">#713</a>].</li>
<li><i>[All APIs]</i> In the API webchat the status messages have different colors [<a href="https://github.com/micz/ThunderAI/issues/3">#3</a>].</li>
<li>Account exclusion lists for add tags and antispam are enforced only for automatic analysis of incoming emails and not for the context menu action that is always executed [<a href="https://github.com/micz/ThunderAI/issues/749">#749</a>].</li>
<li><i>[All APIs]</i> Inline auto translation for emails added [<a href="https://github.com/micz/ThunderAI/issues/247">#247</a>].</li>
<li>Custom menus configuration added. Now it's possibile to define which prompts show in the ThunderAI menu, which ones in the context menu and in which order [<a href="https://github.com/micz/ThunderAI/issues/49">#49</a>, <a href="https://github.com/micz/ThunderAI/issues/184">#184</a>, <a href="https://github.com/micz/ThunderAI/issues/680">#680</a>].</li>
<li><i>[All APIs]</i> Error messages added also for background operations when the API has not been configured correctly [<a href="https://github.com/micz/ThunderAI/issues/766">#766</a>].</li>
<li>...</li>
</ul>
<h2>Version 4.0.7 - 17/04/2026</h2>
<ul>
<li>Fix: Correctly parsing the body of HTML base64 encoded mails [<a href="https://github.com/micz/ThunderAI/issues/757">#757</a>].</li>
</ul>
<h2>Version 4.0.6 - 01/04/2026</h2>
<ul>
<li>Fix: Now it's possibile to create a tag also with accented characters in the label [<a href="https://github.com/micz/ThunderAI/issues/738">#738</a>].</li>
</ul>
<h2>Version 4.0.5 - 27/03/2026</h2>
<ul>
<li>Fix: HTML part of the mail body used in prompt is displayed as HTML code and it is not rendered. This a display fix, there is no change on how the prompt is sent to the AI [<a href="https://github.com/micz/ThunderAI/issues/711">#711</a>].</li>
<li>Fix: HTML elements added by ThunderAI (like the antispam banner) are now not present in HTML or text data placeholders [<a href="https://github.com/micz/ThunderAI/issues/710">#710</a>].</li>
<li><i>[All APIs]</i> The API webchat window now has a dynamic title [<a href="https://github.com/micz/ThunderAI/issues/696">#696</a>]</li>
</ul>
<h2>Version 4.0.4 - 26/03/2026</h2>
<ul>
<li>Fix: Correctly showing the selected model in the special prompt pages.</li>
</ul>
<h2>Version 4.0.3 - 20/03/2026</h2>
<ul>

View file

@ -1,5 +1,5 @@
/**
* Tom Select v2.6.0
* Tom Select v2.6.1
* Licensed under the Apache License, Version 2.0 (the "License");
*/
@ -1685,7 +1685,8 @@
var init_textbox = () => {
const data_raw = input.getAttribute(attr_data);
if (!data_raw) {
var value = input.value.trim() || '';
var _input$value$trim, _input$value;
var value = (_input$value$trim = input == null || (_input$value = input.value) == null ? void 0 : _input$value.trim()) != null ? _input$value$trim : '';
if (!settings.allowEmptyOption && !value.length) return;
const values = value.split(settings.delimiter);
iterate(values, value => {
@ -2024,13 +2025,6 @@
self.close(false);
self.inputState();
self.isSetup = true;
if (input.disabled) {
self.disable();
} else if (input.readOnly) {
self.setReadOnly(true);
} else {
self.enable(); //sets tabIndex
}
self.on('change', this.onChange);
addClasses(input, 'tomselected', 'ts-hidden-accessible');
self.trigger('initialize');
@ -2139,6 +2133,15 @@
}) : self.settings;
self.setupOptions(settings.options, settings.optgroups);
self.setValue(settings.items || [], true); // silent prevents recursion
if (self.input.disabled) {
self.disable();
} else if (self.input.readOnly) {
self.setReadOnly(true);
} else {
self.enable(); //sets tabIndex
}
self.lastQuery = null; // so updated options will be displayed in dropdown
}
/**
@ -2813,14 +2816,19 @@
var self = this;
if (self.isDisabled || self.isReadOnly) return;
self.ignoreFocus = true;
if (self.control_input.offsetWidth) {
self.control_input.focus();
} else {
self.focus_node.focus();
}
const focusTarget = this.control_input.offsetWidth ? this.control_input : this.focus_node;
focusTarget.focus();
setTimeout(() => {
self.ignoreFocus = false;
self.onFocus();
// Fix https://github.com/orchidjs/tom-select/issues/806
// Only proceed if this instance's element is still the active element. If Edge autofill
// (or anything else) has moved focus to a different element in the interim, calling
// onFocus() here would steal focus back and restart the cascade loop.
const root = focusTarget.getRootNode();
if (root.activeElement !== focusTarget) {
return;
}
this.onFocus();
}, 0);
}