Compare commits
345 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d623129d56 | ||
|
|
9cc4c33bb1 | ||
|
|
c087b40d4a | ||
|
|
a82e074bd4 | ||
|
|
3365c099bb | ||
|
|
d8705de26f | ||
|
|
3af181e736 | ||
|
|
ba6c01b7c6 | ||
|
|
7a7cdcb041 | ||
|
|
09e52bf199 | ||
|
|
a8c39a1587 | ||
|
|
68536d6c34 | ||
|
|
f57c27e755 | ||
|
|
9a97a27c8a | ||
|
|
07bb90dda9 | ||
|
|
3bb156f4da | ||
|
|
e13e0efcc6 | ||
|
|
3ae0a94159 | ||
|
|
eec67ec7dc | ||
|
|
cf51853eec | ||
|
|
67838b28a4 | ||
|
|
bf68e3b7d5 | ||
|
|
91ed0bb8bd | ||
|
|
55fe791c2a | ||
|
|
747efac2ec | ||
|
|
a87df2e9f6 | ||
|
|
2e4a664744 | ||
|
|
579a22ea45 | ||
|
|
abff850427 | ||
|
|
f1154058ba | ||
|
|
cf9f308b7f | ||
|
|
1791df236c | ||
|
|
7211f94f08 | ||
|
|
7b0343c87f | ||
|
|
b80f0276b4 | ||
|
|
8f66fcbb00 | ||
|
|
fe449ee1f3 | ||
|
|
34d6d95186 | ||
|
|
05ddc0660a | ||
|
|
c6047a8428 | ||
|
|
bc4838578e | ||
|
|
548996405a | ||
|
|
a9a5f0bd14 | ||
|
|
ec05ff6123 | ||
|
|
10c7ab421b | ||
|
|
a8a5cc53ea | ||
|
|
8fe48ca438 | ||
|
|
cbd5a515a9 | ||
|
|
5912adff93 | ||
|
|
983bc21448 | ||
|
|
6d08368462 | ||
|
|
cde7bb3524 | ||
|
|
133dc91561 | ||
|
|
f408f59beb | ||
|
|
8763bf11ab | ||
|
|
99592a52be | ||
|
|
25a8a52573 | ||
|
|
5901344459 | ||
|
|
b07ae4bc42 | ||
|
|
0d9e61480a | ||
|
|
baaea96b1d | ||
|
|
e156cb5c2e | ||
|
|
ff77b2b3dc | ||
|
|
4dc225184d | ||
|
|
49a0266224 | ||
|
|
7a62d96b91 | ||
|
|
641454fa14 | ||
|
|
cf2f0ec936 | ||
|
|
76375c9471 | ||
|
|
0894c56c19 | ||
|
|
7de89ffe57 | ||
|
|
e0c01343a8 | ||
|
|
48ed4f971c | ||
|
|
9e8c8a019e | ||
|
|
96f4ca2cc9 | ||
|
|
fad59604f9 | ||
|
|
ac0e8da0ba | ||
|
|
fc5c3fd73e | ||
|
|
536fbb23a1 | ||
|
|
ac01006398 | ||
|
|
ade8654cc4 | ||
|
|
8e03f26fb5 | ||
|
|
dab51bef7b | ||
|
|
bea7fb5fe5 | ||
|
|
d6b3240506 | ||
|
|
19e53d8bc8 | ||
|
|
5923d72803 | ||
|
|
8cde976358 | ||
|
|
256a5b50ac | ||
|
|
8b236f68f4 | ||
|
|
c18f6d3978 | ||
|
|
e65733754c | ||
|
|
4505630896 | ||
|
|
044804143f | ||
|
|
1e9d7c9b93 | ||
|
|
573fe3cad3 | ||
|
|
cd3880c85c | ||
|
|
02cd8ed7ae | ||
|
|
3d69f96b96 | ||
|
|
963a15abe7 | ||
|
|
40542f0461 | ||
|
|
bfc2af71a4 | ||
|
|
35142bb61d | ||
|
|
39626e0df9 | ||
|
|
ca40730600 | ||
|
|
4158e196d6 | ||
|
|
1516e800dd | ||
|
|
0b96f69a1d | ||
|
|
bb418e51d4 | ||
|
|
5fb23ab8bf | ||
|
|
117b01c48b | ||
|
|
18719815a3 | ||
|
|
f795595107 | ||
|
|
be3f9465eb | ||
|
|
c598daab9b | ||
|
|
438b25672f | ||
|
|
1e12ddd8e2 | ||
|
|
dccf55d57a | ||
|
|
3397845ccc | ||
|
|
82ae13ba3e | ||
|
|
8c830761f3 | ||
|
|
ad5c134887 | ||
|
|
150bf124a9 | ||
|
|
1c96c0ccbf | ||
|
|
cf8ad3d697 | ||
|
|
5b723ec954 | ||
|
|
633c708c33 | ||
|
|
e4784108f7 | ||
|
|
b4103a4edb | ||
|
|
cfdd32708a | ||
|
|
8e97c1e9e8 | ||
|
|
e009bebfaf | ||
|
|
d3d190989d | ||
|
|
1b36b52019 | ||
|
|
e526e96e2d | ||
|
|
1659d74938 | ||
|
|
f7161dc39b | ||
|
|
d8ea41e4dd | ||
|
|
fe0a03db2f | ||
|
|
49afed7751 | ||
|
|
a788b1706b | ||
|
|
d57fd20ca2 | ||
|
|
5ecc1b09c8 | ||
|
|
f1dfc9666b | ||
|
|
b503584431 | ||
|
|
0dfe1c8e3a | ||
|
|
c5630d90ec | ||
|
|
f8973a3cf7 | ||
|
|
228be8376f | ||
|
|
3fee3b0224 | ||
|
|
b4e705b347 | ||
|
|
51e59bebfc | ||
|
|
a56ac31f4b | ||
|
|
af05f081d2 | ||
|
|
b97d79d261 | ||
|
|
d227e6339f | ||
|
|
74c503fea0 | ||
|
|
ed8b0c4d3c | ||
|
|
cbb17e92f0 | ||
|
|
f9d64cf777 | ||
|
|
7fdd6d19cf | ||
|
|
60ca252b63 | ||
|
|
2027837c18 | ||
|
|
67904568b1 | ||
|
|
afbc559a47 | ||
|
|
67c312642c | ||
|
|
89eb007e43 | ||
|
|
88c3f3204b | ||
|
|
052ab98cd3 | ||
|
|
cd01c0e31b | ||
|
|
c3d3228f65 | ||
|
|
f04647192f | ||
|
|
c00f0c9f52 | ||
|
|
690e04c377 | ||
|
|
545880dcce | ||
|
|
fedf5d2203 | ||
|
|
5242e55826 | ||
|
|
1bf86e73a7 | ||
|
|
c3fe72f561 | ||
|
|
b54555a4f7 | ||
|
|
4c080360a7 | ||
|
|
fdea15eef4 | ||
|
|
5a4dd97abe | ||
|
|
e47e3d936b | ||
|
|
0e9fd4373e | ||
|
|
69a10c754a | ||
|
|
a8ba965c0d | ||
|
|
847aed3519 | ||
|
|
fed9345bea | ||
|
|
d71b6d0ab0 | ||
|
|
40e5521fbf | ||
|
|
c7781d2e75 | ||
|
|
0ccf67000c | ||
|
|
f4e81aca9d | ||
|
|
2d654cf759 | ||
|
|
0b728162ae | ||
|
|
f52b426652 | ||
|
|
ad0528d763 | ||
|
|
263adcf2b5 | ||
|
|
b201e274f1 | ||
|
|
c1a6a73b7d | ||
|
|
ed4764cc70 | ||
|
|
8d84b3adbc | ||
|
|
35db674c88 | ||
|
|
3e1850a713 | ||
|
|
8c625c0ecd | ||
|
|
bf1de8e7a4 | ||
|
|
8c2dca3770 | ||
|
|
23adbddfb7 | ||
|
|
b1b6b64e68 | ||
|
|
0c7909df09 | ||
|
|
641bfd8c06 | ||
|
|
52140c3208 | ||
|
|
1baa9173cb | ||
|
|
26749c2116 | ||
|
|
a1ecb9ad39 | ||
|
|
b398fde24e | ||
|
|
a5767b60fb | ||
|
|
ef196c384c | ||
|
|
920def7446 | ||
|
|
bec98dcaa2 | ||
|
|
747be07322 | ||
|
|
c1fc6f0bce | ||
|
|
851c42e630 | ||
|
|
4e5a4a9c17 | ||
|
|
df19d500de | ||
|
|
4fd4c9802e | ||
|
|
23d0eeab16 | ||
|
|
b66557f3be | ||
|
|
580586cab3 | ||
|
|
9a97ef1dad | ||
|
|
b4f7503d85 | ||
|
|
b89406a89a | ||
|
|
932cdae22e | ||
|
|
34ef86cfff | ||
|
|
023bace2a9 | ||
|
|
467b63cffb | ||
|
|
49ffb0fa68 | ||
|
|
04984dea98 | ||
|
|
78e9a768b4 | ||
|
|
401f877388 | ||
|
|
b3ba1aa3b9 | ||
|
|
ae76aebe24 | ||
|
|
b5e1bf2867 | ||
|
|
fb3a0da54f | ||
|
|
7d197f405d | ||
|
|
bc7af3a68b | ||
|
|
120e79229a | ||
|
|
f0e4bbcda9 | ||
|
|
57e31c1dfb | ||
|
|
8f2f414f5e | ||
|
|
879f91693e | ||
|
|
0c504b52e4 | ||
|
|
bbaa5f9fa8 | ||
|
|
2a9f7fde28 | ||
|
|
0ec7c87851 | ||
|
|
cf515abc4c | ||
|
|
99cab08ab7 | ||
|
|
e60d40ee9c | ||
|
|
c90fa68f16 | ||
|
|
61ae86e927 | ||
|
|
86c995906c | ||
|
|
a77b88aaf6 | ||
|
|
0d288f3206 | ||
|
|
d9d6244931 | ||
|
|
4d984f0524 | ||
|
|
b456b0143b | ||
|
|
3ebcfd5598 | ||
|
|
745ea3509e | ||
|
|
8f5d4e5bc2 | ||
|
|
acd7d3bbac | ||
|
|
f3bd6598e7 | ||
|
|
ce48fdc445 | ||
|
|
5aea223c14 | ||
|
|
1f59d3179c | ||
|
|
1f6e1db695 | ||
|
|
5b46c372ab | ||
|
|
f143d3e1c2 | ||
|
|
c7639309ef | ||
|
|
b788531e47 | ||
|
|
00fa2ca804 | ||
|
|
74cdf09ebc | ||
|
|
80ec12740a | ||
|
|
a0002ff97b | ||
|
|
2cb0db02e3 | ||
|
|
bed8d71f7e | ||
|
|
668b385a10 | ||
|
|
d96df469a4 | ||
|
|
8edbe1aa2c | ||
|
|
99ece9a61a | ||
|
|
4b5253dd6b | ||
|
|
5e10294a16 | ||
|
|
226d2069d9 | ||
|
|
8d1365b712 | ||
|
|
45624d905e | ||
|
|
a5d9c931ca | ||
|
|
f0db2b2f6e | ||
|
|
cde5913ace | ||
|
|
ceea9fc501 | ||
|
|
eb678b4533 | ||
|
|
dcbe8bb3dc | ||
|
|
555310a4ca | ||
|
|
3a57358f58 | ||
|
|
9982ba2fec | ||
|
|
11b652f851 | ||
|
|
380950a615 | ||
|
|
e8b07738a5 | ||
|
|
9d1163e73e | ||
|
|
e2f0c73bab | ||
|
|
183873afff | ||
|
|
b356475741 | ||
|
|
279bae115a | ||
|
|
82bb5a96ad | ||
|
|
a4e9ffcc99 | ||
|
|
1c25427c5c | ||
|
|
2ec22eb6cd | ||
|
|
2ff508607d | ||
|
|
69a34c65f7 | ||
|
|
f34c1520a4 | ||
|
|
f3fa8eec50 | ||
|
|
9baa9b1dd6 | ||
|
|
c1c1af1ded | ||
|
|
4a8c1b7de4 | ||
|
|
1f35165919 | ||
|
|
2e85508426 | ||
|
|
631b218057 | ||
|
|
e8cfc88d83 | ||
|
|
78502a0cd0 | ||
|
|
2bcb6a146b | ||
|
|
ae474b5e5b | ||
|
|
babed18af0 | ||
|
|
3fa7e3e36d | ||
|
|
45587d5f15 | ||
|
|
e98f6997ca | ||
|
|
21d1b71653 | ||
|
|
afd7b5650f | ||
|
|
a0687d555a | ||
|
|
f543953389 | ||
|
|
2c4c7586b7 | ||
|
|
e92921a6cc | ||
|
|
0322bcd047 | ||
|
|
26c914be96 | ||
|
|
75863faf58 | ||
|
|
99b3ec4ce3 | ||
|
|
d97ffd863b |
@@ -25,6 +25,7 @@ I'm a big fan of Windows Mail & Calendars due to its simplicity. Personally, I f
|
||||
- API integration for Outlook and Gmail
|
||||
- IMAP/SMTP support for custom mail servers
|
||||
- Send, receive, mark as (read,important,spam etc), move mails.
|
||||
- Linked/Merged Accounts
|
||||
- Toast notifications with background sync.
|
||||
- Instant startup performance
|
||||
- Offline use / search.
|
||||
@@ -43,7 +44,7 @@ Download latest version of Wino Mail from Microsoft Store for free.
|
||||
|
||||
## Beta Releases
|
||||
|
||||
Stable releases will always be distributed on Microsoft Store. However, beta releases will be distributed in [GitHub Releases](https://github.com/bkaankose/Wino-Mail/releases). Please keep in mind that beta releases might not be for daily use, only for testing purposes and recommended for experienced users or developers.
|
||||
Stable releases will always be distributed on Microsoft Store. However, beta releases will be distributed in [GitHub Releases](https://github.com/bkaankose/Wino-Mail/releases). Please keep in mind that beta releases might not be for daily use, only for testing purposes and recommended for experienced users or developers. Beta releases are also managed manually. Therefore, code in the repository might be ahead of the released Beta version at the moment. Make sure to compare versions before tryout out the Beta version.
|
||||
|
||||
These releases are distributed as side-loaded packages. To install them, download the **.msixbundle** file in GitHub releases and [follow the steps explained here.](https://learn.microsoft.com/en-us/windows/application-management/sideload-apps-in-windows)
|
||||
|
||||
@@ -52,10 +53,6 @@ These releases are distributed as side-loaded packages. To install them, downloa
|
||||
|
||||
Check out the [contribution guidelines](/CONTRIBUTING.md) before diving into the source code or opening an issue. There are multiple ways to contribute and all of them are explained in detail there.
|
||||
|
||||
#### Attention
|
||||
|
||||
Sources here **does not belong to the Store version of Wino Mail. It belongs to beta release as of April 17 2024.** I've been working on a big patch for couple months already and the code here includes those changes, but these changes are not yet released to Microsoft Store. Therefore, if you'd like to contribute, please validate the bug before in beta version and start working on it. I will delete this text from here once this big patch goes alive in the Store, so everything will be aligned then.
|
||||
|
||||
## Donate
|
||||
|
||||
Your donations will motivate me more to work on Wino in my spare time and cover the expenses to keep [project's website](https://www.winomail.app/) alive.
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using Microsoft.Toolkit.Uwp.Notifications;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Background;
|
||||
using Wino.Core.Domain;
|
||||
|
||||
namespace Wino.BackgroundTasks
|
||||
{
|
||||
@@ -23,8 +22,9 @@ namespace Wino.BackgroundTasks
|
||||
|
||||
var versionText = string.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);
|
||||
|
||||
builder.AddText(Translator.Notifications_WinoUpdatedTitle);
|
||||
builder.AddText(string.Format(Translator.Notifications_WinoUpdatedMessage, versionText));
|
||||
// TODO: Handle with Translator, but it's not initialized here yet.
|
||||
builder.AddText("Wino Mail is updated!");
|
||||
builder.AddText(string.Format("New version {0} is ready.", versionText));
|
||||
|
||||
builder.Show();
|
||||
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
using System;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Serilog;
|
||||
using Windows.ApplicationModel.Background;
|
||||
using Windows.Storage;
|
||||
using Wino.Core;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Services;
|
||||
using Wino.Core.UWP;
|
||||
using Wino.Services;
|
||||
|
||||
namespace Wino.BackgroundTasks
|
||||
{
|
||||
public sealed class SessionConnectedTask : IBackgroundTask
|
||||
{
|
||||
public async void Run(IBackgroundTaskInstance taskInstance)
|
||||
{
|
||||
var def = taskInstance.GetDeferral();
|
||||
|
||||
try
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
|
||||
services.RegisterCoreServices();
|
||||
services.RegisterCoreUWPServices();
|
||||
|
||||
var providere = services.BuildServiceProvider();
|
||||
|
||||
var backgroundTaskService = providere.GetService<IBackgroundSynchronizer>();
|
||||
var dbService = providere.GetService<IDatabaseService>();
|
||||
var logInitializer = providere.GetService<ILogInitializer>();
|
||||
|
||||
logInitializer.SetupLogger(ApplicationData.Current.LocalFolder.Path);
|
||||
|
||||
await dbService.InitializeAsync();
|
||||
await backgroundTaskService.RunBackgroundSynchronizationAsync(Core.Domain.Enums.BackgroundSynchronizationReason.SessionConnected);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Background synchronization failed from background task.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
def.Complete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,25 +18,6 @@
|
||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<AllowCrossPlatformRetargeting>false</AllowCrossPlatformRetargeting>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -123,7 +104,6 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="AppUpdatedTask.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SessionConnectedTask.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
||||
|
||||
@@ -8,7 +8,10 @@
|
||||
public const string WinoLocalDraftHeader = "X-Wino-Draft-Id";
|
||||
public const string LocalDraftStartPrefix = "localDraft_";
|
||||
|
||||
public const string ToastMailItemIdKey = nameof(ToastMailItemIdKey);
|
||||
public const string ToastMailUniqueIdKey = nameof(ToastMailUniqueIdKey);
|
||||
public const string ToastActionKey = nameof(ToastActionKey);
|
||||
|
||||
public const string ClientLogFile = "Client_.log";
|
||||
public const string ServerLogFile = "Server_.log";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,10 @@ namespace Wino.Core.Domain.Entities
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string HtmlBody { get; set; }
|
||||
|
||||
public Guid MailAccountId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@ namespace Wino.Core.Domain.Entities
|
||||
|
||||
public Guid AccountId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field is ignored. DisplayName is stored in MailAccount as SenderName from now.
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public string DisplayName { get; set; }
|
||||
public string Address { get; set; }
|
||||
public string IncomingServer { get; set; }
|
||||
@@ -39,11 +43,11 @@ namespace Wino.Core.Domain.Entities
|
||||
|
||||
public string ProxyServer { get; set; }
|
||||
public string ProxyServerPort { get; set; }
|
||||
|
||||
[Obsolete("As 1.7.0")]
|
||||
public bool IncomingRequiresSSL { get; set; }
|
||||
|
||||
[Obsolete("As 1.7.0")]
|
||||
public bool OutgoingRequresSSL { get; set; }
|
||||
/// <summary>
|
||||
/// Number of concurrent clients that can connect to the server.
|
||||
/// Default is 5.
|
||||
/// </summary>
|
||||
public int MaxConcurrentClients { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Wino.Core.Domain.Entities
|
||||
/// IMAP is populated by user on setup dialog.
|
||||
/// </summary>
|
||||
|
||||
public string ProfileName { get; set; }
|
||||
public string SenderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Account e-mail address.
|
||||
@@ -40,10 +40,19 @@ namespace Wino.Core.Domain.Entities
|
||||
public string SynchronizationDeltaIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the signature to be used for this account.
|
||||
/// Null if no signature should be used.
|
||||
/// TODO: Gets or sets the custom account identifier color in hex.
|
||||
/// </summary>
|
||||
public Guid? SignatureId { get; set; }
|
||||
public string AccountColorHex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Base64 encoded profile picture of the account.
|
||||
/// </summary>
|
||||
public string Base64ProfilePictureData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the listing order of the account in the accounts list.
|
||||
/// </summary>
|
||||
public int Order { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether the account has any reason for an interactive user action to fix continue operating.
|
||||
@@ -74,5 +83,15 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public MailAccountPreferences Preferences { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether the account can perform ProfileInformation sync type.
|
||||
/// </summary>
|
||||
public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Office365 || ProviderType == MailProviderType.Gmail;
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether the account can perform AliasInformation sync type.
|
||||
/// </summary>
|
||||
public bool IsAliasSyncSupported => ProviderType == MailProviderType.Gmail;
|
||||
}
|
||||
}
|
||||
|
||||
56
Wino.Core.Domain/Entities/MailAccountAlias.cs
Normal file
56
Wino.Core.Domain/Entities/MailAccountAlias.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
{
|
||||
public class RemoteAccountAlias
|
||||
{
|
||||
/// <summary>
|
||||
/// Display address of the alias.
|
||||
/// </summary>
|
||||
public string AliasAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Address to be included in Reply-To header when alias is used for sending messages.
|
||||
/// </summary>
|
||||
public string ReplyToAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this alias is the primary alias for the account.
|
||||
/// </summary>
|
||||
public bool IsPrimary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether the alias is verified by the server.
|
||||
/// Only Gmail aliases are verified for now.
|
||||
/// Non-verified alias messages might be rejected by SMTP server.
|
||||
/// </summary>
|
||||
public bool IsVerified { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this alias is the root alias for the account.
|
||||
/// Root alias means the first alias that was created for the account.
|
||||
/// It can't be deleted or changed.
|
||||
/// </summary>
|
||||
public bool IsRootAlias { get; set; }
|
||||
}
|
||||
|
||||
public class MailAccountAlias : RemoteAccountAlias
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Id for the alias.
|
||||
/// </summary>
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Account id that this alias is attached to.
|
||||
/// </summary>
|
||||
public Guid AccountId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Root aliases can't be deleted.
|
||||
/// </summary>
|
||||
public bool CanDelete => !IsRootAlias;
|
||||
}
|
||||
}
|
||||
@@ -25,15 +25,25 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
public bool IsNotificationsEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the custom account identifier color in hex.
|
||||
/// </summary>
|
||||
public string AccountColorHex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether the account has Focused inbox support.
|
||||
/// Null if the account provider type doesn't support Focused inbox.
|
||||
/// </summary>
|
||||
public bool? IsFocusedInboxEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether signature should be appended automatically.
|
||||
/// </summary>
|
||||
public bool IsSignatureEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets signature for new messages. Null if signature is not needed.
|
||||
/// </summary>
|
||||
public Guid? SignatureIdForNewMessages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets signature for following messages. Null if signature is not needed.
|
||||
/// </summary>
|
||||
public Guid? SignatureIdForFollowingMessages { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
@@ -107,6 +108,12 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
public string DraftId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this mail is only created locally.
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public bool IsLocalDraft => !string.IsNullOrEmpty(DraftId) && DraftId.StartsWith(Constants.LocalDraftStartPrefix);
|
||||
|
||||
/// <summary>
|
||||
/// Whether this copy is draft or not.
|
||||
/// </summary>
|
||||
@@ -134,7 +141,7 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public MailAccount AssignedAccount { get; set; }
|
||||
|
||||
public IEnumerable<Guid> GetContainingIds() => [UniqueId];
|
||||
public override string ToString() => $"{Subject} <-> {Id}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,9 @@ namespace Wino.Core.Domain.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
public static MailItemFolder CreateMoreFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.More, FolderName = Translator.MoreFolderNameOverride };
|
||||
public static MailItemFolder CreateCategoriesFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.Category, FolderName = Translator.CategoriesFolderNameOverride };
|
||||
|
||||
public override string ToString() => FolderName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@ namespace Wino.Core.Domain.Entities
|
||||
|
||||
public Guid AccountId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unique object storage for authenticators if needed.
|
||||
/// </summary>
|
||||
public string UniqueId { get; set; }
|
||||
public string Address { get; set; }
|
||||
|
||||
public void RefreshTokens(TokenInformationBase tokenInformationBase)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
ManuelSetupWaiting,
|
||||
TestingConnection,
|
||||
AutoDiscoverySetup,
|
||||
AutoDiscoveryInProgress
|
||||
AutoDiscoveryInProgress,
|
||||
FetchingProfileInformation
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
Czech,
|
||||
Chinese,
|
||||
Spanish,
|
||||
French
|
||||
French,
|
||||
Indonesian,
|
||||
Greek,
|
||||
PortugeseBrazil,
|
||||
Italian
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
All,
|
||||
Unread,
|
||||
Flagged,
|
||||
Mentions
|
||||
Mentions,
|
||||
Files
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,10 @@
|
||||
ChangeFlag,
|
||||
AlwaysMoveTo,
|
||||
MoveToFocused,
|
||||
RenameFolder
|
||||
Archive,
|
||||
RenameFolder,
|
||||
EmptyFolder,
|
||||
MarkFolderRead,
|
||||
}
|
||||
|
||||
// UI requests
|
||||
@@ -44,6 +47,7 @@
|
||||
DarkEditor,
|
||||
LightEditor,
|
||||
Print,
|
||||
DiscardLocalDraft,
|
||||
Navigate // For toast activation
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum ReaderFont
|
||||
{
|
||||
Arial,
|
||||
TimesNewRoman,
|
||||
Verdana,
|
||||
Tahoma,
|
||||
CourierNew,
|
||||
Georgia,
|
||||
TrebuchetMS,
|
||||
Calibri,
|
||||
Helvetica
|
||||
}
|
||||
}
|
||||
12
Wino.Core.Domain/Enums/ServerBackgroundMode.cs
Normal file
12
Wino.Core.Domain/Enums/ServerBackgroundMode.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// What should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
public enum ServerBackgroundMode
|
||||
{
|
||||
MinimizedTray, // Still runs, tray icon is visible.
|
||||
Invisible, // Still runs, tray icon is invisible.
|
||||
Terminate // Server is terminated as Wino terminates.
|
||||
}
|
||||
}
|
||||
11
Wino.Core.Domain/Enums/StartupBehaviorResult.cs
Normal file
11
Wino.Core.Domain/Enums/StartupBehaviorResult.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum StartupBehaviorResult
|
||||
{
|
||||
Enabled,
|
||||
Disabled,
|
||||
DisabledByUser,
|
||||
DisabledByPolicy,
|
||||
Fatal
|
||||
}
|
||||
}
|
||||
12
Wino.Core.Domain/Enums/SynchronizationSource.cs
Normal file
12
Wino.Core.Domain/Enums/SynchronizationSource.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration for the source of synchronization.
|
||||
/// Right now it can either be from the client or the server.
|
||||
/// </summary>
|
||||
public enum SynchronizationSource
|
||||
{
|
||||
Client,
|
||||
Server
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,10 @@
|
||||
{
|
||||
FoldersOnly, // Only synchronize folder metadata.
|
||||
ExecuteRequests, // Run the queued requests, and then synchronize if needed.
|
||||
Inbox, // Only Inbox
|
||||
Inbox, // Only Inbox, Sent and Draft folders.
|
||||
Custom, // Only sync folders that are specified in the options.
|
||||
Full, // Synchronize everything
|
||||
Full, // Synchronize all folders. This won't update profile or alias information.
|
||||
UpdateProfile, // Only update profile information
|
||||
Alias, // Only update alias information
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
PersonalizationPage,
|
||||
MessageListPage,
|
||||
MailListPage,
|
||||
ReadingPanePage,
|
||||
SettingOptionsPage
|
||||
ReadComposePanePage,
|
||||
LanguageTimePage,
|
||||
AppPreferencesPage,
|
||||
SettingOptionsPage,
|
||||
AliasManagementPage
|
||||
}
|
||||
}
|
||||
|
||||
11
Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs
Normal file
11
Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum WinoServerConnectionStatus
|
||||
{
|
||||
None,
|
||||
Connecting,
|
||||
Connected,
|
||||
Disconnected,
|
||||
Failed
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// An exception thrown when the background task execution policies are denied for some reason.
|
||||
/// </summary>
|
||||
public class BackgroundTaskExecutionRequestDeniedException : Exception { }
|
||||
}
|
||||
@@ -4,8 +4,11 @@ namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class ImapClientPoolException : Exception
|
||||
{
|
||||
public ImapClientPoolException(Exception innerException) : base(Translator.Exception_ImapClientPoolFailed, innerException)
|
||||
public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
|
||||
{
|
||||
ProtocolLog = protocolLog;
|
||||
}
|
||||
|
||||
public string ProtocolLog { get; }
|
||||
}
|
||||
}
|
||||
|
||||
21
Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
Normal file
21
Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Models.AutoDiscovery;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class ImapConnectionFailedPackage
|
||||
{
|
||||
public ImapConnectionFailedPackage(Exception error, string protocolLog, AutoDiscoverySettings settings)
|
||||
{
|
||||
Error = error;
|
||||
ProtocolLog = protocolLog;
|
||||
Settings = settings;
|
||||
}
|
||||
|
||||
public AutoDiscoverySettings Settings { get; }
|
||||
public Exception Error { get; }
|
||||
public string ProtocolLog { get; }
|
||||
|
||||
public string GetErrorMessage() => Error.InnerException == null ? Error.Message : Error.InnerException.Message;
|
||||
}
|
||||
}
|
||||
7
Wino.Core.Domain/Exceptions/MissingAliasException.cs
Normal file
7
Wino.Core.Domain/Exceptions/MissingAliasException.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class MissingAliasException : System.Exception
|
||||
{
|
||||
public MissingAliasException() : base(Translator.Exception_MissingAlias) { }
|
||||
}
|
||||
}
|
||||
12
Wino.Core.Domain/Exceptions/WinoServerException.cs
Normal file
12
Wino.Core.Domain/Exceptions/WinoServerException.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
|
||||
/// </summary>
|
||||
public class WinoServerException : Exception
|
||||
{
|
||||
public WinoServerException(string message) : base(message) { }
|
||||
}
|
||||
}
|
||||
20
Wino.Core.Domain/Extensions/MimeExtensions.cs
Normal file
20
Wino.Core.Domain/Extensions/MimeExtensions.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Extensions
|
||||
{
|
||||
public static class MimeExtensions
|
||||
{
|
||||
public static string GetBase64MimeMessage(this MimeKit.MimeMessage message)
|
||||
{
|
||||
using System.IO.MemoryStream memoryStream = new();
|
||||
message.WriteTo(MimeKit.FormatOptions.Default, memoryStream);
|
||||
byte[] buffer = memoryStream.GetBuffer();
|
||||
int count = (int)memoryStream.Length;
|
||||
|
||||
return Convert.ToBase64String(buffer);
|
||||
}
|
||||
|
||||
public static MimeKit.MimeMessage GetMimeMessageFromBase64(this string base64)
|
||||
=> MimeKit.MimeMessage.Load(new System.IO.MemoryStream(Convert.FromBase64String(base64)));
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,17 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IAccountMenuItem : IMenuItem
|
||||
{
|
||||
bool IsEnabled { get; set; }
|
||||
double SynchronizationProgress { get; set; }
|
||||
int UnreadItemCount { get; set; }
|
||||
IEnumerable<MailAccount> HoldingAccounts { get; }
|
||||
void UpdateAccount(MailAccount account);
|
||||
}
|
||||
|
||||
public interface IMergedAccountMenuItem : IAccountMenuItem
|
||||
{
|
||||
int MergedAccountCount { get; }
|
||||
|
||||
MergedInbox Parameter { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,5 +13,26 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Name representation of the view model that will be used to identify the startup entity on launch.
|
||||
/// </summary>
|
||||
string StartupEntityTitle { get; }
|
||||
|
||||
/// <summary>
|
||||
/// E-mail addresses that this account holds.
|
||||
/// </summary>
|
||||
|
||||
string StartupEntityAddresses { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Represents the account order in the accounts list.
|
||||
/// </summary>
|
||||
int Order { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Provider details of the account.
|
||||
/// </summary>
|
||||
IProviderDetail ProviderDetail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How many accounts this provider has.
|
||||
/// </summary>
|
||||
int HoldingAccountCount { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
@@ -68,12 +69,91 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <returns>Current account synchronization modifier.</returns>
|
||||
Task<string> UpdateSynchronizationIdentifierAsync(Guid accountId, string newIdentifier);
|
||||
|
||||
/// <summary>
|
||||
/// Renames the merged inbox with the given id.
|
||||
/// </summary>
|
||||
/// <param name="mergedInboxId">Merged Inbox id</param>
|
||||
/// <param name="newName">New name for the merged/linked inbox.</param>
|
||||
Task RenameMergedAccountAsync(Guid mergedInboxId, string newName);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new merged inbox with the given accounts.
|
||||
/// </summary>
|
||||
/// <param name="mergedInbox">Merged inbox properties.</param>
|
||||
/// <param name="accountsToMerge">List of accounts to merge together.</param>
|
||||
Task CreateMergeAccountsAsync(MergedInbox mergedInbox, IEnumerable<MailAccount> accountsToMerge);
|
||||
|
||||
/// <summary>
|
||||
/// Updates the merged inbox with the given id with the new linked accounts.
|
||||
/// </summary>
|
||||
/// <param name="mergedInboxId">Updating merged inbox id.</param>
|
||||
/// <param name="linkedAccountIds">List of linked account ids.</param>
|
||||
Task UpdateMergedInboxAsync(Guid mergedInboxId, IEnumerable<Guid> linkedAccountIds);
|
||||
|
||||
/// <summary>
|
||||
/// Destroys the merged inbox with the given id.
|
||||
/// </summary>
|
||||
/// <param name="mergedInboxId">Merged inbox id to destroy.</param>
|
||||
Task UnlinkMergedInboxAsync(Guid mergedInboxId);
|
||||
|
||||
/// <summary>
|
||||
/// Updates the account listing orders.
|
||||
/// </summary>
|
||||
/// <param name="accountIdOrderPair">AccountId-OrderNumber pair for all accounts.</param>
|
||||
Task UpdateAccountOrdersAsync(Dictionary<Guid, int> accountIdOrderPair);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the account aliases.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id.</param>
|
||||
/// <returns>A list of MailAccountAlias that has e-mail aliases.</returns>
|
||||
Task<List<MailAccountAlias>> GetAccountAliasesAsync(Guid accountId);
|
||||
|
||||
/// <summary>
|
||||
/// Updated account's aliases.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id to update aliases for.</param>
|
||||
/// <param name="aliases">Full list of updated aliases.</param>
|
||||
/// <returns></returns>
|
||||
Task UpdateAccountAliasesAsync(Guid accountId, List<MailAccountAlias> aliases);
|
||||
|
||||
/// <summary>
|
||||
/// Delete account alias.
|
||||
/// </summary>
|
||||
/// <param name="aliasId">Alias to remove.</param>
|
||||
Task DeleteAccountAliasAsync(Guid aliasId);
|
||||
|
||||
/// <summary>
|
||||
/// Updated profile information of the account.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id to update info for.</param>
|
||||
/// <param name="profileInformation">Info data.</param>
|
||||
/// <returns></returns>
|
||||
Task UpdateProfileInformationAsync(Guid accountId, ProfileInformation profileInformation);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Creates a root + primary alias for the account.
|
||||
/// This is only called when the account is created.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id.</param>
|
||||
/// <param name="address">Address to create root primary alias from.</param>
|
||||
Task CreateRootAliasAsync(Guid accountId, string address);
|
||||
|
||||
/// <summary>
|
||||
/// Will compare local-remote aliases and update the local ones or add/delete new ones.
|
||||
/// </summary>
|
||||
/// <param name="remoteAccountAliases">Remotely fetched basic alias info from synchronizer.</param>
|
||||
/// <param name="account">Account to update remote aliases for..</param>
|
||||
Task UpdateRemoteAliasInformationAsync(MailAccount account, List<RemoteAccountAlias> remoteAccountAliases);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the primary account alias for the given account id.
|
||||
/// Used when creating draft messages.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id.</param>
|
||||
/// <returns>Primary alias for the account.</returns>
|
||||
Task<MailAccountAlias> GetPrimaryAccountAliasAsync(Guid accountId);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IAppInitializerService
|
||||
{
|
||||
string GetApplicationDataFolder();
|
||||
|
||||
Task MigrateAsync();
|
||||
}
|
||||
}
|
||||
21
Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs
Normal file
21
Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Singleton object that holds the application data folder path and the publisher shared folder path.
|
||||
/// Load the values before calling any service.
|
||||
/// App data folder is used for storing files.
|
||||
/// Pubhlisher cache folder is only used for database file so other apps can access it in the same package by same publisher.
|
||||
/// </summary>
|
||||
public interface IApplicationConfiguration
|
||||
{
|
||||
/// <summary>
|
||||
/// Application data folder.
|
||||
/// </summary>
|
||||
string ApplicationDataFolderPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Publisher shared folder path.
|
||||
/// </summary>
|
||||
string PublisherSharedFolderPath { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
@@ -23,28 +22,12 @@ namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
/// <summary>
|
||||
/// Initial creation of token. Requires user interaction.
|
||||
/// This will save token into database, but still returns for account creation
|
||||
/// This will cache the token but still returns for account creation
|
||||
/// since account address is required.
|
||||
/// </summary>
|
||||
/// <param name="expectedAccountAddress">Token cache might ask for regeneration of token for specific
|
||||
/// account address. If one is provided and re-generation native token doesn't belong to this address
|
||||
/// token saving to database won't happen.</param>
|
||||
/// <returns>Freshly created TokenInformation..</returns>
|
||||
Task<TokenInformation> GenerateTokenAsync(MailAccount account, bool saveToken);
|
||||
|
||||
/// <summary>
|
||||
/// Required for external authorization on launched browser to continue.
|
||||
/// Used for Gmail.
|
||||
/// </summary>
|
||||
/// <param name="authorizationResponseUri">Response's redirect uri.</param>
|
||||
void ContinueAuthorization(Uri authorizationResponseUri);
|
||||
|
||||
/// <summary>
|
||||
/// For external browser required authentications.
|
||||
/// Canceling Gmail authentication dialog etc.
|
||||
/// </summary>
|
||||
void CancelAuthorization();
|
||||
|
||||
/// <summary>
|
||||
/// ClientId in case of needed for authorization/authentication.
|
||||
/// </summary>
|
||||
|
||||
6
Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs
Normal file
6
Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IOutlookAuthenticator : IAuthenticator { }
|
||||
public interface IGmailAuthenticator : IAuthenticator { }
|
||||
public interface IImapAuthenticator : IAuthenticator { }
|
||||
}
|
||||
@@ -1,16 +1,7 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IBackgroundTaskService
|
||||
{
|
||||
/// <summary>
|
||||
/// Manages background task registrations, requests access if needed, checks the statusses of them etc.
|
||||
/// </summary>
|
||||
/// <exception cref="BackgroundTaskExecutionRequestDeniedException">If the access request is denied for some reason.</exception>
|
||||
/// <exception cref="BackgroundTaskRegistrationFailedException">If one of the requires background tasks are failed during registration.</exception>
|
||||
Task HandleBackgroundTaskRegistrations();
|
||||
|
||||
/// <summary>
|
||||
/// Unregisters all existing background tasks. Useful for migrations.
|
||||
/// </summary>
|
||||
|
||||
62
Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs
Normal file
62
Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MailKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Synchronization;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IBaseSynchronizer
|
||||
{
|
||||
/// <summary>
|
||||
/// Account that is assigned for this synchronizer.
|
||||
/// </summary>
|
||||
MailAccount Account { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Synchronizer state.
|
||||
/// </summary>
|
||||
AccountSynchronizerState State { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Queues a single request to be executed in the next synchronization.
|
||||
/// </summary>
|
||||
/// <param name="request">Request to queue.</param>
|
||||
void QueueRequest(IRequestBase request);
|
||||
|
||||
/// <summary>
|
||||
/// TODO
|
||||
/// </summary>
|
||||
/// <returns>Whether active synchronization is stopped or not.</returns>
|
||||
bool CancelActiveSynchronization();
|
||||
|
||||
/// <summary>
|
||||
/// Performs a full synchronization with the server with given options.
|
||||
/// This will also prepares batch requests for execution.
|
||||
/// Requests are executed in the order they are queued and happens before the synchronization.
|
||||
/// Result of the execution queue is processed during the synchronization.
|
||||
/// </summary>
|
||||
/// <param name="options">Options for synchronization.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Result summary of synchronization.</returns>
|
||||
Task<SynchronizationResult> SynchronizeAsync(SynchronizationOptions options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Synchronizes profile information with the server.
|
||||
/// Sender name and Profile picture are updated.
|
||||
/// </summary>
|
||||
/// <returns>Profile information model that holds the values.</returns>
|
||||
Task<ProfileInformation> GetProfileInformationAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Downloads a single MIME message from the server and saves it to disk.
|
||||
/// </summary>
|
||||
/// <param name="mailItem">Mail item to download from server.</param>
|
||||
/// <param name="transferProgress">Optional progress reporting for download operation.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
Task DownloadMissingMimeMessageAsync(IMailItem mailItem, ITransferProgress transferProgress, CancellationToken cancellationToken = default);
|
||||
}
|
||||
}
|
||||
8
Wino.Core.Domain/Interfaces/IClientMessage.cs
Normal file
8
Wino.Core.Domain/Interfaces/IClientMessage.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// All messages that Client sends to Server and awaits a response in return.
|
||||
/// For example; triggering a new synchronization request.
|
||||
/// </summary>
|
||||
public interface IClientMessage;
|
||||
}
|
||||
9
Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs
Normal file
9
Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ICreateAccountAliasDialog
|
||||
{
|
||||
public MailAccountAlias CreatedAccountAlias { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -15,5 +15,11 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Displays preparing folders page.
|
||||
/// </summary>
|
||||
void ShowPreparingFolders();
|
||||
|
||||
/// <summary>
|
||||
/// Updates account properties for the welcome imap setup dialog and starts the setup.
|
||||
/// </summary>
|
||||
/// <param name="account">Account properties.</param>
|
||||
void StartImapConnectionSetup(MailAccount account);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
@@ -25,12 +27,19 @@ namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
// Custom dialogs
|
||||
Task<IMailItemFolder> ShowMoveMailFolderDialogAsync(List<IMailItemFolder> availableFolders);
|
||||
Task<Tuple<string, MailProviderType>> ShowNewAccountMailProviderDialogAsync(List<IProviderDetail> availableProviders);
|
||||
Task<AccountCreationDialogResult> ShowNewAccountMailProviderDialogAsync(List<IProviderDetail> availableProviders);
|
||||
IAccountCreationDialog GetAccountCreationDialog(MailProviderType type);
|
||||
Task<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription);
|
||||
Task<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
|
||||
Task<MailAccount> ShowEditAccountDialogAsync(MailAccount account);
|
||||
Task<MailAccount> ShowAccountPickerDialogAsync(List<MailAccount> availableAccounts);
|
||||
|
||||
/// <summary>
|
||||
/// Displays a dialog to the user for reordering accounts.
|
||||
/// </summary>
|
||||
/// <param name="availableAccounts">Available accounts in order.</param>
|
||||
/// <returns>Result model that has dict of AccountId-AccountOrder.</returns>
|
||||
Task ShowAccountReorderDialogAsync(ObservableCollection<IAccountProviderDetailViewModel> availableAccounts);
|
||||
|
||||
/// <summary>
|
||||
/// Presents a dialog to the user for selecting folder.
|
||||
/// </summary>
|
||||
@@ -38,5 +47,12 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <param name="reason">The reason behind the picking operation
|
||||
/// <returns>Selected folder structure. Null if none.</returns>
|
||||
Task<IMailItemFolder> PickFolderAsync(Guid accountId, PickFolderReason reason, IFolderService folderService);
|
||||
|
||||
/// <summary>
|
||||
/// Presents a dialog to the user for signature creation/modification.
|
||||
/// </summary>
|
||||
/// <returns>Signature information. Null if canceled.</returns>
|
||||
Task<AccountSignature> ShowSignatureEditorDialog(AccountSignature signatureModel = null);
|
||||
Task<ICreateAccountAliasDialog> ShowCreateAccountAliasDialogAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
public interface IFolderMenuItem : IBaseFolderMenuItem
|
||||
{
|
||||
MailAccount ParentAccount { get; }
|
||||
void UpdateParentAccounnt(MailAccount account);
|
||||
}
|
||||
|
||||
public interface IMergedAccountFolderMenuItem : IBaseFolderMenuItem { }
|
||||
@@ -19,6 +20,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
int UnreadItemCount { get; set; }
|
||||
SpecialFolderType SpecialFolderType { get; }
|
||||
IEnumerable<IMailItemFolder> HandlingFolders { get; }
|
||||
IEnumerable<IMenuItem> SubMenuItems { get; }
|
||||
bool IsMoveTarget { get; }
|
||||
bool IsSticky { get; }
|
||||
bool IsSystemFolder { get; }
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Synchronization;
|
||||
@@ -15,13 +16,10 @@ namespace Wino.Core.Domain.Interfaces
|
||||
Task<MailItemFolder> GetFolderAsync(Guid folderId);
|
||||
Task<MailItemFolder> GetFolderAsync(Guid accountId, string remoteFolderId);
|
||||
Task<List<MailItemFolder>> GetFoldersAsync(Guid accountId);
|
||||
Task<List<MailItemFolder>> GetUnreadUpdateFoldersAsync(Guid accountId);
|
||||
Task SetSpecialFolderAsync(Guid folderId, SpecialFolderType type);
|
||||
Task<MailItemFolder> GetSpecialFolderByAccountIdAsync(Guid accountId, SpecialFolderType type);
|
||||
Task<int> GetCurrentItemCountForFolder(Guid folderId);
|
||||
Task<int> GetFolderNotificationBadgeAsync(Guid folderId);
|
||||
Task ChangeStickyStatusAsync(Guid folderId, bool isSticky);
|
||||
Task UpdateCustomServerMailListAsync(Guid accountId, List<MailItemFolder> folders);
|
||||
|
||||
Task<MailAccount> UpdateSystemFolderConfigurationAsync(Guid accountId, SystemFolderConfiguration configuration);
|
||||
Task ChangeFolderSynchronizationStateAsync(Guid folderId, bool isSynchronizationEnabled);
|
||||
@@ -39,25 +37,6 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
Task<List<MailFolderPairMetadata>> GetMailFolderPairMetadatasAsync(string mailCopyId);
|
||||
|
||||
// v2
|
||||
|
||||
/// <summary>
|
||||
/// Performs bulk update for the given folders.
|
||||
/// Used in Gmail.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account that folders belong to.</param>
|
||||
/// <param name="allFolders">Folders to update.</param>
|
||||
Task BulkUpdateFolderStructureAsync(Guid accountId, List<MailItemFolder> allFolders);
|
||||
|
||||
/// <summary>
|
||||
/// Updates Folder's delta synchronization identifier.
|
||||
/// Only used in Outlook since it does per-folder sync.
|
||||
/// </summary>
|
||||
/// <param name="folderId">Folder id</param>
|
||||
/// <param name="synchronizationIdentifier">New synchronization identifier.</param>
|
||||
/// <returns>New identifier if success.</returns>
|
||||
Task<string> UpdateFolderDeltaSynchronizationIdentifierAsync(Guid folderId, string synchronizationIdentifier);
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the folder for the given account by remote folder id.
|
||||
/// </summary>
|
||||
@@ -87,6 +66,29 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <returns>True if Inbox exists, False if not.</returns>
|
||||
Task<bool> IsInboxAvailableForAccountAsync(Guid accountId);
|
||||
|
||||
Task TestAsync();
|
||||
/// <summary>
|
||||
/// Updates folder's LastSynchronizedDate to now.
|
||||
/// </summary>
|
||||
/// <param name="folderId">Folder to update.</param>
|
||||
Task UpdateFolderLastSyncDateAsync(Guid folderId);
|
||||
|
||||
/// <summary>
|
||||
/// Updates the given folder.
|
||||
/// </summary>
|
||||
/// <param name="folder">Folder to update.</param>
|
||||
Task UpdateFolderAsync(MailItemFolder folder);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the active folder menu items for the given account for UI.
|
||||
/// </summary>
|
||||
/// <param name="accountMenuItem">Account to get folder menu items for.</param>
|
||||
Task<IEnumerable<IMenuItem>> GetAccountFoldersForDisplayAsync(IAccountMenuItem accountMenuItem);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of unread item counts for the given account ids.
|
||||
/// Every folder that is marked as show unread badge is included.
|
||||
/// </summary>
|
||||
/// <param name="accountIds">Account ids to get unread folder counts for.</param>
|
||||
Task<List<UnreadItemCountResult>> GetUnreadItemCountResultsAsync(IEnumerable<Guid> accountIds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Reader;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Service to access available fonts.
|
||||
/// </summary>
|
||||
public interface IFontService
|
||||
{
|
||||
List<ReaderFontModel> GetReaderFonts();
|
||||
ReaderFontModel GetCurrentReaderFont();
|
||||
int GetCurrentReaderFontSize();
|
||||
|
||||
void ChangeReaderFont(ReaderFont font);
|
||||
void ChangeReaderFontSize(int size);
|
||||
/// <summary>
|
||||
/// Get available fonts. Default + installed system fonts.
|
||||
/// Fonts initialized only once. To refresh fonts, restart the application.
|
||||
/// </summary>
|
||||
List<string> GetFonts();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
using System.Collections.Specialized;
|
||||
using Wino.Core.Domain.Models.Launch;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
namespace Wino.Core.Domain.Interfaces;
|
||||
|
||||
public interface ILaunchProtocolService
|
||||
{
|
||||
public interface ILaunchProtocolService
|
||||
{
|
||||
object LaunchParameter { get; set; }
|
||||
NameValueCollection MailtoParameters { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Used to handle toasts.
|
||||
/// </summary>
|
||||
object LaunchParameter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Used to handle mailto links.
|
||||
/// </summary>
|
||||
MailToUri MailToUri { get; set; }
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{
|
||||
public interface ILogInitializer
|
||||
{
|
||||
void SetupLogger(string logFolderPath);
|
||||
void SetupLogger(string fullLogFilePath);
|
||||
|
||||
void RefreshLoggingLevel();
|
||||
}
|
||||
|
||||
@@ -11,13 +11,8 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
Task<MailCopy> GetSingleMailItemAsync(string mailCopyId, string remoteFolderId);
|
||||
Task<MailCopy> GetSingleMailItemAsync(Guid uniqueMailId);
|
||||
Task<MailCopy> CreateDraftAsync(MailAccount composerAccount, MimeMessage generatedReplyMime, MimeMessage replyingMimeMessage = null, IMailItem replyingMailItem = null);
|
||||
Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options);
|
||||
|
||||
Task<List<string>> GetMailIdsByFolderIdAsync(Guid folderId);
|
||||
|
||||
// v2
|
||||
|
||||
/// <summary>
|
||||
/// Deletes all mail copies for all folders.
|
||||
/// </summary>
|
||||
@@ -48,15 +43,12 @@ namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
/// <summary>
|
||||
/// Maps new mail item with the existing local draft copy.
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="newMailCopyId"></param>
|
||||
/// <param name="newDraftId"></param>
|
||||
/// <param name="newThreadId"></param>
|
||||
/// <returns></returns>
|
||||
Task MapLocalDraftAsync(string newMailCopyId, string newDraftId, string newThreadId);
|
||||
|
||||
Task<MimeMessage> CreateDraftMimeMessageAsync(Guid accountId, DraftCreationOptions options);
|
||||
Task UpdateMailAsync(MailCopy mailCopy);
|
||||
|
||||
/// <summary>
|
||||
@@ -77,5 +69,43 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <param name="uniqueMailId">Unique id of the mail item.</param>
|
||||
/// <returns>Account that mail belongs to.</returns>
|
||||
Task<MailAccount> GetMailAccountByUniqueIdAsync(Guid uniqueMailId);
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the given mail copy id exists in the database.
|
||||
/// Safely used for Outlook to prevent downloading the same mail twice.
|
||||
/// For Gmail, it should be avoided since one mail may belong to multiple folders.
|
||||
/// </summary>
|
||||
/// <param name="mailCopyId">Native mail id of the message.</param>
|
||||
Task<bool> IsMailExistsAsync(string mailCopyId);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all mails for given folder id.
|
||||
/// </summary>
|
||||
/// <param name="folderId">Folder id to get mails for</param>
|
||||
Task<List<MailCopy>> GetMailsByFolderIdAsync(Guid folderId);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all unread mails for given folder id.
|
||||
/// </summary>
|
||||
/// <param name="folderId">Folder id to get unread mails for.</param>
|
||||
Task<List<MailCopy>> GetUnreadMailsByFolderIdAsync(Guid folderId);
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the mail exists in the folder.
|
||||
/// When deciding Create or Update existing mail, we need to check if the mail exists in the folder.
|
||||
/// </summary>
|
||||
/// <param name="mailCopyId">MailCopy id</param>
|
||||
/// <param name="folderId">Folder's local id.</param>
|
||||
/// <returns>Whether mail exists in the folder or not.</returns>
|
||||
Task<bool> IsMailExistsAsync(string mailCopyId, Guid folderId);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a draft MailCopy and MimeMessage based on the given options.
|
||||
/// For forward/reply it would include the referenced message.
|
||||
/// </summary>
|
||||
/// <param name="accountId">AccountId which should have new draft.</param>
|
||||
/// <param name="draftCreationOptions">Options like new email/forward/draft.</param>
|
||||
/// <returns>Draft MailCopy and Draft MimeMessage as base64.</returns>
|
||||
Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,23 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
string GetWebAuthenticationBrokerUri();
|
||||
Task<string> GetMimeMessageStoragePath();
|
||||
Task<string> GetQuillEditorBundlePathAsync();
|
||||
Task<string> GetEditorBundlePathAsync();
|
||||
Task LaunchFileAsync(string filePath);
|
||||
Task LaunchUriAsync(Uri uri);
|
||||
|
||||
/// <summary>
|
||||
/// Launches the default browser with the specified uri and waits for protocol activation to finish.
|
||||
/// </summary>
|
||||
/// <param name="authenticator"></param>
|
||||
/// <returns>Response callback from the browser.</returns>
|
||||
Task<Uri> GetAuthorizationResponseUriAsync(IAuthenticator authenticator, string authorizationUri);
|
||||
|
||||
/// <summary>
|
||||
/// Finalizes GetAuthorizationResponseUriAsync for current IAuthenticator.
|
||||
/// </summary>
|
||||
/// <param name="authorizationResponseUri"></param>
|
||||
void ContinueAuthorization(Uri authorizationResponseUri);
|
||||
|
||||
bool IsAppRunning();
|
||||
|
||||
string GetFullAppVersion();
|
||||
@@ -21,5 +35,11 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Some cryptographic shit is needed for requesting Google authentication in UWP.
|
||||
/// </summary>
|
||||
GoogleAuthorizationRequest GetGoogleAuthorizationRequest();
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the function that returns a pointer for main window hwnd for UWP.
|
||||
/// This is used to display WAM broker dialog on running UWP app called by a windowless server code.
|
||||
/// </summary>
|
||||
Func<IntPtr> GetCoreWindowHwnd { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,15 +122,25 @@ namespace Wino.Core.Domain.Interfaces
|
||||
AppLanguage CurrentLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Display font for the mail reader. Not composer.
|
||||
/// Setting: Display font for the mail reader.
|
||||
/// </summary>
|
||||
ReaderFont ReaderFont { get; set; }
|
||||
string ReaderFont { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Font size for the mail reader. Not composer.
|
||||
/// Setting: Font size for the mail reader.
|
||||
/// </summary>
|
||||
int ReaderFontSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Display font for the mail composer.
|
||||
/// </summary>
|
||||
string ComposerFont { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Font size for the mail composer.
|
||||
/// </summary>
|
||||
int ComposerFontSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the navigation pane is opened on the last session or not.
|
||||
/// </summary>
|
||||
@@ -140,5 +150,10 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Setting: Whether the next item should be automatically selected once the current item is moved or removed.
|
||||
/// </summary>
|
||||
bool AutoSelectNextItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Gets or sets what should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
ServerBackgroundMode ServerTerminationBehavior { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
TRequest NativeRequest { get; }
|
||||
}
|
||||
|
||||
public interface IRequestBase
|
||||
public interface IRequestBase : IClientMessage
|
||||
{
|
||||
/// <summary>
|
||||
/// Synchronizer option to perform.
|
||||
@@ -40,6 +40,15 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Reverts the UI changes applied by <see cref="ApplyUIChanges"/> if the request fails.
|
||||
/// </summary>
|
||||
void RevertUIChanges();
|
||||
|
||||
/// <summary>
|
||||
/// Whether synchronizations should be delayed after executing this request.
|
||||
/// Specially Outlook sometimes don't report changes back immidiately after sending the API request.
|
||||
/// This results following synchronization to miss the changes.
|
||||
/// We add small delay for the following synchronization after executing current requests to overcome this issue.
|
||||
/// Default is false.
|
||||
/// </summary>
|
||||
bool DelayExecution { get; }
|
||||
}
|
||||
|
||||
public interface IRequest : IRequestBase
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
@@ -7,27 +8,40 @@ namespace Wino.Core.Domain.Interfaces
|
||||
public interface ISignatureService
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the assigned account signature for the account.
|
||||
/// Get one signature by Id.
|
||||
/// </summary>
|
||||
/// <param name="accountId"></param>
|
||||
/// <returns></returns>
|
||||
Task<AccountSignature> GetAccountSignatureAsync(Guid accountId);
|
||||
/// <param name="signatureId">Signature Id.</param>
|
||||
Task<AccountSignature> GetSignatureAsync(Guid signatureId);
|
||||
|
||||
/// <summary>
|
||||
/// Creates the initial signature for new created accounts.
|
||||
/// Returns all signatures for specified account.
|
||||
/// </summary>
|
||||
/// <param name="accountId"></param>
|
||||
/// <returns></returns>
|
||||
/// <param name="accountId">Account id</param>
|
||||
Task<List<AccountSignature>> GetSignaturesAsync(Guid accountId);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new signature for the account.
|
||||
/// </summary>
|
||||
/// <param name="signature">Signature that should be created. It should contain ID and account to which it belongs.</param>
|
||||
Task<AccountSignature> CreateSignatureAsync(AccountSignature signature);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a default Wino signature for the account.
|
||||
/// Needed only for initial account setup.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account Id.</param>
|
||||
Task<AccountSignature> CreateDefaultSignatureAsync(Guid accountId);
|
||||
|
||||
/// <summary>
|
||||
/// Updates account's existing signature with the given HTML signature.
|
||||
/// Updates existing signature.
|
||||
/// </summary>
|
||||
Task<AccountSignature> UpdateAccountSignatureAsync(Guid accountId, string htmlBody);
|
||||
/// <param name="signature">Signature that should be updated. It should contain ID and account to which it belongs.</param>
|
||||
Task<AccountSignature> UpdateSignatureAsync(AccountSignature signature);
|
||||
|
||||
/// <summary>
|
||||
/// Disabled signature for the account and deletes existing signature.
|
||||
/// Deletes existing signature.
|
||||
/// </summary>
|
||||
Task DeleteAccountSignatureAssignment(Guid accountId);
|
||||
/// <param name="signature">Signature that should be deleted.</param>
|
||||
Task<AccountSignature> DeleteSignatureAsync(AccountSignature signature);
|
||||
}
|
||||
}
|
||||
|
||||
20
Wino.Core.Domain/Interfaces/IStartupBehaviorService.cs
Normal file
20
Wino.Core.Domain/Interfaces/IStartupBehaviorService.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IStartupBehaviorService
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets whether Wino Server is set to launch on startup or not.
|
||||
/// </summary>
|
||||
Task<StartupBehaviorResult> GetCurrentStartupBehaviorAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Enables/disables the current startup behavior for Wino Server.
|
||||
/// </summary>
|
||||
/// <param name="isEnabled">Whether to launch enabled or disabled.</param>
|
||||
/// <returns>True if operation success, false if not.</returns>
|
||||
Task<StartupBehaviorResult> ToggleStartupBehavior(bool isEnabled);
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// An interface for reporting progress of the synchronization.
|
||||
/// Gmail does not support reporting folder progress.
|
||||
/// For others, account progress is calculated based on the number of folders.
|
||||
/// </summary>
|
||||
public interface ISynchronizationProgress
|
||||
{
|
||||
/// <summary>
|
||||
/// Reports account synchronization progress.
|
||||
/// </summary>
|
||||
/// <param name="accountId">Account id for the report.</param>
|
||||
/// <param name="progress">Value. This is always between 0 - 100</param>
|
||||
void AccountProgressUpdated(Guid accountId, int progress);
|
||||
}
|
||||
}
|
||||
11
Wino.Core.Domain/Interfaces/ISynchronizerFactory.cs
Normal file
11
Wino.Core.Domain/Interfaces/ISynchronizerFactory.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ISynchronizerFactory
|
||||
{
|
||||
Task<IBaseSynchronizer> GetAccountSynchronizerAsync(Guid accountId);
|
||||
Task InitializeAsync();
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,11 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IThreadingStrategy
|
||||
{
|
||||
/// <summary>
|
||||
/// Attach thread mails to the list.
|
||||
/// </summary>
|
||||
/// <param name="items">Original mails.</param>
|
||||
/// <returns>Original mails with thread mails.</returns>
|
||||
Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items);
|
||||
bool ShouldThreadWithItem(IMailItem originalItem, IMailItem targetItem);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace Wino.Core.Domain.Models.Requests
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for all messages to report UI changes from synchronizers to UI.
|
||||
@@ -6,5 +6,6 @@
|
||||
/// They are sent either from processor or view models to signal some other
|
||||
/// parts of the application.
|
||||
/// </summary>
|
||||
|
||||
public interface IUIMessage;
|
||||
}
|
||||
15
Wino.Core.Domain/Interfaces/IUnsubscriptionService.cs
Normal file
15
Wino.Core.Domain/Interfaces/IUnsubscriptionService.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Models.Reader;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IUnsubscriptionService
|
||||
{
|
||||
/// <summary>
|
||||
/// Unsubscribes from the subscription using one-click method.
|
||||
/// </summary>
|
||||
/// <param name="info">Unsubscribtion information.</param>
|
||||
/// <returns>Whether the unsubscription is succeeded or not.</returns>
|
||||
Task<bool> OneClickUnsubscribeAsync(UnsubscribeInfo info);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
@@ -17,7 +16,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Queues new draft creation request for synchronizer.
|
||||
/// </summary>
|
||||
/// <param name="draftPreperationRequest">A class that holds the parameters for creating a draft.</param>
|
||||
Task ExecuteAsync(DraftPreperationRequest draftPreperationRequest);
|
||||
Task ExecuteAsync(DraftPreparationRequest draftPreperationRequest);
|
||||
|
||||
/// <summary>
|
||||
/// Queues a new request for synchronizer to send a draft.
|
||||
@@ -28,8 +27,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <summary>
|
||||
/// Prepares requires IRequest collection for folder actions and executes them via proper synchronizers.
|
||||
/// </summary>
|
||||
/// <param name="operation">Folder operation to execute.</param>
|
||||
/// <param name="folderStructure">Target folder</param>
|
||||
Task ExecuteAsync(FolderOperation operation, IMailItemFolder folderStructure);
|
||||
/// <param name="folderOperationPreperationRequest">Folder prep request.</param>
|
||||
Task ExecuteAsync(FolderOperationPreperationRequest folderOperationPreperationRequest);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Requests;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IWinoRequestProcessor
|
||||
{
|
||||
Task<IRequest> PrepareFolderRequestAsync(FolderOperation operation, IMailItemFolder mailItemFolder);
|
||||
/// <summary>
|
||||
/// Prepares proper folder action requests for synchronizers to execute.
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns>Base request that synchronizer can execute.</returns>
|
||||
Task<IRequestBase> PrepareFolderRequestAsync(FolderOperationPreperationRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// Prepares proper Wino requests for synchronizers to execute categorized by AccountId and FolderId.
|
||||
@@ -17,6 +20,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <param name="operation">User action</param>
|
||||
/// <param name="mailCopyIds">Selected mails.</param>
|
||||
/// <exception cref="UnavailableSpecialFolderException">When required folder target is not available for account.</exception>
|
||||
/// <returns>Base request that synchronizer can execute.</returns>
|
||||
Task<List<IRequest>> PrepareRequestsAsync(MailOperationPreperationRequest request);
|
||||
}
|
||||
}
|
||||
|
||||
61
Wino.Core.Domain/Interfaces/IWinoServerConnectionManager.cs
Normal file
61
Wino.Core.Domain/Interfaces/IWinoServerConnectionManager.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Server;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IWinoServerConnectionManager
|
||||
{
|
||||
/// <summary>
|
||||
/// When the connection status changes, this event will be triggered.
|
||||
/// </summary>
|
||||
event EventHandler<WinoServerConnectionStatus> StatusChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the connection status.
|
||||
/// </summary>
|
||||
WinoServerConnectionStatus Status { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Launches Full Trust process (Wino Server) and awaits connection completion.
|
||||
/// If connection is not established in 10 seconds, it will return false.
|
||||
/// If the server process is already running, it'll connect to existing one.
|
||||
/// If the server process is not running, it'll be launched and connection establishment is awaited.
|
||||
/// </summary>
|
||||
/// <returns>Whether connection is established or not.</returns>
|
||||
Task<bool> ConnectAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Queues a new user request to be processed by Wino Server.
|
||||
/// Healthy connection must present before calling this method.
|
||||
/// </summary>
|
||||
/// <param name="request">Request to queue for synchronizer in the server.</param>
|
||||
/// <param name="accountId">Account id to queueu request for.</param>
|
||||
Task QueueRequestAsync(IRequestBase request, Guid accountId);
|
||||
|
||||
/// <summary>
|
||||
/// Returns response from server for the given request.
|
||||
/// </summary>
|
||||
/// <typeparam name="TResponse">Response type.</typeparam>
|
||||
/// <typeparam name="TRequestType">Request type.</typeparam>
|
||||
/// <param name="clientMessage">Request type.</param>
|
||||
/// <returns>Response received from the server for the given TResponse type.</returns>
|
||||
Task<WinoServerResponse<TResponse>> GetResponseAsync<TResponse, TRequestType>(TRequestType clientMessage) where TRequestType : IClientMessage;
|
||||
|
||||
/// <summary>
|
||||
/// Handle for connecting to the server.
|
||||
/// If the server is already running, it'll connect to existing one.
|
||||
/// Callers can await this handle to wait for connection establishment.
|
||||
/// </summary>
|
||||
TaskCompletionSource<bool> ConnectingHandle { get; }
|
||||
}
|
||||
|
||||
public interface IWinoServerConnectionManager<TAppServiceConnection> : IWinoServerConnectionManager, IInitializeAsync
|
||||
{
|
||||
/// <summary>
|
||||
/// Existing connection handle to the server of TAppServiceConnection type.
|
||||
/// </summary>
|
||||
TAppServiceConnection Connection { get; set; }
|
||||
}
|
||||
}
|
||||
11
Wino.Core.Domain/Interfaces/IWinoSynchronizerFactory.cs
Normal file
11
Wino.Core.Domain/Interfaces/IWinoSynchronizerFactory.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IWinoSynchronizerFactory : IInitializeAsync
|
||||
{
|
||||
IBaseSynchronizer GetAccountSynchronizer(Guid accountId);
|
||||
IBaseSynchronizer CreateNewSynchronizer(MailAccount account);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Accounts
|
||||
{
|
||||
public record AccountCreationDialogResult(MailProviderType ProviderType, string AccountName, string AccountColorHex = "");
|
||||
}
|
||||
9
Wino.Core.Domain/Models/Accounts/ProfileInformation.cs
Normal file
9
Wino.Core.Domain/Models/Accounts/ProfileInformation.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Wino.Core.Domain.Models.Accounts
|
||||
{
|
||||
/// <summary>
|
||||
/// Encapsulates the profile information of an account.
|
||||
/// </summary>
|
||||
/// <param name="SenderName">Display sender name for the account.</param>
|
||||
/// <param name="Base64ProfilePictureData">Base 64 encoded profile picture data of the account. Thumbnail size.</param>
|
||||
public record ProfileInformation(string SenderName, string Base64ProfilePictureData);
|
||||
}
|
||||
13
Wino.Core.Domain/Models/Accounts/UnreadItemCountResult.cs
Normal file
13
Wino.Core.Domain/Models/Accounts/UnreadItemCountResult.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Accounts
|
||||
{
|
||||
public class UnreadItemCountResult
|
||||
{
|
||||
public Guid FolderId { get; set; }
|
||||
public Guid AccountId { get; set; }
|
||||
public SpecialFolderType SpecialFolderType { get; set; }
|
||||
public int UnreadItemCount { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ namespace Wino.Core.Domain.Models.Authorization
|
||||
ClientId = clientId;
|
||||
|
||||
// Creates the OAuth 2.0 authorization request.
|
||||
return string.Format("{0}?response_type=code&scope=https://mail.google.com/ https://www.googleapis.com/auth/gmail.labels&redirect_uri={1}&client_id={2}&state={3}&code_challenge={4}&code_challenge_method={5}",
|
||||
return string.Format("{0}?response_type=code&scope=https://mail.google.com/ https://www.googleapis.com/auth/gmail.labels https://www.googleapis.com/auth/userinfo.profile&redirect_uri={1}&client_id={2}&state={3}&code_challenge={4}&code_challenge_method={5}",
|
||||
authorizationEndpoint,
|
||||
Uri.EscapeDataString(RedirectUri),
|
||||
ClientId,
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
{
|
||||
public class AutoDiscoveryConnectionTestFailedPackage
|
||||
{
|
||||
public AutoDiscoveryConnectionTestFailedPackage(AutoDiscoverySettings settings, Exception error)
|
||||
{
|
||||
Settings = settings ?? throw new ArgumentNullException(nameof(settings));
|
||||
Error = error ?? throw new ArgumentNullException(nameof(error));
|
||||
}
|
||||
|
||||
public AutoDiscoveryConnectionTestFailedPackage(Exception error)
|
||||
{
|
||||
Error = error ?? throw new ArgumentNullException(nameof(error));
|
||||
}
|
||||
|
||||
public AutoDiscoverySettings Settings { get; set; }
|
||||
public Exception Error { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,22 +1,22 @@
|
||||
using Newtonsoft.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
{
|
||||
public class AutoDiscoveryProviderSetting
|
||||
{
|
||||
[JsonProperty("protocol")]
|
||||
[JsonPropertyName("protocol")]
|
||||
public string Protocol { get; set; }
|
||||
|
||||
[JsonProperty("address")]
|
||||
[JsonPropertyName("address")]
|
||||
public string Address { get; set; }
|
||||
|
||||
[JsonProperty("port")]
|
||||
[JsonPropertyName("port")]
|
||||
public int Port { get; set; }
|
||||
|
||||
[JsonProperty("secure")]
|
||||
[JsonPropertyName("secure")]
|
||||
public string Secure { get; set; }
|
||||
|
||||
[JsonProperty("username")]
|
||||
[JsonPropertyName("username")]
|
||||
public string Username { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
{
|
||||
public class AutoDiscoverySettings
|
||||
{
|
||||
[JsonProperty("domain")]
|
||||
[JsonPropertyName("domain")]
|
||||
public string Domain { get; set; }
|
||||
|
||||
[JsonProperty("password")]
|
||||
[JsonPropertyName("password")]
|
||||
public string Password { get; set; }
|
||||
|
||||
[JsonProperty("settings")]
|
||||
[JsonPropertyName("settings")]
|
||||
public List<AutoDiscoveryProviderSetting> Settings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -30,9 +30,6 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
|
||||
if (imapSettings == null || smtpSettings == null) return null;
|
||||
|
||||
bool imapRequiresSSL = imapSettings.Secure == "SSL";
|
||||
bool smtpRequiresSSL = smtpSettings.Secure == "SSL";
|
||||
|
||||
string imapUrl = imapSettings.Address;
|
||||
string smtpUrl = smtpSettings.Address;
|
||||
|
||||
@@ -49,15 +46,18 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
Address = UserMinimalSettings.Email,
|
||||
IncomingServerPassword = UserMinimalSettings.Password,
|
||||
OutgoingServerPassword = UserMinimalSettings.Password,
|
||||
IncomingRequiresSSL = imapRequiresSSL,
|
||||
OutgoingRequresSSL = smtpRequiresSSL,
|
||||
IncomingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
|
||||
OutgoingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
|
||||
OutgoingServerSocketOption = Enums.ImapConnectionSecurity.Auto,
|
||||
IncomingServerSocketOption = Enums.ImapConnectionSecurity.Auto,
|
||||
IncomingServer = imapUrl,
|
||||
OutgoingServer = smtpUrl,
|
||||
IncomingServerPort = imapPort.ToString(),
|
||||
OutgoingServerPort = smtpPort.ToString(),
|
||||
IncomingServerType = Enums.CustomIncomingServerType.IMAP4,
|
||||
IncomingServerUsername = imapUsername,
|
||||
OutgoingServerUsername = smtpUsername
|
||||
OutgoingServerUsername = smtpUsername,
|
||||
MaxConcurrentClients = 5
|
||||
};
|
||||
|
||||
return serverInfo;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
/// <summary>
|
||||
/// Encapsulates a request to prepare a folder operation like Rename, Delete, etc.
|
||||
/// </summary>
|
||||
/// <param name="Action">Folder operation.</param>
|
||||
/// <param name="Folder">Target folder.</param>
|
||||
public record FolderOperationPreperationRequest(FolderOperation Action, MailItemFolder Folder) { }
|
||||
}
|
||||
76
Wino.Core.Domain/Models/Launch/MailToUri.cs
Normal file
76
Wino.Core.Domain/Models/Launch/MailToUri.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Launch;
|
||||
|
||||
public class MailToUri
|
||||
{
|
||||
public string Subject { get; private set; }
|
||||
public string Body { get; private set; }
|
||||
public List<string> To { get; } = [];
|
||||
public List<string> Cc { get; } = [];
|
||||
public List<string> Bcc { get; } = [];
|
||||
public Dictionary<string, string> OtherParameters { get; } = [];
|
||||
|
||||
public MailToUri(string mailToUrl)
|
||||
{
|
||||
ParseMailToUrl(mailToUrl);
|
||||
}
|
||||
|
||||
private void ParseMailToUrl(string mailToUrl)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(mailToUrl))
|
||||
throw new ArgumentException("mailtoUrl cannot be null or empty.", nameof(mailToUrl));
|
||||
|
||||
if (!mailToUrl.StartsWith("mailto:", StringComparison.OrdinalIgnoreCase))
|
||||
throw new ArgumentException("URL must start with 'mailto:'.", nameof(mailToUrl));
|
||||
|
||||
var mailToWithoutScheme = mailToUrl.Substring(7); // Remove "mailto:"
|
||||
var components = mailToWithoutScheme.Split('?');
|
||||
if (!string.IsNullOrEmpty(components[0]))
|
||||
{
|
||||
To.AddRange(components[0].Split(',').Select(email => HttpUtility.UrlDecode(email).Trim()));
|
||||
}
|
||||
|
||||
if (components.Length <= 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var parameters = components[1].Split('&');
|
||||
|
||||
foreach (var parameter in parameters)
|
||||
{
|
||||
var keyValue = parameter.Split('=');
|
||||
if (keyValue.Length != 2)
|
||||
continue;
|
||||
|
||||
var key = keyValue[0].ToLowerInvariant();
|
||||
var value = HttpUtility.UrlDecode(keyValue[1]);
|
||||
|
||||
switch (key)
|
||||
{
|
||||
case "to":
|
||||
To.AddRange(value.Split(',').Select(email => email.Trim()));
|
||||
break;
|
||||
case "subject":
|
||||
Subject = value;
|
||||
break;
|
||||
case "body":
|
||||
Body = value;
|
||||
break;
|
||||
case "cc":
|
||||
Cc.AddRange(value.Split(',').Select(email => email.Trim()));
|
||||
break;
|
||||
case "bcc":
|
||||
Bcc.AddRange(value.Split(',').Select(email => email.Trim()));
|
||||
break;
|
||||
default:
|
||||
OtherParameters[key] = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +1,27 @@
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using MimeKit;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Launch;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
namespace Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
public class DraftCreationOptions
|
||||
{
|
||||
public class DraftCreationOptions
|
||||
{
|
||||
public MimeMessage ReferenceMimeMessage { get; set; }
|
||||
public MailCopy ReferenceMailCopy { get; set; }
|
||||
public DraftCreationReason Reason { get; set; }
|
||||
public DraftCreationReason Reason { get; set; }
|
||||
|
||||
#region Mailto Protocol Related Stuff
|
||||
/// <summary>
|
||||
/// Used for forward/reply
|
||||
/// </summary>
|
||||
public ReferencedMessage ReferencedMessage { get; set; }
|
||||
|
||||
public const string MailtoSubjectParameterKey = "subject";
|
||||
public const string MailtoBodyParameterKey = "body";
|
||||
public const string MailtoToParameterKey = "mailto";
|
||||
public const string MailtoCCParameterKey = "cc";
|
||||
public const string MailtoBCCParameterKey = "bcc";
|
||||
|
||||
public NameValueCollection MailtoParameters { get; set; }
|
||||
|
||||
private bool IsMailtoParameterExists(string parameterKey)
|
||||
=> MailtoParameters != null
|
||||
&& MailtoParameters.AllKeys.Contains(parameterKey);
|
||||
|
||||
public bool TryGetMailtoValue(string key, out string value)
|
||||
{
|
||||
bool valueExists = IsMailtoParameterExists(key);
|
||||
|
||||
value = valueExists ? MailtoParameters[key] : string.Empty;
|
||||
|
||||
return valueExists;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
/// <summary>
|
||||
/// Used to create mails from Mailto links
|
||||
/// </summary>
|
||||
public MailToUri MailToUri { get; set; }
|
||||
}
|
||||
|
||||
public class ReferencedMessage
|
||||
{
|
||||
public MailCopy MailCopy { get; set; }
|
||||
public MimeMessage MimeMessage { get; set; }
|
||||
}
|
||||
|
||||
55
Wino.Core.Domain/Models/MailItem/DraftPreparationRequest.cs
Normal file
55
Wino.Core.Domain/Models/MailItem/DraftPreparationRequest.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
public class DraftPreparationRequest
|
||||
{
|
||||
public DraftPreparationRequest(MailAccount account,
|
||||
MailCopy createdLocalDraftCopy,
|
||||
string base64EncodedMimeMessage,
|
||||
DraftCreationReason reason,
|
||||
MailCopy referenceMailCopy = null)
|
||||
{
|
||||
Account = account ?? throw new ArgumentNullException(nameof(account));
|
||||
|
||||
CreatedLocalDraftCopy = createdLocalDraftCopy ?? throw new ArgumentNullException(nameof(createdLocalDraftCopy));
|
||||
ReferenceMailCopy = referenceMailCopy;
|
||||
|
||||
// MimeMessage is not serializable with System.Text.Json. Convert to base64 string.
|
||||
// This is additional work when deserialization needed, but not much to do atm.
|
||||
|
||||
Base64LocalDraftMimeMessage = base64EncodedMimeMessage;
|
||||
Reason = reason;
|
||||
}
|
||||
|
||||
[JsonConstructor]
|
||||
private DraftPreparationRequest() { }
|
||||
|
||||
public MailCopy CreatedLocalDraftCopy { get; set; }
|
||||
|
||||
public MailCopy ReferenceMailCopy { get; set; }
|
||||
|
||||
public string Base64LocalDraftMimeMessage { get; set; }
|
||||
public DraftCreationReason Reason { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
private MimeMessage createdLocalDraftMimeMessage;
|
||||
|
||||
[JsonIgnore]
|
||||
public MimeMessage CreatedLocalDraftMimeMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
createdLocalDraftMimeMessage ??= Base64LocalDraftMimeMessage.GetMimeMessageFromBase64();
|
||||
|
||||
return createdLocalDraftMimeMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public MailAccount Account { get; set; }
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
public class DraftPreperationRequest : DraftCreationOptions
|
||||
{
|
||||
public DraftPreperationRequest(MailAccount account, MailCopy createdLocalDraftCopy, MimeMessage createdLocalDraftMimeMessage)
|
||||
{
|
||||
Account = account ?? throw new ArgumentNullException(nameof(account));
|
||||
|
||||
CreatedLocalDraftCopy = createdLocalDraftCopy ?? throw new ArgumentNullException(nameof(createdLocalDraftCopy));
|
||||
CreatedLocalDraftMimeMessage = createdLocalDraftMimeMessage ?? throw new ArgumentNullException(nameof(createdLocalDraftMimeMessage));
|
||||
}
|
||||
|
||||
public MailCopy CreatedLocalDraftCopy { get; set; }
|
||||
public MimeMessage CreatedLocalDraftMimeMessage { get; set; }
|
||||
public MailAccount Account { get; }
|
||||
}
|
||||
}
|
||||
15
Wino.Core.Domain/Models/MailItem/IMailHashContainer.cs
Normal file
15
Wino.Core.Domain/Models/MailItem/IMailHashContainer.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
/// <summary>
|
||||
/// An interface that returns the UniqueId store for IMailItem.
|
||||
/// For threads, it may be multiple items.
|
||||
/// For single mails, it'll always be one item.
|
||||
/// </summary>
|
||||
public interface IMailHashContainer
|
||||
{
|
||||
IEnumerable<Guid> GetContainingIds();
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
/// <summary>
|
||||
/// Interface of simplest representation of a MailCopy.
|
||||
/// </summary>
|
||||
public interface IMailItem
|
||||
public interface IMailItem : IMailHashContainer
|
||||
{
|
||||
Guid UniqueId { get; }
|
||||
string Id { get; }
|
||||
|
||||
@@ -9,61 +9,31 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
/// <summary>
|
||||
/// Encapsulates the options for preparing requests to execute mail operations for mail items like Move, Delete, MarkAsRead, etc.
|
||||
/// </summary>
|
||||
public class MailOperationPreperationRequest
|
||||
/// <param name="Action"> Action to execute. </param>
|
||||
/// <param name="MailItems"> Mail copies execute the action on. </param>
|
||||
/// <param name="ToggleExecution"> Whether the operation can be reverted if needed.
|
||||
/// eg. MarkAsRead on already read item will set the action to MarkAsUnread.
|
||||
/// This is used in hover actions for example. </param>
|
||||
/// <param name="IgnoreHardDeleteProtection"> Whether hard delete protection should be ignored.
|
||||
/// Discard draft requests for example should ignore hard delete protection. </param>
|
||||
/// <param name="MoveTargetFolder"> Moving folder for the Move operation.
|
||||
/// If null and the action is Move, the user will be prompted to select a folder. </param>
|
||||
public record MailOperationPreperationRequest(MailOperation Action, IEnumerable<MailCopy> MailItems, bool ToggleExecution, bool IgnoreHardDeleteProtection, IMailItemFolder MoveTargetFolder)
|
||||
{
|
||||
public MailOperationPreperationRequest(MailOperation action,
|
||||
IEnumerable<MailCopy> mailItems,
|
||||
bool toggleExecution = false,
|
||||
IMailItemFolder moveTargetFolder = null,
|
||||
bool ignoreHardDeleteProtection = false)
|
||||
bool ignoreHardDeleteProtection = false) : this(action, mailItems ?? throw new ArgumentNullException(nameof(mailItems)), toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
|
||||
{
|
||||
Action = action;
|
||||
MailItems = mailItems ?? throw new ArgumentNullException(nameof(mailItems));
|
||||
ToggleExecution = toggleExecution;
|
||||
MoveTargetFolder = moveTargetFolder;
|
||||
IgnoreHardDeleteProtection = ignoreHardDeleteProtection;
|
||||
}
|
||||
|
||||
public MailOperationPreperationRequest(MailOperation action,
|
||||
MailCopy singleMailItem,
|
||||
bool toggleExecution = false,
|
||||
IMailItemFolder moveTargetFolder = null,
|
||||
bool ignoreHardDeleteProtection = false)
|
||||
bool ignoreHardDeleteProtection = false) : this(action, new List<MailCopy>() { singleMailItem }, toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
|
||||
{
|
||||
Action = action;
|
||||
MailItems = new List<MailCopy>() { singleMailItem };
|
||||
ToggleExecution = toggleExecution;
|
||||
MoveTargetFolder = moveTargetFolder;
|
||||
IgnoreHardDeleteProtection = ignoreHardDeleteProtection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Action to execute.
|
||||
/// </summary>
|
||||
public MailOperation Action { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Mail copies execute the action on.
|
||||
/// </summary>
|
||||
public IEnumerable<MailCopy> MailItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether the operation can be reverted if needed.
|
||||
/// eg. MarkAsRead on already read item will set the action to MarkAsUnread.
|
||||
/// This is used in hover actions for example.
|
||||
/// </summary>
|
||||
public bool ToggleExecution { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether hard delete protection should be ignored.
|
||||
/// Discard draft requests for example should ignore hard delete protection.
|
||||
/// </summary>
|
||||
public bool IgnoreHardDeleteProtection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Moving folder for the Move operation.
|
||||
/// If null and the action is Move, the user will be prompted to select a folder.
|
||||
/// </summary>
|
||||
public IMailItemFolder MoveTargetFolder { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,21 @@
|
||||
using MimeKit;
|
||||
using System.Text.Json.Serialization;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
public record SendDraftPreparationRequest(MailCopy MailItem, MimeMessage Mime, MailItemFolder DraftFolder, MailItemFolder SentFolder, MailAccountPreferences AccountPreferences);
|
||||
public record SendDraftPreparationRequest(MailCopy MailItem,
|
||||
MailAccountAlias SendingAlias,
|
||||
MailItemFolder SentFolder,
|
||||
MailItemFolder DraftFolder,
|
||||
MailAccountPreferences AccountPreferences,
|
||||
string Base64MimeMessage)
|
||||
{
|
||||
[JsonIgnore]
|
||||
private MimeMessage mime;
|
||||
|
||||
[JsonIgnore]
|
||||
public MimeMessage Mime => mime ??= Base64MimeMessage.GetMimeMessageFromBase64();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Wino.Core.Domain.Entities;
|
||||
@@ -40,6 +41,8 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Guid> GetContainingIds() => ThreadItems?.Select(a => a.UniqueId) ?? default;
|
||||
|
||||
#region IMailItem
|
||||
|
||||
public Guid UniqueId => LatestMailItem?.UniqueId ?? Guid.Empty;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Requests
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a single rule for toggling user actions if needed.
|
||||
@@ -3,6 +3,6 @@
|
||||
public enum NavigationTransitionType
|
||||
{
|
||||
None, // Supress
|
||||
DrillIn,
|
||||
DrillIn
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
namespace Wino.Core.Domain.Models.Personalization
|
||||
{
|
||||
public record MailListPaneLengthPreferences(string Title, double Length);
|
||||
}
|
||||
12
Wino.Core.Domain/Models/Reader/ImageInfo.cs
Normal file
12
Wino.Core.Domain/Models/Reader/ImageInfo.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Reader;
|
||||
|
||||
public class ImageInfo
|
||||
{
|
||||
[JsonPropertyName("data")]
|
||||
public string Data { get; set; }
|
||||
|
||||
[JsonPropertyName("name")]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
@@ -11,10 +11,9 @@ namespace Wino.Core.Domain.Models.Reader
|
||||
{
|
||||
public string RenderHtml { get; }
|
||||
public MailRenderingOptions MailRenderingOptions { get; }
|
||||
public List<MimePart> Attachments { get; set; } = new List<MimePart>();
|
||||
public List<MimePart> Attachments { get; set; } = [];
|
||||
|
||||
public string UnsubscribeLink { get; set; }
|
||||
public bool CanUnsubscribe => !string.IsNullOrEmpty(UnsubscribeLink);
|
||||
public UnsubscribeInfo UnsubscribeInfo { get; set; }
|
||||
|
||||
public MailRenderModel(string renderHtml, MailRenderingOptions mailRenderingOptions = null)
|
||||
{
|
||||
@@ -22,4 +21,12 @@ namespace Wino.Core.Domain.Models.Reader
|
||||
MailRenderingOptions = mailRenderingOptions;
|
||||
}
|
||||
}
|
||||
|
||||
public class UnsubscribeInfo
|
||||
{
|
||||
public string HttpLink { get; set; }
|
||||
public string MailToLink { get; set; }
|
||||
public bool IsOneClick { get; set; }
|
||||
public bool CanUnsubscribe => HttpLink != null || MailToLink != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Reader
|
||||
{
|
||||
public record ReaderFontModel(ReaderFont Font, string FontFamilyName);
|
||||
}
|
||||
16
Wino.Core.Domain/Models/Reader/WebViewMessage.cs
Normal file
16
Wino.Core.Domain/Models/Reader/WebViewMessage.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Reader
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to pass messages from the webview to the app.
|
||||
/// </summary>
|
||||
public class WebViewMessage
|
||||
{
|
||||
[JsonPropertyName("type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonPropertyName("value")]
|
||||
public string Value { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -11,17 +11,23 @@ namespace Wino.Core.Domain.Models.Requests
|
||||
public abstract IBatchChangeRequest CreateBatch(IEnumerable<IRequest> requests);
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
}
|
||||
|
||||
public abstract record FolderRequestBase(MailItemFolder Folder, MailSynchronizerOperation Operation) : IFolderRequest
|
||||
{
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
}
|
||||
|
||||
public abstract record BatchRequestBase(IEnumerable<IRequest> Items, MailSynchronizerOperation Operation) : IBatchChangeRequest
|
||||
{
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
}
|
||||
}
|
||||
|
||||
15
Wino.Core.Domain/Models/Requests/ServerRequestPackage.cs
Normal file
15
Wino.Core.Domain/Models/Requests/ServerRequestPackage.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Requests
|
||||
{
|
||||
/// <summary>
|
||||
/// Encapsulates request to queue and account for synchronizer.
|
||||
/// </summary>
|
||||
/// <param name="AccountId">Which account to execute this request for.</param>
|
||||
/// <param name="Request">Prepared request for the server.</param>
|
||||
public record ServerRequestPackage(Guid AccountId, IRequestBase Request) : IClientMessage
|
||||
{
|
||||
public override string ToString() => $"Server Package: {Request.GetType().Name}";
|
||||
}
|
||||
}
|
||||
40
Wino.Core.Domain/Models/Server/WinoServerResponse.cs
Normal file
40
Wino.Core.Domain/Models/Server/WinoServerResponse.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using Wino.Core.Domain.Exceptions;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Server
|
||||
{
|
||||
/// <summary>
|
||||
/// Encapsulates responses from the Wino server.
|
||||
/// Exceptions are stored separately in the Message and StackTrace properties due to serialization issues.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Type of the expected response.</typeparam>
|
||||
public class WinoServerResponse<T>
|
||||
{
|
||||
public bool IsSuccess { get; set; }
|
||||
public string Message { get; set; }
|
||||
public T Data { get; set; }
|
||||
|
||||
public static WinoServerResponse<T> CreateSuccessResponse(T data)
|
||||
{
|
||||
return new WinoServerResponse<T>
|
||||
{
|
||||
IsSuccess = true,
|
||||
Data = data
|
||||
};
|
||||
}
|
||||
|
||||
public static WinoServerResponse<T> CreateErrorResponse(string message)
|
||||
{
|
||||
return new WinoServerResponse<T>
|
||||
{
|
||||
IsSuccess = false,
|
||||
Message = message
|
||||
};
|
||||
}
|
||||
|
||||
public void ThrowIfFailed()
|
||||
{
|
||||
if (!IsSuccess)
|
||||
throw new WinoServerException(Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Synchronization
|
||||
{
|
||||
@@ -27,11 +26,6 @@ namespace Wino.Core.Domain.Models.Synchronization
|
||||
/// </summary>
|
||||
public List<Guid> SynchronizationFolderIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A listener to be notified about the progress of the synchronization.
|
||||
/// </summary>
|
||||
public ISynchronizationProgress ProgressListener { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When doing a linked inbox synchronization, we must ignore reporting completion to the caller for each folder.
|
||||
/// This Id will help tracking that. Id is unique, but this one can be the same for all sync requests
|
||||
|
||||
@@ -1,21 +1,38 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Synchronization
|
||||
{
|
||||
public class SynchronizationResult
|
||||
{
|
||||
protected SynchronizationResult() { }
|
||||
public SynchronizationResult() { }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the new downloaded messages from synchronization.
|
||||
/// Server will create notifications for these messages.
|
||||
/// It's ignored in serialization. Client should not react to this.
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = [];
|
||||
|
||||
public ProfileInformation ProfileInformation { get; set; }
|
||||
|
||||
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = new List<IMailItem>();
|
||||
public SynchronizationCompletedState CompletedState { get; set; }
|
||||
|
||||
public static SynchronizationResult Empty => new() { CompletedState = SynchronizationCompletedState.Success };
|
||||
|
||||
public static SynchronizationResult Completed(IEnumerable<IMailItem> downloadedMessages)
|
||||
=> new() { DownloadedMessages = downloadedMessages, CompletedState = SynchronizationCompletedState.Success };
|
||||
public static SynchronizationResult Completed(IEnumerable<IMailItem> downloadedMessages, ProfileInformation profileInformation = null)
|
||||
=> new()
|
||||
{
|
||||
DownloadedMessages = downloadedMessages,
|
||||
ProfileInformation = profileInformation,
|
||||
CompletedState = SynchronizationCompletedState.Success
|
||||
};
|
||||
|
||||
public static SynchronizationResult Canceled => new() { CompletedState = SynchronizationCompletedState.Canceled };
|
||||
public static SynchronizationResult Failed => new() { CompletedState = SynchronizationCompletedState.Failed };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,8 +36,12 @@ namespace Wino.Core.Domain.Translations
|
||||
AppLanguage.Polish => "pl_PL",
|
||||
AppLanguage.Czech => "cs_CZ",
|
||||
AppLanguage.French => "fr_FR",
|
||||
AppLanguage.Chinese => "zh_CH",
|
||||
AppLanguage.Chinese => "zh_CN",
|
||||
AppLanguage.Spanish => "es_ES",
|
||||
AppLanguage.Indonesian => "id_ID",
|
||||
AppLanguage.Italian => "it_IT",
|
||||
AppLanguage.Greek => "el_GR",
|
||||
AppLanguage.PortugeseBrazil => "pt_BR",
|
||||
_ => "en_US",
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"AccountEditDialog_Message": "Account Name",
|
||||
"AccountEditDialog_Title": "Edit Account",
|
||||
"AccountPickerDialog_Title": "Pick an account",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
@@ -25,7 +27,9 @@
|
||||
"Buttons_Close": "Close",
|
||||
"Buttons_Create": "Create",
|
||||
"Buttons_CreateAccount": "Create Account",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Delete": "Delete",
|
||||
"Buttons_Edit": "Edit",
|
||||
"Buttons_Discard": "Discard",
|
||||
"Buttons_EnableImageRendering": "Enable",
|
||||
"Buttons_No": "No",
|
||||
@@ -36,6 +40,7 @@
|
||||
"Buttons_SaveConfiguration": "Save Configuration",
|
||||
"Buttons_Share": "Share",
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
@@ -46,6 +51,9 @@
|
||||
"ClipboardTextCopied_Title": "Copied",
|
||||
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
|
||||
"ComposerToPlaceholder": "click enter to input addresses",
|
||||
"ComposerAttachmentsDropZone_Message": "Drop your files here",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Attach",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Accent color",
|
||||
"CustomThemeBuilder_PickColor": "Pick",
|
||||
@@ -74,8 +82,15 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
|
||||
"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}.",
|
||||
"Dialog_DontAskAgain": "Don't ask again",
|
||||
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
|
||||
"DiscordChannelDisclaimerTitle": "Important Discord Information",
|
||||
@@ -85,10 +100,13 @@
|
||||
"EditorToolbarOption_Insert": "Insert",
|
||||
"EditorToolbarOption_None": "None",
|
||||
"EditorToolbarOption_Options": "Options",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"ElementTheme_Dark": "Dark mode",
|
||||
"ElementTheme_Default": "Use system setting",
|
||||
"ElementTheme_Light": "Light mode",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
|
||||
"Exception_AuthenticationCanceled": "Authentication canceled",
|
||||
"Exception_CustomThemeExists": "This theme already exists.",
|
||||
@@ -116,6 +134,7 @@
|
||||
"FilteringOption_All": "All",
|
||||
"FilteringOption_Flagged": "Flagged",
|
||||
"FilteringOption_Unread": "Unread",
|
||||
"FilteringOption_Files": "Has files",
|
||||
"Focused": "Focused",
|
||||
"FolderOperation_CreateSubFolder": "Create sub folder",
|
||||
"FolderOperation_Delete": "Delete",
|
||||
@@ -158,6 +177,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
|
||||
"IMAPSetupDialog_Username": "Username",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
|
||||
"InfoBarAction_Enable": "Enable",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
|
||||
@@ -230,6 +251,8 @@
|
||||
"Info_UnsupportedFunctionalityTitle": "Unsupported",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
|
||||
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -291,9 +314,9 @@
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Personal",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
|
||||
"NewAccountDialog_Title": "Add New Account",
|
||||
"NoMailSelected": "no message selected",
|
||||
"NoMessageCrieteria": "no messages match your search criteria.",
|
||||
"NoMessageEmptyFolder": "this folder is empty.",
|
||||
"NoMailSelected": "No message selected",
|
||||
"NoMessageCrieteria": "No messages match your search criteria",
|
||||
"NoMessageEmptyFolder": "This folder is empty",
|
||||
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
|
||||
"Notifications_MultipleNotificationsTitle": "New Mails",
|
||||
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
|
||||
@@ -310,12 +333,15 @@
|
||||
"ProviderDetail_Gmail_Description": "Google Account",
|
||||
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP Server",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"Results": "Results",
|
||||
"Right": "Right",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "up to date",
|
||||
"SynchronizationFolderReport_Failed": "synchronization is failed",
|
||||
"SearchBarPlaceholder": "search",
|
||||
"SearchingIn": "searching in",
|
||||
"SearchBarPlaceholder": "Search",
|
||||
"SearchingIn": "Searching in",
|
||||
"SearchPivotName": "Results",
|
||||
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
|
||||
@@ -377,6 +403,8 @@
|
||||
"SettingsHoverActions_Title": "Hover Actions",
|
||||
"SettingsLanguage_Description": "Change display language for Wino.",
|
||||
"SettingsLanguage_Title": "Display Language",
|
||||
"SettingsLanguageTime_Title": "Language & Time",
|
||||
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
|
||||
"CategoriesFolderNameOverride": "Categories",
|
||||
"MoreFolderNameOverride": "More",
|
||||
"SettingsOptions_Title": "Settings",
|
||||
@@ -392,6 +420,21 @@
|
||||
"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",
|
||||
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
|
||||
"SettingsManageAccountSettings_Title": "Manage Account Settings",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Reorder Accounts",
|
||||
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
|
||||
"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.",
|
||||
@@ -416,8 +459,10 @@
|
||||
"SettingsPersonalization_Title": "Personalization",
|
||||
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
|
||||
"SettingsPrivacyPolicy_Title": "Privacy Policy",
|
||||
"SettingsReadingPane_Description": "Mail rendering options.",
|
||||
"SettingsReadingPane_Title": "Reading Pane",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReaderFont_Title": "Default Reader Font",
|
||||
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
|
||||
"SettingsFontFamily_Title": "Font Family",
|
||||
@@ -435,7 +480,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
|
||||
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
|
||||
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
|
||||
"SettingsSignature_Description": "Edit or remove account signature",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Title": "Signature",
|
||||
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
|
||||
"SettingsStartupItem_Title": "Startup Item",
|
||||
@@ -478,5 +523,30 @@
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Signature Editor",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
|
||||
"SignatureDeleteDialog_Title": "Delete signature",
|
||||
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
|
||||
"SettingsSignature_ForNewMessages_Title": "For New Messages",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
|
||||
"SettingsSignature_SignatureDefaults": "Signature defaults",
|
||||
"SettingsSignature_Signatures": "Signatures",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Add signature",
|
||||
"SettingsSignature_EditSignature_Title": "Edit signature",
|
||||
"SettingsSignature_DeleteSignature_Title": "Delete signature",
|
||||
"SettingsSignature_NoneSignatureName": "None",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"AccountEditDialog_Message": "Název účtu",
|
||||
"AccountEditDialog_Title": "Upravit účet",
|
||||
"AccountPickerDialog_Title": "Vybrat účet",
|
||||
"AccountSettingsDialog_AccountName": "Jméno odesílatele",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "např. Jan Novák",
|
||||
"AddHyperlink": "Přidat",
|
||||
"AutoDiscoveryProgressMessage": "Vyhledávání v nastaveních mailu...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Pokročilá nastavení",
|
||||
@@ -25,7 +27,9 @@
|
||||
"Buttons_Close": "Zavřít",
|
||||
"Buttons_Create": "Vytvořit",
|
||||
"Buttons_CreateAccount": "Vytvořit účet",
|
||||
"Buttons_Copy": "Kopírovat",
|
||||
"Buttons_Delete": "Smazat",
|
||||
"Buttons_Edit": "Upravit",
|
||||
"Buttons_Discard": "Zahodit",
|
||||
"Buttons_EnableImageRendering": "Povolit",
|
||||
"Buttons_No": "Ne",
|
||||
@@ -36,6 +40,7 @@
|
||||
"Buttons_SaveConfiguration": "Uložit nastavení",
|
||||
"Buttons_Share": "Sdílet",
|
||||
"Buttons_SignIn": "Přihlásit se",
|
||||
"Buttons_TryAgain": "Zkusit znovu",
|
||||
"Buttons_Yes": "Ano",
|
||||
"Center": "Nastřed",
|
||||
"ComingSoon": "Již brzy...",
|
||||
@@ -46,6 +51,9 @@
|
||||
"ClipboardTextCopied_Title": "Zkopírováno",
|
||||
"ClipboardTextCopyFailed_Message": "Nepodařilo se zkopírovat \"{0}\" do schránky.",
|
||||
"ComposerToPlaceholder": "pro vložení adresy zmáčkni Enter",
|
||||
"ComposerAttachmentsDropZone_Message": "Sem přetáhněte soubory",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Přiložit",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Pokud chcete, můžete si nastavit barevný tón. Jinak se použije se výchozí barevný tón Windows.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Barevný tón",
|
||||
"CustomThemeBuilder_PickColor": "Vybrat",
|
||||
@@ -74,8 +82,15 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Přejmenovat propojený účet",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Tato operace neodstraní vaše mailové účty, ale pouze zruší jejich propojení. Chcete pokračovat?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Rozpojit účty",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Chybějící Předmět",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Zpráva nemá Předmět. Chcete pokračovat?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Odhlásit",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Chcete přestat dostávat zprávy od {0}?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Chcete-li přestat dostávat zprávy od {0}, přejděte na jejich webové stránky a odhlašte se.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Přejít na web",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Chcete přestat dostávat zprávy od {0}? Wino se za vás odhlásí zasláním e-mailu z Vašeho e-mailového účtu na {1}.",
|
||||
"Dialog_DontAskAgain": "Příště se neptat",
|
||||
"DiscordChannelDisclaimerMessage": "Wino nemá vlastní Discord server, ale speciální kanál 'wino-mail' je hostován na serveru 'Developer Sanctuary'.\nChcete-li získat informace o Winu, připojte se k vývojářskému serveru a sledujte 'wino-mail' kanál v rámci 'Community Projects'. \n\nBudete přesměrováni na stránku serveru 'Developer Sanctuary', protože Discord nepodporuje pozvánky přímo do kanálů.",
|
||||
"DiscordChannelDisclaimerTitle": "Důležité Discord informace",
|
||||
@@ -85,10 +100,13 @@
|
||||
"EditorToolbarOption_Insert": "Vložit",
|
||||
"EditorToolbarOption_None": "Žádné",
|
||||
"EditorToolbarOption_Options": "Možnosti",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"ElementTheme_Dark": "Tmavý režim",
|
||||
"ElementTheme_Default": "Použít nastavení systému",
|
||||
"ElementTheme_Light": "Světlý režim",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Nastavení poštovní schránky se nepodařilo najít.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool selhal.",
|
||||
"Exception_AuthenticationCanceled": "Ověřování bylo zrušeno",
|
||||
"Exception_CustomThemeExists": "Tento motiv už existuje.",
|
||||
@@ -116,6 +134,7 @@
|
||||
"FilteringOption_All": "Všechny",
|
||||
"FilteringOption_Flagged": "Označené",
|
||||
"FilteringOption_Unread": "Nepřečtené",
|
||||
"FilteringOption_Files": "Obsahuje soubory",
|
||||
"Focused": "Důležité",
|
||||
"FolderOperation_CreateSubFolder": "Vytvořit podsložku",
|
||||
"FolderOperation_Delete": "Odstranit",
|
||||
@@ -158,6 +177,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Použít stejné uživatelské jméno a heslo pro odesílání e-mailu",
|
||||
"IMAPSetupDialog_Username": "Uživatelské jméno",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "jan.novak, jan.novak@seznam.cz",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Připojení se nezdařilo",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "Připojení IMAP se nezdařilo.",
|
||||
"ImageRenderingDisabled": "Vykreslování obrázků je pro tuto zprávu zakázáno.",
|
||||
"InfoBarAction_Enable": "Zapnout",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "Synchronizace této složky je vypnuta.",
|
||||
@@ -230,6 +251,8 @@
|
||||
"Info_UnsupportedFunctionalityTitle": "Nepodporováno",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Neplatná URI pro odhlášení mailu",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Tento odkaz pro odhlášení je neplatný. Nepodařilo se odhlásit automatizované zasílání e-mailu.",
|
||||
"Info_UnsubscribeSuccessMessage": "Odběr {0} byl úspěšně odhlášen.",
|
||||
"Info_UnsubscribeErrorMessage": "Nepodařilo se odhlásit odběr",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Způsob ověření",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Zabezpečení připojení",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -291,9 +314,9 @@
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Osobní",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "např. Osobní účet",
|
||||
"NewAccountDialog_Title": "Přidat nový účet",
|
||||
"NoMailSelected": "nebyly vybrány žádné zprávy",
|
||||
"NoMessageCrieteria": "žádná zpráva neodpovídá kritériím vyhledávání.",
|
||||
"NoMessageEmptyFolder": "Tato složka je prázdná.",
|
||||
"NoMailSelected": "Nebyly vybrány žádné zprávy",
|
||||
"NoMessageCrieteria": "Žádná zpráva neodpovídá kritériím vyhledávání",
|
||||
"NoMessageEmptyFolder": "Tato složka je prázdná",
|
||||
"Notifications_MultipleNotificationsMessage": "Máš {0} nových zpráv.",
|
||||
"Notifications_MultipleNotificationsTitle": "Nová pošta",
|
||||
"Notifications_WinoUpdatedMessage": "Vyzkoušejte novou verzi {0}",
|
||||
@@ -310,12 +333,15 @@
|
||||
"ProviderDetail_Gmail_Description": "Google účet",
|
||||
"ProviderDetail_IMAP_Description": "Vlastní IMAP/SMTP server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP server",
|
||||
"ProtocolLogAvailable_Message": "Protokoly jsou k dispozici pro diagnostiku.",
|
||||
"Results": "Výsledky",
|
||||
"Right": "Vpravo",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "Aktuální",
|
||||
"SynchronizationFolderReport_Failed": "Synchronizace se nezdařila.",
|
||||
"SearchBarPlaceholder": "vyhledávaný výraz",
|
||||
"SearchBarPlaceholder": "Vyhledávaný výraz",
|
||||
"SearchingIn": "Vyhledávání v",
|
||||
"SearchPivotName": "Výsledky",
|
||||
"SettingsAboutGithub_Description": "Přejít na seznam chyb na GitHub.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Přidat zprávy do složky Odeslané",
|
||||
@@ -377,6 +403,8 @@
|
||||
"SettingsHoverActions_Title": "Akce při přejetí myší",
|
||||
"SettingsLanguage_Description": "Změnit jazyk aplikace pro Wino.",
|
||||
"SettingsLanguage_Title": "Jazyk aplikace",
|
||||
"SettingsLanguageTime_Title": "Jazyk & čas",
|
||||
"SettingsLanguageTime_Description": "Jazyk aplikace Wino, preferovaný formát času.",
|
||||
"CategoriesFolderNameOverride": "Kategorie",
|
||||
"MoreFolderNameOverride": "Více",
|
||||
"SettingsOptions_Title": "Nastavení",
|
||||
@@ -392,6 +420,21 @@
|
||||
"SettingsFolderMenuStyle_Description": "Změnit, zda by složky účtu měly být vnořeny uvnitř nabídky účtu či nikoli. Vypněte tento režim, pokud se vám líbí starý systém menu Windows Mail",
|
||||
"SettingsManageAccountSettings_Description": "Oznámení, podpisy, synchronizace a další nastavení pro jednotlivé účty.",
|
||||
"SettingsManageAccountSettings_Title": "Správa nastavení účtů",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Změna pořadí účtů",
|
||||
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
|
||||
"SettingsManageLink_Description": "Přesunout položky pro přidání nového propojení účtů nebo odstranění již existujícího.",
|
||||
"SettingsManageLink_Title": "Spravovat propojení",
|
||||
"SettingsMarkAsRead_Description": "Změnit, co by se mělo stát s vybranou položkou.",
|
||||
@@ -416,8 +459,10 @@
|
||||
"SettingsPersonalization_Title": "Přizpůsobení",
|
||||
"SettingsPrivacyPolicy_Description": "Zkontrolujte zásady ochrany osobních údajů.",
|
||||
"SettingsPrivacyPolicy_Title": "Zásady ochrany osobních údajů",
|
||||
"SettingsReadingPane_Description": "Možnosti vykreslování e-mailů.",
|
||||
"SettingsReadingPane_Title": "Panel s vykreskeným e-mailem",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReaderFont_Title": "Výchozí font pro vykreslení e-mailu",
|
||||
"SettingsReaderFontFamily_Description": "Změna výchozího fontu a jeho velikosti pro vykreslení e-mailu",
|
||||
"SettingsFontFamily_Title": "Font",
|
||||
@@ -435,7 +480,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Zobrazit avatary odesílatele",
|
||||
"SettingsPrefer24HourClock_Title": "Zobrazit 24-hodinový formát času",
|
||||
"SettingsPrefer24HourClock_Description": "Čas přijetí pošty bude zobrazen ve 24-hodinovém formátu času, namísto 12-hodinového (AM/PM)",
|
||||
"SettingsSignature_Description": "Upravit nebo odebrat podpis účtu",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Title": "Podpis",
|
||||
"SettingsStartupItem_Description": "Primární účet zobrazený po startu",
|
||||
"SettingsStartupItem_Title": "Primární účet",
|
||||
@@ -478,5 +523,30 @@
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Signature Editor",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
|
||||
"SignatureDeleteDialog_Title": "Delete signature",
|
||||
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
|
||||
"SettingsSignature_ForNewMessages_Title": "For New Messages",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
|
||||
"SettingsSignature_SignatureDefaults": "Signature defaults",
|
||||
"SettingsSignature_Signatures": "Signatures",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Add signature",
|
||||
"SettingsSignature_EditSignature_Title": "Edit signature",
|
||||
"SettingsSignature_DeleteSignature_Title": "Delete signature",
|
||||
"SettingsSignature_NoneSignatureName": "None",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"AccountEditDialog_Message": "Account Name",
|
||||
"AccountEditDialog_Title": "Edit Account",
|
||||
"AccountPickerDialog_Title": "Pick an account",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
@@ -25,7 +27,9 @@
|
||||
"Buttons_Close": "Close",
|
||||
"Buttons_Create": "Create",
|
||||
"Buttons_CreateAccount": "Create Account",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Delete": "Delete",
|
||||
"Buttons_Edit": "Edit",
|
||||
"Buttons_Discard": "Discard",
|
||||
"Buttons_EnableImageRendering": "Enable",
|
||||
"Buttons_No": "No",
|
||||
@@ -36,6 +40,7 @@
|
||||
"Buttons_SaveConfiguration": "Save Configuration",
|
||||
"Buttons_Share": "Share",
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
@@ -46,6 +51,9 @@
|
||||
"ClipboardTextCopied_Title": "Copied",
|
||||
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
|
||||
"ComposerToPlaceholder": "click enter to input addresses",
|
||||
"ComposerAttachmentsDropZone_Message": "Drop your files here",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Attach",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Accent color",
|
||||
"CustomThemeBuilder_PickColor": "Pick",
|
||||
@@ -74,8 +82,15 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
|
||||
"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}.",
|
||||
"Dialog_DontAskAgain": "Don't ask again",
|
||||
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
|
||||
"DiscordChannelDisclaimerTitle": "Important Discord Information",
|
||||
@@ -85,10 +100,13 @@
|
||||
"EditorToolbarOption_Insert": "Insert",
|
||||
"EditorToolbarOption_None": "None",
|
||||
"EditorToolbarOption_Options": "Options",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"ElementTheme_Dark": "Dark mode",
|
||||
"ElementTheme_Default": "Use system setting",
|
||||
"ElementTheme_Light": "Light mode",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
|
||||
"Exception_AuthenticationCanceled": "Authentication canceled",
|
||||
"Exception_CustomThemeExists": "This theme already exists.",
|
||||
@@ -116,6 +134,7 @@
|
||||
"FilteringOption_All": "All",
|
||||
"FilteringOption_Flagged": "Flagged",
|
||||
"FilteringOption_Unread": "Unread",
|
||||
"FilteringOption_Files": "Has files",
|
||||
"Focused": "Focused",
|
||||
"FolderOperation_CreateSubFolder": "Create sub folder",
|
||||
"FolderOperation_Delete": "Delete",
|
||||
@@ -158,6 +177,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
|
||||
"IMAPSetupDialog_Username": "Username",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
|
||||
"InfoBarAction_Enable": "Enable",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
|
||||
@@ -230,6 +251,8 @@
|
||||
"Info_UnsupportedFunctionalityTitle": "Unsupported",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
|
||||
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -291,9 +314,9 @@
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Personal",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
|
||||
"NewAccountDialog_Title": "Add New Account",
|
||||
"NoMailSelected": "no message selected",
|
||||
"NoMessageCrieteria": "no messages match your search criteria.",
|
||||
"NoMessageEmptyFolder": "this folder is empty.",
|
||||
"NoMailSelected": "No message selected",
|
||||
"NoMessageCrieteria": "No messages match your search criteria",
|
||||
"NoMessageEmptyFolder": "This folder is empty",
|
||||
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
|
||||
"Notifications_MultipleNotificationsTitle": "New Mails",
|
||||
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
|
||||
@@ -310,12 +333,15 @@
|
||||
"ProviderDetail_Gmail_Description": "Google Account",
|
||||
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP Server",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"Results": "Results",
|
||||
"Right": "Right",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "up to date",
|
||||
"SynchronizationFolderReport_Failed": "synchronization is failed",
|
||||
"SearchBarPlaceholder": "search",
|
||||
"SearchingIn": "searching in",
|
||||
"SearchBarPlaceholder": "Search",
|
||||
"SearchingIn": "Searching in",
|
||||
"SearchPivotName": "Results",
|
||||
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
|
||||
@@ -377,6 +403,8 @@
|
||||
"SettingsHoverActions_Title": "Hover Actions",
|
||||
"SettingsLanguage_Description": "Change display language for Wino.",
|
||||
"SettingsLanguage_Title": "Display Language",
|
||||
"SettingsLanguageTime_Title": "Language & Time",
|
||||
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
|
||||
"CategoriesFolderNameOverride": "Categories",
|
||||
"MoreFolderNameOverride": "More",
|
||||
"SettingsOptions_Title": "Settings",
|
||||
@@ -392,6 +420,21 @@
|
||||
"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",
|
||||
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
|
||||
"SettingsManageAccountSettings_Title": "Manage Account Settings",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Reorder Accounts",
|
||||
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
|
||||
"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.",
|
||||
@@ -416,8 +459,10 @@
|
||||
"SettingsPersonalization_Title": "Personalization",
|
||||
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
|
||||
"SettingsPrivacyPolicy_Title": "Privacy Policy",
|
||||
"SettingsReadingPane_Description": "Mail rendering options.",
|
||||
"SettingsReadingPane_Title": "Reading Pane",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReaderFont_Title": "Default Reader Font",
|
||||
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
|
||||
"SettingsFontFamily_Title": "Font Family",
|
||||
@@ -435,7 +480,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
|
||||
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
|
||||
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
|
||||
"SettingsSignature_Description": "Edit or remove account signature",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Title": "Signature",
|
||||
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
|
||||
"SettingsStartupItem_Title": "Startup Item",
|
||||
@@ -478,5 +523,30 @@
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Signature Editor",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
|
||||
"SignatureDeleteDialog_Title": "Delete signature",
|
||||
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
|
||||
"SettingsSignature_ForNewMessages_Title": "For New Messages",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
|
||||
"SettingsSignature_SignatureDefaults": "Signature defaults",
|
||||
"SettingsSignature_Signatures": "Signatures",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Add signature",
|
||||
"SettingsSignature_EditSignature_Title": "Edit signature",
|
||||
"SettingsSignature_DeleteSignature_Title": "Delete signature",
|
||||
"SettingsSignature_NoneSignatureName": "None",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
}
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
{
|
||||
"AccountCreationDialog_Completed": "alles erledigt",
|
||||
"AccountCreationDialog_Initializing": "initialisiere",
|
||||
"AccountCreationDialog_Initializing": "Initialisierung",
|
||||
"AccountCreationDialog_PreparingFolders": "Es werden Ordner-Informationen gesammelt.",
|
||||
"AccountCreationDialog_SigninIn": "Kontoinformationen wurden gespeichert.",
|
||||
"AccountEditDialog_Message": "Konto-Name",
|
||||
"AccountEditDialog_Title": "Konto bearbeiten",
|
||||
"AccountPickerDialog_Title": "Konto auswählen",
|
||||
"AccountSettingsDialog_AccountName": "Absender-Anzeigename",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "z.B. Max Mustermann",
|
||||
"AddHyperlink": "Hinzufügen",
|
||||
"AutoDiscoveryProgressMessage": "Es wird nach Mail-Einstellungen gesucht...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Erweiterte Konfiguration",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Die Zugangsdaten werden nur lokal auf Ihrem Computer gespeichert.",
|
||||
"BasicIMAPSetupDialog_Description": "Einige Konten benötigen zusätzliche Schritte zum Anmelden",
|
||||
"BasicIMAPSetupDialog_DisplayName": "Anzeigename",
|
||||
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "z.B. John Doe",
|
||||
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "z.B. Max Mustermann",
|
||||
"BasicIMAPSetupDialog_LearnMore": "Mehr erfahren",
|
||||
"BasicIMAPSetupDialog_MailAddress": "E-Mail Adresse",
|
||||
"BasicIMAPSetupDialog_MailAddressPlaceholder": "johndoe@fabrikam.com",
|
||||
@@ -25,9 +27,11 @@
|
||||
"Buttons_Close": "Schließen",
|
||||
"Buttons_Create": "Erstellen",
|
||||
"Buttons_CreateAccount": "Konto erstellen",
|
||||
"Buttons_Copy": "Kopieren",
|
||||
"Buttons_Delete": "Löschen",
|
||||
"Buttons_Edit": "Bearbeiten",
|
||||
"Buttons_Discard": "Verwerfen",
|
||||
"Buttons_EnableImageRendering": "An",
|
||||
"Buttons_EnableImageRendering": "Aktivieren",
|
||||
"Buttons_No": "Nein",
|
||||
"Buttons_Open": "Öffnen",
|
||||
"Buttons_Purchase": "Kaufen",
|
||||
@@ -36,6 +40,7 @@
|
||||
"Buttons_SaveConfiguration": "Einstellungen speichern",
|
||||
"Buttons_Share": "Teilen",
|
||||
"Buttons_SignIn": "Anmelden",
|
||||
"Buttons_TryAgain": "Wiederholen",
|
||||
"Buttons_Yes": "Ja",
|
||||
"Center": "Zentriert",
|
||||
"ComingSoon": "Bald verfügbar...",
|
||||
@@ -44,13 +49,16 @@
|
||||
"ComposerTo": "An: ",
|
||||
"ClipboardTextCopied_Message": "{0} in die Zwischenablage kopiert.",
|
||||
"ClipboardTextCopied_Title": "Kopiert",
|
||||
"ClipboardTextCopyFailed_Message": "Konnte {0} nicht in die Zwischenablage kopieren.",
|
||||
"ComposerToPlaceholder": "klicke Enter, um Adressen einzugeben",
|
||||
"ClipboardTextCopyFailed_Message": "{0} konnte nicht in die Zwischenablage kopiert werden.",
|
||||
"ComposerToPlaceholder": "Klicke Enter um Adressen einzugeben",
|
||||
"ComposerAttachmentsDropZone_Message": "Dateien hier ablegen",
|
||||
"ComposerImagesDropZone_Message": "Bilder hier ablegen",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Anhängen",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Legen Sie eine benutzerdefinierte Akzentfarbe fest. Wenn Sie keine Farbe wählen, wird die Akzentfarbe von Windows verwendet.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Akzentfarbe",
|
||||
"CustomThemeBuilder_PickColor": "Auswählen",
|
||||
"CustomThemeBuilder_ThemeNameDescription": "Eindeutiger Name für Ihr benutzerdefiniertes Thema.",
|
||||
"CustomThemeBuilder_ThemeNameTitle": "Name des Designs",
|
||||
"CustomThemeBuilder_ThemeNameTitle": "Name des Themas",
|
||||
"CustomThemeBuilder_Title": "Benutzerdefinierter Theme-Generator",
|
||||
"CustomThemeBuilder_WallpaperDescription": "Eigenen Hintergrund für Wino festlegen",
|
||||
"CustomThemeBuilder_WallpaperTitle": "Eigenen Hintergrund festlegen",
|
||||
@@ -74,8 +82,15 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Verknüpftes Konto umbenennen",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Dieser Vorgang wird Ihre Konten nicht löschen, sondern nur den Link für freigegebene Ordnerverbindungen zerstören. Möchten Sie fortfahren?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Konten trennen",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Betreff fehlt",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Nachricht hat keinen Betreff. Möchten Sie fortfahren?",
|
||||
"DialogMessage_RenameFolderTitle": "Ordner umbenennen",
|
||||
"DialogMessage_RenameFolderMessage": "Geben Sie einen neuen Namen für diesen Ordner ein",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Abmelden",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Möchten Sie den Empfang von Nachrichten von {0} beenden?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Um Nachrichten von {0} nicht mehr zu erhalten, gehen Sie auf die Webseite, um sich abzumelden.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Zur Webseite",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Möchten Sie den Empfang von Nachrichten von {0} beenden? Wino wird sich für Sie abmelden, indem es eine E-Mail aus Ihrem E-Mail-Konto an {1} sendet.",
|
||||
"Dialog_DontAskAgain": "Nicht mehr fragen",
|
||||
"DiscordChannelDisclaimerMessage": "Wino hat keinen eigenen Discord Server, aber der spezielle 'wino-mail'-Kanal wird auf dem 'Developer Sanctuary' Server gehostet (englisch).\nUm Updates über Wino zu erhalten, treten Sie gerne dem 'Developer Sactuary'-Server bei und folgen dem 'wino-mail'-Kanal unter 'Community Projects'.\n\nSie werden zur Server-URL weitergeleitet, da Discord keine Kanal-Einladungen unterstützt.",
|
||||
"DiscordChannelDisclaimerTitle": "Wichtige Discord-Informationen",
|
||||
@@ -85,10 +100,13 @@
|
||||
"EditorToolbarOption_Insert": "Einfügen",
|
||||
"EditorToolbarOption_None": "Keine",
|
||||
"EditorToolbarOption_Options": "Optionen",
|
||||
"EditorTooltip_WebViewEditor": "Web-View Editor verwenden",
|
||||
"ElementTheme_Dark": "Dunkler Modus",
|
||||
"ElementTheme_Default": "Systemeinstellung verwenden",
|
||||
"ElementTheme_Light": "Heller Modus",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Mailbox-Einstellungen konnten nicht gefunden werden.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client-Pool fehlgeschlagen.",
|
||||
"Exception_AuthenticationCanceled": "Authentifizierung abgebrochen",
|
||||
"Exception_CustomThemeExists": "Dieses Thema existiert bereits.",
|
||||
@@ -111,11 +129,12 @@
|
||||
"Exception_UnsupportedProvider": "Dieser Anbieter wird nicht unterstützt.",
|
||||
"Exception_UnsupportedSynchronizerOperation": "Diese Operation wird für {0} nicht unterstützt",
|
||||
"Exception_UserCancelSystemFolderSetupDialog": "Benutzer hat den Konfigurationsdialog für den Systemordner abgebrochen.",
|
||||
"Exception_InboxNotAvailable": "Couldn't setup account folders.",
|
||||
"Exception_InboxNotAvailable": "Konto-Ordner konnten nicht eingerichtet werden.",
|
||||
"Files": "Dateien",
|
||||
"FilteringOption_All": "Alle",
|
||||
"FilteringOption_Flagged": "Markiert",
|
||||
"FilteringOption_Unread": "Ungelesen",
|
||||
"FilteringOption_Files": "Enthält Dateien",
|
||||
"Focused": "Fokussiert",
|
||||
"FolderOperation_CreateSubFolder": "Unterordner erstellen",
|
||||
"FolderOperation_Delete": "Löschen",
|
||||
@@ -158,6 +177,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Den gleichen Benutzernamen und das gleiche Passwort für das Senden von E-Mails verwenden",
|
||||
"IMAPSetupDialog_Username": "Benutzername",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Verbindung fehlgeschlagen",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP Verbindung fehlgeschlagen.",
|
||||
"ImageRenderingDisabled": "Bilddarstellung ist für diese Nachricht deaktiviert.",
|
||||
"InfoBarAction_Enable": "Aktivieren",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "Dieser Ordner wird nicht synchronisiert.",
|
||||
@@ -230,6 +251,8 @@
|
||||
"Info_UnsupportedFunctionalityTitle": "Nicht unterstützt",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Ungültige Abmelde-Uri",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Dieser Abmeldelink ist ungültig. Fehler beim Abmelden der Liste.",
|
||||
"Info_UnsubscribeSuccessMessage": "Erfolgreich von {0} abgemeldet.",
|
||||
"Info_UnsubscribeErrorMessage": "Abmeldung fehlgeschlagen",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentifizierungsmethode",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Verbindungssicherheit",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -291,9 +314,9 @@
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Persönlich",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "z.B. Persönliche Mails",
|
||||
"NewAccountDialog_Title": "Neues Konto hinzufügen",
|
||||
"NoMailSelected": "keine Nachricht ausgewählt",
|
||||
"NoMessageCrieteria": "Keine Nachrichten entsprechen Ihren Suchkriterien.",
|
||||
"NoMessageEmptyFolder": "Dieser Ordner ist leer.",
|
||||
"NoMailSelected": "Keine Nachricht ausgewählt",
|
||||
"NoMessageCrieteria": "Keine Nachrichten entsprechen Ihren Suchkriterien",
|
||||
"NoMessageEmptyFolder": "Dieser Ordner ist leer",
|
||||
"Notifications_MultipleNotificationsMessage": "Sie haben {0} neue Mails",
|
||||
"Notifications_MultipleNotificationsTitle": "Neue Mails",
|
||||
"Notifications_WinoUpdatedMessage": "Neue Version {0} herunterladen",
|
||||
@@ -310,12 +333,15 @@
|
||||
"ProviderDetail_Gmail_Description": "Google-Konto",
|
||||
"ProviderDetail_IMAP_Description": "Eigener IMAP/SMTP Server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP-Server",
|
||||
"ProtocolLogAvailable_Message": "Protokolle zur Diagnose sind verfügbar.",
|
||||
"Results": "Ergebnisse",
|
||||
"Right": "Rechts",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "aktuell",
|
||||
"SynchronizationFolderReport_Failed": "Synchronisierung fehlgeschlagen",
|
||||
"SearchBarPlaceholder": "Suche",
|
||||
"SearchingIn": "suche in",
|
||||
"SearchingIn": "Suche in",
|
||||
"SearchPivotName": "Ergebnisse",
|
||||
"SettingsAboutGithub_Description": "Gehen Sie zum Problem-Tracker GitHub-Repository.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Nachrichten an Gesendete Ordner anhängen",
|
||||
@@ -377,6 +403,8 @@
|
||||
"SettingsHoverActions_Title": "Hover-Aktionen",
|
||||
"SettingsLanguage_Description": "Anzeigesprache für Wino ändern.",
|
||||
"SettingsLanguage_Title": "Anzeigesprache",
|
||||
"SettingsLanguageTime_Title": "Sprache und Zeit",
|
||||
"SettingsLanguageTime_Description": "Wino Anzeigesprache, bevorzugtes Zeitformat.",
|
||||
"CategoriesFolderNameOverride": "Kategorien",
|
||||
"MoreFolderNameOverride": "Mehr",
|
||||
"SettingsOptions_Title": "Einstellungen",
|
||||
@@ -392,6 +420,21 @@
|
||||
"SettingsFolderMenuStyle_Description": "Ändern Sie, ob Kontoordner in einem Konten-Menüpunkt verschachtelt werden sollen oder nicht. Schalten Sie dies aus, wenn Sie das alte Menüsystem in Windows Mail mögen.",
|
||||
"SettingsManageAccountSettings_Description": "Benachrichtigungen, Signaturen, Synchronisierung und andere Einstellungen pro Konto.",
|
||||
"SettingsManageAccountSettings_Title": "Kontoeinstellungen verwalten",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Konten neu ordnen",
|
||||
"SettingsReorderAccounts_Description": "Ändern Sie die Konten-Reihenfolge in der Kontenliste.",
|
||||
"SettingsManageLink_Description": "Elemente verschieben, um neuen Link hinzuzufügen oder bestehenden Link zu entfernen.",
|
||||
"SettingsManageLink_Title": "Link verwalten",
|
||||
"SettingsMarkAsRead_Description": "Ändern Sie, was mit dem ausgewählten Element passieren soll.",
|
||||
@@ -412,12 +455,14 @@
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Kompakter Modus",
|
||||
"SettingsPersonalizationMailDisplayMediumMode": "Mittlerer Modus",
|
||||
"SettingsPersonalizationMailDisplaySpaciousMode": "Geräumiger Modus",
|
||||
"SettingsPersonalization_Description": "Ändern Sie das Aussehen von Wino nach Ihren Belieben.",
|
||||
"SettingsPersonalization_Description": "Ändern Sie das Aussehen von Wino nach Ihren Vorlieben.",
|
||||
"SettingsPersonalization_Title": "Personalisierung",
|
||||
"SettingsPrivacyPolicy_Description": "Datenschutzrichtlinie ansehen.",
|
||||
"SettingsPrivacyPolicy_Title": "Datenschutzerklärung",
|
||||
"SettingsReadingPane_Description": "Mail-Darstellungs-Optionen.",
|
||||
"SettingsReadingPane_Title": "Lesefenster",
|
||||
"SettingsReader_Title": "Leseansicht",
|
||||
"SettingsComposer_Title": "Verfasser",
|
||||
"SettingsReadComposePane_Description": "Schriftarten, externe Inhalte.",
|
||||
"SettingsReadComposePane_Title": "Leseansicht & Verfasser",
|
||||
"SettingsReaderFont_Title": "Standard Lese-Schriftart",
|
||||
"SettingsReaderFontFamily_Description": "Ändern Sie die Standardschriftart und Schriftgröße für das Lesen von Mails.",
|
||||
"SettingsFontFamily_Title": "Schriftart",
|
||||
@@ -435,7 +480,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Absender-Profilbilder anzeigen",
|
||||
"SettingsPrefer24HourClock_Title": "Uhr-Format in 24 Stunden anzeigen",
|
||||
"SettingsPrefer24HourClock_Description": "Empfangszeiten für Mails werden im 24-Stunden-Format statt 12 (AM/PM) angezeigt",
|
||||
"SettingsSignature_Description": "Kontosignatur bearbeiten oder entfernen",
|
||||
"SettingsSignature_Description": "Kontosignaturen verwalten",
|
||||
"SettingsSignature_Title": "Signatur",
|
||||
"SettingsStartupItem_Description": "Primäres Konto zum Laden des Posteingangs beim Starten.",
|
||||
"SettingsStartupItem_Title": "Startelement",
|
||||
@@ -478,5 +523,30 @@
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Signatur-Editor",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Fügen Sie Ihre Signatur ein",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Signaturname",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Aktueller Signaturname: {0}",
|
||||
"SignatureDeleteDialog_Title": "Signatur löschen",
|
||||
"SignatureDeleteDialog_Message": "Wollen Sie Signatur \"{0}\" wirklich löschen?",
|
||||
"SettingsSignature_ForNewMessages_Title": "Für neue Nachrichten",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "Für Antworten/Weiterleitungen",
|
||||
"SettingsSignature_SignatureDefaults": "Standard-Signaturen",
|
||||
"SettingsSignature_Signatures": "Signaturen",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Eigene Signatur hinzufügen",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Signatur hinzufügen",
|
||||
"SettingsSignature_EditSignature_Title": "Signatur bearbeiten",
|
||||
"SettingsSignature_DeleteSignature_Title": "Signatur löschen",
|
||||
"SettingsSignature_NoneSignatureName": "Keine",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
}
|
||||
|
||||
552
Wino.Core.Domain/Translations/el_GR/resources.json
Normal file
552
Wino.Core.Domain/Translations/el_GR/resources.json
Normal file
@@ -0,0 +1,552 @@
|
||||
{
|
||||
"AccountCreationDialog_Completed": "όλα έτοιμα",
|
||||
"AccountCreationDialog_Initializing": "αρχικοποιείται",
|
||||
"AccountCreationDialog_PreparingFolders": "Προς το παρόν λαμβάνουμε πληροφορίες φακέλων.",
|
||||
"AccountCreationDialog_SigninIn": "Οι πληροφορίες λογαριασμού αποθηκεύονται.",
|
||||
"AccountEditDialog_Message": "Όνομα Λογαριασμού",
|
||||
"AccountEditDialog_Title": "Επεξεργασία Λογαριασμού",
|
||||
"AccountPickerDialog_Title": "Επιλέξτε έναν λογαριασμό",
|
||||
"AccountSettingsDialog_AccountName": "Εμφανιζόμενο Όνομα Αποστολέα",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
|
||||
"AddHyperlink": "Προσθήκη",
|
||||
"AutoDiscoveryProgressMessage": "Αναζήτηση για ρυθμίσεις αλληλογραφίας...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Σύνθετη Διαμόρφωση",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Τα διαπιστευτήριά σας θα αποθηκεύονται μόνο τοπικά στον υπολογιστή σας.",
|
||||
"BasicIMAPSetupDialog_Description": "Ορισμένοι λογαριασμοί απαιτούν πρόσθετα βήματα για να συνδεθούν",
|
||||
"BasicIMAPSetupDialog_DisplayName": "Εμφανιζόμενο Όνομα",
|
||||
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
|
||||
"BasicIMAPSetupDialog_LearnMore": "Μάθετε περισσότερα",
|
||||
"BasicIMAPSetupDialog_MailAddress": "Διεύθυνση E-mail",
|
||||
"BasicIMAPSetupDialog_MailAddressPlaceholder": "gianpapadakis@magazi.com",
|
||||
"BasicIMAPSetupDialog_Password": "Κωδικόs πρόσβασης",
|
||||
"BasicIMAPSetupDialog_Title": "Λογαριασμός IMAP",
|
||||
"Buttons_AddAccount": "Προσθήκη Λογαριασμού",
|
||||
"Buttons_ApplyTheme": "Εφαρμογή Θέματος",
|
||||
"Buttons_Browse": "Περιήγηση",
|
||||
"Buttons_Cancel": "Ακύρωση",
|
||||
"Buttons_Close": "Κλείσιμο",
|
||||
"Buttons_Create": "Δημιουργία",
|
||||
"Buttons_CreateAccount": "Δημιουργία Λογαριασμού",
|
||||
"Buttons_Copy": "Αντιγραφή",
|
||||
"Buttons_Delete": "Διαγραφή",
|
||||
"Buttons_Edit": "Επεξεργασία",
|
||||
"Buttons_Discard": "Απόρριψη",
|
||||
"Buttons_EnableImageRendering": "Ενεργοποίηση",
|
||||
"Buttons_No": "Όχι",
|
||||
"Buttons_Open": "Άνοιγμα",
|
||||
"Buttons_Purchase": "Αγορά",
|
||||
"Buttons_RateWino": "Αξιολογήστε το Wino",
|
||||
"Buttons_Save": "Αποθήκευση",
|
||||
"Buttons_SaveConfiguration": "Αποθήκευση Διαμόρφωσης",
|
||||
"Buttons_Share": "Κοινοποίηση",
|
||||
"Buttons_SignIn": "Σύνδεση",
|
||||
"Buttons_TryAgain": "Προσπαθήστε ξανά",
|
||||
"Buttons_Yes": "Ναι",
|
||||
"Center": "Κέντρο",
|
||||
"ComingSoon": "Έρχεται σύντομα...",
|
||||
"ComposerFrom": "Από: ",
|
||||
"ComposerSubject": "Θέμα: ",
|
||||
"ComposerTo": "Προς: ",
|
||||
"ClipboardTextCopied_Message": "Το \"{0}\" αντιγράφηκε στο πρόχειρο.",
|
||||
"ClipboardTextCopied_Title": "Αντιγράφηκε",
|
||||
"ClipboardTextCopyFailed_Message": "Η αντιγραφή του {0} στο πρόχειρο απέτυχε.",
|
||||
"ComposerToPlaceholder": "κάντε κλικ στο enter για να εισάγετε διευθύνσεις",
|
||||
"ComposerAttachmentsDropZone_Message": "Τοποθετήστε το αρχείο σας εδώ",
|
||||
"ComposerImagesDropZone_Message": "Αφήστε τις εικόνες σας εδώ",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Επισύναψη",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Ορίστε προσαρμοσμένο χρώμα έμφασης αν θέλετε. Αν δεν επιλέξετε κάποιο χρώμα θα χρησιμοποιηθεί το χρώμα έμφασης των Windows.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Χρώμα έμφασης",
|
||||
"CustomThemeBuilder_PickColor": "Επιλογή",
|
||||
"CustomThemeBuilder_ThemeNameDescription": "Μοναδικό όνομα για το προσαρμοσμένο θέμα σας.",
|
||||
"CustomThemeBuilder_ThemeNameTitle": "Όνομα θέματος",
|
||||
"CustomThemeBuilder_Title": "Δημιουργός Προσαρμοσμένου Θέματος",
|
||||
"CustomThemeBuilder_WallpaperDescription": "Ορισμός προσαρμοσμένης ταπετσαρίας για το Wino",
|
||||
"CustomThemeBuilder_WallpaperTitle": "Ορισμός προσαρμοσμένης ταπετσαρίας",
|
||||
"DialogMessage_AccountLimitMessage": "Έχετε φτάσει το όριο δημιουργίας λογαριασμού.\nΘα θέλατε να αγοράσετε το πρόσθετο 'Απεριόριστοι Λογαριασμοί' για να συνεχίσετε;",
|
||||
"DialogMessage_AccountLimitTitle": "Το Όριο Λογαριασμού Επιτεύχθη",
|
||||
"DialogMessage_CleanupFolderMessage": "Θέλετε να διαγράψετε μόνιμα όλα τα μηνύματα σε αυτό το φάκελο;",
|
||||
"DialogMessage_CleanupFolderTitle": "Εκκαθάριση Φακέλου",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Το μήνυμα δεν έχει παραλήπτη.",
|
||||
"DialogMessage_ComposerValidationFailedTitle": "Αποτυχία Επικύρωσης",
|
||||
"DialogMessage_CreateLinkedAccountMessage": "Δώστε σε αυτόν τον νέο σύνδεσμο ένα όνομα. Οι λογαριασμοί θα συγχωνευθούν με αυτό το όνομα.",
|
||||
"DialogMessage_CreateLinkedAccountTitle": "Όνομα Συνδέσμου Λογαριασμού",
|
||||
"DialogMessage_DeleteAccountConfirmationMessage": "Διαγραφή {0};",
|
||||
"DialogMessage_DeleteAccountConfirmationTitle": "Όλα τα δεδομένα που σχετίζονται με αυτόν τον λογαριασμό θα διαγραφούν από το δίσκο οριστικά.",
|
||||
"DialogMessage_DiscardDraftConfirmationMessage": "Αυτό το πρόχειρο θα απορριφθεί. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_DiscardDraftConfirmationTitle": "Απόρριψη προχείρου",
|
||||
"DialogMessage_HardDeleteConfirmationMessage": "Μόνιμη διαγραφή",
|
||||
"DialogMessage_HardDeleteConfirmationTitle": "Θα γίνει οριστική διαγραφή μηνύματος/-ων. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_NoAccountsForCreateMailMessage": "Δεν έχετε λογαριασμούς για να δημιουργήσετε μήνυμα.",
|
||||
"DialogMessage_NoAccountsForCreateMailTitle": "Λείπει Λογαριασμός",
|
||||
"DialogMessage_RenameLinkedAccountsMessage": "Εισάγετε νέο όνομα για συνδεδεμένο λογαριασμό",
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Μετονομασία Συνδεδεμένου Λογαριασμού",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Αυτή η λειτουργία δεν θα διαγράψει τους λογαριασμούς σας αλλά, απλά θα διαλύσει το σύνδεσμο για συνδέσεις κοινόχρηστων φακέλων. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Αποδέσμευση Λογαριασμού",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Το μήνυμα δεν έχει θέμα. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_RenameFolderTitle": "Μετονομασία Φακέλου",
|
||||
"DialogMessage_RenameFolderMessage": "Εισάγετε νέο όνομα για αυτόν το φάκελο",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Κατάργηση εγγραφής",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Θέλετε να σταματήσετε να λαμβάνετε μηνύματα από το {0};",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Για να σταματήσετε να λαμβάνετε μηνύματα από το {0}, μεταβείτε στην ιστοσελίδα τους για να καταργήσετε την εγγραφή σας.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Μεταβείτε στον ιστότοπο",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Θέλετε να σταματήσετε να λαμβάνετε μηνύματα από τον{0}; Το Wino θα κάνει κατάργηση εγγραφής για εσάς στέλνοντας ένα email από τον λογαριασμό email σας στο {1}.",
|
||||
"Dialog_DontAskAgain": "Να μην ερωτηθώ ξανά",
|
||||
"DiscordChannelDisclaimerMessage": "Το Wino δεν έχει το δικό του διακομιστή στο Discord, αλλά το ειδικό κανάλι «wino-mail» φιλοξενείται στον διακομιστή «Developer Sanctuary».\nΓια να λάβετε τις ενημερώσεις σχετικά με το Wino παρακαλούμε γίνετε μέλος του διακομιστή Developer Sanctuary και ακολουθήστε το κανάλι «wino-mail» στο «Community Projects»\n\nΘα κατευθυνθείτε στο URL του διακομιστή καθώς το Discord δεν υποστηρίζει προσκλήσεις καναλιών.",
|
||||
"DiscordChannelDisclaimerTitle": "Σημαντικές Πληροφορίες για το Discord",
|
||||
"Draft": "Πρόχειρο",
|
||||
"EditorToolbarOption_Draw": "Σχέδιο",
|
||||
"EditorToolbarOption_Format": "Μορφή",
|
||||
"EditorToolbarOption_Insert": "Εισαγωγή",
|
||||
"EditorToolbarOption_None": "Κανένα",
|
||||
"EditorToolbarOption_Options": "Επιλογές",
|
||||
"EditorTooltip_WebViewEditor": "Χρήση επεξεργαστή προβολής ιστού",
|
||||
"ElementTheme_Dark": "Σκοτεινή λειτουργία",
|
||||
"ElementTheme_Default": "Χρήση ρυθμίσεων συστήματος",
|
||||
"ElementTheme_Light": "Ανοιχτή λειτουργία",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Δεν βρέθηκαν οι ρυθμίσεις γραμματοκιβωτίου.",
|
||||
"Exception_ImapClientPoolFailed": "Αποτυχία συγκέντρωσης πελάτη IMAP.",
|
||||
"Exception_AuthenticationCanceled": "Η ταυτοποίηση ακυρώθηκε",
|
||||
"Exception_CustomThemeExists": "Αυτό το θέμα υπάρχει ήδη.",
|
||||
"Exception_CustomThemeMissingName": "Πρέπει να δώσετε ένα όνομα.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Πρέπει να δώσετε μια προσαρμοσμένη εικόνα φόντου.",
|
||||
"Exception_FailedToSynchronizeFolders": "Αποτυχία συγχρονισμού φακέλων",
|
||||
"Exception_GoogleAuthCallbackNull": "Το Callback uri είναι κενό κατά την ενεργοποίηση.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Κατεστραμμένη απάντηση εξουσιοδότησης.",
|
||||
"Exception_GoogleAuthError": "Σφάλμα εξουσιοδότησης OAuth: {0}",
|
||||
"Exception_GoogleAuthInvalidResponse": "Λήφθηκε αίτημα με μη έγκυρη κατάσταση ({0})",
|
||||
"Exception_GoogleAuthorizationCodeExchangeFailed": "Απέτυχε η ανταλλαγή κωδικού εξουσιοδότησης.",
|
||||
"Exception_InvalidSystemFolderConfiguration": "Η διαμόρφωση του φακέλου συστήματος δεν είναι έγκυρη. Ελέγξτε τη διαμόρφωση και προσπαθήστε ξανά.",
|
||||
"Exception_NullAssignedAccount": "Ο εκχωρημένος λογαριασμός είναι κενός",
|
||||
"Exception_NullAssignedFolder": "Ο εκχωρημένος λογαριασμός είναι κενός",
|
||||
"Exception_SynchronizerFailureHTTP": "Ο χειρισμός της απάντησης απέτυχε με κωδικό HTTP σφάλματος {0}",
|
||||
"Exception_TokenGenerationFailed": "Η δημιουργία αναγνωριστικού απέτυχε",
|
||||
"Exception_TokenInfoRetrivalFailed": "Αποτυχία λήψης πληροφοριών αναγνωριστικού.",
|
||||
"Exception_UnknowErrorDuringAuthentication": "Παρουσιάστηκε άγνωστο σφάλμα κατά την ταυτοποίηση",
|
||||
"Exception_UnsupportedAction": "Η ενέργεια {0} δεν υλοποιείται στον επεξεργαστή αιτήματος",
|
||||
"Exception_UnsupportedProvider": "Αυτός ο πάροχος δεν υποστηρίζεται.",
|
||||
"Exception_UnsupportedSynchronizerOperation": "Αυτή η λειτουργία δεν υποστηρίζεται για {0}",
|
||||
"Exception_UserCancelSystemFolderSetupDialog": "Ο χρήστης ακύρωσε το παράθυρο ρυθμίσεων του φακέλου.",
|
||||
"Exception_InboxNotAvailable": "Δεν ήταν δυνατή η ρύθμιση φακέλων λογαριασμού.",
|
||||
"Files": "Αρχεία",
|
||||
"FilteringOption_All": "Όλα",
|
||||
"FilteringOption_Flagged": "Με σημαία",
|
||||
"FilteringOption_Unread": "Μη αναγνωσμένα",
|
||||
"FilteringOption_Files": "Έχει αρχεία",
|
||||
"Focused": "Εστιασμένα",
|
||||
"FolderOperation_CreateSubFolder": "Δημιουργία υποφακέλου",
|
||||
"FolderOperation_Delete": "Διαγραφή",
|
||||
"FolderOperation_DontSync": "Να μην συγχρονιστεί αυτός ο φάκελος",
|
||||
"FolderOperation_Empty": "Άδειασμα αυτού του φακέλου",
|
||||
"FolderOperation_MarkAllAsRead": "Σήμανση όλων ως αναγνωσμένα",
|
||||
"FolderOperation_Move": "Μετακίνηση",
|
||||
"DragMoveToFolderCaption": "Μετακίνηση σε {0}",
|
||||
"FolderOperation_None": "Καμία",
|
||||
"FolderOperation_Pin": "Καρφίτσωμα",
|
||||
"FolderOperation_Rename": "Μετονομασία",
|
||||
"FolderOperation_Unpin": "Ξεκαρφίτσωμα",
|
||||
"HoverActionOption_Archive": "Αρχειοθέτηση",
|
||||
"HoverActionOption_Delete": "Διαγραφή",
|
||||
"HoverActionOption_MoveJunk": "Μετακίνηση στα Ανεπιθύμητα",
|
||||
"HoverActionOption_ToggleFlag": "Προσθήκη/ Αφαίρεση σημαίας",
|
||||
"HoverActionOption_ToggleRead": "Αναγνωσμένο / Μη Αναγνωσμένο",
|
||||
"MergedAccountCommonFolderInbox": "Εισερχόμενα",
|
||||
"MergedAccountCommonFolderSent": "Απεσταλμένα",
|
||||
"MergedAccountCommonFolderDraft": "Πρόχειρο",
|
||||
"MergedAccountCommonFolderJunk": "Ανεπιθύμητα",
|
||||
"MergedAccountCommonFolderTrash": "Διαγραμμένα",
|
||||
"MergedAccountCommonFolderArchive": "Αρχείο",
|
||||
"IMAPSetupDialog_AccountType": "Τύπος λογαριασμού",
|
||||
"IMAPSetupDialog_DisplayName": "Εμφανιζόμενο Όνομα",
|
||||
"IMAPSetupDialog_DisplayNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
|
||||
"IMAPSetupDialog_IncomingMailServer": "Διακομιστής εισερχόμενων mail",
|
||||
"IMAPSetupDialog_IncomingMailServerPort": "Πύλη",
|
||||
"IMAPSetupDialog_MailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"IMAPSetupDialog_MailAddressPlaceholder": "someone@example.com",
|
||||
"IMAPSetupDialog_OutgoingMailServer": "Εξερχόμενος διακομιστής αλληλογραφίας (SMTP)",
|
||||
"IMAPSetupDialog_OutgoingMailServerPassword": "Κωδικός πρόσβασης διακομιστή εξερχομένων",
|
||||
"IMAPSetupDialog_OutgoingMailServerPort": "Θύρα",
|
||||
"IMAPSetupDialog_OutgoingMailServerRequireAuthentication": "Ο διακομιστής εξερχομένων απαιτεί ταυτοποίηση",
|
||||
"IMAPSetupDialog_OutgoingMailServerUsername": "Όνομα χρήστη διακομιστή εξερχομένων",
|
||||
"IMAPSetupDialog_Password": "Κωδικός πρόσβασης",
|
||||
"IMAPSetupDialog_RequireSSLForIncomingMail": "Απαίτηση SSL για εισερχόμενα email",
|
||||
"IMAPSetupDialog_RequireSSLForOutgoingMail": "Απαίτηση SSL για εξερχόμενα email",
|
||||
"IMAPSetupDialog_Title": "Προηγμένη Ρύθμιση IMAP",
|
||||
"IMAPSetupDialog_UseSameConfig": "Χρησιμοποιήστε το ίδιο όνομα χρήστη και κωδικό πρόσβασης για την αποστολή email",
|
||||
"IMAPSetupDialog_Username": "Όνομα χρήστη",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Η Σύνδεση Απέτυχε",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "Αποτυχία σύνδεσης IMAP.",
|
||||
"ImageRenderingDisabled": "Η αποτύπωση εικόνων είναι απενεργοποιημένη για αυτό το μήνυμα.",
|
||||
"InfoBarAction_Enable": "Ενεργοποίηση",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "Αυτός ο φάκελος είναι απενεργοποιημένος για συγχρονισμό.",
|
||||
"InfoBarTitle_SynchronizationDisabledFolder": "Απενεργοποιημένος Φάκελος",
|
||||
"GeneralTitle_Error": "Σφάλμα",
|
||||
"GeneralTitle_Warning": "Προειδοποίηση",
|
||||
"GeneralTitle_Info": "Πληροφορίες",
|
||||
"Info_AccountCreatedMessage": "Ο {0} δημιουργήθηκε",
|
||||
"Info_AccountCreatedTitle": "Δημιουργία Λογαριασμού",
|
||||
"Info_AccountCreationFailedTitle": "Αποτυχία Δημιουργίας Λογαριασμού",
|
||||
"Info_AccountDeletedMessage": "Ο {0} διαγράφηκε επιτυχώς.",
|
||||
"Info_AccountDeletedTitle": "Ο Λογαριασμός Διαγράφηκε",
|
||||
"Info_AccountIssueFixFailedTitle": "Αποτυχία",
|
||||
"Info_AccountIssueFixSuccessMessage": "Επιδιορθώθηκαν όλα τα ζητήματα λογαριασμού.",
|
||||
"Info_AccountIssueFixSuccessTitle": "Επιτυχία",
|
||||
"Info_AttachmentOpenFailedMessage": "Αδυναμία ανοίγματος αυτού του συνημμένου.",
|
||||
"Info_AttachmentOpenFailedTitle": "Αποτυχία",
|
||||
"Info_AttachmentSaveFailedMessage": "Αδυναμία αποθήκευσης αυτού του συνημμένου.",
|
||||
"Info_AttachmentSaveFailedTitle": "Απέτυχε",
|
||||
"Info_AttachmentSaveSuccessMessage": "Το συνημμένο αποθηκεύτηκε.",
|
||||
"Info_AttachmentSaveSuccessTitle": "Το Συνημμένο Αποθηκεύτηκε",
|
||||
"Info_BackgroundExecutionDeniedMessage": "Η εκτέλεση στο παρασκήνιο για την εφαρμογή δεν επιτρέπεται. Αυτό μπορεί να επηρεάσει το συγχρονισμό στο παρασκήνιο και τις ζωντανές ειδοποιήσεις.",
|
||||
"Info_BackgroundExecutionDeniedTitle": "Άρνηση Εκτέλεσης Παρασκηνίου",
|
||||
"Info_BackgroundExecutionUnknownErrorMessage": "Παρουσιάστηκε άγνωστη εξαίρεση κατά την εγγραφή συγχρονισμού στο παρασκήνιο.",
|
||||
"Info_BackgroundExecutionUnknownErrorTitle": "Αποτυχία Εκτέλεσης Παρασκηνίου",
|
||||
"Info_ComposerMissingMIMEMessage": "Αδυναμία εντοπισμού του αρχείου MIME. Ο συγχρονισμός μπορεί να βοηθήσει.",
|
||||
"Info_ComposerMissingMIMETitle": "Απέτυχε",
|
||||
"Info_ContactExistsMessage": "Αυτή η επαφή είναι ήδη στη λίστα παραληπτών.",
|
||||
"Info_ContactExistsTitle": "Η Επαφή Υπάρχει",
|
||||
"Info_DraftFolderMissingMessage": "Λείπει ο φάκελος προχείρου για αυτόν τον λογαριασμό. Παρακαλώ ελέγξτε τις ρυθμίσεις του λογαριασμού σας.",
|
||||
"Info_DraftFolderMissingTitle": "Λείπει Φάκελος Προχείρου",
|
||||
"Info_FileLaunchFailedTitle": "Απέτυχε η εκκίνηση αρχείου",
|
||||
"Info_InvalidAddressMessage": "Η «{0}» δεν είναι έγκυρη διεύθυνση email.",
|
||||
"Info_InvalidAddressTitle": "Μη Έγκυρη Διεύθυνση",
|
||||
"Info_InvalidMoveTargetMessage": "Δεν μπορείτε να μετακινήσετε τα επιλεγμένα μηνύματα σε αυτόν το φάκελο.",
|
||||
"Info_InvalidMoveTargetTitle": "Μη Έγκυρος Προορισμός Μετακίνησης",
|
||||
"Info_LogsNotFoundMessage": "Δεν υπάρχουν αρχεία καταγραφής για κοινή χρήση.",
|
||||
"Info_LogsNotFoundTitle": "Δεν Βρέθηκαν Αρχεία Καταγραφής",
|
||||
"Info_LogsSavedMessage": "Το {0} αποθηκεύεται στον επιλεγμένο φάκελο.",
|
||||
"Info_LogsSavedTitle": "Αποθηκεύτηκε",
|
||||
"Info_MailRenderingFailedMessage": "Αυτό το μήνυμα είναι κατεστραμμένο ή δεν μπορεί να ανοιχτεί.\n{0}",
|
||||
"Info_MailRenderingFailedTitle": "Η Απόδοση Απέτυχε",
|
||||
"Info_MessageCorruptedMessage": "Αυτό το μήνυμα είναι κατεστραμμένο.",
|
||||
"Info_MessageCorruptedTitle": "Σφάλμα",
|
||||
"Info_MissingFolderMessage": "Το {0} δεν υπάρχει για αυτόν το λογαριασμό.",
|
||||
"Info_MissingFolderTitle": "Λείπει Φάκελος",
|
||||
"Info_PDFSaveSuccessTitle": "Επιτυχία",
|
||||
"Info_PDFSaveFailedTitle": "Αποτυχία αποθήκευσης αρχείου PDF",
|
||||
"Info_PDFSaveSuccessMessage": "Το αρχείο PDF έχει αποθηκευτεί στο {0}",
|
||||
"Info_PurchaseExistsMessage": "Φαίνεται ότι αυτό το προϊόν έχει ήδη αγοραστεί.",
|
||||
"Info_PurchaseExistsTitle": "Υπάρχον Προϊόν",
|
||||
"Info_PurchaseThankYouMessage": "Ευχαριστούμε",
|
||||
"Info_PurchaseThankYouTitle": "Η αγορά ήταν επιτυχής",
|
||||
"Info_RequestCreationFailedTitle": "Αποτυχία Δημιουργίας Αιτημάτων",
|
||||
"Info_ReviewNetworkErrorMessage": "Υπήρξε ένα πρόβλημα δικτύου με την αξιολόγησή σας.",
|
||||
"Info_ReviewNetworkErrorTitle": "Πρόβλημα Δικτύου",
|
||||
"Info_ReviewNewMessage": "Όλα τα σχόλια είναι ευπρόσδεκτα. Σας ευχαριστούμε για την κριτική!",
|
||||
"Info_ReviewSuccessTitle": "Ευχαριστούμε",
|
||||
"Info_ReviewUnknownErrorMessage": "Υπήρξε ένα άγνωστο ζήτημα με την κριτική σας. ({0})",
|
||||
"Info_ReviewUnknownErrorTitle": "Άγνωστο σφάλμα",
|
||||
"Info_ReviewUpdatedMessage": "Σας ευχαριστούμε για την ενημερωμένη αξιολόγηση.",
|
||||
"Info_SignatureDisabledMessage": "Απενεργοποιήθηκε η υπογραφή για αυτόν τον λογαριασμό",
|
||||
"Info_SignatureDisabledTitle": "Επιτυχία",
|
||||
"Info_SignatureSavedMessage": "Η νέα υπογραφή αποθηκεύτηκε",
|
||||
"Info_SignatureSavedTitle": "Επιτυχία",
|
||||
"Info_SyncCanceledMessage": "Ακυρώθηκε",
|
||||
"Info_SyncCanceledTitle": "Συγχρονισμός",
|
||||
"Info_SyncFailedTitle": "Ο συγχρονισμός Απέτυχε",
|
||||
"Info_UnsupportedFunctionalityDescription": "Αυτή η λειτουργία δεν έχει υλοποιηθεί ακόμα.",
|
||||
"Info_UnsupportedFunctionalityTitle": "Δεν υποστηρίζεται",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Μη Έγκυρο Uri Κατάργησης Εγγραφής",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Αυτός ο σύνδεσμος κατάργησης εγγραφής δεν είναι έγκυρος. Αποτυχία διαγραφής από τη λίστα.",
|
||||
"Info_UnsubscribeSuccessMessage": "Επιτυχής κατάργηση εγγραφής από το {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Αποτυχία κατάργησης εγγραφής",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Μέθοδος επαλήθευσης",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Ασφάλεια σύνδεσης",
|
||||
"ImapAuthenticationMethod_Auto": "Αυτόματο",
|
||||
"ImapAuthenticationMethod_CramMD5": "CRAM-MD5",
|
||||
"ImapAuthenticationMethod_DigestMD5": "DIGEST-MD5",
|
||||
"ImapAuthenticationMethod_None": "Χωρίς ταυτοποίηση",
|
||||
"ImapAuthenticationMethod_Plain": "Κανονικός κωδικός πρόσβασης",
|
||||
"ImapAuthenticationMethod_EncryptedPassword": "Κρυπτογραφημένος κωδικός πρόσβασης",
|
||||
"ImapAuthenticationMethod_Ntlm": "NTLM",
|
||||
"ImapConnectionSecurity_None": "Καμία",
|
||||
"ImapConnectionSecurity_SslTls": "SSL/TLS",
|
||||
"ImapConnectionSecurity_StartTls": "STARTTLS",
|
||||
"ImapConnectionSecurity_Auto": "Αυτόματο",
|
||||
"Justify": "Στοίχιση",
|
||||
"Left": "Αριστερά",
|
||||
"Link": "Σύνδεσμος",
|
||||
"LinkedAccountsCreatePolicyMessage": "πρέπει να έχετε τουλάχιστον 2 λογαριασμούς για να δημιουργήσετε σύνδεσμο\nο σύνδεσμος θα αφαιρεθεί κατά την αποθήκευση",
|
||||
"LinkedAccountsTitle": "Συνδεδεμένοι Λογαριασμοί",
|
||||
"MailOperation_AlwaysMoveFocused": "Πάντα Μετακίνηση στα Εστιασμένα",
|
||||
"MailOperation_AlwaysMoveOther": "Πάντα Μετακίνηση σε Άλλα",
|
||||
"MailOperation_Archive": "Αρχειοθέτηση",
|
||||
"MailOperation_ClearFlag": "Καθαρισμός σήμανσης",
|
||||
"MailOperation_DarkEditor": "Σκοτεινό",
|
||||
"MailOperation_Delete": "Διαγραφή",
|
||||
"MailOperation_ExportPDF": "Εξαγωγή σε PDF",
|
||||
"MailOperation_Find": "Εύρεση",
|
||||
"MailOperation_Forward": "Προώθηση",
|
||||
"MailOperation_Ignore": "Αγνόηση",
|
||||
"MailOperation_LightEditor": "Φωτεινό",
|
||||
"MailOperation_MarkAsJunk": "Επισήμανση ως ανεπιθύμητο",
|
||||
"MailOperation_MarkAsRead": "Επισήμανση ως αναγνωσμένο",
|
||||
"MailOperation_MarkAsUnread": "Επισήμανση ως μη αναγνωσμένο",
|
||||
"MailOperation_MarkNotJunk": "Επιήμανση ως Μη Ανεπιθύμητο",
|
||||
"MailOperation_Move": "Μετακίνηση",
|
||||
"MailOperation_MoveFocused": "Μετακίνηση σε Εστιασμένα",
|
||||
"MailOperation_MoveJunk": "Μετακίνηση στα Ανεπιθύμητα",
|
||||
"MailOperation_MoveOther": "Μετακίνηση σε Άλλα",
|
||||
"MailOperation_Navigate": "Πλοήγηση",
|
||||
"MailOperation_Print": "Εκτύπωση",
|
||||
"MailOperation_Reply": "Απάντηση",
|
||||
"MailOperation_ReplyAll": "Απάντηση σε όλους",
|
||||
"MailOperation_SaveAs": "Αποθήκευση ως",
|
||||
"MailOperation_SetFlag": "Ορισμός επισήμανσης",
|
||||
"MailOperation_Unarchive": "Αφαίρεση από το αρχείο",
|
||||
"MailOperation_Zoom": "Μεγέθυνση",
|
||||
"MailsSelected": "Επιλέχθηκαν {0} αντικείμενα/-ο",
|
||||
"MarkFlagUnflag": "Σήμανση ως με/χωρίς επισήμανση",
|
||||
"MarkReadUnread": "Σήμανση ως αναγνωσμένο/μη αναγνωσμένο",
|
||||
"MenuManageAccounts": "Διαχείριση Λογαριασμών",
|
||||
"MenuNewMail": "Νέα Αλληλογραφία",
|
||||
"MenuMergedAccountItemAccountsSuffix": " λογαριασμοί",
|
||||
"MenuRate": "Αξιολογήστε το Wino",
|
||||
"MenuSettings": "Ρυθμίσεις",
|
||||
"MergedAccountsAvailableAccountsTitle": "Διαθέσιμοι Λογαριασμοί",
|
||||
"More": "Περισσότερα",
|
||||
"MoveMailDialog_InvalidFolderMessage": "Το {0} δεν είναι έγκυρος φάκελος για αυτό το μήνυμα.",
|
||||
"MoveMailDialog_Title": "Επιλέξτε ένα φάκελο",
|
||||
"NewAccountDialog_AccountName": "Όνομα Λογαριασμού",
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Προσωπικός",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "πχ. Προσωπική Αλληλογραφία",
|
||||
"NewAccountDialog_Title": "Προσθήκη Νέου Λογαριασμού",
|
||||
"NoMailSelected": "Δεν επιλέχθηκε μήνυμα",
|
||||
"NoMessageCrieteria": "Κανένα μήνυμα δεν ταιριάζει με τα κριτήρια αναζήτησής σας",
|
||||
"NoMessageEmptyFolder": "Αυτός ο φάκελος είναι κενός",
|
||||
"Notifications_MultipleNotificationsMessage": "Έχετε {0} νέα μηνύματα",
|
||||
"Notifications_MultipleNotificationsTitle": "Νέα Μηνύματα",
|
||||
"Notifications_WinoUpdatedMessage": "Ρίξτε μια ματιά στη νέα έκδοση {0}",
|
||||
"Notifications_WinoUpdatedTitle": "Το Wino Mail έχει ενημερωθεί.",
|
||||
"Other": "Άλλα",
|
||||
"PaneLengthOption_Default": "Προεπιλογή",
|
||||
"PaneLengthOption_ExtraLarge": "Πολύ Μεγάλο",
|
||||
"PaneLengthOption_Large": "Μεγάλο",
|
||||
"PaneLengthOption_Medium": "Μεσαίο",
|
||||
"PaneLengthOption_Micro": "Μικροσκοπικό",
|
||||
"PaneLengthOption_Small": "Μικρό",
|
||||
"Photos": "Φωτογραφίες",
|
||||
"PreparingFoldersMessage": "Προετοιμασία φακέλων",
|
||||
"ProviderDetail_Gmail_Description": "Λογαριασμός Google",
|
||||
"ProviderDetail_IMAP_Description": "Προσαρμοσμένος διακομιστής IMAP/SMTP",
|
||||
"ProviderDetail_IMAP_Title": "Διακομιστής IMAP",
|
||||
"ProtocolLogAvailable_Message": "Τα αρχεία καταγραφής πρωτοκόλλου είναι διαθέσιμα για διαγνωστικά.",
|
||||
"Results": "Αποτελέσματα",
|
||||
"Right": "Δεξιά",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "ενημερωμένο",
|
||||
"SynchronizationFolderReport_Failed": "ο συγχρονισμός απέτυχε",
|
||||
"SearchBarPlaceholder": "Αναζήτηση",
|
||||
"SearchingIn": "Αναζήτηση σε",
|
||||
"SearchPivotName": "Αποτελέσματα",
|
||||
"SettingsAboutGithub_Description": "Μεταβείτε στο αποθετήριο GitHub για τον ανιχνευτή προβλημάτων.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Προσάρτηση μηνυμάτων στον φάκελο Απεσταλμένα",
|
||||
"SettingsAccountManagementAppendMessage_Description": "Δημιουργία αντιγράφου του μηνύματος στον φάκελο Απεσταλμένα μετά την αποστολή του προχείρου. Ενεργοποιήστε το αν δεν βλέπετε τα μηνύματά σας μετά την αποστολή τους, στο φάκελο Απεσταλμένα.",
|
||||
"SettingsEditLinkedInbox_Title": "Επεξεργασία Συνδεδεμένων Εισερχομένων",
|
||||
"SettingsEditLinkedInbox_Description": "Προσθήκη / κατάργηση λογαριασμών, μετονομασία ή διακοπή του συνδέσμου μεταξύ λογαριασμών.",
|
||||
"SettingsAboutVersion": "Έκδοση ",
|
||||
"SettingsAboutWinoDescription": "Ελαφρύ πρόγραμμα αλληλογραφίας για τις συσκευές Windows.",
|
||||
"SettingsAbout_Description": "Μάθετε περισσότερα για το Wino.",
|
||||
"SettingsAbout_Title": "Σχετικά",
|
||||
"SettingsAccentColor_Description": "Αλλαγή χρώματος έμφασης εφαρμογής",
|
||||
"SettingsAccentColor_Title": "Χρώμα Έμφασης",
|
||||
"SettingsAccentColor_UseWindowsAccentColor": "Χρήση χρώματος έμφασης των Windows",
|
||||
"SettingsAccountName_Description": "Αλλάξτε το όνομα του λογαριασμού.",
|
||||
"SettingsAccountName_Title": "Όνομα Λογαριασμού",
|
||||
"SettingsApplicationTheme_Description": "Εξατομικεύστε το Wino με διαφορετικά προσαρμοσμένα θέματα εφαρμογής για τα δικά σας γούστα.",
|
||||
"SettingsApplicationTheme_Title": "Θέμα Εφαρμογής",
|
||||
"SettingsAvailableThemes_Description": "Επιλέξτε ένα θέμα από τη δική σας συλλογή Wino που σάς αρέσει ή εφαρμόστε τα δικά σας θέματα.",
|
||||
"SettingsAvailableThemes_Title": "Διαθέσιμα Θέματα",
|
||||
"SettingsAutoSelectNextItem_Title": "Αυτόματη επιλογή επόμενου αντικειμένου",
|
||||
"SettingsAutoSelectNextItem_Description": "Επιλέξτε το επόμενο στοιχείο μετά τη διαγραφή ή τη μετακίνηση ενός μηνύματος.",
|
||||
"SettingsCustomTheme_Description": "Δημιουργήστε το δικό σας προσαρμοσμένο θέμα με προσαρμοσμένη ταπετσαρία και χρώμα έμφασης.",
|
||||
"SettingsCustomTheme_Title": "Προσαρμοσμένο Θέμα",
|
||||
"SettingsConfigureSpecialFolders_Title": "Διαμόρφωση Φακέλων Συστήματος",
|
||||
"SettingsConfigureSpecialFolders_Description": "Καθορίστε φακέλους με ειδικές λειτουργίες. Φάκελοι όπως Αρχείο, Εισερχόμενα και Πρόχειρα είναι απαραίτητοι για τη σωστή λειτουργία του Wino.",
|
||||
"SettingConfigureSpecialFolders_Button": "Διαμόρφωση",
|
||||
"Error_FailedToSetupSystemFolders_Title": "Αποτυχία ρύθμισης φακέλων συστήματος",
|
||||
"SettingsDeleteAccount_Description": "Διαγραφή όλων των e-mails και διαπιστευτηρίων που σχετίζονται με αυτόν τον λογαριασμό.",
|
||||
"SettingsDeleteAccount_Title": "Διαγραφή αυτού του λογαριασμού",
|
||||
"SettingsDeleteProtection_Description": "Πρέπει να Wino ζητήσει την επιβεβαίωση κάθε φορά που προσπαθείτε να διαγράψετε μόνιμα ένα μήνυμα χρησιμοποιώντας το Shift + Del;",
|
||||
"SettingsDeleteProtection_Title": "Προστασία Μόνιμης Διαγραφής",
|
||||
"SettingsDiagnostics_Description": "Για προγραμματιστές",
|
||||
"SettingsDiagnostics_Title": "Διαγνωστικά",
|
||||
"SettingsDiscord_Description": "Λήψη τακτικών ενημερώσεων για την ανάπτυξη, συμμετοχή σε συζητήσεις προόδου και παροχή σχολίων.",
|
||||
"SettingsDiscord_Title": "Κανάλι Discord",
|
||||
"SettingsElementThemeSelectionDisabled": "Η επιλογή θέματος βάσει στοιχείου είναι απενεργοποιημένη όταν το θέμα της εφαρμογής είναι άλλο εκτός του Προεπιλεγμένου.",
|
||||
"SettingsElementTheme_Description": "Επιλέξτε ένα θέμα των Windows για Wino",
|
||||
"SettingsElementTheme_Title": "Θέμα Στοιχείου",
|
||||
"SettingsEnableHoverActions_Title": "Ενεργοποίηση ενεργειών αιώρησης",
|
||||
"SettingsEnableIMAPLogs_Description": "Ενεργοποιήστε το για την παροχή λεπτομερειών σχετικά με προβλήματα με τη σύνδεση IMAP που είχατε κατά τη ρύθμιση του διακομιστή IMAP.",
|
||||
"SettingsEnableIMAPLogs_Title": "Ενεργοποίηση Αρχείων Καταγραφής Πρωτοκόλλου IMAP",
|
||||
"SettingsEnableLogs_Description": "Μπορεί να χρειαστώ καταγραφές για να εντοπίσω προβλήματα που έχετε ανοίξει στο GitHub. Κανένα από τα αρχεία καταγραφής δεν θα εκθέσει τα διαπιστευτήριά σας ή ευαίσθητες πληροφορίες στο κοινό.",
|
||||
"SettingsEnableLogs_Title": "Ενεργοποίηση Καταγραφών",
|
||||
"SettingsEnableSignature": "Ενεργοποίηση Υπογραφής",
|
||||
"SettingsExpandOnStartup_Description": "Ορίστε αν ο Wino θα πρέπει να επεκτείνει τους φακέλους αυτού του λογαριασμού κατά την εκκίνηση.",
|
||||
"SettingsExpandOnStartup_Title": "Ανάπτυξη Μενού κατά την Εκκίνηση",
|
||||
"SettingsExternalContent_Description": "Διαχείριση ρυθμίσεων εξωτερικού περιεχομένου κατά την απόδοση μηνυμάτων.",
|
||||
"SettingsExternalContent_Title": "Εξωτερικό Περιεχόμενο",
|
||||
"SettingsFocusedInbox_Description": "Ορίστε αν τα Εισερχόμενα πρέπει να χωριστούν σε δύο, ως Εστιασμένα - Άλλα.",
|
||||
"SettingsFocusedInbox_Title": "Εστιασμένα Εισερχόμενα",
|
||||
"SettingsFolderSync_Description": "Ενεργοποίηση ή απενεργοποίηση συγκεκριμένων φακέλων για συγχρονισμό.",
|
||||
"SettingsFolderSync_Title": "Συγχρονισμός Φακέλου",
|
||||
"SettingsFolderOptions_Title": "Διαμόρφωση Φακέλου",
|
||||
"SettingsFolderOptions_Description": "Αλλάξτε μεμονωμένες ρυθμίσεις φακέλου, όπως ενεργοποίηση/απενεργοποίηση συγχρονισμού ή εμφάνιση/απόκρυψη σήματος ανάγνωσης.",
|
||||
"SettingsHoverActionCenter": "Κεντρική Ενέργεια",
|
||||
"SettingsHoverActionLeft": "Αριστερή Ενέργεια",
|
||||
"SettingsHoverActionRight": "Δεξιά Ενέργεια",
|
||||
"SettingsHoverActions_Description": "Επιλέξτε 3 ενέργειες για να εμφανίσετε όταν τοποθετείτε το ποντίκι πάνω από τα μηνύματα.",
|
||||
"SettingsHoverActions_Title": "Ενέργειες Αιώρησης",
|
||||
"SettingsLanguage_Description": "Αλλαγή γλώσσας εμφάνισης για Wino.",
|
||||
"SettingsLanguage_Title": "Γλώσσα εμφάνισης",
|
||||
"SettingsLanguageTime_Title": "Γλώσσα & Ώρα",
|
||||
"SettingsLanguageTime_Description": "Εμφάνιση γλώσσας Wino, προτιμώμενη μορφή ώρας.",
|
||||
"CategoriesFolderNameOverride": "Κατηγορίες",
|
||||
"MoreFolderNameOverride": "Περισσότερα",
|
||||
"SettingsOptions_Title": "Ρυθμίσεις",
|
||||
"SettingsLinkAccounts_Description": "Συγχώνευση πολλαπλών λογαριασμών σε έναν. Δείτε τα μηνύματα σε ένα φάκελο Εισερχόμενα μαζί.",
|
||||
"SettingsLinkAccounts_Title": "Δημιουργία Συνδεδεμένων Λογαριασμών",
|
||||
"SettingsLinkedAccountsSave_Description": "Τροποποίηση του τρέχοντος συνδέσμου με τους νέους λογαριασμούς.",
|
||||
"SettingsLinkedAccountsSave_Title": "Αποθήκευση Αλλαγών",
|
||||
"SettingsLoadImages_Title": "Αυτόματη φόρτωση εικόνων",
|
||||
"SettingsLoadStyles_Title": "Αυτόματη φόρτωση στυλ",
|
||||
"SettingsMailSpacing_Description": "Προσαρμόστε τις αποστάσεις για τη λίστα μηνυμάτων.",
|
||||
"SettingsMailSpacing_Title": "Αποστάσεις Αλληλογραφίας",
|
||||
"SettingsFolderMenuStyle_Title": "Δημιουργία Εμφωλευμένων Φακέλων",
|
||||
"SettingsFolderMenuStyle_Description": "Επιλέξτε αν οι φάκελοι λογαριασμού θα πρέπει να είναι εμφωλευμένοι μέσα σε ένα στοιχείο μενού του λογαριασμού ή όχι. Ενεργοποιήστε αυτήν την επιλογή αν σας αρέσει το παλιό σύστημα μενού στο Windows Mail",
|
||||
"SettingsManageAccountSettings_Description": "Ειδοποιήσεις, υπογραφές, συγχρονισμός και άλλες ρυθμίσεις ανά λογαριασμό.",
|
||||
"SettingsManageAccountSettings_Title": "Ρυθμίσεις Διαχείρισης Λογαριασμού",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Αναδιάταξη Λογαριασμών",
|
||||
"SettingsReorderAccounts_Description": "Αλλάξτε τη σειρά των λογαριασμών στη λίστα λογαριασμών.",
|
||||
"SettingsManageLink_Description": "Μετακίνηση αντικειμένων για προσθήκη νέου συνδέσμου ή κατάργηση υπάρχοντος συνδέσμου.",
|
||||
"SettingsManageLink_Title": "Διαχείριση Συνδέσμου",
|
||||
"SettingsMarkAsRead_Description": "Αλλάξτε τι πρέπει να συμβεί στο επιλεγμένο αντικείμενο.",
|
||||
"SettingsMarkAsRead_DontChange": "Να μην επισημαίνεται αυτόματα το στοιχείο ως αναγνωσμένο",
|
||||
"SettingsMarkAsRead_SecondsToWait": "Δευτερόλεπτα προς αναμονή: ",
|
||||
"SettingsMarkAsRead_Timer": "Όταν προβάλλεται στο παράθυρο ανάγνωσης",
|
||||
"SettingsMarkAsRead_Title": "Σήμανση αντικειμένου ως αναγνωσμένο",
|
||||
"SettingsMarkAsRead_WhenSelected": "Όταν επιλεγεί",
|
||||
"SettingsMessageList_Description": "Αλλάξτε τον τρόπο οργάνωσης των μηνυμάτων σας στη λίστα αλληλογραφίας.",
|
||||
"SettingsMessageList_Title": "Λίστα Μηνυμάτων",
|
||||
"SettingsNoAccountSetupMessage": "Δεν έχετε ρυθμίσει κανέναν λογαριασμό ακόμα.",
|
||||
"SettingsNotifications_Description": "Ενεργοποίηση ή απενεργοποίηση ειδοποιήσεων για αυτόν τον λογαριασμό.",
|
||||
"SettingsNotifications_Title": "Ειδοποιήσεις",
|
||||
"SettingsPaneLength_Description": "Αλλαγή του πλάτους της λίστας αλληλογραφίας.",
|
||||
"SettingsPaneLength_Title": "Μήκος Παραθύρου Λίστας Αλληλογραφίας",
|
||||
"SettingsPaypal_Description": "Δείξτε πολύ περισσότερη αγάπη ❤️ Όλες οι δωρεές εκτιμούνται.",
|
||||
"SettingsPaypal_Title": "Δωρεά μέσω PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Συμπαγής Λειτουργία",
|
||||
"SettingsPersonalizationMailDisplayMediumMode": "Μεσαία Λειτουργία",
|
||||
"SettingsPersonalizationMailDisplaySpaciousMode": "Ευρύχωρη Λειτουργία",
|
||||
"SettingsPersonalization_Description": "Αλλάξτε την εμφάνιση του Wino όπως σας αρέσει.",
|
||||
"SettingsPersonalization_Title": "Εξατομίκευση",
|
||||
"SettingsPrivacyPolicy_Description": "Εξέταση πολιτικής απορρήτου.",
|
||||
"SettingsPrivacyPolicy_Title": "Πολιτική Απορρήτου",
|
||||
"SettingsReader_Title": "Αναγνώστης",
|
||||
"SettingsComposer_Title": "Συνθέτης",
|
||||
"SettingsReadComposePane_Description": "Γραμματοσειρές, εξωτερικό περιεχόμενο.",
|
||||
"SettingsReadComposePane_Title": "Αναγνώστης & Συνθέτης",
|
||||
"SettingsReaderFont_Title": "Προεπιλεγμένη Γραμματοσειρά Αναγνώστη",
|
||||
"SettingsReaderFontFamily_Description": "Αλλάξτε την προεπιλεγμένη οικογένεια γραμματοσειρών και το μέγεθος γραμματοσειράς για την ανάγνωση μηνυμάτων.",
|
||||
"SettingsFontFamily_Title": "Γραμματοσειρά",
|
||||
"SettingsFontSize_Title": "Μέγεθος γραμματοσειράς",
|
||||
"SettingsFontPreview_Title": "Προεπισκόπηση",
|
||||
"SettingsComposerFont_Title": "Προεπιλεγμένη Γραμματοσειρά Συντάκτη",
|
||||
"SettingsComposerFontFamily_Description": "Αλλάξτε την προεπιλεγμένη οικογένεια γραμματοσειρών και το μέγεθος γραμματοσειράς για τη σύνταξη μηνυμάτων.",
|
||||
"SettingsRenameMergeAccount_Description": "Αλλάξτε το εμφανιζόμενο όνομα των συνδεδεμένων λογαριασμών.",
|
||||
"SettingsRenameMergeAccount_Title": "Μετονομασία",
|
||||
"SettingsSemanticZoom_Description": "Αυτό θα σας επιτρέψει να κάνετε κλικ στις κεφαλίδες στη λίστα μηνυμάτων και να μεταβείτε σε συγκεκριμένη ημερομηνία",
|
||||
"SettingsSemanticZoom_Title": "Σημασιολογική Μεγέθυνση για Κεφαλίδες Ημερομηνίας",
|
||||
"SettingsShowPreviewText_Description": "Απόκρυψη/εμφάνιση κειμένου προεπισκόπησης.",
|
||||
"SettingsShowPreviewText_Title": "Εμφάνιση Κειμένου Προεπισκόπησης",
|
||||
"SettingsShowSenderPictures_Description": "Απόκρυψη/εμφάνιση της μικρογραφίας του αποστολέα.",
|
||||
"SettingsShowSenderPictures_Title": "Εμφάνιση Avatars Αποστολέα",
|
||||
"SettingsPrefer24HourClock_Title": "Εμφάνιση μορφής ρολογιού σε 24ώρο",
|
||||
"SettingsPrefer24HourClock_Description": "Οι χρόνοι άφιξης της αλληλογραφίας θα εμφανίζονται σε μορφή 24 ωρών αντί για 12 (ΠΜ/ΜΜ)",
|
||||
"SettingsSignature_Description": "Διαχείριση υπογραφών λογαριασμού",
|
||||
"SettingsSignature_Title": "Υπογραφή",
|
||||
"SettingsStartupItem_Description": "Αντικείμενο κύριου λογαριασμού για φόρτωση Εισερχομένων κατά την εκκίνηση.",
|
||||
"SettingsStartupItem_Title": "Αντικείμενο εκκίνησης",
|
||||
"SettingsStore_Description": "Δείξτε λίγη αγάπη ❤️",
|
||||
"SettingsStore_Title": "Αξιολόγηση στο Κατάστημα",
|
||||
"SettingsThreads_Description": "Οργάνωση μηνυμάτων σε νήματα συνομιλίας.",
|
||||
"SettingsThreads_Title": "Νηματοποίηση Συζήτησης",
|
||||
"SettingsUnlinkAccounts_Description": "Αφαιρέστε τη σύνδεση μεταξύ των λογαριασμών. Αυτό δεν θα διαγράψει τους λογαριασμούς σας.",
|
||||
"SettingsUnlinkAccounts_Title": "Αποδέσμευση Λογαριασμών",
|
||||
"SortingOption_Date": "κατά ημερομηνία",
|
||||
"SortingOption_Name": "κατ' όνομα",
|
||||
"StoreRatingDialog_MessageFirstLine": "Όλες οι αξιολογήσεις εκτιμώνται και θα κάνουν το Wino πολύ καλύτερο στο μέλλον. Θα θέλατε να αξιολογήσετε το Wino στο Microsoft Store;",
|
||||
"StoreRatingDialog_MessageSecondLine": "Θα θέλατε να αξιολογήσετε το Wino Mail στο Microsoft Store;",
|
||||
"StoreRatingDialog_Title": "Απολαμβάνετε το Wino;",
|
||||
"SystemFolderConfigDialog_ArchiveFolderDescription": "Τα αρχειοθετημένα μηνύματα θα μετακινηθούν εδώ.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderHeader": "Φάκελος Αρχειοθέτηση",
|
||||
"SystemFolderConfigDialog_DeletedFolderDescription": "Τα διαγραμμένα μηνύματα θα μετακινηθούν εδώ.",
|
||||
"SystemFolderConfigDialog_DeletedFolderHeader": "Φάκελος Διαγραμμένα",
|
||||
"SystemFolderConfigDialog_DraftFolderDescription": "Τα νέα μηνύματα/απαντήσεις θα δημιουργηθούν εδώ.",
|
||||
"SystemFolderConfigDialog_DraftFolderHeader": "Φάκελος Πρόχειρα",
|
||||
"SystemFolderConfigDialog_JunkFolderDescription": "Όλα τα ανεπιθύμητα μηνύματα θα είναι εδώ.",
|
||||
"SystemFolderConfigDialog_JunkFolderHeader": "Φάκελος Ανεπιθύμητα",
|
||||
"SystemFolderConfigDialog_MessageFirstLine": "Αυτός ο διακομιστής IMAP δεν υποστηρίζει την επέκταση SPECIAL-USE για αυτό και το Wino δεν μπόρεσε να ρυθμίσει σωστά τους φακέλους συστημάτων.",
|
||||
"SystemFolderConfigDialog_MessageSecondLine": "Παρακαλώ επιλέξτε τους κατάλληλους φακέλους για συγκεκριμένες λειτουργίες.",
|
||||
"SystemFolderConfigDialog_SentFolderDescription": "Ο φάκελος που θα αποθηκευτούν τα απεσταλμένα μηνύματα.",
|
||||
"SystemFolderConfigDialog_SentFolderHeader": "Φάκελος Απεσταλμένα",
|
||||
"SystemFolderConfigDialog_Title": "Διαμόρφωση Φακέλων Συστήματος",
|
||||
"SystemFolderConfigDialogValidation_InboxSelected": "Δεν μπορείτε να αντιστοιχίσετε τον φάκελο Εισερχομένων σε οποιονδήποτε άλλο φάκελο συστήματος.",
|
||||
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Μερικοί από τους φακέλους του συστήματος χρησιμοποιούνται περισσότερες από μία φορές στη διαμόρφωση.",
|
||||
"SystemFolderConfigSetupSuccess_Title": "Ρύθμιση Φακέλων Συστήματος",
|
||||
"SystemFolderConfigSetupSuccess_Message": "Οι φάκελοι συστήματος έχουν ρυθμιστεί επιτυχώς.",
|
||||
"TestingImapConnectionMessage": "Έλεγχος σύνδεσης διακομιστή...",
|
||||
"Today": "Σήμερα",
|
||||
"UnknownAddress": "άγνωστη διεύθυνση",
|
||||
"UnknownDateHeader": "Άγνωστη Ημερομηνία",
|
||||
"UnknownGroupAddress": "άγνωστη διεύθυνση ομάδας αλληλογραφίας",
|
||||
"UnknownSender": "Άγνωστος Αποστολέας",
|
||||
"Unsubscribe": "Κατάργηση εγγραφής",
|
||||
"ViewContactDetails": "Προβολή Λεπτομερειών",
|
||||
"WinoUpgradeDescription": "Το Wino προσφέρει 3 λογαριασμούς για να ξεκινήσετε δωρεάν. Εάν χρειάζεστε περισσότερους από 3, παρακαλώ αναβαθμίστε",
|
||||
"WinoUpgradeMessage": "Αναβάθμιση σε Απεριόριστους Λογαριασμούς",
|
||||
"WinoUpgradeRemainingAccountsMessage": "Χρησιμοποιούνται {0} από τους {1} δωρεάν λογαριασμούς.",
|
||||
"Yesterday": "Χθες",
|
||||
"SignatureEditorDialog_Title": "Συντάκτης Υπογραφής",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Ονομάστε την υπογραφή σας",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Όνομα υπογραφής",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Τρέχον όνομα υπογραφής: {0}",
|
||||
"SignatureDeleteDialog_Title": "Διαγραφή υπογραφής",
|
||||
"SignatureDeleteDialog_Message": "Σίγουρα θέλετε να διαγράψετε την υπογραφή \"{0}\";",
|
||||
"SettingsSignature_ForNewMessages_Title": "Για Νέα Μηνύματα",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "Για Απαντήσεις/Προώθηση",
|
||||
"SettingsSignature_SignatureDefaults": "Προεπιλογές υπογραφής",
|
||||
"SettingsSignature_Signatures": "Υπογραφές",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Προσθήκη προσαρμοσμένης υπογραφής",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Προσθήκη υπογραφής",
|
||||
"SettingsSignature_EditSignature_Title": "Επεξεργασία υπογραφής",
|
||||
"SettingsSignature_DeleteSignature_Title": "Διαγραφή υπογραφής",
|
||||
"SettingsSignature_NoneSignatureName": "Καμία",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
}
|
||||
@@ -3,9 +3,12 @@
|
||||
"AccountCreationDialog_Initializing": "initializing",
|
||||
"AccountCreationDialog_PreparingFolders": "We are getting folder information at the moment.",
|
||||
"AccountCreationDialog_SigninIn": "Account information is being saved.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Account Name",
|
||||
"AccountEditDialog_Title": "Edit Account",
|
||||
"AccountPickerDialog_Title": "Pick an account",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
@@ -19,13 +22,17 @@
|
||||
"BasicIMAPSetupDialog_Password": "Password",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP Account",
|
||||
"Buttons_AddAccount": "Add Account",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Apply Theme",
|
||||
"Buttons_Browse": "Browse",
|
||||
"Buttons_Cancel": "Cancel",
|
||||
"Buttons_Close": "Close",
|
||||
"Buttons_Create": "Create",
|
||||
"Buttons_CreateAccount": "Create Account",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Delete": "Delete",
|
||||
"Buttons_Edit": "Edit",
|
||||
"Buttons_Discard": "Discard",
|
||||
"Buttons_EnableImageRendering": "Enable",
|
||||
"Buttons_No": "No",
|
||||
@@ -36,7 +43,9 @@
|
||||
"Buttons_SaveConfiguration": "Save Configuration",
|
||||
"Buttons_Share": "Share",
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
@@ -46,6 +55,9 @@
|
||||
"ClipboardTextCopied_Title": "Copied",
|
||||
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
|
||||
"ComposerToPlaceholder": "click enter to input addresses",
|
||||
"ComposerAttachmentsDropZone_Message": "Drop your files here",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Attach",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Accent color",
|
||||
"CustomThemeBuilder_PickColor": "Pick",
|
||||
@@ -56,6 +68,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Set custom wallpaper",
|
||||
"DialogMessage_AccountLimitMessage": "You have reached the account creation limit.\nWould you like to purchase 'Unlimited Account' add-on to continue?",
|
||||
"DialogMessage_AccountLimitTitle": "Account Limit Reached",
|
||||
"DialogMessage_AliasNotSelectedTitle": "Missing Alias",
|
||||
"DialogMessage_AliasNotSelectedMessage": "You must select an alias before sending a message.",
|
||||
"DialogMessage_AliasExistsTitle": "Existing Alias",
|
||||
"DialogMessage_AliasExistsMessage": "This alias is already in use.",
|
||||
"DialogMessage_InvalidAliasTitle": "Invalid Alias",
|
||||
"DialogMessage_InvalidAliasMessage": "This alias is not valid. Make sure all addresses of the alias are valid e-mail addresses.",
|
||||
"DialogMessage_CantDeleteRootAliasTitle": "Can't Delete Alias",
|
||||
"DialogMessage_CantDeleteRootAliasMessage": "Root alias can't be deleted. This is your main identity associated with your account setup.",
|
||||
"DialogMessage_AliasCreatedTitle": "Created New Alias",
|
||||
"DialogMessage_AliasCreatedMessage": "New alias is succesfully created.",
|
||||
"DialogMessage_CleanupFolderMessage": "Do you want to permanently delete all the mails in this folder?",
|
||||
"DialogMessage_CleanupFolderTitle": "Cleanup Folder",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Message has no recipient.",
|
||||
@@ -74,27 +96,48 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
|
||||
"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}.",
|
||||
"Dialog_DontAskAgain": "Don't ask again",
|
||||
"CreateAccountAliasDialog_Title": "Create Account Alias",
|
||||
"CreateAccountAliasDialog_Description": "Make sure your outgoing server allows sending mails from this alias.",
|
||||
"CreateAccountAliasDialog_AliasAddress": "Address",
|
||||
"CreateAccountAliasDialog_AliasAddressPlaceholder": "eg. support@mydomain.com",
|
||||
"CreateAccountAliasDialog_ReplyToAddress": "Reply-To Address",
|
||||
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "admin@mydomain.com",
|
||||
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
|
||||
"DiscordChannelDisclaimerTitle": "Important Discord Information",
|
||||
"Draft": "Draft",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Draw",
|
||||
"EditorToolbarOption_Format": "Format",
|
||||
"EditorToolbarOption_Insert": "Insert",
|
||||
"EditorToolbarOption_None": "None",
|
||||
"EditorToolbarOption_Options": "Options",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"ElementTheme_Dark": "Dark mode",
|
||||
"ElementTheme_Default": "Use system setting",
|
||||
"ElementTheme_Light": "Light mode",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
|
||||
"Exception_AuthenticationCanceled": "Authentication canceled",
|
||||
"Exception_CustomThemeExists": "This theme already exists.",
|
||||
"Exception_CustomThemeMissingName": "You must provide a name.",
|
||||
"Exception_CustomThemeMissingWallpaper": "You must provide a custom background image.",
|
||||
"Exception_FailedToSynchronizeFolders": "Failed to synchronize folders",
|
||||
"Exception_FailedToSynchronizeAliases": "Failed to synchronize aliases",
|
||||
"Exception_MissingAlias": "Primary alias does not exist for this account. Creating draft failed.",
|
||||
"Exception_FailedToSynchronizeProfileInformation": "Failed to synchronize profile information",
|
||||
"Exception_GoogleAuthCallbackNull": "Callback uri is null on activation.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Corrupted authorization response.",
|
||||
"Exception_GoogleAuthError": "OAuth authorization error: {0}",
|
||||
@@ -116,6 +159,7 @@
|
||||
"FilteringOption_All": "All",
|
||||
"FilteringOption_Flagged": "Flagged",
|
||||
"FilteringOption_Unread": "Unread",
|
||||
"FilteringOption_Files": "Has files",
|
||||
"Focused": "Focused",
|
||||
"FolderOperation_CreateSubFolder": "Create sub folder",
|
||||
"FolderOperation_Delete": "Delete",
|
||||
@@ -158,6 +202,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
|
||||
"IMAPSetupDialog_Username": "Username",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
|
||||
"InfoBarAction_Enable": "Enable",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
|
||||
@@ -230,6 +276,10 @@
|
||||
"Info_UnsupportedFunctionalityTitle": "Unsupported",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
|
||||
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
|
||||
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
|
||||
"Info_CantDeletePrimaryAliasMessage": "Primary alias can't be deleted. Please change your alias before deleting this one",
|
||||
"Info_MailListSizeResetSuccessMessage": "The Mail List size has been reset.",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -291,9 +341,9 @@
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Personal",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
|
||||
"NewAccountDialog_Title": "Add New Account",
|
||||
"NoMailSelected": "no message selected",
|
||||
"NoMessageCrieteria": "no messages match your search criteria.",
|
||||
"NoMessageEmptyFolder": "this folder is empty.",
|
||||
"NoMailSelected": "No message selected",
|
||||
"NoMessageCrieteria": "No messages match your search criteria",
|
||||
"NoMessageEmptyFolder": "This folder is empty",
|
||||
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
|
||||
"Notifications_MultipleNotificationsTitle": "New Mails",
|
||||
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
|
||||
@@ -310,12 +360,15 @@
|
||||
"ProviderDetail_Gmail_Description": "Google Account",
|
||||
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP Server",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"Results": "Results",
|
||||
"Right": "Right",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"SynchronizationFolderReport_Success": "up to date",
|
||||
"SynchronizationFolderReport_Failed": "synchronization is failed",
|
||||
"SearchBarPlaceholder": "search",
|
||||
"SearchingIn": "searching in",
|
||||
"SearchBarPlaceholder": "Search",
|
||||
"SearchingIn": "Searching in",
|
||||
"SearchPivotName": "Results",
|
||||
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
|
||||
@@ -370,6 +423,8 @@
|
||||
"SettingsFolderSync_Title": "Folder Synchronization",
|
||||
"SettingsFolderOptions_Title": "Folder Configuration",
|
||||
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Center Action",
|
||||
"SettingsHoverActionLeft": "Left Action",
|
||||
"SettingsHoverActionRight": "Right Action",
|
||||
@@ -377,7 +432,14 @@
|
||||
"SettingsHoverActions_Title": "Hover Actions",
|
||||
"SettingsLanguage_Description": "Change display language for Wino.",
|
||||
"SettingsLanguage_Title": "Display Language",
|
||||
"SettingsLanguageTime_Title": "Language & Time",
|
||||
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
|
||||
"CategoriesFolderNameOverride": "Categories",
|
||||
"AccountAlias_Column_Verified": "Verified",
|
||||
"AccountAlias_Column_Alias": "Alias",
|
||||
"AccountAlias_Column_IsPrimaryAlias": "Primary",
|
||||
"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.",
|
||||
"MoreFolderNameOverride": "More",
|
||||
"SettingsOptions_Title": "Settings",
|
||||
"SettingsLinkAccounts_Description": "Merge multiple accounts into one. See mails from one Inbox together.",
|
||||
@@ -392,6 +454,21 @@
|
||||
"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",
|
||||
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
|
||||
"SettingsManageAccountSettings_Title": "Manage Account Settings",
|
||||
"SettingsAppPreferences_Title": "App Preferences",
|
||||
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
|
||||
"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_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
|
||||
"SettingsReorderAccounts_Title": "Reorder Accounts",
|
||||
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
|
||||
"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.",
|
||||
@@ -405,8 +482,8 @@
|
||||
"SettingsNoAccountSetupMessage": "You didn't setup any accounts yet.",
|
||||
"SettingsNotifications_Description": "Turn on or off notifications for this account.",
|
||||
"SettingsNotifications_Title": "Notifications",
|
||||
"SettingsPaneLength_Description": "Change the width of the mail list.",
|
||||
"SettingsPaneLength_Title": "Mail List Pane Length",
|
||||
"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",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Compact Mode",
|
||||
@@ -416,8 +493,10 @@
|
||||
"SettingsPersonalization_Title": "Personalization",
|
||||
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
|
||||
"SettingsPrivacyPolicy_Title": "Privacy Policy",
|
||||
"SettingsReadingPane_Description": "Mail rendering options.",
|
||||
"SettingsReadingPane_Title": "Reading Pane",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReaderFont_Title": "Default Reader Font",
|
||||
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
|
||||
"SettingsFontFamily_Title": "Font Family",
|
||||
@@ -435,7 +514,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
|
||||
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
|
||||
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
|
||||
"SettingsSignature_Description": "Edit or remove account signature",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Title": "Signature",
|
||||
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
|
||||
"SettingsStartupItem_Title": "Startup Item",
|
||||
@@ -478,5 +557,31 @@
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Signature Editor",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
|
||||
"SignatureDeleteDialog_Title": "Delete signature",
|
||||
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
|
||||
"SettingsSignature_ForNewMessages_Title": "For New Messages",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
|
||||
"SettingsSignature_SignatureDefaults": "Signature defaults",
|
||||
"SettingsSignature_Signatures": "Signatures",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Add signature",
|
||||
"SettingsSignature_EditSignature_Title": "Edit signature",
|
||||
"SettingsSignature_DeleteSignature_Title": "Delete signature",
|
||||
"SettingsSignature_NoneSignatureName": "None",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
|
||||
"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_Invisible_Title": "Run in the background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
|
||||
"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.",
|
||||
"TitleBarServerDisconnectedButton_Title": "no connection",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnect",
|
||||
"TitleBarServerReconnectingButton_Title": "connecting"
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user