Merge pull request #78 from micz/keep_format

Keeping the text formatting from ChatGPT and other minor improvements. Ready for version 1.1.4
This commit is contained in:
Mic 2024-06-28 21:39:10 +02:00 committed by GitHub
commit f273992d84
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 887 additions and 955 deletions

View file

@ -4,9 +4,17 @@
<h2>Version 1.1.4 - 28/06/2024</h2>
<ul>
<li>Added an option to import text with formatting from ChatGPT, set to false by default [<a href="https://github.com/micz/ThunderAI/issues/70">#70</a>], [<a href="https://github.com/micz/ThunderAI/issues/77">#77</a>].</li>
<li>Improve the message warning to choose the right model [<a href="https://github.com/micz/ThunderAI/issues/76">#76</a>].</li>
<li>Added a description in the Custom Prompts page about default prompts [<a href="https://github.com/micz/ThunderAI/issues/74">#74</a>].</li>
<li>Added a link to the <a href="https://micz.it/thunderbird-addon-thunderai/translate/">translate page</a> in the options window [<a href="https://github.com/micz/ThunderAI/issues/68">#68</a>].</li>
</ul>
<h2>Version 1.1.3 - 18/06/2024</h2> <h2>Version 1.1.3 - 18/06/2024</h2>
<ul> <ul>
<li>Fixed a bug in replying to a message [<a href="https://github.com/micz/ThunderAI/issues/70">#70</a>].</li> <li>Fixed a bug in replying to a message [<a href="https://github.com/micz/ThunderAI/issues/71">#71</a>].</li>
</ul> </ul>
<h2>Version 1.1.2 - 23/05/2024</h2> <h2>Version 1.1.2 - 23/05/2024</h2>

View file

@ -13,7 +13,8 @@ Starting from version 1.1.0, you can also define your own **custom prompts**! Fi
<br> <br>
## Translations ## Translations
Do you want to help translating this addon? Do you want to help translate this addon?
[Find out how!](https://micz.it/thunderbird-addon-thunderai/translate/) [Find out how!](https://micz.it/thunderbird-addon-thunderai/translate/)
<br> <br>
@ -25,6 +26,6 @@ ThunderAI's changes are logged [here](CHANGELOG.md).
<br>Thanks to: <br>Thanks to:
<ul><li><a href="https://github.com/KudoAI/chatgpt.js">chatgpt.js</a> for providing methods to interact with the ChatGTP frontend.</li> <ul><li><a href="https://github.com/KudoAI/chatgpt.js">chatgpt.js</a> for providing methods to interact with the ChatGTP frontend.</li>
<li><a href="https://github.com/ali-raheem/Aify">Aify</a> for inspiration and certains methods to process the text from ChatGPT.</li> <li><a href="https://github.com/ali-raheem/Aify">Aify</a> for inspiration.</li>
</ul> </ul>
<i>The specific references are described in the corresponding source files.</i> <i>The specific references are described in the corresponding source files.</i>

View file

@ -1,407 +1,346 @@
{ {
"extensionDescription": { "extensionDescription": {
"message": "Verwenden Sie ChatGPT, um Ihre E-Mails zu verbessern!", "message": "Verwenden Sie ChatGPT, um Ihre E-Mails zu verbessern!",
"description": "Beschreibung der Erweiterung." "description": "Beschreibung der Erweiterung."
}, },
"menu_title": {
"menu_title": { "message": "KI",
"message": "KI", "description": ""
"description": "" },
}, "prompt_lang": {
"message": "Antwort in ",
"prompt_lang": { "description": ""
"message": "Antwort in ", },
"description": "" "prompt_reply": {
}, "message": "Darauf antworten",
"description": ""
"prompt_reply": { },
"message": "Darauf antworten", "prompt_rewrite_polite": {
"description": "" "message": "Höflich umschreiben",
}, "description": ""
},
"prompt_rewrite_polite": { "prompt_rewrite_formal": {
"message": "Höflich umschreiben", "message": "Formal umschreiben",
"description": "" "description": ""
}, },
"prompt_classify": {
"prompt_rewrite_formal": { "message": "Klassifizieren",
"message": "Formal umschreiben", "description": ""
"description": "" },
}, "prompt_summarize_this": {
"message": "Zusammenfassen",
"prompt_classify": { "description": ""
"message": "Klassifizieren", },
"description": "" "prompt_translate_this": {
}, "message": "Übersetzen",
"description": ""
"prompt_summarize_this": { },
"message": "Zusammenfassen", "prompt_this": {
"description": "" "message": "Auffordern",
}, "description": ""
},
"prompt_translate_this": { "prompt_selection_needed": {
"message": "Übersetzen", "message": "Um fortzufahren, müssen Sie einen Text auswählen!",
"description": "" "description": ""
}, },
"customPrompts_managePrompts": {
"prompt_this": { "message": "Eingabeaufforderungen verwalten",
"message": "Auffordern", "description": ""
"description": "" },
}, "customPrompts_managePrompts_help": {
"message": "Informationen",
"prompt_selection_needed": { "description": ""
"message": "Um fortzufahren, müssen Sie einen Text auswählen!", },
"description": "" "customPrompts_managePrompts_info_default": {
}, "message": "Die Standard-Eingabeaufforderungen sind nicht bearbeitbar. Sie können sie deaktivieren, dann den Text der Eingabeaufforderung kopieren und in eine neue einfügen, um eine modifizierte Version zu erstellen.",
"description": ""
"customPrompts_managePrompts": { },
"message": "Eingabeaufforderungen verwalten", "customPrompts_start_saving": {
"description": "" "message": "Eingabeaufforderungen werden gespeichert...",
}, "description": ""
},
"customPrompts_managePrompts_help": { "customPrompts_reindexing_list": {
"message": "Informationen", "message": "Liste wird neu indiziert...",
"description": "" "description": ""
}, },
"customPrompts_filtering_prompts": {
"customPrompts_start_saving": { "message": "Eingabeaufforderungen werden gefiltert...",
"message": "Eingabeaufforderungen werden gespeichert...", "description": ""
"description": "" },
}, "customPrompts_saving_default_prompts": {
"message": "Standard-Eingabeaufforderungen werden gespeichert...",
"customPrompts_reindexing_list": { "description": ""
"message": "Liste wird neu indiziert...", },
"description": "" "customPrompts_saving_custom_prompts": {
}, "message": "Benutzerdefinierte Eingabeaufforderungen werden gespeichert...",
"description": ""
"customPrompts_filtering_prompts": { },
"message": "Eingabeaufforderungen werden gefiltert...", "customPrompts_reloading_menus": {
"description": "" "message": "Menüs werden neu geladen...",
}, "description": ""
},
"customPrompts_saving_default_prompts": { "customPrompts_saved": {
"message": "Standard-Eingabeaufforderungen werden gespeichert...", "message": "Eingabeaufforderungen gespeichert!",
"description": "" "description": ""
}, },
"customPrompts_form_label_ID": {
"customPrompts_saving_custom_prompts": { "message": "ID",
"message": "Benutzerdefinierte Eingabeaufforderungen werden gespeichert...", "description": ""
"description": "" },
}, "customPrompts_form_label_ID_rules": {
"message": "Muss eindeutig, kleingeschrieben und ohne Leerzeichen sein",
"customPrompts_reloading_menus": { "description": ""
"message": "Menüs werden neu geladen...", },
"description": "" "customPrompts_form_label_Name": {
}, "message": "Name",
"description": ""
"customPrompts_saved": { },
"message": "Eingabeaufforderungen gespeichert!", "customPrompts_form_label_Text": {
"description": "" "message": "Eingabeaufforderungstext",
}, "description": ""
},
"customPrompts_form_label_ID": { "customPrompts_form_label_Action": {
"message": "ID", "message": "Aktion",
"description": "" "description": ""
}, },
"customPrompts_form_label_need_selected": {
"customPrompts_form_label_ID_rules": { "message": "Textauswahl erforderlich",
"message": "Muss eindeutig, kleingeschrieben und ohne Leerzeichen sein", "description": ""
"description": "" },
}, "customPrompts_form_label_need_signature": {
"message": "Immer die Signatur hinzufügen",
"customPrompts_form_label_Name": { "description": ""
"message": "Name", },
"description": "" "customPrompts_form_label_need_custom_text": {
}, "message": "Nach zusätzlichem Text fragen",
"description": ""
"customPrompts_form_label_Text": { },
"message": "Eingabeaufforderungstext", "customPrompts_form_label_enabled": {
"description": "" "message": "Aktiviert",
}, "description": ""
},
"customPrompts_form_label_Action": { "customPrompts_form_required_fields": {
"message": "Aktion", "message": "Erforderliche Felder",
"description": "" "description": ""
}, },
"customPrompts_btnEdit": {
"customPrompts_form_label_need_selected": { "message": "Bearbeiten",
"message": "Textauswahl erforderlich", "description": ""
"description": "" },
}, "customPrompts_btnCancel": {
"message": "Abbrechen",
"customPrompts_form_label_need_signature": { "description": ""
"message": "Immer die Signatur hinzufügen", },
"description": "" "customPrompts_btnOK": {
}, "message": "OK",
"description": ""
"customPrompts_form_label_need_custom_text": { },
"message": "Nach zusätzlichem Text fragen", "customPrompts_btnDelete": {
"description": "" "message": "Löschen",
}, "description": ""
},
"customPrompts_form_label_enabled": { "customPrompts_btnDelete_confirmText": {
"message": "Aktiviert", "message": "Sind Sie sicher, dass Sie dieses Element löschen möchten?",
"description": "" "description": ""
}, },
"customPrompts_unsaved_changes": {
"customPrompts_form_required_fields": { "message": "Es gibt ungespeicherte Änderungen!",
"message": "Erforderliche Felder", "description": ""
"description": "" },
}, "customPrompts_btnSaveAll": {
"message": "Alle speichern",
"customPrompts_btnEdit": { "description": ""
"message": "Bearbeiten", },
"description": "" "customPrompts_save_button": {
}, "message": "Speichern",
"description": ""
"customPrompts_btnCancel": { },
"message": "Abbrechen", "customPrompts_btnNew": {
"description": "" "message": "Neu hinzufügen",
}, "description": ""
},
"customPrompts_btnOK": { "customPrompts_btnAddNewCommit": {
"message": "OK", "message": "Eingabeaufforderung hinzufügen",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu": {
"customPrompts_btnDelete": { "message": "Zum Menü hinzufügen",
"message": "Löschen", "description": ""
"description": "" },
}, "customPrompts_add_to_menu_always": {
"message": "Immer",
"customPrompts_btnDelete_confirmText": { "description": ""
"message": "Sind Sie sicher, dass Sie dieses Element löschen möchten?", },
"description": "" "customPrompts_add_to_menu_reading": {
}, "message": "E-Mail lesen",
"description": ""
"customPrompts_unsaved_changes": { },
"message": "Es gibt ungespeicherte Änderungen!", "customPrompts_add_to_menu_composing": {
"description": "" "message": "E-Mail verfassen",
}, "description": ""
},
"customPrompts_btnSaveAll": { "customPrompts_close_button": {
"message": "Alle speichern", "message": "Schließen",
"description": "" "description": ""
}, },
"customPrompts_do_reply": {
"customPrompts_save_button": { "message": "Antworten",
"message": "Speichern", "description": ""
"description": "" },
}, "customPrompts_substitute_text": {
"message": "Text ersetzen",
"customPrompts_btnNew": { "description": ""
"message": "Neu hinzufügen", },
"description": "" "chatgpt_win_working": {
}, "message": "Arbeit in Arbeit...",
"description": ""
"customPrompts_btnAddNewCommit": { },
"message": "Eingabeaufforderung hinzufügen", "chatgpt_win_job_completed": {
"description": "" "message": "Abgeschlossen!",
}, "description": ""
},
"customPrompts_add_to_menu": { "chatgpt_win_get_answer": {
"message": "Zum Menü hinzufügen", "message": "Letzte Antwort verwenden",
"description": "" "description": ""
}, },
"chatgpt_win_close": {
"customPrompts_add_to_menu_always": { "message": "Schließen",
"message": "Immer", "description": ""
"description": "" },
}, "chatgpt_textarea_not_found_error": {
"message": "Es gibt einen Fehler beim Senden der Eingabeaufforderung an ChatGPT. Bitte versuchen Sie es erneut. Wenn das Problem weiterhin besteht, überprüfen Sie bitte den <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">Dienststatus</a>.",
"customPrompts_add_to_menu_reading": { "description": ""
"message": "E-Mail lesen", },
"description": "" "chatgpt_sendbutton_not_found_error": {
}, "message": "Klicken Sie auf die Schaltfläche „Senden“, um die Eingabeaufforderung zu übermitteln.",
"description": ""
"customPrompts_add_to_menu_composing": { },
"message": "E-Mail verfassen", "chatgpt_user_not_logged_in": {
"description": "" "message": "Sie sind nicht bei ChatGPT angemeldet. Bitte melden Sie sich mit Ihren Anmeldeinformationen an, schließen Sie das ChatGPT-Fenster und wiederholen Sie dann die Aktion, die Sie versucht haben. Danach bleiben Sie angemeldet.",
}, "description": ""
},
"customPrompts_close_button": { "chatgpt_win_model_warning": {
"message": "Schließen", "message": "Sie haben die Option zur Verwendung von ChatGPT-4 eingestellt, aber es scheint, dass es nicht korrekt geladen wird. Haben Sie oben das Modell 4 oder 4o gewählt?",
"description": "" "description": ""
}, },
"chatgpt_win_custom_text": {
"customPrompts_do_reply": { "message": "Fügen Sie hier den zusätzlichen Text für die Eingabeaufforderung ein.",
"message": "Antworten", "description": ""
"description": "" },
}, "chatgpt_win_send": {
"message": "Senden",
"customPrompts_substitute_text": { "description": ""
"message": "Text ersetzen", },
"description": "" "chatgpt_use_gpt35": {
}, "message": "Verwenden Sie GPT3.5",
"description": ""
"chatgpt_win_working": { },
"message": "Arbeit in Arbeit...", "chatgpt_force_completion": {
"description": "" "message": "Abschluss erzwingen",
}, "description": ""
},
"chatgpt_win_job_completed": { "chatgpt_force_completion_title": {
"message": "Abgeschlossen!", "message": "Klicken Sie hier, um die Schaltfläche „Letzte Antwort verwenden“ anzuzeigen, wenn ChatGPT seine Arbeit abgeschlossen hat, die Schaltfläche jedoch nicht erschienen ist.",
"description": "" "description": ""
}, },
"msg_prompt_too_long": {
"chatgpt_win_get_answer": { "message": "Der eingegebene Text ist zu lang. Sie müssen ihn verkürzen, um ChatGPT zu verwenden.",
"message": "Letzte Antwort verwenden", "description": ""
"description": "" },
}, "prefs_OptionText_release_notes": {
"message": "Versionshinweise",
"chatgpt_win_close": { "description": ""
"message": "Schließen", },
"description": "" "prefs_status_page": {
}, "message": "Dienststatus",
"description": ""
"chatgpt_textarea_not_found_error": { },
"message": "Es gibt einen Fehler beim Senden der Eingabeaufforderung an ChatGPT. Bitte versuchen Sie es erneut. Wenn das Problem weiterhin besteht, überprüfen Sie bitte den <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">Dienststatus</a>.", "prefs_OptionText_chatgpt_win_text": {
"description": "" "message": "ChatGPT-Fensterabmessungen",
}, "description": ""
},
"chatgpt_sendbutton_not_found_error": { "prefs_OptionText_chatgpt_win_height": {
"message": "Klicken Sie auf die Schaltfläche „Senden“, um die Eingabeaufforderung zu übermitteln.", "message": "Höhe",
"description": "" "description": ""
}, },
"prefs_OptionText_chatgpt_win_width": {
"chatgpt_user_not_logged_in": { "message": "Breite",
"message": "Sie sind nicht bei ChatGPT angemeldet. Bitte melden Sie sich mit Ihren Anmeldeinformationen an, schließen Sie das ChatGPT-Fenster und wiederholen Sie dann die Aktion, die Sie versucht haben. Danach bleiben Sie angemeldet.", "description": ""
"description": "" },
}, "prefs_OptionText_default_sign_name": {
"message": "Standard-Signaturname",
"chatgpt_win_model_warning": { "description": ""
"message": "Sie haben die Option zur Verwendung von ChatGPT-4 eingestellt, aber es scheint, dass es nicht korrekt geladen wird. Haben Sie das richtige Modell oben ausgewählt?", },
"description": "" "prefs_OptionText_default_chatgpt_lang": {
}, "message": "Standardsprache für ChatGPT-Antworten",
"description": ""
"chatgpt_win_custom_text": { },
"message": "Fügen Sie hier den zusätzlichen Text für die Eingabeaufforderung ein.", "prefs_OptionText_reply_all": {
"description": "" "message": "Allen antworten",
}, "description": ""
},
"chatgpt_win_send": { "prefs_OptionText_reply_sender": {
"message": "Senden", "message": "Absender antworten",
"description": "" "description": ""
}, },
"prefs_OptionText_reply_type": {
"chatgpt_use_gpt35": { "message": "Antworttyp",
"message": "Verwenden Sie GPT3.5", "description": ""
"description": "" },
}, "prefs_OptionText_chatpgt_keep_formatting": {
"message": "Behalte die Formatierung bei",
"chatgpt_force_completion": { "description": ""
"message": "Abschluss erzwingen", },
"description": "" "prefs_OptionText_chatpgt_keep_formatting_info": {
}, "message": "Behalte die Formatierung und die Zahlen oder Aufzählungspunkte aus der ChatGPT-Antwort bei.",
"description": ""
"chatgpt_force_completion_title": { },
"message": "Klicken Sie hier, um die Schaltfläche „Letzte Antwort verwenden“ anzuzeigen, wenn ChatGPT seine Arbeit abgeschlossen hat, die Schaltfläche jedoch nicht erschienen ist.", "prefs_OptionText_chatpgt_use_gpt4": {
"description": "" "message": "Verwenden Sie ChatGPT-4",
}, "description": ""
},
"msg_prompt_too_long": { "prefs_OptionText_chatpgt_use_gpt4_info": {
"message": "Der eingegebene Text ist zu lang. Sie müssen ihn verkürzen, um ChatGPT zu verwenden.", "message": "Nachdem Sie diese Option geändert haben, müssen Sie beim ersten Gebrauch das richtige Modell auswählen.",
"description": "" "description": ""
}, },
"prefs_OptionText_btnManagePrompts": {
"prefs_OptionText_release_notes": { "message": "Verwalten Sie Ihre Eingabeaufforderungen",
"message": "Versionshinweise", "description": ""
"description": "" },
}, "prefsInfoTitle": {
"message": "Wichtige Informationen",
"prefs_status_page": { "description": ""
"message": "Dienststatus", },
"description": "" "prefsInfoDesc_1": {
}, "message": "Es ist nicht mehr möglich, den Verlauf der ChatGPT-Chats zu deaktivieren. Daher gibt es keine Möglichkeit, zu verhindern, dass Anfragen, die über dieses Addon gestellt werden, in Ihrem ChatGPT-Chatverlauf erscheinen.",
"description": ""
"prefs_OptionText_chatgpt_win_text": { },
"message": "ChatGPT-Fensterabmessungen", "prefsInfoDesc_2": {
"description": "" "message": "Wenn eine weiße Seite erscheint, wenn das ChatGPT-Fenster geöffnet wird, bedeutet dies, dass es ein Problem beim Laden der ChatGPT-Seite gibt, das nicht mit der Verwendung dieses Add-Ons zusammenhängt.",
}, "description": ""
},
"prefs_OptionText_chatgpt_win_height": { "prefsInfoDesc_3": {
"message": "Höhe", "message": " ",
"description": "" "description": ""
}, },
"prefsDonation_1": {
"prefs_OptionText_chatgpt_win_width": { "message": "Gefällt Ihnen dieses Addon?",
"message": "Breite", "description": ""
"description": "" },
}, "prefsDonation_2": {
"message": "Überlegen Sie, eine Spende zu machen!",
"prefs_OptionText_default_sign_name": { "description": ""
"message": "Standard-Signaturname", },
"description": "" "backToOptionsText": {
}, "message": "Optionen",
"description": ""
"prefs_OptionText_default_chatgpt_lang": { },
"message": "Standardsprache für ChatGPT-Antworten", "TranslateText": {
"description": "" "message": "Möchtest du helfen, dieses Add-on zu übersetzen?",
}, "description": ""
},
"prefs_OptionText_reply_all": { "TranslateLink": {
"message": "Allen antworten", "message": "Finde es heraus!",
"description": "" "description": ""
},
"prefs_OptionText_reply_sender": {
"message": "Absender antworten",
"description": ""
},
"prefs_OptionText_reply_type": {
"message": "Antworttyp",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4": {
"message": "Verwenden Sie ChatGPT-4",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4_info": {
"message": "Nachdem Sie diese Option geändert haben, müssen Sie beim ersten Gebrauch das richtige Modell auswählen.",
"description": ""
},
"prefs_OptionText_btnManagePrompts": {
"message": "Verwalten Sie Ihre Eingabeaufforderungen",
"description": ""
},
"prefsInfoTitle": {
"message": "Wichtige Informationen",
"description": ""
},
"prefsInfoDesc_1": {
"message": "Es ist nicht mehr möglich, den Verlauf der ChatGPT-Chats zu deaktivieren. Daher gibt es keine Möglichkeit, zu verhindern, dass Anfragen, die über dieses Addon gestellt werden, in Ihrem ChatGPT-Chatverlauf erscheinen.",
"description": ""
},
"prefsInfoDesc_2": {
"message": "Wenn eine weiße Seite erscheint, wenn das ChatGPT-Fenster geöffnet wird, bedeutet dies, dass es ein Problem beim Laden der ChatGPT-Seite gibt, das nicht mit der Verwendung dieses Add-Ons zusammenhängt.",
"description": ""
},
"prefsInfoDesc_3": {
"message": " ",
"description": ""
},
"prefsDonation_1": {
"message": "Gefällt Ihnen dieses Addon?",
"description": ""
},
"prefsDonation_2": {
"message": "Überlegen Sie, eine Spende zu machen!",
"description": ""
},
"backToOptionsText": {
"message": "Optionen",
"description": ""
}
} }
}

View file

@ -3,404 +3,344 @@
"message": "Use ChatGPT to enhance you emails!", "message": "Use ChatGPT to enhance you emails!",
"description": "Description of the extension." "description": "Description of the extension."
}, },
"menu_title": { "menu_title": {
"message": "AI", "message": "AI",
"description": "" "description": ""
}, },
"prompt_lang": { "prompt_lang": {
"message": "Reply in ", "message": "Reply in ",
"description": "" "description": ""
}, },
"prompt_reply": { "prompt_reply": {
"message": "Reply to this", "message": "Reply to this",
"description": "" "description": ""
}, },
"prompt_rewrite_polite": { "prompt_rewrite_polite": {
"message": "Rewrite polite", "message": "Rewrite polite",
"description": "" "description": ""
}, },
"prompt_rewrite_formal": { "prompt_rewrite_formal": {
"message": "Rewrite formal", "message": "Rewrite formal",
"description": "" "description": ""
}, },
"prompt_classify": { "prompt_classify": {
"message": "Classify", "message": "Classify",
"description": "" "description": ""
}, },
"prompt_summarize_this": { "prompt_summarize_this": {
"message": "Summarize this", "message": "Summarize this",
"description": "" "description": ""
}, },
"prompt_translate_this": { "prompt_translate_this": {
"message": "Translate this", "message": "Translate this",
"description": "" "description": ""
}, },
"prompt_this": { "prompt_this": {
"message": "Prompt this", "message": "Prompt this",
"description": "" "description": ""
}, },
"prompt_selection_needed": { "prompt_selection_needed": {
"message": "To proceed, you need to select some text!", "message": "To proceed, you need to select some text!",
"description": "" "description": ""
}, },
"customPrompts_managePrompts": { "customPrompts_managePrompts": {
"message": "Manage Prompts", "message": "Manage Prompts",
"description": "" "description": ""
}, },
"customPrompts_managePrompts_help": { "customPrompts_managePrompts_help": {
"message": "More info", "message": "More info",
"description": "" "description": ""
}, },
"customPrompts_managePrompts_info_default": {
"message": "The default prompts are not editable. You can disable them, then copy the prompt text and paste it into a new one to create a modified version.",
"description": ""
},
"customPrompts_start_saving": { "customPrompts_start_saving": {
"message": "Saving prompts...", "message": "Saving prompts...",
"description": "" "description": ""
}, },
"customPrompts_reindexing_list": { "customPrompts_reindexing_list": {
"message": "Reindexing list...", "message": "Reindexing list...",
"description": "" "description": ""
}, },
"customPrompts_filtering_prompts": { "customPrompts_filtering_prompts": {
"message": "Filtering prompts...", "message": "Filtering prompts...",
"description": "" "description": ""
}, },
"customPrompts_saving_default_prompts": { "customPrompts_saving_default_prompts": {
"message": "Saving default prompts...", "message": "Saving default prompts...",
"description": "" "description": ""
}, },
"customPrompts_saving_custom_prompts": { "customPrompts_saving_custom_prompts": {
"message": "Saving custom prompts...", "message": "Saving custom prompts...",
"description": "" "description": ""
}, },
"customPrompts_reloading_menus": { "customPrompts_reloading_menus": {
"message": "Reloading menus...", "message": "Reloading menus...",
"description": "" "description": ""
}, },
"customPrompts_saved": { "customPrompts_saved": {
"message": "Prompts saved!", "message": "Prompts saved!",
"description": "" "description": ""
}, },
"customPrompts_form_label_ID": { "customPrompts_form_label_ID": {
"message": "ID", "message": "ID",
"description": "" "description": ""
}, },
"customPrompts_form_label_ID_rules": { "customPrompts_form_label_ID_rules": {
"message": "Must be unique, lowercase and without spaces", "message": "Must be unique, lowercase and without spaces",
"description": "" "description": ""
}, },
"customPrompts_form_label_Name": { "customPrompts_form_label_Name": {
"message": "Name", "message": "Name",
"description": "" "description": ""
}, },
"customPrompts_form_label_Text": { "customPrompts_form_label_Text": {
"message": "Prompt Text", "message": "Prompt Text",
"description": "" "description": ""
}, },
"customPrompts_form_label_Action": { "customPrompts_form_label_Action": {
"message": "Action", "message": "Action",
"description": "" "description": ""
}, },
"customPrompts_form_label_need_selected": { "customPrompts_form_label_need_selected": {
"message": "Text selection needed", "message": "Text selection needed",
"description": "" "description": ""
}, },
"customPrompts_form_label_need_signature": { "customPrompts_form_label_need_signature": {
"message": "Always add the signature", "message": "Always add the signature",
"description": "" "description": ""
}, },
"customPrompts_form_label_need_custom_text": { "customPrompts_form_label_need_custom_text": {
"message": "Ask for additional text", "message": "Ask for additional text",
"description": "" "description": ""
}, },
"customPrompts_form_label_enabled": { "customPrompts_form_label_enabled": {
"message": "Enabled", "message": "Enabled",
"description": "" "description": ""
}, },
"customPrompts_form_required_fields": { "customPrompts_form_required_fields": {
"message": "Required fields", "message": "Required fields",
"description": "" "description": ""
}, },
"customPrompts_btnEdit": { "customPrompts_btnEdit": {
"message": "Edit", "message": "Edit",
"description": "" "description": ""
}, },
"customPrompts_btnCancel": { "customPrompts_btnCancel": {
"message": "Cancel", "message": "Cancel",
"description": "" "description": ""
}, },
"customPrompts_btnOK": { "customPrompts_btnOK": {
"message": "OK", "message": "OK",
"description": "" "description": ""
}, },
"customPrompts_btnDelete": { "customPrompts_btnDelete": {
"message": "Delete", "message": "Delete",
"description": "" "description": ""
}, },
"customPrompts_btnDelete_confirmText": { "customPrompts_btnDelete_confirmText": {
"message": "Are you sure you want to delete this item?", "message": "Are you sure you want to delete this item?",
"description": "" "description": ""
}, },
"customPrompts_unsaved_changes": { "customPrompts_unsaved_changes": {
"message": "There are unsaved changes!", "message": "There are unsaved changes!",
"description": "" "description": ""
}, },
"customPrompts_btnSaveAll": { "customPrompts_btnSaveAll": {
"message": "Save All", "message": "Save All",
"description": "" "description": ""
}, },
"customPrompts_save_button": { "customPrompts_save_button": {
"message": "Save", "message": "Save",
"description": "" "description": ""
}, },
"customPrompts_btnNew": { "customPrompts_btnNew": {
"message": "Add New", "message": "Add New",
"description": "" "description": ""
}, },
"customPrompts_btnAddNewCommit": { "customPrompts_btnAddNewCommit": {
"message": "Add the Prompt", "message": "Add the Prompt",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu": { "customPrompts_add_to_menu": {
"message": "Add to menu", "message": "Add to menu",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu_always": { "customPrompts_add_to_menu_always": {
"message": "Always", "message": "Always",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu_reading": { "customPrompts_add_to_menu_reading": {
"message": "Reading an email", "message": "Reading an email",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu_composing": { "customPrompts_add_to_menu_composing": {
"message": "Composing an email", "message": "Composing an email",
"description": "" "description": ""
}, },
"customPrompts_close_button": { "customPrompts_close_button": {
"message": "Close button", "message": "Close button",
"description": "" "description": ""
}, },
"customPrompts_do_reply": { "customPrompts_do_reply": {
"message": "Do reply", "message": "Do reply",
"description": "" "description": ""
}, },
"customPrompts_substitute_text": { "customPrompts_substitute_text": {
"message": "Substitute text", "message": "Substitute text",
"description": "" "description": ""
}, },
"chatgpt_win_working": { "chatgpt_win_working": {
"message": "Work in progress...", "message": "Work in progress...",
"description": "" "description": ""
}, },
"chatgpt_win_job_completed": { "chatgpt_win_job_completed": {
"message": "Completed!", "message": "Completed!",
"description": "" "description": ""
}, },
"chatgpt_win_get_answer": { "chatgpt_win_get_answer": {
"message": "Use last answer", "message": "Use last answer",
"description": "" "description": ""
}, },
"chatgpt_win_close": { "chatgpt_win_close": {
"message": "Close", "message": "Close",
"description": "" "description": ""
}, },
"chatgpt_textarea_not_found_error": { "chatgpt_textarea_not_found_error": {
"message": "There is an error sending the prompt to ChatGPT, please retry. If the problem persists, please <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">check the service status</a>.", "message": "There is an error sending the prompt to ChatGPT, please retry. If the problem persists, please <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">check the service status</a>.",
"description": "" "description": ""
}, },
"chatgpt_sendbutton_not_found_error": { "chatgpt_sendbutton_not_found_error": {
"message": "Click the send button to submit the prompt.", "message": "Click the send button to submit the prompt.",
"description": "" "description": ""
}, },
"chatgpt_user_not_logged_in": { "chatgpt_user_not_logged_in": {
"message": "You are not logged in to ChatGPT. Please log in with your credentials, close the ChatGPT window, and then repeat the action you attempted. You will remain logged in afterwards.", "message": "You are not logged in to ChatGPT. Please log in with your credentials, close the ChatGPT window, and then repeat the action you attempted. You will remain logged in afterwards.",
"description": "" "description": ""
}, },
"chatgpt_win_model_warning": { "chatgpt_win_model_warning": {
"message": "You have set the option to use ChatGPT-4, but it seems that it is not loading correctly. Have you chosen the right model at the top?", "message": "You have set the option to use ChatGPT-4, but it seems that it is not loading correctly. Have you chosen the model 4 or 4o at the top?",
"description": "" "description": ""
}, },
"chatgpt_win_custom_text": { "chatgpt_win_custom_text": {
"message": "Insert here the additional text for the prompt.", "message": "Insert here the additional text for the prompt.",
"description": "" "description": ""
}, },
"chatgpt_win_send": { "chatgpt_win_send": {
"message": "Send", "message": "Send",
"description": "" "description": ""
}, },
"chatgpt_use_gpt35": { "chatgpt_use_gpt35": {
"message": "Use GPT3.5", "message": "Use GPT3.5",
"description": "" "description": ""
}, },
"chatgpt_force_completion": { "chatgpt_force_completion": {
"message": "force completion", "message": "force completion",
"description": "" "description": ""
}, },
"chatgpt_force_completion_title": { "chatgpt_force_completion_title": {
"message": "Click here to display the 'Use last answer' button if ChatGPT has finished its work but the button has not appeared.", "message": "Click here to display the 'Use last answer' button if ChatGPT has finished its work but the button has not appeared.",
"description": "" "description": ""
}, },
"msg_prompt_too_long": { "msg_prompt_too_long": {
"message": "The text you provided is too long. You need to reduce it to use ChatGPT.", "message": "The text you provided is too long. You need to reduce it to use ChatGPT.",
"description": "" "description": ""
}, },
"prefs_OptionText_release_notes": { "prefs_OptionText_release_notes": {
"message": "Release Notes", "message": "Release Notes",
"description": "" "description": ""
}, },
"prefs_status_page": { "prefs_status_page": {
"message": "service status", "message": "service status",
"description": "" "description": ""
}, },
"prefs_OptionText_chatgpt_win_text": { "prefs_OptionText_chatgpt_win_text": {
"message": "ChatGPT window dimensions", "message": "ChatGPT window dimensions",
"description": "" "description": ""
}, },
"prefs_OptionText_chatgpt_win_height": { "prefs_OptionText_chatgpt_win_height": {
"message": "Height", "message": "Height",
"description": "" "description": ""
}, },
"prefs_OptionText_chatgpt_win_width": { "prefs_OptionText_chatgpt_win_width": {
"message": "Width", "message": "Width",
"description": "" "description": ""
}, },
"prefs_OptionText_default_sign_name": { "prefs_OptionText_default_sign_name": {
"message": "Default signature name", "message": "Default signature name",
"description": "" "description": ""
}, },
"prefs_OptionText_default_chatgpt_lang": { "prefs_OptionText_default_chatgpt_lang": {
"message": "Default language for ChatGPT responses", "message": "Default language for ChatGPT responses",
"description": "" "description": ""
}, },
"prefs_OptionText_reply_all": { "prefs_OptionText_reply_all": {
"message": "Reply to All", "message": "Reply to All",
"description": "" "description": ""
}, },
"prefs_OptionText_reply_sender": { "prefs_OptionText_reply_sender": {
"message": "Reply to Sender", "message": "Reply to Sender",
"description": "" "description": ""
}, },
"prefs_OptionText_reply_type": { "prefs_OptionText_reply_type": {
"message": "Reply type", "message": "Reply type",
"description": "" "description": ""
}, },
"prefs_OptionText_chatpgt_keep_formatting": {
"message": "Keep formatting",
"description": ""
},
"prefs_OptionText_chatpgt_keep_formatting_info": {
"message": "Keep the formatting and numeral or bullet points from the ChatGPT response.",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4": { "prefs_OptionText_chatpgt_use_gpt4": {
"message": "Use ChatGPT-4", "message": "Use ChatGPT-4",
"description": "" "description": ""
}, },
"prefs_OptionText_chatpgt_use_gpt4_info": { "prefs_OptionText_chatpgt_use_gpt4_info": {
"message": "After changing this option, you have to choose the right model the first time you use it.", "message": "After changing this option, you have to choose the right model the first time you use it.",
"description": "" "description": ""
}, },
"prefs_OptionText_btnManagePrompts": { "prefs_OptionText_btnManagePrompts": {
"message": "Manage your prompts", "message": "Manage your prompts",
"description": "" "description": ""
}, },
"prefsInfoTitle": { "prefsInfoTitle": {
"message": "Important Information", "message": "Important Information",
"description": "" "description": ""
}, },
"prefsInfoDesc_1": { "prefsInfoDesc_1": {
"message": "It is no longer possible to disable the history of ChatGPT chats. Therefore, there is no way to prevent requests made through this addon from appearing in your ChatGPT chat history.", "message": "It is no longer possible to disable the history of ChatGPT chats. Therefore, there is no way to prevent requests made through this addon from appearing in your ChatGPT chat history.",
"description": "" "description": ""
}, },
"prefsInfoDesc_2": { "prefsInfoDesc_2": {
"message": "If a white page appears when opening the ChatGPT window, it means there is a problem loading the ChatGPT page, not related to the use of this add-on.", "message": "If a white page appears when opening the ChatGPT window, it means there is a problem loading the ChatGPT page, not related to the use of this add-on.",
"description": "" "description": ""
}, },
"prefsInfoDesc_3": { "prefsInfoDesc_3": {
"message": " ", "message": " ",
"description": "" "description": ""
}, },
"prefsDonation_1": { "prefsDonation_1": {
"message": "Do you like this addon?", "message": "Do you like this addon?",
"description": "" "description": ""
}, },
"prefsDonation_2": { "prefsDonation_2": {
"message": "Consider to make a donation!", "message": "Consider to make a donation!",
"description": "" "description": ""
}, },
"backToOptionsText": { "backToOptionsText": {
"message": "Options", "message": "Options",
"description": "" "description": ""
},
"TranslateText": {
"message": "Do you want to help translate this addon?",
"description": ""
},
"TranslateLink": {
"message": "Find out how!",
"description": ""
} }
} }

View file

@ -1,407 +1,346 @@
{ {
"extensionDescription": { "extensionDescription": {
"message": "Utilisez ChatGPT pour améliorer vos emails!", "message": "Utilisez ChatGPT pour améliorer vos emails !",
"description": "Description de l'extension." "description": "Description de l'extension."
}, },
"menu_title": {
"menu_title": { "message": "IA",
"message": "IA", "description": ""
"description": "" },
}, "prompt_lang": {
"message": "Répondre en ",
"prompt_lang": { "description": ""
"message": "Répondre en ", },
"description": "" "prompt_reply": {
}, "message": "Répondre à ceci",
"description": ""
"prompt_reply": { },
"message": "Répondre à ceci", "prompt_rewrite_polite": {
"description": "" "message": "Réécrire de manière polie",
}, "description": ""
},
"prompt_rewrite_polite": { "prompt_rewrite_formal": {
"message": "Réécrire de manière polie", "message": "Réécrire de manière formelle",
"description": "" "description": ""
}, },
"prompt_classify": {
"prompt_rewrite_formal": { "message": "Classer",
"message": "Réécrire de manière formelle", "description": ""
"description": "" },
}, "prompt_summarize_this": {
"message": "Résumer ceci",
"prompt_classify": { "description": ""
"message": "Classer", },
"description": "" "prompt_translate_this": {
}, "message": "Traduire ceci",
"description": ""
"prompt_summarize_this": { },
"message": "Résumer ceci", "prompt_this": {
"description": "" "message": "Proposer ceci",
}, "description": ""
},
"prompt_translate_this": { "prompt_selection_needed": {
"message": "Traduire ceci", "message": "Pour continuer, vous devez sélectionner du texte !",
"description": "" "description": ""
}, },
"customPrompts_managePrompts": {
"prompt_this": { "message": "Gérer les prompts",
"message": "Proposer ceci", "description": ""
"description": "" },
}, "customPrompts_managePrompts_help": {
"message": "Informations",
"prompt_selection_needed": { "description": ""
"message": "Pour continuer, vous devez sélectionner du texte!", },
"description": "" "customPrompts_managePrompts_info_default": {
}, "message": "Les invites par défaut ne sont pas modifiables. Vous pouvez les désactiver, puis copier le texte de l'invite et le coller dans une nouvelle pour créer une version modifiée.",
"description": ""
"customPrompts_managePrompts": { },
"message": "Gérer les prompts", "customPrompts_start_saving": {
"description": "" "message": "Enregistrement des prompts...",
}, "description": ""
},
"customPrompts_managePrompts_help": { "customPrompts_reindexing_list": {
"message": "Informations", "message": "Réindexation de la liste...",
"description": "" "description": ""
}, },
"customPrompts_filtering_prompts": {
"customPrompts_start_saving": { "message": "Filtrage des prompts...",
"message": "Enregistrement des prompts...", "description": ""
"description": "" },
}, "customPrompts_saving_default_prompts": {
"message": "Enregistrement des prompts par défaut...",
"customPrompts_reindexing_list": { "description": ""
"message": "Réindexation de la liste...", },
"description": "" "customPrompts_saving_custom_prompts": {
}, "message": "Enregistrement des prompts personnalisées...",
"description": ""
"customPrompts_filtering_prompts": { },
"message": "Filtrage des prompts...", "customPrompts_reloading_menus": {
"description": "" "message": "Rechargement des menus...",
}, "description": ""
},
"customPrompts_saving_default_prompts": { "customPrompts_saved": {
"message": "Enregistrement des prompts par défaut...", "message": "prompts enregistrées !",
"description": "" "description": ""
}, },
"customPrompts_form_label_ID": {
"customPrompts_saving_custom_prompts": { "message": "ID",
"message": "Enregistrement des prompts personnalisées...", "description": ""
"description": "" },
}, "customPrompts_form_label_ID_rules": {
"message": "Doit être unique, en minuscules et sans espaces",
"customPrompts_reloading_menus": { "description": ""
"message": "Rechargement des menus...", },
"description": "" "customPrompts_form_label_Name": {
}, "message": "Nom",
"description": ""
"customPrompts_saved": { },
"message": "prompts enregistrées!", "customPrompts_form_label_Text": {
"description": "" "message": "Texte de la proposition",
}, "description": ""
},
"customPrompts_form_label_ID": { "customPrompts_form_label_Action": {
"message": "ID", "message": "Action",
"description": "" "description": ""
}, },
"customPrompts_form_label_need_selected": {
"customPrompts_form_label_ID_rules": { "message": "Sélection de texte nécessaire",
"message": "Doit être unique, en minuscules et sans espaces", "description": ""
"description": "" },
}, "customPrompts_form_label_need_signature": {
"message": "Toujours ajouter la signature",
"customPrompts_form_label_Name": { "description": ""
"message": "Nom", },
"description": "" "customPrompts_form_label_need_custom_text": {
}, "message": "Demander du texte supplémentaire",
"description": ""
"customPrompts_form_label_Text": { },
"message": "Texte de la proposition", "customPrompts_form_label_enabled": {
"description": "" "message": "Activé",
}, "description": ""
},
"customPrompts_form_label_Action": { "customPrompts_form_required_fields": {
"message": "Action", "message": "Champs obligatoires",
"description": "" "description": ""
}, },
"customPrompts_btnEdit": {
"customPrompts_form_label_need_selected": { "message": "Modifier",
"message": "Sélection de texte nécessaire", "description": ""
"description": "" },
}, "customPrompts_btnCancel": {
"message": "Annuler",
"customPrompts_form_label_need_signature": { "description": ""
"message": "Toujours ajouter la signature", },
"description": "" "customPrompts_btnOK": {
}, "message": "OK",
"description": ""
"customPrompts_form_label_need_custom_text": { },
"message": "Demander du texte supplémentaire", "customPrompts_btnDelete": {
"description": "" "message": "Supprimer",
}, "description": ""
},
"customPrompts_form_label_enabled": { "customPrompts_btnDelete_confirmText": {
"message": "Activé", "message": "Êtes-vous sûr de vouloir supprimer cet élément ?",
"description": "" "description": ""
}, },
"customPrompts_unsaved_changes": {
"customPrompts_form_required_fields": { "message": "Il y a des modifications non enregistrées !",
"message": "Champs obligatoires", "description": ""
"description": "" },
}, "customPrompts_btnSaveAll": {
"message": "Tout enregistrer",
"customPrompts_btnEdit": { "description": ""
"message": "Modifier", },
"description": "" "customPrompts_save_button": {
}, "message": "Enregistrer",
"description": ""
"customPrompts_btnCancel": { },
"message": "Annuler", "customPrompts_btnNew": {
"description": "" "message": "Ajouter nouveau",
}, "description": ""
},
"customPrompts_btnOK": { "customPrompts_btnAddNewCommit": {
"message": "OK", "message": "Ajouter la proposition",
"description": "" "description": ""
}, },
"customPrompts_add_to_menu": {
"customPrompts_btnDelete": { "message": "Ajouter au menu",
"message": "Supprimer", "description": ""
"description": "" },
}, "customPrompts_add_to_menu_always": {
"message": "Toujours",
"customPrompts_btnDelete_confirmText": { "description": ""
"message": "Êtes-vous sûr de vouloir supprimer cet élément?", },
"description": "" "customPrompts_add_to_menu_reading": {
}, "message": "Lors de la lecture d'un email",
"description": ""
"customPrompts_unsaved_changes": { },
"message": "Il y a des modifications non enregistrées!", "customPrompts_add_to_menu_composing": {
"description": "" "message": "Lors de la rédaction d'un email",
}, "description": ""
},
"customPrompts_btnSaveAll": { "customPrompts_close_button": {
"message": "Tout enregistrer", "message": "Bouton de fermeture",
"description": "" "description": ""
}, },
"customPrompts_do_reply": {
"customPrompts_save_button": { "message": "Faire une réponse",
"message": "Enregistrer", "description": ""
"description": "" },
}, "customPrompts_substitute_text": {
"message": "Remplacer le texte",
"customPrompts_btnNew": { "description": ""
"message": "Ajouter nouveau", },
"description": "" "chatgpt_win_working": {
}, "message": "Travail en cours...",
"description": ""
"customPrompts_btnAddNewCommit": { },
"message": "Ajouter la proposition", "chatgpt_win_job_completed": {
"description": "" "message": "Terminé !",
}, "description": ""
},
"customPrompts_add_to_menu": { "chatgpt_win_get_answer": {
"message": "Ajouter au menu", "message": "Utiliser la dernière réponse",
"description": "" "description": ""
}, },
"chatgpt_win_close": {
"customPrompts_add_to_menu_always": { "message": "Fermer",
"message": "Toujours", "description": ""
"description": "" },
}, "chatgpt_textarea_not_found_error": {
"message": "Il y a une erreur lors de l'envoi de la proposition à ChatGPT, veuillez réessayer. Si le problème persiste, veuillez <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">vérifier le statut du service</a>.",
"customPrompts_add_to_menu_reading": { "description": ""
"message": "Lors de la lecture d'un email", },
"description": "" "chatgpt_sendbutton_not_found_error": {
}, "message": "Cliquez sur le bouton d'envoi pour soumettre la proposition.",
"description": ""
"customPrompts_add_to_menu_composing": { },
"message": "Lors de la rédaction d'un email", "chatgpt_user_not_logged_in": {
"description": "" "message": "Vous n'êtes pas connecté à ChatGPT. Veuillez vous connecter avec vos identifiants, fermer la fenêtre ChatGPT, puis répéter l'action que vous avez tentée. Vous resterez connecté par la suite.",
}, "description": ""
},
"customPrompts_close_button": { "chatgpt_win_model_warning": {
"message": "Bouton de fermeture", "message": "Vous avez choisi l'option d'utiliser ChatGPT-4, mais il semble qu'il ne se charge pas correctement. Avez-vous choisi le modèle 4 ou 4o en haut ?",
"description": "" "description": ""
}, },
"chatgpt_win_custom_text": {
"customPrompts_do_reply": { "message": "Insérez ici le texte supplémentaire pour la proposition.",
"message": "Faire une réponse", "description": ""
"description": "" },
}, "chatgpt_win_send": {
"message": "Envoyer",
"customPrompts_substitute_text": { "description": ""
"message": "Remplacer le texte", },
"description": "" "chatgpt_use_gpt35": {
}, "message": "Utiliser GPT3.5",
"description": ""
"chatgpt_win_working": { },
"message": "Travail en cours...", "chatgpt_force_completion": {
"description": "" "message": "forcer l'achèvement",
}, "description": ""
},
"chatgpt_win_job_completed": { "chatgpt_force_completion_title": {
"message": "Terminé!", "message": "Cliquez ici pour afficher le bouton 'Utiliser la dernière réponse' si ChatGPT a terminé son travail mais que le bouton n'est pas apparu.",
"description": "" "description": ""
}, },
"msg_prompt_too_long": {
"chatgpt_win_get_answer": { "message": "Le texte que vous avez fourni est trop long. Vous devez le réduire pour utiliser ChatGPT.",
"message": "Utiliser la dernière réponse", "description": ""
"description": "" },
}, "prefs_OptionText_release_notes": {
"message": "Notes de version",
"chatgpt_win_close": { "description": ""
"message": "Fermer", },
"description": "" "prefs_status_page": {
}, "message": "statut du service",
"description": ""
"chatgpt_textarea_not_found_error": { },
"message": "Il y a une erreur lors de l'envoi de la proposition à ChatGPT, veuillez réessayer. Si le problème persiste, veuillez <a href=\"https://micz.it/thunderbird-addon-thunderai/status/\">vérifier le statut du service</a>.", "prefs_OptionText_chatgpt_win_text": {
"description": "" "message": "Dimensions de la fenêtre ChatGPT",
}, "description": ""
},
"chatgpt_sendbutton_not_found_error": { "prefs_OptionText_chatgpt_win_height": {
"message": "Cliquez sur le bouton d'envoi pour soumettre la proposition.", "message": "Hauteur",
"description": "" "description": ""
}, },
"prefs_OptionText_chatgpt_win_width": {
"chatgpt_user_not_logged_in": { "message": "Largeur",
"message": "Vous n'êtes pas connecté à ChatGPT. Veuillez vous connecter avec vos identifiants, fermer la fenêtre ChatGPT, puis répéter l'action que vous avez tentée. Vous resterez connecté par la suite.", "description": ""
"description": "" },
}, "prefs_OptionText_default_sign_name": {
"message": "Nom de la signature par défaut",
"chatgpt_win_model_warning": { "description": ""
"message": "Vous avez choisi l'option d'utiliser ChatGPT-4, mais il semble qu'il ne se charge pas correctement. Avez-vous choisi le bon modèle en haut?", },
"description": "" "prefs_OptionText_default_chatgpt_lang": {
}, "message": "Langue par défaut pour les réponses de ChatGPT",
"description": ""
"chatgpt_win_custom_text": { },
"message": "Insérez ici le texte supplémentaire pour la proposition.", "prefs_OptionText_reply_all": {
"description": "" "message": "Répondre à tous",
}, "description": ""
},
"chatgpt_win_send": { "prefs_OptionText_reply_sender": {
"message": "Envoyer", "message": "Répondre à l'expéditeur",
"description": "" "description": ""
}, },
"prefs_OptionText_reply_type": {
"chatgpt_use_gpt35": { "message": "Type de réponse",
"message": "Utiliser GPT3.5", "description": ""
"description": "" },
}, "prefs_OptionText_chatpgt_keep_formatting": {
"message": "Conserver la mise en forme",
"chatgpt_force_completion": { "description": ""
"message": "forcer l'achèvement", },
"description": "" "prefs_OptionText_chatpgt_keep_formatting_info": {
}, "message": "Conservez la mise en forme et les numéros ou les puces de la réponse de ChatGPT.",
"description": ""
"chatgpt_force_completion_title": { },
"message": "Cliquez ici pour afficher le bouton 'Utiliser la dernière réponse' si ChatGPT a terminé son travail mais que le bouton n'est pas apparu.", "prefs_OptionText_chatpgt_use_gpt4": {
"description": "" "message": "Utiliser ChatGPT-4",
}, "description": ""
},
"msg_prompt_too_long": { "prefs_OptionText_chatpgt_use_gpt4_info": {
"message": "Le texte que vous avez fourni est trop long. Vous devez le réduire pour utiliser ChatGPT.", "message": "Après avoir changé cette option, vous devez choisir le bon modèle la première fois que vous l'utilisez.",
"description": "" "description": ""
}, },
"prefs_OptionText_btnManagePrompts": {
"prefs_OptionText_release_notes": { "message": "Gérer vos prompts",
"message": "Notes de version", "description": ""
"description": "" },
}, "prefsInfoTitle": {
"message": "Informations importantes",
"prefs_status_page": { "description": ""
"message": "statut du service", },
"description": "" "prefsInfoDesc_1": {
}, "message": "Il n'est plus possible de désactiver l'historique des chats ChatGPT. Par conséquent, il n'y a aucun moyen d'empêcher les demandes effectuées via cet addon d'apparaître dans l'historique de vos chats ChatGPT.",
"description": ""
"prefs_OptionText_chatgpt_win_text": { },
"message": "Dimensions de la fenêtre ChatGPT", "prefsInfoDesc_2": {
"description": "" "message": "Si une page blanche apparaît lors de l'ouverture de la fenêtre ChatGPT, cela signifie qu'il y a un problème de chargement de la page ChatGPT, non lié à l'utilisation de cet addon.",
}, "description": ""
},
"prefs_OptionText_chatgpt_win_height": { "prefsInfoDesc_3": {
"message": "Hauteur", "message": " ",
"description": "" "description": ""
}, },
"prefsDonation_1": {
"prefs_OptionText_chatgpt_win_width": { "message": "Aimez-vous cet addon ?",
"message": "Largeur", "description": ""
"description": "" },
}, "prefsDonation_2": {
"message": "Envisagez de faire un don !",
"prefs_OptionText_default_sign_name": { "description": ""
"message": "Nom de la signature par défaut", },
"description": "" "backToOptionsText": {
}, "message": "Options",
"description": ""
"prefs_OptionText_default_chatgpt_lang": { },
"message": "Langue par défaut pour les réponses de ChatGPT", "TranslateText": {
"description": "" "message": "Voulez-vous aider à traduire cet addon ?",
}, "description": ""
},
"prefs_OptionText_reply_all": { "TranslateLink": {
"message": "Répondre à tous", "message": "Découvrez comment !",
"description": "" "description": ""
},
"prefs_OptionText_reply_sender": {
"message": "Répondre à l'expéditeur",
"description": ""
},
"prefs_OptionText_reply_type": {
"message": "Type de réponse",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4": {
"message": "Utiliser ChatGPT-4",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4_info": {
"message": "Après avoir changé cette option, vous devez choisir le bon modèle la première fois que vous l'utilisez.",
"description": ""
},
"prefs_OptionText_btnManagePrompts": {
"message": "Gérer vos prompts",
"description": ""
},
"prefsInfoTitle": {
"message": "Informations importantes",
"description": ""
},
"prefsInfoDesc_1": {
"message": "Il n'est plus possible de désactiver l'historique des chats ChatGPT. Par conséquent, il n'y a aucun moyen d'empêcher les demandes effectuées via cet addon d'apparaître dans l'historique de vos chats ChatGPT.",
"description": ""
},
"prefsInfoDesc_2": {
"message": "Si une page blanche apparaît lors de l'ouverture de la fenêtre ChatGPT, cela signifie qu'il y a un problème de chargement de la page ChatGPT, non lié à l'utilisation de cet addon.",
"description": ""
},
"prefsInfoDesc_3": {
"message": " ",
"description": ""
},
"prefsDonation_1": {
"message": "Aimez-vous cet addon?",
"description": ""
},
"prefsDonation_2": {
"message": "Envisagez de faire un don!",
"description": ""
},
"backToOptionsText": {
"message": "Options",
"description": ""
}
} }
}

View file

@ -67,6 +67,10 @@
"message": "Salvataggio prompt di base...", "message": "Salvataggio prompt di base...",
"description": "" "description": ""
}, },
"customPrompts_managePrompts_info_default": {
"message": "I prompt predefiniti non sono modificabili. Puoi disattivarli, quindi copiare il testo del prompt e incollarlo in uno nuovo per crearne una versione modificata.",
"description": ""
},
"customPrompts_saving_custom_prompts": { "customPrompts_saving_custom_prompts": {
"message": "Salvataggio prompt personalizzati...", "message": "Salvataggio prompt personalizzati...",
"description": "" "description": ""
@ -208,7 +212,7 @@
"description": "" "description": ""
}, },
"chatgpt_win_model_warning": { "chatgpt_win_model_warning": {
"message": "Hai impostato l'opzione per utilizzare ChatGPT-4, ma sembra che non si stia caricando. Hai selezionato correttamente il modello in alto?", "message": "Hai impostato l'opzione per utilizzare ChatGPT-4, ma sembra che non si stia caricando. Hai selezionato il modello 4 o 4o in alto?",
"description": "" "description": ""
}, },
"chatgpt_win_custom_text": { "chatgpt_win_custom_text": {
@ -283,6 +287,14 @@
"message": "Modalità di risposta", "message": "Modalità di risposta",
"description": "" "description": ""
}, },
"prefs_OptionText_chatpgt_keep_formatting": {
"message": "Mantieni la formattazione",
"description": ""
},
"prefs_OptionText_chatpgt_keep_formatting_info": {
"message": "Mantieni la formattazione del testo e gli elenchi puntati e numerati della risposta di ChatGPT.",
"description": ""
},
"prefs_OptionText_chatpgt_use_gpt4": { "prefs_OptionText_chatpgt_use_gpt4": {
"message": "Usa il modello ChatGPT-4", "message": "Usa il modello ChatGPT-4",
"description": "" "description": ""
@ -322,5 +334,13 @@
"backToOptionsText": { "backToOptionsText": {
"message": "Opzioni", "message": "Opzioni",
"description": "" "description": ""
},
"TranslateText": {
"message": "Vuoi aiutare a tradurre questo addon?",
"description": ""
},
"TranslateLink": {
"message": "Scopri come!",
"description": ""
} }
} }

View file

@ -8,7 +8,8 @@
<body> <body>
<div> <div>
<h1>__MSG_customPrompts_managePrompts__</h1> <h1>__MSG_customPrompts_managePrompts__</h1>
<p><a href="https://micz.it/thunderbird-addon-thunderai/custom-prompts/">__MSG_customPrompts_managePrompts_help__</a></p> <p>__MSG_customPrompts_managePrompts_info_default__
<br><a href="https://micz.it/thunderbird-addon-thunderai/custom-prompts/">__MSG_customPrompts_managePrompts_help__</a></p>
</div> </div>
<div id="command_palette"> <div id="command_palette">
<button id="btnSaveAll" disabled>__MSG_customPrompts_btnSaveAll__</button> <button id="btnSaveAll" disabled>__MSG_customPrompts_btnSaveAll__</button>

View file

@ -72,17 +72,38 @@ async function chatgpt_getFromDOM(pos) {
// Removing the new buttons that let the user change model and insert a number (4 or 3.5 at the end of the text) // Removing the new buttons that let the user change model and insert a number (4 or 3.5 at the end of the text)
let parser = new DOMParser(); let parser = new DOMParser();
let doc = parser.parseFromString(responseDivs[responseDivs.length - 1].innerHTML, 'text/html'); let doc = parser.parseFromString(responseDivs[responseDivs.length - 1].innerHTML, 'text/html');
if(!mztaKeepFormatting) { // Return only TEXT
// Select the div with class 'empty:hidden' // Select the div with class 'empty:hidden'
let divToRemove = doc.querySelector('div.empty\\\\:hidden'); let divToRemove = doc.querySelector('div.empty\\\\:hidden');
if (divToRemove) { if (divToRemove) {
divToRemove.remove(); divToRemove.remove();
}
// Extract the new HTML string
responseDivs[responseDivs.length - 1].innerHTML = doc.body.innerHTML;
response = responseDivs[responseDivs.length - 1].textContent;
response = response.replace(/^ChatGPT(?:ChatGPT)?/, ''); // strip sender name
response = response.trim().replace(/^"|"$/g, ''); // strip quotation marks
response = "<body><p>" + response + "</p></body>";
//console.log(">>>>>>>>> response: " + JSON.stringify(response));
let parser_2 = new DOMParser();
let doc_response = parser_2.parseFromString(response, 'text/html');
//console.log(">>>>>>>>> doc_response: " + JSON.stringify(doc_response.body.innerHTML));
replaceNewlinesWithBr(doc_response.body)
response = doc_response.body.innerHTML;
// response = responseDivs[responseDivs.length - 1].innerHTML;
} else { // Return HTML
// Tags to exclude
//console.log(">>>>>>>>> doc.body.innerHTML original: " + doc.body.innerHTML);
const excludeTags = ['div', 'text', 'svg', 'path', 'button'];
const includeTags = ['p', 'ul'];
// removeTags(doc.body, excludeTags);
response = removeTagsAndReturnHTML(doc.body, excludeTags, includeTags)
//console.log(">>>>>>>>> doc.body.innerHTML final: " + doc.body.innerHTML);
// response = doc.body.innerHTML;
} }
// Extract the new HTML string //console.log('chatgpt_getFromDOM final response: '+response);
responseDivs[responseDivs.length - 1].innerHTML = doc.body.innerHTML;
response = responseDivs[responseDivs.length - 1].textContent;
//console.log('chatgpt_getFromDOM: '+response);
//console.log('chatgpt_getFromDOM: [HTML] ' + responseDivs[responseDivs.length - 1].innerHTML.replace(/<div[^>]*>/gi, '').replace(/<\\/div>/gi, '').replace(/<svg[^>]*>/gi, '').replace(/<\\/svg>/gi, '').replace(/<path[^>]*>/gi, '').replace(/<\\/path>/gi, '').replace(/<text[^>]*>/gi, '').replace(/<\\/text>/gi, '').replace(/<span[^>]*>/gi, '').replace(/<\\/span>/gi, '').replace(/<button[^>]*>/gi, '').replace(/<\\/button>/gi, '')); //console.log('chatgpt_getFromDOM: [HTML] ' + responseDivs[responseDivs.length - 1].innerHTML.replace(/<div[^>]*>/gi, '').replace(/<\\/div>/gi, '').replace(/<svg[^>]*>/gi, '').replace(/<\\/svg>/gi, '').replace(/<path[^>]*>/gi, '').replace(/<\\/path>/gi, '').replace(/<text[^>]*>/gi, '').replace(/<\\/text>/gi, '').replace(/<span[^>]*>/gi, '').replace(/<\\/span>/gi, '').replace(/<button[^>]*>/gi, '').replace(/<\\/button>/gi, ''));
} else { // get nth response } else { // get nth response --- HERE ONLY TEXT FROM RESPONSE, NO HTML
const nthOfResponse = ( const nthOfResponse = (
// Calculate base number // Calculate base number
@ -107,9 +128,7 @@ async function chatgpt_getFromDOM(pos) {
); );
response = responseDivs[nthOfResponse - 1].textContent; response = responseDivs[nthOfResponse - 1].textContent;
} }
response = response.replace(/^ChatGPT(?:ChatGPT)?/, ''); // strip sender name //console.log('>>>>>>>>>>>>>> chatgpt_getFromDOM: ' + JSON.stringify(response));
response = response.trim().replace(/^"|"$/g, ''); // strip quotation marks
//console.log('chatgpt_getFromDOM: ' + response);
} }
return response; return response;
} }
@ -337,6 +356,63 @@ async function doProceed(message, customText = ''){
operation_done(); operation_done();
} }
function removeTagsAndReturnHTML(rootElement, removeTags, preserveTags) {
const fragment = document.createDocumentFragment();
function handleElement(element) {
let child = element.firstChild;
while (child) {
const nextSibling = child.nextSibling;
if (preserveTags.includes(child.nodeName.toLowerCase())) {
//console.log(">>>>>>>>>>>> preserve child: " + child.tagName.toLowerCase());
fragment.appendChild(child);
} else if (child.nodeType === Node.ELEMENT_NODE) {
//console.log(">>>>>>>>>>>> handleElement(child): " + child.tagName.toLowerCase());
handleElement(child);
}
child = nextSibling;
}
}
removeTags.forEach(tag => {
const elements = Array.from(rootElement.getElementsByTagName(tag));
elements.forEach(element => {
handleElement(element);
element.parentNode.insertBefore(fragment.cloneNode(true), element);
element.parentNode.removeChild(element);
//console.log(">>>>>>>>>>>> removeChild: " + element.tagName.toLowerCase());
});
});
replaceNewlinesWithBr(rootElement);
//console.log(">>>>>>>>>>>> rootElement.innerHTML: " + rootElement.innerHTML);
// Return the updated HTML as a string
return rootElement.innerHTML;
}
// Replace newline characters with <br> tags
function replaceNewlinesWithBr(node) {
for (let child of Array.from(node.childNodes)) {
if (child.nodeType === Node.TEXT_NODE) {
const parts = child.textContent.split('\\n');
if (parts.length > 1) {
const fragment = document.createDocumentFragment();
parts.forEach((part, index) => {
fragment.appendChild(document.createTextNode(part));
if (index < parts.length - 1) {
fragment.appendChild(document.createElement('br'));
}
});
child.parentNode.replaceChild(fragment, child);
}
} else if (child.nodeType === Node.ELEMENT_NODE) {
replaceNewlinesWithBr(child);
}
}
}
// In the content script // In the content script
browser.runtime.onMessage.addListener((message, sender, sendResponse) => { browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.command === "chatgpt_send") { if (message.command === "chatgpt_send") {

View file

@ -16,24 +16,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// Some methods are a modified version derived from https://github.com/ali-raheem/Aify/blob/13ff87583bc520fb80f555ab90a90c5c9df797a7/plugin/content_scripts/compose.js
const makeParagraphs = (text, func) => {
const chunks = text.split(/\n{2,}/);
if (chunks.length == 1) {
return func(document.createTextNode(text));
}
const paragraphs = chunks.map((t) => {
const p = document.createElement("p");
p.innerText = t;
return p;
});
for (let i = paragraphs.length - 1; i >= 0; i--) {
func(paragraphs[i]);
}
};
browser.runtime.onMessage.addListener(async (message) => { browser.runtime.onMessage.addListener(async (message) => {
switch (message.command) { switch (message.command) {
case "getSelectedText": case "getSelectedText":
@ -50,9 +32,9 @@ switch (message.command) {
} }
const r = sel.getRangeAt(0); const r = sel.getRangeAt(0);
r.deleteContents(); r.deleteContents();
makeParagraphs(message.text, function (p) { const parser = new DOMParser();
r.insertNode(p); const doc = parser.parseFromString(message.text, 'text/html');
}); r.insertNode(doc.body);
browser.runtime.sendMessage({command: "compose_reloadBody", tabId: message.tabId}); browser.runtime.sendMessage({command: "compose_reloadBody", tabId: message.tabId});
break; break;

View file

@ -78,11 +78,11 @@ export async function setBody(tabId, fullHtmlBody){
await messenger.compose.setComposeDetails(tabId, {body: fullHtmlBody}); await messenger.compose.setComposeDetails(tabId, {body: fullHtmlBody});
} }
export async function replaceBody(tabId, text){ export async function replaceBody(tabId, replyHtml) {
let composeDetails = await messenger.compose.getComposeDetails(tabId); let composeDetails = await messenger.compose.getComposeDetails(tabId);
let originalHtmlBody = composeDetails.body; let originalHtmlBody = composeDetails.body;
//console.log('originalHtmlBody: ' + originalHtmlBody); //console.log('originalHtmlBody: ' + originalHtmlBody);
let fullBody = insertText(text, originalHtmlBody); let fullBody = insertHtml(replyHtml, originalHtmlBody);
//console.log('fullBody: ' + fullBody); //console.log('fullBody: ' + fullBody);
await messenger.compose.setComposeDetails(tabId, {body: fullBody}); await messenger.compose.setComposeDetails(tabId, {body: fullBody});
} }
@ -90,9 +90,10 @@ export async function replaceBody(tabId, text){
// The following methods are a modified version derived from https://github.com/ali-raheem/Aify/blob/13ff87583bc520fb80f555ab90a90c5c9df797a7/plugin/content_scripts/compose.js // The following methods are a modified version derived from https://github.com/ali-raheem/Aify/blob/13ff87583bc520fb80f555ab90a90c5c9df797a7/plugin/content_scripts/compose.js
const insertText = function (text, fullBody_string) { const insertHtml = function (replyHtml, fullBody_string) {
const parser = new DOMParser(); const parser = new DOMParser();
let fullBody = parser.parseFromString(fullBody_string, "text/html"); let fullBody = parser.parseFromString(fullBody_string, "text/html");
let reply = parser.parseFromString(replyHtml, "text/html");
// looking for the first quoted mail or the signature, which come first in case of "signature above the quote". // looking for the first quoted mail or the signature, which come first in case of "signature above the quote".
const prefix_quote = fullBody.getElementsByClassName("moz-cite-prefix"); const prefix_quote = fullBody.getElementsByClassName("moz-cite-prefix");
@ -119,25 +120,18 @@ const insertText = function (text, fullBody_string) {
} }
let final_p = document.createElement("p"); let final_p = document.createElement("p");
final_p.innerHTML = "<p><br/><br/></p>"; let br1 = document.createElement("br");
let br2 = document.createElement("br");
final_p.appendChild(br1);
final_p.appendChild(br2);
fullBody.body.insertBefore(final_p, fullBody.body.firstChild); fullBody.body.insertBefore(final_p, fullBody.body.firstChild);
makeParagraphs(text, function (p) { //fullBody.body.insertBefore(reply, fullBody.body.firstChild);
fullBody.body.insertBefore(p, fullBody.body.firstChild); let fragment = document.createDocumentFragment();
Array.from(reply.body.childNodes).forEach(node => {
if (node.parentNode === reply.body) {
fragment.appendChild(node.cloneNode(true));
}
}); });
fullBody.body.insertBefore(fragment, fullBody.body.firstChild);
return fullBody.body.innerHTML; return fullBody.body.innerHTML;
} }
const makeParagraphs = (text, func) => {
const chunks = text.split(/\n{2,}/);
if (chunks.length == 1) {
return func(document.createTextNode(text));
}
const paragraphs = chunks.map((t) => {
const p = document.createElement("p");
p.innerText = t;
return p;
});
for (let i = paragraphs.length - 1; i >= 0; i--) {
func(paragraphs[i]);
}
};

View file

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

View file

@ -19,7 +19,7 @@
import { mzta_script } from './js/mzta-chatgpt.js'; import { mzta_script } from './js/mzta-chatgpt.js';
import { prefs_default } from './options/mzta-options-default.js'; import { prefs_default } from './options/mzta-options-default.js';
import { mzta_Menus } from './js/mzta-menus.js'; import { mzta_Menus } from './js/mzta-menus.js';
import { getCurrentIdentity, getOriginalBody, reloadBody, replaceBody, setBody } from './js/mzta-utils.js'; import { getCurrentIdentity, getOriginalBody, replaceBody, setBody } from './js/mzta-utils.js';
var createdWindowID = null; var createdWindowID = null;
var original_html = ''; var original_html = '';
@ -69,6 +69,7 @@ messenger.runtime.onMessage.addListener(async (message, sender, sendResponse) =>
return true; return true;
case 'chatgpt_replyMessage': case 'chatgpt_replyMessage':
const paragraphsHtmlString = message.text; const paragraphsHtmlString = message.text;
//console.log(">>>>>>>>>>>> paragraphsHtmlString: " + paragraphsHtmlString);
let prefs = await browser.storage.sync.get({reply_type: 'reply_all'}); let prefs = await browser.storage.sync.get({reply_type: 'reply_all'});
//console.log('reply_type: ' + prefs.reply_type); //console.log('reply_type: ' + prefs.reply_type);
let replyType = 'replyToAll'; let replyType = 'replyToAll';
@ -100,7 +101,7 @@ messenger.runtime.onMessage.addListener(async (message, sender, sendResponse) =>
const listener = (tabId, changeInfo, updatedTab) => { const listener = (tabId, changeInfo, updatedTab) => {
if (tabIsLoaded(updatedTab)) { if (tabIsLoaded(updatedTab)) {
browser.tabs.onUpdated.removeListener(listener); browser.tabs.onUpdated.removeListener(listener);
console.log(">>>>>>>>>>>> reply_tab: " + tabId); //console.log(">>>>>>>>>>>> reply_tab: " + tabId);
resolve(); resolve();
} }
} }
@ -138,6 +139,7 @@ messenger.runtime.onMessage.addListener(async (message, sender, sendResponse) =>
async function openChatGPT(promptText, action, curr_tabId, do_custom_text = 0) { async function openChatGPT(promptText, action, curr_tabId, do_custom_text = 0) {
let prefs = await browser.storage.sync.get(prefs_default); let prefs = await browser.storage.sync.get(prefs_default);
prefs = checkScreenDimensions(prefs); prefs = checkScreenDimensions(prefs);
//console.log(">>>>>>>>>>>>>>>> prefs: " + JSON.stringify(prefs));
console.log('[ThunderAI] Prompt length: ' + promptText.length); console.log('[ThunderAI] Prompt length: ' + promptText.length);
if(promptText.length > 30000 ){ if(promptText.length > 30000 ){
// Prompt too long for ChatGPT // Prompt too long for ChatGPT
@ -178,6 +180,7 @@ async function openChatGPT(promptText, action, curr_tabId, do_custom_text = 0) {
let mztaForceCompletionDesc="`+ browser.i18n.getMessage("chatgpt_force_completion") +`"; let mztaForceCompletionDesc="`+ browser.i18n.getMessage("chatgpt_force_completion") +`";
let mztaForceCompletionTitle="`+ browser.i18n.getMessage("chatgpt_force_completion_title") +`"; let mztaForceCompletionTitle="`+ browser.i18n.getMessage("chatgpt_force_completion_title") +`";
let mztaDoCustomText=`+ do_custom_text +`; let mztaDoCustomText=`+ do_custom_text +`;
let mztaKeepFormatting=`+ prefs.chatgpt_keep_formatting +`;
`; `;
browser.tabs.executeScript(createdTab.id, { code: pre_script + mzta_script, matchAboutBlank: false }) browser.tabs.executeScript(createdTab.id, { code: pre_script + mzta_script, matchAboutBlank: false })

View file

@ -20,4 +20,5 @@ export const prefs_default = {
chatgpt_win_height: 800, chatgpt_win_height: 800,
chatgpt_win_width: 700, chatgpt_win_width: 700,
chatpgt_use_gpt4: false, chatpgt_use_gpt4: false,
chatgpt_keep_formatting: false,
} }

View file

@ -61,6 +61,7 @@ div#miczStatusPage{
left: 0px; left: 0px;
bottom: 2px; bottom: 2px;
padding: 2px 0px 0px 5px; padding: 2px 0px 0px 5px;
text-transform: capitalize;
} }
div#miczDescription h1{ div#miczDescription h1{
@ -91,3 +92,11 @@ span.dims_label{
width: 100%; width: 100%;
margin: 10px 0px; margin: 10px 0px;
} }
div#miczTranslate{
width: 100%;
text-align: center;
font-size: 14px;
font-weight: bold;
margin-bottom: 1em;
}

View file

@ -59,6 +59,17 @@
</label> </label>
</td> </td>
</tr> </tr>
<tr>
<td><label>
<span>__MSG_prefs_OptionText_chatpgt_keep_formatting__</span>
</label></td>
<td>
<label>
<input type="checkbox" id="chatgpt_keep_formatting" name="chatgpt_keep_formatting" class="option-input" />
&nbsp;<span>__MSG_prefs_OptionText_chatpgt_keep_formatting_info__</span>
</label>
</td>
</tr>
<tr> <tr>
<td><label> <td><label>
<span>__MSG_prefs_OptionText_chatpgt_use_gpt4__</span> <span>__MSG_prefs_OptionText_chatpgt_use_gpt4__</span>
@ -80,6 +91,7 @@
__MSG_prefsInfoDesc_2__<br/> __MSG_prefsInfoDesc_2__<br/>
__MSG_prefsInfoDesc_3__</p> __MSG_prefsInfoDesc_3__</p>
</div> </div>
<div id="miczTranslate">__MSG_TranslateText__ <a href="https://micz.it/thunderbird-addon-thunderai/translate/">__MSG_TranslateLink__</a></div>
<div id="miczDonation">__MSG_prefsDonation_1__<br/><a href="http://micz.it/thunderbird-addon-thunderai/donate/">__MSG_prefsDonation_2__</a></div> <div id="miczDonation">__MSG_prefsDonation_1__<br/><a href="http://micz.it/thunderbird-addon-thunderai/donate/">__MSG_prefsDonation_2__</a></div>
<script src="mzta-options.js" type="module"></script> <script src="mzta-options.js" type="module"></script>
<script src="../js/mzta-i18n.js"></script> <script src="../js/mzta-i18n.js"></script>

View file

@ -7,7 +7,14 @@
<body> <body>
<div id="miczBackPrefs"><a href="mzta-options.html">__MSG_backToOptionsText__</a></div> <div id="miczBackPrefs"><a href="mzta-options.html">__MSG_backToOptionsText__</a></div>
<div id="miczRelNotes"><h1>ThunderAI Release Notes</h1> <div id="miczRelNotes"><h1>ThunderAI Release Notes</h1>
<h2>Version 1.1.3 - 18/06/2024</h2> <h2>Version 1.1.4 - 28/06/2024</h2>
<ul>
<li>Added an option to import text with formatting from ChatGPT, set to false by default [<a href="https://github.com/micz/ThunderAI/issues/70">#70</a>], [<a href="https://github.com/micz/ThunderAI/issues/77">#77</a>].</li>
<li>Improve the message warning to choose the right model [<a href="https://github.com/micz/ThunderAI/issues/76">#76</a>].</li>
<li>Added a description in the Custom Prompts page about default prompts [<a href="https://github.com/micz/ThunderAI/issues/74">#74</a>].</li>
<li>Added a link to the <a href="https://micz.it/thunderbird-addon-thunderai/translate/">translate page</a> in the options window [<a href="https://github.com/micz/ThunderAI/issues/68">#68</a>].</li>
</ul>
<h2>Version 1.1.3 - 18/06/2024</h2>
<ul> <ul>
<li>Fixed a bug in replying to a message [<a href="https://github.com/micz/ThunderAI/issues/70">#70</a>].</li> <li>Fixed a bug in replying to a message [<a href="https://github.com/micz/ThunderAI/issues/70">#70</a>].</li>
</ul> </ul>