diff --git a/Wino.Core.Domain/Enums/AiActionType.cs b/Wino.Core.Domain/Enums/AiActionType.cs deleted file mode 100644 index 26501bb0..00000000 --- a/Wino.Core.Domain/Enums/AiActionType.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Wino.Core.Domain.Enums; - -[Flags] -public enum AiActionType -{ - None = 0, - Translate = 1, - Rewrite = 2, - Summarize = 4, -} diff --git a/Wino.Core.Domain/Enums/WinoAddOnProductType.cs b/Wino.Core.Domain/Enums/WinoAddOnProductType.cs index e4e08540..9d2510ee 100644 --- a/Wino.Core.Domain/Enums/WinoAddOnProductType.cs +++ b/Wino.Core.Domain/Enums/WinoAddOnProductType.cs @@ -2,6 +2,5 @@ namespace Wino.Core.Domain.Enums; public enum WinoAddOnProductType { - AI_PACK, UNLIMITED_ACCOUNTS } diff --git a/Wino.Core.Domain/Interfaces/IAiActionOptionsService.cs b/Wino.Core.Domain/Interfaces/IAiActionOptionsService.cs deleted file mode 100644 index 5efaf1e7..00000000 --- a/Wino.Core.Domain/Interfaces/IAiActionOptionsService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; -using Wino.Core.Domain.Models.Ai; - -namespace Wino.Core.Domain.Interfaces; - -public interface IAiActionOptionsService -{ - IReadOnlyList GetTranslateLanguageOptions(); - IReadOnlyList GetRewriteModeOptions(); -} diff --git a/Wino.Core.Domain/Interfaces/IWinoAccountApiClient.cs b/Wino.Core.Domain/Interfaces/IWinoAccountApiClient.cs index 79d21e29..48650d52 100644 --- a/Wino.Core.Domain/Interfaces/IWinoAccountApiClient.cs +++ b/Wino.Core.Domain/Interfaces/IWinoAccountApiClient.cs @@ -3,7 +3,6 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Wino.Core.Domain.Models.Accounts; -using Wino.Mail.Api.Contracts.Ai; using Wino.Mail.Api.Contracts.Auth; using Wino.Mail.Api.Contracts.Common; using Wino.Mail.Api.Contracts.Users; @@ -19,10 +18,6 @@ public interface IWinoAccountApiClient Task> ForgotPasswordAsync(string email, CancellationToken cancellationToken = default); Task> LogoutAsync(string refreshToken, CancellationToken cancellationToken = default); Task> GetCurrentUserAsync(CancellationToken cancellationToken = default); - Task> GetAiStatusAsync(CancellationToken cancellationToken = default); - Task> SummarizeAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); - Task> TranslateAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); - Task> RewriteAsync(string html, string mode, CancellationToken cancellationToken = default); Task> CreateCollectionsIdTicketAsync(CancellationToken cancellationToken = default); Task> CreatePurchaseIdTicketAsync(CancellationToken cancellationToken = default); Task> SyncStoreEntitlementsAsync(string? storeIdKey, string? purchaseIdKey, CancellationToken cancellationToken = default); diff --git a/Wino.Core.Domain/Interfaces/IWinoAccountProfileService.cs b/Wino.Core.Domain/Interfaces/IWinoAccountProfileService.cs index d91ffa0e..39400ddf 100644 --- a/Wino.Core.Domain/Interfaces/IWinoAccountProfileService.cs +++ b/Wino.Core.Domain/Interfaces/IWinoAccountProfileService.cs @@ -5,7 +5,6 @@ using System.Threading; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Models.Accounts; -using Wino.Mail.Api.Contracts.Ai; using Wino.Mail.Api.Contracts.Auth; using Wino.Mail.Api.Contracts.Common; using Wino.Mail.Api.Contracts.Users; @@ -24,10 +23,6 @@ public interface IWinoAccountProfileService Task GetAuthenticatedAccountAsync(CancellationToken cancellationToken = default); Task HasActiveAccountAsync(); Task> GetCurrentUserAsync(CancellationToken cancellationToken = default); - Task> GetAiStatusAsync(CancellationToken cancellationToken = default); - Task> SummarizeAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); - Task> TranslateAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); - Task> RewriteAsync(string html, string mode, CancellationToken cancellationToken = default); Task> SyncStoreEntitlementsAsync(CancellationToken cancellationToken = default); Task GetSettingsAsync(CancellationToken cancellationToken = default); Task SaveSettingsAsync(string settingsJson, CancellationToken cancellationToken = default); diff --git a/Wino.Core.Domain/Models/Ai/AiRewriteModeOption.cs b/Wino.Core.Domain/Models/Ai/AiRewriteModeOption.cs deleted file mode 100644 index 3b3013bb..00000000 --- a/Wino.Core.Domain/Models/Ai/AiRewriteModeOption.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace Wino.Core.Domain.Models.Ai; - -public sealed record AiRewriteModeOption(string Mode, string Label, string Description, bool IsCustom = false); diff --git a/Wino.Core.Domain/Models/Ai/AiTranslateLanguageOption.cs b/Wino.Core.Domain/Models/Ai/AiTranslateLanguageOption.cs deleted file mode 100644 index ed0b97be..00000000 --- a/Wino.Core.Domain/Models/Ai/AiTranslateLanguageOption.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace Wino.Core.Domain.Models.Ai; - -public sealed record AiTranslateLanguageOption(string Code, string Label); diff --git a/Wino.Core.Domain/Translations/bg_BG/resources.json b/Wino.Core.Domain/Translations/bg_BG/resources.json index 93525899..28d56610 100644 --- a/Wino.Core.Domain/Translations/bg_BG/resources.json +++ b/Wino.Core.Domain/Translations/bg_BG/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Скрийте бутона за профила в заглавната лента, който отваря изскачащото меню за акаунта Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Уведомления за обновления в магазина", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Показвайте уведомления и действия в долния колонтитър, когато има налично обновление на Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Скрий панела за AI действия", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Скрий AI действия в съставителя и читателя на имейли.", - "SettingsAppPreferences_AiActions_Title": "AI действия", - "SettingsAppPreferences_AiActions_Description": "Изберете езиците за AI по подразбиране и къде трябва да се запазват резюметата.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Език по подразбиране за превод", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Изберете език по подразбиране за превод от AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Език за обобщение", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Обобщи с AI", "Composer_AiSummarizeDescription": "Извлича ключови точки, действия и решения от този имейл.", "Composer_AiTranslate": "Преведи с AI", - "Composer_AiActions": "AI действия", "Composer_AiRewrite": "Препиши с AI", - "AiActions_CheckingStatus": "Проверка на достъпа до AI...", - "AiActions_SignedOutTitle": "Разблокирайте Wino AI Pack", - "AiActions_SignedOutDescription": "Превеждайте, преписвайте и обобщавайте имейли с AI след влизане във вашия Wino акаунт и активиране на добавката AI Pack.", - "AiActions_NoPackTitle": "AI пакет", - "AiActions_NoPackDescription": "Вие сте вписани, но AI Pack не е активен. Купете го, за да използвате инструментите за AI превод, преписване и обобщаване на Wino.", - "AiActions_UsageSummary": "{0} от {1} кредити използвани този месец.", "Composer_AiRewritePolite": "Направи го учтиво", "Composer_AiRewritePoliteDescription": "Улеснява формулировката, запазвайки същия смисъл.", "Composer_AiRewriteAngry": "Направи го ядосано", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / месец", "WinoAccount_Management_AiPackPromoRequests": "1 000 кредита", "WinoAccount_Management_AiPackGetButton": "Вземи AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-инструменти за превод, преработка и резюмиране на имейли в Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, превод, преработка, резюмиране, производителност", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Неограничени акаунти", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Премахнете ограниченията за акаунти и добавяйте толкова имейл акаунти, колкото ви трябват.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "акаунти, неограничени, премиум, добавка", diff --git a/Wino.Core.Domain/Translations/ca_ES/resources.json b/Wino.Core.Domain/Translations/ca_ES/resources.json index 56d31876..05295af4 100644 --- a/Wino.Core.Domain/Translations/ca_ES/resources.json +++ b/Wino.Core.Domain/Translations/ca_ES/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Amaga el botó de perfil de la barra de títol que obre el desplegable del compte de Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notificacions d'actualitzacions de la Botiga", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Mostra notificacions i accions al peu de pàgina quan hi hagi una actualització disponible a Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Oculta el panell d'accions d'IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Oculta les accions d'IA en el redactor i en el lector de correu.", - "SettingsAppPreferences_AiActions_Title": "Accions d'IA", - "SettingsAppPreferences_AiActions_Description": "Trieu les llengües d'IA predeterminades i on s'han d'emmagatzemar els resums.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Idioma de traducció predeterminant", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Trieu l'idioma de destinació predeterminat utilitzat per les accions de traducció amb IA.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Idioma de resum", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Resumir amb IA", "Composer_AiSummarizeDescription": "Extreu punts clau, accions i decisions d'aquest correu electrònic.", "Composer_AiTranslate": "Tradueix amb IA", - "Composer_AiActions": "Accions d'IA", "Composer_AiRewrite": "Reescriu amb IA", - "AiActions_CheckingStatus": "Comprovant l'accés a IA...", - "AiActions_SignedOutTitle": "Desbloqueja el paquet IA de Wino", - "AiActions_SignedOutDescription": "Traduïu, reescriviu i resumi correus electrònics amb IA després d'iniciar sessió al teu compte Wino i activar l'extensió AI Pack.", - "AiActions_NoPackTitle": "Cal l'AI Pack", - "AiActions_NoPackDescription": "Estàs connectat, però l'AI Pack encara no està actiu. Adquireix-lo per utilitzar les eines de traducció, reescriptura i resum amb IA de Wino.", - "AiActions_UsageSummary": "{0} de {1} crèdits utilitzats aquest mes.", "Composer_AiRewritePolite": "Fes-ho més educat", "Composer_AiRewritePoliteDescription": "Suavitza la redacció mantenint la mateixa intenció.", "Composer_AiRewriteAngry": "Fes-ho enfadat", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mes", "WinoAccount_Management_AiPackPromoRequests": "1.000 crèdits", "WinoAccount_Management_AiPackGetButton": "Obtenir AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Eines alimentades per IA per traduir, reformular i resumir accions a Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "IA, traducció, reescriptura, resum, productivitat", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Comptes il·limitats", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Elimina la limitació de comptes i afegeix tants comptes de correu com necessitis.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "comptes, il·limitats, premium, complement", diff --git a/Wino.Core.Domain/Translations/cs_CZ/resources.json b/Wino.Core.Domain/Translations/cs_CZ/resources.json index c639faf1..fa20a350 100644 --- a/Wino.Core.Domain/Translations/cs_CZ/resources.json +++ b/Wino.Core.Domain/Translations/cs_CZ/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Skrýt tlačítko profilu v liště titulku, které otevírá nabídku účtu Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Oznámení o aktualizacích z Microsoft Store.", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Zobrazovat oznámení a akce v patičce, když je k dispozici aktualizace z Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Skrýt panel akcí AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Skrýt AI akce v editoru e-mailů a čtečce.", - "SettingsAppPreferences_AiActions_Title": "AI akce", - "SettingsAppPreferences_AiActions_Description": "Vyberte výchozí jazyky pro AI a kde mají být souhrny ukládány.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Výchozí jazyk překladu", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Vyberte výchozí cílový jazyk použitý při překladech AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Jazyk shrnutí", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Shrnout pomocí AI", "Composer_AiSummarizeDescription": "Z tohoto e-mailu vyextrahujte klíčové body, akční kroky a rozhodnutí.", "Composer_AiTranslate": "Přeložit pomocí AI", - "Composer_AiActions": "AI akce", "Composer_AiRewrite": "Přepsat pomocí AI", - "AiActions_CheckingStatus": "Ověřování přístupu k AI...", - "AiActions_SignedOutTitle": "Odemknout Wino AI balíček", - "AiActions_SignedOutDescription": "Překládejte, přepište a shrnujte e-maily pomocí AI po přihlášení k vašemu účtu Wino a aktivaci doplňku AI Pack.", - "AiActions_NoPackTitle": "AI Pack vyžadován", - "AiActions_NoPackDescription": "Jste přihlášeni, ale AI Pack ještě není aktivní. Zakupte si ho, abyste mohli používat Wino AI překlad, přepis a shrnutí.", - "AiActions_UsageSummary": "Použito {0} z {1} kreditů tento měsíc.", "Composer_AiRewritePolite": "Udělej to zdvořile", "Composer_AiRewritePoliteDescription": "Zjemní formulaci a zachová stejný záměr.", "Composer_AiRewriteAngry": "Udělej to agresivně", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / měs.", "WinoAccount_Management_AiPackPromoRequests": "1 000 kreditů", "WinoAccount_Management_AiPackGetButton": "Získat AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Nástroje poháněné AI pro překlad, přeformulování a shrnutí e-mailů ve Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, překlad, přeformulování, shrnutí, produktivita", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Neomezené účty", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Odeberte omezení počtu účtů a přidejte tolik e-mailových účtů, kolik potřebujete.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "účty, neomezené, prémiový, doplněk", diff --git a/Wino.Core.Domain/Translations/da_DK/resources.json b/Wino.Core.Domain/Translations/da_DK/resources.json index 107196c4..2974e5eb 100644 --- a/Wino.Core.Domain/Translations/da_DK/resources.json +++ b/Wino.Core.Domain/Translations/da_DK/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Skjul profilknappen i titelbjælken, som åbner Wino-kontoens flyout.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Meddelelser om opdateringer i Microsoft Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Vis notifikationer og handlinger i bunden, når der er en opdatering i Microsoft Store tilgængelig.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Skjul AI-handlingspanel", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Skjul AI-handlinger i mailkomponisten og læseren.", - "SettingsAppPreferences_AiActions_Title": "AI-handlinger", - "SettingsAppPreferences_AiActions_Description": "Vælg standard AI-sprog og hvor resuméer skal gemmes.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Standard oversættelsessprog", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Vælg det standardmål, der bruges af AI-oversættelseshandlinger.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Opsummeringssprog", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Sammenfat med AI", "Composer_AiSummarizeDescription": "Uddrag nøglepunkter, handlingspunkter og beslutninger fra denne e-mail.", "Composer_AiTranslate": "Oversæt med AI", - "Composer_AiActions": "AI-handlinger", "Composer_AiRewrite": "Omskriv med AI", - "AiActions_CheckingStatus": "Kontrollerer AI-adgang...", - "AiActions_SignedOutTitle": "Få adgang til Wino AI-pakken.", - "AiActions_SignedOutDescription": "Oversæt, omskriv og opsummer e-mails med AI, når du har logget ind på din Wino-konto og aktiveret AI Pack-tilføjelsen.", - "AiActions_NoPackTitle": "AI-pakken kræves", - "AiActions_NoPackDescription": "Du er logget ind, men AI Pack er ikke aktiveret endnu. Køb den for at bruge Winos AI-oversættelse, omskrivning og sammenfatningsværktøjer.", - "AiActions_UsageSummary": "{0} ud af {1} kreditter brugt denne måned.", "Composer_AiRewritePolite": "Gør den høflig", "Composer_AiRewritePoliteDescription": "Gør formuleringen mere høflig uden at ændre intentionen.", "Composer_AiRewriteAngry": "Gør den vred", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mo", "WinoAccount_Management_AiPackPromoRequests": "1.000 kreditter", "WinoAccount_Management_AiPackGetButton": "Få AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-drevne værktøjer til oversættelse, omskrivning og sammenfatning af e-mails i Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, oversæt, omskriv, opsummer, produktivitet", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Ubegrænsede konti", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Fjern kontoens begrænsning og tilføj så mange mailkonti, som du har brug for.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "konti, ubegrænsede, premium, tilføjelsesmodul", diff --git a/Wino.Core.Domain/Translations/de_DE/resources.json b/Wino.Core.Domain/Translations/de_DE/resources.json index 6055f0dc..8c07c9cd 100644 --- a/Wino.Core.Domain/Translations/de_DE/resources.json +++ b/Wino.Core.Domain/Translations/de_DE/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Profil-Schaltfläche in der Titelleiste ausblenden, die das Wino-Konto-Ausklappmenü öffnet.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Store-Update-Benachrichtigungen", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Zeigen Sie Benachrichtigungen und Fußzeilenaktionen, wenn ein Microsoft Store-Update verfügbar ist.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "KI-Aktionen-Panel ausblenden", - "SettingsAppPreferences_HideAiActionsPanel_Description": "KI-Aktionen im E-Mail-Verfassen- und -Lesen ausblenden.", - "SettingsAppPreferences_AiActions_Title": "KI-Aktionen", - "SettingsAppPreferences_AiActions_Description": "Standard-KI-Sprachen auswählen und Speicherort für Zusammenfassungen festlegen.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Standardsprache der Übersetzung", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Wählen Sie die Standardzielsprache, die von KI-Übersetzungsaktionen verwendet wird.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Zusammenfassungssprache", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Mit KI zusammenfassen", "Composer_AiSummarizeDescription": "Extrahiert zentrale Punkte, Maßnahmen und Entscheidungen aus dieser E-Mail.", "Composer_AiTranslate": "Mit KI übersetzen", - "Composer_AiActions": "KI-Aktionen", "Composer_AiRewrite": "Mit KI umschreiben", - "AiActions_CheckingStatus": "KI-Zugriff wird geprüft...", - "AiActions_SignedOutTitle": "Wino AI-Paket entsperren", - "AiActions_SignedOutDescription": "Übersetzen, Umschreiben und Zusammenfassen von E-Mails mit KI nach der Anmeldung bei Ihrem Wino-Konto und Aktivierung des AI Pack-Add-ons.", - "AiActions_NoPackTitle": "KI-Paket erforderlich", - "AiActions_NoPackDescription": "Sie sind angemeldet, aber das KI-Paket ist noch nicht aktiv. Kaufen Sie es, um Winos KI-Übersetzung, Umschreiben und Zusammenfassungswerkzeuge zu verwenden.", - "AiActions_UsageSummary": "{0} von {1} Credits in diesem Monat verwendet.", "Composer_AiRewritePolite": "Höflicher formulieren", "Composer_AiRewritePoliteDescription": "Formulierung mildern, aber denselben Sinn beibehalten.", "Composer_AiRewriteAngry": "Wütend formulieren", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mo", "WinoAccount_Management_AiPackPromoRequests": "1.000 Credits", "WinoAccount_Management_AiPackGetButton": "AI Pack erhalten", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "KI-gestützte Tools zum Übersetzen, Umformulieren und Zusammenfassen von Nachrichten in Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "KI, übersetzen, umschreiben, zusammenfassen, Produktivität", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Unbegrenzte Konten", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Entfernt das Kontolimit und fügt beliebig viele E-Mail-Konten hinzu.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "Konten, unbegrenzt, Premium, Add-on", diff --git a/Wino.Core.Domain/Translations/el_GR/resources.json b/Wino.Core.Domain/Translations/el_GR/resources.json index 9e36fd4f..133829e3 100644 --- a/Wino.Core.Domain/Translations/el_GR/resources.json +++ b/Wino.Core.Domain/Translations/el_GR/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Απόκρυψη του κουμπιού προφίλ στη γραμμή τίτλου που ανοίγει το μενού λογαριασμού Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Ειδοποιήσεις ενημερώσεων Microsoft Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Εμφάνιση ειδοποιήσεων και ενεργειών στο υποσέλιδο όταν υπάρχει διαθέσιμη ενημέρωση του Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Απόκρυψη πίνακα ενεργειών AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Απόκρυψη των ενεργειών AI στον συντάκτη και στον αναγνώστη ηλεκτρονικού ταχυδρομείου.", - "SettingsAppPreferences_AiActions_Title": "Ενέργειες AI", - "SettingsAppPreferences_AiActions_Description": "Επιλέξτε προεπιλεγμένες γλώσσες AI και πού θα αποθηκεύονται οι περιλήψεις.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Προεπιλεγμένη γλώσσα μετάφρασης", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Επιλέξτε την προεπιλεγμένη γλώσσα-στόχο που χρησιμοποιούν οι ενέργειες μετάφρασης AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Γλώσσα περίληψης", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Περίληψη με AI", "Composer_AiSummarizeDescription": "Εξαγάγετε τα κύρια σημεία, ενέργειες και αποφάσεις από αυτό το email.", "Composer_AiTranslate": "Μετάφραση με AI", - "Composer_AiActions": "Ενέργειες AI", "Composer_AiRewrite": "Αναδιατύπωση με AI", - "AiActions_CheckingStatus": "Έλεγχος πρόσβασης AI…", - "AiActions_SignedOutTitle": "Ξεκλειδώστε το Wino AI Pack", - "AiActions_SignedOutDescription": "Μεταφράστε, επαναγράψτε και συνοψίστε τα email με τη χρήση AI αφού συνδεθείτε στον λογαριασμό σας Wino και ενεργοποιήσετε το πρόσθετο AI Pack.", - "AiActions_NoPackTitle": "Απαιτείται το AI Pack", - "AiActions_NoPackDescription": "Έχετε συνδεθεί, αλλά το AI Pack δεν είναι ενεργό ακόμα. Αγοράστε το για να χρησιμοποιήσετε τα εργαλεία μετάφρασης AI, επαναδιατύπωσης και περίληψης του Wino.", - "AiActions_UsageSummary": "{0} από {1} πιστώσεις χρησιμοποιήθηκαν αυτό το μήνα.", "Composer_AiRewritePolite": "Κάντε το ευγενικό", "Composer_AiRewritePoliteDescription": "Μαλακώνει τη διατύπωση διατηρώντας τον ίδιο σκοπό.", "Composer_AiRewriteAngry": "Κάντε το να φανεί οργισμένο", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "4,99 $ / μήνα", "WinoAccount_Management_AiPackPromoRequests": "1.000 credits", "WinoAccount_Management_AiPackGetButton": "Λήψη AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Εργαλεία με τεχνητή νοημοσύνη για μετάφραση, επαναγραφή και περίληψη ενέργειών στο Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, μετάφραση, επαναγραφή, περίληψη, παραγωγικότητα", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Απεριόριστοι Λογαριασμοί", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Αφαιρέστε τον περιορισμό λογαριασμών και προσθέστε όσους λογαριασμούς email χρειάζεστε.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "λογαριασμοί, απεριόριστο, premium, πρόσθετο", diff --git a/Wino.Core.Domain/Translations/en_US/resources.json b/Wino.Core.Domain/Translations/en_US/resources.json index 65f628ab..2b73c5c5 100644 --- a/Wino.Core.Domain/Translations/en_US/resources.json +++ b/Wino.Core.Domain/Translations/en_US/resources.json @@ -790,10 +790,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Hide the title bar profile button that opens the Wino account flyout.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Store update notifications", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Show notifications and footer actions when a Microsoft Store update is available.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Hide AI actions panel", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Hide AI actions in the mail composer and reader.", - "SettingsAppPreferences_AiActions_Title": "AI actions", - "SettingsAppPreferences_AiActions_Description": "Choose default AI languages and where summaries should be saved.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Default translation language", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Pick the default target language used by AI translate actions.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Summarize language", @@ -1215,14 +1211,7 @@ "Composer_AiSummarize": "Summarize with AI", "Composer_AiSummarizeDescription": "Extract key points, action items, and decisions from this email.", "Composer_AiTranslate": "Translate with AI", - "Composer_AiActions": "AI Actions", "Composer_AiRewrite": "Rewrite with AI", - "AiActions_CheckingStatus": "Checking AI access...", - "AiActions_SignedOutTitle": "Unlock Wino AI Pack", - "AiActions_SignedOutDescription": "Translate, rewrite, and summarize emails with AI after signing in to your Wino Account and activating the AI Pack add-on.", - "AiActions_NoPackTitle": "AI Pack required", - "AiActions_NoPackDescription": "You're signed in, but AI Pack is not active yet. Purchase it to use Wino's AI translation, rewrite, and summarize tools.", - "AiActions_UsageSummary": "{0} of {1} credits used this month.", "Composer_AiRewritePolite": "Make it polite", "Composer_AiRewritePoliteDescription": "Softens the wording while keeping the same intent.", "Composer_AiRewriteAngry": "Make it angry", @@ -1403,9 +1392,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mo", "WinoAccount_Management_AiPackPromoRequests": "1,000 credits", "WinoAccount_Management_AiPackGetButton": "Get AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-powered tools for translate, rewrite, and summarize actions in Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, translate, rewrite, summarize, productivity", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Unlimited Accounts", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Remove the account limit and add as many mail accounts as you need.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "accounts, unlimited, premium, add-on", diff --git a/Wino.Core.Domain/Translations/es_ES/resources.json b/Wino.Core.Domain/Translations/es_ES/resources.json index 783d3916..04522fac 100644 --- a/Wino.Core.Domain/Translations/es_ES/resources.json +++ b/Wino.Core.Domain/Translations/es_ES/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Ocultar el botón de perfil en la barra de título que abre el panel desplegable de la cuenta de Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notificaciones de actualizaciones de Microsoft Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Mostrar notificaciones y acciones en el pie de página cuando haya una actualización de Microsoft Store disponible.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Ocultar panel de acciones de IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Ocultar las acciones de IA en el compositor y lector de correo.", - "SettingsAppPreferences_AiActions_Title": "Acciones de IA", - "SettingsAppPreferences_AiActions_Description": "Elegir los idiomas de IA predeterminados y dónde guardar los resúmenes.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Idioma de traducción predeterminado", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Seleccione el lenguaje de destino predeterminado utilizado por las acciones de traducción IA.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Idioma de resumen", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Resumir con IA", "Composer_AiSummarizeDescription": "Extrae puntos clave, acciones y decisiones de este correo.", "Composer_AiTranslate": "Traducir con IA", - "Composer_AiActions": "Acciones de IA", "Composer_AiRewrite": "Reescribir con IA", - "AiActions_CheckingStatus": "Comprobando acceso a IA...", - "AiActions_SignedOutTitle": "Desbloquear el paquete de IA de Wino", - "AiActions_SignedOutDescription": "Traduce, reescribe y resume correos con IA después de iniciar sesión en tu cuenta de Wino y activar el paquete IA.", - "AiActions_NoPackTitle": "Se requiere paquete IA", - "AiActions_NoPackDescription": "Ya has iniciado sesión, pero el paquete IA no está activo. Adquiérelo para usar las herramientas de traducción, reescritura y resumen con IA de Wino.", - "AiActions_UsageSummary": "{0} de {1} créditos usados este mes.", "Composer_AiRewritePolite": "Hazlo más cortés", "Composer_AiRewritePoliteDescription": "Suaviza el tono manteniendo la misma intención.", "Composer_AiRewriteAngry": "Hazlo más enfadado", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mes", "WinoAccount_Management_AiPackPromoRequests": "1.000 créditos", "WinoAccount_Management_AiPackGetButton": "Obtener AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Herramientas impulsadas por IA para traducir, reescribir y resumir acciones en Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "IA, traducir, reescribir, resumir, productividad", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Cuentas ilimitadas", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Elimina el límite de cuentas y añade tantas cuentas de correo como necesites.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "cuentas, ilimitadas, premium, complemento", diff --git a/Wino.Core.Domain/Translations/fi_FI/resources.json b/Wino.Core.Domain/Translations/fi_FI/resources.json index 2bd9bfd8..5c05cb7b 100644 --- a/Wino.Core.Domain/Translations/fi_FI/resources.json +++ b/Wino.Core.Domain/Translations/fi_FI/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Piilota otsikkorivillä oleva profiilipainike, joka avaa Wino-tilin valikon.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Store-päivitysilmoitukset", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Näytä ilmoitukset ja alatunnisteen toiminnot, kun Microsoft Store -päivitys on saatavilla.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Piilota tekoälytoimintojen paneeli", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Piilota tekoälytoiminnot sähköpostin kirjoitus- ja lukutilassa.", - "SettingsAppPreferences_AiActions_Title": "Tekoälytoiminnot", - "SettingsAppPreferences_AiActions_Description": "Valitse tekoälyn oletuskielet ja mihin yhteenvetoja tallennetaan.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Oletuskäännöksen kieli", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Valitse tekoälykäännösten oletuskieli.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Tiivistämisen kieli", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Tiivistä tekoälyn avulla", "Composer_AiSummarizeDescription": "Tuo tämän sähköpostin keskeiset kohdat, toimenpiteet ja päätökset.", "Composer_AiTranslate": "Käännä tekoälyn avulla", - "Composer_AiActions": "Tekoälyn toimet", "Composer_AiRewrite": "Uudelleenkirjoita tekoälyn avulla", - "AiActions_CheckingStatus": "Tarkistetaan tekoälyyn pääsyä...", - "AiActions_SignedOutTitle": "Poista Wino AI Packin lukitus", - "AiActions_SignedOutDescription": "Käännä, kirjoita ja tiivistä sähköposteja tekoälyn avulla kirjautumalla Wino-tilillesi ja aktivoimalla AI Pack -lisäosan.", - "AiActions_NoPackTitle": "AI Pack vaaditaan", - "AiActions_NoPackDescription": "Olet kirjautuneena sisään, mutta AI Pack ei ole vielä käytössä. Osta se käyttääksesi Wino'n tekoälyn käännöksiä, uudelleenkirjoitusta ja tiivistämistyökaluja.", - "AiActions_UsageSummary": "Tässä kuussa käytettyjen krediittien määrä: {0} / {1}", "Composer_AiRewritePolite": "Tee siitä kohteliaampi", "Composer_AiRewritePoliteDescription": "Lievittää sanamuotoa samalla säilyttäen saman tarkoituksen.", "Composer_AiRewriteAngry": "Tee siitä vihaisen", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / kk", "WinoAccount_Management_AiPackPromoRequests": "1 000 krediittiä", "WinoAccount_Management_AiPackGetButton": "Hae AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-pohjaisia työkaluja kääntä-, uudelleenkirjoittamis- ja tiivistystoimintoja Wino Mailiin.", - "WinoAddOn_AI_PACK_Keywords": "AI, kääntäminen, uudelleenkirjoittaminen, tiivistäminen, tuottavuus", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Rajoittamattomat tilit", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Poista tilirajoitus ja lisää haluamasi määrän sähköpostitilejä.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "tilit, rajoittamattomat, premium, lisäosa", diff --git a/Wino.Core.Domain/Translations/fr_FR/resources.json b/Wino.Core.Domain/Translations/fr_FR/resources.json index d16bdbd1..31c1a0f7 100644 --- a/Wino.Core.Domain/Translations/fr_FR/resources.json +++ b/Wino.Core.Domain/Translations/fr_FR/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Masquer le bouton de profil dans la barre de titre qui ouvre le volet du compte Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notifications de mise à jour du Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Afficher les notifications et les actions de bas de page lorsqu'une mise à jour du Microsoft Store est disponible.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Masquer le panneau des actions IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Masquer les actions IA dans le rédacteur et le lecteur de mails.", - "SettingsAppPreferences_AiActions_Title": "Actions IA", - "SettingsAppPreferences_AiActions_Description": "Choisissez les langues IA par défaut et où les résumés doivent être enregistrés.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Langue de traduction par défaut", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Choisissez la langue cible par défaut utilisée par les actions de traduction IA.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Langue de résumé", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Résumer avec l'IA", "Composer_AiSummarizeDescription": "Extraire les points clés, les éléments d'action et les décisions de ce courriel.", "Composer_AiTranslate": "Traduire avec l'IA", - "Composer_AiActions": "Actions IA", "Composer_AiRewrite": "Réécrire avec l'IA", - "AiActions_CheckingStatus": "Vérification de l'accès à l'IA...", - "AiActions_SignedOutTitle": "Déverrouiller le pack IA Wino", - "AiActions_SignedOutDescription": "Traduire, réécrire et résumer les e-mails avec l'IA après vous être connecté à votre compte Wino et avoir activé l'extension AI Pack.", - "AiActions_NoPackTitle": "Pack IA requis", - "AiActions_NoPackDescription": "Vous êtes connecté, mais le pack IA n'est pas encore actif. Achetez-le pour utiliser les outils de traduction, réécriture et résumé de Wino.", - "AiActions_UsageSummary": "{0} sur {1} crédits utilisés ce mois-ci.", "Composer_AiRewritePolite": "Rendre plus poli", "Composer_AiRewritePoliteDescription": "Adoucit le ton tout en conservant le même sens.", "Composer_AiRewriteAngry": "Rendre plus agressif", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "4,99 $ / mois", "WinoAccount_Management_AiPackPromoRequests": "1 000 crédits", "WinoAccount_Management_AiPackGetButton": "Obtenir AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Outils IA pour traduire, réécrire et résumer les actions dans Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "IA, traduire, réécrire, résumer, productivité", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Comptes illimités", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Supprimer la limite de comptes et ajouter autant de comptes de messagerie que nécessaire.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "comptes, illimités, premium, module complémentaire", diff --git a/Wino.Core.Domain/Translations/gl_ES/resources.json b/Wino.Core.Domain/Translations/gl_ES/resources.json index 0948806e..86199cbb 100644 --- a/Wino.Core.Domain/Translations/gl_ES/resources.json +++ b/Wino.Core.Domain/Translations/gl_ES/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Ocultar o botón de perfil na barra de título que abre o panel da conta de Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notificacións de actualización da Microsoft Store.", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Mostrar notificacións e accións no rodapé cando haxa unha actualización da Microsoft Store disponível.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Agochar panel de accións de IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Agochar as accións de IA no redactor e no lector de correo.", - "SettingsAppPreferences_AiActions_Title": "Accións de IA", - "SettingsAppPreferences_AiActions_Description": "Elixa os idiomas de IA predeterminados e onde se deben gardar os resumos.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Idioma de tradución por defecto.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Selecciona o idioma de destino predeterminado utilizado polas accións de tradución da IA.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Idioma de resumo.", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Resumir con IA", "Composer_AiSummarizeDescription": "Extrae puntos clave, accións e decisións deste correo.", "Composer_AiTranslate": "Traducir con IA", - "Composer_AiActions": "Accións IA", "Composer_AiRewrite": "Reescribe con IA", - "AiActions_CheckingStatus": "Comprobando o acceso á IA...", - "AiActions_SignedOutTitle": "Desbloquear o paquete AI de Wino", - "AiActions_SignedOutDescription": "Traducir, reescribir e resumir correos con IA despois de iniciar sesión na túa Conta Wino e activar o complemento AI Pack.", - "AiActions_NoPackTitle": "Precísase AI Pack", - "AiActions_NoPackDescription": "Iniciaste sesión, pero o AI Pack non está activo aínda. Cómprao para usar as ferramentas de tradución, reescritura e resumo de IA de Wino.", - "AiActions_UsageSummary": "{0} de {1} créditos usados este mes.", "Composer_AiRewritePolite": "Faino máis educado", "Composer_AiRewritePoliteDescription": "Ablanda a redacción mantendo o mesmo propósito.", "Composer_AiRewriteAngry": "Faino enfadado", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mes", "WinoAccount_Management_AiPackPromoRequests": "1,000 créditos", "WinoAccount_Management_AiPackGetButton": "Obter Pacote IA", - "WinoAddOn_AI_PACK_Name": "Pacote IA de Wino", - "WinoAddOn_AI_PACK_Description": "Ferramentas alimentadas por IA para traducir, reescribir e resumir accións en Wino Mail", - "WinoAddOn_AI_PACK_Keywords": "IA, traducir, reescribir, resumir, produtividade", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Contas ilimitadas", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Quita o límite de contas e engade as contas de correo que precises", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "contas, ilimitadas, premium, complemento", diff --git a/Wino.Core.Domain/Translations/id_ID/resources.json b/Wino.Core.Domain/Translations/id_ID/resources.json index 5a19d3ab..83782ae0 100644 --- a/Wino.Core.Domain/Translations/id_ID/resources.json +++ b/Wino.Core.Domain/Translations/id_ID/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Sembunyikan tombol profil di bilah judul yang membuka flyout akun Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Pemberitahuan pembaruan toko", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Tampilkan pemberitahuan dan tindakan footer saat pembaruan Microsoft Store tersedia.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Sembunyikan panel tindakan AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Sembunyikan tindakan AI di penyusun email dan pembaca email.", - "SettingsAppPreferences_AiActions_Title": "Tindakan AI", - "SettingsAppPreferences_AiActions_Description": "Pilih bahasa AI bawaan dan tempat ringkasan disimpan.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Bahasa terjemahan bawaan", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Pilih bahasa target default yang digunakan oleh tindakan terjemahan AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Bahasa ringkasan", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Ringkas dengan AI", "Composer_AiSummarizeDescription": "Ekstrak poin-poin utama, item tindakan, dan keputusan dari email ini.", "Composer_AiTranslate": "Terjemahkan dengan AI", - "Composer_AiActions": "Tindakan AI", "Composer_AiRewrite": "Tulis ulang dengan AI", - "AiActions_CheckingStatus": "Memeriksa akses AI...", - "AiActions_SignedOutTitle": "Buka Paket AI Wino", - "AiActions_SignedOutDescription": "Terjemahkan, tulis ulang, dan rangkum email menggunakan AI setelah masuk ke Akun Wino Anda dan mengaktifkan add-on Paket AI.", - "AiActions_NoPackTitle": "Diperlukan Paket AI", - "AiActions_NoPackDescription": "Anda telah masuk, tetapi Paket AI belum aktif. Beli paketnya untuk menggunakan alat terjemahan AI, penulisan ulang, dan rangkuman AI Wino.", - "AiActions_UsageSummary": "{0} dari {1} kredit telah digunakan bulan ini.", "Composer_AiRewritePolite": "Jadikan lebih sopan", "Composer_AiRewritePoliteDescription": "Membuat kata-kata lebih halus tanpa mengubah maksudnya.", "Composer_AiRewriteAngry": "Buat marah", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / bln", "WinoAccount_Management_AiPackPromoRequests": "1.000 kredit", "WinoAccount_Management_AiPackGetButton": "Dapatkan Paket AI", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Alat bertenaga AI untuk menerjemahkan, menulis ulang, dan merangkum tindakan di Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, terjemahan, menulis ulang, merangkum, produktivitas", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Akun Tak Terbatas", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Hapus batas akun dan tambahkan sebanyak mungkin akun email yang Anda perlukan.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "akun, tak terbatas, premium, add-on", diff --git a/Wino.Core.Domain/Translations/it_IT/resources.json b/Wino.Core.Domain/Translations/it_IT/resources.json index c1761c6b..7dafa12a 100644 --- a/Wino.Core.Domain/Translations/it_IT/resources.json +++ b/Wino.Core.Domain/Translations/it_IT/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Nascondi il pulsante profilo nella barra del titolo che apre il menu dell'account Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notifiche di aggiornamento del Microsoft Store.", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Mostra notifiche e azioni a piè di pagina quando è disponibile un aggiornamento dal Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Nascondi pannello azioni IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Nascondi le azioni IA nel redattore di posta e nel lettore.", - "SettingsAppPreferences_AiActions_Title": "Azioni AI", - "SettingsAppPreferences_AiActions_Description": "Scegli le lingue predefinite per l'IA e dove dovrebbero essere salvati i riassunti.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Lingua di traduzione predefinita", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Seleziona la lingua di destinazione predefinita utilizzata dalle azioni di traduzione AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Lingua di riepilogo", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Riepiloga con l'IA", "Composer_AiSummarizeDescription": "Estrai i punti chiave, le azioni e le decisioni da questa email.", "Composer_AiTranslate": "Traduci con l'IA", - "Composer_AiActions": "Azioni IA", "Composer_AiRewrite": "Riformula con l'IA", - "AiActions_CheckingStatus": "Verifica l'accesso all'IA...", - "AiActions_SignedOutTitle": "Sblocca Wino AI Pack", - "AiActions_SignedOutDescription": "Traduci, riscrivi e riassumi le email con l'IA dopo aver effettuato l'accesso al tuo account Wino e attivato l'add-on AI Pack.", - "AiActions_NoPackTitle": "AI Pack richiesto", - "AiActions_NoPackDescription": "Hai effettuato l'accesso, ma l'AI Pack non è attivo ancora. Acquistalo per utilizzare gli strumenti di traduzione, riscrittura e riassunto con IA di Wino.", - "AiActions_UsageSummary": "{0} di {1} crediti usati questo mese.", "Composer_AiRewritePolite": "Rendilo più cortese", "Composer_AiRewritePoliteDescription": "Rende la formulazione meno rigida mantenendo lo stesso intento.", "Composer_AiRewriteAngry": "Rendilo arrabbiato", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mese", "WinoAccount_Management_AiPackPromoRequests": "1.000 crediti", "WinoAccount_Management_AiPackGetButton": "Ottieni AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Strumenti basati sull'IA per tradurre, riscrivere e riassumere azioni in Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "IA, traduci, riscrivi, riassumi, produttività", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Account illimitati", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Rimuovi il limite di account e aggiungi quanti account di posta ti servono.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "account, illimitato, premium, componente aggiuntivo", diff --git a/Wino.Core.Domain/Translations/ja_JP/resources.json b/Wino.Core.Domain/Translations/ja_JP/resources.json index cffab179..72b7f0fe 100644 --- a/Wino.Core.Domain/Translations/ja_JP/resources.json +++ b/Wino.Core.Domain/Translations/ja_JP/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Wino アカウントのドロップダウンを開くタイトルバーのプロフィールボタンを非表示にします。", "SettingsAppPreferences_StoreUpdateNotifications_Title": "ストアの更新通知", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Microsoft Store の更新が利用可能なときに通知とフッターのアクションを表示します。", - "SettingsAppPreferences_HideAiActionsPanel_Title": "AI アクションパネルを非表示", - "SettingsAppPreferences_HideAiActionsPanel_Description": "メール作成時およびメール閲覧時の AI アクションを非表示にします。", - "SettingsAppPreferences_AiActions_Title": "AI アクション", - "SettingsAppPreferences_AiActions_Description": "デフォルトの AI 言語と要約を保存する場所を選択します。", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "デフォルトの翻訳言語", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "AI 翻訳アクションで使用されるデフォルトのターゲット言語を選択します。", "SettingsAppPreferences_AiSummarizeLanguage_Title": "要約言語", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "AI で要約", "Composer_AiSummarizeDescription": "このメールから要点、アクション項目、決定事項を抽出します。", "Composer_AiTranslate": "AI で翻訳", - "Composer_AiActions": "AI アクション", "Composer_AiRewrite": "AI で言い換え", - "AiActions_CheckingStatus": "AI アクセスを確認しています...", - "AiActions_SignedOutTitle": "Wino AI パックのロックを解除", - "AiActions_SignedOutDescription": "Wino ア카ウントにサインインし、AI パックのアドオンを有効にした後、AI を使用してメールを翻訳・リライト・要約します。", - "AiActions_NoPackTitle": "AI パックが必要です", - "AiActions_NoPackDescription": "サインインしていますが、AI パックはまだ有効になっていません。Wino の AI 翻訳、リライト、要約機能を使用するには購入してください。", - "AiActions_UsageSummary": "今月は {0} / {1} クレジットを使用しました。", "Composer_AiRewritePolite": "丁寧に書き直す", "Composer_AiRewritePoliteDescription": "意図を変えず、表現を柔らかくします。", "Composer_AiRewriteAngry": "怒りっぽく書く", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99/月", "WinoAccount_Management_AiPackPromoRequests": "1,000 クレジット", "WinoAccount_Management_AiPackGetButton": "AI Packを入手", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Wino Mail で翻訳、書き換え、要約を行うAI搭載ツールです。", - "WinoAddOn_AI_PACK_Keywords": "AI、翻訳、書き換え、要約、生産性", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "無制限アカウント", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "アカウントの上限を解除し、必要なだけメールアカウントを追加できます。", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "アカウント、無制限、プレミアム、アドオン", diff --git a/Wino.Core.Domain/Translations/ko_KR/resources.json b/Wino.Core.Domain/Translations/ko_KR/resources.json index e583caf3..1205be5d 100644 --- a/Wino.Core.Domain/Translations/ko_KR/resources.json +++ b/Wino.Core.Domain/Translations/ko_KR/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Wino 계정 팝업을 여는 제목 표시줄의 프로필 버튼을 숨깁니다.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "스토어 업데이트 알림", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Microsoft Store 업데이트가 이용 가능할 때 알림 및 바닥글 작업을 표시합니다.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "AI 동작 패널 숨기기", - "SettingsAppPreferences_HideAiActionsPanel_Description": "메일 작성기와 읽기에서 AI 동작을 숨깁니다.", - "SettingsAppPreferences_AiActions_Title": "AI 동작", - "SettingsAppPreferences_AiActions_Description": "AI 번역 작업에서 사용할 기본 언어와 요약 저장 위치를 선택합니다.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "기본 번역 언어", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "AI 번역 작업에서 사용할 기본 대상 언어를 선택하세요.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "요약 언어", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "AI로 요약", "Composer_AiSummarizeDescription": "이 이메일에서 핵심 포인트, 실행 항목 및 의사결정을 추출합니다.", "Composer_AiTranslate": "AI로 번역", - "Composer_AiActions": "AI 작업", "Composer_AiRewrite": "AI로 재작성", - "AiActions_CheckingStatus": "AI 접근 권한 확인 중...", - "AiActions_SignedOutTitle": "Wino AI 팩 잠금 해제", - "AiActions_SignedOutDescription": "Wino 계정에 로그인하고 AI Pack 애드온을 활성화한 후 AI로 이메일을 번역, 재작성 및 요약합니다.", - "AiActions_NoPackTitle": "AI Pack 필요", - "AiActions_NoPackDescription": "로그인되어 있지만 AI Pack이 아직 활성화되어 있지 않습니다. Wino의 AI 번역, 재작성 및 요약 도구를 사용하려면 구매하십시오.", - "AiActions_UsageSummary": "{0} 중 {1} 크레딧이 이번 달에 사용되었습니다.", "Composer_AiRewritePolite": "정중하게 다듬기", "Composer_AiRewritePoliteDescription": "의도는 유지하면서 표현을 부드럽게 다듬습니다.", "Composer_AiRewriteAngry": "화나게 다듬기", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 /월", "WinoAccount_Management_AiPackPromoRequests": "1,000 크레딧", "WinoAccount_Management_AiPackGetButton": "AI Pack 받기", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI 기반 도구로 Wino Mail에서 번역, 재작성 및 요약 작업을 수행합니다.", - "WinoAddOn_AI_PACK_Keywords": "AI, 번역, 재작성, 요약, 생산성", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "무제한 계정", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "계정 한도를 제거하고 필요한 만큼의 메일 계정을 추가합니다.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "계정, 무제한, 프리미엄, 애드온", diff --git a/Wino.Core.Domain/Translations/lt_LT/resources.json b/Wino.Core.Domain/Translations/lt_LT/resources.json index 939cf8c6..9cae50da 100644 --- a/Wino.Core.Domain/Translations/lt_LT/resources.json +++ b/Wino.Core.Domain/Translations/lt_LT/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Slėpti pavadinimo juostos profilio mygtuką, kuris atveria Wino paskyros išskleidžiamąjį langą.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Parduotuvės atnaujinimų pranešimai", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Rodyti pranešimus ir veiksmus apačioje, kai Microsoft Store bus prieinamas atnaujinimas.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Slėpti AI veiksmų skydelį", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Slėpti AI veiksmus el. pašto rengyklėje ir skaitytuve.", - "SettingsAppPreferences_AiActions_Title": "Dirbtinio intelekto veiksmai", - "SettingsAppPreferences_AiActions_Description": "Pasirinkite numatytas AI kalbas ir kur turėtų būti saugomos santraukos.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Numatomoji vertimo kalba", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Pasirinkite numatytąją tikslinę kalbą, kuri bus naudojama AI vertimo veiksmuose.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Santraukos kalba", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Apibendrinti su AI", "Composer_AiSummarizeDescription": "Ištraukite pagrindines mintis, veiksmų punktus ir sprendimus iš šio el. laiško.", "Composer_AiTranslate": "Išversti su AI", - "Composer_AiActions": "AI veiksmai", "Composer_AiRewrite": "Perrašyti su AI", - "AiActions_CheckingStatus": "Tikrinama prieiga prie AI...", - "AiActions_SignedOutTitle": "Atrakinkite Wino AI paketą", - "AiActions_SignedOutDescription": "Išverskite, perrašykite ir apibendrinkite el. laiškus naudodami AI prisijungę prie savo Wino paskyros ir aktyvavę AI Pack papildinį.", - "AiActions_NoPackTitle": "Reikia AI paketo", - "AiActions_NoPackDescription": "Jūs esate prisijungęs, tačiau AI paketas dar neveikia. Įsigykite jį, kad naudotumėte Wino AI vertimo, perrašymo ir santraukos įrankius.", - "AiActions_UsageSummary": "{0} iš {1} kreditų šį mėnesį panaudota.", "Composer_AiRewritePolite": "Padarykite mandagų toną", "Composer_AiRewritePoliteDescription": "Švelnina formuluotę išlaikant tą patį tikslą.", "Composer_AiRewriteAngry": "Padarykite piktą toną", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mėn", "WinoAccount_Management_AiPackPromoRequests": "1 000 kreditų", "WinoAccount_Management_AiPackGetButton": "Gauti AI paketą", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI pagrindu veikiantys įrankiai vertimams, perrašymams ir santraukoms Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, vertimas, perrašymas, santraukos, produktyvumas", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Neribotos paskyros", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Šalina paskyrų apribojimą ir leidžia pridėti tiek el. pašto paskyrų, kiek reikia.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "paskyros, neribotos, premium, priedas", diff --git a/Wino.Core.Domain/Translations/nl_NL/resources.json b/Wino.Core.Domain/Translations/nl_NL/resources.json index c45f1be0..bc69dba5 100644 --- a/Wino.Core.Domain/Translations/nl_NL/resources.json +++ b/Wino.Core.Domain/Translations/nl_NL/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Verberg de profielknop in de titelbalk die het Wino-account-uitklapmenu opent.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Store-updatemeldingen", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Toon meldingen en footer-acties wanneer er een Microsoft Store-update beschikbaar is.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "AI-actiespaneel verbergen", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Verberg AI-acties in de e-mailopsteller en -lezer.", - "SettingsAppPreferences_AiActions_Title": "AI-acties", - "SettingsAppPreferences_AiActions_Description": "Kies de standaard AI-talen en waar samenvattingen moeten worden opgeslagen.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Standaard doeltaal", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Kies de standaard doeltaal die door AI-vertalingacties wordt gebruikt.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Samenvatteltaal", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Samenvatten met AI", "Composer_AiSummarizeDescription": "Haal belangrijke punten, actiepunten en beslissingen uit deze e-mail.", "Composer_AiTranslate": "Vertaal met AI", - "Composer_AiActions": "AI-acties", "Composer_AiRewrite": "Herschrijven met AI", - "AiActions_CheckingStatus": "AI-toegang controleren...", - "AiActions_SignedOutTitle": "Wino AI-pack ontgrendelen", - "AiActions_SignedOutDescription": "Vertaal, herschrijf en vat e-mails samen met AI nadat u bent ingelogd op uw Wino-account en de AI Pack-add-on hebt geactiveerd.", - "AiActions_NoPackTitle": "AI Pack vereist", - "AiActions_NoPackDescription": "U bent ingelogd, maar AI Pack is nog niet actief. Koop het om de AI-vertaling, herschrijf- en samenvattingshulpmiddelen van Wino te gebruiken.", - "AiActions_UsageSummary": "{0} van {1} credits deze maand gebruikt.", "Composer_AiRewritePolite": "Maak het beleefder", "Composer_AiRewritePoliteDescription": "Verzacht de formulering terwijl de bedoeling hetzelfde blijft.", "Composer_AiRewriteAngry": "Maak het boos", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mnd", "WinoAccount_Management_AiPackPromoRequests": "1.000 credits", "WinoAccount_Management_AiPackGetButton": "AI Pack verkrijgen", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-gedreven tools voor vertalen, herschrijven en samenvatten acties in Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, vertalen, herschrijven, samenvatten, productiviteit", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Onbeperkte accounts", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Verwijder de accountlimiet en voeg zoveel e-mailaccounts toe als je nodig hebt.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "accounts, onbeperkt, premium, add-on", diff --git a/Wino.Core.Domain/Translations/pl_PL/resources.json b/Wino.Core.Domain/Translations/pl_PL/resources.json index 6d0981e6..977d9cc4 100644 --- a/Wino.Core.Domain/Translations/pl_PL/resources.json +++ b/Wino.Core.Domain/Translations/pl_PL/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Ukryj przycisk profilu na pasku tytułu, który otwiera wysuwane menu konta Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Powiadomienia o aktualizacjach sklepu", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Pokaż powiadomienia i akcje w stopce, gdy dostępna jest aktualizacja Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Ukryj panel akcji AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Ukryj akcje AI w komponatorze i czytniku wiadomości.", - "SettingsAppPreferences_AiActions_Title": "Działania AI", - "SettingsAppPreferences_AiActions_Description": "Wybierz domyślne języki AI i miejsce zapisywania streszczeń.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Domyślny język tłumaczenia", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Wybierz domyślny język docelowy używany przez akcje tłumaczenia AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Język podsumowania", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Streszczaj AI", "Composer_AiSummarizeDescription": "Wyodrębnia kluczowe punkty, zadania do wykonania i decyzje z tej wiadomości.", "Composer_AiTranslate": "Tłumacz za pomocą AI", - "Composer_AiActions": "Działania AI", "Composer_AiRewrite": "Przepisz za pomocą AI", - "AiActions_CheckingStatus": "Sprawdzanie dostępu do AI...", - "AiActions_SignedOutTitle": "Odblokuj pakiet Wino AI", - "AiActions_SignedOutDescription": "Tłumaczenie, przepisywanie i streszczanie wiadomości za pomocą AI po zalogowaniu do konta Wino i aktywacji dodatku AI Pack.", - "AiActions_NoPackTitle": "Wymagany pakiet AI", - "AiActions_NoPackDescription": "Jesteś zalogowany, ale pakiet AI nie jest jeszcze aktywny. Wykup go, aby korzystać z tłumaczenia, przepisywania i streszczania AI w Wino.", - "AiActions_UsageSummary": "{0} z {1} kredytów wykorzystano w tym miesiącu.", "Composer_AiRewritePolite": "Uczyń to grzeczniejszym", "Composer_AiRewritePoliteDescription": "Złagodza ton, zachowując ten sam sens.", "Composer_AiRewriteAngry": "Uczyń to agresywnym", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mies.", "WinoAccount_Management_AiPackPromoRequests": "1 000 kredytów", "WinoAccount_Management_AiPackGetButton": "Pobierz Pakiet AI", - "WinoAddOn_AI_PACK_Name": "Pakiet AI Wino", - "WinoAddOn_AI_PACK_Description": "Narzędzia z AI do tłumaczenia, przepisywania i streszczania wiadomości w Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, tłumaczenie, przepisywanie, streszczanie, produktywność", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Nielimitowane konta", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Usuń ograniczenie kont i dodawaj dowolną liczbę kont pocztowych.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "konta, nieograniczony, premium, dodatek", diff --git a/Wino.Core.Domain/Translations/pt_BR/resources.json b/Wino.Core.Domain/Translations/pt_BR/resources.json index 0b90f66a..e1069d44 100644 --- a/Wino.Core.Domain/Translations/pt_BR/resources.json +++ b/Wino.Core.Domain/Translations/pt_BR/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Ocultar o botão de perfil na barra de título que abre o menu suspenso da conta do Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notificações de atualização da Microsoft Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Exibir notificações e ações no rodapé quando houver uma atualização disponível da Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Ocultar painel de ações de IA", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Ocultar ações de IA no redator de e-mails e na leitura.", - "SettingsAppPreferences_AiActions_Title": "Ações de IA", - "SettingsAppPreferences_AiActions_Description": "Escolha os idiomas padrão da IA e onde os resumos devem ser salvos.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Idioma de tradução padrão", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Selecione o idioma de destino padrão usado pelas ações de tradução por IA.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Idioma de resumo", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Resumir com IA", "Composer_AiSummarizeDescription": "Extrair pontos-chave, itens de ação e decisões deste e-mail.", "Composer_AiTranslate": "Traduzir com IA", - "Composer_AiActions": "Ações de IA", "Composer_AiRewrite": "Reescrever com IA", - "AiActions_CheckingStatus": "Verificando o acesso à IA...", - "AiActions_SignedOutTitle": "Desbloquear o Pacote de IA do Wino", - "AiActions_SignedOutDescription": "Traduza, reescreva e resuma e-mails com IA após fazer login em sua Conta Wino e ativar o complemento Pacote de IA.", - "AiActions_NoPackTitle": "Pacote de IA necessário", - "AiActions_NoPackDescription": "Você está conectado, mas o Pacote de IA ainda não está ativo. Compre-o para usar as ferramentas de tradução, reescrita e resumos com IA do Wino.", - "AiActions_UsageSummary": "{0} de {1} créditos usados neste mês.", "Composer_AiRewritePolite": "Tornar mais polido", "Composer_AiRewritePoliteDescription": "Suaviza a redação mantendo a mesma intenção.", "Composer_AiRewriteAngry": "Tornar mais agressivo", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4,99 / mês", "WinoAccount_Management_AiPackPromoRequests": "1.000 créditos", "WinoAccount_Management_AiPackGetButton": "Obter AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Ferramentas alimentadas por IA para traduzir, reescrever e resumir ações no Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "IA, traduzir, reescrever, resumir, produtividade", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Contas ilimitadas", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Remover o limite de contas e adicionar quantas contas de e-mail você precisar.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "contas, ilimitadas, premium, complemento", diff --git a/Wino.Core.Domain/Translations/ro_RO/resources.json b/Wino.Core.Domain/Translations/ro_RO/resources.json index e3a99a5a..3c1af53e 100644 --- a/Wino.Core.Domain/Translations/ro_RO/resources.json +++ b/Wino.Core.Domain/Translations/ro_RO/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Ascundeți butonul de profil din bara de titlu care deschide meniul contului Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Notificări despre actualizările din Microsoft Store", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Afișează notificări și acțiuni în subsol atunci când este disponibilă o actualizare din Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Ascunde panoul de acțiuni AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Ascunde acțiunile AI în editorul de e-mail și în cititor.", - "SettingsAppPreferences_AiActions_Title": "Acțiuni AI", - "SettingsAppPreferences_AiActions_Description": "Alegeți limbile AI implicite și locul în care rezumatele ar trebui să fie salvate.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Limba de traducere implicită", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Alegeți limba țintă implicită utilizată de acțiunile de traducere AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Limba rezumării", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Rezumă cu AI", "Composer_AiSummarizeDescription": "Extrage ideile principale, pașii de acțiune și deciziile din acest e-mail.", "Composer_AiTranslate": "Translatează cu AI", - "Composer_AiActions": "Acțiuni AI", "Composer_AiRewrite": "Rescrie cu AI", - "AiActions_CheckingStatus": "Se verifică accesul AI...", - "AiActions_SignedOutTitle": "Deblochează pachetul Wino AI", - "AiActions_SignedOutDescription": "Translatează, rescrie și rezumă e-mailuri cu AI după ce te autentifici în contul tău Wino și activezi pachetul AI.", - "AiActions_NoPackTitle": "Pachetul AI este necesar", - "AiActions_NoPackDescription": "Ești conectat, dar pachetul AI nu este încă activ. Achiziționează-l pentru a folosi instrumentele AI de traducere, rescriere și rezumare ale Wino.", - "AiActions_UsageSummary": "{0} din {1} credite utilizate în această lună.", "Composer_AiRewritePolite": "Fă-l politicos", "Composer_AiRewritePoliteDescription": "Îmblânzește formularea păstrând același scop.", "Composer_AiRewriteAngry": "Fă-l furios", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / lună", "WinoAccount_Management_AiPackPromoRequests": "1.000 credite", "WinoAccount_Management_AiPackGetButton": "Obține AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Unelte alimentate de AI pentru traducere, rescriere și rezumare acțiuni în Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, traducere, rescrie, rezumă, productivitate", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Conturi nelimitate", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Elimină limita de conturi și adaugă cât de multe conturi de e-mail ai nevoie.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "conturi, nelimitate, premium, extensie", diff --git a/Wino.Core.Domain/Translations/ru_RU/resources.json b/Wino.Core.Domain/Translations/ru_RU/resources.json index de1d68a4..137f8a9e 100644 --- a/Wino.Core.Domain/Translations/ru_RU/resources.json +++ b/Wino.Core.Domain/Translations/ru_RU/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Скрыть кнопку профиля в панели заголовка, которая открывает выпадающее меню учетной записи Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Уведомления об обновлениях магазина", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Показывать уведомления и действия в нижнем колонтитуле, когда доступно обновление Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Скрыть панель действий ИИ", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Скрыть функции ИИ в окне составления писем и в просмотре писем.", - "SettingsAppPreferences_AiActions_Title": "Действия ИИ", - "SettingsAppPreferences_AiActions_Description": "Выберите языки ИИ по умолчанию и место сохранения сводок.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Язык перевода по умолчанию", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Выберите языки перевода по умолчанию, которые будут использоваться в действиях перевода ИИ.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Язык суммирования", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Сформировать резюме с помощью ИИ", "Composer_AiSummarizeDescription": "Извлечь ключевые моменты, задачи и принятые решения из этого письма.", "Composer_AiTranslate": "Перевести с помощью ИИ", - "Composer_AiActions": "Действия ИИ", "Composer_AiRewrite": "Переписать с помощью ИИ", - "AiActions_CheckingStatus": "Проверяем доступ к ИИ...", - "AiActions_SignedOutTitle": "Разблокировать пакет Wino AI", - "AiActions_SignedOutDescription": "Перевод, переработка и резюмирование писем с помощью искусственного интеллекта после входа в учетную запись Wino и активации дополнения AI Pack.", - "AiActions_NoPackTitle": "Требуется пакет AI", - "AiActions_NoPackDescription": "Вы вошли в систему, но пакет AI не активен. Приобретите его, чтобы использовать инструменты перевода, переработки и резюмирования Wino с помощью ИИ.", - "AiActions_UsageSummary": "{0} из {1} кредитов потрачено в этом месяце.", "Composer_AiRewritePolite": "Сделать вежливым", "Composer_AiRewritePoliteDescription": "Смягчает формулировку, сохраняя тот же смысл.", "Composer_AiRewriteAngry": "Сделать агрессивным", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / мес", "WinoAccount_Management_AiPackPromoRequests": "1 000 кредитов", "WinoAccount_Management_AiPackGetButton": "Получить AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "AI-powered tools for translate, rewrite, and summarize actions in Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, translate, rewrite, summarize, productivity", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Unlimited Accounts", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Remove the account limit and add as many mail accounts as you need.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "accounts, unlimited, premium, add-on", diff --git a/Wino.Core.Domain/Translations/sk_SK/resources.json b/Wino.Core.Domain/Translations/sk_SK/resources.json index 184559b1..d75b25f3 100644 --- a/Wino.Core.Domain/Translations/sk_SK/resources.json +++ b/Wino.Core.Domain/Translations/sk_SK/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Skryť tlačidlo profilu v titulnom riadku, ktoré otvára vysúvací panel účtu Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Oznámenia o aktualizáciách obchodu", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Zobraziť upozornenia a akcie na päte stránky, keď je k dispozícii aktualizácia z obchodu Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Skryť panel akcií AI", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Skryť akcie AI v tvorbe a čítaní e-mailov.", - "SettingsAppPreferences_AiActions_Title": "AI akcie", - "SettingsAppPreferences_AiActions_Description": "Vyberte predvolené jazyky AI a miesto, kam sa majú ukladať súhrny.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Predvolený jazyk pre preklad", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Vyberte predvolený cieľový jazyk používaný akciami prekladu AI.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Jazyk zhrnutia", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Zhrnúť pomocou AI", "Composer_AiSummarizeDescription": "Získajte kľúčové body, akčné úlohy a rozhodnutia z tohto e-mailu.", "Composer_AiTranslate": "Preložiť pomocou AI", - "Composer_AiActions": "AI akcie", "Composer_AiRewrite": "Prepísať pomocou AI", - "AiActions_CheckingStatus": "Kontrolujem prístup k AI...", - "AiActions_SignedOutTitle": "Odomknúť Wino AI balík", - "AiActions_SignedOutDescription": "Prekladať, prepisovať a zhrňovať e-maily pomocou AI po prihlásení do svojho účtu Wino a aktivovaní doplnku AI Pack.", - "AiActions_NoPackTitle": "AI balík vyžadovaný", - "AiActions_NoPackDescription": "Ste prihlásený, ale AI balík ešte nie je aktívny. Kúpte si ho, aby ste mohli používať nástroje Wino AI pre preklad, prepísanie a zhrnutie e-mailov.", - "AiActions_UsageSummary": "{0} z {1} kreditov použitých tento mesiac.", "Composer_AiRewritePolite": "Urob to zdvorilé", "Composer_AiRewritePoliteDescription": "Zjemní formuláciu pri zachovaní rovnakého zámeru.", "Composer_AiRewriteAngry": "Urob to agresívne", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mesiac", "WinoAccount_Management_AiPackPromoRequests": "1 000 kreditov", "WinoAccount_Management_AiPackGetButton": "Získať AI balík", - "WinoAddOn_AI_PACK_Name": "Wino AI Balík", - "WinoAddOn_AI_PACK_Description": "Nástroje poháňané AI na preklad, prepisovanie a zhrnutie akcií v Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, preklad, prepisovanie, zhrnutie, produktivita", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Neobmedzené účty", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Odstráňte obmedzenie účtov a pridajte toľko e-mailových účtov, koľko potrebujete.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "účty, neobmedzené, prémiové, doplnok", diff --git a/Wino.Core.Domain/Translations/tr_TR/resources.json b/Wino.Core.Domain/Translations/tr_TR/resources.json index 993de78e..cd2acbe1 100644 --- a/Wino.Core.Domain/Translations/tr_TR/resources.json +++ b/Wino.Core.Domain/Translations/tr_TR/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Wino hesap açılır menüsünü açan başlık çubuğu profil düğmesini gizleyin.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Mağaza güncelleme bildirimleri", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Bir Microsoft Store güncellemesi mevcut olduğunda bildirimleri ve altbilgi işlemlerini gösterin.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Yapay Zeka eylemleri panelini gizle", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Posta yazımında ve okumada Yapay Zeka eylemlerini gizle.", - "SettingsAppPreferences_AiActions_Title": "Yapay Zeka işlemleri", - "SettingsAppPreferences_AiActions_Description": "Yapay zeka işlemleri için varsayılan dilleri ve özetlerin nerede kaydedileceğini seçin.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Varsayılan çeviri dili", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Yapay zeka çeviri işlemlerinde kullanılacak varsayılan hedef dili seçin.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Özetleme dili", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Yapay zeka ile özetle", "Composer_AiSummarizeDescription": "Bu e-postadan ana noktaları, eylem adımlarını ve kararları çıkarın.", "Composer_AiTranslate": "Yapay zeka ile çevir", - "Composer_AiActions": "Yapay Zeka Eylemleri", "Composer_AiRewrite": "Yapay zeka ile yeniden yaz", - "AiActions_CheckingStatus": "Yapay zeka erişimi kontrol ediliyor...", - "AiActions_SignedOutTitle": "Wino AI Paketi Kilidi Aç", - "AiActions_SignedOutDescription": "Wino Hesabınıza giriş yapıp AI Paket eklentisini etkinleştirdikten sonra e-postaları AI ile çevirin, yeniden yazın ve özetleyin.", - "AiActions_NoPackTitle": "AI Paketi gerekli", - "AiActions_NoPackDescription": "Giriş yaptınız, ancak AI Paketi henüz etkin değil. Wino'nun AI çeviri, yeniden yazma ve özetleme araçlarını kullanmak için satın alın.", - "AiActions_UsageSummary": "Bu ay kullanılan kredi: {0} / {1} kredi.", "Composer_AiRewritePolite": "Daha nazik hale getir", "Composer_AiRewritePoliteDescription": "Aynı amacı koruyarak ifadeyi yumuşatır.", "Composer_AiRewriteAngry": "Kızgın hale getir", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / mo", "WinoAccount_Management_AiPackPromoRequests": "1.000 kredi", "WinoAccount_Management_AiPackGetButton": "AI Paketi Al", - "WinoAddOn_AI_PACK_Name": "Wino AI Paketi", - "WinoAddOn_AI_PACK_Description": "Wino Mail için çevirmek, yeniden yazmak ve özetlemek işlemlerinde AI destekli araçlar.", - "WinoAddOn_AI_PACK_Keywords": "AI, çeviri, yeniden yazma, özetleme, verimlilik", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Sınırsız Hesaplar", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "İhtiyacınız olan kadar e-posta hesabı ekleyin ve hesap sınırını kaldırın.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "hesaplar, sınırsız, premium, eklenti", diff --git a/Wino.Core.Domain/Translations/uk_UA/resources.json b/Wino.Core.Domain/Translations/uk_UA/resources.json index f4b8f5fc..40128be3 100644 --- a/Wino.Core.Domain/Translations/uk_UA/resources.json +++ b/Wino.Core.Domain/Translations/uk_UA/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "Приховати кнопку профіля на панелі заголовка, яка відкриває випадаюче меню облікового запису Wino.", "SettingsAppPreferences_StoreUpdateNotifications_Title": "Сповіщення про оновлення магазину", "SettingsAppPreferences_StoreUpdateNotifications_Description": "Показувати сповіщення та дії внизу, коли доступне оновлення Microsoft Store.", - "SettingsAppPreferences_HideAiActionsPanel_Title": "Приховати панель дій ШІ", - "SettingsAppPreferences_HideAiActionsPanel_Description": "Приховати дії ШІ у формуванні та читанні листів.", - "SettingsAppPreferences_AiActions_Title": "Дії ШІ", - "SettingsAppPreferences_AiActions_Description": "Виберіть мови ШІ за замовчуванням та де зберігати підсумки.", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "Мова перекладу за замовчуванням", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "Виберіть мову перекладу за замовчуванням, яку використають дії перекладу ШІ.", "SettingsAppPreferences_AiSummarizeLanguage_Title": "Мова підсумовування", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "Підсумуйте за допомогою ШІ", "Composer_AiSummarizeDescription": "Виділити основні пункти, завдання та рішення з цього електронного листа.", "Composer_AiTranslate": "Перекласти за допомогою ШІ", - "Composer_AiActions": "Дії ШІ", "Composer_AiRewrite": "Переписати за допомогою ШІ", - "AiActions_CheckingStatus": "Перевіряю доступ до ШІ...", - "AiActions_SignedOutTitle": "Розблокувати пакет Wino AI", - "AiActions_SignedOutDescription": "Перекладайте, переписуйте та підсумовуйте електронні листи за допомогою ШІ після входу в обліковий запис Wino та активації надбудови AI Pack.", - "AiActions_NoPackTitle": "Потрібен пакет AI", - "AiActions_NoPackDescription": "Ви увійшли, але пакет AI ще не активний. Придбайте його, щоб користуватися інструментами перекладу, переписування та підсумовування від Wino за допомогою ШІ.", - "AiActions_UsageSummary": "{0} з {1} кредитів використано цього місяця.", "Composer_AiRewritePolite": "Зробити ввічливішим", "Composer_AiRewritePoliteDescription": "Пом'якшує формулювання, зберігаючи той же зміст.", "Composer_AiRewriteAngry": "Зробити більш різким", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / міс.", "WinoAccount_Management_AiPackPromoRequests": "1 000 кредитів", "WinoAccount_Management_AiPackGetButton": "Отримати AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "Інструменти на базі штучного інтелекту для перекладу, переформулювання та стислих підсумків дій у Wino Mail.", - "WinoAddOn_AI_PACK_Keywords": "AI, переклад, переформулювати, підсумовувати, продуктивність", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "Необмежені облікові записи", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "Видалити обмеження на облікові записи та додати стільки поштових облікових записів, скільки потрібно.", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "облікові записи, необмежені, преміум, надбудова", diff --git a/Wino.Core.Domain/Translations/zh_CN/resources.json b/Wino.Core.Domain/Translations/zh_CN/resources.json index 914e95ac..ad953705 100644 --- a/Wino.Core.Domain/Translations/zh_CN/resources.json +++ b/Wino.Core.Domain/Translations/zh_CN/resources.json @@ -783,10 +783,6 @@ "SettingsAppPreferences_HideWinoAccountButton_Description": "隐藏在标题栏中用于打开 Wino 账户弹出菜单的个人资料按钮。", "SettingsAppPreferences_StoreUpdateNotifications_Title": "商店更新通知", "SettingsAppPreferences_StoreUpdateNotifications_Description": "在 Microsoft Store 有更新时显示通知和页脚操作。", - "SettingsAppPreferences_HideAiActionsPanel_Title": "隐藏 AI 操作面板", - "SettingsAppPreferences_HideAiActionsPanel_Description": "在邮件撰写和阅读器中隐藏 AI 操作。", - "SettingsAppPreferences_AiActions_Title": "AI 操作", - "SettingsAppPreferences_AiActions_Description": "选择默认 AI 语言及摘要应保存的位置。", "SettingsAppPreferences_AiDefaultTranslationLanguage_Title": "默认翻译语言", "SettingsAppPreferences_AiDefaultTranslationLanguage_Description": "选择 AI 翻译操作使用的默认目标语言。", "SettingsAppPreferences_AiSummarizeLanguage_Title": "摘要语言", @@ -1208,14 +1204,7 @@ "Composer_AiSummarize": "使用 AI 总结", "Composer_AiSummarizeDescription": "提取此电子邮件中的要点、行动项和决议。", "Composer_AiTranslate": "使用 AI 翻译", - "Composer_AiActions": "AI 操作", "Composer_AiRewrite": "使用 AI 重写", - "AiActions_CheckingStatus": "正在检查 AI 访问权限…", - "AiActions_SignedOutTitle": "解锁 Wino AI 套件", - "AiActions_SignedOutDescription": "在登录您的 Wino 帐户并激活 AI 套件插件后,使用 AI 翻译、重写和摘要电子邮件。", - "AiActions_NoPackTitle": "需要 AI 套件", - "AiActions_NoPackDescription": "您已登录,但 AI 套件尚未激活。购买后即可使用 Wino 的 AI 翻译、重写和摘要工具。", - "AiActions_UsageSummary": "{0} / {1} 积分本月已使用。", "Composer_AiRewritePolite": "使其更有礼貌", "Composer_AiRewritePoliteDescription": "在保持相同意图的前提下软化措辞。", "Composer_AiRewriteAngry": "让措辞更愤怒", @@ -1396,9 +1385,6 @@ "WinoAccount_Management_AiPackPromoPrice": "$4.99 / 月", "WinoAccount_Management_AiPackPromoRequests": "1,000 积分", "WinoAccount_Management_AiPackGetButton": "获取 AI Pack", - "WinoAddOn_AI_PACK_Name": "Wino AI Pack", - "WinoAddOn_AI_PACK_Description": "用于在 Wino Mail 中进行翻译、改写和摘要操作的 AI 驱动工具。", - "WinoAddOn_AI_PACK_Keywords": "AI、翻译、改写、摘要、生产力", "WinoAddOn_UNLIMITED_ACCOUNTS_Name": "无限账户", "WinoAddOn_UNLIMITED_ACCOUNTS_Description": "移除账户数量限制,您可以添加任意数量的邮箱账户。", "WinoAddOn_UNLIMITED_ACCOUNTS_Keywords": "账户、无限、高级、插件", diff --git a/Wino.Core.Tests/Services/WinoAccountProfileServiceTests.cs b/Wino.Core.Tests/Services/WinoAccountProfileServiceTests.cs index d4531cfe..92df65a2 100644 --- a/Wino.Core.Tests/Services/WinoAccountProfileServiceTests.cs +++ b/Wino.Core.Tests/Services/WinoAccountProfileServiceTests.cs @@ -7,7 +7,6 @@ using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; using Wino.Core.Domain.Models.Accounts; -using Wino.Mail.Api.Contracts.Ai; using Wino.Mail.Api.Contracts.Auth; using Wino.Mail.Api.Contracts.Common; using Wino.Services; @@ -222,36 +221,6 @@ public class WinoAccountProfileServiceTests : IAsyncLifetime _apiClient.Verify(x => x.GetCurrentUserAsync(default), Times.AtLeastOnce); } - [Fact] - public async Task SummarizeAsync_ShouldReturnQuotaBackedResponse() - { - var authResult = CreateAuthResult("first@example.com"); - - _apiClient - .Setup(x => x.LoginAsync("first@example.com", "pw", default)) - .ReturnsAsync(WinoAccountApiResult.Success(authResult)); - - _apiClient - .Setup(x => x.SummarizeAsync("

Hello

", "en", default)) - .ReturnsAsync(ApiEnvelope.Success( - new AiTextResultDto("

Summary

"), - new QuotaInfoDto( - "Active", - DateTimeOffset.UtcNow.AddDays(-1), - DateTimeOffset.UtcNow.AddDays(29), - 1000, - 4, - 996, - new AiPackProductInfoDto("AI_PACK", 1000, 4.99m, "USD", "month")))); - - await _service.LoginAsync("first@example.com", "pw"); - - var response = await _service.SummarizeAsync("

Hello

", "en"); - - response.IsSuccess.Should().BeTrue(); - response.Result?.Html.Should().Be("

Summary

"); - } - private static AuthResultDto CreateAuthResult(string email) { return new AuthResultDto( diff --git a/Wino.Core.ViewModels/AboutPageViewModel.cs b/Wino.Core.ViewModels/AboutPageViewModel.cs index b2755d8c..d8c0b57e 100644 --- a/Wino.Core.ViewModels/AboutPageViewModel.cs +++ b/Wino.Core.ViewModels/AboutPageViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using CommunityToolkit.Mvvm.Input; @@ -12,7 +12,6 @@ namespace Wino.Core.ViewModels; public partial class AboutPageViewModel : CoreBaseViewModel { - private readonly IStoreRatingService _storeRatingService; private readonly IMailDialogService _dialogService; private readonly INativeAppService _nativeAppService; private readonly IApplicationConfiguration _appInitializerService; @@ -23,14 +22,11 @@ public partial class AboutPageViewModel : CoreBaseViewModel public string VersionName => _nativeAppService.GetFullAppVersion(); public string WebsiteUrl => AppUrls.Website; public string DiscordChannelUrl => AppUrls.Discord; - public string GitHubUrl => AppUrls.GitHub; public string PrivacyPolicyUrl => AppUrls.PrivacyPolicy; - public string PaypalUrl => AppUrls.Paypal; public IPreferencesService PreferencesService { get; } - public AboutPageViewModel(IStoreRatingService storeRatingService, - IMailDialogService dialogService, + public AboutPageViewModel(IMailDialogService dialogService, INativeAppService nativeAppService, IPreferencesService preferencesService, IApplicationConfiguration appInitializerService, @@ -38,7 +34,6 @@ public partial class AboutPageViewModel : CoreBaseViewModel IFileService fileService, IWinoLogger logInitializer) { - _storeRatingService = storeRatingService; _dialogService = dialogService; _nativeAppService = nativeAppService; _logInitializer = logInitializer; @@ -111,22 +106,16 @@ public partial class AboutPageViewModel : CoreBaseViewModel [RelayCommand] private async Task Navigate(object url) { - if (url is string stringUrl) + if (url is not string stringUrl) + return; + + if (stringUrl == DiscordChannelUrl) { - if (stringUrl == "Store") - await ShowRateDialogAsync(); - else - { - // Discord disclaimer message about server. - if (stringUrl == DiscordChannelUrl) - await _dialogService.ShowMessageAsync(Translator.DiscordChannelDisclaimerMessage, - Translator.DiscordChannelDisclaimerTitle, - WinoCustomMessageDialogIcon.Warning); - - await _nativeAppService.LaunchUriAsync(new Uri(stringUrl)); - } + await _dialogService.ShowMessageAsync(Translator.DiscordChannelDisclaimerMessage, + Translator.DiscordChannelDisclaimerTitle, + WinoCustomMessageDialogIcon.Warning); } - } - private Task ShowRateDialogAsync() => _storeRatingService.LaunchStorePageForReviewAsync(); -} + await _nativeAppService.LaunchUriAsync(new Uri(stringUrl)); + } +} \ No newline at end of file diff --git a/Wino.Core.ViewModels/AccountManagementPageViewModelBase.cs b/Wino.Core.ViewModels/AccountManagementPageViewModelBase.cs index 631deeb7..e30b335c 100644 --- a/Wino.Core.ViewModels/AccountManagementPageViewModelBase.cs +++ b/Wino.Core.ViewModels/AccountManagementPageViewModelBase.cs @@ -1,13 +1,11 @@ -using System.Collections.ObjectModel; +using System.Collections.ObjectModel; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using System.Collections.Generic; using CommunityToolkit.Mvvm.ComponentModel; -using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Wino.Core.Domain; using Wino.Core.Domain.Entities.Shared; -using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; using Wino.Core.Domain.Models.Navigation; using Wino.Core.ViewModels.Data; @@ -21,31 +19,16 @@ public abstract partial class AccountManagementPageViewModelBase : CoreBaseViewM public ObservableCollection Accounts { get; set; } = []; public IEnumerable StartupAccounts => Accounts.Where(IsStartupEligible); - public bool IsPurchasePanelVisible => !HasUnlimitedAccountProduct; - public bool IsAccountCreationAlmostOnLimit => Accounts != null && Accounts.Count == FREE_ACCOUNT_COUNT - 1; public bool HasAccountsDefined => Accounts != null && Accounts.Any(); public bool CanReorderAccounts => Accounts?.Sum(a => a.HoldingAccountCount) > 1; - public string UsedAccountsString => string.Format(Translator.WinoUpgradeRemainingAccountsMessage, Accounts.Count, FREE_ACCOUNT_COUNT); - - [ObservableProperty] - [NotifyPropertyChangedFor(nameof(IsPurchasePanelVisible))] - public partial bool HasUnlimitedAccountProduct { get; set; } - - [ObservableProperty] - [NotifyPropertyChangedFor(nameof(IsAccountCreationAlmostOnLimit))] - [NotifyPropertyChangedFor(nameof(IsPurchasePanelVisible))] - public partial bool IsAccountCreationBlocked { get; set; } - [ObservableProperty] public partial IAccountProviderDetailViewModel StartupAccount { get; set; } - public int FREE_ACCOUNT_COUNT { get; } = 3; protected IDialogServiceBase DialogService { get; } protected INavigationService NavigationService { get; } protected IAccountService AccountService { get; } protected IProviderService ProviderService { get; } - protected IStoreManagementService StoreManagementService { get; } protected IWinoAccountProfileService WinoAccountProfileService { get; } protected IAuthenticationProvider AuthenticationProvider { get; } protected IPreferencesService PreferencesService { get; } @@ -54,7 +37,6 @@ public abstract partial class AccountManagementPageViewModelBase : CoreBaseViewM INavigationService navigationService, IAccountService accountService, IProviderService providerService, - IStoreManagementService storeManagementService, IWinoAccountProfileService winoAccountProfileService, IAuthenticationProvider authenticationProvider, IPreferencesService preferencesService) @@ -63,49 +45,11 @@ public abstract partial class AccountManagementPageViewModelBase : CoreBaseViewM NavigationService = navigationService; AccountService = accountService; ProviderService = providerService; - StoreManagementService = storeManagementService; WinoAccountProfileService = winoAccountProfileService; AuthenticationProvider = authenticationProvider; PreferencesService = preferencesService; } - [RelayCommand] - private void NavigateAccountDetails(AccountProviderDetailViewModel accountDetails) - { - Messenger.Send(new BreadcrumbNavigationRequested(GetAccountDetailsTitle(accountDetails.Account), - WinoPage.AccountDetailsPage, - accountDetails.Account.Id)); - } - - [RelayCommand] - public async Task PurchaseUnlimitedAccountAsync() - { - var purchaseResult = await StoreManagementService.PurchaseAsync(WinoAddOnProductType.UNLIMITED_ACCOUNTS); - - if (purchaseResult == StorePurchaseResult.Succeeded) - DialogService.InfoBarMessage(Translator.Info_PurchaseThankYouTitle, Translator.Info_PurchaseThankYouMessage, InfoBarMessageType.Success); - else if (purchaseResult == StorePurchaseResult.AlreadyPurchased) - DialogService.InfoBarMessage(Translator.Info_PurchaseExistsTitle, Translator.Info_PurchaseExistsMessage, InfoBarMessageType.Warning); - - bool shouldRefreshPurchasePanel = purchaseResult == StorePurchaseResult.Succeeded || purchaseResult == StorePurchaseResult.AlreadyPurchased; - - if (shouldRefreshPurchasePanel) - { - await ManageStorePurchasesAsync(); - } - } - - public async Task ManageStorePurchasesAsync() - { - var hasUnlimitedAccountProduct = await StoreManagementService.HasProductAsync(WinoAddOnProductType.UNLIMITED_ACCOUNTS).ConfigureAwait(false); - - await ExecuteUIThread(() => - { - HasUnlimitedAccountProduct = hasUnlimitedAccountProduct; - IsAccountCreationBlocked = !hasUnlimitedAccountProduct && Accounts.Count >= FREE_ACCOUNT_COUNT; - }); - } - public AccountProviderDetailViewModel GetAccountProviderDetails(MailAccount account) { var provider = ProviderService.GetProviderDetail(account.ProviderType); @@ -150,4 +94,4 @@ public abstract partial class AccountManagementPageViewModelBase : CoreBaseViewM _ => true }; } -} +} \ No newline at end of file diff --git a/Wino.Core.ViewModels/Data/WinoAddOnItemViewModel.cs b/Wino.Core.ViewModels/Data/WinoAddOnItemViewModel.cs index 692ba90a..ccd997c2 100644 --- a/Wino.Core.ViewModels/Data/WinoAddOnItemViewModel.cs +++ b/Wino.Core.ViewModels/Data/WinoAddOnItemViewModel.cs @@ -15,14 +15,12 @@ public partial class WinoAddOnItemViewModel : ObservableObject public string IconGlyph => ProductType switch { - WinoAddOnProductType.AI_PACK => "\uE945", WinoAddOnProductType.UNLIMITED_ACCOUNTS => "\uE716", _ => "\uE10F" }; [ObservableProperty] [NotifyPropertyChangedFor(nameof(ShowPurchaseState))] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial bool IsPurchased { get; set; } public ICommand? PurchaseCommand { get; set; } @@ -30,7 +28,6 @@ public partial class WinoAddOnItemViewModel : ObservableObject [ObservableProperty] [NotifyPropertyChangedFor(nameof(ShowLoadingState))] [NotifyPropertyChangedFor(nameof(ShowPurchaseState))] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] [NotifyPropertyChangedFor(nameof(ShowErrorState))] public partial bool IsLoading { get; set; } @@ -39,43 +36,31 @@ public partial class WinoAddOnItemViewModel : ObservableObject [ObservableProperty] [NotifyPropertyChangedFor(nameof(ShowErrorState))] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial bool HasUsageData { get; set; } [ObservableProperty] [NotifyPropertyChangedFor(nameof(ShowErrorState))] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial string ErrorText { get; set; } = string.Empty; [ObservableProperty] public partial int UsageCount { get; set; } [ObservableProperty] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial int UsageLimit { get; set; } = 1; [ObservableProperty] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial double UsagePercentage { get; set; } [ObservableProperty] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial string RenewalText { get; set; } = string.Empty; [ObservableProperty] - [NotifyPropertyChangedFor(nameof(ShowUsageSummary))] public partial string UsageResetText { get; set; } = string.Empty; public bool ShowLoadingState => IsLoading; public bool ShowPurchaseState => !IsLoading && string.IsNullOrWhiteSpace(ErrorText); - public bool ShowUsageSummary => ProductType == WinoAddOnProductType.AI_PACK && - IsPurchased && - !IsLoading && - string.IsNullOrWhiteSpace(ErrorText) && - HasUsageData; - public bool ShowErrorState => !IsLoading && !string.IsNullOrWhiteSpace(ErrorText); public WinoAddOnItemViewModel(WinoAddOnProductType productType) diff --git a/Wino.Core.ViewModels/SettingOptionsPageViewModel.cs b/Wino.Core.ViewModels/SettingOptionsPageViewModel.cs index d9e8a2b5..f73871c8 100644 --- a/Wino.Core.ViewModels/SettingOptionsPageViewModel.cs +++ b/Wino.Core.ViewModels/SettingOptionsPageViewModel.cs @@ -26,7 +26,6 @@ public partial class SettingOptionsPageViewModel : CoreBaseViewModel private readonly INativeAppService _nativeAppService; private readonly IAccountService _accountService; private readonly IMimeStorageService _mimeStorageService; - private readonly IStoreRatingService _storeRatingService; private readonly ITranslationService _translationService; private readonly INewThemeService _newThemeService; private readonly IPreferencesService _preferencesService; @@ -34,8 +33,6 @@ public partial class SettingOptionsPageViewModel : CoreBaseViewModel private bool _isInitializingSettings; private bool _isAppearanceSelectionPaused; - public string GitHubUrl => AppUrls.GitHub; - public string PaypalUrl => AppUrls.Paypal; public string WebsiteUrl => AppUrls.Website; public string PrivacyPolicyUrl => AppUrls.PrivacyPolicy; @@ -85,16 +82,14 @@ public partial class SettingOptionsPageViewModel : CoreBaseViewModel public SettingOptionsPageViewModel(INativeAppService nativeAppService, IAccountService accountService, IMimeStorageService mimeStorageService, - IStoreRatingService storeRatingService, - ITranslationService translationService, - INewThemeService newThemeService, - IPreferencesService preferencesService, - IProviderService providerService) + ITranslationService translationService, + INewThemeService newThemeService, + IPreferencesService preferencesService, + IProviderService providerService) { _nativeAppService = nativeAppService; _accountService = accountService; _mimeStorageService = mimeStorageService; - _storeRatingService = storeRatingService; _translationService = translationService; _newThemeService = newThemeService; _preferencesService = preferencesService; @@ -218,6 +213,19 @@ public partial class SettingOptionsPageViewModel : CoreBaseViewModel _isInitializingSettings = false; } + private void InitializeColors() + { + Colors.Clear(); + + foreach (var color in AccentColorProvider.GetAvailableColors()) + { + Colors.Add(new AppColorViewModel(color)); + } + + UseAccentColor = _preferencesService.IsCustomAccentColorEnabled; + SelectedAppColor = Colors.FirstOrDefault(color => color.Hex == _preferencesService.CustomAccentColorHex) ?? Colors.FirstOrDefault(); + } + private void InitializeLanguageOptions() { AvailableLanguages = _translationService.GetAvailableLanguages(); @@ -225,181 +233,77 @@ public partial class SettingOptionsPageViewModel : CoreBaseViewModel ?? AvailableLanguages.FirstOrDefault(); } - private void InitializeColors() - { - Colors.Clear(); - - foreach (var color in _newThemeService.GetAvailableAccountColors().Distinct(StringComparer.OrdinalIgnoreCase)) - { - Colors.Add(new AppColorViewModel(color)); - } - - var systemAccentColor = _newThemeService.GetSystemAccentColorHex(); - - if (Colors.All(color => !string.Equals(color.Hex, systemAccentColor, StringComparison.OrdinalIgnoreCase))) - { - Colors.Add(new AppColorViewModel(systemAccentColor, true)); - } - else - { - var matchingAccentColor = Colors.First(color => string.Equals(color.Hex, systemAccentColor, StringComparison.OrdinalIgnoreCase)); - Colors.Remove(matchingAccentColor); - Colors.Add(new AppColorViewModel(systemAccentColor, true)); - } - } - private void InitializeAppearanceOptions() { - _isAppearanceSelectionPaused = true; - - var currentAccentColor = _newThemeService.AccentColor; - - if (!string.IsNullOrWhiteSpace(currentAccentColor) && - Colors.All(color => !string.Equals(color.Hex, currentAccentColor, StringComparison.OrdinalIgnoreCase))) - { - Colors.Insert(0, new AppColorViewModel(currentAccentColor)); - } - - SelectedElementTheme = ElementThemes.FirstOrDefault(theme => theme.NativeTheme == _newThemeService.RootTheme) - ?? ElementThemes.FirstOrDefault(); - - if (string.IsNullOrWhiteSpace(currentAccentColor)) - { - SelectedAppColor = Colors.LastOrDefault(color => color.IsAccentColor) ?? Colors.LastOrDefault(); - UseAccentColor = true; - } - else - { - SelectedAppColor = Colors.FirstOrDefault(color => string.Equals(color.Hex, currentAccentColor, StringComparison.OrdinalIgnoreCase)) - ?? Colors.FirstOrDefault(); - UseAccentColor = SelectedAppColor?.IsAccentColor == true; - } - - _isAppearanceSelectionPaused = false; - } - - private List CreateAccountItems(List accounts) - { - var groupedAccounts = accounts - .OrderBy(account => account.MergedInboxId == null ? 1 : 0) - .ThenBy(account => account.Order) - .ThenBy(account => account.Name) - .GroupBy(account => account.MergedInboxId); - var accountItems = new List(); - - foreach (var accountGroup in groupedAccounts) - { - if (accountGroup.Key == null) - { - accountItems.AddRange(accountGroup.Select(CreateAccountProviderDetails)); - continue; - } - - var mergedInbox = accountGroup.First().MergedInbox; - var holdingAccounts = accountGroup - .Select(CreateAccountProviderDetails) - .ToList(); - var mergedAccount = new MergedAccountProviderDetailViewModel(mergedInbox, holdingAccounts) - { - ProviderDetail = holdingAccounts.FirstOrDefault()?.ProviderDetail - }; - - accountItems.Add(mergedAccount); - } - - return accountItems; - } - - private AccountProviderDetailViewModel CreateAccountProviderDetails(MailAccount account) - { - var provider = _providerService.GetProviderDetail(account.ProviderType); - return new AccountProviderDetailViewModel(provider, account); + SelectedElementTheme = ElementThemes.FirstOrDefault(theme => theme.Theme == _preferencesService.ApplicationTheme) + ?? ElementThemes[0]; } partial void OnSelectedLanguageChanged(AppLanguageModel value) { if (_isInitializingSettings || value == null) - { return; - } - _ = ApplyLanguageAsync(value); + _ = _translationService.InitializeLanguageAsync(value.Language); } partial void OnSelectedElementThemeChanged(ElementThemeContainer value) { if (_isInitializingSettings || value == null) - { return; - } - _newThemeService.RootTheme = value.NativeTheme; + _preferencesService.ApplicationTheme = value.Theme; } partial void OnSelectedAppColorChanged(AppColorViewModel value) { if (_isInitializingSettings || _isAppearanceSelectionPaused || value == null) - { return; + + _preferencesService.CustomAccentColorHex = value.Hex; + + if (UseAccentColor) + { + _newThemeService.ApplyCustomAccentColor(value.Color); } - - _isAppearanceSelectionPaused = true; - UseAccentColor = value.IsAccentColor; - _isAppearanceSelectionPaused = false; - - _newThemeService.AccentColor = value.Hex; } partial void OnUseAccentColorChanged(bool value) { - if (_isInitializingSettings || _isAppearanceSelectionPaused || Colors.Count == 0) - { + if (_isInitializingSettings) return; - } - var accentColor = Colors.LastOrDefault(color => color.IsAccentColor); - var fallbackColor = Colors.FirstOrDefault(color => !color.IsAccentColor) ?? Colors.FirstOrDefault(); - var targetColor = value ? accentColor : SelectedAppColor?.IsAccentColor == true ? fallbackColor : SelectedAppColor; - - if (targetColor == null || ReferenceEquals(targetColor, SelectedAppColor)) - { - return; - } + _preferencesService.IsCustomAccentColorEnabled = value; _isAppearanceSelectionPaused = true; - SelectedAppColor = targetColor; - _isAppearanceSelectionPaused = false; - - _newThemeService.AccentColor = targetColor.Hex; - } - - private async Task ApplyLanguageAsync(AppLanguageModel language) - { - await _translationService.InitializeLanguageAsync(language.Language); - } - - [RelayCommand] - public void NavigateSubDetail(object type) - { - if (type is WinoPage pageType) + try { - var pageInfo = SettingsNavigationInfoProvider.GetInfo(pageType, AccountSummaryText); - Messenger.Send(new BreadcrumbNavigationRequested(pageInfo.Title, pageType)); + if (value && SelectedAppColor != null) + { + _newThemeService.ApplyCustomAccentColor(SelectedAppColor.Color); + } + else + { + _newThemeService.ResetAccentColor(); + } + } + finally + { + _isAppearanceSelectionPaused = false; } } [RelayCommand] - private async Task NavigateExternalAsync(object target) + private Task NavigateExternalAsync(string url) { - if (target is not string stringTarget || string.IsNullOrWhiteSpace(stringTarget)) - return; + if (string.IsNullOrWhiteSpace(url)) + return Task.CompletedTask; - if (stringTarget == "Store") - { - await _storeRatingService.LaunchStorePageForReviewAsync(); - return; - } - - await _nativeAppService.LaunchUriAsync(new Uri(stringTarget)); + return _nativeAppService.LaunchUriAsync(new Uri(url)); } -} + + private static List CreateAccountItems(List accounts) + { + return AccountProviderDetailViewModelFactory.CreateAccountItems(accounts); + } +} \ No newline at end of file diff --git a/Wino.Mail.ViewModels/AccountManagementViewModel.cs b/Wino.Mail.ViewModels/AccountManagementViewModel.cs index 757cc2ab..f18e8e87 100644 --- a/Wino.Mail.ViewModels/AccountManagementViewModel.cs +++ b/Wino.Mail.ViewModels/AccountManagementViewModel.cs @@ -45,14 +45,13 @@ public partial class AccountManagementViewModel : AccountManagementPageViewModel INavigationService navigationService, IAccountService accountService, IProviderService providerService, - IStoreManagementService storeManagementService, IWinoAccountProfileService winoAccountProfileService, IWinoAccountDataSyncService syncService, IWinoLogger winoLogger, ISpecialImapProviderConfigResolver specialImapProviderConfigResolver, ICalDavClient calDavClient, IAuthenticationProvider authenticationProvider, - IPreferencesService preferencesService) : base(dialogService, navigationService, accountService, providerService, storeManagementService, winoAccountProfileService, authenticationProvider, preferencesService) + IPreferencesService preferencesService) : base(dialogService, navigationService, accountService, providerService, winoAccountProfileService, authenticationProvider, preferencesService) { MailDialogService = dialogService; _syncService = syncService; @@ -90,23 +89,14 @@ public partial class AccountManagementViewModel : AccountManagementPageViewModel [RelayCommand] - private async Task AddNewAccountAsync() + private Task AddNewAccountAsync() { - if (IsAccountCreationBlocked) - { - var isPurchaseClicked = await DialogService.ShowConfirmationDialogAsync(Translator.DialogMessage_AccountLimitMessage, Translator.DialogMessage_AccountLimitTitle, Translator.Buttons_Purchase); - - if (!isPurchaseClicked) return; - - await PurchaseUnlimitedAccountAsync(); - - return; - } - Messenger.Send(new BreadcrumbNavigationRequested( Translator.WelcomeWizard_Step2Title, WinoPage.ProviderSelectionPage, ProviderSelectionNavigationContext.CreateForSettingsAddAccount())); + + return Task.CompletedTask; } public Task StartAddNewAccountAsync() => AddNewAccountAsync(); @@ -400,7 +390,6 @@ public partial class AccountManagementViewModel : AccountManagementPageViewModel }); - await ManageStorePurchasesAsync().ConfigureAwait(false); } private static string BuildExportSuccessMessage(Wino.Core.Domain.Models.Accounts.WinoAccountSyncExportResult result) diff --git a/Wino.Mail.ViewModels/AppPreferencesPageViewModel.cs b/Wino.Mail.ViewModels/AppPreferencesPageViewModel.cs index 4c6ab537..bb8d5b5e 100644 --- a/Wino.Mail.ViewModels/AppPreferencesPageViewModel.cs +++ b/Wino.Mail.ViewModels/AppPreferencesPageViewModel.cs @@ -1,12 +1,10 @@ using System.Collections.Generic; -using System.IO; using System.Threading.Tasks; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Wino.Core.Domain; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; -using Wino.Core.Domain.Models.Ai; using Wino.Core.Domain.Models.Navigation; using Wino.Core.Domain.Models.Translations; @@ -18,14 +16,12 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel IMailDialogService dialogService, IPreferencesService preferencesService, IStartupBehaviorService startupBehaviorService, - ITranslationService translationService, - IAiActionOptionsService aiActionOptionsService) + ITranslationService translationService) { _dialogService = dialogService; PreferencesService = preferencesService; _startupBehaviorService = startupBehaviorService; _translationService = translationService; - _aiActionOptionsService = aiActionOptionsService; SearchModes = [ @@ -44,7 +40,6 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel SelectedDefaultSearchMode = SearchModes[(int)PreferencesService.DefaultSearchMode]; SelectedDefaultApplicationMode = ApplicationModes[(int)PreferencesService.DefaultApplicationMode]; EmailSyncIntervalMinutes = PreferencesService.EmailSyncIntervalMinutes; - SummarySavePath = PreferencesService.AiSummarySavePath; } public IPreferencesService PreferencesService { get; } @@ -61,21 +56,6 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel [ObservableProperty] public partial AppLanguageModel SelectedLanguage { get; set; } - [ObservableProperty] - public partial List AvailableAiLanguages { get; set; } = []; - - [ObservableProperty] - public partial AiTranslateLanguageOption SelectedDefaultTranslationLanguage { get; set; } - - [ObservableProperty] - public partial AiTranslateLanguageOption SelectedSummarizeLanguage { get; set; } - - [ObservableProperty] - public partial string SummarySavePath { get; set; } = string.Empty; - - [ObservableProperty] - public partial bool HasInvalidSummarySavePath { get; set; } - [ObservableProperty] [NotifyPropertyChangedFor(nameof(IsStartupBehaviorDisabled))] [NotifyPropertyChangedFor(nameof(IsStartupBehaviorEnabled))] @@ -84,9 +64,7 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel private readonly IMailDialogService _dialogService; private readonly IStartupBehaviorService _startupBehaviorService; private readonly ITranslationService _translationService; - private readonly IAiActionOptionsService _aiActionOptionsService; private bool _isLanguageInitialized; - private bool _isAiPreferencesInitialized; private int _emailSyncIntervalMinutes; private string _selectedDefaultSearchMode; private string _selectedDefaultApplicationMode; @@ -132,31 +110,6 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel _ = _translationService.InitializeLanguageAsync(value.Language); } - partial void OnSelectedDefaultTranslationLanguageChanged(AiTranslateLanguageOption value) - { - if (!_isAiPreferencesInitialized || value == null) - return; - - PreferencesService.AiDefaultTranslationLanguageCode = value.Code; - } - - partial void OnSelectedSummarizeLanguageChanged(AiTranslateLanguageOption value) - { - if (!_isAiPreferencesInitialized || value == null) - return; - - PreferencesService.AiSummarizeLanguageCode = value.Code; - } - - partial void OnSummarySavePathChanged(string value) - { - if (!_isAiPreferencesInitialized) - return; - - PreferencesService.AiSummarySavePath = value ?? string.Empty; - RefreshSummarySavePathState(); - } - [RelayCommand] private async Task ToggleStartupBehaviorAsync() { @@ -204,22 +157,11 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel } } - [RelayCommand] - private async Task BrowseSummarySavePathAsync() - { - var pickedPath = await _dialogService.PickWindowsFolderAsync(); - if (string.IsNullOrWhiteSpace(pickedPath)) - return; - - await ExecuteUIThread(() => SummarySavePath = pickedPath); - } - public override async void OnNavigatedTo(NavigationMode mode, object parameters) { base.OnNavigatedTo(mode, parameters); var availableLanguages = _translationService.GetAvailableLanguages(); - var availableAiLanguages = new List(_aiActionOptionsService.GetTranslateLanguageOptions()); var startupBehaviorResult = await _startupBehaviorService.GetCurrentStartupBehaviorAsync(); await ExecuteUIThread(() => @@ -228,32 +170,7 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel SelectedLanguage = AvailableLanguages.Find(language => language.Language == PreferencesService.CurrentLanguage) ?? (AvailableLanguages.Count > 0 ? AvailableLanguages[0] : null); _isLanguageInitialized = true; - - AvailableAiLanguages = availableAiLanguages; - SelectedDefaultTranslationLanguage = FindAiLanguageOption(PreferencesService.AiDefaultTranslationLanguageCode) - ?? FindAiLanguageOption("en-US") - ?? (AvailableAiLanguages.Count > 0 ? AvailableAiLanguages[0] : null); - SelectedSummarizeLanguage = FindAiLanguageOption(PreferencesService.AiSummarizeLanguageCode) - ?? FindAiLanguageOption("en-US") - ?? (AvailableAiLanguages.Count > 0 ? AvailableAiLanguages[0] : null); - SummarySavePath = PreferencesService.AiSummarySavePath; - RefreshSummarySavePathState(); - _isAiPreferencesInitialized = true; - StartupBehaviorResult = startupBehaviorResult; }); } - - private AiTranslateLanguageOption FindAiLanguageOption(string languageCode) - { - if (string.IsNullOrWhiteSpace(languageCode)) - return null; - - return AvailableAiLanguages.Find(option => option.Code == languageCode); - } - - private void RefreshSummarySavePathState() - { - HasInvalidSummarySavePath = !string.IsNullOrWhiteSpace(SummarySavePath) && !Directory.Exists(SummarySavePath); - } -} +} \ No newline at end of file diff --git a/Wino.Mail.WinUI/App.xaml.cs b/Wino.Mail.WinUI/App.xaml.cs index 918469ca..d1be2ae7 100644 --- a/Wino.Mail.WinUI/App.xaml.cs +++ b/Wino.Mail.WinUI/App.xaml.cs @@ -368,7 +368,6 @@ public partial class App : WinoApplication, { services.AddSingleton(); services.AddSingleton(); - services.AddSingleton(); services.AddSingleton(); services.AddTransient(); services.AddSingleton(); @@ -2037,4 +2036,3 @@ public partial class App : WinoApplication, } - diff --git a/Wino.Mail.WinUI/Controls/IAiHtmlActionHost.cs b/Wino.Mail.WinUI/Controls/IAiHtmlActionHost.cs deleted file mode 100644 index 24ca2b93..00000000 --- a/Wino.Mail.WinUI/Controls/IAiHtmlActionHost.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Threading; -using System.Threading.Tasks; - -namespace Wino.Mail.WinUI.Controls; - -public interface IAiHtmlActionHost -{ - Task GetCurrentHtmlAsync(CancellationToken cancellationToken); - Task ApplyHtmlResultAsync(string html, CancellationToken cancellationToken); - Task TryGetCachedTranslationHtmlAsync(string languageCode, CancellationToken cancellationToken); - Task SaveCachedTranslationHtmlAsync(string languageCode, string html, CancellationToken cancellationToken); - Task TryGetCachedSummaryTextAsync(CancellationToken cancellationToken); - Task SaveCachedSummaryTextAsync(string summary, CancellationToken cancellationToken); - string GetSuggestedSummaryFileName(); -} diff --git a/Wino.Mail.WinUI/Controls/OperationCommandBar.cs b/Wino.Mail.WinUI/Controls/OperationCommandBar.cs index c9685213..91fb1666 100644 --- a/Wino.Mail.WinUI/Controls/OperationCommandBar.cs +++ b/Wino.Mail.WinUI/Controls/OperationCommandBar.cs @@ -8,7 +8,6 @@ using CommunityToolkit.WinUI; using Microsoft.Extensions.DependencyInjection; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Data; using Wino.Core.Domain; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; @@ -22,7 +21,6 @@ public sealed partial class OperationCommandBar : CommandBar { private const string MailOperationTemplateKey = "OperationCommandBarMailOperationTemplate"; private const string FolderOperationTemplateKey = "OperationCommandBarFolderOperationTemplate"; - private const string AIActionsTemplateKey = "OperationCommandBarAIActionsTemplate"; private const string PopOutTemplateKey = "OperationCommandBarThemeToggleTemplate"; private const string ThemeToggleTemplateKey = "OperationCommandBarThemeToggleTemplate"; private const string SeparatorTemplateKey = "OperationCommandBarSeparatorTemplate"; @@ -36,12 +34,6 @@ public sealed partial class OperationCommandBar : CommandBar [GeneratedDependencyProperty] public partial ICommand? ItemInvokedCommand { get; set; } - [GeneratedDependencyProperty] - public partial bool IsAIActionsEnabled { get; set; } - - [GeneratedDependencyProperty] - public partial bool IsAIActionsPaneToggleVisible { get; set; } - [GeneratedDependencyProperty] public partial bool IsEditorThemeDark { get; set; } @@ -51,7 +43,6 @@ public sealed partial class OperationCommandBar : CommandBar [GeneratedDependencyProperty] public partial bool IsPopOutButtonVisible { get; set; } - public event EventHandler? AIActionsEnabledChanged; public event EventHandler? PopOutClicked; public OperationCommandBar() @@ -84,16 +75,6 @@ public sealed partial class OperationCommandBar : CommandBar RefreshCommands(); } - partial void OnIsAIActionsEnabledChanged(bool newValue) - { - AIActionsEnabledChanged?.Invoke(this, newValue); - } - - partial void OnIsAIActionsPaneToggleVisibleChanged(bool newValue) - { - RefreshCommands(); - } - partial void OnIsEditorThemeDarkChanged(bool newValue) { RefreshCommands(); @@ -215,11 +196,6 @@ public sealed partial class OperationCommandBar : CommandBar { ClearGeneratedCommands(); - if (IsAIActionsPaneToggleVisible) - { - PrimaryCommands.Add(CreateAIActionsToggleButton()); - } - if (IsPopOutButtonVisible) { PrimaryCommands.Add(CreatePopOutButton()); @@ -277,9 +253,6 @@ public sealed partial class OperationCommandBar : CommandBar button.Click -= ThemeButton_Click; button.Click -= PopOutButton_Click; break; - case AppBarToggleButton toggleButton: - toggleButton.ClearValue(AppBarToggleButton.IsCheckedProperty); - break; } } } @@ -337,22 +310,6 @@ public sealed partial class OperationCommandBar : CommandBar return null; } - private AppBarToggleButton CreateAIActionsToggleButton() - { - var button = (AppBarToggleButton)LoadCommandBarElementTemplate( - AIActionsTemplateKey, - new OperationCommandBarAIActionsItemViewModel(Translator.Composer_AiActions, "\uE945")); - - button.SetBinding(AppBarToggleButton.IsCheckedProperty, new Binding - { - Mode = BindingMode.TwoWay, - Path = new PropertyPath(nameof(IsAIActionsEnabled)), - Source = this - }); - - return button; - } - private AppBarButton CreateThemeToggleButton() { var label = IsEditorThemeDark ? Translator.Composer_LightTheme : Translator.Composer_DarkTheme; @@ -487,18 +444,6 @@ public sealed class OperationCommandBarMenuOperationItemViewModel public CommandBarLabelPosition LabelPosition { get; } } -public sealed class OperationCommandBarAIActionsItemViewModel -{ - public OperationCommandBarAIActionsItemViewModel(string toolTip, string glyph) - { - ToolTip = toolTip; - Glyph = glyph; - } - - public string ToolTip { get; } - public string Glyph { get; } -} - public sealed class OperationCommandBarThemeItemViewModel { public OperationCommandBarThemeItemViewModel(string toolTip, WinoIconGlyph icon) diff --git a/Wino.Mail.WinUI/Selectors/WinoAddOnTemplateSelector.cs b/Wino.Mail.WinUI/Selectors/WinoAddOnTemplateSelector.cs index 47401360..87176f0e 100644 --- a/Wino.Mail.WinUI/Selectors/WinoAddOnTemplateSelector.cs +++ b/Wino.Mail.WinUI/Selectors/WinoAddOnTemplateSelector.cs @@ -9,7 +9,6 @@ namespace Wino.Selectors; public partial class WinoAddOnTemplateSelector : DataTemplateSelector { public DataTemplate? NotPurchasedTemplate { get; set; } - public DataTemplate? AiPackPurchasedTemplate { get; set; } public DataTemplate? UnlimitedAccountsPurchasedTemplate { get; set; } protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) @@ -22,7 +21,6 @@ public partial class WinoAddOnTemplateSelector : DataTemplateSelector return addOn.ProductType switch { - WinoAddOnProductType.AI_PACK => AiPackPurchasedTemplate ?? throw new ArgumentException(nameof(AiPackPurchasedTemplate)), WinoAddOnProductType.UNLIMITED_ACCOUNTS => UnlimitedAccountsPurchasedTemplate ?? throw new ArgumentException(nameof(UnlimitedAccountsPurchasedTemplate)), _ => NotPurchasedTemplate ?? throw new ArgumentException(nameof(NotPurchasedTemplate)) }; diff --git a/Wino.Mail.WinUI/Services/AiActionOptionsService.cs b/Wino.Mail.WinUI/Services/AiActionOptionsService.cs deleted file mode 100644 index 87ae905c..00000000 --- a/Wino.Mail.WinUI/Services/AiActionOptionsService.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections.Generic; -using Wino.Core.Domain; -using Wino.Core.Domain.Interfaces; -using Wino.Core.Domain.Models.Ai; - -namespace Wino.Mail.WinUI.Services; - -public sealed class AiActionOptionsService : IAiActionOptionsService -{ - public IReadOnlyList GetTranslateLanguageOptions() - { - return - [ - new("en-US", Translator.Composer_AiTranslateLanguageEnglish), - new("tr-TR", Translator.Composer_AiTranslateLanguageTurkish), - new("de-DE", Translator.Composer_AiTranslateLanguageGerman), - new("fr-FR", Translator.Composer_AiTranslateLanguageFrench), - new("es-ES", Translator.Composer_AiTranslateLanguageSpanish), - new("it-IT", Translator.Composer_AiTranslateLanguageItalian), - new("pt-BR", Translator.Composer_AiTranslateLanguagePortugueseBrazil), - new("nl-NL", Translator.Composer_AiTranslateLanguageDutch), - new("pl-PL", Translator.Composer_AiTranslateLanguagePolish), - new("ru-RU", Translator.Composer_AiTranslateLanguageRussian), - new("ja-JP", Translator.Composer_AiTranslateLanguageJapanese), - new("ko-KR", Translator.Composer_AiTranslateLanguageKorean), - new("zh-CN", Translator.Composer_AiTranslateLanguageChineseSimplified), - new("ar-SA", Translator.Composer_AiTranslateLanguageArabic), - new("hi-IN", Translator.Composer_AiTranslateLanguageHindi), - ]; - } - - public IReadOnlyList GetRewriteModeOptions() - { - return - [ - new("polite", Translator.Composer_AiRewritePolite, Translator.Composer_AiRewritePoliteDescription), - new("angry", Translator.Composer_AiRewriteAngry, Translator.Composer_AiRewriteAngryDescription), - new("happy", Translator.Composer_AiRewriteHappy, Translator.Composer_AiRewriteHappyDescription), - new("formal", Translator.Composer_AiRewriteFormal, Translator.Composer_AiRewriteFormalDescription), - new("friendly", Translator.Composer_AiRewriteFriendly, Translator.Composer_AiRewriteFriendlyDescription), - new("shorter", Translator.Composer_AiRewriteShorter, Translator.Composer_AiRewriteShorterDescription), - new("clearer", Translator.Composer_AiRewriteClearer, Translator.Composer_AiRewriteClearerDescription), - new(string.Empty, Translator.Composer_AiRewriteCustom, Translator.Composer_AiRewriteCustomDescription, true), - ]; - } -} diff --git a/Wino.Mail.WinUI/Services/StoreManagementService.cs b/Wino.Mail.WinUI/Services/StoreManagementService.cs index 86f9a2f9..8ba1f46f 100644 --- a/Wino.Mail.WinUI/Services/StoreManagementService.cs +++ b/Wino.Mail.WinUI/Services/StoreManagementService.cs @@ -16,12 +16,10 @@ public class StoreManagementService : IStoreManagementService private readonly Dictionary productIds = new Dictionary() { { WinoAddOnProductType.UNLIMITED_ACCOUNTS, "UnlimitedAccounts" }, - { WinoAddOnProductType.AI_PACK, "AI_PACK" }, }; private readonly Dictionary skuIds = new Dictionary() { - { WinoAddOnProductType.AI_PACK, "9N2FH734RBVS" }, { WinoAddOnProductType.UNLIMITED_ACCOUNTS, "9P02MXZ42GSM" } }; diff --git a/Wino.Mail.WinUI/Services/WinoAccountAiErrorTranslator.cs b/Wino.Mail.WinUI/Services/WinoAccountAiErrorTranslator.cs deleted file mode 100644 index 56ea918f..00000000 --- a/Wino.Mail.WinUI/Services/WinoAccountAiErrorTranslator.cs +++ /dev/null @@ -1,57 +0,0 @@ -using Wino.Core.Domain; -using Wino.Mail.Api.Contracts.Common; - -namespace Wino.Mail.WinUI.Services; - -public static class WinoAccountAiErrorTranslator -{ - public static string Translate(string? errorCode) - { - if (string.IsNullOrWhiteSpace(errorCode)) - { - return Translator.GeneralTitle_Error; - } - - return errorCode switch - { - ApiErrorCodes.AiPackRequired => Translator.WinoAccount_Error_AiPackRequired, - ApiErrorCodes.AiQuotaExceeded => Translator.WinoAccount_Error_AiQuotaExceeded, - ApiErrorCodes.AiHtmlEmpty => Translator.WinoAccount_Error_AiHtmlEmpty, - ApiErrorCodes.AiHtmlTooLarge => Translator.WinoAccount_Error_AiHtmlTooLarge, - ApiErrorCodes.AiUnsupportedLanguage => Translator.WinoAccount_Error_AiUnsupportedLanguage, - ApiErrorCodes.Forbidden => Translator.WinoAccount_Error_Forbidden, - ApiErrorCodes.ValidationFailed => Translator.WinoAccount_Error_ValidationFailed, - _ => errorCode - }; - } - - public static string Format(string? errorCode, string? errorMessage) - { - var translatedCode = Translate(errorCode); - var hasCode = !string.IsNullOrWhiteSpace(errorCode); - var hasMessage = !string.IsNullOrWhiteSpace(errorMessage); - - if (!hasCode && !hasMessage) - { - return Translator.GeneralTitle_Error; - } - - var formattedCode = translatedCode; - if (hasCode && !string.Equals(translatedCode, errorCode, System.StringComparison.Ordinal)) - { - formattedCode = $"{translatedCode} ({errorCode})"; - } - - if (!hasMessage || string.Equals(errorMessage, translatedCode, System.StringComparison.OrdinalIgnoreCase) || string.Equals(errorMessage, errorCode, System.StringComparison.OrdinalIgnoreCase)) - { - return formattedCode; - } - - if (string.IsNullOrWhiteSpace(formattedCode)) - { - return errorMessage!; - } - - return $"{formattedCode}{System.Environment.NewLine}{errorMessage}"; - } -} diff --git a/Wino.Mail.WinUI/Styles/OperationCommandBar.xaml b/Wino.Mail.WinUI/Styles/OperationCommandBar.xaml index 1faa4729..8eef867b 100644 --- a/Wino.Mail.WinUI/Styles/OperationCommandBar.xaml +++ b/Wino.Mail.WinUI/Styles/OperationCommandBar.xaml @@ -37,17 +37,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + { @@ -502,47 +501,6 @@ public sealed partial class ComposePage : ComposePageAbstract, DisposeDisposables(); } - public async Task GetCurrentHtmlAsync(CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - var html = await WebViewEditor.GetHtmlBodyAsync(); - cancellationToken.ThrowIfCancellationRequested(); - return html; - } - - public async Task ApplyHtmlResultAsync(string html, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - await WebViewEditor.RenderHtmlAsync(html); - cancellationToken.ThrowIfCancellationRequested(); - } - - public Task TryGetCachedTranslationHtmlAsync(string languageCode, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(null); - } - - public Task SaveCachedTranslationHtmlAsync(string languageCode, string html, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.CompletedTask; - } - - public Task TryGetCachedSummaryTextAsync(CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(null); - } - - public Task SaveCachedSummaryTextAsync(string summary, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.CompletedTask; - } - - public string GetSuggestedSummaryFileName() => "email-summary.txt"; - private void OpenAttachment_Click(object sender, RoutedEventArgs e) { if (sender is MenuFlyoutItem item && item.CommandParameter is MailAttachmentViewModel attachment) diff --git a/Wino.Mail.WinUI/Views/Mail/MailRenderingPage.xaml.cs b/Wino.Mail.WinUI/Views/Mail/MailRenderingPage.xaml.cs index bea07abe..a812abc7 100644 --- a/Wino.Mail.WinUI/Views/Mail/MailRenderingPage.xaml.cs +++ b/Wino.Mail.WinUI/Views/Mail/MailRenderingPage.xaml.cs @@ -13,7 +13,6 @@ using Microsoft.UI.Xaml.Navigation; using Microsoft.Web.WebView2.Core; using Windows.System; using Wino.Core.Domain; -using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; using Wino.Core.Domain.Models.Printing; using Wino.Mail.ViewModels.Data; @@ -30,14 +29,11 @@ using Wino.Views.Abstract; namespace Wino.Views.Mail; public sealed partial class MailRenderingPage : MailRenderingPageAbstract, - IAiHtmlActionHost, IPopoutClient, IRecipient { private readonly IPreferencesService _preferencesService = App.Current.Services.GetService()!; private readonly IMailDialogService _dialogService = App.Current.Services.GetService()!; - private readonly IMimeFileService _mimeFileService = App.Current.Services.GetRequiredService(); - private bool isRenderingInProgress = false; private bool? _lastAppliedDarkTheme; private TaskCompletionSource DOMLoadedTask = new TaskCompletionSource(); @@ -173,107 +169,16 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract, ViewModel.RenderHtmlAsyncFunc = null; ViewModel.ClearRenderedHtmlAsyncFunc = null; _currentRenderedHtml = string.Empty; - RendererCommandBar.AIActionsEnabledChanged -= RendererCommandBar_AIActionsEnabledChanged; RendererCommandBar.PopOutClicked -= RendererCommandBar_PopOutClicked; - RendererCommandBar.IsAIActionsEnabled = false; DisposeWebView2(); } - public Task GetCurrentHtmlAsync(CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(_currentRenderedHtml); - } - - public async Task ApplyHtmlResultAsync(string html, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - await RenderInternalAsync(html); - cancellationToken.ThrowIfCancellationRequested(); - } - public Task RefreshMailItemAsync(MailItemViewModel mailItemViewModel) { return ViewModel.RefreshMailItemAsync(mailItemViewModel); } - private async void RendererCommandBar_AIActionsEnabledChanged(object? sender, bool isEnabled) - { - if (isEnabled) - { - } - } - - public async Task TryGetCachedTranslationHtmlAsync(string languageCode, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!ViewModel.CurrentMailAccountId.HasValue || !ViewModel.CurrentMailFileId.HasValue || string.IsNullOrWhiteSpace(languageCode)) - { - return null; - } - - return await _mimeFileService.GetTranslatedHtmlAsync( - ViewModel.CurrentMailAccountId.Value, - ViewModel.CurrentMailFileId.Value, - languageCode, - cancellationToken).ConfigureAwait(false); - } - - public async Task SaveCachedTranslationHtmlAsync(string languageCode, string html, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!ViewModel.CurrentMailAccountId.HasValue || !ViewModel.CurrentMailFileId.HasValue || string.IsNullOrWhiteSpace(languageCode)) - { - return; - } - - await _mimeFileService.SaveTranslatedHtmlAsync( - ViewModel.CurrentMailAccountId.Value, - ViewModel.CurrentMailFileId.Value, - languageCode, - html, - cancellationToken).ConfigureAwait(false); - } - - public async Task TryGetCachedSummaryTextAsync(CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!ViewModel.CurrentMailAccountId.HasValue || !ViewModel.CurrentMailFileId.HasValue) - { - return null; - } - - return await _mimeFileService.GetSummaryTextAsync( - ViewModel.CurrentMailAccountId.Value, - ViewModel.CurrentMailFileId.Value, - cancellationToken).ConfigureAwait(false); - } - - public async Task SaveCachedSummaryTextAsync(string summary, CancellationToken cancellationToken) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!ViewModel.CurrentMailAccountId.HasValue || !ViewModel.CurrentMailFileId.HasValue) - { - return; - } - - await _mimeFileService.SaveSummaryTextAsync( - ViewModel.CurrentMailAccountId.Value, - ViewModel.CurrentMailFileId.Value, - summary, - cancellationToken).ConfigureAwait(false); - } - - public string GetSuggestedSummaryFileName() - { - var subject = string.IsNullOrWhiteSpace(ViewModel.Subject) ? "email-summary" : ViewModel.Subject; - return $"{SanitizeFileNamePart(subject)}.txt"; - } private void DisposeWebView2() { @@ -297,11 +202,8 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract, DOMLoadedTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); ViewModel.RenderHtmlAsyncFunc = RenderInternalAsync; ViewModel.ClearRenderedHtmlAsyncFunc = ClearRenderedContentAsync; - RendererCommandBar.AIActionsEnabledChanged -= RendererCommandBar_AIActionsEnabledChanged; - RendererCommandBar.AIActionsEnabledChanged += RendererCommandBar_AIActionsEnabledChanged; RendererCommandBar.PopOutClicked -= RendererCommandBar_PopOutClicked; RendererCommandBar.PopOutClicked += RendererCommandBar_PopOutClicked; - RendererCommandBar.IsAIActionsEnabled = false; Chromium.CoreWebView2Initialized -= CoreWebViewInitialized; Chromium.CoreWebView2Initialized += CoreWebViewInitialized; _ = EnsureChromiumInitializedAsync(); diff --git a/Wino.Mail.WinUI/Views/SettingOptionsPage.xaml b/Wino.Mail.WinUI/Views/SettingOptionsPage.xaml index b44d2077..167f7631 100644 --- a/Wino.Mail.WinUI/Views/SettingOptionsPage.xaml +++ b/Wino.Mail.WinUI/Views/SettingOptionsPage.xaml @@ -120,50 +120,6 @@ - - - - - - - diff --git a/Wino.Mail.WinUI/Views/Settings/AboutPage.xaml b/Wino.Mail.WinUI/Views/Settings/AboutPage.xaml index 4c8ee214..ccc967fb 100644 --- a/Wino.Mail.WinUI/Views/Settings/AboutPage.xaml +++ b/Wino.Mail.WinUI/Views/Settings/AboutPage.xaml @@ -55,26 +55,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -78,67 +77,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -