14 Commits

Author SHA1 Message Date
Burak Kaan Köse
f9c53ca2c9 New Crowdin updates (#724)
* New translations resources.json (Romanian)

* New translations resources.json (French)

* New translations resources.json (Spanish)

* New translations resources.json (Bulgarian)

* New translations resources.json (Catalan)

* New translations resources.json (Czech)

* New translations resources.json (Danish)

* New translations resources.json (German)

* New translations resources.json (Greek)

* New translations resources.json (Finnish)

* New translations resources.json (Italian)

* New translations resources.json (Japanese)

* New translations resources.json (Lithuanian)

* New translations resources.json (Dutch)

* New translations resources.json (Polish)

* New translations resources.json (Russian)

* New translations resources.json (Slovak)

* New translations resources.json (Turkish)

* New translations resources.json (Ukrainian)

* New translations resources.json (Chinese Simplified)

* New translations resources.json (Galician)

* New translations resources.json (Portuguese, Brazilian)

* New translations resources.json (Indonesian)
2025-07-30 23:43:07 +02:00
Burak Kaan Köse
21f9c7cf6d Deprecation of Application Insights for Sentry.IO (#723)
* Remove Application Insights implementation and implement new Sentry.IO SDK

* Remove test exception.
2025-07-30 23:36:10 +02:00
Maicol Battistini
43283b7218 feat(notification): Remove notification when read externally (#707)
* feat(notification):  Add notification removal feature

Implemented a new method `RemoveNotificationAsync` in the `INotificationBuilder` interface to allow the removal of toast notifications for specific emails identified by a unique ID.

This change enhances the notification management by ensuring that notifications can be cleared when emails are marked as read. The `NotificationBuilder` class has been updated to include logic for removing existing notifications and to use the unique ID as a tag for the toast notifications, facilitating their removal. Additionally, the `AppShellViewModel` has been modified to call this new method when an email is updated and marked as read.

This improvement aims to provide a better user experience by keeping the notification area relevant and up-to-date.

* feat(notification):  Add MailReadStatusChanged event handling

Introduced a new event system for handling email read status changes. This includes the addition of a listener in `NotificationBuilder` that removes notifications when an email is marked as read.

• Added `MailReadStatusChanged` record to represent the event.
• Registered a listener in `NotificationBuilder` to handle notification removal.
• Removed the `OnMailUpdated` method from `AppShellViewModel`, delegating notification management to the new event system.
• Updated `MailService` to send `MailReadStatusChanged` events when emails are marked as read.

This change improves the communication between components and enhances the notification management system.

* refactor: Remove comments

* Little cleanup.

---------

Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2025-07-26 12:51:53 +02:00
Maicol Battistini
c2bb07ff3d feat(preferences): Add email sync interval setting (#710)
* feat(preferences):  Add email sync interval setting

Introduced a new property `EmailSyncIntervalMinutes` in the `IPreferencesService` interface to allow users to configure the email synchronization interval in minutes. This feature enhances user control over email sync behavior.

• Updated `resources.json` to include translations for the new setting.
• Implemented the logic for the new property in `PreferencesService.cs`, with a default value of 3 minutes.
• Added binding and UI support in `AppPreferencesPageViewModel.cs` and `AppPreferencesPage.xaml` to allow users to modify the sync interval.
• Integrated the new setting into `ServerContext.cs` to dynamically adjust the synchronization timer based on user preferences.

This change improves the user experience by providing customizable email synchronization settings.

* Minimum interval and added an icon.

* Proper SetProperty usage.

* Making sure the minimum sync interval is 1 in the ServerContext.

* Making sure the minimum is applied to first trigger of the sync timer.

---------

Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2025-07-24 09:45:35 +02:00
Aleh Khantsevich
8cd7f68c30 fix save imap settings and progress ring. (#704)
Added notification that settings saved.
2025-07-07 19:28:56 +02:00
Aleh Khantsevich
3e889d8c08 Make height of single account navigation item smaller (#702)
* Make height of navigation item 50

* fix subtle and heights

* move spacing and margins

* make 52

* fix wrong heights
2025-07-02 23:41:41 +02:00
Aleh Khantsevich
a01395aed3 fix tab navigation for compose page (#695) 2025-06-21 13:35:42 +02:00
Aleh Khantsevich
7b3459abff Text input should update property on each changem instead of lost focus (#694) 2025-06-21 01:45:21 +02:00
Aleh Khantsevich
9a88f798fc fix animations (#689) 2025-06-21 01:40:45 +02:00
Maicol Battistini
256fd1cce2 feat: Enhanced sender avatars with gravatar and favicons integration (#685)
* feat: Enhanced sender avatars with gravatar and favicons integration

* chore: Remove unused known companies thumbnails

* feat(thumbnail): add IThumbnailService and refactor usage

- Introduced a new interface `IThumbnailService` for handling thumbnail-related functionalities.
- Registered `IThumbnailService` with its implementation `ThumbnailService` in the service container.
- Updated `NotificationBuilder` to use an instance of `IThumbnailService` instead of static methods.
- Refactored `ThumbnailService` from a static class to a regular class with instance methods and variables.
- Modified `ImagePreviewControl` to utilize the new `IThumbnailService` instance.
- Completed integration of `IThumbnailService` in the application by registering it in `App.xaml.cs`.

* style: Show favicons as squares

- Changed `hintCrop` in `NotificationBuilder` to `None` for app logo display.
- Added `FaviconSquircle`, `FaviconImage`, and `isFavicon` to `ImagePreviewControl` for favicon handling.
- Updated `UpdateInformation` method to manage favicon visibility.
- Introduced `GetBitmapImageAsync` for converting Base64 to Bitmap images.
- Enhanced XAML to include `FaviconSquircle` for improved UI appearance.

* refactor thumbnail service

* Removed old code and added clear method

* added prefetch function

* Change key from host to email

* Remove redundant code

* Test event

* Fixed an issue with the thumbnail updated event.

* Fix cutted favicons

* exclude some domain from favicons

* add yandex.ru

* fix buttons in settings

* remove prefetch method

* Added thumbnails propagation to mailRenderingPage

* Revert MailItemViewModel to object

* Remove redundant code

* spaces

* await load parameter added

* fix spaces

* fix case sensativity for mail list thumbnails

* change duckdns to google

* Some cleanup.

---------

Co-authored-by: Aleh Khantsevich <aleh.khantsevich@gmail.com>
Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2025-06-21 01:40:25 +02:00
Burak Kaan Köse
a8cb332232 Type fix. 2025-06-20 14:34:37 +02:00
Victor
89ea2b23a2 Replaced "Dismiss" button in notification popup with "Archive" button (#664)
* replaced "Dismiss" button in notification popup with "Archive" button

fixes https://github.com/bkaankose/Wino-Mail/issues/40

* Fixed incorrect build action for the archive icon.

---------

Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2025-06-15 15:27:39 +02:00
Aleh Khantsevich
9b214a66c8 Added new option to hide action labels in mail rendering page (#683)
* Added option to disable labels for mail actions

* Updated spacings and section title styles in settings

* Added translations
2025-06-15 15:17:57 +02:00
Aleh Khantsevich
4c4689ec8d Flyout styles and settings animations (#682)
* Refactor and enhance settings pages and solution structure

- Added transition effects to multiple pages for enhanced UI animations.
- Moved `AboutPage` and `PersonalizationPage` to settings folder.
- Put version into settings card instead of text.

* Fixed main logo in about page and changed version styles

* revert platforms

* Remove useless imprt

* Apply this animation globally

* Added resize transition for mail rendering page

* remove entrance transition from rendering page
2025-06-15 14:54:03 +02:00
100 changed files with 1664 additions and 1474 deletions

View File

@@ -19,6 +19,7 @@
<PackageVersion Include="CommunityToolkit.Uwp.Extensions" Version="8.2.250402" />
<PackageVersion Include="CommunityToolkit.Uwp.Controls.Primitives" Version="8.2.250129-preview2" />
<PackageVersion Include="EmailValidation" Version="1.3.0" />
<PackageVersion Include="gravatar-dotnet" Version="0.1.3" />
<PackageVersion Include="HtmlAgilityPack" Version="1.12.0" />
<PackageVersion Include="Ical.Net" Version="4.3.1" />
<PackageVersion Include="IsExternalInit" Version="1.0.3" />
@@ -38,6 +39,7 @@
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
<PackageVersion Include="Nito.AsyncEx.Tasks" Version="5.1.2" />
<PackageVersion Include="NodaTime" Version="3.2.2" />
<PackageVersion Include="Sentry.Serilog" Version="5.12.0" />
<PackageVersion Include="Serilog" Version="4.2.0" />
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0" />
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />

View File

@@ -9,11 +9,12 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Diagnostics" />
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="Google.Apis.Auth" />
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="Google.Apis.Auth" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Microsoft.Identity.Client.Broker" />
<PackageReference Include="Microsoft.Identity.Client.Extensions.Msal" />
<PackageReference Include="Microsoft.Identity.Client.Broker" />
<PackageReference Include="Microsoft.Identity.Client.Extensions.Msal" />
<PackageReference Include="Sentry.Serilog" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Wino.Core.Domain\Wino.Core.Domain.csproj" />

View File

@@ -1,308 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35424.110
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Core.Domain", "Wino.Core.Domain\Wino.Core.Domain.csproj", "{814400B6-5A05-4596-B451-3A116A147DC1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Core.UWP", "Wino.Core.UWP\Wino.Core.UWP.csproj", "{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Core.ViewModels", "Wino.Core.ViewModels\Wino.Core.ViewModels.csproj", "{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Messaging", "Wino.Messages\Wino.Messaging.csproj", "{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Server", "Wino.Server\Wino.Server.csproj", "{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Core", "Wino.Core\Wino.Core.csproj", "{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Calendar", "Wino.Calendar\Wino.Calendar.csproj", "{600F4979-DB7E-409D-B7DA-B60BE4C55C35}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.SourceGenerators", "Wino.SourceGenerators\Wino.SourceGenerators.csproj", "{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}"
EndProject
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Wino.Calendar.Packaging", "Wino.Calendar.Packaging\Wino.Calendar.Packaging.wapproj", "{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Calendar.ViewModels", "Wino.Calendar.ViewModels\Wino.Calendar.ViewModels.csproj", "{CF850F8C-5042-4376-9CBA-C8F2BB554083}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Services", "Wino.Services\Wino.Services.csproj", "{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Authentication", "Wino.Authentication\Wino.Authentication.csproj", "{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|ARM.ActiveCfg = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|ARM.Build.0 = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|ARM64.Build.0 = Debug|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|x64.ActiveCfg = Debug|x64
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|x64.Build.0 = Debug|x64
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|x86.ActiveCfg = Debug|x86
{814400B6-5A05-4596-B451-3A116A147DC1}.Debug|x86.Build.0 = Debug|x86
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|Any CPU.Build.0 = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|ARM.ActiveCfg = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|ARM.Build.0 = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|ARM64.ActiveCfg = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|ARM64.Build.0 = Release|Any CPU
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|x64.ActiveCfg = Release|x64
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|x64.Build.0 = Release|x64
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|x86.ActiveCfg = Release|x86
{814400B6-5A05-4596-B451-3A116A147DC1}.Release|x86.Build.0 = Release|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM.ActiveCfg = Debug|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM.Build.0 = Debug|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM64.Build.0 = Debug|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x64.ActiveCfg = Debug|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x64.Build.0 = Debug|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x86.ActiveCfg = Debug|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x86.Build.0 = Debug|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|Any CPU.Build.0 = Release|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM.ActiveCfg = Release|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM.Build.0 = Release|Any CPU
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM64.ActiveCfg = Release|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM64.Build.0 = Release|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x64.ActiveCfg = Release|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x64.Build.0 = Release|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x86.ActiveCfg = Release|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x86.Build.0 = Release|x86
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|ARM.ActiveCfg = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|ARM.Build.0 = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|ARM64.Build.0 = Debug|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|x64.ActiveCfg = Debug|x64
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|x64.Build.0 = Debug|x64
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|x86.ActiveCfg = Debug|x86
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Debug|x86.Build.0 = Debug|x86
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|Any CPU.Build.0 = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|ARM.ActiveCfg = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|ARM.Build.0 = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|ARM64.ActiveCfg = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|ARM64.Build.0 = Release|Any CPU
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|x64.ActiveCfg = Release|x64
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|x64.Build.0 = Release|x64
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|x86.ActiveCfg = Release|x86
{510CD96C-B3FF-4EC9-A67B-845C842E6BEC}.Release|x86.Build.0 = Release|x86
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|ARM.ActiveCfg = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|ARM.Build.0 = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|ARM64.Build.0 = Debug|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|x64.ActiveCfg = Debug|x64
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|x64.Build.0 = Debug|x64
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|x86.ActiveCfg = Debug|x86
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Debug|x86.Build.0 = Debug|x86
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|Any CPU.Build.0 = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|ARM.ActiveCfg = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|ARM.Build.0 = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|ARM64.ActiveCfg = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|ARM64.Build.0 = Release|Any CPU
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|x64.ActiveCfg = Release|x64
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|x64.Build.0 = Release|x64
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|x86.ActiveCfg = Release|x86
{AB588CFD-4B0C-4A1F-B711-1999E3D092D0}.Release|x86.Build.0 = Release|x86
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|Any CPU.ActiveCfg = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|Any CPU.Build.0 = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|ARM.ActiveCfg = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|ARM.Build.0 = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|ARM64.Build.0 = Debug|ARM64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|x64.ActiveCfg = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|x64.Build.0 = Debug|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|x86.ActiveCfg = Debug|x86
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Debug|x86.Build.0 = Debug|x86
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|Any CPU.ActiveCfg = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|Any CPU.Build.0 = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|ARM.ActiveCfg = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|ARM.Build.0 = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|ARM64.ActiveCfg = Release|ARM64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|ARM64.Build.0 = Release|ARM64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|x64.ActiveCfg = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|x64.Build.0 = Release|x64
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|x86.ActiveCfg = Release|x86
{92DA33FC-9252-40C5-BF71-67ACB0B56F2B}.Release|x86.Build.0 = Release|x86
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|ARM.ActiveCfg = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|ARM.Build.0 = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|ARM64.Build.0 = Debug|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|x64.ActiveCfg = Debug|x64
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|x64.Build.0 = Debug|x64
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|x86.ActiveCfg = Debug|x86
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Debug|x86.Build.0 = Debug|x86
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|Any CPU.Build.0 = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|ARM.ActiveCfg = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|ARM.Build.0 = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|ARM64.ActiveCfg = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|ARM64.Build.0 = Release|Any CPU
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|x64.ActiveCfg = Release|x64
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|x64.Build.0 = Release|x64
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|x86.ActiveCfg = Release|x86
{87FFCBF4-DC17-4F09-90D6-102CF4C72BAF}.Release|x86.Build.0 = Release|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|Any CPU.ActiveCfg = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|Any CPU.Build.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|Any CPU.Deploy.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM.ActiveCfg = Debug|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM.Build.0 = Debug|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM.Deploy.0 = Debug|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.ActiveCfg = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.Build.0 = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.Deploy.0 = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.ActiveCfg = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.Build.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.Deploy.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.ActiveCfg = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.Build.0 = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.Deploy.0 = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|Any CPU.ActiveCfg = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|Any CPU.Build.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|Any CPU.Deploy.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM.ActiveCfg = Release|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM.Build.0 = Release|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM.Deploy.0 = Release|ARM
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.ActiveCfg = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.Build.0 = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.Deploy.0 = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.ActiveCfg = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.Build.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.Deploy.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.ActiveCfg = Release|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.Build.0 = Release|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.Deploy.0 = Release|x86
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|ARM.Build.0 = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|ARM64.Build.0 = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|x64.ActiveCfg = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|x64.Build.0 = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Debug|x86.Build.0 = Debug|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|Any CPU.Build.0 = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|ARM.ActiveCfg = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|ARM.Build.0 = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|ARM64.ActiveCfg = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|ARM64.Build.0 = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|x64.ActiveCfg = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|x64.Build.0 = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|x86.ActiveCfg = Release|Any CPU
{8A7EB697-D722-4E0F-B20E-9FC88373ADB5}.Release|x86.Build.0 = Release|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM.ActiveCfg = Debug|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM.Build.0 = Debug|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM.Deploy.0 = Debug|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.Build.0 = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.Deploy.0 = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.ActiveCfg = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.Build.0 = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.Deploy.0 = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.ActiveCfg = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.Build.0 = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.Deploy.0 = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|Any CPU.Build.0 = Release|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|Any CPU.Deploy.0 = Release|Any CPU
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM.ActiveCfg = Release|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM.Build.0 = Release|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM.Deploy.0 = Release|ARM
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.ActiveCfg = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.Build.0 = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.Deploy.0 = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.ActiveCfg = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.Build.0 = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.Deploy.0 = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.ActiveCfg = Release|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.Build.0 = Release|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.Deploy.0 = Release|x86
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|ARM.ActiveCfg = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|ARM.Build.0 = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|ARM64.Build.0 = Debug|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|x64.ActiveCfg = Debug|x64
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|x64.Build.0 = Debug|x64
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|x86.ActiveCfg = Debug|x86
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Debug|x86.Build.0 = Debug|x86
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|Any CPU.Build.0 = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|ARM.ActiveCfg = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|ARM.Build.0 = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|ARM64.ActiveCfg = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|ARM64.Build.0 = Release|Any CPU
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|x64.ActiveCfg = Release|x64
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|x64.Build.0 = Release|x64
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|x86.ActiveCfg = Release|x86
{CF850F8C-5042-4376-9CBA-C8F2BB554083}.Release|x86.Build.0 = Release|x86
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|ARM.ActiveCfg = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|ARM.Build.0 = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|ARM64.Build.0 = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|x64.ActiveCfg = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|x64.Build.0 = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|x86.ActiveCfg = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Debug|x86.Build.0 = Debug|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|Any CPU.Build.0 = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|ARM.ActiveCfg = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|ARM.Build.0 = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|ARM64.ActiveCfg = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|ARM64.Build.0 = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|x64.ActiveCfg = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|x64.Build.0 = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|x86.ActiveCfg = Release|Any CPU
{BBA49030-7277-48CF-B2FE-3D01CB6B6C81}.Release|x86.Build.0 = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|ARM.ActiveCfg = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|ARM.Build.0 = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|ARM64.Build.0 = Debug|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|x64.ActiveCfg = Debug|x64
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|x64.Build.0 = Debug|x64
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|x86.ActiveCfg = Debug|x86
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Debug|x86.Build.0 = Debug|x86
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|Any CPU.Build.0 = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|ARM.ActiveCfg = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|ARM.Build.0 = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|ARM64.ActiveCfg = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|ARM64.Build.0 = Release|Any CPU
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|x64.ActiveCfg = Release|x64
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|x64.Build.0 = Release|x64
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|x86.ActiveCfg = Release|x86
{16A979C2-F308-464F-9B2A-0AF8ED5EDB43}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,14 @@
using System;
using SQLite;
namespace Wino.Core.Domain.Entities.Shared;
public class Thumbnail
{
[PrimaryKey]
public string Domain { get; set; }
public string Gravatar { get; set; }
public string Favicon { get; set; }
public DateTime LastUpdated { get; set; }
}

View File

@@ -170,4 +170,5 @@ public interface IAccountService
/// <param name="accountId">Account id.</param>
/// <returns>Whether the notifications should be created after sync or not.</returns>
Task<bool> IsNotificationsEnabled(Guid accountId);
Task UpdateAccountCustomServerInformationAsync(CustomServerInformation customServerInformation);
}

View File

@@ -27,5 +27,5 @@ public interface IApplicationConfiguration
/// <summary>
/// Application insights instrumentation key.
/// </summary>
string ApplicationInsightsInstrumentationKey { get; }
string SentryDNS { get; }
}

View File

@@ -22,4 +22,9 @@ public interface INotificationBuilder
/// Creates test notification for test purposes.
/// </summary>
Task CreateTestNotificationAsync(string title, string message);
/// <summary>
/// Removes the toast notification for a specific mail by unique id.
/// </summary>
void RemoveNotification(Guid mailUniqueId);
}

View File

@@ -1,11 +1,12 @@
using System;
using System.ComponentModel;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Calendar;
using Wino.Core.Domain.Models.Reader;
namespace Wino.Core.Domain.Interfaces;
public interface IPreferencesService
public interface IPreferencesService: INotifyPropertyChanged
{
/// <summary>
/// When any of the preferences are changed.
@@ -50,6 +51,12 @@ public interface IPreferencesService
/// Local search will still offer online search at the end of local search results.
/// </summary>
SearchMode DefaultSearchMode { get; set; }
/// <summary>
/// Setting: Interval in minutes for background email synchronization.
/// </summary>
int EmailSyncIntervalMinutes { get; set; }
#endregion
#region Mail
@@ -188,6 +195,21 @@ public interface IPreferencesService
/// </summary>
bool IsMailListActionBarEnabled { get; set; }
/// <summary>
/// Setting: Whether the mail rendering page will show the action labels
/// </summary>
bool IsShowActionLabelsEnabled { get; set; }
/// <summary>
/// Setting: Enable/disable Gravatar for sender avatars.
/// </summary>
bool IsGravatarEnabled { get; set; }
/// <summary>
/// Setting: Enable/disable Favicon for sender avatars.
/// </summary>
bool IsFaviconEnabled { get; set; }
#endregion
#region Calendar

View File

@@ -0,0 +1,20 @@
using System.Threading.Tasks;
namespace Wino.Core.Domain.Interfaces;
public interface IThumbnailService
{
/// <summary>
/// Clears the thumbnail cache.
/// </summary>
Task ClearCache();
/// <summary>
/// Gets thumbnail
/// </summary>
/// <param name="email">Address for thumbnail</param>
/// <param name="awaitLoad">Force to wait for thumbnail loading.
/// Should be used in non-UI threads or where delay is acceptable
/// </param>
ValueTask<string> GetThumbnailAsync(string email, bool awaitLoad = false);
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Тип на акаунта",
"IMAPSetupDialog_ValidationSuccess_Title": "Успешно",
"IMAPSetupDialog_ValidationSuccess_Message": "Успешно валидиране",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Неуспешно валидиране на IMAP сървъра.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Този сървър изисква установяване на защитена SSL връзка, за да продължи. Моля, потвърдете данните за сертификата по-долу.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Разрешете защитената връзка, за да продължите да настройвате акаунта си.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Потребителска тема",
"SettingsDeleteAccount_Description": "Изтриване на всички имейли и идентификационни данни, свързани с този акаунт.",
"SettingsDeleteAccount_Title": "Изтриване на този акаунт",
"SettingsDeleteProtection_Description": "Трябва ли Wino да ви пита за потвърждение всеки път, когато се опитвате да изтриете окончателно имейл с клавишите Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Защита от окончателно изтриване",
"SettingsDiagnostics_Description": "За разработчици",
"SettingsDiagnostics_DiagnosticId_Description": "Споделете този идентификационен номер с разработчиците, когато ви помолят, за да получите помощ за проблемите, с които се сблъсквате в Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Показване визуализация на текста",
"SettingsShowSenderPictures_Description": "Скриване/показване на миниатюрите на снимките на изпращача.",
"SettingsShowSenderPictures_Title": "Показване на аватарите на подателите",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Добавяне на подпис",
"SettingsSignature_AddCustomSignature_Title": "Добавяне на персонализиран подпис",
"SettingsSignature_DeleteSignature_Title": "Изтриване на подписа",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Групиране в разговори",
"SettingsUnlinkAccounts_Description": "Премахване на връзката между акаунтите. Това няма да доведе до изтриване на акаунтите ви.",
"SettingsUnlinkAccounts_Title": "Премахване на връзката между акаунтите",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Наистина ли искате да изтриете подписа „{0}“?",
"SignatureDeleteDialog_Title": "Изтриване на подписа",
"SignatureEditorDialog_SignatureName_Placeholder": "Име на вашия подпис",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino предлага 3 безплатни акаунта за начало. Ако имате нужда от повече от 3 акаунта, моля, надстройте",
"WinoUpgradeMessage": "Надграждане до неограничен брой акаунти",
"WinoUpgradeRemainingAccountsMessage": "Използвани са {0} от {1} безплатни акаунта.",
"Yesterday": "Вчера"
"Yesterday": "Вчера",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Typ účtu",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Vlastní motiv",
"SettingsDeleteAccount_Description": "Odstranit všechny e-maily a přihlašovací údaje spojené s tímto účtem.",
"SettingsDeleteAccount_Title": "Smazat tento účet",
"SettingsDeleteProtection_Description": "Měl by vás Wino požádat o potvrzení pokaždé, když se pokoušíte trvale smazat e-mail pomocí kláves Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Ochrana proti trvalému smazání",
"SettingsDiagnostics_Description": "Pro vývojáře",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Zobrazit náhled textu",
"SettingsShowSenderPictures_Description": "Skrýt/zobrazit náhled obrázku odesílatele.",
"SettingsShowSenderPictures_Title": "Zobrazit avatary odesílatele",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Vlákna konverzací",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Rozpojit účty",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino nabízí 3 účty zdarma. Pokud potřebujete více než 3 účty, upgradujte prosím.",
"WinoUpgradeMessage": "Přejít na neomezený počet účtů",
"WinoUpgradeRemainingAccountsMessage": "{0} z {1} použitých bezplatných účtů.",
"Yesterday": "Včera"
"Yesterday": "Včera",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Kontotyp",
"IMAPSetupDialog_ValidationSuccess_Title": "Erfolgreich",
"IMAPSetupDialog_ValidationSuccess_Message": "Validierung erfolgreich",
"IMAPSetupDialog_SaveImapSuccess_Title": "Erfolg",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP-Einstellungen erfolgreich gespeichert.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP-Server-Validierung fehlgeschlagen.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Dieser Server fordert einen SSL-Handshake an, um fortzufahren. Bitte bestätigen Sie die Details des Zertifikats unten.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Erlaube dem Handshake, die Einrichtung deines Kontos fortzusetzen.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Vorschautext anzeigen",
"SettingsShowSenderPictures_Description": "Absender-Profilbilder ausblenden/anzeigen.",
"SettingsShowSenderPictures_Title": "Absender-Profilbilder anzeigen",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Gravatar (falls verfügbar) als Absenderbild verwenden",
"SettingsEnableFavicons_Title": "Domain-Icons (Favicons)",
"SettingsEnableFavicons_Description": "Domain-Favicons (falls verfügbar) als Absenderbild verwenden",
"SettingsMailList_ClearAvatarsCache_Button": "Lösche Avatare im Cache",
"SettingsSignature_AddCustomSignature_Button": "Signatur hinzufügen",
"SettingsSignature_AddCustomSignature_Title": "Eigene Signatur hinzufügen",
"SettingsSignature_DeleteSignature_Title": "Signatur löschen",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Unterhaltungsthreading",
"SettingsUnlinkAccounts_Description": "Entfernen Sie den Link zwischen den Konten. Dies wird Ihre Konten nicht löschen.",
"SettingsUnlinkAccounts_Title": "Konten trennen",
"SettingsMailRendering_ActionLabels_Title": "Aktions-Labels",
"SettingsMailRendering_ActionLabels_Description": "Zeige Aktions-Labels.",
"SignatureDeleteDialog_Message": "Wollen Sie Signatur \"{0}\" wirklich löschen?",
"SignatureDeleteDialog_Title": "Signatur löschen",
"SignatureEditorDialog_SignatureName_Placeholder": "Fügen Sie Ihre Signatur ein",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino bietet 3 Accounts zum kostenlosen Start an. Wenn Sie mehr als 3 Accounts benötigen, upgraden Sie bitte.",
"WinoUpgradeMessage": "Auf unbegrenzte Konten upgraden",
"WinoUpgradeRemainingAccountsMessage": "{0} von {1} kostenlosen Konten verwendet.",
"Yesterday": "Gestern"
"Yesterday": "Gestern",
"SettingsAppPreferences_EmailSyncInterval_Title": "Intervall für E-Mail-Synchronisierung",
"SettingsAppPreferences_EmailSyncInterval_Description": "Intervall für die automatisches E-Mail-Synchronisierung (Minuten). Diese Einstellung wird erst nach einem Neustart von Wino Mail angewendet."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Τύπος λογαριασμού",
"IMAPSetupDialog_ValidationSuccess_Title": "Επιτυχία",
"IMAPSetupDialog_ValidationSuccess_Message": "Επιτυχής επικύρωση",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Αποτυχία επικύρωσης διακομιστή IMAP.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Αυτός ο διακομιστής ζητά μια χειραψία SSL για να συνεχίσει. Παρακαλώ επιβεβαιώστε τις λεπτομέρειες του πιστοποιητικού παρακάτω.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Επιτρέψτε στην χειραψία να συνεχίσει τη ρύθμιση του λογαριασμού σας.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Προσαρμοσμένο Θέμα",
"SettingsDeleteAccount_Description": "Διαγραφή όλων των e-mails και διαπιστευτηρίων που σχετίζονται με αυτόν τον λογαριασμό.",
"SettingsDeleteAccount_Title": "Διαγραφή αυτού του λογαριασμού",
"SettingsDeleteProtection_Description": "Πρέπει να Wino ζητήσει την επιβεβαίωση κάθε φορά που προσπαθείτε να διαγράψετε μόνιμα ένα μήνυμα χρησιμοποιώντας το Shift + Del;",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Προστασία Μόνιμης Διαγραφής",
"SettingsDiagnostics_Description": "Για προγραμματιστές",
"SettingsDiagnostics_DiagnosticId_Description": "Μοιραστείτε αυτό το ID με τους προγραμματιστές όταν σας ζητηθεί να λάβετε βοήθεια για τα θέματα που αντιμετωπίζετε στο Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Εμφάνιση Κειμένου Προεπισκόπησης",
"SettingsShowSenderPictures_Description": "Απόκρυψη/εμφάνιση της μικρογραφίας του αποστολέα.",
"SettingsShowSenderPictures_Title": "Εμφάνιση Avatars Αποστολέα",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Προσθήκη υπογραφής",
"SettingsSignature_AddCustomSignature_Title": "Προσθήκη προσαρμοσμένης υπογραφής",
"SettingsSignature_DeleteSignature_Title": "Διαγραφή υπογραφής",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Νηματοποίηση Συζήτησης",
"SettingsUnlinkAccounts_Description": "Αφαιρέστε τη σύνδεση μεταξύ των λογαριασμών. Δε θα διαγράψει τους λογαριασμούς σας.",
"SettingsUnlinkAccounts_Title": "Αποδέσμευση Λογαριασμών",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Σίγουρα θέλετε να διαγράψετε την υπογραφή \"{0}\";",
"SignatureDeleteDialog_Title": "Διαγραφή υπογραφής",
"SignatureEditorDialog_SignatureName_Placeholder": "Ονομάστε την υπογραφή σας",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Το Wino προσφέρει 3 λογαριασμούς για να ξεκινήσετε δωρεάν. Εάν χρειάζεστε περισσότερους από 3, παρακαλώ αναβαθμίστε",
"WinoUpgradeMessage": "Αναβάθμιση σε Απεριόριστους Λογαριασμούς",
"WinoUpgradeRemainingAccountsMessage": "Χρησιμοποιούνται {0} από τους {1} δωρεάν λογαριασμούς.",
"Yesterday": "Χθες"
"Yesterday": "Χθες",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Tipo de cuenta",
"IMAPSetupDialog_ValidationSuccess_Title": "Correcto",
"IMAPSetupDialog_ValidationSuccess_Message": "Validación correcta",
"IMAPSetupDialog_SaveImapSuccess_Title": "Correcto",
"IMAPSetupDialog_SaveImapSuccess_Message": "Ajustes IMAP guardados con éxito.",
"IMAPSetupDialog_ValidationFailed_Title": "La validación del servidor IMAP falló.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "El servidor requiere un protocolo de enlace SSL para continuar. Confirma los detalles del certificado a continuación.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Permite el protocolo de enlace para continuar configurando tu cuenta.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Mostrar texto de vista previa",
"SettingsShowSenderPictures_Description": "Ocultar/mostrar imágenes del remitente en miniatura.",
"SettingsShowSenderPictures_Title": "Mostrar Avatares de Remitente",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Usar gravatar (si está disponible) como imagen del remitente",
"SettingsEnableFavicons_Title": "Iconos de dominio (Faviconos)",
"SettingsEnableFavicons_Description": "Usar favicons de dominio (si está disponible) como imagen del remitente",
"SettingsMailList_ClearAvatarsCache_Button": "Limpiar avatares en caché",
"SettingsSignature_AddCustomSignature_Button": "Añadir firma",
"SettingsSignature_AddCustomSignature_Title": "Añadir firma personalizada",
"SettingsSignature_DeleteSignature_Title": "Eliminar firma",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Hilos de conversación",
"SettingsUnlinkAccounts_Description": "Eliminar el enlace entre cuentas. No eliminará sus cuentas.",
"SettingsUnlinkAccounts_Title": "Desvincular Cuentas",
"SettingsMailRendering_ActionLabels_Title": "Etiquetas de acción",
"SettingsMailRendering_ActionLabels_Description": "Mostrar etiquetas de acción.",
"SignatureDeleteDialog_Message": "¿Seguro que quieres eliminar la firma \"{0}\"?",
"SignatureDeleteDialog_Title": "Eliminar firma",
"SignatureEditorDialog_SignatureName_Placeholder": "Ponle un nombre a tu firma",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino ofrece 3 cuentas para empezar gratis. Si necesitas más de 3 cuentas por favor actualiza",
"WinoUpgradeMessage": "Actualizar a Cuentas Ilimitadas",
"WinoUpgradeRemainingAccountsMessage": "{0} de {1} cuentas gratuitas usadas.",
"Yesterday": "Ayer"
"Yesterday": "Ayer",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Type de compte",
"IMAPSetupDialog_ValidationSuccess_Title": "Opération réussie",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation réussie",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Échec de la validation du serveur IMAP.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Ce serveur demande une liaison SSL pour continuer. Veuillez confirmer les détails du certificat ci-dessous.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Autorisez la négociation SSL à continuer à configurer votre compte.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Thème personnalisé",
"SettingsDeleteAccount_Description": "Supprimer tous les e-mails et identifiants associés à ce compte.",
"SettingsDeleteAccount_Title": "Supprimer ce compte",
"SettingsDeleteProtection_Description": "Wino devrait-il vous demander une confirmation chaque fois que vous essayez de supprimer définitivement un mail en utilisant les touches Maj + Suppr ?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Protection contre la suppression permanente",
"SettingsDiagnostics_Description": "Pour les développeurs",
"SettingsDiagnostics_DiagnosticId_Description": "Partagez cet identifiant avec les développeurs lorsqu'ils vous aideront à résoudre les problèmes que vous rencontrez dans Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Afficher l'aperçu du texte",
"SettingsShowSenderPictures_Description": "Masquer/afficher les vignettes des images de l'expéditeur.",
"SettingsShowSenderPictures_Title": "Afficher l'avatar de l'expéditeur",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Ajouter une signature",
"SettingsSignature_AddCustomSignature_Title": "Ajouter une signature personnalisée",
"SettingsSignature_DeleteSignature_Title": "Supprimer la signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Affichage en mode conversation",
"SettingsUnlinkAccounts_Description": "Supprimer le lien entre les comptes. Cela ne supprimera pas vos comptes.",
"SettingsUnlinkAccounts_Title": "Dissocier les comptes",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Êtes-vous sûr de vouloir supprimer la signature « {0} » ?",
"SignatureDeleteDialog_Title": "Supprimer la signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Nom de la signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offre 3 comptes gratuits pour commencer. Si vous avez besoin de plus de 3 comptes, veuillez passer à la version supérieure",
"WinoUpgradeMessage": "Mettre à niveau vers des comptes illimités",
"WinoUpgradeRemainingAccountsMessage": "{0} comptes gratuits utilisés sur {1}.",
"Yesterday": "Hier"
"Yesterday": "Hier",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Tipo de conta",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Jenis akun",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Peladen ini meminta pertukaran SSL untuk melanjutkan. Mohon pastikan rincian sertifikat di bawah ini.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Izinkan pertukaran untuk melanjutkan mengatur akun Anda.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Tema Khusus",
"SettingsDeleteAccount_Description": "Hapus semua surel dan informasi tentang akun ini.",
"SettingsDeleteAccount_Title": "Hapus akun ini",
"SettingsDeleteProtection_Description": "Haruskan Wino meminta persetujuan Anda setiap kali Anda menghapus permanen surel dengan tombol Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Perlindungan Hapus Permanen",
"SettingsDiagnostics_Description": "Untuk pengembang",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Tampilkan Teks Pratinjau",
"SettingsShowSenderPictures_Description": "Sembunyikan/tampilkan foto pengirim.",
"SettingsShowSenderPictures_Title": "Tampilkan Foto Pengirim",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Tambah tanda tangan",
"SettingsSignature_AddCustomSignature_Title": "Tambahkan tanda tangan khusus",
"SettingsSignature_DeleteSignature_Title": "Hapus tanda tangan",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Utas Percakapan",
"SettingsUnlinkAccounts_Description": "Hapus tautan antara akun. Ini tidak akan menghapus akun Anda.",
"SettingsUnlinkAccounts_Title": "Lepaskan Tautan Akun",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Apakah Anda yakin ingin menghapus tanda tangan \"{0}\"?",
"SignatureDeleteDialog_Title": "Hapus tanda tangan",
"SignatureEditorDialog_SignatureName_Placeholder": "Beri nama tanda tangan",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino menawarkan 3 akun secara gratis. Jika Anda membutuhkan lebih dari 3 akun, mohon tingkatkan.",
"WinoUpgradeMessage": "Tingkatkan ke Akun Tak Terbatas",
"WinoUpgradeRemainingAccountsMessage": "{0} dari {1} akun gratis digunakan.",
"Yesterday": "Kemarin"
"Yesterday": "Kemarin",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Tipo di account",
"IMAPSetupDialog_ValidationSuccess_Title": "Riuscito",
"IMAPSetupDialog_ValidationSuccess_Message": "Convalida riuscita",
"IMAPSetupDialog_SaveImapSuccess_Title": "Riuscito",
"IMAPSetupDialog_SaveImapSuccess_Message": "Impostazioni IMAP salvate correttamente.",
"IMAPSetupDialog_ValidationFailed_Title": "Convalida server IMAP non riuscita.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Questo server richiede un handshake SSL per continuare. Confermare i dettagli del certificato qui sotto.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Permetti all'handshake di continuare a configurare il tuo account.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Mostra testo di anteprima",
"SettingsShowSenderPictures_Description": "Mostra/nascondi le miniature delle immagini del mittente.",
"SettingsShowSenderPictures_Title": "Mostra avatar mittente",
"SettingsEnableGravatarAvatars_Title": "Personificatore",
"SettingsEnableGravatarAvatars_Description": "Usa il personificatore (se disponibile) come immagine del mittente",
"SettingsEnableFavicons_Title": "Icone del dominio (Favicons)",
"SettingsEnableFavicons_Description": "Usa le icone di dominio (se disponibili) come immagine del mittente",
"SettingsMailList_ClearAvatarsCache_Button": "Cancella personificatori nella cache",
"SettingsSignature_AddCustomSignature_Button": "Aggiungi firma",
"SettingsSignature_AddCustomSignature_Title": "Aggiungi firma personalizzata",
"SettingsSignature_DeleteSignature_Title": "Elimina firma",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Raggruppamento conversazioni",
"SettingsUnlinkAccounts_Description": "Rimuovi il collegamento tra gli account. Questo non eliminerà i tuoi account.",
"SettingsUnlinkAccounts_Title": "Scollega account",
"SettingsMailRendering_ActionLabels_Title": "Etichette azioni",
"SettingsMailRendering_ActionLabels_Description": "Mostra le etichette delle azioni.",
"SignatureDeleteDialog_Message": "Sei sicuro di voler eliminare la firma \"{0}\"?",
"SignatureDeleteDialog_Title": "Elimina firma",
"SignatureEditorDialog_SignatureName_Placeholder": "Nomina la tua firma",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offre 3 account per iniziare gratuitamente. Se hai bisogno di più di 3 account, per favore aggiorna",
"WinoUpgradeMessage": "Aggiorna ad account illimitati",
"WinoUpgradeRemainingAccountsMessage": "{0} di {1} account gratuiti usati.",
"Yesterday": "Ieri"
"Yesterday": "Ieri",
"SettingsAppPreferences_EmailSyncInterval_Title": "Intervallo sincronizzazione e-mail",
"SettingsAppPreferences_EmailSyncInterval_Description": "Intervallo di sincronizzazione automatica delle e-mail (minuti). Questa impostazione sarà applicata solo dopo il riavvio di Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Account type",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Custom Theme",
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
"SettingsDeleteAccount_Title": "Delete this account",
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
"SettingsDiagnostics_Description": "For developers",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -1,50 +1,50 @@
{
"AccountAlias_Column_Alias": "Alias",
"AccountAlias_Column_IsPrimaryAlias": "Primair",
"AccountAlias_Column_Verified": "Geverifiëerd",
"AccountAlias_Disclaimer_FirstLine": "Wino can only import aliases for your Gmail accounts.",
"AccountAlias_Disclaimer_SecondLine": "If you want to use aliases for your Outlook or IMAP account, please add them yourself.",
"AccountCacheReset_Title": "Account Cache Reset",
"AccountCacheReset_Message": "This account requires full re-sychronization to continue working. Please wait while Wino re-synchronizes your messages...",
"AccountContactNameYou": "You",
"AccountCreationDialog_Completed": "alles gedaan",
"AccountCreationDialog_FetchingEvents": "Agenda gebeurtenissen ophalen.",
"AccountCreationDialog_FetchingProfileInformation": "Profieldetails ophalen.",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row0": "Als uw browser niet automatisch opstart om de authenticatie te voltooien:",
"AccountAlias_Column_Verified": "Geverifieerd",
"AccountAlias_Disclaimer_FirstLine": "Wino kan alleen aliassen voor uw Gmail accounts importeren.",
"AccountAlias_Disclaimer_SecondLine": "Als u aliassen wilt gebruiken voor uw Outlook of IMAP-account, voeg deze dan zelf toe.",
"AccountCacheReset_Title": "Account cache gereset",
"AccountCacheReset_Message": "Dit account moet opnieuw gesynchroniseerd worden om te blijven werken. Wacht totdat Wino uw berichten opnieuw heeft gesynchroniseerd...",
"AccountContactNameYou": "U",
"AccountCreationDialog_Completed": "Alles is gereed",
"AccountCreationDialog_FetchingEvents": "Agenda gebeurtenissen aan het ophalen.",
"AccountCreationDialog_FetchingProfileInformation": "Profielgegevens aan het ophalen.",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row0": "Indien uw browser niet automatisch opstart om de authenticatie te voltooien:",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row1": "1) Klik op de knop hieronder om het authenticatie-adres te kopiëren",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row2": "2) Start uw webbrowser op (Edge, Chrome, Firefox enz...)",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row3": "3) Plak het gekopieerde adres en ga naar de website om de authenticatie manueel te voltooien.",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row2": "2) Start uw webbrowser op (Edge, Chrome, Firefox, etc.)",
"AccountCreationDialog_GoogleAuthHelpClipboardText_Row3": "3) Plak het gekopieerde adres en ga naar de website om de authenticatie handmatig te voltooien.",
"AccountCreationDialog_Initializing": "Bezig met initialiseren",
"AccountCreationDialog_PreparingFolders": "Op dit moment krijgen we informatie over mappen.",
"AccountCreationDialog_PreparingFolders": "Map gegevens worden momenteel ontvangen.",
"AccountCreationDialog_SigninIn": "Accountinformatie wordt opgeslagen.",
"AccountEditDialog_Message": "Accountnaam",
"AccountEditDialog_Title": "Bewerk account",
"AccountEditDialog_Title": "Account bewerken",
"AccountPickerDialog_Title": "Kies een account",
"AccountSettingsDialog_AccountName": "Weergavenaam van afzender",
"AccountSettingsDialog_AccountNamePlaceholder": "bijv. Jan Smit",
"AccountDetailsPage_Title": "Account info",
"AccountDetailsPage_Description": "Change the name of the account in Wino and set desired sender name.",
"AccountDetailsPage_ColorPicker_Title": "Account color",
"AccountDetailsPage_ColorPicker_Description": "Wijs een nieuwe account kleur toe om het bijbehorende symbool in de lijst te kleuren.",
"AccountSettingsDialog_AccountNamePlaceholder": "Bijv. Jan Smit",
"AccountDetailsPage_Title": "Accountinformatie",
"AccountDetailsPage_Description": "Wijzig de accountnaam in Wino en stel de gewenste naam van de afzender in.",
"AccountDetailsPage_ColorPicker_Title": "Account kleur",
"AccountDetailsPage_ColorPicker_Description": "Wijs een nieuwe account kleur toe om het bijbehorende symbool in de lijst in te kleuren.",
"AddHyperlink": "Toevoegen",
"AppCloseBackgroundSynchronizationWarningTitle": "Achtergrond synchronisatie",
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Applicatie is niet ingesteld om te starten bij het opstarten van Windows.",
"AppCloseBackgroundSynchronizationWarningTitle": "Achtergrondsynchronisatie",
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Applicatie is niet ingesteld om te laden bij het opstarten van Windows.",
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "Hierdoor mist u meldingen wanneer u uw computer herstart.",
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Wilt u naar de instellingen gaan om het aan te zetten?",
"AppCloseTerminateBehaviorWarningMessageFirstLine": "U beëindigt Wino-Mail en uw app sluit gedrag is ingesteld op 'Beëindig'.",
"AppCloseTerminateBehaviorWarningMessageSecondLine": "Dit zal alle achtergrond synchronisatie en meldingen stoppen.",
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Wilt u naar de instellingen gaan om Wino-Mail uit te voeren naar geminimaliseerd of op de achtergrond?",
"AutoDiscoveryProgressMessage": "Zoeken naar mailinstellingen...",
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Wilt u naar de instellingen gaan om het in te schakelen?",
"AppCloseTerminateBehaviorWarningMessageFirstLine": "U beëindigt hiermee Wino Mail en het sluiten van uw app is ingesteld op 'Beëindigen'.",
"AppCloseTerminateBehaviorWarningMessageSecondLine": "Dit zal alle achtergrondsynchronisaties en meldingen stoppen.",
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Wilt u naar de instellingen gaan om Wino Mail geminimaliseerd of op de achtergrond uit te voeren?",
"AutoDiscoveryProgressMessage": "Bezig met zoeken naar mailinstellingen...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Geavanceerde configuratie",
"BasicIMAPSetupDialog_CredentialLocalMessage": "Uw inloggegevens worden alleen lokaal opgeslagen op uw computer.",
"BasicIMAPSetupDialog_CredentialLocalMessage": "Uw inloggegevens worden alleen lokaal op uw computer opgeslagen.",
"BasicIMAPSetupDialog_Description": "Sommige accounts vereisen aanvullende stappen om in te loggen",
"BasicIMAPSetupDialog_DisplayName": "Weergavenaam",
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "bijv. Jan Smit",
"BasicIMAPSetupDialog_LearnMore": "Lees meer",
"BasicIMAPSetupDialog_MailAddress": "E-mailadres",
"BasicIMAPSetupDialog_MailAddressPlaceholder": "fritsbarend@voorbeeld.nl",
"BasicIMAPSetupDialog_MailAddressPlaceholder": "jansmit@voorbeeld.nl",
"BasicIMAPSetupDialog_Password": "Wachtwoord",
"BasicIMAPSetupDialog_Title": "IMAP account",
"BasicIMAPSetupDialog_Title": "IMAP-account",
"Busy": "Bezig",
"Buttons_AddAccount": "Account toevoegen",
"Buttons_AddNewAlias": "Alias toevoegen",
@@ -63,7 +63,7 @@
"Buttons_EnableImageRendering": "Inschakelen",
"Buttons_Multiselect": "Meerdere selecteren",
"Buttons_No": "Nee",
"Buttons_Open": "Open",
"Buttons_Open": "Openen",
"Buttons_Purchase": "Aanschaffen",
"Buttons_RateWino": "Wino beoordelen",
"Buttons_Reset": "Herstellen",
@@ -76,16 +76,16 @@
"Buttons_SyncAliases": "Aliassen synchroniseren",
"Buttons_TryAgain": "Probeer opnieuw",
"Buttons_Yes": "Ja",
"CalendarAllDayEventSummary": "gebeurtenissen die de hele dag duren",
"CalendarDisplayOptions_Color": "Color",
"CalendarDisplayOptions_Expand": "Expand",
"CalendarItem_DetailsPopup_JoinOnline": "Join online",
"CalendarItem_DetailsPopup_ViewEventButton": "View event",
"CalendarItem_DetailsPopup_ViewSeriesButton": "View series",
"CalendarItemAllDay": "de hele dag",
"CalendarAllDayEventSummary": "Gebeurtenissen die de hele dag duren",
"CalendarDisplayOptions_Color": "Kleur",
"CalendarDisplayOptions_Expand": "Uitklappen",
"CalendarItem_DetailsPopup_JoinOnline": "Online aanmelden",
"CalendarItem_DetailsPopup_ViewEventButton": "Gebeurtenis weergeven",
"CalendarItem_DetailsPopup_ViewSeriesButton": "Series weergeven",
"CalendarItemAllDay": "Gehele dag",
"CategoriesFolderNameOverride": "Categorieën",
"Center": "Centreren",
"ClipboardTextCopied_Message": "{0} naar het klembord gekopieerd.",
"ClipboardTextCopied_Message": "{0} is naar het klembord gekopieerd.",
"ClipboardTextCopied_Title": "Gekopieerd",
"ClipboardTextCopyFailed_Message": "Kopiëren van {0} naar het klembord mislukt.",
"ComingSoon": "Binnenkort beschikbaar...",
@@ -95,69 +95,69 @@
"ComposerImagesDropZone_Message": "Sleep afbeeldingen hier naartoe",
"ComposerSubject": "Onderwerp: ",
"ComposerTo": "Aan: ",
"ComposerToPlaceholder": "klik op enter om adressen in te voeren",
"ComposerToPlaceholder": "Tik op Enter om adressen in te voeren",
"CreateAccountAliasDialog_AliasAddress": "Adres",
"CreateAccountAliasDialog_AliasAddressPlaceholder": "bijv. ondersteuning@example.nl",
"CreateAccountAliasDialog_Description": "Make sure your outgoing server allows sending mails from this alias.",
"CreateAccountAliasDialog_AliasAddressPlaceholder": "bijv. ondersteuning@mijndomein.nl",
"CreateAccountAliasDialog_Description": "Verifieer dat uw uitgaande server het verzenden van e-mails vanaf deze alias toestaat.",
"CreateAccountAliasDialog_ReplyToAddress": "Antwoordadres",
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "admin@example.nl",
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "admin@mijndomein.nl",
"CreateAccountAliasDialog_Title": "Account alias aanmaken",
"CustomThemeBuilder_AccentColorDescription": "Stel aan aangepaste accentkleur in. Maak geen keuze om de Windows-accentkleur te gebruiken.",
"CustomThemeBuilder_AccentColorDescription": "Stel een aangepaste accentkleur in. Als u geen kleur selecteert dan zal de Windows accentkleur gebruikt worden.",
"CustomThemeBuilder_AccentColorTitle": "Accentkleur",
"CustomThemeBuilder_PickColor": "Kies",
"CustomThemeBuilder_ThemeNameDescription": "Unieke naam voor uw aangepaste thema.",
"CustomThemeBuilder_ThemeNameTitle": "Themanaam",
"CustomThemeBuilder_Title": "Aangepaste Thema Bouwer",
"CustomThemeBuilder_Title": "Aangepaste Thema Maker",
"CustomThemeBuilder_WallpaperDescription": "Stel een eigen achtergrond in voor Wino",
"CustomThemeBuilder_WallpaperTitle": "Aangepaste achtergrond instellen",
"Dialog_DontAskAgain": "Niet opnieuw vragen",
"DialogMessage_AccountLimitMessage": "U hebt de limiet voor het aanmaken van accounts bereikt.\nWilt u de 'Onbeperkt aantal accounts' add-on kopen om door te gaan?",
"DialogMessage_AccountLimitTitle": "Limiet accounts bereikt",
"DialogMessage_AliasCreatedMessage": "Nieuw alias is succesvol aangemaakt.",
"DialogMessage_AccountLimitMessage": "U hebt de limiet bereikt voor het aanmaken van accounts.\nWilt u de 'Onbeperkte accounts' add-on aanschaffen om door te gaan?",
"DialogMessage_AccountLimitTitle": "U heeft de limiet voor het aantal accounts bereikt",
"DialogMessage_AliasCreatedMessage": "Nieuwe alias is succesvol aangemaakt.",
"DialogMessage_AliasCreatedTitle": "Nieuw alias aangemaakt",
"DialogMessage_AliasExistsMessage": "Deze alias wordt al gebruikt.",
"DialogMessage_AliasExistsMessage": "Deze alias is al in gebruik.",
"DialogMessage_AliasExistsTitle": "Bestaande alias",
"DialogMessage_AliasNotSelectedMessage": "U moet een alias selecteren voordat u een bericht kunt verzenden.",
"DialogMessage_AliasNotSelectedTitle": "Alias ontbreekt",
"DialogMessage_CantDeleteRootAliasMessage": "Hoofd alias kan niet verwijderd worden. Dit is de hoofdidentiteit die gekoppeld is aan uw account configuratie.",
"DialogMessage_CantDeleteRootAliasMessage": "Hoofd alias kan niet verwijderd worden. Dit is de hoofdidentiteit die gekoppeld is aan uw accountconfiguratie.",
"DialogMessage_CantDeleteRootAliasTitle": "Kan alias niet verwijderen",
"DialogMessage_CleanupFolderMessage": "Wilt u alle e-mails in deze map permanent verwijderen?",
"DialogMessage_CleanupFolderTitle": "Opschonen map",
"DialogMessage_ComposerMissingRecipientMessage": "Bericht heeft geen ontvanger.",
"DialogMessage_CleanupFolderTitle": "Map opschonen",
"DialogMessage_ComposerMissingRecipientMessage": "Het bericht heeft geen ontvanger.",
"DialogMessage_ComposerValidationFailedTitle": "Validatie mislukt",
"DialogMessage_CreateLinkedAccountMessage": "Geef deze koppeling een naam. Accounts worden samengevoegd onder deze naam.",
"DialogMessage_CreateLinkedAccountTitle": "Naam van koppeling",
"DialogMessage_DeleteAccountConfirmationMessage": "Verwijder {0}?",
"DialogMessage_CreateLinkedAccountTitle": "Naam van accountkoppeling",
"DialogMessage_DeleteAccountConfirmationMessage": "{0} verwijderen?",
"DialogMessage_DeleteAccountConfirmationTitle": "Alle gegevens die gekoppeld zijn aan dit account worden permanent verwijderd.",
"DialogMessage_DiscardDraftConfirmationMessage": "Dit concept zal worden verwijderd. Wilt u doorgaan?",
"DialogMessage_DiscardDraftConfirmationTitle": "Concept verwijderen",
"DialogMessage_EmptySubjectConfirmation": "Onderwerp ontbreekt",
"DialogMessage_EmptySubjectConfirmationMessage": "Het bericht heeft geen onderwerp. Wilt u doorgaan?",
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
"DialogMessage_EnableStartupLaunchTitle": "Opstarten inschakelen",
"DialogMessage_EnableStartupLaunchDeniedMessage": "U kunt laden bij opstarten inschakelen via Instellingen -> App voorkeuren.",
"DialogMessage_EnableStartupLaunchMessage": "Sta toe Wino Mail toe automatisch geminimaliseerd te laden bij het opstarten van Windows om geen meldingen te missen.\n\nWilt u laden bij het opstarten van Windows inschakelen?",
"DialogMessage_EnableStartupLaunchTitle": "Laden bij opstarten inschakelen",
"DialogMessage_HardDeleteConfirmationMessage": "Permanent verwijderen",
"DialogMessage_HardDeleteConfirmationTitle": "Bericht(en) zullen permanent verwijderd worden. Wilt u doorgaan?",
"DialogMessage_InvalidAliasMessage": "Deze alias is ongeldig. Zorg ervoor dat alle adressen van de alias geldige e-mailadressen zijn.",
"DialogMessage_InvalidAliasMessage": "Deze alias is ongeldig. Zorg ervoor dat alle e-mailadressen van de alias geldig zijn.",
"DialogMessage_InvalidAliasTitle": "Ongeldige alias",
"DialogMessage_NoAccountsForCreateMailMessage": "U heeft geen accounts om een bericht van te maken.",
"DialogMessage_NoAccountsForCreateMailMessage": "U heeft geen accounts om een bericht te maken.",
"DialogMessage_NoAccountsForCreateMailTitle": "Account ontbreekt",
"DialogMessage_PrintingFailedMessage": "Afdrukken van deze e-mail mislukt. Resultaat: {0}",
"DialogMessage_PrintingFailedTitle": "Mislukt",
"DialogMessage_PrintingSuccessMessage": "E-mail wordt naar de printer verzonden.",
"DialogMessage_PrintingSuccessTitle": "Gelukt",
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
"DialogMessage_PrintingSuccessTitle": "Voltooid",
"DialogMessage_RenameFolderMessage": "Voer een nieuwe naam in voor deze map",
"DialogMessage_RenameFolderTitle": "Map hernoemen",
"DialogMessage_RenameLinkedAccountsMessage": "Voer een nieuwe naam in voor gekoppeld account",
"DialogMessage_RenameLinkedAccountsTitle": "Gekoppeld account hernoemen",
"DialogMessage_UnlinkAccountsConfirmationMessage": "Deze handeling zal je accounts niet verwijderen, maar alleen de koppeling van gedeelde mappen verbreken. Wil je doorgaan?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Ontkoppel accounts",
"DialogMessage_RenameLinkedAccountsMessage": "Voer een nieuwe naam in voor de gekoppelde account",
"DialogMessage_RenameLinkedAccountsTitle": "Gekoppelde account hernoemen",
"DialogMessage_UnlinkAccountsConfirmationMessage": "Deze handeling zal uw accounts niet verwijderen, maar zal alleen de koppeling voor gedeelde mappen verbreken. Wilt u doorgaan?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Accounts ontkoppelen",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Ga naar website",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Do you want to stop getting messages from {0}? Wino will unsubscribe for you by sending an email from your email account to {1}.",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
"DialogMessage_UnsubscribeConfirmationTitle": "Afmelden",
"DiscordChannelDisclaimerMessage": "Wino heeft geen eigen Discord server, maar het speciale 'wino-mail' kanaal is gehost op de 'Developer Sanctuary' server.\nOm updates over Wino te krijgen, sluit je je aan bij de Developer Sanctuary server en volg je 'wino-mail' kanaal onder 'Community Projects'\n\nJe wordt doorgestuurd naar de server-URL omdat Discord geen kanaaluitnodigingen ondersteunt.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Als u geen berichten meer wilt ontvangen van {0}, ga dan naar de betreffende website om u uit te schrijven.",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Wilt u geen berichten meer ontvangen van {0}? Wino zal u uitschrijven door een e-mail vanuit uw e-mailaccount te versturen naar {1}.",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Wilt u geen berichten meer ontvangen van {0}?",
"DialogMessage_UnsubscribeConfirmationTitle": "Uitschrijven",
"DiscordChannelDisclaimerMessage": "Wino heeft geen eigen Discord server, maar heeft een speciale 'wino-mail' kanaal dat gehost is op de 'Developer Sanctuary' server.\nAls u updates over Wino wilt ontvangen, meld u dan aan bij Developer Sanctuary en volg het 'wino-mail' kanaal onder \"Community Projects'.\n\nU wordt doorgestuurd naar de server-URL omdat Discord geen kanaaluitnodigingen ondersteunt.",
"DiscordChannelDisclaimerTitle": "Belangrijke informatie over Discord",
"Draft": "Concept",
"DragMoveToFolderCaption": "Verplaatsen naar {0}",
@@ -165,43 +165,43 @@
"EditorToolbarOption_Format": "Opmaak",
"EditorToolbarOption_Insert": "Invoegen",
"EditorToolbarOption_None": "Geen",
"EditorToolbarOption_Options": "Instellingen",
"EditorToolbarOption_Options": "Opties",
"EditorTooltip_WebViewEditor": "Gebruik web view editor",
"ElementTheme_Dark": "Donkere modus",
"ElementTheme_Default": "Systeeminstellingen gebruiken",
"ElementTheme_Light": "Lichte modus",
"Emoji": "Emoji",
"Error_FailedToSetupSystemFolders_Title": "Failed to setup system folders",
"Error_FailedToSetupSystemFolders_Title": "Instellen van systeemmappen mislukt",
"Exception_AuthenticationCanceled": "Authenticatie geannuleerd",
"Exception_CustomThemeExists": "Dit thema bestaat al.",
"Exception_CustomThemeMissingName": "U moet een naam invullen.",
"Exception_CustomThemeMissingWallpaper": "U moet een aangepaste achtergrondafbeelding invoeren.",
"Exception_FailedToSynchronizeAliases": "Failed to synchronize aliases",
"Exception_FailedToSynchronizeAliases": "Synchroniseren van aliassen mislukt",
"Exception_FailedToSynchronizeFolders": "Synchroniseren van mappen mislukt",
"Exception_FailedToSynchronizeProfileInformation": "Failed to synchronize profile information",
"Exception_FailedToSynchronizeProfileInformation": "Synchroniseren van profielinformatie mislukt",
"Exception_GoogleAuthCallbackNull": "Callback uri is null bij het activeren.",
"Exception_GoogleAuthCorruptedCode": "Beschadigd autorisatieantwoord.",
"Exception_GoogleAuthCorruptedCode": "Beschadigd autorisatie-antwoord.",
"Exception_GoogleAuthError": "OAuth autorisatiefout: {0}",
"Exception_GoogleAuthInvalidResponse": "Verzoek ontvangen met ongeldige status ({0})",
"Exception_GoogleAuthorizationCodeExchangeFailed": "Uitwisselen van autorisatiecode is mislukt.",
"Exception_GoogleAuthorizationCodeExchangeFailed": "Uitwisselen van autorisatiecode mislukt.",
"Exception_ImapAutoDiscoveryFailed": "Instellingen mailbox niet gevonden.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool is mislukt.",
"Exception_InboxNotAvailable": "Kan account mappen niet instellen.",
"Exception_InvalidSystemFolderConfiguration": "De systeemmapconfiguratie is niet geldig. Controleer de configuratie en probeer het opnieuw.",
"Exception_InvalidMultiAccountMoveTarget": "You can't move multiple items that belong to different accounts in linked account.",
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
"Exception_MissingAlias": "Primary alias does not exist for this account. Creating draft failed.",
"Exception_InvalidSystemFolderConfiguration": "De systeemmapconfiguratie is ongeldig. Controleer de configuratie en probeer het opnieuw.",
"Exception_InvalidMultiAccountMoveTarget": "U kunt niet multipele items verplaatsen die behoren tot verschillende accounts in een gekoppeld account.",
"Exception_MailProcessing": "Deze mail wordt nog verwerkt. Probeer het over enkele seconden opnieuw.",
"Exception_MissingAlias": "Er bestaat geen primaire alias voor deze account. Concept aanmaken is mislukt.",
"Exception_NullAssignedAccount": "Toegewezen account is ongeldig",
"Exception_NullAssignedFolder": "Toegewezen map is ongeldig",
"Exception_SynchronizerFailureHTTP": "Reactieverwerking mislukt met de HTTP-code {0}",
"Exception_TokenGenerationFailed": "Token genereren mislukt",
"Exception_SynchronizerFailureHTTP": "Antwoordverwerking mislukt met HTTP-foutcode {0}",
"Exception_TokenGenerationFailed": "Genereren van token mislukt",
"Exception_TokenInfoRetrivalFailed": "Fout bij het ophalen van tokeninformatie.",
"Exception_UnknowErrorDuringAuthentication": "Onbekende fout opgetreden tijdens authenticatie",
"Exception_UnsupportedAction": "Actie {0} is niet geïmplementeerd in de aanvraagverwerker",
"Exception_UnsupportedProvider": "Deze aanbieder wordt niet ondersteund.",
"Exception_UnsupportedSynchronizerOperation": "Deze bewerking wordt niet ondersteund voor {0}",
"Exception_UserCancelSystemFolderSetupDialog": "Gebruiker heeft het dialoogvenster configureren systeemmappen geannuleerd.",
"Exception_WinoServerException": "Wino server mislukt.",
"Exception_UserCancelSystemFolderSetupDialog": "De gebruiker heeft het dialoogvenster voor het configureren van systeemmappen geannuleerd.",
"Exception_WinoServerException": "Wino server mislukt",
"Files": "Bestanden",
"FilteringOption_All": "Alle",
"FilteringOption_Files": "Heeft bestanden",
@@ -221,33 +221,33 @@
"GeneralTitle_Error": "Fout",
"GeneralTitle_Info": "Informatie",
"GeneralTitle_Warning": "Waarschuwing",
"GmailServiceDisabled_Title": "Gmail Error",
"GmailServiceDisabled_Message": "Your Google Workspace account seems to be disabled for Gmail service. Please contact your administrator to enable Gmail service for your account.",
"GmailArchiveFolderNameOverride": "Archive",
"GmailServiceDisabled_Title": "Gmail fout",
"GmailServiceDisabled_Message": "Uw Google Workspace account is mogelijk uitgeschakeld voor Gmail service. Contacteer uw beheerder om Gmail service voor uw account in te schakelen.",
"GmailArchiveFolderNameOverride": "Archief",
"HoverActionOption_Archive": "Archiveren",
"HoverActionOption_Delete": "Verwijderen",
"HoverActionOption_MoveJunk": "Verplaats naar Ongewenst",
"HoverActionOption_ToggleFlag": "Vlag aan / uit",
"HoverActionOption_ToggleFlag": "Markeren / Niet markeren",
"HoverActionOption_ToggleRead": "Gelezen / Ongelezen",
"ImageRenderingDisabled": "Afbeeldingsweergave is voor dit bericht uitgeschakeld.",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authenticatiemethode",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Beveiliging van verbinding",
"IMAPAdvancedSetupDialog_ValidationAuthMethodRequired": "Authentication method is required",
"IMAPAdvancedSetupDialog_ValidationConnectionSecurityRequired": "Connection security type is required",
"IMAPAdvancedSetupDialog_ValidationDisplayNameRequired": "Display name is required",
"IMAPAdvancedSetupDialog_ValidationEmailInvalid": "Please enter a valid email address",
"IMAPAdvancedSetupDialog_ValidationEmailRequired": "Email address is required",
"IMAPAdvancedSetupDialog_ValidationErrorTitle": "Please check the following:",
"IMAPAdvancedSetupDialog_ValidationIncomingPortInvalid": "Incoming port must be between 1-65535",
"IMAPAdvancedSetupDialog_ValidationIncomingPortRequired": "Incoming server port is required",
"IMAPAdvancedSetupDialog_ValidationIncomingServerRequired": "Incoming server address is required",
"IMAPAdvancedSetupDialog_ValidationOutgoingPasswordRequired": "Outgoing server password is required",
"IMAPAdvancedSetupDialog_ValidationOutgoingPortInvalid": "Outgoing port must be between 1-65535",
"IMAPAdvancedSetupDialog_ValidationOutgoingPortRequired": "Outgoing server port is required",
"IMAPAdvancedSetupDialog_ValidationOutgoingServerRequired": "Outgoing server address is required",
"IMAPAdvancedSetupDialog_ValidationOutgoingUsernameRequired": "Outgoing server username is required",
"IMAPAdvancedSetupDialog_ValidationPasswordRequired": "Password is required",
"IMAPAdvancedSetupDialog_ValidationUsernameRequired": "Username is required",
"IMAPAdvancedSetupDialog_ValidationAuthMethodRequired": "Authenticatiemethode vereist",
"IMAPAdvancedSetupDialog_ValidationConnectionSecurityRequired": "Type beveiliging van verbinding vereist",
"IMAPAdvancedSetupDialog_ValidationDisplayNameRequired": "Weergavenaam vereist",
"IMAPAdvancedSetupDialog_ValidationEmailInvalid": "Voer een geldig e-mailadres in",
"IMAPAdvancedSetupDialog_ValidationEmailRequired": "E-mailadres vereist",
"IMAPAdvancedSetupDialog_ValidationErrorTitle": "Controleer het volgende:",
"IMAPAdvancedSetupDialog_ValidationIncomingPortInvalid": "Inkomende poort moet liggen tussen 1-65535",
"IMAPAdvancedSetupDialog_ValidationIncomingPortRequired": "Inkomende poort is vereist",
"IMAPAdvancedSetupDialog_ValidationIncomingServerRequired": "Inkomende serveradres is vereist",
"IMAPAdvancedSetupDialog_ValidationOutgoingPasswordRequired": "Uitgaand serverwachtwoord is vereist",
"IMAPAdvancedSetupDialog_ValidationOutgoingPortInvalid": "Uitgaande poort moet liggen tussen 1-65535",
"IMAPAdvancedSetupDialog_ValidationOutgoingPortRequired": "Uitgaande serverpoort is vereist",
"IMAPAdvancedSetupDialog_ValidationOutgoingServerRequired": "Uitgaand serveradres is vereist",
"IMAPAdvancedSetupDialog_ValidationOutgoingUsernameRequired": "Gebruikersnaam van uitgaande server is vereist",
"IMAPAdvancedSetupDialog_ValidationPasswordRequired": "Wachtwoord is vereist",
"IMAPAdvancedSetupDialog_ValidationUsernameRequired": "Gebruikersnaam is vereist",
"ImapAuthenticationMethod_Auto": "Automatisch",
"ImapAuthenticationMethod_CramMD5": "CRAM-MD5",
"ImapAuthenticationMethod_DigestMD5": "DIGEST-MD5",
@@ -260,13 +260,15 @@
"ImapConnectionSecurity_SslTls": "SSL/TLS",
"ImapConnectionSecurity_StartTls": "STARTTLS",
"IMAPSetupDialog_AccountType": "Accounttype",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
"IMAPSetupDialog_CertificateDenied": "User didn't authorize the handshake with the certificate.",
"IMAPSetupDialog_CertificateIssuer": "Issuer",
"IMAPSetupDialog_ValidationSuccess_Title": "Voltooid",
"IMAPSetupDialog_ValidationSuccess_Message": "Validatie voltooid",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Validatie van IMAP-server is mislukt.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Deze server vraagt naar een SSL-verificatie om door te kunnen gaan. Bevestig de certificaatdetails hieronder.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Verificatie toestaan om door te gaan met het instellen van uw account.",
"IMAPSetupDialog_CertificateDenied": "Gebruiker heeft de verificatie met het certificaat niet geautoriseerd.",
"IMAPSetupDialog_CertificateIssuer": "Uitgever",
"IMAPSetupDialog_CertificateSubject": "Onderwerp",
"IMAPSetupDialog_CertificateValidFrom": "Geldig van",
"IMAPSetupDialog_CertificateValidTo": "Geldig tot",
@@ -277,21 +279,21 @@
"IMAPSetupDialog_DisplayNamePlaceholder": "bijv. Jan Smit",
"IMAPSetupDialog_IncomingMailServer": "Inkomende (IMAP) e-mailserver",
"IMAPSetupDialog_IncomingMailServerPort": "Poort",
"IMAPSetupDialog_IMAPSettings": "IMAP Server Settings",
"IMAPSetupDialog_SMTPSettings": "SMTP Server Settings",
"IMAPSetupDialog_IMAPSettings": "IMAP-server instellingen",
"IMAPSetupDialog_SMTPSettings": "SMTP-server instellingen",
"IMAPSetupDialog_MailAddress": "E-mailadres",
"IMAPSetupDialog_MailAddressPlaceholder": "iemand@voorbeeld.nl",
"IMAPSetupDialog_OutgoingMailServer": "Uitgaande (SMTP) e-mailserver",
"IMAPSetupDialog_OutgoingMailServerPassword": "Uitgaande server-wachtwoord",
"IMAPSetupDialog_OutgoingMailServerPassword": "Uitgaand server-wachtwoord",
"IMAPSetupDialog_OutgoingMailServerPort": "Poort",
"IMAPSetupDialog_OutgoingMailServerRequireAuthentication": "Uitgaande server vereist authenticatie",
"IMAPSetupDialog_OutgoingMailServerUsername": "Uitgaande server gebruikersnaam",
"IMAPSetupDialog_OutgoingMailServerUsername": "Gebruikersnaam van uitgaande server",
"IMAPSetupDialog_Password": "Wachtwoord",
"IMAPSetupDialog_RequireSSLForIncomingMail": "SSL verplichten voor inkomende e-mail",
"IMAPSetupDialog_RequireSSLForOutgoingMail": "SSL verplichten voor uitgaande e-mail",
"IMAPSetupDialog_Title": "Geavanceerde IMAP-instellingen",
"IMAPSetupDialog_Title": "Geavanceerde IMAP Configuratie",
"IMAPSetupDialog_Username": "Gebruikersnaam",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domein/johndoe",
"IMAPSetupDialog_UsernamePlaceholder": "jansmit, jansmit@fabrikam.com, domein/jansmit",
"IMAPSetupDialog_UseSameConfig": "Dezelfde gebruikersnaam en wachtwoord gebruiken voor het verzenden van e-mail",
"Info_AccountCreatedMessage": "{0} is aangemaakt",
"Info_AccountCreatedTitle": "Account aanmaken",
@@ -300,48 +302,48 @@
"Info_AccountDeletedTitle": "Account verwijderd",
"Info_AccountIssueFixFailedTitle": "Mislukt",
"Info_AccountIssueFixSuccessMessage": "Alle accountproblemen zijn opgelost.",
"Info_AccountIssueFixSuccessTitle": "Succesvol",
"Info_AccountIssueFixSuccessTitle": "Gelukt",
"Info_AttachmentOpenFailedMessage": "Deze bijlage kan niet geopend worden.",
"Info_AttachmentOpenFailedTitle": "Mislukt",
"Info_AttachmentSaveFailedMessage": "Deze bijlage kan niet opgeslagen worden.",
"Info_AttachmentSaveFailedTitle": "Mislukt",
"Info_AttachmentSaveSuccessMessage": "Bijlage is opgeslagen.",
"Info_AttachmentSaveSuccessTitle": "Bijlage is opgeslagen",
"Info_BackgroundExecutionDeniedMessage": "Uitvoering in de achtergrond voor de app is geweigerd. Dit kan invloed hebben op synchronisatie op de achtergrond en live meldingen.",
"Info_BackgroundExecutionDeniedTitle": "Achtergronduitvoering geweigerd",
"Info_AttachmentSaveSuccessTitle": "Bijlage opgeslagen",
"Info_BackgroundExecutionDeniedMessage": "Uitvoering van de app op de achtergrond is geweigerd. Dit kan invloed hebben op synchronisatie op de achtergrond en live meldingen.",
"Info_BackgroundExecutionDeniedTitle": "Uitvoering op achtergrond geweigerd",
"Info_BackgroundExecutionUnknownErrorMessage": "Onbekende fout opgetreden bij het registreren van achtergrondsynchronisatie.",
"Info_BackgroundExecutionUnknownErrorTitle": "Fout bij uitvoeren in achtergrond",
"Info_CantDeletePrimaryAliasMessage": "Primary alias can't be deleted. Please change your alias before deleting this one",
"Info_ComposerMissingMIMEMessage": "Kan het MIME-bestand niet vinden. Synchroniseren kan helpen.",
"Info_BackgroundExecutionUnknownErrorTitle": "Fout bij uitvoeren op achtergrond",
"Info_CantDeletePrimaryAliasMessage": "Primaire alias kan niet verwijderd worden. Wijzig eerst uw alias voordat u deze verwijdert.",
"Info_ComposerMissingMIMEMessage": "Kan het MIME-bestand niet vinden. Synchroniseren kan dit oplossen.",
"Info_ComposerMissingMIMETitle": "Mislukt",
"Info_ContactExistsMessage": "Dit contact staat al in het lijst met ontvangers.",
"Info_ContactExistsMessage": "Dit contact staat al in de lijst met ontvangers.",
"Info_ContactExistsTitle": "Contact bestaat",
"Info_DraftFolderMissingMessage": "Conceptmap ontbreekt voor dit account. Controleer uw accountinstellingen.",
"Info_DraftFolderMissingTitle": "Conceptmap ontbreekt",
"Info_FailedToOpenFileMessage": "Mogelijks is het bestand verwijderd.",
"Info_FailedToOpenFileTitle": "Kan bestand niet starten.",
"Info_FileLaunchFailedTitle": "Kan bestand niet starten",
"Info_FailedToOpenFileMessage": "Bestand is mogelijk verwijderd.",
"Info_FailedToOpenFileTitle": "Kan bestand niet openen.",
"Info_FileLaunchFailedTitle": "Kan bestand niet openen",
"Info_InvalidAddressMessage": "{0} is geen geldig e-mailadres.",
"Info_InvalidAddressTitle": "Ongeldig adres",
"Info_InvalidMoveTargetMessage": "Geselecteerde e-mails kunnen niet verplaatst worden naar deze map.",
"Info_InvalidMoveTargetTitle": "Invalid Move Target",
"Info_InvalidMoveTargetTitle": "Ongeldig doel om te verplaatsen",
"Info_LogsNotFoundMessage": "Er zijn geen logs om te delen.",
"Info_LogsNotFoundTitle": "Logs niet gevonden",
"Info_LogsSavedMessage": "{0} is opgeslagen in de geselecteerde map.",
"Info_LogsSavedTitle": "Opgeslagen",
"Info_MailListSizeResetSuccessMessage": "De grootte van de e-maillijst is gereset.",
"Info_MailListSizeResetSuccessMessage": "De grootte van de e-maillijst is hersteld.",
"Info_MailRenderingFailedMessage": "Deze e-mail is beschadigd of kan niet worden geopend.\n{0}",
"Info_MailRenderingFailedTitle": "Weergave mislukt",
"Info_MessageCorruptedMessage": "Dit bericht is beschadigd.",
"Info_MessageCorruptedTitle": "Fout",
"Info_MissingFolderMessage": "{0} doesn't exist for this account.",
"Info_MissingFolderMessage": "{0} bestaat niet voor dit account",
"Info_MissingFolderTitle": "Map ontbreekt",
"Info_PDFSaveFailedTitle": "Kan Pdf-bestand niet opslaan",
"Info_PDFSaveSuccessMessage": "Pdf-bestand is opgeslagen in {0}",
"Info_PDFSaveSuccessTitle": "Gelukt",
"Info_PDFSaveSuccessMessage": "PDF-bestand is opgeslagen in {0}",
"Info_PDFSaveSuccessTitle": "Geslaagd",
"Info_PurchaseExistsMessage": "Het lijkt erop dat dit product al eerder is gekocht.",
"Info_PurchaseExistsTitle": "Bestaand product",
"Info_PurchaseThankYouMessage": "Hartelijk bedankt!",
"Info_PurchaseThankYouMessage": "Bedankt",
"Info_PurchaseThankYouTitle": "Aankoop geslaagd",
"Info_RequestCreationFailedTitle": "Aanvraag aanmaken is mislukt",
"Info_ReviewNetworkErrorMessage": "Er was een netwerkprobleem met uw beoordeling.",
@@ -358,9 +360,9 @@
"Info_SyncCanceledMessage": "Geannuleerd",
"Info_SyncCanceledTitle": "Synchronisatie",
"Info_SyncFailedTitle": "Synchronisatie is mislukt",
"Info_UnsubscribeErrorMessage": "Afmelden mislukt",
"Info_UnsubscribeLinkInvalidMessage": "Deze afmeldlink is ongeldig. Afmelden van de lijst is mislukt.",
"Info_UnsubscribeLinkInvalidTitle": "Ongeldige uitschrijf-URI",
"Info_UnsubscribeErrorMessage": "Uitschrijven mislukt",
"Info_UnsubscribeLinkInvalidMessage": "Deze uitschrijflink is ongeldig. Uitschrijven van de lijst is mislukt.",
"Info_UnsubscribeLinkInvalidTitle": "Uitschrijf Uri is ongeldig",
"Info_UnsubscribeSuccessMessage": "Succesvol uitgeschreven van {0}.",
"Info_UnsupportedFunctionalityDescription": "Deze functionaliteit is nog niet geïmplementeerd.",
"Info_UnsupportedFunctionalityTitle": "Niet ondersteund",
@@ -370,11 +372,11 @@
"Justify": "Uitvullen",
"Left": "Links",
"Link": "Link",
"LinkedAccountsCreatePolicyMessage": "Je moet ten minste 2 accounts hebben om een koppeling te maken.\nDe koppeling zal verwijderd worden bij het opslaan.",
"LinkedAccountsCreatePolicyMessage": "U moet tenminste 2 accounts hebben om een koppeling te maken.\nDe koppeling zal verwijderd worden bij het opslaan.",
"LinkedAccountsTitle": "Gekoppelde accounts",
"MailItemNoSubject": "Geen onderwerp",
"MailOperation_AlwaysMoveFocused": "Altijd verplaatsen naar Prioriteit",
"MailOperation_AlwaysMoveOther": "Altijd verplaatsen naar andere",
"MailOperation_AlwaysMoveOther": "Altijd verplaatsen naar Overige",
"MailOperation_Archive": "Archiveren",
"MailOperation_ClearFlag": "Markering wissen",
"MailOperation_DarkEditor": "Donker",
@@ -392,20 +394,20 @@
"MailOperation_MoveFocused": "Verplaatsen naar Prioriteit",
"MailOperation_MoveJunk": "Verplaatsen naar Ongewenst",
"MailOperation_MoveOther": "Verplaatsen naar Overige",
"MailOperation_Navigate": "Navigate",
"MailOperation_Navigate": "Navigeren",
"MailOperation_Print": "Afdrukken",
"MailOperation_Reply": "Beantwoorden",
"MailOperation_ReplyAll": "Allen beantwoorden",
"MailOperation_SaveAs": "Opslaan als",
"MailOperation_SetFlag": "Vlag toevoegen",
"MailOperation_Unarchive": "Unarchive",
"MailOperation_Unarchive": "Niet meer archiveren",
"MailOperation_ViewMessageSource": "Berichtbron weergeven",
"MailOperation_Zoom": "Zoom",
"MailsSelected": "{0} item(s) geselecteerd",
"MarkFlagUnflag": "Vlag toevoegen/verwijderen",
"MarkReadUnread": "Markeren als gelezen/ongelezen",
"MenuManageAccounts": "Accounts beheren",
"MenuMergedAccountItemAccountsSuffix": " accounts",
"MenuMergedAccountItemAccountsSuffix": " Accounts",
"MenuNewMail": "Nieuwe berichten",
"MenuRate": "Wino-Mail beoordelen",
"MenuSettings": "Instellingen",
@@ -416,46 +418,46 @@
"MergedAccountCommonFolderSent": "Verzonden",
"MergedAccountCommonFolderTrash": "Verwijderd",
"MergedAccountsAvailableAccountsTitle": "Beschikbare accounts",
"MessageSourceDialog_Title": "Message source",
"MessageSourceDialog_Title": "Berichtbron",
"More": "Meer",
"MoreFolderNameOverride": "Meer",
"MoveMailDialog_InvalidFolderMessage": "{0} is geen geldige map voor deze e-mail.",
"MoveMailDialog_Title": "Een map kiezen",
"MoveMailDialog_Title": "Kies een map",
"NewAccountDialog_AccountName": "Accountnaam",
"NewAccountDialog_AccountNameDefaultValue": "Persoonlijk",
"NewAccountDialog_AccountNamePlaceholder": "voorbeeld: Persoonlijke email",
"NewAccountDialog_AccountNamePlaceholder": "voorbeeld: Persoonlijke e-mail",
"NewAccountDialog_Title": "Nieuw account toevoegen",
"NoMailSelected": "Geen berichten geselecteerd",
"NoMessageCrieteria": "No messages match your search criteria",
"NoMessageCrieteria": "Er zijn geen berichten die voldoen aan u zoekcriteria",
"NoMessageEmptyFolder": "Deze map is leeg",
"Notifications_MultipleNotificationsMessage": "U heeft {0} nieuwe berichten.",
"Notifications_MultipleNotificationsTitle": "Nieuwe berichten",
"Notifications_WinoUpdatedMessage": "Bekijk de nieuwe versie {0}",
"Notifications_WinoUpdatedTitle": "Wino-Mail is bijgewerkt.",
"OnlineSearchFailed_Message": "Failed to perform search\n{0}\n\nListing offline mails.",
"OnlineSearchTry_Line1": "Can't find what you are looking for?",
"OnlineSearchTry_Line2": "Try online search.",
"OnlineSearchFailed_Message": "{0} zoeken is mislukt\n\nOffline e-mails worden weergegeven.",
"OnlineSearchTry_Line1": "Kunt u niet vinden wat u zoekt?",
"OnlineSearchTry_Line2": "Probeer online zoeken.",
"Other": "Andere",
"PaneLengthOption_Default": "Standaard",
"PaneLengthOption_ExtraLarge": "Extra lang",
"PaneLengthOption_ExtraLarge": "Extra groot",
"PaneLengthOption_Large": "Groot",
"PaneLengthOption_Medium": "Gemiddeld",
"PaneLengthOption_Micro": "Micro",
"PaneLengthOption_Small": "Klein",
"Photos": "Fotos",
"PreparingFoldersMessage": "Mappen voorbereiden",
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
"ProtocolLogAvailable_Message": "Protocol logs zijn beschikbaar voor diagnose.",
"ProviderDetail_Gmail_Description": "Google Account",
"ProviderDetail_iCloud_Description": "Apple iCloud Account",
"ProviderDetail_iCloud_Title": "iCloud",
"ProviderDetail_IMAP_Description": "Aangepaste IMAP/SMTP server",
"ProviderDetail_IMAP_Description": "Aangepaste IMAP-/SMTP-server",
"ProviderDetail_IMAP_Title": "IMAP-server",
"ProviderDetail_Yahoo_Description": "Yahoo Account",
"ProviderDetail_Yahoo_Title": "Yahoo Mail",
"QuickEventDialog_EventName": "Event name",
"QuickEventDialog_IsAllDay": "All day",
"QuickEventDialog_EventName": "Naam gebeurtenis",
"QuickEventDialog_IsAllDay": "Gehele dag",
"QuickEventDialog_Location": "Plaats",
"QuickEventDialog_RemindMe": "Remind me",
"QuickEventDialog_RemindMe": "Herinner mij",
"QuickEventDialogMoreDetailsButtonText": "Meer details",
"Reader_SaveAllAttachmentButtonText": "Alle bijlagen opslaan",
"Results": "Resultaten",
@@ -464,232 +466,241 @@
"SearchingIn": "Zoeken in",
"SearchPivotName": "Resultaten",
"SettingConfigureSpecialFolders_Button": "Configureer",
"SettingsEditAccountDetails_IMAPConfiguration_Title": "IMAP/SMTP Configuration",
"SettingsEditAccountDetails_IMAPConfiguration_Description": "Change your incoming/outgoing server settings.",
"SettingsEditAccountDetails_IMAPConfiguration_Title": "IMAP/SMPT Configuratie",
"SettingsEditAccountDetails_IMAPConfiguration_Description": "Wijzig uw inkomende/uitgaande serverinstellingen.",
"SettingsAbout_Description": "Meer informatie over Wino.",
"SettingsAbout_Title": "Over",
"SettingsAboutGithub_Description": "Ga naar de Issue Tracker in de GitHub-repository.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAboutVersion": "Versie ",
"SettingsAboutWinoDescription": "Lichtgewicht e-mail client voor Windows-apparaten.",
"SettingsAccentColor_Description": "Wijzig accentkleur van applicatie",
"SettingsAboutVersion": "Versie",
"SettingsAboutWinoDescription": "Lichtgewicht e-mailclient voor Windows-apparaten.",
"SettingsAccentColor_Description": "Wijzig de accentkleur van de applicatie",
"SettingsAccentColor_Title": "Accentkleur",
"SettingsAccentColor_UseWindowsAccentColor": "Mijn Windows-accentkleur gebruiken",
"SettingsAccountManagementAppendMessage_Description": "Maak een kopie van het bericht in de map Verzonden nadat het concept is verzonden. Schakel dit in als u uw e-mails niet ziet nadat u ze hebt verzonden in de map 'Verzonden'.",
"SettingsAccountManagementAppendMessage_Description": "Maak een kopie van het bericht in de map Verzonden nadat het concept is verzonden. Schakel dit in als u uw e-mails niet in de map Verzonden ziet nadat u ze hebt verzonden.",
"SettingsAccountManagementAppendMessage_Title": "Berichten toevoegen aan map Verzonden",
"SettingsAccountName_Description": "Verander de naam van het account.",
"SettingsAccountName_Description": "Wijzig de accountnaam.",
"SettingsAccountName_Title": "Accountnaam",
"SettingsApplicationTheme_Description": "Personaliseer Wino met aangepaste thema's.",
"SettingsApplicationTheme_Title": "Applicatie thema",
"SettingsAppPreferences_CloseBehavior_Description": "Wat moet er gebeuren als je de app sluit?",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsApplicationTheme_Description": "Personaliseer Wino met aangepaste thema's naar uw voorkeur.",
"SettingsApplicationTheme_Title": "Applicatie Thema",
"SettingsAppPreferences_CloseBehavior_Description": "Wat moet er gebeuren als u de app sluit?",
"SettingsAppPreferences_CloseBehavior_Title": "Sluitgedrag applicatie",
"SettingsAppPreferences_Description": "Algemene instellingen / voorkeuren voor Wino Mail.",
"SettingsAppPreferences_SearchMode_Description": "Set whether Wino should check fetched mails first while doing a search or ask your mail server online. Local search is always faster and you can always do an online search if your mail is not in the results.",
"SettingsAppPreferences_SearchMode_Local": "Local",
"SettingsAppPreferences_SearchMode_Description": "Bepaal of Wino tijdens het zoeken de opgehaalde e-mails eerst moet controleren of uw online e-mailserver moet vragen. Lokaal zoeken is altijd sneller en u kunt altijd online zoeken als uw e-mail niet in de zoekresultaten staat.",
"SettingsAppPreferences_SearchMode_Local": "Lokaal",
"SettingsAppPreferences_SearchMode_Online": "Online",
"SettingsAppPreferences_SearchMode_Title": "Default search mode",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail zal in de achtergrond blijven draaien. U wordt op de hoogte gebracht wanneer er nieuwe berichten binnenkomen.",
"SettingsAppPreferences_SearchMode_Title": "Standaard zoekmethode",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail zal op de achtergrond blijven draaien. U wordt op de hoogte gebracht wanneer er nieuwe e-mails binnenkomen.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Op de achtergrond uitvoeren",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimaliseren naar systeembalk",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail zal in het systeemvak blijven draaien en laden als u op het icoon klikt. U wordt op de hoogte gebracht wanneer er nieuwe e-mails binnenkomen.",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimaliseren naar het systeemvak",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail zal geheel niet uitgevoerd worden. U wordt niet op de hoogte gebracht wanneer nieuwe e-mails binnenkomen. Open Wino Mail opnieuw om e-mailsynchronisatie te continueren.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Beëindigen",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Description": "Wino Mail toestaan om geminimaliseerd te laden wanneer Windows opstart. Staat altijd toe om meldingen te ontvangen.",
"SettingsAppPreferences_StartupBehavior_Disable": "Uitschakelen",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail zal niet geladen worden wanneer Windows opstart. Hierdoor mist u meldingen wanneer u uw computer herstart.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Uw beheerder of groepsbeleid heeft het laden van applicaties bij opstarten uitgeschakeld. Hierdoor kan Wino Mail niet laden bij het opstarten van Windows.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Ga naar Taakbeheer ⇾ Tabblad Opstart-apps om Wino Mail toe te staan om te laden bij het opstarten van Windows.",
"SettingsAppPreferences_StartupBehavior_Enable": "Inschakelen",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Title": "Start geminimaliseerd bij opstarten van Windows",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail is succesvol ingesteld om op de achtergrond te laden bij het opstarten van Windows.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatale fout tijdens het wijzigen van de opstartmethode voor Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Title": "Geminimaliseerd starten bij opstarten van Windows",
"SettingsAppPreferences_Title": "App voorkeuren",
"SettingsAutoSelectNextItem_Description": "Select the next item after you delete or move a mail.",
"SettingsAutoSelectNextItem_Title": "Auto select next item",
"SettingsAutoSelectNextItem_Description": "Selecteer het volgende item nadat u een e-mail hebt verwijderd of verplaatst.",
"SettingsAutoSelectNextItem_Title": "Volgende item automatisch selecteren",
"SettingsAvailableThemes_Description": "Selecteer een thema uit Winos collectie of pas uw eigen thema's toe.",
"SettingsAvailableThemes_Title": "Beschikbare thema's",
"SettingsCalendarSettings_Description": "Change first day of week, hour cell height and more...",
"SettingsCalendarSettings_Title": "Instellingen Agenda",
"SettingsCalendarSettings_Description": "Wijzig de eerste weekdag, vakhoogte voor uren en meer...",
"SettingsCalendarSettings_Title": "Agenda instellingen",
"SettingsComposer_Title": "Opsteller",
"SettingsComposerFont_Title": "Default Composer Font",
"SettingsComposerFontFamily_Description": "Change the default font family and font size for composing mails.",
"SettingsConfigureSpecialFolders_Description": "Set folders with special functions. Folders such as Archive, Inbox, and Drafts are essential for Wino to function properly.",
"SettingsConfigureSpecialFolders_Title": "Configure System Folders",
"SettingsComposerFont_Title": "Standaard lettertype voor opstellen",
"SettingsComposerFontFamily_Description": "Wijzig de standaard lettertype en lettergrootte voor het opstellen van e-mails.",
"SettingsConfigureSpecialFolders_Description": "Mappen met speciale functies instellen. Mappen zoals Archief, Inbox en Concepten zijn noodzakelijk om Wino goed te laten functioneren.",
"SettingsConfigureSpecialFolders_Title": "Systeemmappen configureren",
"SettingsCustomTheme_Description": "Maak uw eigen aangepaste thema met aangepaste achtergrond en accentkleur.",
"SettingsCustomTheme_Title": "Aangepast Thema",
"SettingsDeleteAccount_Description": "Verwijder alle e-mails en referenties die aan dit account zijn gekoppeld.",
"SettingsCustomTheme_Title": "Aangepaste thema",
"SettingsDeleteAccount_Description": "Verwijder alle e-mails en gegevens die aan dit account zijn gekoppeld.",
"SettingsDeleteAccount_Title": "Verwijder dit account",
"SettingsDeleteProtection_Description": "Moet Wino u om bevestiging vragen elke keer dat u een e-mail met Shift + Del verwijderd?",
"SettingsDeleteProtection_Title": "Permanente verwijder-bescherming",
"SettingsDeleteProtection_Description": "Moet Wino u om bevestiging vragen elke keer wanneer u een e-mail permanent verwijdert met de Shift + Del toetsen?",
"SettingsDeleteProtection_Title": "Bescherming tegen permanent verwijderen",
"SettingsDiagnostics_Description": "Voor ontwikkelaars",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
"SettingsDiagnostics_DiagnosticId_Title": "Diagnostic ID",
"SettingsDiagnostics_DiagnosticId_Description": "Deel dit ID met de ontwikkelaars wanneer er om hulp gevraagd wordt voor de problemen die u in Wino Mail ervaart.",
"SettingsDiagnostics_DiagnosticId_Title": "Diagnostische ID",
"SettingsDiagnostics_Title": "Diagnose",
"SettingsDiscord_Description": "Krijg regelmatige ontwikkelingsupdates, neem deel aan roadmap discussies en geef feedback.",
"SettingsDiscord_Description": "Krijg regelmatig ontwikkelingsupdates, neem deel aan roadmap discussies en geef feedback.",
"SettingsDiscord_Title": "Discord-kanaal",
"SettingsEditLinkedInbox_Description": "Accounts toevoegen, verwijderen, hernoemen of koppeling bewerken.",
"SettingsEditLinkedInbox_Title": "Gekoppelde inbox bewerken",
"SettingsEditLinkedInbox_Description": "Accounts toevoegen, verwijderen, hernoemen of de koppeling tussen accounts verbreken.",
"SettingsEditLinkedInbox_Title": "Gekoppelde Inbox bewerken",
"SettingsElementTheme_Description": "Selecteer een Windows-thema voor Wino",
"SettingsElementTheme_Title": "Element thema",
"SettingsElementThemeSelectionDisabled": "Element themaselectie is uitgeschakeld wanneer een niet-standaard thema is geselecteerd.",
"SettingsElementTheme_Title": "Thema modus",
"SettingsElementThemeSelectionDisabled": "Thema modus selectie is uitgeschakeld wanneer een niet-standaard thema is geselecteerd.",
"SettingsEnableHoverActions_Title": "Inschakelen van aanwijsacties",
"SettingsEnableIMAPLogs_Description": "Schakel dit in om gegevens over IMAP-connectiviteit te verstrekken die je had tijdens de IMAP-server installatie.",
"SettingsEnableIMAPLogs_Description": "Schakel dit in om gegevens over problemen met de IMAP-verbinding te verstrekken die u tijdens de IMAP-server installatie hebt ervaren.",
"SettingsEnableIMAPLogs_Title": "IMAP Protocol Logs inschakelen",
"SettingsEnableLogs_Description": "Mogelijk heb ik de logs nodig om de door jou geopende problemen op GitHub te kunnen analyseren. Geen van de logs zal uw inloggegevens of gevoelige informatie bevatten.",
"SettingsEnableLogs_Description": "Mogelijk heb ik de logs nodig om uw problemen op GitHub te analyseren. Geen van de logs zal uw inloggegevens of gevoelige informatie bevatten.",
"SettingsEnableLogs_Title": "Logs inschakelen",
"SettingsEnableSignature": "Handtekening inschakelen",
"SettingsExpandOnStartup_Description": "Set whether Wino should expand this account's folders on startup.",
"SettingsExpandOnStartup_Description": "Bepaal of de mappen van dit account uitgeklapt moeten worden bij opstarten van Wino.",
"SettingsExpandOnStartup_Title": "Menu uitvouwen bij opstarten",
"SettingsExternalContent_Description": "Manage external content settings when rendering mails.",
"SettingsExternalContent_Title": "External Content",
"SettingsFocusedInbox_Description": "Set whether Inbox should be split into two as Focused - Other.",
"SettingsExternalContent_Description": "Beheer instellingen voor externe inhoud wanneer e-mails worden weergegeven.",
"SettingsExternalContent_Title": "Externe inhoud",
"SettingsFocusedInbox_Description": "Bepaal of Inbox verdeeld moet worden in Prioriteit - Overige",
"SettingsFocusedInbox_Title": "Inbox Prioriteit",
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
"SettingsFolderMenuStyle_Title": "Create Nested Folders",
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
"SettingsFolderMenuStyle_Description": "Bepaal of accountmappen wel/niet binnen een accountmenu zitten. Schakel dit uit als u voorkeur hebt voor het oude systeemmenu van Windows Mail.",
"SettingsFolderMenuStyle_Title": "Submappen aanmaken",
"SettingsFolderOptions_Description": "Wijzig individuele mapinstellingen zoals het in- of uitschakelen van synchronisatie of weergeven/verbergen van de badge voor ongelezen e-mails.",
"SettingsFolderOptions_Title": "Map configuratie",
"SettingsFolderSync_Description": "Enable or disable specific folders for synchronization.",
"SettingsFolderSync_Description": "In- of uitschakelen van het synchroniseren van specifieke mappen.",
"SettingsFolderSync_Title": "Map synchronisatie",
"SettingsFontFamily_Title": "Lettertype",
"SettingsFontPreview_Title": "Voorbeeld",
"SettingsFontSize_Title": "Lettergrootte",
"SettingsHoverActionCenter": "Middelste actie",
"SettingsHoverActionLeft": "Linkse actie",
"SettingsHoverActionRight": "Rechtse actie",
"SettingsHoverActions_Description": "Select 3 actions to show up when you hover over the mails with cursor.",
"SettingsHoverActions_Title": "Hover Actions",
"SettingsLanguage_Description": "Change display language for Wino.",
"SettingsHoverActionLeft": "Linker actie",
"SettingsHoverActionRight": "Rechter actie",
"SettingsHoverActions_Description": "Selecteer 3 acties die verschijnen als u met de cursor de e-mails aanwijst.",
"SettingsHoverActions_Title": "Aanwijsacties",
"SettingsLanguage_Description": "Verander de weergavetaal voor Wino.",
"SettingsLanguage_Title": "Weergavetaal",
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
"SettingsLanguageTime_Description": "Wino weergavetaal, voorkeur tijdnotatie",
"SettingsLanguageTime_Title": "Tijd en Taal",
"SettingsLinkAccounts_Description": "Merge multiple accounts into one. See mails from one Inbox together.",
"SettingsLinkAccounts_Description": "Voeg meerdere account samen. Bekijk e-mails gezamenlijk vanuit één Inbox.",
"SettingsLinkAccounts_Title": "Gekoppelde accounts aanmaken",
"SettingsLinkedAccountsSave_Description": "Modify the current link with the new accounts.",
"SettingsLinkedAccountsSave_Description": "Pas de huidige koppeling met nieuwe accounts aan.",
"SettingsLinkedAccountsSave_Title": "Wijzigingen opslaan",
"SettingsLoadImages_Title": "Afbeeldingen automatisch laden",
"SettingsLoadPlaintextLinks_Title": "Convert plaintext links to clickable links",
"SettingsLoadPlaintextLinks_Title": "Standaardtekst koppelingen omzetten naar klikbare koppelingen",
"SettingsLoadStyles_Title": "Stijlen automatisch laden",
"SettingsMailListActionBar_Description": "Aktionsleiste am oberen Rand der Nachrichtenliste aus-/einblenden.",
"SettingsMailListActionBar_Title": "Toon e-mail actielijst",
"SettingsMailSpacing_Description": "Adjust the spacing for listing mails.",
"SettingsMailSpacing_Title": "Dichtheid",
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
"SettingsMailListActionBar_Description": "Verberg/toon de actiebalk bovenaan de berichtenlijst.",
"SettingsMailListActionBar_Title": "Toon e-maillijst acties",
"SettingsMailSpacing_Description": "Pas de afstand aan voor het weergeven van berichten.",
"SettingsMailSpacing_Title": "Mail afstand",
"SettingsManageAccountSettings_Description": "Meldingen, handtekeningen, synchronisatie en andere instellingen per account.",
"SettingsManageAccountSettings_Title": "Accountinstellingen beheren",
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
"SettingsManageAliases_Description": "Bekijk, wijzig of verwijder e-mail aliassen die zijn toegewezen aan dit account.",
"SettingsManageAliases_Title": "Aliassen",
"SettingsEditAccountDetails_Title": "Edit Account Details",
"SettingsEditAccountDetails_Description": "Change account name, sender name and assign a new color if you like.",
"SettingsManageLink_Description": "Move items to add new link or remove existing link.",
"SettingsManageLink_Title": "Manage Link",
"SettingsMarkAsRead_Description": "Change what should happen to the selected item.",
"SettingsMarkAsRead_DontChange": "Don't automatically mark item as read",
"SettingsMarkAsRead_SecondsToWait": "Aantal seconden wachten: ",
"SettingsMarkAsRead_Timer": "When viewed in the reading pane",
"SettingsEditAccountDetails_Title": "Bewerk accountdetails",
"SettingsEditAccountDetails_Description": "Wijzig accountnaam, naam van afzender en wijs een kleur toe indien gewenst.",
"SettingsManageLink_Description": "Verplaats items naar een nieuwe koppeling of verwijder een bestaande koppeling.",
"SettingsManageLink_Title": "Koppeling beheren",
"SettingsMarkAsRead_Description": "Wijzig wat er met geselecteerde items moet gebeuren.",
"SettingsMarkAsRead_DontChange": "Items niet automatisch als gelezen markeren",
"SettingsMarkAsRead_SecondsToWait": "Aantal seconden om te wachten: ",
"SettingsMarkAsRead_Timer": "Indien weergegeven in het leesvenster",
"SettingsMarkAsRead_Title": "Markeer bericht als gelezen",
"SettingsMarkAsRead_WhenSelected": "Wanneer geselecteerd",
"SettingsMessageList_Description": "Change how your messages should be organized in mail list.",
"SettingsMessageList_Description": "Wijzig hoe uw berichten gerangschikt moeten worden in de e-maillijst.",
"SettingsMessageList_Title": "Berichtenlijst",
"SettingsNoAccountSetupMessage": "You didn't setup any accounts yet.",
"SettingsNotifications_Description": "Turn on or off notifications for this account.",
"SettingsNoAccountSetupMessage": "U heeft nog geen accounts ingesteld.",
"SettingsNotifications_Description": "Meldingen voor dit account in- of uitschakelen.",
"SettingsNotifications_Title": "Meldingen",
"SettingsNotificationsAndTaskbar_Description": "Change whether notifications should be displayed and taskbar badge for this account.",
"SettingsNotificationsAndTaskbar_Title": "Notifications & Taskbar",
"SettingsNotificationsAndTaskbar_Description": "Bepaal of meldingen en de taakbalk badge weergegeven moeten worden voor dit account.",
"SettingsNotificationsAndTaskbar_Title": "Meldingen en taakbalk",
"SettingsOptions_Title": "Instellingen",
"SettingsPaneLengthReset_Description": "Reset the size of the mail list to original if you have issues with it.",
"SettingsPaneLengthReset_Title": "Reset Mail List Size",
"SettingsPaypal_Description": "Show much more love ❤️ All donations are appreciated.",
"SettingsPaneLengthReset_Description": "Reset de grootte van de e-maillijst naar de originele staat als u problemen hiermee ondervindt.",
"SettingsPaneLengthReset_Title": "Grootte van e-maillijst herstellen",
"SettingsPaypal_Description": "Toon veel meer liefde ❤️ Alle donaties worden gewaardeerd.",
"SettingsPaypal_Title": "Doneren via PayPal",
"SettingsPersonalization_Description": "Change appearance of Wino as you like.",
"SettingsPersonalization_Description": "Wijzig het uiterlijk van Wino naar uw voorkeur.",
"SettingsPersonalization_Title": "Personalisatie",
"SettingsPersonalizationMailDisplayCompactMode": "Compacte modus",
"SettingsPersonalizationMailDisplayMediumMode": "Gezellige modus",
"SettingsPersonalizationMailDisplaySpaciousMode": "Ruime modus",
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
"SettingsPersonalizationMailDisplayMediumMode": "Gemiddelde modus",
"SettingsPersonalizationMailDisplaySpaciousMode": "Uitgebreide modus",
"SettingsPrefer24HourClock_Description": "Tijdstempels van ontvangen e-mails worden in 24-uursnotatie weergegeven in plaats van 12-uursnotatie (AM/PM)",
"SettingsPrefer24HourClock_Title": "Tijd in 24-uursnotatie weergeven",
"SettingsPrivacyPolicy_Description": "Privacybeleid bekijken",
"SettingsPrivacyPolicy_Title": "Privacybeleid",
"SettingsReadComposePane_Description": "Lettertypen, externe inhoud.",
"SettingsReadComposePane_Title": "Lezer & Opsteller",
"SettingsReader_Title": "Lezer",
"SettingsReaderFont_Title": "Standaard lezer lettertype",
"SettingsReaderFontFamily_Description": "Wijzig de standaard lettertype en lettergrootte voor het lezen van berichten.",
"SettingsRenameMergeAccount_Description": "Change the display name of the linked accounts.",
"SettingsReaderFont_Title": "Standaard Lezer lettertype",
"SettingsReaderFontFamily_Description": "Wijzig de standaard lettertype en lettergrootte voor het lezen van e-mails.",
"SettingsRenameMergeAccount_Description": "Verander de weergavenaam van gekoppelde accounts.",
"SettingsRenameMergeAccount_Title": "Naam wijzigen",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsReorderAccounts_Title": "Accounts opnieuw indelen",
"SettingsSemanticZoom_Description": "This will allow you to click on the headers in messages list and go to specific date",
"SettingsSemanticZoom_Title": "Semantic Zoom for Date Headers",
"SettingsShowPreviewText_Description": "Hide/show the preview text.",
"SettingsShowPreviewText_Title": "Voorbeeld tekst weergeven",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsReorderAccounts_Description": "Verander de volgorde van accounts in de accountlijst.",
"SettingsReorderAccounts_Title": "Accounts herangschikken",
"SettingsSemanticZoom_Description": "Hiermee kunt u op koppen in de berichtenlijst klikken en naar een specifieke datum springen",
"SettingsSemanticZoom_Title": "Semantische zoom voor datumkoppen",
"SettingsShowPreviewText_Description": "Verberg/toon voorbeeldtekst.",
"SettingsShowPreviewText_Title": "Voorbeeldtekst weergeven",
"SettingsShowSenderPictures_Description": "Verberg/toon miniatuurafbeeldingen van afzender.",
"SettingsShowSenderPictures_Title": "Avatars van afzenders tonen",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Gebruik gravatar als foto voor afzender (indien beschikbaar)",
"SettingsEnableFavicons_Title": "Domein iconen (Favicons)",
"SettingsEnableFavicons_Description": "Gebruik domein favicons als foto voor afzender (indien beschikbaar)",
"SettingsMailList_ClearAvatarsCache_Button": "Cache van avatars legen",
"SettingsSignature_AddCustomSignature_Button": "Handtekening toevoegen",
"SettingsSignature_AddCustomSignature_Title": "Aangepaste handtekening toevoegen",
"SettingsSignature_DeleteSignature_Title": "Handtekening verwijderen",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_Description": "Accounthandtekeningen beheren",
"SettingsSignature_EditSignature_Title": "Handtekening aanpassen",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_ForFollowingMessages_Title": "Voor antwoorden/doorsturingen",
"SettingsSignature_ForNewMessages_Title": "Voor nieuwe berichten",
"SettingsSignature_NoneSignatureName": "Geen",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_SignatureDefaults": "Standaard handtekeningen",
"SettingsSignature_Signatures": "Handtekeningen",
"SettingsSignature_Title": "Handtekening",
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
"SettingsStartupItem_Title": "Startup Item",
"SettingsStartupItem_Description": "Te openen Inbox van primaire account bij opstarten.",
"SettingsStartupItem_Title": "Opstart account",
"SettingsStore_Description": "Toon wat liefde ❤️",
"SettingsStore_Title": "Rate in Store",
"SettingsTaskbarBadge_Description": "Include unread mail count in taskbar icon.",
"SettingsStore_Title": "Beoordeel in Store",
"SettingsTaskbarBadge_Description": "Includeer aantal ongelezen e-mails in taakbalkpictogram.",
"SettingsTaskbarBadge_Title": "Taakbalk badge",
"SettingsThreads_Description": "Organize messages into conversation threads.",
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SettingsThreads_Description": "Voeg berichten samen tot gesprekken.",
"SettingsThreads_Title": "Gesprekken",
"SettingsUnlinkAccounts_Description": "Verwijder de koppeling tussen accounts. Dit zal niet uw accounts verwijderen.",
"SettingsUnlinkAccounts_Title": "Ontkoppel accounts",
"SettingsMailRendering_ActionLabels_Title": "Actielabels",
"SettingsMailRendering_ActionLabels_Description": "Actielabels weergeven.",
"SignatureDeleteDialog_Message": "Weet u zeker dat u \"{0}\" handtekening wilt verwijderen?",
"SignatureDeleteDialog_Title": "Verwijder handtekening",
"SignatureEditorDialog_SignatureName_Placeholder": "Noem uw handtekening",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureEditorDialog_SignatureName_TitleNew": "Handtekening naam",
"SignatureEditorDialog_Title": "Signature Editor",
"SortingOption_Date": "door datum",
"SortingOption_Name": "door naam",
"StoreRatingDialog_MessageFirstLine": "All feedbacks are appreciated and they will make much Wino better in the future. Would you like to rate Wino in Microsoft Store?",
"StoreRatingDialog_MessageSecondLine": "Would you like to rate Wino Mail in Microsoft Store?",
"StoreRatingDialog_Title": "Vind je Wino leuk?",
"SignatureEditorDialog_SignatureName_TitleEdit": "Huidige naam handtekening: {0}",
"SignatureEditorDialog_SignatureName_TitleNew": "Naam handtekening",
"SignatureEditorDialog_Title": "Handtekening bewerker",
"SortingOption_Date": "Op datum",
"SortingOption_Name": "Op naam",
"StoreRatingDialog_MessageFirstLine": "Alle feedback wordt gewaardeerd en zal Wino in de toekomst verbeteren. Wilt u Wino beoordelen in de Microsoft Store?",
"StoreRatingDialog_MessageSecondLine": "Wilt u Wino Mail beoordelen in de Microsoft Store?",
"StoreRatingDialog_Title": "Bent u tevreden over Wino?",
"SynchronizationFolderReport_Failed": "Synchronisatie is mislukt",
"SynchronizationFolderReport_Success": "Up-to-date",
"SystemFolderConfigDialog_ArchiveFolderDescription": "Archived messages will be moved to here.",
"SystemFolderConfigDialog_ArchiveFolderHeader": "Archief map",
"SystemFolderConfigDialog_DeletedFolderDescription": "Deleted messages will be moved to here.",
"SystemFolderConfigDialog_DeletedFolderHeader": "Verwijderde map",
"SystemFolderConfigDialog_DraftFolderDescription": "New mails/replies will be crafted in here.",
"SystemFolderConfigDialog_DraftFolderHeader": "Concepten map",
"SystemFolderConfigDialog_JunkFolderDescription": "All spam/junk mails will be here.",
"SystemFolderConfigDialog_JunkFolderHeader": "Ongewenste map",
"SystemFolderConfigDialog_MessageFirstLine": "This IMAP server doesn't support SPECIAL-USE extension hence Wino couldn't setup the system folders properly.",
"SystemFolderConfigDialog_MessageSecondLine": "Please select the appropriate folders for specific functionalities.",
"SystemFolderConfigDialog_SentFolderDescription": "Folder that sent messages will be stored.",
"SystemFolderConfigDialog_SentFolderHeader": "Verzonden map",
"SynchronizationFolderReport_Success": "Bijgewerkt",
"SystemFolderConfigDialog_ArchiveFolderDescription": "Gearchiveerde berichten zullen hier worden verplaatst.",
"SystemFolderConfigDialog_ArchiveFolderHeader": "Map Archief",
"SystemFolderConfigDialog_DeletedFolderDescription": "Verwijderde berichten zullen hier worden verplaatst",
"SystemFolderConfigDialog_DeletedFolderHeader": "Map Verwijderd",
"SystemFolderConfigDialog_DraftFolderDescription": "Nieuwe e-mails/antwoorden zullen hier worden aangemaakt.",
"SystemFolderConfigDialog_DraftFolderHeader": "Map Concepten",
"SystemFolderConfigDialog_JunkFolderDescription": "Alle ongewenste e-mails zullen hier zijn.",
"SystemFolderConfigDialog_JunkFolderHeader": "Map Ongewenst",
"SystemFolderConfigDialog_MessageFirstLine": "Deze IMAP-server ondersteunt geen SPECIAL-USE extensie en Wino kan hierdoor de systeemmappen niet correct instellen.",
"SystemFolderConfigDialog_MessageSecondLine": "Selecteert de juiste mappen voor specifieke functionaliteiten.",
"SystemFolderConfigDialog_SentFolderDescription": "Map waarin verzonden berichten worden opgeslagen.",
"SystemFolderConfigDialog_SentFolderHeader": "Map Verzonden",
"SystemFolderConfigDialog_Title": "Systeemmappen configureren",
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Some of the system folders are used more than once in the configuration.",
"SystemFolderConfigDialogValidation_InboxSelected": "You can't assign Inbox folder to any other system folder.",
"SystemFolderConfigSetupSuccess_Message": "System folders are successfully configured.",
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Sommige systeemmappen worden meerdere malen gebruikt in de configuratie.",
"SystemFolderConfigDialogValidation_InboxSelected": "U kunt de map Inbox niet aan een andere systeemmap toewijzen.",
"SystemFolderConfigSetupSuccess_Message": "Systeemmappen zijn succesvol geconfigureerd.",
"SystemFolderConfigSetupSuccess_Title": "Systeemmappen instellen",
"TestingImapConnectionMessage": "Testing server connection...",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerDisconnectedButton_Title": "geen verbinding",
"TitleBarServerReconnectButton_Title": "opnieuw verbinden",
"TitleBarServerReconnectingButton_Title": "verbinden",
"TestingImapConnectionMessage": "Bezig met testen van serververbinding...",
"TitleBarServerDisconnectedButton_Description": "Wino is van de netwerkverbinding verbroken. Klik op opnieuw verbinden om de verbinding te herstellen.",
"TitleBarServerDisconnectedButton_Title": "Geen verbinding",
"TitleBarServerReconnectButton_Title": "Opnieuw verbinden",
"TitleBarServerReconnectingButton_Title": "Aan het verbinden",
"Today": "Vandaag",
"UnknownAddress": "Onbekend adres",
"UnknownDateHeader": "Onbekende datum",
"UnknownGroupAddress": "unknown Mail Group Address",
"UnknownGroupAddress": "Onbekend adres e-mailgroep",
"UnknownSender": "Onbekende afzender",
"Unsubscribe": "Afmelden",
"Unsubscribe": "Uitschrijven",
"ViewContactDetails": "Bekijk details",
"WinoUpgradeDescription": "Wino biedt 3 gratis accounts om mee te starten. Als u meer dan 3 accounts nodig heeft, upgrade dan alstublieft",
"WinoUpgradeMessage": "Upgraden naar Onbeperkte accounts",
"WinoUpgradeMessage": "Upgraden naar Onbeperkte aantal accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} van de {1} gratis accounts gebruikt.",
"Yesterday": "Gisteren"
"Yesterday": "Gisteren",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Typ konta",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Weryfikacja serwera IMAP się nie powiodła.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Ten serwer żąda SSL handshake, aby kontynuować. Proszę potwierdzić szczegóły certyfikatu poniżej.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Zezwól na kontynuowanie konfiguracji konta przez handshake.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Własny motyw",
"SettingsDeleteAccount_Description": "Usuń wszystkie e-maile i dane uwierzytelniające powiązane z tym kontem.",
"SettingsDeleteAccount_Title": "Usuń to konto",
"SettingsDeleteProtection_Description": "Czy Wino powinno poprosić Cię o potwierdzenie za każdym razem, gdy próbujesz trwale usunąć wiadomość za pomocą kombinacji Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Ochrona przed trwałym usunięciem",
"SettingsDiagnostics_Description": "Dla programistów",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Pokaż podgląd tekstu",
"SettingsShowSenderPictures_Description": "Ukryj/pokaż miniaturki zdjęć nadawcy.",
"SettingsShowSenderPictures_Title": "Pokaż awatary nadawcy",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Dodaj podpis",
"SettingsSignature_AddCustomSignature_Title": "Dodaj własny podpis",
"SettingsSignature_DeleteSignature_Title": "Usuń podpis",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Wątkowanie konwersacji",
"SettingsUnlinkAccounts_Description": "Usuń łącze pomiędzy kontami. To nie spowoduje usunięcie Twoich kont.",
"SettingsUnlinkAccounts_Title": "Odłącz konto",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Czy na pewno chcesz usunąć podpis \"{0}\"?",
"SignatureDeleteDialog_Title": "Usuń podpis",
"SignatureEditorDialog_SignatureName_Placeholder": "Nazwij swój podpis",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino oferuje 3 konta za darmo. Jeśli potrzebujesz więcej niż trzy konta, proszę wykup pakiet dodający tę funkcję",
"WinoUpgradeMessage": "Ulepsz do nielimitowanych kont",
"WinoUpgradeRemainingAccountsMessage": "Wykorzystano {0} z {1} darmowych kont.",
"Yesterday": "Wczoraj"
"Yesterday": "Wczoraj",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Tipo de conta",
"IMAPSetupDialog_ValidationSuccess_Title": "Êxito",
"IMAPSetupDialog_ValidationSuccess_Message": "Verificado com sucesso",
"IMAPSetupDialog_SaveImapSuccess_Title": "Sucesso",
"IMAPSetupDialog_SaveImapSuccess_Message": "Configurações do IMAP salvas com sucesso.",
"IMAPSetupDialog_ValidationFailed_Title": "Validação do servidor IMAP falhou.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Este servidor está solicitando um Handshake SSL para continuar. Por favor, confirme os detalhes do certificado abaixo.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Permitir que o handshake continue configurando a sua conta.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Tema Personalizado",
"SettingsDeleteAccount_Description": "Apague todos os e-mails e credenciais associados a esta conta.",
"SettingsDeleteAccount_Title": "Apagar esta conta",
"SettingsDeleteProtection_Description": "O Wino deveria pedir para confirmar toda vez que você tentar excluir permanentemente um e-mail usando as teclas Shift + Del?",
"SettingsDeleteProtection_Description": "O Wino deve solicitar confirmação sempre que você tentar excluir permanentemente um e-mail usando as teclas Shift + Del?",
"SettingsDeleteProtection_Title": "Proteção de exclusão permanente",
"SettingsDiagnostics_Description": "Para desenvolvedores",
"SettingsDiagnostics_DiagnosticId_Description": "Compartilhe esta identificação com os desenvolvedores quando solicitado para obter ajuda para os problemas que você experimentar no Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Mostrar Pré-visualização de Texto",
"SettingsShowSenderPictures_Description": "Ocultar/exibir imagens do remetente da miniatura.",
"SettingsShowSenderPictures_Title": "Mostrar Avatares de Remetentes",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Usar gravatar (se disponível) como imagem do remetente",
"SettingsEnableFavicons_Title": "Ícones de domínio (Favicons)",
"SettingsEnableFavicons_Description": "Usar os favicons de domínio (se disponível) como imagem do remetente",
"SettingsMailList_ClearAvatarsCache_Button": "Limpar cache de avatares",
"SettingsSignature_AddCustomSignature_Button": "Adicionar assinatura",
"SettingsSignature_AddCustomSignature_Title": "Adicionar assinatura personalizada",
"SettingsSignature_DeleteSignature_Title": "Excluir assinatura",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "* Encadeamento de conversas",
"SettingsUnlinkAccounts_Description": "Remova o vínculo entre as contas. Isso não excluirá suas contas.",
"SettingsUnlinkAccounts_Title": "Desvincular Contas",
"SettingsMailRendering_ActionLabels_Title": "Rótulos de ação",
"SettingsMailRendering_ActionLabels_Description": "Mostrar rótulos de ação.",
"SignatureDeleteDialog_Message": "Tem certeza que deseja excluir a assinatura \"{0}\"?",
"SignatureDeleteDialog_Title": "Excluir assinatura",
"SignatureEditorDialog_SignatureName_Placeholder": "Nomeie sua assinatura",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino oferece de graça 3 contas para começar. Se você precisar de mais de 3 contas, por favor, atualize",
"WinoUpgradeMessage": "Atualizar para Contas Ilimitadas",
"WinoUpgradeRemainingAccountsMessage": "{0} de {1} contas gratuitas usadas.",
"Yesterday": "Ontem"
"Yesterday": "Ontem",
"SettingsAppPreferences_EmailSyncInterval_Title": "Intervalo de sincronização de e-mail",
"SettingsAppPreferences_EmailSyncInterval_Description": "Intervalo de sincronização automática de e-mails (minutos). Esta configuração será aplicada apenas após reiniciar o Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Tip cont",
"IMAPSetupDialog_ValidationSuccess_Title": "Succes",
"IMAPSetupDialog_ValidationSuccess_Message": "Validare reușită",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Validarea serverului IMAP a eșuat.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Acest server solicită un SSL handshake pentru a continua. Vă rugăm să confirmați detaliile certificatului de mai jos.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Permiteți handshake-ului să continue configurarea contului.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Temă Personalizată",
"SettingsDeleteAccount_Description": "Ștergeți toate e-mail-urile și acreditările asociate cu acest cont.",
"SettingsDeleteAccount_Title": "Ștergeți acest cont",
"SettingsDeleteProtection_Description": "Ar trebui ca Wino să vă ceară o confirmare de fiecare dată când încercați să ștergeți definitiv un e-mail folosind tastele Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Protecție Ștergere Permanentă",
"SettingsDiagnostics_Description": "Pentru dezvoltatori",
"SettingsDiagnostics_DiagnosticId_Description": "Partajați acest ID cu dezvoltatorii atunci când le cereți ajutor pentru problemele pe care le întâmpinați în Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Afișează textul de previzualizare",
"SettingsShowSenderPictures_Description": "Ascundeți/afișați miniaturi imagini expeditor.",
"SettingsShowSenderPictures_Title": "Afișați avatarele expeditorului",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Adăugare semnătură",
"SettingsSignature_AddCustomSignature_Title": "Adăugare semnătură personalizată",
"SettingsSignature_DeleteSignature_Title": "Ștergere semnătură",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Aranjare mesaje în conversație",
"SettingsUnlinkAccounts_Description": "Eliminați legătura dintre conturi. Acest lucru nu va șterge conturile dvs.",
"SettingsUnlinkAccounts_Title": "Deasociere Conturi",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Sigur doriți să ștergeți semnătura „{0}”?",
"SignatureDeleteDialog_Title": "Ștergeți semnătura",
"SignatureEditorDialog_SignatureName_Placeholder": "Numiți-vă semnătura",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino oferă 3 conturi pentru început gratuit. Dacă aveți nevoie de mai mult de 3 conturi, vă rugăm să faceți upgrade",
"WinoUpgradeMessage": "Upgrade la Conturi Nelimitate",
"WinoUpgradeRemainingAccountsMessage": "{0} din {1} conturi gratuite folosite.",
"Yesterday": "Ieri"
"Yesterday": "Ieri",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Тип учетной записи",
"IMAPSetupDialog_ValidationSuccess_Title": "Success",
"IMAPSetupDialog_ValidationSuccess_Message": "Validation successful",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP Server validation failed.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "This server is requesting a SSL handshake to continue. Please confirm the certificate details below.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Allow the handshake to continue setting up your account.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Пользовательская тема",
"SettingsDeleteAccount_Description": "Удалите все письма и учетные данные, связанные с этой учетной записью.",
"SettingsDeleteAccount_Title": "Удалить эту учетную запись",
"SettingsDeleteProtection_Description": "Должен ли Wino запрашивать у вас подтверждение каждый раз, когда вы пытаетесь окончательно удалить письмо с помощью клавиш Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Защита от окончательного удаления",
"SettingsDiagnostics_Description": "Для разработчиков",
"SettingsDiagnostics_DiagnosticId_Description": "Share this ID with the developers when asked to get help for the issues you experience in Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Показать текст предпросмотра",
"SettingsShowSenderPictures_Description": "Скрыть/показать миниатюру изображения отправителя.",
"SettingsShowSenderPictures_Title": "Показывать аватары отправителя",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Добавить подпись",
"SettingsSignature_AddCustomSignature_Title": "Добавить свою подпись",
"SettingsSignature_DeleteSignature_Title": "Удалить подпись",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Беседы",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Отвязать учетные записи",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Вы уверены, что хотите удалить подпись \"{0}\"?",
"SignatureDeleteDialog_Title": "Удалить подпись",
"SignatureEditorDialog_SignatureName_Placeholder": "Имя вашей подписи",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino предлагает 3 аккаунта для начала бесплатно. Если вам нужно больше 3 аккаунтов, пожалуйста, обновитесь",
"WinoUpgradeMessage": "Улучшить до неограниченного количества учетных записей",
"WinoUpgradeRemainingAccountsMessage": "Использовано {0} из {1} бесплатных учетных записей.",
"Yesterday": "Вчера"
"Yesterday": "Вчера",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -23,9 +23,9 @@
"AccountSettingsDialog_AccountName": "Zobrazované meno odosielateľa",
"AccountSettingsDialog_AccountNamePlaceholder": "napr. Ján Novák",
"AccountDetailsPage_Title": "Informácie o účte",
"AccountDetailsPage_Description": "Zmení názov účtu vo Wino a nastaví požadovaný názov odosielateľa.",
"AccountDetailsPage_Description": "Zmena názvu účtu vo Wino a nastavenie požadovaného názvu odosielateľa.",
"AccountDetailsPage_ColorPicker_Title": "Farba účtu",
"AccountDetailsPage_ColorPicker_Description": "Priradí farbu novému účtu na zafarbenie jeho symbolu v zozname.",
"AccountDetailsPage_ColorPicker_Description": "Priradenie farby novému účtu na zafarbenie jeho symbolu v zozname.",
"AddHyperlink": "Pridať",
"AppCloseBackgroundSynchronizationWarningTitle": "Synchronizácia na pozadí",
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Aplikácia sa nebude spúšťať pri spustení systému Windows.",
@@ -79,9 +79,9 @@
"CalendarAllDayEventSummary": "celodenné udalosti",
"CalendarDisplayOptions_Color": "Farba",
"CalendarDisplayOptions_Expand": "Rozšíriť",
"CalendarItem_DetailsPopup_JoinOnline": "Join online",
"CalendarItem_DetailsPopup_JoinOnline": "Pripojiť online",
"CalendarItem_DetailsPopup_ViewEventButton": "Zobraziť udalosť",
"CalendarItem_DetailsPopup_ViewSeriesButton": "View series",
"CalendarItem_DetailsPopup_ViewSeriesButton": "Zobraziť sériu",
"CalendarItemAllDay": "celý deň",
"CategoriesFolderNameOverride": "Kategórie",
"Center": "Na stred",
@@ -98,7 +98,7 @@
"ComposerToPlaceholder": "na vloženie adresy stlačte enter",
"CreateAccountAliasDialog_AliasAddress": "Adresa",
"CreateAccountAliasDialog_AliasAddressPlaceholder": "napr. podpora@mojadomena.sk",
"CreateAccountAliasDialog_Description": "Uistite sa, že server odchádzajúcej pošty umožňuje odosielanie e-mailov z tohto aliasu.",
"CreateAccountAliasDialog_Description": "Uistite sa, že server odchádzajúcej pošty umožňuje odosielanie správ z tohto aliasu.",
"CreateAccountAliasDialog_ReplyToAddress": "Adresa na odpoveď",
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "spravca@mojadomena.sk",
"CreateAccountAliasDialog_Title": "Vytvoriť alias účtu",
@@ -121,7 +121,7 @@
"DialogMessage_AliasNotSelectedTitle": "Chýbajúci alias",
"DialogMessage_CantDeleteRootAliasMessage": "Koreňový alias nie je možné odstrániť. Je to vaša hlavná identita spojená s nastavením vášho účtu.",
"DialogMessage_CantDeleteRootAliasTitle": "Nie je možné odstrániť alias",
"DialogMessage_CleanupFolderMessage": "Chcete natrvalo odstrániť všetky e-maily v tomto priečinku?",
"DialogMessage_CleanupFolderMessage": "Chcete natrvalo odstrániť všetky správy v tomto priečinku?",
"DialogMessage_CleanupFolderTitle": "Vyprázdnenie priečinka",
"DialogMessage_ComposerMissingRecipientMessage": "Správa musí obsahovať príjemcu.",
"DialogMessage_ComposerValidationFailedTitle": "Overenie zlyhalo",
@@ -142,7 +142,7 @@
"DialogMessage_InvalidAliasTitle": "Neplatný alias",
"DialogMessage_NoAccountsForCreateMailMessage": "Nemáte žiadne účty, aby ste mohli vytvoriť správu.",
"DialogMessage_NoAccountsForCreateMailTitle": "Chýbajúci účet",
"DialogMessage_PrintingFailedMessage": "Tento e-mail sa nepodarilo vytlačiť. Výsledok: {0}",
"DialogMessage_PrintingFailedMessage": "Túto správu sa nepodarilo vytlačiť. Výsledok: {0}",
"DialogMessage_PrintingFailedTitle": "Neúspešné",
"DialogMessage_PrintingSuccessMessage": "Správa bola odoslaná do tlačiarne.",
"DialogMessage_PrintingSuccessTitle": "Úspešné",
@@ -154,7 +154,7 @@
"DialogMessage_UnlinkAccountsConfirmationTitle": "Odpojiť účty",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Prejsť na webstránku",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Ak nechcete dostávať správy od {0}, prejdite na ich webovú stránku a odhláste sa z odberu.",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Nechcete dostávať správy od {0}? Wino zruší odber za vás odoslaním e-mailu z vášho e-mailového účtu na adresu {1}.",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Nechcete dostávať správy od {0}? Wino zruší odber za vás odoslaním správy z vášho e-mailového účtu na adresu {1}.",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Nechcete dostávať správy od {0}?",
"DialogMessage_UnsubscribeConfirmationTitle": "Zrušiť odber",
"DiscordChannelDisclaimerMessage": "Wino nemá vlastný Discord server, ale špeciálny kanál 'wino-mail' je umiestnený na serveri 'Developer Sanctuary'.\nAk chcete získať aktuálne informácie o Wino, pripojte sa k serveru Developer Sanctuary a sledujte kanál 'wino-mail' v časti 'Community Projects'.\n\nBudete presmerovaní na adresu URL servera, pretože Discord nepodporuje pozvánky na kanály.",
@@ -214,7 +214,7 @@
"FolderOperation_Empty": "Vyprázdniť tento priečinok",
"FolderOperation_MarkAllAsRead": "Označiť všetko ako prečítané",
"FolderOperation_Move": "Presunúť",
"FolderOperation_None": "None",
"FolderOperation_None": "Žiadne",
"FolderOperation_Pin": "Pripnúť",
"FolderOperation_Rename": "Premenovať",
"FolderOperation_Unpin": "Odopnúť",
@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Typ účtu",
"IMAPSetupDialog_ValidationSuccess_Title": "Úspešné",
"IMAPSetupDialog_ValidationSuccess_Message": "Overenie úspešné",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Overenie servera IMAP zlyhalo.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Tento server žiada o SSL handshake na pokračovanie. Potvrďte, prosím, údaje o certifikáte uvedené nižšie.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Povoľte handshake a pokračujte v nastavovaní účtu.",
@@ -292,7 +294,7 @@
"IMAPSetupDialog_Title": "Pokročilá konfigurácia IMAP",
"IMAPSetupDialog_Username": "Používateľské meno",
"IMAPSetupDialog_UsernamePlaceholder": "jan.novak, jan.novak@mai.sk, mail.sk/jan.novak",
"IMAPSetupDialog_UseSameConfig": "Na odosielanie e-mailu použiť rovnaké používateľské meno a heslo",
"IMAPSetupDialog_UseSameConfig": "Na odosielanie správy použiť rovnaké používateľské meno a heslo",
"Info_AccountCreatedMessage": "Vytvorený účet {0}",
"Info_AccountCreatedTitle": "Vytvorenie účtu",
"Info_AccountCreationFailedTitle": "Vytvorenie účtu zlyhalo",
@@ -323,13 +325,13 @@
"Info_FileLaunchFailedTitle": "Nepodarilo sa spustiť súbor",
"Info_InvalidAddressMessage": "'{0}' nie je platná e-mailová adresa.",
"Info_InvalidAddressTitle": "Neplatná adresa",
"Info_InvalidMoveTargetMessage": "Nemôžete presunúť vybrané e-maily do tohto priečinka.",
"Info_InvalidMoveTargetMessage": "Nemôžete presunúť vybrané správy do tohto priečinka.",
"Info_InvalidMoveTargetTitle": "Neplatný priečinok na presun",
"Info_LogsNotFoundMessage": "Nie sú žiadne logy na zdieľanie.",
"Info_LogsNotFoundTitle": "Logy sa nenašli",
"Info_LogsSavedMessage": "{0} uložené do vybraného priečinka.",
"Info_LogsSavedTitle": "Uložené",
"Info_MailListSizeResetSuccessMessage": "Veľkosť zoznamu e-mailov bola obnovená.",
"Info_MailListSizeResetSuccessMessage": "Veľkosť zoznamu správ bola obnovená.",
"Info_MailRenderingFailedMessage": "Táto pošta je poškodená alebo sa nedá otvoriť.\n{0}",
"Info_MailRenderingFailedTitle": "Vykreslenie zlyhalo",
"Info_MessageCorruptedMessage": "Táto správa je poškodená.",
@@ -392,17 +394,17 @@
"MailOperation_MoveFocused": "Presunúť do Prioritné",
"MailOperation_MoveJunk": "Presunúť do Nevyžiadaná pošta",
"MailOperation_MoveOther": "Presunúť do Iné",
"MailOperation_Navigate": "Navigate",
"MailOperation_Navigate": "Prejsť",
"MailOperation_Print": "Tlačiť",
"MailOperation_Reply": "Odpovedať",
"MailOperation_ReplyAll": "Odpovedať všetkým",
"MailOperation_SaveAs": "Uložiť ako",
"MailOperation_SetFlag": "Nastaviť označenie",
"MailOperation_SetFlag": "Priradiť označenie",
"MailOperation_Unarchive": "Obnoviť z archívu",
"MailOperation_ViewMessageSource": "Zobraziť zdroj správy",
"MailOperation_Zoom": "Priblížiť",
"MailsSelected": "Označené položky: {0}",
"MarkFlagUnflag": "Mark as flagged/unflagged",
"MarkFlagUnflag": "Označiť ako označené/neoznačené",
"MarkReadUnread": "Označiť ako prečítané/neprečítané",
"MenuManageAccounts": "Spravovať účty",
"MenuMergedAccountItemAccountsSuffix": " účty",
@@ -465,26 +467,26 @@
"SearchPivotName": "Výsledky",
"SettingConfigureSpecialFolders_Button": "Konfigurovať",
"SettingsEditAccountDetails_IMAPConfiguration_Title": "Konfigurácia IMAP/SMTP",
"SettingsEditAccountDetails_IMAPConfiguration_Description": "Zmeňte nastavenia prichádzajúceho/odchádzajúceho servera.",
"SettingsEditAccountDetails_IMAPConfiguration_Description": "Zmena nastavenia prichádzajúceho/odchádzajúceho servera.",
"SettingsAbout_Description": "Ďalšie informácie o Wino.",
"SettingsAbout_Title": "O aplikácii",
"SettingsAboutGithub_Description": "Prejsť na systém sledovania chýb repozitára na Githube.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAboutVersion": "Verzia ",
"SettingsAboutWinoDescription": "Zjednodušený poštový klient pre zariadenia s Windowsom.",
"SettingsAccentColor_Description": "Zmení farbu motívu aplikácie",
"SettingsAccentColor_Description": "Zmena farby motívu aplikácie",
"SettingsAccentColor_Title": "Farba motívu",
"SettingsAccentColor_UseWindowsAccentColor": "Použiť moju farbu motívu z Windowsu",
"SettingsAccountManagementAppendMessage_Description": "Vytvorí kópiu správy v priečinku Odoslané po odoslaní konceptu. Túto funkciu zapnite, ak po odoslaní pošty v priečinku Odoslané nevidíte svoje správy.",
"SettingsAccountManagementAppendMessage_Description": "Vytvor kópiu správy v priečinku Odoslané po odoslaní konceptu. Túto funkciu zapnite, ak po odoslaní správy v priečinku Odoslané nevidíte svoje správy.",
"SettingsAccountManagementAppendMessage_Title": "Pripojiť správy do priečinka Odoslané",
"SettingsAccountName_Description": "Zmení názov účtu.",
"SettingsAccountName_Description": "Zmena názvu účtu.",
"SettingsAccountName_Title": "Názov účtu",
"SettingsApplicationTheme_Description": "Prispôsobte si Wino pomocou rôznych vlastných motívov aplikácie, ktoré sa vám budú páčiť.",
"SettingsApplicationTheme_Title": "Motív aplikácie",
"SettingsAppPreferences_CloseBehavior_Description": "Čo sa má stať po zatvorení aplikácie?",
"SettingsAppPreferences_CloseBehavior_Title": "Akcia pri zatváraní aplikácie",
"SettingsAppPreferences_Description": "Všeobecné nastavenia / predvoľby pre Wino Mail.",
"SettingsAppPreferences_SearchMode_Description": "Nastavte, či má Wino pri vyhľadávaní najprv skontrolovať načítané e-maily, alebo vyhľadávať online. Lokálne vyhľadávanie je vždy rýchlejšie a vždy môžete vykonať online vyhľadávanie, ak sa vaša pošta nenachádza vo výsledkoch vyhľadávania.",
"SettingsAppPreferences_Description": "Všeobecné nastavenia/predvoľby pre Wino Mail.",
"SettingsAppPreferences_SearchMode_Description": "Nastavte, či má Wino pri vyhľadávaní najprv skontrolovať načítané správy, alebo vyhľadávať online. Lokálne vyhľadávanie je vždy rýchlejšie a vždy môžete vykonať online vyhľadávanie, ak sa vaša pošta nenachádza vo výsledkoch vyhľadávania.",
"SettingsAppPreferences_SearchMode_Local": "Lokálne",
"SettingsAppPreferences_SearchMode_Online": "Online",
"SettingsAppPreferences_SearchMode_Title": "Predvolený režim vyhľadávania",
@@ -494,7 +496,7 @@
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimalizovať na panel úloh",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail nebude nikde bežať. Nebudete upozornení na príchod novej pošty. Ak chcete pokračovať v synchronizácii pošty, znovu spustite Wino Mail.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Ukončiť",
"SettingsAppPreferences_StartupBehavior_Description": "Povoľuje, aby sa aplikácia Wino Mail spúšťala minimalizovaná pri spustení Windowsu. Stále umožňuje prijímať oznámenia.",
"SettingsAppPreferences_StartupBehavior_Description": "Povoliť aplikácii Wino Mail, aby sa spúšťala minimalizovaná pri spustení Windowsu. Stále umožňuje prijímať oznámenia.",
"SettingsAppPreferences_StartupBehavior_Disable": "Zakázať",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail sa nespustí pri spustení Windowsu. To spôsobí, že po reštarte počítača vám nebudú zobrazovať oznámenia.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Správca alebo skupinové politiky zakázali spúšťanie aplikácií pri spustení. Wino Mail teda nie je možné nastaviť tak, aby sa spúšťal pri spustení Windowsu.",
@@ -508,18 +510,18 @@
"SettingsAutoSelectNextItem_Title": "Automaticky vybrať ďalšiu položku",
"SettingsAvailableThemes_Description": "Vyberte motív z vlastnej kolekcie Wino podľa svojho vkusu alebo použite vlastné motívy.",
"SettingsAvailableThemes_Title": "Dostupné motívy",
"SettingsCalendarSettings_Description": "Change first day of week, hour cell height and more...",
"SettingsCalendarSettings_Description": "Zmena prvého dňa v týždni, výška bunky hodiny a ďalšie…",
"SettingsCalendarSettings_Title": "Nastavenia kalendára",
"SettingsComposer_Title": "Editor",
"SettingsComposerFont_Title": "Predvolené písmo editora",
"SettingsComposerFontFamily_Description": "Zmení predvolenú rodinu písma a veľkosť písma pri písaní správ.",
"SettingsComposerFontFamily_Description": "Zmena predvolenej rodiny písma a veľkosť písma pri písaní správ.",
"SettingsConfigureSpecialFolders_Description": "Nastavenie priečinkov so špeciálnymi funkciami. Priečinky ako Archív, Doručená pošta a Koncepty sú nevyhnutné pre správne fungovanie aplikácie Wino.",
"SettingsConfigureSpecialFolders_Title": "Konfigurácia systémových priečinkov",
"SettingsCustomTheme_Description": "Vytvorte si vlastný motív s vlastným pozadím a farbou motívu.",
"SettingsCustomTheme_Title": "Vlastný motív",
"SettingsDeleteAccount_Description": "Odstráni všetky správy a prihlasovacie údaje spojené s týmto účtom.",
"SettingsDeleteAccount_Description": "Odstránenie všetkých správ a prihlasovacích údajov spojených s týmto účtom.",
"SettingsDeleteAccount_Title": "Odstrániť tento účet",
"SettingsDeleteProtection_Description": "Mal by vás Wino žiadať o potvrdenie vždy, keď budete chcieť trvalo odstrániť poštu pomocou klávesov Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Ochrana pred trvalým odstránením",
"SettingsDiagnostics_Description": "Pre vývojárov",
"SettingsDiagnostics_DiagnosticId_Description": "Zdieľajte toto ID s vývojármi, keď budete požiadaní o pomoc pri problémoch, ktoré sa vám vyskytnú v aplikácii Wino Mail.",
@@ -527,169 +529,178 @@
"SettingsDiagnostics_Title": "Diagnostika",
"SettingsDiscord_Description": "Získajte pravidelné informácie o vývoji, zapojte sa do diskusií o pláne vývoja a poskytnite spätnú väzbu.",
"SettingsDiscord_Title": "Kanál Discord",
"SettingsEditLinkedInbox_Description": "Add / remove accounts, rename or break the link between accounts.",
"SettingsEditLinkedInbox_Title": "Edit Linked Inbox",
"SettingsElementTheme_Description": "Select a Windows theme for Wino",
"SettingsElementTheme_Title": "Element Theme",
"SettingsElementThemeSelectionDisabled": "Element theme selection is disabled when application theme is selected other than Default.",
"SettingsEnableHoverActions_Title": "Enable hover actions",
"SettingsEnableIMAPLogs_Description": "Enable this to provide details about IMAP connectivity issuses you had during IMAP server setup.",
"SettingsEnableIMAPLogs_Title": "Enable IMAP Protocol Logs",
"SettingsEnableLogs_Description": "I might need logs for crashes to diagnose issues you have opened in GitHub. None of the logs will expose your credentials or sensetive information to public.",
"SettingsEnableLogs_Title": "Enable Logs",
"SettingsEnableSignature": "Enable Signature",
"SettingsExpandOnStartup_Description": "Set whether Wino should expand this account's folders on startup.",
"SettingsExpandOnStartup_Title": "Expand Menu on Startup",
"SettingsExternalContent_Description": "Manage external content settings when rendering mails.",
"SettingsExternalContent_Title": "External Content",
"SettingsFocusedInbox_Description": "Set whether Inbox should be split into two as Focused - Other.",
"SettingsFocusedInbox_Title": "Focused Inbox",
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
"SettingsFolderMenuStyle_Title": "Create Nested Folders",
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
"SettingsFolderOptions_Title": "Folder Configuration",
"SettingsFolderSync_Description": "Enable or disable specific folders for synchronization.",
"SettingsFolderSync_Title": "Folder Synchronization",
"SettingsFontFamily_Title": "Font Family",
"SettingsFontPreview_Title": "Preview",
"SettingsFontSize_Title": "Font Size",
"SettingsHoverActionCenter": "Center Action",
"SettingsHoverActionLeft": "Left Action",
"SettingsHoverActionRight": "Right Action",
"SettingsHoverActions_Description": "Select 3 actions to show up when you hover over the mails with cursor.",
"SettingsHoverActions_Title": "Hover Actions",
"SettingsLanguage_Description": "Change display language for Wino.",
"SettingsEditLinkedInbox_Description": "Pridať/odstrániť účty, premenovať alebo zrušiť prepojenie medzi účtami.",
"SettingsEditLinkedInbox_Title": "Upraviť prepojenie priečinka doručenej pošty",
"SettingsElementTheme_Description": "Vyberte Windows motív pre Wino",
"SettingsElementTheme_Title": "Motív prvku",
"SettingsElementThemeSelectionDisabled": "Výber motívu prvku je zakázaný, ak je vybraný iný motív aplikácie ako predvolený.",
"SettingsEnableHoverActions_Title": "Zapnúť akcie pri prechode myšou",
"SettingsEnableIMAPLogs_Description": "Povoliť poskytnutie podrobností o problémoch s pripojením IMAP, ktoré ste mali počas nastavenia servera IMAP.",
"SettingsEnableIMAPLogs_Title": "Povoliť logy protokolu IMAP",
"SettingsEnableLogs_Description": "Na diagnostiku problémov, ktoré ste otvorili na GitHube, budem možno potrebovať logy o pádoch. Žiadne z protokolov nezverejnia vaše prihlasovacie údaje ani citlivé informácie.",
"SettingsEnableLogs_Title": "Zapnúť logy",
"SettingsEnableSignature": "Zapnúť podpis",
"SettingsExpandOnStartup_Description": "Nastavte, či má Wino pri spustení rozbaliť priečinky tohto účtu.",
"SettingsExpandOnStartup_Title": "Rozbalenie ponuky pri spustení",
"SettingsExternalContent_Description": "Správa nastavení externého obsahu pri zobrazovaní správ.",
"SettingsExternalContent_Title": "Externý obsah",
"SettingsFocusedInbox_Description": "Nastavte, či sa má schránka doručených správ rozdeliť na dve časti ako Prioritné Iné.",
"SettingsFocusedInbox_Title": "Prioritné",
"SettingsFolderMenuStyle_Description": "Zmena, či priečinky účtu majú byť vnorené do položky ponuky účtu alebo nie. Prepnite, ak sa vám páči starý systém ponuky vo Windows Mail",
"SettingsFolderMenuStyle_Title": "Vytvoriť vnorené priečinky",
"SettingsFolderOptions_Description": "Zmena nastavení jednotlivých priečinkov, napríklad zapnutie/vypnutie synchronizácie alebo zobrazenie/skrytie odznaku neprečítaného.",
"SettingsFolderOptions_Title": "Konfigurácia priečinka",
"SettingsFolderSync_Description": "Zapnúť alebo vypnúť synchronizáciu pre konkrétne priečinky.",
"SettingsFolderSync_Title": "Synchronizácia priečinkov",
"SettingsFontFamily_Title": "Rodina písma",
"SettingsFontPreview_Title": "Náhľad",
"SettingsFontSize_Title": "Veľkosť písma",
"SettingsHoverActionCenter": "Stredná akcia",
"SettingsHoverActionLeft": "Ľavá akcia",
"SettingsHoverActionRight": "Pravá akcia",
"SettingsHoverActions_Description": "Vyberte 3 akcie, ktoré sa zobrazia, keď kurzorom prejdete na správy.",
"SettingsHoverActions_Title": "Akcie pri prejdení myšou",
"SettingsLanguage_Description": "Zmeniť jazyk aplikácie Wino.",
"SettingsLanguage_Title": "Jazyk",
"SettingsLanguageTime_Description": "Jazyk zobrazenia Wino, preferovaný formát času.",
"SettingsLanguageTime_Title": "Jazyk a čas",
"SettingsLinkAccounts_Description": "Zlúčenie viacerých účtov do jedného. Zobrazí všetky správy z účtov na jednom mieste.",
"SettingsLinkAccounts_Title": "Vytvoriť prepojené účty",
"SettingsLinkedAccountsSave_Description": "Upraví aktuálne prepojenie s novými účtami.",
"SettingsLinkedAccountsSave_Description": "Úprava aktuálneho prepojenia s novými účtami.",
"SettingsLinkedAccountsSave_Title": "Uložiť zmeny",
"SettingsLoadImages_Title": "Automatické načítanie obrázkov",
"SettingsLoadPlaintextLinks_Title": "Konverzia obyčajných textových odkazov na odkazy, na ktoré sa dá kliknúť",
"SettingsLoadStyles_Title": "Automatické načítanie štýlov",
"SettingsMailListActionBar_Description": "Zobrazí/skryje panel akcií v hornej časti zoznamu správ.",
"SettingsMailListActionBar_Description": "Zobraz/skryť panel akcií v hornej časti zoznamu správ.",
"SettingsMailListActionBar_Title": "Zobrazenie akcií zoznamu správ",
"SettingsMailSpacing_Description": "Upraví rozstupy medzi správami v zozname.",
"SettingsMailSpacing_Description": "Uprav rozstupy medzi správami v zozname.",
"SettingsMailSpacing_Title": "Rozstup medzi správami",
"SettingsManageAccountSettings_Description": "Oznámenia, podpisy, synchronizácia a ďalšie nastavenia pre jednotlivé účty.",
"SettingsManageAccountSettings_Title": "Správa nastavení účtov",
"SettingsManageAliases_Description": "Pozrite si e-mailové aliasy priradené tomuto účtu, aktualizujte ich alebo odstráňte.",
"SettingsManageAliases_Title": "Aliases",
"SettingsEditAccountDetails_Title": "Edit Account Details",
"SettingsEditAccountDetails_Description": "Change account name, sender name and assign a new color if you like.",
"SettingsManageLink_Description": "Move items to add new link or remove existing link.",
"SettingsManageLink_Title": "Manage Link",
"SettingsMarkAsRead_Description": "Change what should happen to the selected item.",
"SettingsMarkAsRead_DontChange": "Don't automatically mark item as read",
"SettingsMarkAsRead_SecondsToWait": "Seconds to wait: ",
"SettingsMarkAsRead_Timer": "When viewed in the reading pane",
"SettingsMarkAsRead_Title": "Mark item as read",
"SettingsMarkAsRead_WhenSelected": "When selected",
"SettingsMessageList_Description": "Change how your messages should be organized in mail list.",
"SettingsMessageList_Title": "Message List",
"SettingsNoAccountSetupMessage": "You didn't setup any accounts yet.",
"SettingsNotifications_Description": "Turn on or off notifications for this account.",
"SettingsNotifications_Title": "Notifications",
"SettingsNotificationsAndTaskbar_Description": "Change whether notifications should be displayed and taskbar badge for this account.",
"SettingsNotificationsAndTaskbar_Title": "Notifications & Taskbar",
"SettingsOptions_Title": "Settings",
"SettingsPaneLengthReset_Description": "Reset the size of the mail list to original if you have issues with it.",
"SettingsPaneLengthReset_Title": "Reset Mail List Size",
"SettingsPaypal_Description": "Show much more love ❤️ All donations are appreciated.",
"SettingsPaypal_Title": "Donate via PayPal",
"SettingsPersonalization_Description": "Change appearance of Wino as you like.",
"SettingsPersonalization_Title": "Personalization",
"SettingsPersonalizationMailDisplayCompactMode": "Compact Mode",
"SettingsPersonalizationMailDisplayMediumMode": "Medium Mode",
"SettingsPersonalizationMailDisplaySpaciousMode": "Spacious Mode",
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
"SettingsPrivacyPolicy_Title": "Privacy Policy",
"SettingsReadComposePane_Description": "Fonts, external content.",
"SettingsReadComposePane_Title": "Reader & Composer",
"SettingsReader_Title": "Reader",
"SettingsReaderFont_Title": "Default Reader Font",
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
"SettingsRenameMergeAccount_Description": "Change the display name of the linked accounts.",
"SettingsRenameMergeAccount_Title": "Rename",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsReorderAccounts_Title": "Reorder Accounts",
"SettingsSemanticZoom_Description": "This will allow you to click on the headers in messages list and go to specific date",
"SettingsSemanticZoom_Title": "Semantic Zoom for Date Headers",
"SettingsShowPreviewText_Description": "Hide/show the preview text.",
"SettingsShowPreviewText_Title": "Show Preview Text",
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_EditSignature_Title": "Edit signature",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_NoneSignatureName": "None",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_Signatures": "Signatures",
"SettingsSignature_Title": "Signature",
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
"SettingsStartupItem_Title": "Startup Item",
"SettingsStore_Description": "Show some love ❤️",
"SettingsStore_Title": "Rate in Store",
"SettingsTaskbarBadge_Description": "Include unread mail count in taskbar icon.",
"SettingsTaskbarBadge_Title": "Taskbar Badge",
"SettingsThreads_Description": "Organize messages into conversation threads.",
"SettingsThreads_Title": "Conversation Threading",
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
"SignatureEditorDialog_Title": "Signature Editor",
"SortingOption_Date": "by date",
"SortingOption_Name": "by name",
"StoreRatingDialog_MessageFirstLine": "All feedbacks are appreciated and they will make much Wino better in the future. Would you like to rate Wino in Microsoft Store?",
"StoreRatingDialog_MessageSecondLine": "Would you like to rate Wino Mail in Microsoft Store?",
"StoreRatingDialog_Title": "Enjoying Wino?",
"SynchronizationFolderReport_Failed": "synchronization is failed",
"SynchronizationFolderReport_Success": "up to date",
"SystemFolderConfigDialog_ArchiveFolderDescription": "Archived messages will be moved to here.",
"SystemFolderConfigDialog_ArchiveFolderHeader": "Archive Folder",
"SystemFolderConfigDialog_DeletedFolderDescription": "Deleted messages will be moved to here.",
"SystemFolderConfigDialog_DeletedFolderHeader": "Deleted Folder",
"SystemFolderConfigDialog_DraftFolderDescription": "New mails/replies will be crafted in here.",
"SystemFolderConfigDialog_DraftFolderHeader": "Draft Folder",
"SystemFolderConfigDialog_JunkFolderDescription": "All spam/junk mails will be here.",
"SystemFolderConfigDialog_JunkFolderHeader": "Junk/Spam Folder",
"SystemFolderConfigDialog_MessageFirstLine": "This IMAP server doesn't support SPECIAL-USE extension hence Wino couldn't setup the system folders properly.",
"SystemFolderConfigDialog_MessageSecondLine": "Please select the appropriate folders for specific functionalities.",
"SystemFolderConfigDialog_SentFolderDescription": "Folder that sent messages will be stored.",
"SystemFolderConfigDialog_SentFolderHeader": "Sent Folder",
"SystemFolderConfigDialog_Title": "Configure System Folders",
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Some of the system folders are used more than once in the configuration.",
"SystemFolderConfigDialogValidation_InboxSelected": "You can't assign Inbox folder to any other system folder.",
"SystemFolderConfigSetupSuccess_Message": "System folders are successfully configured.",
"SystemFolderConfigSetupSuccess_Title": "System Folders Setup",
"TestingImapConnectionMessage": "Testing server connection...",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting",
"Today": "Today",
"UnknownAddress": "unknown address",
"UnknownDateHeader": "Unknown Date",
"UnknownGroupAddress": "unknown Mail Group Address",
"UnknownSender": "Unknown Sender",
"Unsubscribe": "Unsubscribe",
"ViewContactDetails": "View Details",
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"SettingsManageAliases_Title": "Aliasy",
"SettingsEditAccountDetails_Title": "Úprava podrobností o účte",
"SettingsEditAccountDetails_Description": "Zmeňte názov účtu, meno odosielateľa a priraďte novú farbu, ak chcete.",
"SettingsManageLink_Description": "Presunutím položiek môžete pridať nové prepojenie alebo odstrániť existujúce prepojenie.",
"SettingsManageLink_Title": "Správa prepojení",
"SettingsMarkAsRead_Description": "Zmena toho, čo sa má stať s vybranou položkou.",
"SettingsMarkAsRead_DontChange": "Neoznačovať automaticky položku ako prečítanú",
"SettingsMarkAsRead_SecondsToWait": "Čakanie (sekundy): ",
"SettingsMarkAsRead_Timer": "Pri zobrazení na table na čítanie",
"SettingsMarkAsRead_Title": "Označiť položku ako prečítanú",
"SettingsMarkAsRead_WhenSelected": "Po výbere",
"SettingsMessageList_Description": "Zmena spôsobu usporiadania správ v zozname správ.",
"SettingsMessageList_Title": "Zoznam správ",
"SettingsNoAccountSetupMessage": "Zatiaľ ste nenastavili žiadne účty.",
"SettingsNotifications_Description": "Zapnutie alebo vypnutie oznámení pre tento účet.",
"SettingsNotifications_Title": "Oznámenia",
"SettingsNotificationsAndTaskbar_Description": "Zmena zobrazenia oznámení a odznaku na paneli úloh pre tento účet.",
"SettingsNotificationsAndTaskbar_Title": "Oznámenia a panel úloh",
"SettingsOptions_Title": "Nastavenia",
"SettingsPaneLengthReset_Description": "Ak máte problém so zoznamom správ, obnovte ho na predvolenú veľkosť.",
"SettingsPaneLengthReset_Title": "Obnoviť veľkosť zoznamu správ",
"SettingsPaypal_Description": "Prejavte oveľa viac lásky ❤️ Všetky dary sú vítané.",
"SettingsPaypal_Title": "Prispieť cez PayPal",
"SettingsPersonalization_Description": "Zmeňte vzhľad aplikácie Wino podľa svojich predstáv.",
"SettingsPersonalization_Title": "Prispôsobenie",
"SettingsPersonalizationMailDisplayCompactMode": "Kompaktný režim",
"SettingsPersonalizationMailDisplayMediumMode": "Stredný režim",
"SettingsPersonalizationMailDisplaySpaciousMode": "Priestranný režim",
"SettingsPrefer24HourClock_Description": "Časy prijatia správy sa budú zobrazovať v 24-hodinovom formáte namiesto 12-hodinového (AM/PM)",
"SettingsPrefer24HourClock_Title": "Zobraziť 24-hodinový formát času",
"SettingsPrivacyPolicy_Description": "Prečítajte si Ochranu osobných údajov.",
"SettingsPrivacyPolicy_Title": "Ochrany osobných údajov",
"SettingsReadComposePane_Description": "Písmo, externý obsah.",
"SettingsReadComposePane_Title": "Prehliadač a editor",
"SettingsReader_Title": "Prehliadač",
"SettingsReaderFont_Title": "Predvolené písmo prehliadača",
"SettingsReaderFontFamily_Description": "Zmena predvolenej rodiny a veľkosti písma na čítanie správ.",
"SettingsRenameMergeAccount_Description": "Zmena zobrazovaného názvu prepojených účtov.",
"SettingsRenameMergeAccount_Title": "Premenovať",
"SettingsReorderAccounts_Description": "Zmena poradia účtov v zozname účtov.",
"SettingsReorderAccounts_Title": "Zmena poradia účtov",
"SettingsSemanticZoom_Description": "Umožní vám kliknúť na záhlavie v zozname správ a prejsť na konkrétny dátum",
"SettingsSemanticZoom_Title": "Sémantické priblíženie pre záhlavie dátumu",
"SettingsShowPreviewText_Description": "Skryť/zobraziť text náhľadu.",
"SettingsShowPreviewText_Title": "Zobraziť náhľad textu",
"SettingsShowSenderPictures_Description": "Skryť/zobraziť miniatúry obrázkov odosielateľa.",
"SettingsShowSenderPictures_Title": "Zobraziť avatary odosielateľa",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Pridať podpis",
"SettingsSignature_AddCustomSignature_Title": "Pridanie vlastného podpisu",
"SettingsSignature_DeleteSignature_Title": "Odstránenie podpisu",
"SettingsSignature_Description": "Správa podpisov účtu",
"SettingsSignature_EditSignature_Title": "Upravenie podpisu",
"SettingsSignature_ForFollowingMessages_Title": "Pre odpovede/preposlanie",
"SettingsSignature_ForNewMessages_Title": "Pre nové správy",
"SettingsSignature_NoneSignatureName": "Žiadny",
"SettingsSignature_SignatureDefaults": "Predvolené nastavenia podpisu",
"SettingsSignature_Signatures": "Podpisy",
"SettingsSignature_Title": "Podpis",
"SettingsStartupItem_Description": "Pri spustení zobraziť doručenú poštu pre tento účet.",
"SettingsStartupItem_Title": "Účet po spustení",
"SettingsStore_Description": "Ukážte trochu lásky ❤️",
"SettingsStore_Title": "Hodnotenie v Microsoft Store",
"SettingsTaskbarBadge_Description": "Zahrnúť počet neprečítaných správ do ikony na paneli úloh.",
"SettingsTaskbarBadge_Title": "Odznak na paneli úloh",
"SettingsThreads_Description": "Usporiadanie správ do konverzácií.",
"SettingsThreads_Title": "Zobrazenie v režime konverzácie",
"SettingsUnlinkAccounts_Description": "Odstránenie prepojenia medzi účtami. Tým sa vaše účty neodstránia.",
"SettingsUnlinkAccounts_Title": "Odpojenie účtov",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Naozaj chcete odstrániť podpis \"{0}\"?",
"SignatureDeleteDialog_Title": "Odstránenie podpisu",
"SignatureEditorDialog_SignatureName_Placeholder": "Pomenujte podpis",
"SignatureEditorDialog_SignatureName_TitleEdit": "Aktuálny názov podpisu: {0}",
"SignatureEditorDialog_SignatureName_TitleNew": "Názov podpisu",
"SignatureEditorDialog_Title": "Editor podpisu",
"SortingOption_Date": "podľa dátumu",
"SortingOption_Name": "podľa mena",
"StoreRatingDialog_MessageFirstLine": "Všetky pripomienky sú vítané a urobia Wino oveľa lepším v budúcnosti. Chcete ohodnotiť Wino v obchode Microsoft Store?",
"StoreRatingDialog_MessageSecondLine": "Chcete ohodnotiť aplikáciu Wino Mail v obchode Microsoft Store?",
"StoreRatingDialog_Title": "Páči sa vám Wino?",
"SynchronizationFolderReport_Failed": "synchronizácia zlyhala",
"SynchronizationFolderReport_Success": "aktuálne",
"SystemFolderConfigDialog_ArchiveFolderDescription": "Archivované správy budú presunuté sem.",
"SystemFolderConfigDialog_ArchiveFolderHeader": "Priečinok Archív",
"SystemFolderConfigDialog_DeletedFolderDescription": "Odstránené správy budú presunuté sem.",
"SystemFolderConfigDialog_DeletedFolderHeader": "Odstránený priečinok",
"SystemFolderConfigDialog_DraftFolderDescription": "Nové správy/odpovede sa budú vytvárať tu.",
"SystemFolderConfigDialog_DraftFolderHeader": "Priečinok Koncepty",
"SystemFolderConfigDialog_JunkFolderDescription": "Všetka nevyžiadané správy budú tu.",
"SystemFolderConfigDialog_JunkFolderHeader": "Priečinok Nevyžiadaná pošta",
"SystemFolderConfigDialog_MessageFirstLine": "Tento server IMAP nepodporuje rozšírenie SPECIAL-USE, preto Wino nemohol správne nastaviť systémové priečinky.",
"SystemFolderConfigDialog_MessageSecondLine": "Vyberte príslušné priečinky pre konkrétne funkcie.",
"SystemFolderConfigDialog_SentFolderDescription": "Odoslané správy sa budú ukladať do tohto priečinka.",
"SystemFolderConfigDialog_SentFolderHeader": "Priečinok Odoslaná",
"SystemFolderConfigDialog_Title": "Konfigurácia systémových priečinkov",
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Niektoré systémové priečinky sa v konfigurácii používajú viac ako raz.",
"SystemFolderConfigDialogValidation_InboxSelected": "Priečinok Doručená pošta nemôžete priradiť k žiadnemu inému systémovému priečinku.",
"SystemFolderConfigSetupSuccess_Message": "Systémové priečinky sú úspešne nakonfigurované.",
"SystemFolderConfigSetupSuccess_Title": "Nastavenie systémových priečinkov",
"TestingImapConnectionMessage": "Testovanie pripojenia k serveru…",
"TitleBarServerDisconnectedButton_Description": "Wino je odpojený od siete. Kliknutím na tlačidlo obnoviť pripojenie obnovte pripojenie.",
"TitleBarServerDisconnectedButton_Title": "žiadne pripojenie",
"TitleBarServerReconnectButton_Title": "obnoviť pripojenie",
"TitleBarServerReconnectingButton_Title": "pripája sa",
"Today": "Dnes",
"UnknownAddress": "neznáma adresa",
"UnknownDateHeader": "Neznámy dátum",
"UnknownGroupAddress": "neznáma adresa poštovej skupiny",
"UnknownSender": "Neznámy odosielateľ",
"Unsubscribe": "Zrušiť odber",
"ViewContactDetails": "Zobraziť podrobnosti",
"WinoUpgradeDescription": "Wino ponúka na začiatok 3 účty zadarmo. Ak potrebujete viac ako 3 účty, zaplaťte za rozšírenie",
"WinoUpgradeMessage": "Navýšiť na neobmedzený počet",
"WinoUpgradeRemainingAccountsMessage": "Využitie bezplatných účtov: {0}/{1}.",
"Yesterday": "Včera",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Hesap türü",
"IMAPSetupDialog_ValidationSuccess_Title": "Başarılı",
"IMAPSetupDialog_ValidationSuccess_Message": "Validasyon başarılı",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP sunucusuna bağlanılamadı.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Bu sunucu SSL doğrulaması gerektiriyor. Lütfen aşağıdaki detayları onaylayınız.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Devam etmek için doğrulamayı kabul edin.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Özel Tema",
"SettingsDeleteAccount_Description": "Bu hesapa bağlı bütün bilgi ve e-postaları sil.",
"SettingsDeleteAccount_Title": "Bu hesabı sil",
"SettingsDeleteProtection_Description": "Wino her seferinde Shift + Del tuşlarıyla kalıcı olarak silmek istediğiniz e-postalar için uyarı mesajı göstersin mi?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Kalıcı Silme Koruması",
"SettingsDiagnostics_Description": "Geliştiriciler için",
"SettingsDiagnostics_DiagnosticId_Description": "Bu ID'yi geliştiriciler ile paylaşarak Wino Mail ile yaşadığınız sorunlar hakkında çözümlere ulaşabilirsiniz.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Önizleme",
"SettingsShowSenderPictures_Description": "Gönderen resmini göster/gösterme.",
"SettingsShowSenderPictures_Title": "Gönderen Resimleri",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "İmza ekle",
"SettingsSignature_AddCustomSignature_Title": "Yeni bir imza ekleyin",
"SettingsSignature_DeleteSignature_Title": "İmzayı siil",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Mesaj Gruplama",
"SettingsUnlinkAccounts_Description": "Hesap bağlantısını koparın. Bu işlem hesaplarınızı silmez.",
"SettingsUnlinkAccounts_Title": "Hesap Bağlantısını Kopar",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "{0} imzasını silmek istediğinizden emin misiniz?",
"SignatureDeleteDialog_Title": "İmzayı sil",
"SignatureEditorDialog_SignatureName_Placeholder": "İmzaya bir isim verin",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino başlangıç için ücretsiz olarak 3 adet hesap verir. Eğer 3'ten fazla hesap kullanmak istiyorsanız lütfen satın alarak projeye destek olun",
"WinoUpgradeMessage": "Sınırsız Hesaba Yükselt",
"WinoUpgradeRemainingAccountsMessage": "{1} hesabın {0} tanesi kullanıldı.",
"Yesterday": "Dün"
"Yesterday": "Dün",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "Тип облікового запису",
"IMAPSetupDialog_ValidationSuccess_Title": "Виконано",
"IMAPSetupDialog_ValidationSuccess_Message": "Перевірка успішна",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "Не вдалося перевірити сервер IMAP.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "Цей сервер запитує SSL-рукостискання для продовження. Будь ласка, підтвердьте деталі сертифіката нижче.",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "Дозвольте рукостискання для продовження налаштування вашого облікового запису.",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "Користувацька тема",
"SettingsDeleteAccount_Description": "Видалити всі листи та облікові дані, пов'язані з цим обліковим записом.",
"SettingsDeleteAccount_Title": "Видалити цей обліковий запис",
"SettingsDeleteProtection_Description": "Чи повинен Wino перепитувати Вас щоразу, коли Ви намагаєтесь назавжди видалити лист через комбінацію клавіш Shift + Del?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "Захист від остаточного видалення",
"SettingsDiagnostics_Description": "Для розробників",
"SettingsDiagnostics_DiagnosticId_Description": "Поділіться цим ID з розробниками, коли попросять, щоб отримати допомогу щодо проблем, з якими Ви зіткнулися у Wino Mail.",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "Попередній перегляд тексту",
"SettingsShowSenderPictures_Description": "Приховувати/показувати аватарки відправників.",
"SettingsShowSenderPictures_Title": "Аватарки відправників",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "Додати підпис",
"SettingsSignature_AddCustomSignature_Title": "Додати користувацький підпис",
"SettingsSignature_DeleteSignature_Title": "Видалити підпис",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "Ланцюжки розмов",
"SettingsUnlinkAccounts_Description": "Видалити зв'язку між обліковими записами. Це не видалить самі облікові записи.",
"SettingsUnlinkAccounts_Title": "Відв'язати облікові записи",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "Ви дійсно бажаєте видалити підпис \"{0}\"?",
"SignatureDeleteDialog_Title": "Видалити підпис",
"SignatureEditorDialog_SignatureName_Placeholder": "Назвіть свій підпис",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino пропонує 3 облікові записи для початку безкоштовно. Якщо Вам потрібно більше 3 облікових записів, будь ласка, оновіться",
"WinoUpgradeMessage": "Оновити до необмеженої кількості облікових записів",
"WinoUpgradeRemainingAccountsMessage": "{0} з {1} безкоштовних облікових записів використано.",
"Yesterday": "Вчора"
"Yesterday": "Вчора",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -262,6 +262,8 @@
"IMAPSetupDialog_AccountType": "账户名称",
"IMAPSetupDialog_ValidationSuccess_Title": "成功",
"IMAPSetupDialog_ValidationSuccess_Message": "验证成功",
"IMAPSetupDialog_SaveImapSuccess_Title": "Success",
"IMAPSetupDialog_SaveImapSuccess_Message": "IMAP settings saved successfuly.",
"IMAPSetupDialog_ValidationFailed_Title": "IMAP 服务器验证失败。",
"IMAPSetupDialog_CertificateAllowanceRequired_Row0": "该服务器正在请求 SSL 握手以继续。请确认下方的证书详情。",
"IMAPSetupDialog_CertificateAllowanceRequired_Row1": "允许握手并继续设置账户。",
@@ -519,7 +521,7 @@
"SettingsCustomTheme_Title": "自定义主题",
"SettingsDeleteAccount_Description": "删除与此账户关联的所有电子邮件和凭据。",
"SettingsDeleteAccount_Title": "删除此账户",
"SettingsDeleteProtection_Description": "每次您尝试使用 Shift + Del 键永久删除邮件时Wino 应该向您二次确认吗?",
"SettingsDeleteProtection_Description": "Should Wino ask you for confirmation every time you try to permanently delete a mail using Shift + Del keys?",
"SettingsDeleteProtection_Title": "永久性删除保护",
"SettingsDiagnostics_Description": "开发者选项",
"SettingsDiagnostics_DiagnosticId_Description": "如需联系开发人员请求帮助,请提供此 ID。",
@@ -623,6 +625,11 @@
"SettingsShowPreviewText_Title": "显示预览文本",
"SettingsShowSenderPictures_Description": "隐藏/显示缩略图发件人图片。",
"SettingsShowSenderPictures_Title": "显示发件人头像",
"SettingsEnableGravatarAvatars_Title": "Gravatar",
"SettingsEnableGravatarAvatars_Description": "Use gravatar (if available) as sender picture",
"SettingsEnableFavicons_Title": "Domain icons (Favicons)",
"SettingsEnableFavicons_Description": "Use domain favicons (if available) as sender picture",
"SettingsMailList_ClearAvatarsCache_Button": "Clear cached avatars",
"SettingsSignature_AddCustomSignature_Button": "添加签名",
"SettingsSignature_AddCustomSignature_Title": "添加自定义签名",
"SettingsSignature_DeleteSignature_Title": "删除签名",
@@ -644,6 +651,8 @@
"SettingsThreads_Title": "邮件会话",
"SettingsUnlinkAccounts_Description": "删除账户之间的链接。这不会删除您的账户。",
"SettingsUnlinkAccounts_Title": "取消链接账户",
"SettingsMailRendering_ActionLabels_Title": "Action labels",
"SettingsMailRendering_ActionLabels_Description": "Show action labels.",
"SignatureDeleteDialog_Message": "确定要删除签名「{0}」吗?",
"SignatureDeleteDialog_Title": "删除签名",
"SignatureEditorDialog_SignatureName_Placeholder": "为签名命名",
@@ -689,7 +698,9 @@
"WinoUpgradeDescription": "Wino 免费使用 3 个邮件账户。如果您需要同时使用 3 个以上的账户,请升级。",
"WinoUpgradeMessage": "升级为无限账户数",
"WinoUpgradeRemainingAccountsMessage": "已使用 {0} 个免费账户,共 {1} 个。",
"Yesterday": "昨天"
"Yesterday": "昨天",
"SettingsAppPreferences_EmailSyncInterval_Title": "Email sync interval",
"SettingsAppPreferences_EmailSyncInterval_Description": "Automatic email synchronization interval (minutes). This setting will be applied only after restarting Wino Mail."
}

View File

@@ -59,7 +59,7 @@
<Setter Property="ChildrenTransitions">
<Setter.Value>
<TransitionCollection>
<EntranceThemeTransition IsStaggeringEnabled="True" />
<EntranceThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</Setter.Value>
</Setter>
@@ -96,6 +96,19 @@
</Setter.Value>
</Setter>
</Style>
<!-- Spacing between cards -->
<x:Double x:Key="SettingsCardSpacing">4</x:Double>
<!-- Style (inc. the correct spacing) of a section header -->
<Style
x:Key="SettingsSectionHeaderTextBlockStyle"
BasedOn="{StaticResource BodyStrongTextBlockStyle}"
TargetType="TextBlock">
<Style.Setters>
<Setter Property="Margin" Value="1,30,0,6" />
</Style.Setters>
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

View File

@@ -25,7 +25,7 @@ public static class CoreUWPContainerSetup
services.AddSingleton<IPreferencesService, PreferencesService>();
services.AddSingleton<IThemeService, ThemeService>();
services.AddSingleton<IStatePersistanceService, StatePersistenceService>();
services.AddSingleton<IThumbnailService, ThumbnailService>();
services.AddSingleton<IDialogServiceBase, DialogServiceBase>();
services.AddTransient<IConfigurationService, ConfigurationService>();
services.AddTransient<IFileService, FileService>();

View File

@@ -23,6 +23,6 @@
<StackPanel Spacing="12">
<TextBlock x:Name="DialogDescription" TextWrapping="Wrap" />
<TextBox x:Name="FolderTextBox" Text="{x:Bind CurrentInput, Mode=TwoWay}" />
<TextBox x:Name="FolderTextBox" Text="{x:Bind CurrentInput, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</ContentDialog>

View File

@@ -45,7 +45,6 @@ public class NativeAppService : INativeAppService
return _mimeMessagesFolder;
}
public async Task<string> GetEditorBundlePathAsync()
{
if (string.IsNullOrEmpty(_editorBundlePath))

View File

@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.WinUI.Notifications;
using Serilog;
using Windows.Data.Xml.Dom;
@@ -11,7 +13,7 @@ using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Services;
using Wino.Messaging.UI;
namespace Wino.Core.UWP.Services;
@@ -23,16 +25,24 @@ public class NotificationBuilder : INotificationBuilder
private readonly IAccountService _accountService;
private readonly IFolderService _folderService;
private readonly IMailService _mailService;
private readonly IThumbnailService _thumbnailService;
public NotificationBuilder(IUnderlyingThemeService underlyingThemeService,
IAccountService accountService,
IFolderService folderService,
IMailService mailService)
IMailService mailService,
IThumbnailService thumbnailService)
{
_underlyingThemeService = underlyingThemeService;
_accountService = accountService;
_folderService = folderService;
_mailService = mailService;
_thumbnailService = thumbnailService;
WeakReferenceMessenger.Default.Register<MailReadStatusChanged>(this, (r, msg) =>
{
RemoveNotification(msg.UniqueId);
});
}
public async Task CreateNotificationsAsync(Guid inboxFolderId, IEnumerable<IMailItem> downloadedMailItems)
@@ -78,29 +88,25 @@ public class NotificationBuilder : INotificationBuilder
foreach (var mailItem in validItems)
{
if (mailItem.IsRead)
{
// Remove the notification for a specific mail if it exists
ToastNotificationManager.History.Remove(mailItem.UniqueId.ToString());
continue;
}
var builder = new ToastContentBuilder();
builder.SetToastScenario(ToastScenario.Default);
var host = ThumbnailService.GetHost(mailItem.FromAddress);
var knownTuple = ThumbnailService.CheckIsKnown(host);
bool isKnown = knownTuple.Item1;
host = knownTuple.Item2;
if (isKnown)
builder.AddAppLogoOverride(new System.Uri(ThumbnailService.GetKnownHostImage(host)), hintCrop: ToastGenericAppLogoCrop.Default);
else
var avatarThumbnail = await _thumbnailService.GetThumbnailAsync(mailItem.FromAddress, awaitLoad: true);
if (!string.IsNullOrEmpty(avatarThumbnail))
{
// TODO: https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/adaptive-interactive-toasts?tabs=toolkit
// Follow official guides for icons/theme.
bool isOSDarkTheme = _underlyingThemeService.IsUnderlyingThemeDark();
string profileLogoName = isOSDarkTheme ? "profile-dark.png" : "profile-light.png";
builder.AddAppLogoOverride(new System.Uri($"ms-appx:///Assets/NotificationIcons/{profileLogoName}"), hintCrop: ToastGenericAppLogoCrop.Circle);
var tempFile = await Windows.Storage.ApplicationData.Current.TemporaryFolder.CreateFileAsync($"{Guid.NewGuid()}.png", Windows.Storage.CreationCollisionOption.ReplaceExisting);
await using (var stream = await tempFile.OpenStreamForWriteAsync())
{
var bytes = Convert.FromBase64String(avatarThumbnail);
await stream.WriteAsync(bytes);
}
builder.AddAppLogoOverride(new Uri($"ms-appdata:///temp/{tempFile.Name}"), hintCrop: ToastGenericAppLogoCrop.Default);
}
// Override system notification timetamp with received date of the mail.
@@ -114,15 +120,16 @@ public class NotificationBuilder : INotificationBuilder
builder.AddArgument(Constants.ToastMailUniqueIdKey, mailItem.UniqueId.ToString());
builder.AddArgument(Constants.ToastActionKey, MailOperation.Navigate);
builder.AddButton(GetMarkedAsRead(mailItem.UniqueId));
builder.AddButton(GetMarkAsReadButton(mailItem.UniqueId));
builder.AddButton(GetDeleteButton(mailItem.UniqueId));
builder.AddButton(GetDismissButton());
builder.AddButton(GetArchiveButton(mailItem.UniqueId));
builder.AddAudio(new ToastAudio()
{
Src = new Uri("ms-winsoundevent:Notification.Mail")
});
builder.Show();
// Use UniqueId as tag to allow removal
builder.Show(toast => toast.Tag = mailItem.UniqueId.ToString());
}
await UpdateTaskbarIconBadgeAsync();
@@ -139,6 +146,14 @@ public class NotificationBuilder : INotificationBuilder
.SetDismissActivation()
.SetImageUri(new Uri("ms-appx:///Assets/NotificationIcons/dismiss.png"));
private static ToastButton GetArchiveButton(Guid mailUniqueId)
=> new ToastButton()
.SetContent(Translator.MailOperation_Archive)
.SetImageUri(new Uri("ms-appx:///Assets/NotificationIcons/archive.png"))
.AddArgument(Constants.ToastMailUniqueIdKey, mailUniqueId.ToString())
.AddArgument(Constants.ToastActionKey, MailOperation.Archive)
.SetBackgroundActivation();
private ToastButton GetDeleteButton(Guid mailUniqueId)
=> new ToastButton()
.SetContent(Translator.MailOperation_Delete)
@@ -147,7 +162,7 @@ public class NotificationBuilder : INotificationBuilder
.AddArgument(Constants.ToastActionKey, MailOperation.SoftDelete)
.SetBackgroundActivation();
private ToastButton GetMarkedAsRead(Guid mailUniqueId)
private static ToastButton GetMarkAsReadButton(Guid mailUniqueId)
=> new ToastButton()
.SetContent(Translator.MailOperation_MarkAsRead)
.SetImageUri(new System.Uri("ms-appx:///Assets/NotificationIcons/markread.png"))
@@ -227,4 +242,16 @@ public class NotificationBuilder : INotificationBuilder
//await Task.CompletedTask;
}
public void RemoveNotification(Guid mailUniqueId)
{
try
{
ToastNotificationManager.History.Remove(mailUniqueId.ToString());
}
catch (Exception ex)
{
Log.Error(ex, $"Failed to remove notification for mail {mailUniqueId}");
}
}
}

View File

@@ -13,17 +13,12 @@ using Wino.Services;
namespace Wino.Core.UWP.Services;
public class PreferencesService : ObservableObject, IPreferencesService
public class PreferencesService(IConfigurationService configurationService) : ObservableObject, IPreferencesService
{
private readonly IConfigurationService _configurationService;
private readonly IConfigurationService _configurationService = configurationService;
public event EventHandler<string> PreferenceChanged;
public PreferencesService(IConfigurationService configurationService)
{
_configurationService = configurationService;
}
protected override void OnPropertyChanged(PropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
@@ -79,6 +74,12 @@ public class PreferencesService : ObservableObject, IPreferencesService
set => SetPropertyAndSave(nameof(IsMailListActionBarEnabled), value);
}
public bool IsShowActionLabelsEnabled
{
get => _configurationService.Get(nameof(IsShowActionLabelsEnabled), true);
set => SetPropertyAndSave(nameof(IsShowActionLabelsEnabled), value);
}
public bool IsShowSenderPicturesEnabled
{
get => _configurationService.Get(nameof(IsShowSenderPicturesEnabled), true);
@@ -175,6 +176,18 @@ public class PreferencesService : ObservableObject, IPreferencesService
set => SetPropertyAndSave(nameof(IsMailkitProtocolLoggerEnabled), value);
}
public bool IsGravatarEnabled
{
get => _configurationService.Get(nameof(IsGravatarEnabled), true);
set => SetPropertyAndSave(nameof(IsGravatarEnabled), value);
}
public bool IsFaviconEnabled
{
get => _configurationService.Get(nameof(IsFaviconEnabled), true);
set => SetPropertyAndSave(nameof(IsFaviconEnabled), value);
}
public Guid? StartupEntityId
{
get => _configurationService.Get<Guid?>(nameof(StartupEntityId), null);
@@ -277,6 +290,12 @@ public class PreferencesService : ObservableObject, IPreferencesService
set => SaveProperty(propertyName: nameof(WorkingDayEnd), value);
}
public int EmailSyncIntervalMinutes
{
get => _configurationService.Get(nameof(EmailSyncIntervalMinutes), 3);
set => SetPropertyAndSave(nameof(EmailSyncIntervalMinutes), value);
}
public CalendarSettings GetCurrentCalendarSettings()
{
var workingDays = GetDaysBetween(WorkingDayStart, WorkingDayEnd);

View File

@@ -1,63 +1,198 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Mail;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using Gravatar;
using Windows.Networking.Connectivity;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Interfaces;
using Wino.Messaging.UI;
using Wino.Services;
namespace Wino.Core.UWP.Services;
public static class ThumbnailService
public class ThumbnailService(IPreferencesService preferencesService, IDatabaseService databaseService) : IThumbnailService
{
private static string[] knownCompanies = new string[]
private readonly IPreferencesService _preferencesService = preferencesService;
private readonly IDatabaseService _databaseService = databaseService;
private static readonly HttpClient _httpClient = new();
private bool _isInitialized = false;
private ConcurrentDictionary<string, (string graviton, string favicon)> _cache;
private readonly ConcurrentDictionary<string, Task> _requests = [];
private static readonly List<string> _excludedFaviconDomains = [
"gmail.com",
"outlook.com",
"hotmail.com",
"live.com",
"yahoo.com",
"icloud.com",
"aol.com",
"protonmail.com",
"zoho.com",
"mail.com",
"gmx.com",
"yandex.com",
"yandex.ru",
"tutanota.com",
"mail.ru",
"rediffmail.com"
];
public async ValueTask<string> GetThumbnailAsync(string email, bool awaitLoad = false)
{
"microsoft.com", "apple.com", "google.com", "steampowered.com", "airbnb.com", "youtube.com", "uber.com"
};
if (string.IsNullOrWhiteSpace(email))
return null;
public static bool IsKnown(string mailHost) => !string.IsNullOrEmpty(mailHost) && knownCompanies.Contains(mailHost);
if (!_preferencesService.IsShowSenderPicturesEnabled)
return null;
public static string GetHost(string address)
{
if (string.IsNullOrEmpty(address))
return string.Empty;
if (address.Contains('@'))
if (!_isInitialized)
{
var splitted = address.Split('@');
var thumbnailsList = await _databaseService.Connection.Table<Thumbnail>().ToListAsync();
if (splitted.Length >= 2 && !string.IsNullOrEmpty(splitted[1]))
{
try
{
return new MailAddress(address).Host;
}
catch (Exception)
{
// TODO: Exceptions are ignored for now.
}
}
_cache = new ConcurrentDictionary<string, (string graviton, string favicon)>(
thumbnailsList.ToDictionary(x => x.Domain, x => (x.Gravatar, x.Favicon)));
_isInitialized = true;
}
return string.Empty;
var sanitizedEmail = email.Trim().ToLowerInvariant();
var (gravatar, favicon) = await GetThumbnailInternal(sanitizedEmail, awaitLoad);
if (_preferencesService.IsGravatarEnabled && !string.IsNullOrEmpty(gravatar))
{
return gravatar;
}
if (_preferencesService.IsFaviconEnabled && !string.IsNullOrEmpty(favicon))
{
return favicon;
}
return null;
}
public static Tuple<bool, string> CheckIsKnown(string host)
public async Task ClearCache()
{
// Check known hosts.
// Apply company logo if available.
_cache?.Clear();
_requests.Clear();
await _databaseService.Connection.DeleteAllAsync<Thumbnail>();
}
private async ValueTask<(string gravatar, string favicon)> GetThumbnailInternal(string email, bool awaitLoad)
{
if (_cache.TryGetValue(email, out var cached))
return cached;
// No network available, skip fetching Gravatar
// Do not cache it, since network can be available later
bool isInternetAvailable = GetIsInternetAvailable();
if (!isInternetAvailable)
return default;
if (!_requests.TryGetValue(email, out var request))
{
request = Task.Run(() => RequestNewThumbnail(email));
_requests[email] = request;
}
if (awaitLoad)
{
await request;
_cache.TryGetValue(email, out cached);
return cached;
}
return default;
static bool GetIsInternetAvailable()
{
var connection = NetworkInformation.GetInternetConnectionProfile();
return connection != null && connection.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
}
}
private async Task RequestNewThumbnail(string email)
{
var gravatarBase64 = await GetGravatarBase64(email);
var faviconBase64 = await GetFaviconBase64(email);
await _databaseService.Connection.InsertOrReplaceAsync(new Thumbnail
{
Domain = email,
Gravatar = gravatarBase64,
Favicon = faviconBase64,
LastUpdated = DateTime.UtcNow
});
_ = _cache.TryAdd(email, (gravatarBase64, faviconBase64));
WeakReferenceMessenger.Default.Send(new ThumbnailAdded(email));
}
private static async Task<string> GetGravatarBase64(string email)
{
try
{
var last = host.Split('.');
if (last.Length > 2)
host = $"{last[last.Length - 2]}.{last[last.Length - 1]}";
var gravatarUrl = GravatarHelper.GetAvatarUrl(
email,
size: 128,
defaultValue: GravatarAvatarDefault.Blank,
withFileExtension: false).ToString().Replace("d=blank", "d=404");
var response = await _httpClient.GetAsync(gravatarUrl);
if (response.IsSuccessStatusCode)
{
var bytes = response.Content.ReadAsByteArrayAsync().Result;
return Convert.ToBase64String(bytes);
}
}
catch (Exception)
{
return new Tuple<bool, string>(false, host);
}
return new Tuple<bool, string>(IsKnown(host), host);
catch { }
return null;
}
public static string GetKnownHostImage(string host)
=> $"ms-appx:///Assets/Thumbnails/{host}.png";
private static async Task<string> GetFaviconBase64(string email)
{
try
{
var host = GetHost(email);
if (string.IsNullOrEmpty(host))
return null;
// Do not fetch favicon for specific default domains of major platforms
if (_excludedFaviconDomains.Contains(host, StringComparer.OrdinalIgnoreCase))
return null;
var primaryDomain = string.Join('.', host.Split('.')[^2..]);
var googleFaviconUrl = $"https://www.google.com/s2/favicons?sz=128&domain_url={primaryDomain}";
var response = await _httpClient.GetAsync(googleFaviconUrl);
if (response.IsSuccessStatusCode)
{
var bytes = response.Content.ReadAsByteArrayAsync().Result;
return Convert.ToBase64String(bytes);
}
}
catch { }
return null;
}
private static string GetHost(string email)
{
if (!string.IsNullOrEmpty(email) && email.Contains('@'))
{
var split = email.Split('@');
if (split.Length >= 2 && !string.IsNullOrEmpty(split[1]))
{
try { return new MailAddress(email).Host; } catch { }
}
}
return string.Empty;
}
}

View File

@@ -85,6 +85,7 @@
<Content Include="BackgroundImages\Snowflake.jpg" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="gravatar-dotnet" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Microsoft.UI.Xaml" />
<PackageReference Include="CommunityToolkit.Common" />

View File

@@ -40,6 +40,7 @@ public abstract class WinoApplication : Application, IRecipient<LanguageChanged>
protected IWinoServerConnectionManager<AppServiceConnection> AppServiceConnectionManager { get; }
public IThemeService ThemeService { get; }
public IUnderlyingThemeService UnderlyingThemeService { get; }
public IThumbnailService ThumbnailService { get; }
protected IDatabaseService DatabaseService { get; }
protected ITranslationService TranslationService { get; }
@@ -64,6 +65,7 @@ public abstract class WinoApplication : Application, IRecipient<LanguageChanged>
DatabaseService = Services.GetService<IDatabaseService>();
TranslationService = Services.GetService<ITranslationService>();
UnderlyingThemeService = Services.GetService<IUnderlyingThemeService>();
ThumbnailService = Services.GetService<IThumbnailService>();
// Make sure the paths are setup on app start.
AppConfiguration.ApplicationDataFolderPath = ApplicationData.Current.LocalFolder.Path;

View File

@@ -8,6 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="System.Reactive" />
</ItemGroup>
<ItemGroup>

View File

@@ -26,6 +26,7 @@
<PackageReference Include="morelinq" />
<PackageReference Include="Nito.AsyncEx.Tasks" />
<PackageReference Include="NodaTime" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="SkiaSharp" />
<PackageReference Include="SqlKata" />
<PackageReference Include="System.Text.Encoding.CodePages" />

View File

@@ -18,7 +18,6 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel
[ObservableProperty]
private List<string> _appTerminationBehavior;
[ObservableProperty]
public partial List<string> SearchModes { get; set; }
@@ -27,6 +26,18 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel
[NotifyPropertyChangedFor(nameof(IsStartupBehaviorEnabled))]
private StartupBehaviorResult startupBehaviorResult;
private int _emailSyncIntervalMinutes;
public int EmailSyncIntervalMinutes
{
get => _emailSyncIntervalMinutes;
set
{
SetProperty(ref _emailSyncIntervalMinutes, value);
PreferencesService.EmailSyncIntervalMinutes = value;
}
}
public bool IsStartupBehaviorDisabled => !IsStartupBehaviorEnabled;
public bool IsStartupBehaviorEnabled => StartupBehaviorResult == StartupBehaviorResult.Enabled;
@@ -85,6 +96,7 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel
SelectedAppTerminationBehavior = _appTerminationBehavior[(int)PreferencesService.ServerTerminationBehavior];
SelectedDefaultSearchMode = SearchModes[(int)PreferencesService.DefaultSearchMode];
EmailSyncIntervalMinutes = PreferencesService.EmailSyncIntervalMinutes;
}
[RelayCommand]

View File

@@ -129,11 +129,11 @@ public class WinoMailCollection
private async Task HandleExistingThreadAsync(ObservableGroup<object, IMailItem> group, ThreadMailItemViewModel threadViewModel, MailCopy addedItem)
{
var existingGroupKey = GetGroupingKey(threadViewModel);
await ExecuteUIThread(() => { threadViewModel.AddMailItemViewModel(addedItem); });
var newGroupKey = GetGroupingKey(threadViewModel);
if (!existingGroupKey.Equals(newGroupKey))
{
await MoveThreadToNewGroupAsync(group, threadViewModel, newGroupKey);
@@ -294,6 +294,25 @@ public class WinoMailCollection
return null;
}
public void UpdateThumbnails(string address)
{
if (CoreDispatcher == null) return;
CoreDispatcher.ExecuteOnUIThread(() =>
{
foreach (var group in _mailItemSource)
{
foreach (var item in group)
{
if (item is MailItemViewModel mailItemViewModel && mailItemViewModel.MailCopy.FromAddress.Equals(address, StringComparison.OrdinalIgnoreCase))
{
mailItemViewModel.ThumbnailUpdatedEvent = !mailItemViewModel.ThumbnailUpdatedEvent;
}
}
}
});
}
/// <summary>
/// Fins the item container that updated mail copy belongs to and updates it.
/// </summary>

View File

@@ -1,10 +1,17 @@
using Wino.Core.Domain;
using System;
using CommunityToolkit.Mvvm.ComponentModel;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities.Shared;
namespace Wino.Mail.ViewModels.Data;
public class AccountContactViewModel : AccountContact
public partial class AccountContactViewModel : ObservableObject
{
public string Address { get; set; }
public string Name { get; set; }
public string Base64ContactPicture { get; set; }
public bool IsRootContact { get; set; }
public AccountContactViewModel(AccountContact contact)
{
Address = contact.Address;
@@ -39,4 +46,7 @@ public class AccountContactViewModel : AccountContact
/// Display name of the contact in a format: Name <Address>.
/// </summary>
public string DisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? Address.ToLowerInvariant() : $"{Name} <{Address.ToLowerInvariant()}>";
[ObservableProperty]
public partial bool ThumbnailUpdatedEvent { get; set; }
}

View File

@@ -13,7 +13,7 @@ namespace Wino.Mail.ViewModels.Data;
public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IMailItem
{
[ObservableProperty]
private MailCopy mailCopy = mailCopy;
public partial MailCopy MailCopy { get; set; } = mailCopy;
public Guid UniqueId => ((IMailItem)MailCopy).UniqueId;
public string ThreadId => ((IMailItem)MailCopy).ThreadId;
@@ -23,10 +23,13 @@ public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IM
public string InReplyTo => ((IMailItem)MailCopy).InReplyTo;
[ObservableProperty]
private bool isCustomFocused;
public partial bool ThumbnailUpdatedEvent { get; set; } = false;
[ObservableProperty]
private bool isSelected;
public partial bool IsCustomFocused { get; set; }
[ObservableProperty]
public partial bool IsSelected { get; set; }
public bool IsFlagged
{

View File

@@ -98,19 +98,13 @@ public partial class EditAccountDetailsPageViewModel : MailBaseViewModel
Messenger.Send(new BackBreadcrumNavigationRequested());
}
[RelayCommand]
private Task SaveWithoutGoBackAsync()
{
return UpdateAccountAsync();
}
[RelayCommand]
private async Task ValidateImapSettingsAsync()
{
try
{
await _imapTestService.TestImapConnectionAsync(ServerInformation, true);
_mailDialogService.InfoBarMessage(Translator.IMAPSetupDialog_ValidationSuccess_Title, Translator.IMAPSetupDialog_ValidationSuccess_Message, Core.Domain.Enums.InfoBarMessageType.Success); ;
_mailDialogService.InfoBarMessage(Translator.IMAPSetupDialog_ValidationSuccess_Title, Translator.IMAPSetupDialog_ValidationSuccess_Message, Core.Domain.Enums.InfoBarMessageType.Success);
}
catch (Exception ex)
{
@@ -118,12 +112,9 @@ public partial class EditAccountDetailsPageViewModel : MailBaseViewModel
}
}
private Task UpdateAccountAsync()
[RelayCommand]
private async Task UpdateCustomServerInformationAsync()
{
Account.Name = AccountName;
Account.SenderName = SenderName;
Account.AccountColorHex = SelectedColor == null ? string.Empty : SelectedColor.Hex;
if (ServerInformation != null)
{
ServerInformation.IncomingAuthenticationMethod = AvailableAuthenticationMethods[SelectedIncomingServerAuthenticationMethodIndex].ImapAuthenticationMethod;
@@ -135,6 +126,17 @@ public partial class EditAccountDetailsPageViewModel : MailBaseViewModel
Account.ServerInformation = ServerInformation;
}
await _accountService.UpdateAccountCustomServerInformationAsync(Account.ServerInformation);
_mailDialogService.InfoBarMessage(Translator.IMAPSetupDialog_SaveImapSuccess_Title, Translator.IMAPSetupDialog_SaveImapSuccess_Message, Core.Domain.Enums.InfoBarMessageType.Success);
}
private Task UpdateAccountAsync()
{
Account.Name = AccountName;
Account.SenderName = SenderName;
Account.AccountColorHex = SelectedColor == null ? string.Empty : SelectedColor.Hex;
return _accountService.UpdateAccountAsync(Account);
}

View File

@@ -41,7 +41,8 @@ public partial class MailListPageViewModel : MailBaseViewModel,
IRecipient<AccountSynchronizationCompleted>,
IRecipient<NewMailSynchronizationRequested>,
IRecipient<AccountSynchronizerStateChanged>,
IRecipient<AccountCacheResetMessage>
IRecipient<AccountCacheResetMessage>,
IRecipient<ThumbnailAdded>
{
private bool isChangingFolder = false;
@@ -1140,4 +1141,6 @@ public partial class MailListPageViewModel : MailBaseViewModel,
});
}
}
public void Receive(ThumbnailAdded message) => MailCollection.UpdateThumbnails(message.Email);
}

View File

@@ -25,12 +25,14 @@ using Wino.Mail.ViewModels.Data;
using Wino.Mail.ViewModels.Messages;
using Wino.Messaging.Client.Mails;
using Wino.Messaging.Server;
using Wino.Messaging.UI;
using IMailService = Wino.Core.Domain.Interfaces.IMailService;
namespace Wino.Mail.ViewModels;
public partial class MailRenderingPageViewModel : MailBaseViewModel,
IRecipient<NewMailItemRenderingRequestedEvent>,
IRecipient<ThumbnailAdded>,
ITransferProgress // For listening IMAP message download progress.
{
private readonly IMailDialogService _dialogService;
@@ -788,4 +790,27 @@ public partial class MailRenderingPageViewModel : MailBaseViewModel,
Log.Error(ex, "Failed to render mail.");
}
}
public void Receive(ThumbnailAdded message)
{
UpdateThumbnails(ToItems, message.Email);
UpdateThumbnails(CcItems, message.Email);
UpdateThumbnails(BccItems, message.Email);
}
private void UpdateThumbnails(ObservableCollection<AccountContactViewModel> items, string email)
{
if (Dispatcher == null || items.Count == 0) return;
Dispatcher.ExecuteOnUIThread(() =>
{
foreach (var item in items)
{
if (item.Address.Equals(email, StringComparison.OrdinalIgnoreCase))
{
item.ThumbnailUpdatedEvent = !item.ThumbnailUpdatedEvent;
}
}
});
}
}

View File

@@ -1,17 +1,19 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Input;
using Wino.Core.Domain;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
namespace Wino.Mail.ViewModels;
public class MessageListPageViewModel : MailBaseViewModel
public partial class MessageListPageViewModel : MailBaseViewModel
{
public IPreferencesService PreferencesService { get; }
private readonly IThumbnailService _thumbnailService;
private int selectedMarkAsOptionIndex;
public int SelectedMarkAsOptionIndex
{
get => selectedMarkAsOptionIndex;
@@ -46,9 +48,7 @@ public class MessageListPageViewModel : MailBaseViewModel
];
#region Properties
private int leftHoverActionIndex;
public int LeftHoverActionIndex
{
get => leftHoverActionIndex;
@@ -61,9 +61,7 @@ public class MessageListPageViewModel : MailBaseViewModel
}
}
private int centerHoverActionIndex;
public int CenterHoverActionIndex
{
get => centerHoverActionIndex;
@@ -77,7 +75,6 @@ public class MessageListPageViewModel : MailBaseViewModel
}
private int rightHoverActionIndex;
public int RightHoverActionIndex
{
get => rightHoverActionIndex;
@@ -89,18 +86,21 @@ public class MessageListPageViewModel : MailBaseViewModel
}
}
}
#endregion
public MessageListPageViewModel(IMailDialogService dialogService,
IPreferencesService preferencesService)
public MessageListPageViewModel(IPreferencesService preferencesService, IThumbnailService thumbnailService)
{
PreferencesService = preferencesService;
_thumbnailService = thumbnailService;
leftHoverActionIndex = availableHoverActions.IndexOf(PreferencesService.LeftHoverAction);
centerHoverActionIndex = availableHoverActions.IndexOf(PreferencesService.CenterHoverAction);
rightHoverActionIndex = availableHoverActions.IndexOf(PreferencesService.RightHoverAction);
SelectedMarkAsOptionIndex = Array.IndexOf(Enum.GetValues<MailMarkAsOption>(), PreferencesService.MarkAsPreference);
}
[RelayCommand]
private async Task ClearAvatarsCacheAsync()
{
await _thumbnailService.ClearCache();
}
}

View File

@@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="EmailValidation" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="System.Reactive" />
</ItemGroup>
<ItemGroup>

View File

@@ -30,6 +30,7 @@
<DataTemplate x:Key="ClickableAccountMenuTemplate" x:DataType="menu:AccountMenuItem">
<controls:AccountNavigationItem
x:Name="AccountItem"
Height="50"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
BindingData="{x:Bind}"
@@ -57,19 +58,12 @@
Value="{x:Bind UnreadItemCount, Mode=OneWay}" />
</muxc:NavigationViewItem.InfoBadge>
<Grid
MaxHeight="70"
Margin="0,8"
RowSpacing="6">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="2" />
</Grid.RowDefinitions>
<StackPanel VerticalAlignment="Center">
<TextBlock
x:Name="AccountNameTextblock"
@@ -80,8 +74,7 @@
TextTrimming="CharacterEllipsis" />
<TextBlock
FontSize="13"
FontWeight="{x:Bind helpers:XamlHelpers.GetFontWeightByChildSelectedState(IsSelected), Mode=OneWay}"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
MaxLines="1"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{x:Bind Parameter.Address, Mode=OneWay}"
@@ -90,8 +83,6 @@
<PathIcon
x:Name="AttentionIcon"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
@@ -104,7 +95,6 @@
Grid.ColumnSpan="3"
Width="10"
Height="10"
Margin="0,8,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="{ThemeResource AppBarItemBackgroundThemeBrush}"
@@ -169,7 +159,7 @@
<!-- Inbox or any other folders. -->
<DataTemplate x:Key="FolderMenuTemplate" x:DataType="menu:FolderMenuItem">
<coreControls:WinoNavigationViewItem
MinHeight="30"
MinHeight="40"
AllowDrop="True"
ContextRequested="MenuItemContextRequested"
DataContext="{x:Bind}"
@@ -200,6 +190,7 @@
<muxc:NavigationViewItem.Content>
<Grid
x:Name="FolderBackgroundGrid"
MaxHeight="36"
Padding="2"
VerticalAlignment="Center">
<Grid
@@ -261,7 +252,7 @@
<PathIcon Data="F1 M 8.613281 17.5 C 8.75 17.942709 8.945312 18.359375 9.199219 18.75 L 4.921875 18.75 C 4.433594 18.75 3.966471 18.650717 3.520508 18.452148 C 3.074544 18.25358 2.683919 17.986654 2.348633 17.651367 C 2.013346 17.31608 1.746419 16.925455 1.547852 16.479492 C 1.349284 16.033529 1.25 15.566406 1.25 15.078125 L 1.25 4.921875 C 1.25 4.433594 1.349284 3.966473 1.547852 3.520508 C 1.746419 3.074545 2.013346 2.68392 2.348633 2.348633 C 2.683919 2.013348 3.074544 1.74642 3.520508 1.547852 C 3.966471 1.349285 4.433594 1.25 4.921875 1.25 L 15.078125 1.25 C 15.566406 1.25 16.033527 1.349285 16.479492 1.547852 C 16.925455 1.74642 17.31608 2.013348 17.651367 2.348633 C 17.986652 2.68392 18.25358 3.074545 18.452148 3.520508 C 18.650715 3.966473 18.75 4.433594 18.75 4.921875 L 18.75 6.572266 C 18.580729 6.344402 18.390299 6.132813 18.178711 5.9375 C 17.967121 5.742188 17.740885 5.566407 17.5 5.410156 L 17.5 4.951172 C 17.5 4.625651 17.433268 4.314779 17.299805 4.018555 C 17.16634 3.722332 16.987305 3.461914 16.762695 3.237305 C 16.538086 3.012695 16.277668 2.83366 15.981445 2.700195 C 15.685221 2.566732 15.374349 2.5 15.048828 2.5 L 4.951172 2.5 C 4.619141 2.5 4.303385 2.568359 4.003906 2.705078 C 3.704427 2.841797 3.44401 3.02409 3.222656 3.251953 C 3.001302 3.479818 2.825521 3.745117 2.695312 4.047852 C 2.565104 4.350587 2.5 4.66797 2.5 5 L 13.310547 5 C 12.60091 5.266928 11.998697 5.683594 11.503906 6.25 L 2.5 6.25 L 2.5 15.048828 C 2.5 15.38737 2.568359 15.704753 2.705078 16.000977 C 2.841797 16.297201 3.024088 16.55599 3.251953 16.777344 C 3.479818 16.998697 3.745117 17.174479 4.047852 17.304688 C 4.350586 17.434896 4.667969 17.5 5 17.5 Z" />
</coreControls:WinoNavigationViewItem.Icon>
<Grid MinHeight="50">
<Grid Height="50">
<StackPanel VerticalAlignment="Center" Spacing="0">
<TextBlock
x:Name="AccountNameTextblock"

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,30 +1,28 @@
using System.Collections;
using System.Collections.Specialized;
using System.Windows.Input;
using CommunityToolkit.WinUI;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Xaml.Interactivity;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Wino.Controls;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Menus;
using Wino.Core.UWP.Controls;
using Wino.Helpers;
namespace Wino.Behaviors;
public class BindableCommandBarBehavior : Behavior<CommandBar>
public partial class BindableCommandBarBehavior : Behavior<CommandBar>
{
private readonly IPreferencesService _preferencesService = App.Current.Services.GetService<IPreferencesService>();
public static readonly DependencyProperty PrimaryCommandsProperty = DependencyProperty.Register(
"PrimaryCommands", typeof(object), typeof(BindableCommandBarBehavior),
new PropertyMetadata(null, UpdateCommands));
public ICommand ItemClickedCommand
{
get { return (ICommand)GetValue(ItemClickedCommandProperty); }
set { SetValue(ItemClickedCommandProperty, value); }
}
public static readonly DependencyProperty ItemClickedCommandProperty = DependencyProperty.Register(nameof(ItemClickedCommand), typeof(ICommand), typeof(BindableCommandBarBehavior), new PropertyMetadata(null));
[GeneratedDependencyProperty]
public partial ICommand ItemClickedCommand { get; set; }
public object PrimaryCommands
{
@@ -83,7 +81,7 @@ public class BindableCommandBarBehavior : Behavior<CommandBar>
AssociatedObject.PrimaryCommands.Clear();
AssociatedObject.SecondaryCommands.Clear();
if (!(PrimaryCommands is IEnumerable enumerable)) return;
if (PrimaryCommands is not IEnumerable enumerable) return;
foreach (var command in enumerable)
{
@@ -98,19 +96,26 @@ public class BindableCommandBarBehavior : Behavior<CommandBar>
else
{
var label = XamlHelpers.GetOperationString(mailOperationMenuItem.Operation);
var labelPosition = string.IsNullOrWhiteSpace(label) || !_preferencesService.IsShowActionLabelsEnabled ?
CommandBarLabelPosition.Collapsed : CommandBarLabelPosition.Default;
menuItem = new AppBarButton
{
Width = double.NaN,
MinWidth = 40,
Icon = new WinoFontIcon() { Glyph = ControlConstants.WinoIconFontDictionary[XamlHelpers.GetWinoIconGlyph(mailOperationMenuItem.Operation)] },
Label = label,
LabelPosition = string.IsNullOrWhiteSpace(label) ? CommandBarLabelPosition.Collapsed : CommandBarLabelPosition.Default,
LabelPosition = labelPosition,
DataContext = mailOperationMenuItem,
};
ToolTip toolTip = new ToolTip
if (!string.IsNullOrWhiteSpace(label))
{
Content = label
};
ToolTipService.SetToolTip((DependencyObject)menuItem, toolTip);
var toolTip = new ToolTip
{
Content = label
};
ToolTipService.SetToolTip((DependencyObject)menuItem, toolTip);
}
((AppBarButton)menuItem).Click -= Button_Click;
((AppBarButton)menuItem).Click += Button_Click;
@@ -164,7 +169,7 @@ public class BindableCommandBarBehavior : Behavior<CommandBar>
private static void UpdateCommands(DependencyObject dependencyObject,
DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (!(dependencyObject is BindableCommandBarBehavior behavior)) return;
if (dependencyObject is not BindableCommandBarBehavior behavior) return;
if (dependencyPropertyChangedEventArgs.OldValue is INotifyCollectionChanged oldList)
{

View File

@@ -43,10 +43,6 @@ public partial class AccountNavigationItem : WinoNavigationViewItem
_itemsRepeater = GetTemplateChild(PART_NavigationViewItemMenuItemsHost) as ItemsRepeater;
_selectionIndicator = GetTemplateChild(PART_SelectionIndicator) as Windows.UI.Xaml.Shapes.Rectangle;
if (_itemsRepeater == null) return;
(_itemsRepeater.Layout as StackLayout).Spacing = 0;
UpdateSelectionBorder();
}
@@ -60,12 +56,6 @@ public partial class AccountNavigationItem : WinoNavigationViewItem
{
if (_selectionIndicator == null) return;
// Adjsuting Margin in the styles are not possible due to the fact that we use the same tempalte for different types of menu items.
// Account templates listed under merged accounts will have Padding of 44. We must adopt to that.
bool hasParentMenuItem = BindingData is IAccountMenuItem accountMenuItem && accountMenuItem.ParentMenuItem != null;
_selectionIndicator.Margin = !hasParentMenuItem ? new Thickness(-44, 12, 0, 12) : new Thickness(-60, 12, -60, 12);
_selectionIndicator.Scale = IsActiveAccount ? new Vector3(1, 1, 1) : new Vector3(0, 0, 0);
_selectionIndicator.Visibility = IsActiveAccount ? Visibility.Visible : Visibility.Collapsed;
}

View File

@@ -5,13 +5,14 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Fernandezja.ColorHashSharp;
using Microsoft.Extensions.DependencyInjection;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Shapes;
using Wino.Core.UWP.Services;
using Wino.Core.Domain.Interfaces;
namespace Wino.Controls;
@@ -21,12 +22,21 @@ public partial class ImagePreviewControl : Control
private const string PART_InitialsTextBlock = "InitialsTextBlock";
private const string PART_KnownHostImage = "KnownHostImage";
private const string PART_Ellipse = "Ellipse";
private const string PART_FaviconSquircle = "FaviconSquircle";
private const string PART_FaviconImage = "FaviconImage";
#region Dependency Properties
public static readonly DependencyProperty FromNameProperty = DependencyProperty.Register(nameof(FromName), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, OnAddressInformationChanged));
public static readonly DependencyProperty FromAddressProperty = DependencyProperty.Register(nameof(FromAddress), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, OnAddressInformationChanged));
public static readonly DependencyProperty SenderContactPictureProperty = DependencyProperty.Register(nameof(SenderContactPicture), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnAddressInformationChanged)));
public static readonly DependencyProperty FromNameProperty = DependencyProperty.Register(nameof(FromName), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, OnInformationChanged));
public static readonly DependencyProperty FromAddressProperty = DependencyProperty.Register(nameof(FromAddress), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, OnInformationChanged));
public static readonly DependencyProperty SenderContactPictureProperty = DependencyProperty.Register(nameof(SenderContactPicture), typeof(string), typeof(ImagePreviewControl), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnInformationChanged)));
public static readonly DependencyProperty ThumbnailUpdatedEventProperty = DependencyProperty.Register(nameof(ThumbnailUpdatedEvent), typeof(bool), typeof(ImagePreviewControl), new PropertyMetadata(false, new PropertyChangedCallback(OnInformationChanged)));
public bool ThumbnailUpdatedEvent
{
get { return (bool)GetValue(ThumbnailUpdatedEventProperty); }
set { SetValue(ThumbnailUpdatedEventProperty, value); }
}
/// <summary>
/// Gets or sets base64 string of the sender contact picture.
@@ -55,6 +65,8 @@ public partial class ImagePreviewControl : Control
private Grid InitialsGrid;
private TextBlock InitialsTextblock;
private Image KnownHostImage;
private Border FaviconSquircle;
private Image FaviconImage;
private CancellationTokenSource contactPictureLoadingCancellationTokenSource;
public ImagePreviewControl()
@@ -70,11 +82,13 @@ public partial class ImagePreviewControl : Control
InitialsTextblock = GetTemplateChild(PART_InitialsTextBlock) as TextBlock;
KnownHostImage = GetTemplateChild(PART_KnownHostImage) as Image;
Ellipse = GetTemplateChild(PART_Ellipse) as Ellipse;
FaviconSquircle = GetTemplateChild(PART_FaviconSquircle) as Border;
FaviconImage = GetTemplateChild(PART_FaviconImage) as Image;
UpdateInformation();
}
private static void OnAddressInformationChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
private static void OnInformationChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
if (obj is ImagePreviewControl control)
control.UpdateInformation();
@@ -82,7 +96,7 @@ public partial class ImagePreviewControl : Control
private async void UpdateInformation()
{
if (KnownHostImage == null || InitialsGrid == null || InitialsTextblock == null || (string.IsNullOrEmpty(FromName) && string.IsNullOrEmpty(FromAddress)))
if ((KnownHostImage == null && FaviconSquircle == null) || InitialsGrid == null || InitialsTextblock == null || (string.IsNullOrEmpty(FromName) && string.IsNullOrEmpty(FromAddress)))
return;
// Cancel active image loading if exists.
@@ -91,81 +105,100 @@ public partial class ImagePreviewControl : Control
contactPictureLoadingCancellationTokenSource.Cancel();
}
var host = ThumbnailService.GetHost(FromAddress);
string contactPicture = SenderContactPicture;
bool isKnownHost = false;
var isAvatarThumbnail = false;
if (!string.IsNullOrEmpty(host))
if (string.IsNullOrEmpty(contactPicture) && !string.IsNullOrEmpty(FromAddress))
{
var tuple = ThumbnailService.CheckIsKnown(host);
isKnownHost = tuple.Item1;
host = tuple.Item2;
contactPicture = await App.Current.ThumbnailService.GetThumbnailAsync(FromAddress);
isAvatarThumbnail = true;
}
if (isKnownHost)
if (!string.IsNullOrEmpty(contactPicture))
{
// Unrealize others.
KnownHostImage.Visibility = Visibility.Visible;
InitialsGrid.Visibility = Visibility.Collapsed;
// Apply company logo.
KnownHostImage.Source = new BitmapImage(new Uri(ThumbnailService.GetKnownHostImage(host)));
}
else
{
KnownHostImage.Visibility = Visibility.Collapsed;
InitialsGrid.Visibility = Visibility.Visible;
if (!string.IsNullOrEmpty(SenderContactPicture))
if (isAvatarThumbnail && FaviconSquircle != null && FaviconImage != null)
{
contactPictureLoadingCancellationTokenSource = new CancellationTokenSource();
// Show favicon in squircle
FaviconSquircle.Visibility = Visibility.Visible;
InitialsGrid.Visibility = Visibility.Collapsed;
KnownHostImage.Visibility = Visibility.Collapsed;
try
{
var brush = await GetContactImageBrushAsync();
var bitmapImage = await GetBitmapImageAsync(contactPicture);
if (!contactPictureLoadingCancellationTokenSource?.Token.IsCancellationRequested ?? false)
{
Ellipse.Fill = brush;
InitialsTextblock.Text = string.Empty;
}
}
catch (Exception)
if (bitmapImage != null)
{
// Log exception.
Debugger.Break();
FaviconImage.Source = bitmapImage;
}
}
else
{
var colorHash = new ColorHash();
var rgb = colorHash.Rgb(FromAddress);
// Show normal avatar (tondo)
FaviconSquircle.Visibility = Visibility.Collapsed;
KnownHostImage.Visibility = Visibility.Collapsed;
InitialsGrid.Visibility = Visibility.Visible;
contactPictureLoadingCancellationTokenSource = new CancellationTokenSource();
try
{
var brush = await GetContactImageBrushAsync(contactPicture);
Ellipse.Fill = new SolidColorBrush(Color.FromArgb(rgb.A, rgb.R, rgb.G, rgb.B));
InitialsTextblock.Text = ExtractInitialsFromName(FromName);
if (brush != null)
{
if (!contactPictureLoadingCancellationTokenSource?.Token.IsCancellationRequested ?? false)
{
Ellipse.Fill = brush;
InitialsTextblock.Text = string.Empty;
}
}
}
catch (Exception)
{
Debugger.Break();
}
}
}
else
{
FaviconSquircle.Visibility = Visibility.Collapsed;
KnownHostImage.Visibility = Visibility.Collapsed;
InitialsGrid.Visibility = Visibility.Visible;
var colorHash = new ColorHash();
var rgb = colorHash.Rgb(FromAddress);
Ellipse.Fill = new SolidColorBrush(Color.FromArgb(rgb.A, rgb.R, rgb.G, rgb.B));
InitialsTextblock.Text = ExtractInitialsFromName(FromName);
}
}
private async Task<ImageBrush> GetContactImageBrushAsync()
private static async Task<ImageBrush> GetContactImageBrushAsync(string base64)
{
// Load the image from base64 string.
var bitmapImage = new BitmapImage();
var bitmapImage = await GetBitmapImageAsync(base64);
var imageArray = Convert.FromBase64String(SenderContactPicture);
var imageStream = new MemoryStream(imageArray);
var randomAccessImageStream = imageStream.AsRandomAccessStream();
randomAccessImageStream.Seek(0);
await bitmapImage.SetSourceAsync(randomAccessImageStream);
if (bitmapImage == null) return null;
return new ImageBrush() { ImageSource = bitmapImage };
}
private static async Task<BitmapImage> GetBitmapImageAsync(string base64)
{
try
{
var bitmapImage = new BitmapImage();
var imageArray = Convert.FromBase64String(base64);
var imageStream = new MemoryStream(imageArray);
var randomAccessImageStream = imageStream.AsRandomAccessStream();
randomAccessImageStream.Seek(0);
await bitmapImage.SetSourceAsync(randomAccessImageStream);
return bitmapImage;
}
catch (Exception) { }
return null;
}
public string ExtractInitialsFromName(string name)
{
// Change from name to from address in case of name doesn't exists.

View File

@@ -76,6 +76,7 @@
FromAddress="{x:Bind MailItem.FromAddress, Mode=OneWay}"
FromName="{x:Bind MailItem.FromName, Mode=OneWay}"
SenderContactPicture="{x:Bind MailItem.SenderContact.Base64ContactPicture}"
ThumbnailUpdatedEvent="{x:Bind IsThumbnailUpdated, Mode=OneWay}"
Visibility="{x:Bind IsAvatarVisible, Mode=OneWay}" />
<Grid

View File

@@ -1,6 +1,7 @@
using System.Linq;
using System.Numerics;
using System.Windows.Input;
using CommunityToolkit.WinUI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Wino.Core.Domain;
@@ -33,6 +34,13 @@ public sealed partial class MailItemDisplayInformationControl : UserControl
public static readonly DependencyProperty Prefer24HourTimeFormatProperty = DependencyProperty.Register(nameof(Prefer24HourTimeFormat), typeof(bool), typeof(MailItemDisplayInformationControl), new PropertyMetadata(false));
public static readonly DependencyProperty IsThreadExpanderVisibleProperty = DependencyProperty.Register(nameof(IsThreadExpanderVisible), typeof(bool), typeof(MailItemDisplayInformationControl), new PropertyMetadata(false));
public static readonly DependencyProperty IsThreadExpandedProperty = DependencyProperty.Register(nameof(IsThreadExpanded), typeof(bool), typeof(MailItemDisplayInformationControl), new PropertyMetadata(false));
public static readonly DependencyProperty IsThumbnailUpdatedProperty = DependencyProperty.Register(nameof(IsThumbnailUpdated), typeof(bool), typeof(MailItemDisplayInformationControl), new PropertyMetadata(false));
public bool IsThumbnailUpdated
{
get { return (bool)GetValue(IsThumbnailUpdatedProperty); }
set { SetValue(IsThumbnailUpdatedProperty, value); }
}
public bool IsThreadExpanded
{

View File

@@ -55,7 +55,8 @@
DefaultLabelPosition="Collapsed"
IsOpen="False">
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ToggleEditorTheme}"
LabelPosition="Collapsed"
ToolTipService.ToolTip="Light Theme"
@@ -66,7 +67,8 @@
</AppBarButton>
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ToggleEditorTheme}"
LabelPosition="Collapsed"
ToolTipService.ToolTip="Dark Theme"
@@ -79,7 +81,8 @@
<AppBarSeparator />
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorBold, Mode=TwoWay}"
Label="Bold"
ToolTipService.ToolTip="Bold">
@@ -88,7 +91,8 @@
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorItalic, Mode=TwoWay}"
Label="Italic"
ToolTipService.ToolTip="Italic">
@@ -97,7 +101,8 @@
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorUnderline, Mode=TwoWay}"
Label="Underline"
ToolTipService.ToolTip="Underline">
@@ -106,7 +111,8 @@
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorStrikethrough, Mode=TwoWay}"
Label="Stroke"
ToolTipService.ToolTip="Stroke">
@@ -116,7 +122,8 @@
</AppBarToggleButton>
<AppBarSeparator />
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorUl, Mode=TwoWay}"
Label="Bullet List"
ToolTipService.ToolTip="Bullet List">
@@ -125,7 +132,8 @@
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorOl, Mode=TwoWay}"
Label="Ordered List"
ToolTipService.ToolTip="Ordered List">
@@ -137,7 +145,8 @@
<AppBarSeparator />
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.EditorOutdentAsync}"
IsEnabled="{x:Bind WebViewEditor.IsEditorOutdentEnabled, Mode=OneWay}"
Label="Decrease Indent"
@@ -147,7 +156,8 @@
</AppBarButton.Icon>
</AppBarButton>
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.EditorIndentAsync}"
IsEnabled="{x:Bind WebViewEditor.IsEditorIndentEnabled, Mode=OneWay}"
Label="Increase Indent"
@@ -157,7 +167,10 @@
</AppBarButton.Icon>
</AppBarButton>
<AppBarElementContainer VerticalAlignment="Center">
<AppBarElementContainer
Width="Auto"
MinWidth="40"
VerticalAlignment="Center">
<ComboBox
Background="Transparent"
BorderBrush="Transparent"
@@ -201,7 +214,8 @@
</AppBarElementContainer>
<AppBarSeparator />
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ShowImagePicker}"
Label="Add Image"
ToolTipService.ToolTip="{x:Bind domain:Translator.Photos}">
@@ -218,7 +232,8 @@
</AppBarButton.Content>
</AppBarButton>
<AppBarButton
Width="48"
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ShowEmojiPicker}"
Label="Add Emoji"
ToolTipService.ToolTip="{x:Bind domain:Translator.Emoji}">
@@ -228,7 +243,8 @@
</AppBarButton>
<AppBarToggleButton
Width="48"
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorWebViewEditor, Mode=TwoWay}"
Label="Webview ToolBar"
ToolTipService.ToolTip="Webview ToolBar">

View File

@@ -1,5 +1,4 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Folders;
@@ -11,18 +10,11 @@ namespace Wino.MenuFlyouts;
public partial class WinoOperationFlyoutItem<TOperationMenuItem> : MenuFlyoutItem, IDisposable where TOperationMenuItem : IMenuOperation
{
private const double CustomHeight = 35;
public TOperationMenuItem Operation { get; set; }
Action<TOperationMenuItem> Clicked { get; set; }
public WinoOperationFlyoutItem(TOperationMenuItem operationMenuItem, Action<TOperationMenuItem> clicked)
{
Margin = new Thickness(4, 2, 4, 2);
CornerRadius = new CornerRadius(6, 6, 6, 6);
MinHeight = CustomHeight;
Operation = operationMenuItem;
IsEnabled = operationMenuItem.IsEnabled;

View File

@@ -28,13 +28,27 @@
Foreground="White" />
</Grid>
<!-- Squircle for favicon -->
<Border
x:Name="FaviconSquircle"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="Transparent"
CornerRadius="6"
Visibility="Collapsed">
<Image x:Name="FaviconImage" Stretch="Fill" />
</Border>
<Image
x:Name="KnownHostImage"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Stretch="UniformToFill" />
Stretch="UniformToFill"
Visibility="Collapsed" />
</Grid>
</ControlTemplate>
</Setter.Value>

View File

@@ -90,6 +90,7 @@
<Rectangle
x:Name="CustomSelectionIndicator"
Width="3"
Margin="-44,12,0,12"
HorizontalAlignment="Left"
Fill="{ThemeResource NavigationViewSelectionIndicatorForeground}"
Opacity="1"
@@ -111,7 +112,7 @@
x:Load="False"
Visibility="Collapsed">
<muxc:ItemsRepeater.Layout>
<muxc:StackLayout Orientation="Vertical" />
<muxc:StackLayout Orientation="Vertical" Spacing="0" />
</muxc:ItemsRepeater.Layout>
</muxc:ItemsRepeater>

View File

@@ -70,6 +70,12 @@
<ScrollViewer>
<StackPanel Spacing="4">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</StackPanel.ChildrenTransitions>
<controls:SettingsCard
Command="{x:Bind ViewModel.EditAccountDetailsCommand}"
Description="{x:Bind domain:Translator.SettingsEditAccountDetails_Description}"

View File

@@ -190,6 +190,8 @@
IsDynamicOverflowEnabled="True"
OverflowButtonAlignment="Left">
<AppBarButton
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ToggleEditorTheme}"
LabelPosition="Collapsed"
ToolTipService.ToolTip="Light Theme"
@@ -200,6 +202,8 @@
</AppBarButton>
<AppBarButton
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.ToggleEditorTheme}"
LabelPosition="Collapsed"
ToolTipService.ToolTip="Dark Theme"
@@ -223,22 +227,38 @@
</toolkit:TabbedCommandBar.PaneCustomContent>
<toolkit:TabbedCommandBar.MenuItems>
<toolkit:TabbedCommandBarItem DefaultLabelPosition="Collapsed" Header="{x:Bind domain:Translator.EditorToolbarOption_Format}">
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorBold, Mode=TwoWay}" Label="Bold">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorBold, Mode=TwoWay}"
Label="Bold">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource BoldPathIcon}" />
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorItalic, Mode=TwoWay}" Label="Italic">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorItalic, Mode=TwoWay}"
Label="Italic">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource ItalicPathIcon}" />
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorUnderline, Mode=TwoWay}" Label="Underline">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorUnderline, Mode=TwoWay}"
Label="Underline">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource UnderlinePathIcon}" />
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorStrikethrough, Mode=TwoWay}" Label="Stroke">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorStrikethrough, Mode=TwoWay}"
Label="Stroke">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource StrikePathIcon}" />
</AppBarToggleButton.Icon>
@@ -246,13 +266,21 @@
<AppBarSeparator />
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorUl, Mode=TwoWay}" Label="Bullet List">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorUl, Mode=TwoWay}"
Label="Bullet List">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource BulletedListPathIcon}" />
</AppBarToggleButton.Icon>
</AppBarToggleButton>
<AppBarToggleButton IsChecked="{x:Bind WebViewEditor.IsEditorOl, Mode=TwoWay}" Label="Ordered List">
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorOl, Mode=TwoWay}"
Label="Ordered List">
<AppBarToggleButton.Icon>
<PathIcon Data="{StaticResource OrderedListPathIcon}" />
</AppBarToggleButton.Icon>
@@ -261,6 +289,8 @@
<AppBarSeparator />
<AppBarButton
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.EditorOutdentAsync}"
IsEnabled="{x:Bind WebViewEditor.IsEditorOutdentEnabled, Mode=OneWay}"
Label="Outdent">
@@ -272,6 +302,8 @@
</AppBarButton>
<AppBarButton
Width="Auto"
MinWidth="40"
Click="{x:Bind WebViewEditor.EditorIndentAsync}"
IsEnabled="{x:Bind WebViewEditor.IsEditorIndentEnabled, Mode=OneWay}"
Label="Indent">
@@ -282,7 +314,11 @@
</AppBarButton.Content>
</AppBarButton>
<AppBarElementContainer HorizontalAlignment="Center" VerticalAlignment="Center">
<AppBarElementContainer
Width="Auto"
MinWidth="40"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<ComboBox
x:Name="AlignmentListView"
VerticalAlignment="Center"
@@ -330,6 +366,8 @@
<AppBarSeparator />
<AppBarToggleButton
Width="Auto"
MinWidth="40"
IsChecked="{x:Bind WebViewEditor.IsEditorWebViewEditor, Mode=TwoWay}"
Label="{x:Bind domain:Translator.EditorTooltip_WebViewEditor}"
ToolTipService.ToolTip="{x:Bind domain:Translator.EditorTooltip_WebViewEditor}">

View File

@@ -52,7 +52,7 @@ public sealed partial class ComposePage : ComposePageAbstract,
if (e.NewFocusedElement == WebViewEditor)
{
await WebViewEditor.FocusEditorAsync(false);
await WebViewEditor.FocusEditorAsync(true);
}
}

View File

@@ -113,6 +113,7 @@
IsAvatarVisible="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsShowSenderPicturesEnabled, Mode=OneWay}"
IsCustomFocused="{x:Bind IsCustomFocused, Mode=OneWay}"
IsHoverActionsEnabled="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsHoverActionsEnabled, Mode=OneWay}"
IsThumbnailUpdated="{x:Bind ThumbnailUpdatedEvent, Mode=OneWay}"
LeftHoverAction="{Binding ElementName=root, Path=ViewModel.PreferencesService.LeftHoverAction, Mode=OneWay}"
MailItem="{x:Bind MailCopy, Mode=OneWay}"
Prefer24HourTimeFormat="{Binding ElementName=root, Path=ViewModel.PreferencesService.Prefer24HourTimeFormat, Mode=OneWay}"
@@ -136,6 +137,7 @@
IsAvatarVisible="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsShowSenderPicturesEnabled, Mode=OneWay}"
IsCustomFocused="{x:Bind IsCustomFocused, Mode=OneWay}"
IsHoverActionsEnabled="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsHoverActionsEnabled, Mode=OneWay}"
IsThumbnailUpdated="{x:Bind ThumbnailUpdatedEvent, Mode=OneWay}"
LeftHoverAction="{Binding ElementName=root, Path=ViewModel.PreferencesService.LeftHoverAction, Mode=OneWay}"
MailItem="{x:Bind MailCopy, Mode=OneWay}"
Prefer24HourTimeFormat="{Binding ElementName=root, Path=ViewModel.PreferencesService.Prefer24HourTimeFormat, Mode=OneWay}"

View File

@@ -46,7 +46,8 @@
Height="36"
FromAddress="{x:Bind Address}"
FromName="{x:Bind Name}"
SenderContactPicture="{x:Bind Base64ContactPicture}" />
SenderContactPicture="{x:Bind Base64ContactPicture}"
ThumbnailUpdatedEvent="{x:Bind ThumbnailUpdatedEvent, Mode=OneWay}" />
<TextBlock Grid.Column="1" Text="{x:Bind Name}" />
@@ -156,6 +157,11 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</Grid.ChildrenTransitions>
<Border
Background="{ThemeResource WinoContentZoneBackgroud}"

View File

@@ -10,11 +10,16 @@
mc:Ignorable="d">
<ScrollViewer>
<StackPanel Spacing="3">
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</StackPanel.ChildrenTransitions>
<Image
Width="50"
Height="50"
Source="ms-appx:///Assets/StoreLogo.png" />
Source="ms-appx:///Images/StoreLogo.png" />
<TextBlock
Margin="0,6,0,4"
HorizontalAlignment="Center"
@@ -167,9 +172,14 @@
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<TextBlock Margin="0,0,4,0" HorizontalAlignment="Right">
<Run Text="{x:Bind domain:Translator.SettingsAboutVersion}" /><Run Text="{x:Bind ViewModel.VersionName}" />
</TextBlock>
<controls:SettingsCard Header="Wino Mail">
<controls:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False" UriSource="ms-appx:///Images/StoreLogo.png" />
</controls:SettingsCard.HeaderIcon>
<TextBlock Foreground="{ThemeResource TextFillColorSecondaryBrush}" IsTextSelectionEnabled="True">
<Run Text="{x:Bind domain:Translator.SettingsAboutVersion}" /><Run Text="{x:Bind ViewModel.VersionName}" />
</TextBlock>
</controls:SettingsCard>
</StackPanel>
</ScrollViewer>
</abstract:AboutPageAbstract>

View File

@@ -7,10 +7,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<ScrollViewer>
<StackPanel>
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Description}" Header="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Title}">
<ToggleButton
x:Name="StartupEnabledToggleButton"
@@ -35,6 +36,17 @@
<PathIcon Data="F1 M 18.75 18.125 C 18.75 18.294271 18.68815 18.440756 18.564453 18.564453 C 18.440754 18.68815 18.29427 18.75 18.125 18.75 C 17.955729 18.75 17.809244 18.68815 17.685547 18.564453 L 12.519531 13.398438 C 11.907552 13.912761 11.22233 14.308269 10.463867 14.584961 C 9.705403 14.861654 8.925781 15 8.125 15 C 7.493489 15 6.884765 14.91862 6.298828 14.755859 C 5.712891 14.5931 5.166016 14.361979 4.658203 14.0625 C 4.150391 13.763021 3.686523 13.40332 3.266602 12.983398 C 2.84668 12.563477 2.486979 12.099609 2.1875 11.591797 C 1.888021 11.083984 1.656901 10.537109 1.494141 9.951172 C 1.33138 9.365234 1.25 8.756511 1.25 8.125 C 1.25 7.49349 1.33138 6.884766 1.494141 6.298828 C 1.656901 5.712891 1.888021 5.166016 2.1875 4.658203 C 2.486979 4.150391 2.84668 3.686523 3.266602 3.266602 C 3.686523 2.84668 4.150391 2.48698 4.658203 2.1875 C 5.166016 1.888021 5.712891 1.656902 6.298828 1.494141 C 6.884765 1.331381 7.493489 1.25 8.125 1.25 C 8.75651 1.25 9.365234 1.331381 9.951172 1.494141 C 10.537109 1.656902 11.083984 1.888021 11.591797 2.1875 C 12.099609 2.48698 12.563477 2.84668 12.983398 3.266602 C 13.40332 3.686523 13.763021 4.150391 14.0625 4.658203 C 14.361979 5.166016 14.593099 5.712891 14.755859 6.298828 C 14.918619 6.884766 14.999999 7.49349 15 8.125 C 14.999999 8.925781 14.861652 9.705404 14.584961 10.463867 C 14.308268 11.222331 13.91276 11.907553 13.398438 12.519531 L 18.564453 17.685547 C 18.68815 17.809244 18.75 17.955729 18.75 18.125 Z M 13.75 8.125 C 13.75 7.610678 13.683268 7.114258 13.549805 6.635742 C 13.416341 6.157227 13.227539 5.709636 12.983398 5.292969 C 12.739258 4.876303 12.444661 4.495443 12.099609 4.150391 C 11.754557 3.80534 11.373697 3.510742 10.957031 3.266602 C 10.540364 3.022461 10.092773 2.83366 9.614258 2.700195 C 9.135742 2.566732 8.639322 2.5 8.125 2.5 C 7.35026 2.5 6.621094 2.648113 5.9375 2.944336 C 5.253906 3.240561 4.658203 3.642578 4.150391 4.150391 C 3.642578 4.658204 3.24056 5.253907 2.944336 5.9375 C 2.648112 6.621095 2.5 7.350262 2.5 8.125 C 2.5 8.90625 2.646484 9.638672 2.939453 10.322266 C 3.232422 11.005859 3.632812 11.601562 4.140625 12.109375 C 4.648438 12.617188 5.244141 13.017578 5.927734 13.310547 C 6.611328 13.603516 7.34375 13.75 8.125 13.75 C 8.899739 13.75 9.628906 13.601889 10.3125 13.305664 C 10.996094 13.00944 11.591797 12.607422 12.099609 12.099609 C 12.607421 11.591797 13.009439 10.996094 13.305664 10.3125 C 13.601888 9.628906 13.75 8.89974 13.75 8.125 Z " />
</controls:SettingsCard.HeaderIcon>
</controls:SettingsCard>
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsAppPreferences_EmailSyncInterval_Description}" Header="{x:Bind domain:Translator.SettingsAppPreferences_EmailSyncInterval_Title}">
<muxc:NumberBox
Minimum="1"
PlaceholderText="3"
SpinButtonPlacementMode="Inline"
Value="{x:Bind ViewModel.EmailSyncIntervalMinutes, Mode=TwoWay}" />
<controls:SettingsCard.HeaderIcon>
<PathIcon Data="F1 M 0 9.375 C 0 8.509115 0.110677 7.677409 0.332031 6.879883 C 0.553385 6.082357 0.867513 5.335287 1.274414 4.638672 C 1.681315 3.942059 2.169596 3.30892 2.739258 2.739258 C 3.308919 2.169598 3.942057 1.681316 4.638672 1.274414 C 5.335286 0.867514 6.082356 0.553387 6.879883 0.332031 C 7.677409 0.110678 8.509114 0 9.375 0 C 10.234375 0 11.062825 0.112305 11.860352 0.336914 C 12.657877 0.561523 13.404947 0.877279 14.101562 1.28418 C 14.798176 1.691082 15.431314 2.179363 16.000977 2.749023 C 16.570637 3.318686 17.058918 3.951824 17.46582 4.648438 C 17.872721 5.345053 18.188477 6.092123 18.413086 6.889648 C 18.637695 7.687175 18.75 8.515625 18.75 9.375 C 18.75 10.240886 18.637695 11.072592 18.413086 11.870117 C 18.188477 12.667644 17.872721 13.413086 17.46582 14.106445 C 17.058918 14.799805 16.570637 15.431315 16.000977 16.000977 C 15.431314 16.570639 14.799804 17.05892 14.106445 17.46582 C 13.413085 17.872721 12.666015 18.188477 11.865234 18.413086 C 11.064453 18.637695 10.234375 18.75 9.375 18.75 C 8.509114 18.75 7.675781 18.639322 6.875 18.417969 C 6.074219 18.196615 5.327148 17.882486 4.633789 17.475586 C 3.94043 17.068686 3.308919 16.580404 2.739258 16.010742 C 2.169596 15.441081 1.681315 14.80957 1.274414 14.116211 C 0.867513 13.422852 0.553385 12.675781 0.332031 11.875 C 0.110677 11.074219 0 10.240886 0 9.375 Z M 17.5 9.375 C 17.5 8.626303 17.403971 7.905273 17.211914 7.211914 C 17.019855 6.518556 16.746418 5.87077 16.391602 5.268555 C 16.036783 4.666342 15.613606 4.119467 15.12207 3.62793 C 14.630533 3.136395 14.083658 2.713217 13.481445 2.358398 C 12.879231 2.003582 12.231445 1.730145 11.538086 1.538086 C 10.844727 1.346029 10.123697 1.25 9.375 1.25 C 8.626302 1.25 7.905273 1.346029 7.211914 1.538086 C 6.518555 1.730145 5.870768 2.003582 5.268555 2.358398 C 4.666341 2.713217 4.119466 3.136395 3.62793 3.62793 C 3.136393 4.119467 2.713216 4.666342 2.358398 5.268555 C 2.003581 5.87077 1.730143 6.518556 1.538086 7.211914 C 1.346029 7.905273 1.25 8.626303 1.25 9.375 C 1.25 10.123698 1.346029 10.844727 1.538086 11.538086 C 1.730143 12.231445 2.001953 12.879232 2.353516 13.481445 C 2.705078 14.083659 3.128255 14.632162 3.623047 15.126953 C 4.117838 15.621745 4.666341 16.044922 5.268555 16.396484 C 5.870768 16.748047 6.518555 17.019857 7.211914 17.211914 C 7.905273 17.403971 8.626302 17.5 9.375 17.5 C 10.123697 17.5 10.844727 17.403971 11.538086 17.211914 C 12.231445 17.019857 12.879231 16.748047 13.481445 16.396484 C 14.083658 16.044922 14.63216 15.621745 15.126953 15.126953 C 15.621744 14.632162 16.044922 14.083659 16.396484 13.481445 C 16.748047 12.879232 17.019855 12.231445 17.211914 11.538086 C 17.403971 10.844727 17.5 10.123698 17.5 9.375 Z M 9.375 10 C 9.205729 10 9.059244 9.938151 8.935547 9.814453 C 8.811849 9.690756 8.75 9.544271 8.75 9.375 L 8.75 4.375 C 8.75 4.20573 8.811849 4.059246 8.935547 3.935547 C 9.059244 3.81185 9.205729 3.75 9.375 3.75 C 9.544271 3.75 9.690755 3.81185 9.814453 3.935547 C 9.93815 4.059246 10 4.20573 10 4.375 L 10 8.75 L 13.125 8.75 C 13.294271 8.75 13.440755 8.81185 13.564453 8.935547 C 13.68815 9.059245 13.75 9.205729 13.75 9.375 C 13.75 9.544271 13.68815 9.690756 13.564453 9.814453 C 13.440755 9.938151 13.294271 10 13.125 10 Z " />
</controls:SettingsCard.HeaderIcon>
</controls:SettingsCard>
</StackPanel>
<VisualStateManager.VisualStateGroups>

View File

@@ -11,11 +11,17 @@
xmlns:helpers="using:Wino.Helpers"
xmlns:imapsetup="using:Wino.Views.ImapSetup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:picker="using:Microsoft.UI.Xaml.Controls"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<ScrollViewer>
<StackPanel Spacing="3">
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</StackPanel.ChildrenTransitions>
<controls:SettingsExpander Description="{x:Bind domain:Translator.AccountDetailsPage_Description}" Header="{x:Bind domain:Translator.AccountDetailsPage_Title}">
<controls:SettingsExpander.HeaderIcon>
<SymbolIcon Symbol="Contact" />
@@ -112,7 +118,7 @@
Header="{x:Bind domain:Translator.IMAPSetupDialog_IncomingMailServer}"
Text="{x:Bind ViewModel.ServerInformation.IncomingServer, Mode=TwoWay}" />
<picker:NumberBox
<muxc:NumberBox
Grid.Row="2"
Header="{x:Bind domain:Translator.IMAPSetupDialog_IncomingMailServerPort}"
Maximum="65535"
@@ -163,7 +169,7 @@
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServer}"
Text="{x:Bind ViewModel.ServerInformation.OutgoingServer, Mode=TwoWay}" />
<picker:NumberBox
<muxc:NumberBox
Grid.Row="2"
Grid.Column="2"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerPort}"
@@ -209,13 +215,13 @@
Orientation="Horizontal"
Spacing="12">
<ProgressRing
Width="5"
Height="5"
<muxc:ProgressRing
Width="20"
Height="20"
IsActive="{x:Bind ViewModel.ValidateImapSettingsCommand.IsRunning, Mode=OneWay}" />
<Button Command="{x:Bind ViewModel.ValidateImapSettingsCommand}" Content="Test" />
<Button
Command="{x:Bind ViewModel.SaveWithoutGoBackCommand}"
Command="{x:Bind ViewModel.UpdateCustomServerInformationCommand}"
Content="{x:Bind domain:Translator.Buttons_Save}"
Style="{ThemeResource AccentButtonStyle}" />
</StackPanel>

View File

@@ -10,7 +10,7 @@
mc:Ignorable="d">
<ScrollViewer>
<StackPanel>
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<controls:SettingsCard
CommandParameter="Language"
Description="{x:Bind domain:Translator.SettingsLanguage_Description}"

File diff suppressed because one or more lines are too long

View File

@@ -51,7 +51,13 @@
</Page.Resources>
<ScrollViewer>
<StackPanel Spacing="3">
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</StackPanel.ChildrenTransitions>
<!-- Accent Color -->
<controls:SettingsExpander
Description="{x:Bind domain:Translator.SettingsAccentColor_Description}"

View File

@@ -11,8 +11,14 @@
mc:Ignorable="d">
<ScrollViewer>
<StackPanel Spacing="4">
<TextBlock FontWeight="SemiBold" Text="{x:Bind domain:Translator.SettingsReader_Title}" />
<StackPanel Spacing="{StaticResource SettingsCardSpacing}">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<RepositionThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</StackPanel.ChildrenTransitions>
<TextBlock Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" Text="{x:Bind domain:Translator.SettingsReader_Title}" />
<controls:SettingsExpander
Description="{x:Bind domain:Translator.SettingsReaderFontFamily_Description}"
Header="{x:Bind domain:Translator.SettingsReaderFont_Title}"
@@ -52,6 +58,13 @@
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsMailRendering_ActionLabels_Description}" Header="{x:Bind domain:Translator.SettingsMailRendering_ActionLabels_Title}">
<controls:SettingsCard.HeaderIcon>
<PathIcon Data="F1 M 0 7.5 C 0 6.822917 0.169271 6.191406 0.507812 5.605469 C 0.839844 5.039062 1.289062 4.589844 1.855469 4.257812 C 2.441406 3.919271 3.072917 3.75 3.75 3.75 L 16.25 3.75 C 16.927082 3.75 17.558594 3.919271 18.144531 4.257812 C 18.710938 4.589844 19.160156 5.039062 19.492188 5.605469 C 19.830729 6.191406 20 6.822917 20 7.5 L 20 11.25 C 20 11.927084 19.830729 12.558594 19.492188 13.144531 C 19.160156 13.710938 18.710938 14.160156 18.144531 14.492188 C 17.558594 14.830729 16.927082 15 16.25 15 L 3.75 15 C 3.072917 15 2.441406 14.830729 1.855469 14.492188 C 1.289062 14.160156 0.839844 13.710938 0.507812 13.144531 C 0.169271 12.558594 0 11.927084 0 11.25 Z M 3.75 5 C 3.294271 5.000001 2.875977 5.112306 2.495117 5.336914 C 2.114258 5.561524 1.811523 5.864259 1.586914 6.245117 C 1.362305 6.625978 1.25 7.044271 1.25 7.5 L 1.25 11.25 C 1.25 11.705729 1.362305 12.124023 1.586914 12.504883 C 1.811523 12.885742 2.114258 13.188477 2.495117 13.413086 C 2.875977 13.637695 3.294271 13.75 3.75 13.75 L 16.25 13.75 C 16.705729 13.75 17.124023 13.637695 17.504883 13.413086 C 17.885742 13.188477 18.188477 12.885742 18.413086 12.504883 C 18.637695 12.124023 18.75 11.705729 18.75 11.25 L 18.75 7.5 C 18.75 7.044271 18.637695 6.625978 18.413086 6.245117 C 18.188477 5.864259 17.885742 5.561524 17.504883 5.336914 C 17.124023 5.112306 16.705729 5.000001 16.25 5 Z M 8.75 9.375 C 8.75 9.199219 8.810221 9.051107 8.930664 8.930664 C 9.051106 8.810222 9.199219 8.75 9.375 8.75 L 15 8.75 C 15.17578 8.75 15.323893 8.810222 15.444336 8.930664 C 15.564778 9.051107 15.625 9.199219 15.625 9.375 C 15.625 9.550781 15.564778 9.698894 15.444336 9.819336 C 15.323893 9.939779 15.17578 10 15 10 L 9.375 10 C 9.199219 10 9.051106 9.939779 8.930664 9.819336 C 8.810221 9.698894 8.75 9.550781 8.75 9.375 Z M 7.5 9.375 C 7.5 9.713542 7.415364 10.026042 7.246094 10.3125 C 7.076823 10.598959 6.848958 10.826823 6.5625 10.996094 C 6.276042 11.165365 5.963542 11.25 5.625 11.25 C 5.286458 11.25 4.973958 11.165365 4.6875 10.996094 C 4.401042 10.826823 4.173177 10.598959 4.003906 10.3125 C 3.834635 10.026042 3.75 9.713542 3.75 9.375 C 3.75 9.036459 3.834635 8.723959 4.003906 8.4375 C 4.173177 8.151042 4.401042 7.923178 4.6875 7.753906 C 4.973958 7.584636 5.286458 7.5 5.625 7.5 C 5.963542 7.5 6.276042 7.584636 6.5625 7.753906 C 6.848958 7.923178 7.076823 8.151042 7.246094 8.4375 C 7.415364 8.723959 7.5 9.036459 7.5 9.375 Z " />
</controls:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{x:Bind ViewModel.PreferencesService.IsShowActionLabelsEnabled, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsExpander Description="{x:Bind domain:Translator.SettingsExternalContent_Description}" Header="{x:Bind domain:Translator.SettingsExternalContent_Title}">
<controls:SettingsExpander.HeaderIcon>
<PathIcon Data="F1 M 4.023438 13.75 C 3.476562 13.75 2.958984 13.636068 2.470703 13.408203 C 1.982422 13.180339 1.554362 12.875977 1.186523 12.495117 C 0.818685 12.114258 0.528971 11.674805 0.317383 11.176758 C 0.105794 10.678711 0 10.159506 0 9.619141 C 0 9.065756 0.094401 8.535156 0.283203 8.027344 C 0.472005 7.519531 0.737305 7.068686 1.079102 6.674805 C 1.420898 6.280926 1.829427 5.961915 2.304688 5.717773 C 2.779948 5.473634 3.304036 5.338543 3.876953 5.3125 L 4.189453 5.302734 C 4.261067 4.501953 4.453125 3.776043 4.765625 3.125 C 5.078125 2.473959 5.488281 1.915691 5.996094 1.450195 C 6.503906 0.984701 7.097981 0.626629 7.77832 0.375977 C 8.458658 0.125326 9.199219 0 10 0 C 10.800781 0 11.541341 0.126953 12.22168 0.380859 C 12.902018 0.634766 13.496093 0.99284 14.003906 1.455078 C 14.511718 1.917318 14.921874 2.473959 15.234375 3.125 C 15.546874 3.776043 15.738932 4.501953 15.810547 5.302734 L 15.966797 5.302734 C 16.513672 5.302734 17.032877 5.416667 17.524414 5.644531 C 18.015949 5.872396 18.44401 6.176758 18.808594 6.557617 C 19.173176 6.938477 19.462891 7.379558 19.677734 7.880859 C 19.892578 8.382162 20 8.902995 20 9.443359 L 20 9.667969 C 20 9.700521 20 9.736328 20 9.775391 C 20 9.814453 19.996744 9.850261 19.990234 9.882812 C 19.573566 9.375 19.108072 8.932292 18.59375 8.554688 C 18.489582 8.248698 18.346354 7.972006 18.164062 7.724609 C 17.98177 7.477214 17.770182 7.267253 17.529297 7.094727 C 17.28841 6.922201 17.021484 6.788737 16.728516 6.694336 C 16.435547 6.599936 16.129557 6.552735 15.810547 6.552734 C 15.472005 6.552735 15.192057 6.446941 14.970703 6.235352 C 14.749349 6.023764 14.61263 5.755209 14.560547 5.429688 C 14.527994 5.195312 14.49056 4.967448 14.448242 4.746094 C 14.405924 4.52474 14.342447 4.300131 14.257812 4.072266 C 14.088541 3.603516 13.862304 3.193359 13.579102 2.841797 C 13.295897 2.490234 12.970377 2.195639 12.602539 1.958008 C 12.2347 1.720379 11.831055 1.542969 11.391602 1.425781 C 10.952148 1.308594 10.488281 1.25 10 1.25 C 9.511719 1.25 9.047852 1.308594 8.608398 1.425781 C 8.168945 1.542969 7.765299 1.71875 7.397461 1.953125 C 7.029622 2.1875 6.704102 2.480469 6.420898 2.832031 C 6.137695 3.183594 5.911458 3.59375 5.742188 4.0625 C 5.657552 4.290365 5.594075 4.514975 5.551758 4.736328 C 5.50944 4.957683 5.472005 5.188803 5.439453 5.429688 C 5.38737 5.813803 5.236002 6.097006 4.985352 6.279297 C 4.7347 6.46159 4.423828 6.552735 4.052734 6.552734 C 3.655599 6.552735 3.286133 6.635743 2.944336 6.801758 C 2.602539 6.967774 2.306315 7.189129 2.055664 7.46582 C 1.805013 7.742514 1.608073 8.059896 1.464844 8.417969 C 1.321615 8.776042 1.25 9.147136 1.25 9.53125 C 1.25 9.928386 1.321615 10.30599 1.464844 10.664062 C 1.608073 11.022136 1.806641 11.337891 2.060547 11.611328 C 2.314453 11.884766 2.61556 12.101237 2.963867 12.260742 C 3.312174 12.420248 3.691406 12.5 4.101562 12.5 L 7.431641 12.5 C 7.373047 12.708334 7.327474 12.916667 7.294922 13.125 C 7.26237 13.333334 7.236328 13.541667 7.216797 13.75 Z M 8.75 14.375 C 8.75 13.600261 8.898111 12.871094 9.194336 12.1875 C 9.49056 11.503906 9.892578 10.908203 10.400391 10.400391 C 10.908203 9.892578 11.503906 9.490561 12.1875 9.194336 C 12.871093 8.898112 13.60026 8.75 14.375 8.75 C 14.889322 8.75 15.385741 8.816732 15.864258 8.950195 C 16.342773 9.083659 16.790363 9.272461 17.207031 9.516602 C 17.623697 9.760742 18.004557 10.055339 18.349609 10.400391 C 18.69466 10.745443 18.989258 11.126303 19.233398 11.542969 C 19.477539 11.959636 19.66634 12.407227 19.799805 12.885742 C 19.933268 13.364258 20 13.860678 20 14.375 C 20 15.14974 19.851887 15.878906 19.555664 16.5625 C 19.259439 17.246094 18.857422 17.841797 18.349609 18.349609 C 17.841797 18.857422 17.246094 19.259439 16.5625 19.555664 C 15.878906 19.851889 15.149739 20 14.375 20 C 13.59375 20 12.861328 19.853516 12.177734 19.560547 C 11.494141 19.267578 10.898438 18.867188 10.390625 18.359375 C 9.882812 17.851562 9.482422 17.255859 9.189453 16.572266 C 8.896484 15.888672 8.75 15.15625 8.75 14.375 Z M 14.375 17.578125 C 14.570312 17.578125 14.736328 17.509766 14.873047 17.373047 L 17.373047 14.873047 C 17.509766 14.736328 17.578125 14.570312 17.578125 14.375 C 17.578125 14.179688 17.509766 14.013672 17.373047 13.876953 C 17.236328 13.740234 17.070312 13.671875 16.875 13.671875 C 16.679688 13.671875 16.513672 13.740234 16.376953 13.876953 L 15 15.253906 L 15 11.875 C 14.999999 11.705729 14.93815 11.559245 14.814453 11.435547 C 14.690755 11.31185 14.544271 11.25 14.375 11.25 C 14.205729 11.25 14.059244 11.31185 13.935547 11.435547 C 13.811849 11.559245 13.75 11.705729 13.75 11.875 L 13.75 15.253906 L 12.373047 13.876953 C 12.236328 13.740234 12.070312 13.671875 11.875 13.671875 C 11.679688 13.671875 11.513672 13.740234 11.376953 13.876953 C 11.240234 14.013672 11.171875 14.179688 11.171875 14.375 C 11.171875 14.570312 11.240234 14.736328 11.376953 14.873047 L 13.876953 17.373047 C 14.013672 17.509766 14.179688 17.578125 14.375 17.578125 Z " />
@@ -71,17 +84,14 @@
</controls:SettingsCard>
<controls:SettingsCard Header="{x:Bind domain:Translator.SettingsLoadPlaintextLinks_Title}">
<controls:SettingsCard.HeaderIcon>
<PathIcon Data="{StaticResource AddLinkPathIcon}" />
<PathIcon Data="{StaticResource AddLinkPathIcon}" />
</controls:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{x:Bind ViewModel.PreferencesService.RenderPlaintextLinks, Mode=TwoWay}" />
</controls:SettingsCard>
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<TextBlock
Margin="0,20,0,0"
FontWeight="SemiBold"
Text="{x:Bind domain:Translator.SettingsComposer_Title}" />
<TextBlock Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" Text="{x:Bind domain:Translator.SettingsComposer_Title}" />
<controls:SettingsExpander
Description="{x:Bind domain:Translator.SettingsComposerFontFamily_Description}"
Header="{x:Bind domain:Translator.SettingsComposerFont_Title}"
@@ -122,4 +132,4 @@
</controls:SettingsExpander>
</StackPanel>
</ScrollViewer>
</abstract:ReadComposePanePageAbstract>
</abstract:ReadComposePanePageAbstract>

View File

@@ -53,7 +53,7 @@
</Page.Resources>
<ScrollViewer>
<Grid RowSpacing="41">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
@@ -69,8 +69,8 @@
<ToggleSwitch IsOn="{x:Bind ViewModel.IsSignatureEnabled, Mode=TwoWay}" />
</controls1:SettingsCard>
<StackPanel Grid.Row="1" Spacing="4">
<TextBlock FontWeight="SemiBold" Text="{x:Bind domain:Translator.SettingsSignature_SignatureDefaults}" />
<StackPanel Grid.Row="1" Spacing="{StaticResource SettingsCardSpacing}">
<TextBlock Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" Text="{x:Bind domain:Translator.SettingsSignature_SignatureDefaults}" />
<controls1:SettingsCard
Header="{x:Bind domain:Translator.SettingsSignature_ForNewMessages_Title}"
IsActionIconVisible="False"
@@ -100,8 +100,8 @@
</controls1:SettingsCard>
</StackPanel>
<StackPanel Grid.Row="2" Spacing="3">
<TextBlock FontWeight="SemiBold" Text="{x:Bind domain:Translator.SettingsSignature_Signatures}" />
<StackPanel Grid.Row="2" Spacing="{StaticResource SettingsCardSpacing}">
<TextBlock Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" Text="{x:Bind domain:Translator.SettingsSignature_Signatures}" />
<controls1:SettingsCard
Header="{x:Bind domain:Translator.SettingsSignature_AddCustomSignature_Title}"
IsActionIconVisible="False"

View File

@@ -26,19 +26,13 @@
</ItemGroup>
<ItemGroup>
<None Remove="Assets\EML\eml.png" />
<None Remove="Assets\NotificationIcons\archive.png" />
<None Remove="Assets\NotificationIcons\delete.png" />
<None Remove="Assets\NotificationIcons\dismiss.png" />
<None Remove="Assets\NotificationIcons\markread.png" />
<None Remove="Assets\NotificationIcons\profile-dark.png" />
<None Remove="Assets\NotificationIcons\profile-light.png" />
<None Remove="Assets\ReleaseNotes\1102.md" />
<None Remove="Assets\Thumbnails\airbnb.com.png" />
<None Remove="Assets\Thumbnails\apple.com.png" />
<None Remove="Assets\Thumbnails\google.com.png" />
<None Remove="Assets\Thumbnails\microsoft.com.png" />
<None Remove="Assets\Thumbnails\steampowered.com.png" />
<None Remove="Assets\Thumbnails\uber.com.png" />
<None Remove="Assets\Thumbnails\youtube.com.png" />
<None Remove="JS\editor.html" />
<None Remove="JS\editor.js" />
<None Remove="JS\global.css" />
@@ -51,19 +45,13 @@
</ItemGroup>
<ItemGroup>
<Content Include="Assets\EML\eml.png" />
<Content Include="Assets\NotificationIcons\archive.png" />
<Content Include="Assets\NotificationIcons\delete.png" />
<Content Include="Assets\NotificationIcons\dismiss.png" />
<Content Include="Assets\NotificationIcons\markread.png" />
<Content Include="Assets\NotificationIcons\profile-dark.png" />
<Content Include="Assets\NotificationIcons\profile-light.png" />
<Content Include="Assets\ReleaseNotes\1102.md" />
<Content Include="Assets\Thumbnails\airbnb.com.png" />
<Content Include="Assets\Thumbnails\apple.com.png" />
<Content Include="Assets\Thumbnails\google.com.png" />
<Content Include="Assets\Thumbnails\microsoft.com.png" />
<Content Include="Assets\Thumbnails\steampowered.com.png" />
<Content Include="Assets\Thumbnails\uber.com.png" />
<Content Include="Assets\Thumbnails\youtube.com.png" />
<Content Include="JS\editor.html" />
<Content Include="JS\editor.js" />
<Content Include="JS\global.css" />
@@ -95,6 +83,7 @@
<PackageReference Include="Microsoft.UI.Xaml" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Uwp.Managed" />
<PackageReference Include="Nito.AsyncEx" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="sqlite-net-pcl" />
<PackageReference Include="Win2D.uwp" />

View File

@@ -0,0 +1,5 @@
using System;
namespace Wino.Messaging.UI;
public record MailReadStatusChanged(Guid UniqueId);

View File

@@ -0,0 +1,4 @@
using Wino.Core.Domain.Interfaces;
namespace Wino.Messaging.UI;
public record ThumbnailAdded(string Email): IUIMessage;

View File

@@ -79,6 +79,7 @@ public partial class App : Application
services.AddTransient<INotificationBuilder, NotificationBuilder>();
services.AddTransient<IUnderlyingThemeService, UnderlyingThemeService>();
services.AddSingleton<IApplicationConfiguration, ApplicationConfiguration>();
services.AddSingleton<IThumbnailService, ThumbnailService>();
// Register server message handler factory.
var serverMessageHandlerFactory = new ServerMessageHandlerFactory();

View File

@@ -47,16 +47,16 @@ public class ServerContext :
IRecipient<OnlineSearchRequested>,
IRecipient<AccountCacheResetMessage>
{
private readonly System.Timers.Timer _timer;
private const double MinimumSynchronizationIntervalMinutes = 1;
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
private static object connectionLock = new object();
private AppServiceConnection connection = null;
private readonly IDatabaseService _databaseService;
private readonly IApplicationConfiguration _applicationFolderConfiguration;
private readonly ISynchronizerFactory _synchronizerFactory;
private readonly IServerMessageHandlerFactory _serverMessageHandlerFactory;
private readonly IAccountService _accountService;
private readonly IPreferencesService _preferencesService;
private readonly JsonSerializerOptions _jsonSerializerOptions = new JsonSerializerOptions
{
TypeInfoResolver = new ServerRequestTypeInfoResolver()
@@ -66,21 +66,35 @@ public class ServerContext :
IApplicationConfiguration applicationFolderConfiguration,
ISynchronizerFactory synchronizerFactory,
IServerMessageHandlerFactory serverMessageHandlerFactory,
IAccountService accountService)
IAccountService accountService,
IPreferencesService preferencesService)
{
// Setup timer for synchronization.
_preferencesService = preferencesService;
_timer = new System.Timers.Timer(1000 * 60 * 3); // 1 minute
_timer.Elapsed += SynchronizationTimerTriggered;
_preferencesService.PropertyChanged += PreferencesUpdated;
_databaseService = databaseService;
_applicationFolderConfiguration = applicationFolderConfiguration;
_synchronizerFactory = synchronizerFactory;
_serverMessageHandlerFactory = serverMessageHandlerFactory;
_accountService = accountService;
WeakReferenceMessenger.Default.RegisterAll(this);
// Setup timer for synchronization.
RestartSynchronizationTimer();
}
private void PreferencesUpdated(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(IPreferencesService.EmailSyncIntervalMinutes))
RestartSynchronizationTimer();
}
private void RestartSynchronizationTimer()
{
_timer.Stop();
// Ensure that the interval is at least 1 minute.
_timer.Interval = 1000 * 60 * Math.Max(MinimumSynchronizationIntervalMinutes, _preferencesService.EmailSyncIntervalMinutes);
_timer.Start();
}

View File

@@ -34,11 +34,13 @@
</Resource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="H.NotifyIcon.Wpf" />
<PackageReference Include="CommunityToolkit.WinUI.Notifications" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="System.Text.Encoding.CodePages" />
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="gravatar-dotnet" />
<PackageReference Include="H.NotifyIcon.Wpf" />
<PackageReference Include="CommunityToolkit.WinUI.Notifications" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="System.Text.Encoding.CodePages" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Wino.Authentication\Wino.Authentication.csproj" />

View File

@@ -408,6 +408,11 @@ public class AccountService : BaseDatabaseService, IAccountService
ReportUIChange(new AccountUpdatedMessage(account));
}
public async Task UpdateAccountCustomServerInformationAsync(CustomServerInformation customServerInformation)
{
await Connection.UpdateAsync(customServerInformation).ConfigureAwait(false);
}
public async Task UpdateAccountAliasesAsync(Guid accountId, List<MailAccountAlias> aliases)
{
// Delete existing ones.

View File

@@ -10,5 +10,5 @@ public class ApplicationConfiguration : IApplicationConfiguration
public string PublisherSharedFolderPath { get; set; }
public string ApplicationTempFolderPath { get; set; }
public string ApplicationInsightsInstrumentationKey => "a5a07c2f-6e24-4055-bfc9-88e87eef873a";
public string SentryDNS => "https://81365d32d74c6f223a0674a2fb7bade5@o4509722249134080.ingest.de.sentry.io/4509722259095632";
}

View File

@@ -57,7 +57,8 @@ public class DatabaseService : IDatabaseService
typeof(AccountCalendar),
typeof(CalendarEventAttendee),
typeof(CalendarItem),
typeof(Reminder)
typeof(Reminder),
typeof(Thumbnail)
);
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using MimeKit;
using Serilog;
using SqlKata;
@@ -584,6 +585,10 @@ public class MailService : BaseDatabaseService, IMailService
if (item.IsRead == isRead) return false;
item.IsRead = isRead;
if (isRead && item.UniqueId != Guid.Empty)
{
WeakReferenceMessenger.Default.Send(new MailReadStatusChanged(item.UniqueId));
}
return true;
});

View File

@@ -1,37 +0,0 @@
using System;
using System.Collections.Generic;
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Serilog.Events;
using Serilog.Sinks.ApplicationInsights.TelemetryConverters;
namespace Wino.Services.Misc;
internal class WinoTelemetryConverter : EventTelemetryConverter
{
private readonly string _userDiagnosticId;
public WinoTelemetryConverter(string userDiagnosticId)
{
_userDiagnosticId = userDiagnosticId;
}
public override IEnumerable<ITelemetry> Convert(LogEvent logEvent, IFormatProvider formatProvider)
{
foreach (ITelemetry telemetry in base.Convert(logEvent, formatProvider))
{
// Assign diagnostic id as user id.
telemetry.Context.User.Id = _userDiagnosticId;
yield return telemetry;
}
}
public override void ForwardPropertiesToTelemetryProperties(LogEvent logEvent, ISupportProperties telemetryProperties, IFormatProvider formatProvider)
{
ForwardPropertiesToTelemetryProperties(logEvent, telemetryProperties, formatProvider,
includeLogLevel: true,
includeRenderedMessage: true,
includeMessageTemplate: false);
}
}

View File

@@ -9,15 +9,18 @@
<PackageReference Include="HtmlAgilityPack" />
<PackageReference Include="Ical.Net" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Sentry.Serilog" />
<PackageReference Include="Serilog" />
<PackageReference Include="Serilog.Sinks.Debug" />
<PackageReference Include="Serilog.Sinks.File" />
<PackageReference Include="Serilog.Exceptions" />
<PackageReference Include="Serilog.Sinks.ApplicationInsights" />
<PackageReference Include="SqlKata" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Wino.Core.Domain\Wino.Core.Domain.csproj" />
<ProjectReference Include="..\Wino.Messages\Wino.Messaging.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Misc\" />
</ItemGroup>
</Project>

View File

@@ -1,11 +1,9 @@
using System.Collections.Generic;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Sentry;
using Serilog;
using Serilog.Core;
using Serilog.Exceptions;
using Wino.Core.Domain.Interfaces;
using Wino.Services.Misc;
namespace Wino.Services;
@@ -13,16 +11,12 @@ public class WinoLogger : IWinoLogger
{
private readonly LoggingLevelSwitch _levelSwitch = new LoggingLevelSwitch();
private readonly IPreferencesService _preferencesService;
private readonly TelemetryConfiguration _telemetryConfiguration;
public TelemetryClient TelemetryClient { get; private set; }
private readonly IApplicationConfiguration _applicationConfiguration;
public WinoLogger(IPreferencesService preferencesService, IApplicationConfiguration applicationConfiguration)
{
_preferencesService = preferencesService;
_telemetryConfiguration = new TelemetryConfiguration(applicationConfiguration.ApplicationInsightsInstrumentationKey);
TelemetryClient = new TelemetryClient(_telemetryConfiguration);
_applicationConfiguration = applicationConfiguration;
RefreshLoggingLevel();
}
@@ -42,13 +36,34 @@ public class WinoLogger : IWinoLogger
// This call seems weird, but it is necessary to make sure the diagnostic id is set.
_preferencesService.DiagnosticId = _preferencesService.DiagnosticId;
var insightsTelemetryConverter = new WinoTelemetryConverter(_preferencesService.DiagnosticId);
// Initialize Sentry
SentrySdk.Init(options =>
{
options.Dsn = _applicationConfiguration.SentryDNS;
#if DEBUG
options.Debug = false;
#else
options.Debug = true;
#endif
options.AutoSessionTracking = true;
// Set user context
options.SetBeforeSend((sentryEvent, hint) =>
{
sentryEvent.User = new SentryUser
{
Id = _preferencesService.DiagnosticId
};
return sentryEvent;
});
});
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(_levelSwitch)
.WriteTo.File(fullLogFilePath, retainedFileCountLimit: 3, rollOnFileSizeLimit: true, rollingInterval: RollingInterval.Day)
.WriteTo.Sentry(minimumBreadcrumbLevel: Serilog.Events.LogEventLevel.Information,
minimumEventLevel: Serilog.Events.LogEventLevel.Error)
.WriteTo.Debug()
.WriteTo.ApplicationInsights(TelemetryClient, insightsTelemetryConverter, restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Error)
.Enrich.FromLogContext()
.Enrich.WithExceptionDetails()
.CreateLogger();
@@ -56,8 +71,17 @@ public class WinoLogger : IWinoLogger
public void TrackEvent(string eventName, Dictionary<string, string> properties = null)
{
if (TelemetryClient == null) return;
SentrySdk.AddBreadcrumb(eventName, data: properties);
TelemetryClient.TrackEvent(eventName, properties);
SentrySdk.ConfigureScope(scope =>
{
if (properties != null)
{
foreach (var prop in properties)
{
scope.SetTag(prop.Key, prop.Value);
}
}
});
}
}

289
Wino.sln
View File

@@ -1,289 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.32112.339
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Mail", "Wino.Mail\Wino.Mail.csproj", "{68A432B8-C1B7-494C-8D6D-230788EA683E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Core", "Wino.Core\Wino.Core.csproj", "{E6B1632A-8901-41E8-9DDF-6793C7698B0B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Core.UWP", "Wino.Core.UWP\Wino.Core.UWP.csproj", "{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Core.Domain", "Wino.Core.Domain\Wino.Core.Domain.csproj", "{CF3312E5-5DA0-4867-9945-49EA7598AF1F}"
ProjectSection(ProjectDependencies) = postProject
{D4919A19-E70F-4916-83D2-5D5F87BEB949} = {D4919A19-E70F-4916-83D2-5D5F87BEB949}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.BackgroundTasks", "Wino.BackgroundTasks\Wino.BackgroundTasks.csproj", "{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Mail.ViewModels", "Wino.Mail.ViewModels\Wino.Mail.ViewModels.csproj", "{D62F1C03-DA57-4709-A640-0283296A8E66}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Messaging", "Wino.Messages\Wino.Messaging.csproj", "{0C307D7E-256F-448C-8265-5622A812FBCC}"
EndProject
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Wino.Packaging", "Wino.Packaging\Wino.Packaging.wapproj", "{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wino.Server", "Wino.Server\Wino.Server.csproj", "{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.SourceGenerators", "Wino.SourceGenerators\Wino.SourceGenerators.csproj", "{D4919A19-E70F-4916-83D2-5D5F87BEB949}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Core.ViewModels", "Wino.Core.ViewModels\Wino.Core.ViewModels.csproj", "{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Calendar.ViewModels", "Wino.Calendar.ViewModels\Wino.Calendar.ViewModels.csproj", "{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Authentication", "Wino.Authentication\Wino.Authentication.csproj", "{A4DBA01A-F315-49E0-8428-BB99D32B20F9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Calendar", "Wino.Calendar\Wino.Calendar.csproj", "{600F4979-DB7E-409D-B7DA-B60BE4C55C35}"
EndProject
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Wino.Calendar.Packaging", "Wino.Calendar.Packaging\Wino.Calendar.Packaging.wapproj", "{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wino.Services", "Wino.Services\Wino.Services.csproj", "{4000A374-59FE-4400-ACF6-D40473BECD73}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|ARM64.ActiveCfg = Debug|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|ARM64.Build.0 = Debug|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|ARM64.Deploy.0 = Debug|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x64.ActiveCfg = Debug|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x64.Build.0 = Debug|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x64.Deploy.0 = Debug|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x86.ActiveCfg = Debug|x86
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x86.Build.0 = Debug|x86
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Debug|x86.Deploy.0 = Debug|x86
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|ARM64.ActiveCfg = Release|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|ARM64.Build.0 = Release|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|ARM64.Deploy.0 = Release|ARM64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x64.ActiveCfg = Release|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x64.Build.0 = Release|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x64.Deploy.0 = Release|x64
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x86.ActiveCfg = Release|x86
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x86.Build.0 = Release|x86
{68A432B8-C1B7-494C-8D6D-230788EA683E}.Release|x86.Deploy.0 = Release|x86
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|ARM64.Build.0 = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|x64.ActiveCfg = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|x64.Build.0 = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|x86.ActiveCfg = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Debug|x86.Build.0 = Debug|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|ARM64.ActiveCfg = Release|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|ARM64.Build.0 = Release|Any CPU
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|x64.ActiveCfg = Release|x64
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|x64.Build.0 = Release|x64
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|x86.ActiveCfg = Release|x86
{E6B1632A-8901-41E8-9DDF-6793C7698B0B}.Release|x86.Build.0 = Release|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|ARM64.Build.0 = Debug|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x64.ActiveCfg = Debug|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x64.Build.0 = Debug|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x86.ActiveCfg = Debug|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Debug|x86.Build.0 = Debug|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM64.ActiveCfg = Release|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|ARM64.Build.0 = Release|ARM64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x64.ActiveCfg = Release|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x64.Build.0 = Release|x64
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x86.ActiveCfg = Release|x86
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8}.Release|x86.Build.0 = Release|x86
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|ARM64.Build.0 = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|x64.ActiveCfg = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|x64.Build.0 = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Debug|x86.Build.0 = Debug|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|ARM64.ActiveCfg = Release|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|ARM64.Build.0 = Release|Any CPU
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|x64.ActiveCfg = Release|x64
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|x64.Build.0 = Release|x64
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|x86.ActiveCfg = Release|x86
{CF3312E5-5DA0-4867-9945-49EA7598AF1F}.Release|x86.Build.0 = Release|x86
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|ARM64.Build.0 = Debug|ARM64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|x64.ActiveCfg = Debug|x64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|x64.Build.0 = Debug|x64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|x86.ActiveCfg = Debug|x86
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Debug|x86.Build.0 = Debug|x86
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|ARM64.ActiveCfg = Release|ARM64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|ARM64.Build.0 = Release|ARM64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|x64.ActiveCfg = Release|x64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|x64.Build.0 = Release|x64
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|x86.ActiveCfg = Release|x86
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08}.Release|x86.Build.0 = Release|x86
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|ARM64.Build.0 = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|x64.ActiveCfg = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|x64.Build.0 = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|x86.ActiveCfg = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Debug|x86.Build.0 = Debug|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|ARM64.ActiveCfg = Release|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|ARM64.Build.0 = Release|Any CPU
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|x64.ActiveCfg = Release|x64
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|x64.Build.0 = Release|x64
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|x86.ActiveCfg = Release|x86
{D62F1C03-DA57-4709-A640-0283296A8E66}.Release|x86.Build.0 = Release|x86
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|ARM64.Build.0 = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|x64.ActiveCfg = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|x64.Build.0 = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|x86.ActiveCfg = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Debug|x86.Build.0 = Debug|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|ARM64.ActiveCfg = Release|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|ARM64.Build.0 = Release|Any CPU
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|x64.ActiveCfg = Release|x64
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|x64.Build.0 = Release|x64
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|x86.ActiveCfg = Release|x86
{0C307D7E-256F-448C-8265-5622A812FBCC}.Release|x86.Build.0 = Release|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|ARM64.Build.0 = Debug|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|ARM64.Deploy.0 = Debug|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x64.ActiveCfg = Debug|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x64.Build.0 = Debug|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x64.Deploy.0 = Debug|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x86.ActiveCfg = Debug|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x86.Build.0 = Debug|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Debug|x86.Deploy.0 = Debug|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|ARM64.ActiveCfg = Release|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|ARM64.Build.0 = Release|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|ARM64.Deploy.0 = Release|ARM64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x64.ActiveCfg = Release|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x64.Build.0 = Release|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x64.Deploy.0 = Release|x64
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x86.ActiveCfg = Release|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x86.Build.0 = Release|x86
{760F5F31-8EE3-4B83-80F3-0E4FFBCC737C}.Release|x86.Deploy.0 = Release|x86
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|ARM64.ActiveCfg = Debug|ARM64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|ARM64.Build.0 = Debug|ARM64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|x64.ActiveCfg = Debug|x64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|x64.Build.0 = Debug|x64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|x86.ActiveCfg = Debug|x86
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Debug|x86.Build.0 = Debug|x86
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|ARM64.ActiveCfg = Release|ARM64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|ARM64.Build.0 = Release|ARM64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|x64.ActiveCfg = Release|x64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|x64.Build.0 = Release|x64
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|x86.ActiveCfg = Release|x86
{3D1942E5-1A3B-4062-B4BB-156A40DA47FE}.Release|x86.Build.0 = Release|x86
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|ARM64.Build.0 = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|x64.ActiveCfg = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|x64.Build.0 = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Debug|x86.Build.0 = Debug|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|ARM64.ActiveCfg = Release|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|ARM64.Build.0 = Release|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|x64.ActiveCfg = Release|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|x64.Build.0 = Release|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|x86.ActiveCfg = Release|Any CPU
{D4919A19-E70F-4916-83D2-5D5F87BEB949}.Release|x86.Build.0 = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|ARM64.Build.0 = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|x64.ActiveCfg = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|x64.Build.0 = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|x86.ActiveCfg = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Debug|x86.Build.0 = Debug|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|ARM64.ActiveCfg = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|ARM64.Build.0 = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|x64.ActiveCfg = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|x64.Build.0 = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|x86.ActiveCfg = Release|Any CPU
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8}.Release|x86.Build.0 = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|ARM64.Build.0 = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|x64.ActiveCfg = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|x64.Build.0 = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|x86.ActiveCfg = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Debug|x86.Build.0 = Debug|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|ARM64.ActiveCfg = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|ARM64.Build.0 = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|x64.ActiveCfg = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|x64.Build.0 = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|x86.ActiveCfg = Release|Any CPU
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74}.Release|x86.Build.0 = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|ARM64.Build.0 = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|x64.ActiveCfg = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|x64.Build.0 = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|x86.ActiveCfg = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Debug|x86.Build.0 = Debug|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|ARM64.ActiveCfg = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|ARM64.Build.0 = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|x64.ActiveCfg = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|x64.Build.0 = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|x86.ActiveCfg = Release|Any CPU
{A4DBA01A-F315-49E0-8428-BB99D32B20F9}.Release|x86.Build.0 = Release|Any CPU
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.ActiveCfg = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.Build.0 = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|ARM64.Deploy.0 = Debug|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.ActiveCfg = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.Build.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x64.Deploy.0 = Debug|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.ActiveCfg = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.Build.0 = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Debug|x86.Deploy.0 = Debug|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.ActiveCfg = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.Build.0 = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|ARM64.Deploy.0 = Release|ARM64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.ActiveCfg = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.Build.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x64.Deploy.0 = Release|x64
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.ActiveCfg = Release|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.Build.0 = Release|x86
{600F4979-DB7E-409D-B7DA-B60BE4C55C35}.Release|x86.Deploy.0 = Release|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.Build.0 = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|ARM64.Deploy.0 = Debug|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.ActiveCfg = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.Build.0 = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x64.Deploy.0 = Debug|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.ActiveCfg = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.Build.0 = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Debug|x86.Deploy.0 = Debug|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.ActiveCfg = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.Build.0 = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|ARM64.Deploy.0 = Release|ARM64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.ActiveCfg = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.Build.0 = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x64.Deploy.0 = Release|x64
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.ActiveCfg = Release|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.Build.0 = Release|x86
{7485B18C-F5AB-4ABE-BA7F-05B6623C67C8}.Release|x86.Deploy.0 = Release|x86
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|ARM64.Build.0 = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|x64.ActiveCfg = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|x64.Build.0 = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|x86.ActiveCfg = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Debug|x86.Build.0 = Debug|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|ARM64.ActiveCfg = Release|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|ARM64.Build.0 = Release|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|x64.ActiveCfg = Release|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|x64.Build.0 = Release|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|x86.ActiveCfg = Release|Any CPU
{4000A374-59FE-4400-ACF6-D40473BECD73}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E6B1632A-8901-41E8-9DDF-6793C7698B0B} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{395F19BA-1E42-495C-9DB5-1A6F537FCCB8} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{CF3312E5-5DA0-4867-9945-49EA7598AF1F} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{D9EF0F59-F5F2-4D6C-A5BA-84043D8F3E08} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{D62F1C03-DA57-4709-A640-0283296A8E66} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{0C307D7E-256F-448C-8265-5622A812FBCC} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{D4919A19-E70F-4916-83D2-5D5F87BEB949} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{53723AE8-7E7E-4D54-ADAB-0A6033255CC8} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{039AFFA8-C1CC-4E3B-8A31-6814D7557F74} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{A4DBA01A-F315-49E0-8428-BB99D32B20F9} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
{4000A374-59FE-4400-ACF6-D40473BECD73} = {17FF5FAE-F1AC-4572-BAA3-8B86F01EA758}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {721F946E-F69F-4987-823A-D084B436FC1E}
EndGlobalSection
EndGlobal