Compare commits
165 Commits
feature/Im
...
v1.8.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24c8cfd402 | ||
|
|
8257b0b582 | ||
|
|
e612f2c281 | ||
|
|
155df59b1d | ||
|
|
6efab9f386 | ||
|
|
422105a507 | ||
|
|
d58438ab1d | ||
|
|
209aa1a89f | ||
|
|
07ac81583e | ||
|
|
ee6249bb17 | ||
|
|
b8ca3f8604 | ||
|
|
85b5469d96 | ||
|
|
d3ddf7b191 | ||
|
|
ebf196ec73 | ||
|
|
85c3833452 | ||
|
|
8fb4735fc2 | ||
|
|
6bb09f10d2 | ||
|
|
a4ff67e8f4 | ||
|
|
b9a1756f90 | ||
|
|
72ff8e67ed | ||
|
|
d7006365eb | ||
|
|
86ef78b296 | ||
|
|
0d84e409c5 | ||
|
|
17c7b33167 | ||
|
|
856e1613a0 | ||
|
|
8db34289a7 | ||
|
|
3016f70349 | ||
|
|
bdf212fdb3 | ||
|
|
c6216f54f8 | ||
|
|
945c747e3e | ||
|
|
552fca8df7 | ||
|
|
4dac160619 | ||
|
|
fc0e746e1b | ||
|
|
8374b5fc0c | ||
|
|
52923ed35b | ||
|
|
f002ccfa3a | ||
|
|
b64cc44531 | ||
|
|
1b51982551 | ||
|
|
f4bbf6eb73 | ||
|
|
10c94efa57 | ||
|
|
c84316e974 | ||
|
|
7e4d1fbf49 | ||
|
|
31c7c8b46f | ||
|
|
8cdb6646c4 | ||
|
|
43a51e5f2f | ||
|
|
d0b54ea44b | ||
|
|
c8fce82dc1 | ||
|
|
3ffccaa7e5 | ||
|
|
3f7e7a1474 | ||
|
|
d30c15464b | ||
|
|
2a1f748469 | ||
|
|
74b429b1bf | ||
|
|
7afe1b517c | ||
|
|
fcdcf5692f | ||
|
|
735baa67ed | ||
|
|
ac00caf83e | ||
|
|
2ccda353e9 | ||
|
|
4257ca54b7 | ||
|
|
20dd2ef98d | ||
|
|
8be52c9ddd | ||
|
|
3bea6619fa | ||
|
|
0e5fb11c52 | ||
|
|
fc47f7701d | ||
|
|
3e4ccf8de4 | ||
|
|
8abb3c709b | ||
|
|
5263900620 | ||
|
|
54ee9e5072 | ||
|
|
20f4857405 | ||
|
|
55110dd39d | ||
|
|
07d8111df9 | ||
|
|
a701b97f1e | ||
|
|
b025537d62 | ||
|
|
e68bc2de65 | ||
|
|
d0b1c93382 | ||
|
|
a08fa9eabf | ||
|
|
65ef130bda | ||
|
|
32471a71e5 | ||
|
|
ca80f01907 | ||
|
|
b1fae57922 | ||
|
|
dea01dda2d | ||
|
|
9777619259 | ||
|
|
6db0f84f8f | ||
|
|
84e382fcc5 | ||
|
|
eceed1b934 | ||
|
|
e7b5cd74a4 | ||
|
|
a98930791c | ||
|
|
67b0389097 | ||
|
|
ff30595fb4 | ||
|
|
d272b62c45 | ||
|
|
c1973023d0 | ||
|
|
ef4689619e | ||
|
|
9ed297a49d | ||
|
|
9950729080 | ||
|
|
36eec9d061 | ||
|
|
fd3a977009 | ||
|
|
ff88832cca | ||
|
|
d69b72b77d | ||
|
|
d9bd9e996b | ||
|
|
f45580be70 | ||
|
|
0fbeb11304 | ||
|
|
6a70c13b57 | ||
|
|
f797520e56 | ||
|
|
d060db3c96 | ||
|
|
298344c2ab | ||
|
|
53dbeadabb | ||
|
|
93087d7aa7 | ||
|
|
c304517fc2 | ||
|
|
af13e034c3 | ||
|
|
e6b9d59160 | ||
|
|
bd9cbe30c5 | ||
|
|
f627226da9 | ||
|
|
bab3272970 | ||
|
|
003085db7e | ||
|
|
8f98bd37c7 | ||
|
|
6971ef1ede | ||
|
|
0baac3dc49 | ||
|
|
16feb8602d | ||
|
|
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 |
42
Settings.XamlStyler
Normal file
42
Settings.XamlStyler
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AttributesTolerance": 2,
|
||||
"KeepFirstAttributeOnSameLine": false,
|
||||
"MaxAttributeCharactersPerLine": 0,
|
||||
"MaxAttributesPerLine": 1,
|
||||
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
|
||||
"SeparateByGroups": false,
|
||||
"AttributeIndentation": 0,
|
||||
"AttributeIndentationStyle": 1,
|
||||
"RemoveDesignTimeReferences": false,
|
||||
"IgnoreDesignTimeReferencePrefix": false,
|
||||
"EnableAttributeReordering": true,
|
||||
"AttributeOrderingRuleGroups": [
|
||||
"x:Class",
|
||||
"xmlns, xmlns:x",
|
||||
"xmlns:*",
|
||||
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
|
||||
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
|
||||
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
|
||||
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
|
||||
"*:*, *",
|
||||
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
|
||||
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
|
||||
"Storyboard.*, From, To, Duration"
|
||||
],
|
||||
"FirstLineAttributes": "",
|
||||
"OrderAttributesByName": true,
|
||||
"PutEndingBracketOnNewLine": false,
|
||||
"RemoveEndingTagOfEmptyElement": true,
|
||||
"SpaceBeforeClosingSlash": true,
|
||||
"RootElementLineBreakRule": 0,
|
||||
"ReorderVSM": 2,
|
||||
"ReorderGridChildren": false,
|
||||
"ReorderCanvasChildren": false,
|
||||
"ReorderSetters": 0,
|
||||
"FormatMarkupExtension": true,
|
||||
"NoNewLineMarkupExtensions": "x:Bind, Binding",
|
||||
"ThicknessSeparator": 2,
|
||||
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
|
||||
"FormatOnSave": true,
|
||||
"CommentPadding": 2,
|
||||
}
|
||||
@@ -38,26 +38,6 @@
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
|
||||
public const string ClientLogFile = "Client_.log";
|
||||
public const string ServerLogFile = "Server_.log";
|
||||
public const string LogArchiveFileName = "WinoLogs.zip";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using SQLite;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
{
|
||||
@@ -9,23 +9,41 @@ namespace Wino.Core.Domain.Entities
|
||||
/// These values will be inserted during MIME fetch.
|
||||
/// </summary>
|
||||
|
||||
|
||||
// TODO: This can easily evolve to Contact store, just like People app in Windows 10/11.
|
||||
// Do it.
|
||||
public class AddressInformation : IEquatable<AddressInformation>
|
||||
public class AccountContact : IEquatable<AccountContact>
|
||||
{
|
||||
/// <summary>
|
||||
/// E-mail address of the contact.
|
||||
/// </summary>
|
||||
[PrimaryKey]
|
||||
public string Address { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name of the contact.
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Base64 encoded profile image of the contact.
|
||||
/// </summary>
|
||||
public string Base64ContactPicture { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// All registered accounts have their contacts registered as root.
|
||||
/// Root contacts must not be overridden by any configuration.
|
||||
/// They are created on account creation.
|
||||
/// </summary>
|
||||
public bool IsRootContact { get; set; }
|
||||
|
||||
public string DisplayName => Address == Name ? Address : $"{Name} <{Address}>";
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return Equals(obj as AddressInformation);
|
||||
return Equals(obj as AccountContact);
|
||||
}
|
||||
|
||||
public bool Equals(AddressInformation other)
|
||||
public bool Equals(AccountContact other)
|
||||
{
|
||||
return !(other is null) &&
|
||||
Address == other.Address &&
|
||||
@@ -40,12 +58,12 @@ namespace Wino.Core.Domain.Entities
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
public static bool operator ==(AddressInformation left, AddressInformation right)
|
||||
public static bool operator ==(AccountContact left, AccountContact right)
|
||||
{
|
||||
return EqualityComparer<AddressInformation>.Default.Equals(left, right);
|
||||
return EqualityComparer<AccountContact>.Default.Equals(left, right);
|
||||
}
|
||||
|
||||
public static bool operator !=(AddressInformation left, AddressInformation right)
|
||||
public static bool operator !=(AccountContact left, AccountContact right)
|
||||
{
|
||||
return !(left == right);
|
||||
}
|
||||
@@ -44,6 +44,11 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
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>
|
||||
@@ -78,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;
|
||||
}
|
||||
}
|
||||
@@ -141,7 +141,16 @@ namespace Wino.Core.Domain.Entities
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public MailAccount AssignedAccount { get; set; }
|
||||
public IEnumerable<Guid> GetContainingIds() => new[] { UniqueId };
|
||||
|
||||
/// <summary>
|
||||
/// Contact information of the sender if exists.
|
||||
/// Warning: This field is not populated by queries.
|
||||
/// Services or View Models are responsible for populating this field.
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public AccountContact SenderContact { get; set; }
|
||||
|
||||
public IEnumerable<Guid> GetContainingIds() => [UniqueId];
|
||||
public override string ToString() => $"{Subject} <-> {Id}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
ManuelSetupWaiting,
|
||||
TestingConnection,
|
||||
AutoDiscoverySetup,
|
||||
AutoDiscoveryInProgress
|
||||
AutoDiscoveryInProgress,
|
||||
FetchingProfileInformation
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum EditorToolbarSectionType
|
||||
{
|
||||
None,
|
||||
Format,
|
||||
Insert,
|
||||
Draw,
|
||||
Options
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MenuPaneMode
|
||||
{
|
||||
Visible,
|
||||
Hidden
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
10
Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs
Normal file
10
Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum WinoCustomMessageDialogIcon
|
||||
{
|
||||
Information,
|
||||
Warning,
|
||||
Error,
|
||||
Question
|
||||
}
|
||||
}
|
||||
@@ -23,5 +23,6 @@
|
||||
LanguageTimePage,
|
||||
AppPreferencesPage,
|
||||
SettingOptionsPage,
|
||||
AliasManagementPage
|
||||
}
|
||||
}
|
||||
|
||||
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) { }
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -100,5 +101,59 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </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,10 +1,18 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IBackgroundTaskService
|
||||
{
|
||||
/// <summary>
|
||||
/// Unregisters all existing background tasks. Useful for migrations.
|
||||
/// Unregisters all background tasks once.
|
||||
/// This is used to clean up the background tasks when the app is updated.
|
||||
/// </summary>
|
||||
void UnregisterAllBackgroundTask();
|
||||
|
||||
/// <summary>
|
||||
/// Registers required background tasks.
|
||||
/// </summary>
|
||||
Task RegisterBackgroundTasksAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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;
|
||||
|
||||
@@ -43,6 +44,13 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// <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>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IConfirmationDialog
|
||||
{
|
||||
Task<bool> ShowDialogAsync(string title, string message, string approveButtonTitle);
|
||||
}
|
||||
}
|
||||
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,11 +15,10 @@ namespace Wino.Core.Domain.Interfaces
|
||||
Task<byte[]> PickWindowsFileContentAsync(params object[] typeFilters);
|
||||
Task<bool> ShowConfirmationDialogAsync(string question, string title, string confirmationButtonTitle);
|
||||
Task<bool> ShowHardDeleteConfirmationAsync();
|
||||
Task<IStoreRatingDialog> ShowRatingDialogAsync();
|
||||
Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService);
|
||||
Task<bool> ShowCustomThemeBuilderDialogAsync();
|
||||
|
||||
Task ShowMessageAsync(string message, string title);
|
||||
Task ShowMessageAsync(string message, string title, WinoCustomMessageDialogIcon icon);
|
||||
void InfoBarMessage(string title, string message, InfoBarMessageType messageType);
|
||||
void InfoBarMessage(string title, string message, InfoBarMessageType messageType, string actionButtonText, Action action);
|
||||
|
||||
@@ -53,5 +52,17 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
/// <returns>Signature information. Null if canceled.</returns>
|
||||
Task<AccountSignature> ShowSignatureEditorDialog(AccountSignature signatureModel = null);
|
||||
|
||||
/// <summary>
|
||||
/// Presents a dialog to the user for account alias creation/modification.
|
||||
/// </summary>
|
||||
/// <returns>Created alias model if not canceled.</returns>
|
||||
Task<ICreateAccountAliasDialog> ShowCreateAccountAliasDialogAsync();
|
||||
Task<bool> ShowWinoCustomMessageDialogAsync(string title,
|
||||
string description,
|
||||
string approveButtonText,
|
||||
WinoCustomMessageDialogIcon? icon,
|
||||
string cancelButtonText = "",
|
||||
string dontAskAgainConfigurationKey = "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,13 @@ namespace Wino.Core.Domain.Interfaces
|
||||
Task<string> CopyFileAsync(string sourceFilePath, string destinationFolderPath);
|
||||
Task<Stream> GetFileStreamAsync(string folderPath, string fileName);
|
||||
Task<string> GetFileContentByApplicationUriAsync(string resourcePath);
|
||||
|
||||
/// <summary>
|
||||
/// Zips all existing logs and saves to picked destination folder.
|
||||
/// </summary>
|
||||
/// <param name="logsFolder">Folder path where logs are stored.</param>
|
||||
/// <param name="destinationFolder">Target path to save the archive file.</param>
|
||||
/// <returns>True if zip is created with at least one item, false if logs are not found.</returns>
|
||||
Task<bool> SaveLogsToFolderAsync(string logsFolder, string destinationFolder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
Task<MailCopy> GetSingleMailItemAsync(string mailCopyId, string remoteFolderId);
|
||||
Task<MailCopy> GetSingleMailItemAsync(Guid uniqueMailId);
|
||||
Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options);
|
||||
Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Deletes all mail copies for all folders.
|
||||
@@ -103,9 +103,9 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Creates a draft MailCopy and MimeMessage based on the given options.
|
||||
/// For forward/reply it would include the referenced message.
|
||||
/// </summary>
|
||||
/// <param name="composerAccount">Account which should have new draft.</param>
|
||||
/// <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(MailAccount composerAccount, DraftCreationOptions draftCreationOptions);
|
||||
Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,5 +155,10 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Setting: Gets or sets what should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
ServerBackgroundMode ServerTerminationBehavior { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the mail list action bar is enabled or not.
|
||||
/// </summary>
|
||||
bool IsMailListActionBarEnabled { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// We add small delay for the following synchronization after executing current requests to overcome this issue.
|
||||
/// Default is false.
|
||||
/// </summary>
|
||||
bool DelayExecution { get; }
|
||||
int ResynchronizationDelay { get; }
|
||||
}
|
||||
|
||||
public interface IRequest : IRequestBase
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IStoreRatingDialog
|
||||
{
|
||||
bool DontAskAgain { get; }
|
||||
bool RateWinoClicked { get; }
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ namespace Wino.Core.Domain.Interfaces
|
||||
public interface IThemeService : IInitializeAsync
|
||||
{
|
||||
event EventHandler<ApplicationElementTheme> ElementThemeChanged;
|
||||
event EventHandler<string> AccentColorChangedBySystem;
|
||||
event EventHandler<string> AccentColorChanged;
|
||||
|
||||
Task<List<AppThemeBase>> GetAvailableThemesAsync();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
@@ -12,7 +13,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
/// <param name="items">Original mails.</param>
|
||||
/// <returns>Original mails with thread mails.</returns>
|
||||
Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items);
|
||||
Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items, IMailItemFolder threadingForFolder);
|
||||
bool ShouldThreadWithItem(IMailItem originalItem, IMailItem targetItem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
namespace Wino.Core.Domain.Models.Accounts
|
||||
{
|
||||
public record AccountCreationDialogResult(MailProviderType ProviderType, string AccountName, string SenderName, string AccountColorHex = "");
|
||||
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);
|
||||
}
|
||||
@@ -14,7 +14,6 @@ namespace Wino.Core.Domain.Models.Accounts
|
||||
public string ProviderImage => $"ms-appx:///Assets/Providers/{Type}.png";
|
||||
|
||||
public bool IsSupported => Type == MailProviderType.Outlook || Type == MailProviderType.Gmail || Type == MailProviderType.IMAP4;
|
||||
public bool RequireSenderNameOnCreationDialog => Type != MailProviderType.IMAP4;
|
||||
|
||||
public ProviderDetail(MailProviderType type)
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -2,13 +2,18 @@
|
||||
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, MailCopy referenceMailCopy = null)
|
||||
public DraftPreparationRequest(MailAccount account,
|
||||
MailCopy createdLocalDraftCopy,
|
||||
string base64EncodedMimeMessage,
|
||||
DraftCreationReason reason,
|
||||
MailCopy referenceMailCopy = null)
|
||||
{
|
||||
Account = account ?? throw new ArgumentNullException(nameof(account));
|
||||
|
||||
@@ -19,6 +24,7 @@ public class DraftPreparationRequest
|
||||
// This is additional work when deserialization needed, but not much to do atm.
|
||||
|
||||
Base64LocalDraftMimeMessage = base64EncodedMimeMessage;
|
||||
Reason = reason;
|
||||
}
|
||||
|
||||
[JsonConstructor]
|
||||
@@ -29,6 +35,7 @@ public class DraftPreparationRequest
|
||||
public MailCopy ReferenceMailCopy { get; set; }
|
||||
|
||||
public string Base64LocalDraftMimeMessage { get; set; }
|
||||
public DraftCreationReason Reason { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
private MimeMessage createdLocalDraftMimeMessage;
|
||||
@@ -44,5 +51,5 @@ public class DraftPreparationRequest
|
||||
}
|
||||
}
|
||||
|
||||
public MailAccount Account { get; }
|
||||
public MailAccount Account { get; set; }
|
||||
}
|
||||
|
||||
@@ -29,5 +29,6 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
|
||||
MailItemFolder AssignedFolder { get; }
|
||||
MailAccount AssignedAccount { get; }
|
||||
AccountContact SenderContact { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,45 +5,17 @@ using Wino.Core.Domain.Extensions;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
public class SendDraftPreparationRequest
|
||||
public record SendDraftPreparationRequest(MailCopy MailItem,
|
||||
MailAccountAlias SendingAlias,
|
||||
MailItemFolder SentFolder,
|
||||
MailItemFolder DraftFolder,
|
||||
MailAccountPreferences AccountPreferences,
|
||||
string Base64MimeMessage)
|
||||
{
|
||||
public MailCopy MailItem { get; set; }
|
||||
public string Base64MimeMessage { get; set; }
|
||||
public MailItemFolder SentFolder { get; set; }
|
||||
public MailItemFolder DraftFolder { get; set; }
|
||||
public MailAccountPreferences AccountPreferences { get; set; }
|
||||
|
||||
public SendDraftPreparationRequest(MailCopy mailItem,
|
||||
MailItemFolder sentFolder,
|
||||
MailItemFolder draftFolder,
|
||||
MailAccountPreferences accountPreferences,
|
||||
string base64MimeMessage)
|
||||
{
|
||||
MailItem = mailItem;
|
||||
SentFolder = sentFolder;
|
||||
DraftFolder = draftFolder;
|
||||
AccountPreferences = accountPreferences;
|
||||
Base64MimeMessage = base64MimeMessage;
|
||||
}
|
||||
|
||||
[JsonConstructor]
|
||||
private SendDraftPreparationRequest() { }
|
||||
|
||||
[JsonIgnore]
|
||||
private MimeMessage mime;
|
||||
|
||||
[JsonIgnore]
|
||||
public MimeMessage Mime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mime == null)
|
||||
{
|
||||
mime = Base64MimeMessage.GetMimeMessageFromBase64();
|
||||
}
|
||||
|
||||
return mime;
|
||||
}
|
||||
}
|
||||
public MimeMessage Mime => mime ??= Base64MimeMessage.GetMimeMessageFromBase64();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,19 +14,19 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
public IMailItem LatestMailItem => ThreadItems.LastOrDefault();
|
||||
public IMailItem FirstMailItem => ThreadItems.FirstOrDefault();
|
||||
|
||||
public void AddThreadItem(IMailItem item)
|
||||
public bool AddThreadItem(IMailItem item)
|
||||
{
|
||||
if (item == null) return;
|
||||
if (item == null) return false;
|
||||
|
||||
if (ThreadItems.Any(a => a.Id == item.Id))
|
||||
{
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item != null && item.IsDraft)
|
||||
{
|
||||
ThreadItems.Insert(0, item);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
var insertItem = ThreadItems.FirstOrDefault(a => !a.IsDraft && a.CreationDate < item.CreationDate);
|
||||
@@ -39,6 +39,8 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
|
||||
ThreadItems.Insert(index, item);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public IEnumerable<Guid> GetContainingIds() => ThreadItems?.Select(a => a.UniqueId) ?? default;
|
||||
@@ -85,6 +87,8 @@ namespace Wino.Core.Domain.Models.MailItem
|
||||
|
||||
public Guid FileId => LatestMailItem?.FileId ?? Guid.Empty;
|
||||
|
||||
public AccountContact SenderContact => LatestMailItem?.SenderContact;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
namespace Wino.Core.Domain.Models.Personalization
|
||||
{
|
||||
public record MailListPaneLengthPreferences(string Title, double Length);
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Reader
|
||||
{
|
||||
public class EditorToolbarSection
|
||||
{
|
||||
public EditorToolbarSectionType SectionType { get; set; }
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (SectionType)
|
||||
{
|
||||
case EditorToolbarSectionType.None:
|
||||
return Translator.EditorToolbarOption_None;
|
||||
case EditorToolbarSectionType.Format:
|
||||
return Translator.EditorToolbarOption_Format;
|
||||
case EditorToolbarSectionType.Insert:
|
||||
return Translator.EditorToolbarOption_Insert;
|
||||
case EditorToolbarSectionType.Draw:
|
||||
return Translator.EditorToolbarOption_Draw;
|
||||
case EditorToolbarSectionType.Options:
|
||||
return Translator.EditorToolbarOption_Options;
|
||||
default:
|
||||
return "Unknown Editor Option";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace Wino.Core.Domain.Models.Requests
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
public virtual int ResynchronizationDelay => 0;
|
||||
}
|
||||
|
||||
public abstract record FolderRequestBase(MailItemFolder Folder, MailSynchronizerOperation Operation) : IFolderRequest
|
||||
@@ -20,7 +20,7 @@ namespace Wino.Core.Domain.Models.Requests
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
public virtual int ResynchronizationDelay => 0;
|
||||
}
|
||||
|
||||
public abstract record BatchRequestBase(IEnumerable<IRequest> Items, MailSynchronizerOperation Operation) : IBatchChangeRequest
|
||||
@@ -28,6 +28,7 @@ namespace Wino.Core.Domain.Models.Requests
|
||||
public abstract void ApplyUIChanges();
|
||||
public abstract void RevertUIChanges();
|
||||
|
||||
public virtual bool DelayExecution => false;
|
||||
public virtual int ResynchronizationDelay => 0;
|
||||
public virtual bool ExecuteSerialBatch => false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,14 +3,11 @@ using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Requests
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Encapsulates request to queue and account for synchronizer.
|
||||
/// </summary>
|
||||
/// <param name="AccountId"><inheritdoc/></param>
|
||||
/// <param name="Request"></param>
|
||||
/// <param name="AccountId">Which account to execute this request for.</param>
|
||||
/// <param name="Request">Prepared request for the server.</param>
|
||||
/// <param name="AccountId">Whihc account to execute this request for.</param>
|
||||
public record ServerRequestPackage(Guid AccountId, IRequestBase Request) : IClientMessage
|
||||
{
|
||||
public override string ToString() => $"Server Package: {Request.GetType().Name}";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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
|
||||
@@ -15,14 +16,23 @@ namespace Wino.Core.Domain.Models.Synchronization
|
||||
/// It's ignored in serialization. Client should not react to this.
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = new List<IMailItem>();
|
||||
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = [];
|
||||
|
||||
public ProfileInformation ProfileInformation { get; set; }
|
||||
|
||||
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 };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"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",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Your credentials will only be stored locally on your computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Some accounts require additional steps to sign in",
|
||||
@@ -21,6 +29,8 @@
|
||||
"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",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
@@ -64,6 +75,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.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +137,7 @@
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"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}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "inicializace",
|
||||
"AccountCreationDialog_PreparingFolders": "Stahování informací o složkách.",
|
||||
"AccountCreationDialog_SigninIn": "Probíhá ukládání informací o účtu.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Název účtu",
|
||||
"AccountEditDialog_Title": "Upravit účet",
|
||||
"AccountPickerDialog_Title": "Vybrat účet",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "např. Jan Novák",
|
||||
"AddHyperlink": "Přidat",
|
||||
"AutoDiscoveryProgressMessage": "Vyhledávání v nastaveních mailu...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Pokročilá nastavení",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Vaše nastavení budou uložena pouze lokálně na vašem počítači.",
|
||||
"BasicIMAPSetupDialog_Description": "Některé účty vyžadují další kroky k přihlášení",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Heslo",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP účet",
|
||||
"Buttons_AddAccount": "Přidat účet",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Použít motiv",
|
||||
"Buttons_Browse": "Procházet",
|
||||
"Buttons_Cancel": "Zrušit",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Přihlásit se",
|
||||
"Buttons_TryAgain": "Zkusit znovu",
|
||||
"Buttons_Yes": "Ano",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Nastřed",
|
||||
"ComingSoon": "Již brzy...",
|
||||
"ComposerFrom": "Od: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Nastav vlastní pozadí",
|
||||
"DialogMessage_AccountLimitMessage": "Dosáhli jste limitu vytvořených účtů. Chcete si zakoupit doplněk \"Neomezený účet\", aby jste mohli pokračovat?",
|
||||
"DialogMessage_AccountLimitTitle": "Dosažen limit počtu účtú",
|
||||
"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": "Přejete si trvale smazat všechny maily v této složce?",
|
||||
"DialogMessage_CleanupFolderTitle": "Vyprázdnit složku",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Zpráva nemá žádného příjemce.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Příště se neptat",
|
||||
"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 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",
|
||||
"Draft": "Koncept",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Nakreslit",
|
||||
"EditorToolbarOption_Format": "Formátovat",
|
||||
"EditorToolbarOption_Insert": "Vložit",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Světlý režim",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Musíte zadat název.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Musíte zadat vlastní obrázek pozadí.",
|
||||
"Exception_FailedToSynchronizeFolders": "Synchronizace složek se nezdařila",
|
||||
"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 je při aktivaci null.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Odpověď z autorizačního serveru je chybná.",
|
||||
"Exception_GoogleAuthError": "Chyba autorizace OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
"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": "Způsob ověření",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Zabezpečení připojení",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Synchronizace složek",
|
||||
"SettingsFolderOptions_Title": "Nastavení složky",
|
||||
"SettingsFolderOptions_Description": "Změnit nastavení jednotlivých složek, například povolit/zakázat synchronizaci, nebo zobrazit/skrýt počet nepřečtených e-mailů.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Prostřední akce",
|
||||
"SettingsHoverActionLeft": "Levá akce",
|
||||
"SettingsHoverActionRight": "Pravá akce",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Jazyk & čas",
|
||||
"SettingsLanguageTime_Description": "Jazyk aplikace Wino, preferovaný formát času.",
|
||||
"CategoriesFolderNameOverride": "Kategorie",
|
||||
"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": "Více",
|
||||
"SettingsOptions_Title": "Nastavení",
|
||||
"SettingsLinkAccounts_Description": "Sloučit více účtů do jednoho. Podívejte se na e-maily v jedné složce \"Doručená pošta\" společně.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Zatím jste nenastavili žádný účet.",
|
||||
"SettingsNotifications_Description": "Zapnout nebo vypnout oznámení pro tento účet.",
|
||||
"SettingsNotifications_Title": "Oznámení",
|
||||
"SettingsPaneLength_Description": "Změnit šířku seznamu e-mailů.",
|
||||
"SettingsPaneLength_Title": "Délka panelu e-mailů",
|
||||
"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": "Ukažte mnohem více lásky ❤️ Všechny dary jsou vítany.",
|
||||
"SettingsPaypal_Title": "Přispět přes PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Kompaktní režim",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"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",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Your credentials will only be stored locally on your computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Some accounts require additional steps to sign in",
|
||||
@@ -21,6 +29,8 @@
|
||||
"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",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
@@ -64,6 +75,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.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +137,7 @@
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"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}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "Initialisierung",
|
||||
"AccountCreationDialog_PreparingFolders": "Es werden Ordner-Informationen gesammelt.",
|
||||
"AccountCreationDialog_SigninIn": "Kontoinformationen wurden gespeichert.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Lade Profildetails.",
|
||||
"AccountEditDialog_Message": "Konto-Name",
|
||||
"AccountEditDialog_Title": "Konto bearbeiten",
|
||||
"AccountPickerDialog_Title": "Konto auswählen",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "z.B. Max Mustermann",
|
||||
"AddHyperlink": "Hinzufügen",
|
||||
"AutoDiscoveryProgressMessage": "Es wird nach Mail-Einstellungen gesucht...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Hintergrundsynchronisierung",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "Sie beenden Wino Mail und das Schließungsverhalten der App ist auf \"Beenden\" gesetzt.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "Dadurch werden alle Hintergrundsynchronisierungen und Benachrichtigungen beendet.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Möchten Sie in den App-Einstellungen Wino Mail auf minimiert oder Hintergrundausführung einstellen?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Die Anwendung wird beim Start von Windows nicht gestartet.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "Dies führt dazu, dass Sie Benachrichtigungen verpassen, wenn Sie Ihren Computer neu starten.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Möchten Sie diese in den App-Einstellungen aktivieren?",
|
||||
"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",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Passwort",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP-Konto",
|
||||
"Buttons_AddAccount": "Konto hinzufügen",
|
||||
"Buttons_AddNewAlias": "Neuen Alias hinzufügen",
|
||||
"Buttons_SyncAliases": "Aliase synchronisieren",
|
||||
"Buttons_ApplyTheme": "Thema anwenden",
|
||||
"Buttons_Browse": "Durchsuchen",
|
||||
"Buttons_Cancel": "Abbrechen",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Anmelden",
|
||||
"Buttons_TryAgain": "Wiederholen",
|
||||
"Buttons_Yes": "Ja",
|
||||
"Buttons_Reset": "Zurücksetzen",
|
||||
"Center": "Zentriert",
|
||||
"ComingSoon": "Bald verfügbar...",
|
||||
"ComposerFrom": "Von: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Eigenen Hintergrund festlegen",
|
||||
"DialogMessage_AccountLimitMessage": "Sie haben das Limit für die Kontenanzahl erreicht.\nMöchten Sie die Option \"Unbegrenzte Konten\" kaufen, um fortzufahren?",
|
||||
"DialogMessage_AccountLimitTitle": "Kontolimit erreicht",
|
||||
"DialogMessage_AliasNotSelectedTitle": "Fehlender Alias",
|
||||
"DialogMessage_AliasNotSelectedMessage": "Sie müssen einen Alias wählen, bevor Sie eine Nachricht senden.",
|
||||
"DialogMessage_AliasExistsTitle": "Existierender Alias",
|
||||
"DialogMessage_AliasExistsMessage": "Dieser Alias wird bereits verwendet.",
|
||||
"DialogMessage_InvalidAliasTitle": "Ungültiger Alias",
|
||||
"DialogMessage_InvalidAliasMessage": "Dieser Alias ist ungültig. Stellen Sie sicher, dass alle Adressen des Alias gültige E-Mail-Adressen sind.",
|
||||
"DialogMessage_CantDeleteRootAliasTitle": "Alias kann nicht gelöscht werden",
|
||||
"DialogMessage_CantDeleteRootAliasMessage": "Der Root-Alias kann nicht gelöscht werden. Dies ist Ihre Hauptidentität, die mit der Konfiguration Ihres Kontos verknüpft ist.",
|
||||
"DialogMessage_AliasCreatedTitle": "Neuer Alias erstellt",
|
||||
"DialogMessage_AliasCreatedMessage": "Ein neuer Alias wurde erfolgreich erstellt.",
|
||||
"DialogMessage_CleanupFolderMessage": "Möchten Sie alle Mails in diesem Ordner dauerhaft löschen?",
|
||||
"DialogMessage_CleanupFolderTitle": "Bereinigungs-Ordner",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Nachricht hat keinen Empfänger.",
|
||||
@@ -82,7 +103,7 @@
|
||||
"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": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Betreff fehlt",
|
||||
"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",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Autostart aktivieren",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Wino Mail kann beim Start von Windows minimiert gestartet werden, um keine Benachrichtigungen zu verpassen.\n\nMöchten Sie den Autostart aktivieren?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "Sie können den Autostart unter Einstellungen -> App-Einstellungen aktivieren.",
|
||||
"Dialog_DontAskAgain": "Nicht mehr fragen",
|
||||
"CreateAccountAliasDialog_Title": "Kontoalias erstellen",
|
||||
"CreateAccountAliasDialog_Description": "Stellen Sie sicher, dass Ihr ausgehender Server das Senden von Mails von diesem Alias erlaubt.",
|
||||
"CreateAccountAliasDialog_AliasAddress": "Adresse",
|
||||
"CreateAccountAliasDialog_AliasAddressPlaceholder": "z.B. support@mydomain.com",
|
||||
"CreateAccountAliasDialog_ReplyToAddress": "Antwortadresse",
|
||||
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "admin@mydomain.com",
|
||||
"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",
|
||||
"Draft": "Entwurf",
|
||||
"Busy": "Beschäftigt",
|
||||
"EditorToolbarOption_Draw": "Zeichnen",
|
||||
"EditorToolbarOption_Format": "Format",
|
||||
"EditorToolbarOption_Insert": "Einfügen",
|
||||
@@ -105,7 +136,8 @@
|
||||
"ElementTheme_Default": "Systemeinstellung verwenden",
|
||||
"ElementTheme_Light": "Heller Modus",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_WinoServerException": "Wino-Server ist fehlgeschlagen.",
|
||||
"Exception_MailProcessing": "Diese Mail wird noch verarbeitet. Bitte versuchen Sie es in wenigen Sekunden erneut.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Mailbox-Einstellungen konnten nicht gefunden werden.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client-Pool fehlgeschlagen.",
|
||||
"Exception_AuthenticationCanceled": "Authentifizierung abgebrochen",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Sie müssen einen Namen angeben.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Sie müssen ein eigenes Hintergrundbild angeben.",
|
||||
"Exception_FailedToSynchronizeFolders": "Fehler beim Synchronisieren der Ordner",
|
||||
"Exception_FailedToSynchronizeAliases": "Fehler beim Synchronisieren der Aliase",
|
||||
"Exception_MissingAlias": "Der primäre Alias fehlt für dieses Konto. Erstellen des Entwurfs fehlgeschlagen.",
|
||||
"Exception_FailedToSynchronizeProfileInformation": "Fehler beim Synchronisieren der Profilinformationen",
|
||||
"Exception_GoogleAuthCallbackNull": "'Callback uri ist 'null' bei der Aktivierung.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Korrupte Autorisierungsantwort.",
|
||||
"Exception_GoogleAuthError": "OAuth Autorisierungsfehler: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Dieser Abmeldelink ist ungültig. Fehler beim Abmelden der Liste.",
|
||||
"Info_UnsubscribeSuccessMessage": "Erfolgreich von {0} abgemeldet.",
|
||||
"Info_UnsubscribeErrorMessage": "Abmeldung fehlgeschlagen",
|
||||
"Info_CantDeletePrimaryAliasMessage": "Der primäre Alias kann nicht gelöscht werden. Bitte ändern Sie Ihren Alias, bevor Sie diesen löschen.",
|
||||
"Info_MailListSizeResetSuccessMessage": "Die Größe der Mailliste wurde zurückgesetzt.",
|
||||
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentifizierungsmethode",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Verbindungssicherheit",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -336,7 +373,7 @@
|
||||
"ProtocolLogAvailable_Message": "Protokolle zur Diagnose sind verfügbar.",
|
||||
"Results": "Ergebnisse",
|
||||
"Right": "Rechts",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Alle Anhänge speichern",
|
||||
"SynchronizationFolderReport_Success": "aktuell",
|
||||
"SynchronizationFolderReport_Failed": "Synchronisierung fehlgeschlagen",
|
||||
"SearchBarPlaceholder": "Suche",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Ordner-Synchronisierung",
|
||||
"SettingsFolderOptions_Title": "Ordnerkonfiguration",
|
||||
"SettingsFolderOptions_Description": "Ändern Sie einzelne Ordnereinstellungen, wie z. B. das Ein-/Ausblenden des \"Ungelesen\"-Symbols oder das (De-)Aktivieren der Synchronisierung.",
|
||||
"SettingsManageAliases_Title": "Aliase",
|
||||
"SettingsManageAliases_Description": "Sehen Sie die Mail-Aliase, die diesem Konto zugewiesen wurden, aktualisieren oder löschen Sie diese.",
|
||||
"SettingsHoverActionCenter": "Zentrierte Aktion",
|
||||
"SettingsHoverActionLeft": "Linke Aktion",
|
||||
"SettingsHoverActionRight": "Rechte Aktion",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Sprache und Zeit",
|
||||
"SettingsLanguageTime_Description": "Wino Anzeigesprache, bevorzugtes Zeitformat.",
|
||||
"CategoriesFolderNameOverride": "Kategorien",
|
||||
"AccountAlias_Column_Verified": "Verifiziert",
|
||||
"AccountAlias_Column_Alias": "Alias",
|
||||
"AccountAlias_Column_IsPrimaryAlias": "Primär",
|
||||
"AccountAlias_Disclaimer_FirstLine": "Wino kann nur Aliase für Ihre Gmail-Konten importieren.",
|
||||
"AccountAlias_Disclaimer_SecondLine": "Wenn Sie Aliase für Ihr Outlook- oder IMAP-Konto verwenden möchten, fügen Sie diese bitte selbst hinzu.",
|
||||
"MoreFolderNameOverride": "Mehr",
|
||||
"SettingsOptions_Title": "Einstellungen",
|
||||
"SettingsLinkAccounts_Description": "Mehrere Konten zu einem zusammenführen. Sehen Sie E-Mails in einem kombinierten Posteingang.",
|
||||
@@ -420,19 +464,19 @@
|
||||
"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",
|
||||
"SettingsAppPreferences_Title": "App-Präferenzen",
|
||||
"SettingsAppPreferences_Description": "Allgemeine Einstellungen / Präferenzen für Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Verhalten der App beim Schließen",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "Was soll passieren, wenn Sie die App schließen?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Beim Start von Windows minimiert starten",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Wino Mail das minimierte Starten erlauben, wenn Windows startet. Ermöglicht es, immer Benachrichtigungen zu erhalten.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail wurde es erfolgreich gestattet, beim Starten von Windows im Hintergrund zu starten.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail wird beim Start von Windows nicht gestartet. Dies führt dazu, dass Sie keine Benachrichtigungen erhalten, wenn Sie Ihren Computer neu starten.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Ihre Administrator- oder Gruppenrichtlinien gestatten den automatischen Start von Programmen nicht. Daher kann für Wino Mail der automatische Start nicht aktiviert werden.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Bitte gehen Sie zu Task-Manager -> Autostart von Apps, um Wino Mail den Autostart zu erlauben.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Ein schwerwiegender Fehler ist beim Ändern des Startmodus für Wino Mail aufgetreten.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Aktivieren",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Deaktivieren",
|
||||
"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.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Sie haben noch keine Konten eingerichtet.",
|
||||
"SettingsNotifications_Description": "Benachrichtigungen für dieses Konto ein- oder ausschalten.",
|
||||
"SettingsNotifications_Title": "Benachrichtigungen",
|
||||
"SettingsPaneLength_Description": "Ändern Sie die Breite der Mail-Liste.",
|
||||
"SettingsPaneLength_Title": "Länge des Maillisten-Fensters",
|
||||
"SettingsPaneLengthReset_Description": "Setzen Sie die Größe der Mailliste auf die Originaleinstellung zurück, falls sie Probleme haben.",
|
||||
"SettingsPaneLengthReset_Title": "Größe der Mailliste zurücksetzen",
|
||||
"SettingsPaypal_Description": "Zeigen Sie viel mehr Liebe ❤️ Alle Spenden werden wertgeschätzt.",
|
||||
"SettingsPaypal_Title": "Über PayPal spenden",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Kompakter Modus",
|
||||
@@ -539,14 +583,14 @@
|
||||
"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"
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "In den System-Tray minimieren",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail wird weiterhin im System-Tray laufen. Startet beim Klicken des Symbols die Anwendung. Sie werden benachrichtigt, sobald neue Mails eintreffen.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Im Hintergrund ausführen",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail wird weiterhin im Hintergrund ausgeführt. Sie werden benachrichtigt, sobald neue Mails eintreffen.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Beenden",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail wird nicht weiter ausgeführt werden. Sie werden nicht benachrichtigt, wenn neue Mails eintreffen. Starten Sie Wino Mail erneut, um die Mail-Synchronisation fortzusetzen.",
|
||||
"TitleBarServerDisconnectedButton_Title": "Keine Verbindung",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino ist vom Netzwerk getrennt. Klicken Sie auf \"Erneut verbinden\", um die Verbindung wiederherzustellen.",
|
||||
"TitleBarServerReconnectButton_Title": "Erneut verbinden",
|
||||
"TitleBarServerReconnectingButton_Title": "Verbindung wird hergestellt"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "αρχικοποιείται",
|
||||
"AccountCreationDialog_PreparingFolders": "Προς το παρόν λαμβάνουμε πληροφορίες φακέλων.",
|
||||
"AccountCreationDialog_SigninIn": "Οι πληροφορίες λογαριασμού αποθηκεύονται.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Όνομα Λογαριασμού",
|
||||
"AccountEditDialog_Title": "Επεξεργασία Λογαριασμού",
|
||||
"AccountPickerDialog_Title": "Επιλέξτε έναν λογαριασμό",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
|
||||
"AddHyperlink": "Προσθήκη",
|
||||
"AutoDiscoveryProgressMessage": "Αναζήτηση για ρυθμίσεις αλληλογραφίας...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Σύνθετη Διαμόρφωση",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Τα διαπιστευτήριά σας θα αποθηκεύονται μόνο τοπικά στον υπολογιστή σας.",
|
||||
"BasicIMAPSetupDialog_Description": "Ορισμένοι λογαριασμοί απαιτούν πρόσθετα βήματα για να συνδεθούν",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Κωδικόs πρόσβασης",
|
||||
"BasicIMAPSetupDialog_Title": "Λογαριασμός IMAP",
|
||||
"Buttons_AddAccount": "Προσθήκη Λογαριασμού",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Εφαρμογή Θέματος",
|
||||
"Buttons_Browse": "Περιήγηση",
|
||||
"Buttons_Cancel": "Ακύρωση",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Σύνδεση",
|
||||
"Buttons_TryAgain": "Προσπαθήστε ξανά",
|
||||
"Buttons_Yes": "Ναι",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Κέντρο",
|
||||
"ComingSoon": "Έρχεται σύντομα...",
|
||||
"ComposerFrom": "Από: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Ορισμός προσαρμοσμένης ταπετσαρίας",
|
||||
"DialogMessage_AccountLimitMessage": "Έχετε φτάσει το όριο δημιουργίας λογαριασμού.\nΘα θέλατε να αγοράσετε το πρόσθετο 'Απεριόριστοι Λογαριασμοί' για να συνεχίσετε;",
|
||||
"DialogMessage_AccountLimitTitle": "Το Όριο Λογαριασμού Επιτεύχθη",
|
||||
"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": "Θέλετε να διαγράψετε μόνιμα όλα τα μηνύματα σε αυτό το φάκελο;",
|
||||
"DialogMessage_CleanupFolderTitle": "Εκκαθάριση Φακέλου",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Το μήνυμα δεν έχει παραλήπτη.",
|
||||
@@ -82,7 +103,7 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Μετονομασία Συνδεδεμένου Λογαριασμού",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Αυτή η λειτουργία δεν θα διαγράψει τους λογαριασμούς σας αλλά, απλά θα διαλύσει το σύνδεσμο για συνδέσεις κοινόχρηστων φακέλων. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Αποδέσμευση Λογαριασμού",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Χωρίς Θέμα",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Το μήνυμα δεν έχει θέμα. Θέλετε να συνεχίσετε;",
|
||||
"DialogMessage_RenameFolderTitle": "Μετονομασία Φακέλου",
|
||||
"DialogMessage_RenameFolderMessage": "Εισάγετε νέο όνομα για αυτόν το φάκελο",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Για να σταματήσετε να λαμβάνετε μηνύματα από το {0}, μεταβείτε στην ιστοσελίδα τους για να καταργήσετε την εγγραφή σας.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Μεταβείτε στον ιστότοπο",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Θέλετε να σταματήσετε να λαμβάνετε μηνύματα από τον{0}; Το Wino θα κάνει κατάργηση εγγραφής για εσάς στέλνοντας ένα email από τον λογαριασμό email σας στο {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Να μην ερωτηθώ ξανά",
|
||||
"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 δεν έχει το δικό του διακομιστή στο Discord, αλλά το ειδικό κανάλι «wino-mail» φιλοξενείται στον διακομιστή «Developer Sanctuary».\nΓια να λάβετε τις ενημερώσεις σχετικά με το Wino παρακαλούμε γίνετε μέλος του διακομιστή Developer Sanctuary και ακολουθήστε το κανάλι «wino-mail» στο «Community Projects»\n\nΘα κατευθυνθείτε στο URL του διακομιστή καθώς το Discord δεν υποστηρίζει προσκλήσεις καναλιών.",
|
||||
"DiscordChannelDisclaimerTitle": "Σημαντικές Πληροφορίες για το Discord",
|
||||
"Draft": "Πρόχειρο",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Σχέδιο",
|
||||
"EditorToolbarOption_Format": "Μορφή",
|
||||
"EditorToolbarOption_Insert": "Εισαγωγή",
|
||||
@@ -105,7 +136,8 @@
|
||||
"ElementTheme_Default": "Χρήση ρυθμίσεων συστήματος",
|
||||
"ElementTheme_Light": "Ανοιχτή λειτουργία",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_WinoServerException": "Ο διακομιστής Wino απέτυχε.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Δεν βρέθηκαν οι ρυθμίσεις γραμματοκιβωτίου.",
|
||||
"Exception_ImapClientPoolFailed": "Αποτυχία συγκέντρωσης πελάτη IMAP.",
|
||||
"Exception_AuthenticationCanceled": "Η ταυτοποίηση ακυρώθηκε",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Πρέπει να δώσετε ένα όνομα.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Πρέπει να δώσετε μια προσαρμοσμένη εικόνα φόντου.",
|
||||
"Exception_FailedToSynchronizeFolders": "Αποτυχία συγχρονισμού φακέλων",
|
||||
"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 είναι κενό κατά την ενεργοποίηση.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Κατεστραμμένη απάντηση εξουσιοδότησης.",
|
||||
"Exception_GoogleAuthError": "Σφάλμα εξουσιοδότησης OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Αυτός ο σύνδεσμος κατάργησης εγγραφής δεν είναι έγκυρος. Αποτυχία διαγραφής από τη λίστα.",
|
||||
"Info_UnsubscribeSuccessMessage": "Επιτυχής κατάργηση εγγραφής από το {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Αποτυχία κατάργησης εγγραφής",
|
||||
"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": "Μέθοδος επαλήθευσης",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Ασφάλεια σύνδεσης",
|
||||
"ImapAuthenticationMethod_Auto": "Αυτόματο",
|
||||
@@ -336,7 +373,7 @@
|
||||
"ProtocolLogAvailable_Message": "Τα αρχεία καταγραφής πρωτοκόλλου είναι διαθέσιμα για διαγνωστικά.",
|
||||
"Results": "Αποτελέσματα",
|
||||
"Right": "Δεξιά",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Αποθήκευση όλων των συνημμένων",
|
||||
"SynchronizationFolderReport_Success": "ενημερωμένο",
|
||||
"SynchronizationFolderReport_Failed": "ο συγχρονισμός απέτυχε",
|
||||
"SearchBarPlaceholder": "Αναζήτηση",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Συγχρονισμός Φακέλου",
|
||||
"SettingsFolderOptions_Title": "Διαμόρφωση Φακέλου",
|
||||
"SettingsFolderOptions_Description": "Αλλάξτε μεμονωμένες ρυθμίσεις φακέλου, όπως ενεργοποίηση/απενεργοποίηση συγχρονισμού ή εμφάνιση/απόκρυψη σήματος ανάγνωσης.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Κεντρική Ενέργεια",
|
||||
"SettingsHoverActionLeft": "Αριστερή Ενέργεια",
|
||||
"SettingsHoverActionRight": "Δεξιά Ενέργεια",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Γλώσσα & Ώρα",
|
||||
"SettingsLanguageTime_Description": "Εμφάνιση γλώσσας Wino, προτιμώμενη μορφή ώρας.",
|
||||
"CategoriesFolderNameOverride": "Κατηγορίες",
|
||||
"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": "Περισσότερα",
|
||||
"SettingsOptions_Title": "Ρυθμίσεις",
|
||||
"SettingsLinkAccounts_Description": "Συγχώνευση πολλαπλών λογαριασμών σε έναν. Δείτε τα μηνύματα σε ένα φάκελο Εισερχόμενα μαζί.",
|
||||
@@ -420,19 +464,19 @@
|
||||
"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",
|
||||
"SettingsAppPreferences_Title": "Προτιμήσεις Εφαρμογής",
|
||||
"SettingsAppPreferences_Description": "Γενικές ρυθμίσεις / προτιμήσεις για το Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Συμπεριφορά κλεισίματος εφαρμογής",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "Τί πρέπει να συμβεί όταν κλείσετε την εφαρμογή;",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Εκκίνηση σε ελαχιστοποίηση κατά την έναρξη των Windows",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Επιτρέψτε στο Wino Mail να ξεκινήσει ελαχιστοποιημένο όταν ξεκινούν τα Windows. Επιτρέπει πάντα τη λήψη ειδοποιήσεων.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Το Wino Mail ορίστηκε να ξεκινάει στο παρασκήνιο κατά την εκκίνηση των Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Το Wino Mail δε θα ξεκινήσει κατά την εκκίνηση των Windows. Αυτό θα προκαλέσει απώλεια ειδοποιήσεων όταν επανεκκινήσετε τον υπολογιστή σας.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Ο διαχειριστής ή οι πολιτικές ομάδας έχουν απενεργοποιήσει την εκκίνηση εφαρμογών κατά την έναρξη. Έτσι, το Wino Mail δεν μπορεί να ρυθμιστεί για να ξεκινήσει κατά την εκκίνηση των Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Μεταβείτε στη Διαχείριση Εργασιών -> Καρτέλα εκκίνησης για να επιτρέψετε στο Wino Mail να ξεκινήσει κατά την εκκίνηση των Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Μοιραίο σφάλμα προέκυψε κατά την αλλαγή της λειτουργίας εκκίνησης για το Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Ενεργοποίηση",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Απενεργοποίηση",
|
||||
"SettingsReorderAccounts_Title": "Αναδιάταξη Λογαριασμών",
|
||||
"SettingsReorderAccounts_Description": "Αλλάξτε τη σειρά των λογαριασμών στη λίστα λογαριασμών.",
|
||||
"SettingsManageLink_Description": "Μετακίνηση αντικειμένων για προσθήκη νέου συνδέσμου ή κατάργηση υπάρχοντος συνδέσμου.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Δεν έχετε ρυθμίσει κανέναν λογαριασμό ακόμα.",
|
||||
"SettingsNotifications_Description": "Ενεργοποίηση ή απενεργοποίηση ειδοποιήσεων για αυτόν τον λογαριασμό.",
|
||||
"SettingsNotifications_Title": "Ειδοποιήσεις",
|
||||
"SettingsPaneLength_Description": "Αλλαγή του πλάτους της λίστας αλληλογραφίας.",
|
||||
"SettingsPaneLength_Title": "Μήκος Παραθύρου Λίστας Αλληλογραφίας",
|
||||
"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": "Δείξτε πολύ περισσότερη αγάπη ❤️ Όλες οι δωρεές εκτιμούνται.",
|
||||
"SettingsPaypal_Title": "Δωρεά μέσω PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Συμπαγής Λειτουργία",
|
||||
@@ -539,14 +583,14 @@
|
||||
"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"
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Ελαχιστοποίηση στο συρτάρι ειδοποιήσεων συστήματος",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Το Wino Mail θα συνεχίσει να εκτελείται στο συαρτάρι συστήματος. Διαθέσιμο για εκκίνηση κάνοντας κλικ σε ένα εικονίδιο. Θα ειδοποιηθείτε καθώς φτάνουν νέα μηνύματα.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Εκτέλεση στο παρασκήνιο",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Το Wino Mail θα συνεχίσει να εκτελείται στο παρασκήνιο. Θα ειδοποιηθείτε καθώς φτάνουν νέα μηνύματα.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Τερματισμός",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Το Wino Mail δεν θα συνεχίσει να τρέχει πουθενά. Δεν θα ειδοποιηθείτε καθώς φτάνουν νέα μηνύματα. Εκκινήστε ξανά το Wino Mail για να συνεχίσετε το συγχρονισμό αλληλογραφίας.",
|
||||
"TitleBarServerDisconnectedButton_Title": "χωρίς σύνδεση",
|
||||
"TitleBarServerDisconnectedButton_Description": "Το Wino αποσυνδέθηκε από το δίκτυο. Κάντε κλικ στην επιλογή επανασύνδεση για επαναφορά της σύνδεσης.",
|
||||
"TitleBarServerReconnectButton_Title": "επανασύνδεση",
|
||||
"TitleBarServerReconnectingButton_Title": "γίνεται σύνδεση"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"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",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Your credentials will only be stored locally on your computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Some accounts require additional steps to sign in",
|
||||
@@ -21,6 +29,8 @@
|
||||
"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",
|
||||
@@ -42,6 +52,8 @@
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Buttons_Send": "Send",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
@@ -64,6 +76,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.",
|
||||
@@ -91,10 +113,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +138,7 @@
|
||||
"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",
|
||||
@@ -113,6 +146,9 @@
|
||||
"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}",
|
||||
@@ -253,6 +289,8 @@
|
||||
"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",
|
||||
@@ -396,6 +434,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",
|
||||
@@ -406,6 +446,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +493,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",
|
||||
@@ -474,7 +519,7 @@
|
||||
"SettingsRenameMergeAccount_Title": "Rename",
|
||||
"SettingsSemanticZoom_Description": "This will allow you to click on the headers in messages list and go to specific date",
|
||||
"SettingsSemanticZoom_Title": "Semantic Zoom for Date Headers",
|
||||
"SettingsShowPreviewText_Description": "Hide/show thepreview text.",
|
||||
"SettingsShowPreviewText_Description": "Hide/show the preview text.",
|
||||
"SettingsShowPreviewText_Title": "Show Preview Text",
|
||||
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
|
||||
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
|
||||
@@ -488,7 +533,9 @@
|
||||
"SettingsStore_Title": "Rate in Store",
|
||||
"SettingsThreads_Description": "Organize messages into conversation threads.",
|
||||
"SettingsThreads_Title": "Conversation Threading",
|
||||
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. This will not delete your accounts.",
|
||||
"SettingsMailListActionBar_Description": "Hide/show action bar at top of message list.",
|
||||
"SettingsMailListActionBar_Title": "Show mail list actions",
|
||||
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. his will not delete your accounts.",
|
||||
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
|
||||
"SortingOption_Date": "by date",
|
||||
"SortingOption_Name": "by name",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "inicializando",
|
||||
"AccountCreationDialog_PreparingFolders": "Estamos obteniendo información de la carpeta en este momento.",
|
||||
"AccountCreationDialog_SigninIn": "La información de la cuenta se está guardando.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nombre de la Cuenta",
|
||||
"AccountEditDialog_Title": "Editar cuenta",
|
||||
"AccountPickerDialog_Title": "Elija una cuenta",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "por ejemplo: Juan López",
|
||||
"AddHyperlink": "Añadir",
|
||||
"AutoDiscoveryProgressMessage": "Buscando ajustes de correo...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Configuración avanzada",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Sus credenciales sólo se almacenarán localmente en su ordenador.",
|
||||
"BasicIMAPSetupDialog_Description": "Algunas cuentas necesitan pasos adicionales para iniciar sesión",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Contraseña",
|
||||
"BasicIMAPSetupDialog_Title": "Cuenta IMAP",
|
||||
"Buttons_AddAccount": "Añadir Cuenta",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Aplicar Tema",
|
||||
"Buttons_Browse": "Buscar",
|
||||
"Buttons_Cancel": "Cancelar",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Iniciar Sesión",
|
||||
"Buttons_TryAgain": "Inténtalo de nuevo",
|
||||
"Buttons_Yes": "Sí",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centrar",
|
||||
"ComingSoon": "Próximamente...",
|
||||
"ComposerFrom": "De: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Establecer imagen de fondo personalizada",
|
||||
"DialogMessage_AccountLimitMessage": "Has alcanzado el límite para crear cuentas.\n¿Te gustaría comprar el add-on 'Cuentas Ilimitadas' para continuar?",
|
||||
"DialogMessage_AccountLimitTitle": "Límite de Cuentas Alcanzado",
|
||||
"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": "¿Quieres borrar permanentemente todos los correos en esta carpeta?",
|
||||
"DialogMessage_CleanupFolderTitle": "Carpeta de Limpieza",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "El mensaje no tiene destinatario.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Para dejar de recibir mensajes de {0}, ve a su sitio web para darse de baja.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Ir al sitio web",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "¿Quieres dejar de recibir mensajes de {0}? Wino cancelará su suscripción enviando un correo electrónico desde su cuenta de correo electrónico a {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "No preguntar de nuevo",
|
||||
"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 no tiene un servidor de Discordia propio, pero el canal especial 'wino-mail' está hospedado en servidor 'Developer Sanctuary'.\nPara obtener actualizaciones acerca de Wino únase al Santuario servidor de Desarrolladores y siga el canal 'wino-mail' en 'Community Projects'\n\nSerás redirigido a la URL del servidor cuando la Discordia no soporta canales invitados.",
|
||||
"DiscordChannelDisclaimerTitle": "Información de Discord importante",
|
||||
"Draft": "Borrador",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Dibujar",
|
||||
"EditorToolbarOption_Format": "Formato",
|
||||
"EditorToolbarOption_Insert": "Insertar",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Modo claro",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "No se pudo encontrar la configuración del buzón.",
|
||||
"Exception_ImapClientPoolFailed": "Cola Cliente IMAP falló.",
|
||||
"Exception_AuthenticationCanceled": "Autenticación cancelada",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Debe proporcionar un nombre.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Debe proporcionar una imagen de fondo personalizada.",
|
||||
"Exception_FailedToSynchronizeFolders": "Error al sincronizar carpetas",
|
||||
"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 nulo al activarse.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Respuesta de autorización corrupta.",
|
||||
"Exception_GoogleAuthError": "Error de autorización de OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Este enlace de baja suscripción no es válido. Error al darse de baja de la lista.",
|
||||
"Info_UnsubscribeSuccessMessage": "Se ha cancelado la suscripción de {0} correctamente.",
|
||||
"Info_UnsubscribeErrorMessage": "Error al anular suscripción",
|
||||
"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": "Método de autenticación",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Seguridad de la conexión",
|
||||
"ImapAuthenticationMethod_Auto": "Auto",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Sincronización de carpetas",
|
||||
"SettingsFolderOptions_Title": "Configuración de carpeta",
|
||||
"SettingsFolderOptions_Description": "Cambie los ajustes de la carpeta individual como activar/desactivar la sincronización o muestra/oculta insignias no leídas.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Centro de Acción",
|
||||
"SettingsHoverActionLeft": "Acción Izquierda",
|
||||
"SettingsHoverActionRight": "Acción Derecha",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Idioma y Hora",
|
||||
"SettingsLanguageTime_Description": "Idioma de visualización de Wino, formato de hora preferido.",
|
||||
"CategoriesFolderNameOverride": "Categorías",
|
||||
"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": "Más",
|
||||
"SettingsOptions_Title": "Ajustes",
|
||||
"SettingsLinkAccounts_Description": "Fusionar múltiples cuentas en una. Ver correos en una bandeja de entrada común.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Aún no has configurado ninguna cuenta.",
|
||||
"SettingsNotifications_Description": "Activar o desactivar notificaciones para esta cuenta.",
|
||||
"SettingsNotifications_Title": "Notificaciones",
|
||||
"SettingsPaneLength_Description": "Cambiar el ancho de la lista de correo.",
|
||||
"SettingsPaneLength_Title": "Longitud del panel de la lista de correo",
|
||||
"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": "Muestre mucho más amor ❤️ Todas las donaciones se agradecen.",
|
||||
"SettingsPaypal_Title": "Dona vía PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Modo Compacto",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "valmistellaan",
|
||||
"AccountCreationDialog_PreparingFolders": "Valmistellaan kansioita",
|
||||
"AccountCreationDialog_SigninIn": "Tallennetaan tilin tietoja.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Tilin nimi",
|
||||
"AccountEditDialog_Title": "Muokkaa tiliä",
|
||||
"AccountPickerDialog_Title": "Valitse tili",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "esim. Matti Meikäläinen",
|
||||
"AddHyperlink": "Lisää",
|
||||
"AutoDiscoveryProgressMessage": "Haetaan sähköpostiasetuksia...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Lisäasetukset",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Käyttäjätietosi tallennetaan ainoastaan paikallisesti tietokoneellesi.",
|
||||
"BasicIMAPSetupDialog_Description": "Jotkin tilit vaativat lisätoimia sisäänkirjautumista varten",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Salasana",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP-tili",
|
||||
"Buttons_AddAccount": "Lisää tili",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Vaihda teemaa",
|
||||
"Buttons_Browse": "Selaa",
|
||||
"Buttons_Cancel": "Peruuta",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Kirjaudu sisään",
|
||||
"Buttons_TryAgain": "Yritä uudelleen",
|
||||
"Buttons_Yes": "Kyllä",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Keskitetty",
|
||||
"ComingSoon": "Tulossa pian...",
|
||||
"ComposerFrom": "Lähettäjä: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Aseta mukautettu taustakuva",
|
||||
"DialogMessage_AccountLimitMessage": "Sinulla on jo suurin sallittu määrä tilejä.\nHaluatko ostaa 'Rajattomat Tilit' lisäosan jatkaaksesi?",
|
||||
"DialogMessage_AccountLimitTitle": "Suurin sallittu tilien määrä saavutettu",
|
||||
"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": "Haluatko pysyvästi poistaa kaikki sähköpostit tästä kansiosta?",
|
||||
"DialogMessage_CleanupFolderTitle": "Siivoa Kansio",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Viestillä ei ole vastaanottajaa.",
|
||||
@@ -82,7 +103,7 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Uudelleennimeä yhdistetty tili",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Tämä ei poista tilejäsi, ainoastaan yhteyden tilien jaettujen kansioiden välillä. Haluatko jatkaa?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Poista tilien yhteys",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Aihe puuttuu",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Viestillä ei ole aihetta. Haluatko jatkaa?",
|
||||
"DialogMessage_RenameFolderTitle": "Uudelleennimeä kansio",
|
||||
"DialogMessage_RenameFolderMessage": "Anna uusi nimi tälle kansiolle",
|
||||
@@ -91,13 +112,23 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Lopettaaksesi viestien saamisen lähettäjältä {0}, mene heidän verkkosivuilleen peruuttaaksesi tilauksesi.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Avaa verkkosivu",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Haluatko lopettaa viestien saamisen lähettäjältä {0}? Wino voi peruuttaa tilauksesi lähettämällä viestin sähköpostiosoitteestasi osoitteeseen {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Älä kysy uudelleen",
|
||||
"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",
|
||||
"EditorToolbarOption_Draw": "Draw",
|
||||
"EditorToolbarOption_Format": "Format",
|
||||
"EditorToolbarOption_Insert": "Insert",
|
||||
"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": "Winolla ei ole omaa Discord palvelinta, mutta 'wino-mail' kanava löytyy 'Developer Sanctuary' palvelimelta.\nSaadaksesi päivityksiä Winosta, liity Developer Sanctuary palvelimelle ja seuraa 'wino-mail' kanavaa 'Community Projects' osiossa.\n\nSinut uudelleenohjataan palvelimen osoitteeseen, koska Discord ei tue kanava kutsuja.",
|
||||
"DiscordChannelDisclaimerTitle": "Tärkeää tietoa Discordista",
|
||||
"Draft": "Luonnos",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Piirrä",
|
||||
"EditorToolbarOption_Format": "Muotoile",
|
||||
"EditorToolbarOption_Insert": "Liitä",
|
||||
"EditorToolbarOption_None": "Ei mitään",
|
||||
"EditorToolbarOption_Options": "Asetukset",
|
||||
"EditorTooltip_WebViewEditor": "Käytä selainpohjaista editoria",
|
||||
@@ -105,14 +136,18 @@
|
||||
"ElementTheme_Default": "Käytä järjestelmän asetuksia",
|
||||
"ElementTheme_Light": "Vaalea teema",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_WinoServerException": "Wino-palvelin ei saatavilla.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Postilaatikon asetuksia ei löytynyt.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool ei saatavilla.",
|
||||
"Exception_AuthenticationCanceled": "Tunnistautuminen peruutettu",
|
||||
"Exception_CustomThemeExists": "Teema on jo olemassa.",
|
||||
"Exception_CustomThemeMissingName": "Sinun on annettava nimi.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Sinun on valittava taustakuva.",
|
||||
"Exception_FailedToSynchronizeFolders": "Kansioiden synkronointi epäonnistui",
|
||||
"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}",
|
||||
@@ -130,30 +165,30 @@
|
||||
"Exception_UnsupportedSynchronizerOperation": "This operation is not supported for {0}",
|
||||
"Exception_UserCancelSystemFolderSetupDialog": "User canceled system folder config dialog.",
|
||||
"Exception_InboxNotAvailable": "Couldn't setup account folders.",
|
||||
"Files": "Files",
|
||||
"FilteringOption_All": "All",
|
||||
"FilteringOption_Flagged": "Flagged",
|
||||
"FilteringOption_Unread": "Unread",
|
||||
"FilteringOption_Files": "Has files",
|
||||
"Focused": "Focused",
|
||||
"FolderOperation_CreateSubFolder": "Create sub folder",
|
||||
"FolderOperation_Delete": "Delete",
|
||||
"FolderOperation_DontSync": "Don't sync this folder",
|
||||
"FolderOperation_Empty": "Empty this folder",
|
||||
"FolderOperation_MarkAllAsRead": "Mark all as read",
|
||||
"FolderOperation_Move": "Move",
|
||||
"DragMoveToFolderCaption": "Move to {0}",
|
||||
"FolderOperation_None": "None",
|
||||
"FolderOperation_Pin": "Pin",
|
||||
"FolderOperation_Rename": "Rename",
|
||||
"FolderOperation_Unpin": "Unpin",
|
||||
"HoverActionOption_Archive": "Archive",
|
||||
"HoverActionOption_Delete": "Delete",
|
||||
"HoverActionOption_MoveJunk": "Move to Junk",
|
||||
"HoverActionOption_ToggleFlag": "Flag / Unflag",
|
||||
"HoverActionOption_ToggleRead": "Read / Unread",
|
||||
"MergedAccountCommonFolderInbox": "Inbox",
|
||||
"MergedAccountCommonFolderSent": "Sent",
|
||||
"Files": "Tiedostot",
|
||||
"FilteringOption_All": "Kaikki",
|
||||
"FilteringOption_Flagged": "Merkitty",
|
||||
"FilteringOption_Unread": "Lukemattomat",
|
||||
"FilteringOption_Files": "Liitteelliset",
|
||||
"Focused": "Keskitetyt",
|
||||
"FolderOperation_CreateSubFolder": "Luo alikansio",
|
||||
"FolderOperation_Delete": "Poista",
|
||||
"FolderOperation_DontSync": "Älä synkronoi tätä kansiota",
|
||||
"FolderOperation_Empty": "Tyhjennä kansio",
|
||||
"FolderOperation_MarkAllAsRead": "Merkitse kaikki luetuksi",
|
||||
"FolderOperation_Move": "Siirrä",
|
||||
"DragMoveToFolderCaption": "Siirrä sijaintiin {0}",
|
||||
"FolderOperation_None": "Ei mitään",
|
||||
"FolderOperation_Pin": "Kiinnitä",
|
||||
"FolderOperation_Rename": "Nimeä uudelleen",
|
||||
"FolderOperation_Unpin": "Poista kiinnitys",
|
||||
"HoverActionOption_Archive": "Arkistoi",
|
||||
"HoverActionOption_Delete": "Poista",
|
||||
"HoverActionOption_MoveJunk": "Siirrä roskakoriin",
|
||||
"HoverActionOption_ToggleFlag": "Merkitse / Poista merkintä",
|
||||
"HoverActionOption_ToggleRead": "Luettu / Lukematon",
|
||||
"MergedAccountCommonFolderInbox": "Saapuneet",
|
||||
"MergedAccountCommonFolderSent": "Lähetetyt",
|
||||
"MergedAccountCommonFolderDraft": "Draft",
|
||||
"MergedAccountCommonFolderJunk": "Junk",
|
||||
"MergedAccountCommonFolderTrash": "Deleted",
|
||||
@@ -187,56 +222,56 @@
|
||||
"GeneralTitle_Warning": "Warning",
|
||||
"GeneralTitle_Info": "Information",
|
||||
"Info_AccountCreatedMessage": "{0} is created",
|
||||
"Info_AccountCreatedTitle": "Account Creation",
|
||||
"Info_AccountCreationFailedTitle": "Account Creation Failed",
|
||||
"Info_AccountDeletedMessage": "{0} is successfuly deleted.",
|
||||
"Info_AccountDeletedTitle": "Account Deleted",
|
||||
"Info_AccountIssueFixFailedTitle": "Failed",
|
||||
"Info_AccountIssueFixSuccessMessage": "Fixed all account issues.",
|
||||
"Info_AccountIssueFixSuccessTitle": "Success",
|
||||
"Info_AttachmentOpenFailedMessage": "Can't open this attachment.",
|
||||
"Info_AttachmentOpenFailedTitle": "Failed",
|
||||
"Info_AttachmentSaveFailedMessage": "Can't save this attachment.",
|
||||
"Info_AttachmentSaveFailedTitle": "Failed",
|
||||
"Info_AttachmentSaveSuccessMessage": "Attachment is saved.",
|
||||
"Info_AttachmentSaveSuccessTitle": "Attachment Saved",
|
||||
"Info_BackgroundExecutionDeniedMessage": "Background execution for the app is denied. This may affect background synchronization and live notifications.",
|
||||
"Info_BackgroundExecutionDeniedTitle": "Denied Background Execution",
|
||||
"Info_BackgroundExecutionUnknownErrorMessage": "Unknown exception occurred when registering background synchronizer.",
|
||||
"Info_BackgroundExecutionUnknownErrorTitle": "Background Execution Failure",
|
||||
"Info_ComposerMissingMIMEMessage": "Couldn't locate the MIME file. Synchronizing may help.",
|
||||
"Info_ComposerMissingMIMETitle": "Failed",
|
||||
"Info_ContactExistsMessage": "This contact is already in the recipient list.",
|
||||
"Info_ContactExistsTitle": "Contact Exists",
|
||||
"Info_DraftFolderMissingMessage": "Draft folder is missing for this account. Please check your account settings.",
|
||||
"Info_DraftFolderMissingTitle": "Missing Draft Folder",
|
||||
"Info_FileLaunchFailedTitle": "Failed to launch file",
|
||||
"Info_InvalidAddressMessage": "'{0}' is not a valid e-mail address.",
|
||||
"Info_InvalidAddressTitle": "Invalid Address",
|
||||
"Info_InvalidMoveTargetMessage": "You can't move selected mails to this folder.",
|
||||
"Info_InvalidMoveTargetTitle": "Invalid Move Target",
|
||||
"Info_LogsNotFoundMessage": "There are no logs to share.",
|
||||
"Info_LogsNotFoundTitle": "Logs Not Found",
|
||||
"Info_LogsSavedMessage": "{0} is saved to selected folder.",
|
||||
"Info_LogsSavedTitle": "Saved",
|
||||
"Info_MailRenderingFailedMessage": "This mail is corrupted or can't be opened.\n{0}",
|
||||
"Info_MailRenderingFailedTitle": "Render Failed",
|
||||
"Info_MessageCorruptedMessage": "This message is corrupted.",
|
||||
"Info_MessageCorruptedTitle": "Error",
|
||||
"Info_MissingFolderMessage": "{0} doesn't exist for this account.",
|
||||
"Info_MissingFolderTitle": "Missing Folder",
|
||||
"Info_PDFSaveSuccessTitle": "Success",
|
||||
"Info_PDFSaveFailedTitle": "Failed to save PDF file",
|
||||
"Info_PDFSaveSuccessMessage": "PDF file is saved to {0}",
|
||||
"Info_PurchaseExistsMessage": "Looks like this product has already been purchased before.",
|
||||
"Info_PurchaseExistsTitle": "Existing Product",
|
||||
"Info_PurchaseThankYouMessage": "Thank You",
|
||||
"Info_PurchaseThankYouTitle": "Purchase successful",
|
||||
"Info_RequestCreationFailedTitle": "Failed to Create Requests",
|
||||
"Info_ReviewNetworkErrorMessage": "There was a network issue with your review.",
|
||||
"Info_ReviewNetworkErrorTitle": "Network Issue",
|
||||
"Info_ReviewNewMessage": "All feedbacks are appreciated. Thank you for the review!",
|
||||
"Info_ReviewSuccessTitle": "Thank you",
|
||||
"Info_AccountCreatedTitle": "Tilin luominen",
|
||||
"Info_AccountCreationFailedTitle": "Tilin luominen epäonnistui",
|
||||
"Info_AccountDeletedMessage": "{0} poistettiin onnistuneesti.",
|
||||
"Info_AccountDeletedTitle": "Tili poistettu",
|
||||
"Info_AccountIssueFixFailedTitle": "Epäonnistui",
|
||||
"Info_AccountIssueFixSuccessMessage": "Kaikki tiliongelmat korjattu.",
|
||||
"Info_AccountIssueFixSuccessTitle": "Onnistui",
|
||||
"Info_AttachmentOpenFailedMessage": "Tätä liitettä ei voi avata.",
|
||||
"Info_AttachmentOpenFailedTitle": "Epäonnistui",
|
||||
"Info_AttachmentSaveFailedMessage": "Tätä liitettä ei voi tallentaa.",
|
||||
"Info_AttachmentSaveFailedTitle": "Epäonnistui",
|
||||
"Info_AttachmentSaveSuccessMessage": "Liite tallennettu.",
|
||||
"Info_AttachmentSaveSuccessTitle": "Liite tallennettu",
|
||||
"Info_BackgroundExecutionDeniedMessage": "Sovelluksen käyttäminen taustalla on estetty. Tämä voi vaikuttaa tausta synkronisointiin ja live-ilmoituksiin.",
|
||||
"Info_BackgroundExecutionDeniedTitle": "Taustakäyttö estetty",
|
||||
"Info_BackgroundExecutionUnknownErrorMessage": "Tuntematon virhe tapahtui rekisteröidessä taustasynkronisoijaa.",
|
||||
"Info_BackgroundExecutionUnknownErrorTitle": "Tausta suoritus epäonnistui",
|
||||
"Info_ComposerMissingMIMEMessage": "MIME tiedostoa ei löytynyt. Synkronointi voi auttaa.",
|
||||
"Info_ComposerMissingMIMETitle": "Epäonnistui",
|
||||
"Info_ContactExistsMessage": "Tämä yhteystieto on jo vastaanottajalistalla.",
|
||||
"Info_ContactExistsTitle": "Yhteystieto olemassa",
|
||||
"Info_DraftFolderMissingMessage": "Luonnos kansio puuttuu tältä tililtä. Tarkasta tilisi asetukset.",
|
||||
"Info_DraftFolderMissingTitle": "Luonnos kansio puuuttuu",
|
||||
"Info_FileLaunchFailedTitle": "Tiedoston avaaminen epäonnistui",
|
||||
"Info_InvalidAddressMessage": "'{0}' ei ole kelvollinen sähköpostiosoite.",
|
||||
"Info_InvalidAddressTitle": "Virheellinen osoite",
|
||||
"Info_InvalidMoveTargetMessage": "Et voi siirtää valittuja viestejä tähän kansioon.",
|
||||
"Info_InvalidMoveTargetTitle": "Virheellinen kohde",
|
||||
"Info_LogsNotFoundMessage": "Ei jaettavia lokeja.",
|
||||
"Info_LogsNotFoundTitle": "Lokeja ei löytynyt",
|
||||
"Info_LogsSavedMessage": "{0} tallennettiin valittuun kansioon.",
|
||||
"Info_LogsSavedTitle": "Tallennettu",
|
||||
"Info_MailRenderingFailedMessage": "Tämä viesti on vioittunut tai sitä ei voida avata.\n{0}",
|
||||
"Info_MailRenderingFailedTitle": "Renderöinti epäonnistui",
|
||||
"Info_MessageCorruptedMessage": "Tämä viesti on vioittunut.",
|
||||
"Info_MessageCorruptedTitle": "Virhe",
|
||||
"Info_MissingFolderMessage": "{0} ei ole olemassa tällä tilillä.",
|
||||
"Info_MissingFolderTitle": "Puuttuva kansio",
|
||||
"Info_PDFSaveSuccessTitle": "Onnistui",
|
||||
"Info_PDFSaveFailedTitle": "PDF tiedoston tallentaminen epäonnistui",
|
||||
"Info_PDFSaveSuccessMessage": "PDF tiedosto tallennettiin kohteeseen {0}",
|
||||
"Info_PurchaseExistsMessage": "Näyttää sille, että tämä tuote on ostettu jo aikaisemmin.",
|
||||
"Info_PurchaseExistsTitle": "Tuote olemassa",
|
||||
"Info_PurchaseThankYouMessage": "Kiitos",
|
||||
"Info_PurchaseThankYouTitle": "Ostos onnistui",
|
||||
"Info_RequestCreationFailedTitle": "Pyyntöjen luonti epäonnistui",
|
||||
"Info_ReviewNetworkErrorMessage": "Arvostelusi yhteydessä tapahtui virhe.",
|
||||
"Info_ReviewNetworkErrorTitle": "Verkkovirhe",
|
||||
"Info_ReviewNewMessage": "Kaikki palaute on tervetullutta. Kiitos arvostelustasi!",
|
||||
"Info_ReviewSuccessTitle": "Kiitos",
|
||||
"Info_ReviewUnknownErrorMessage": "There was an unknown issue with your review. ({0})",
|
||||
"Info_ReviewUnknownErrorTitle": "Unknown Error",
|
||||
"Info_ReviewUpdatedMessage": "Thank you for the updated review.",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -287,56 +324,56 @@
|
||||
"MailOperation_MarkAsUnread": "Mark as unread",
|
||||
"MailOperation_MarkNotJunk": "Mark as Not Junk",
|
||||
"MailOperation_Move": "Move",
|
||||
"MailOperation_MoveFocused": "Move to Focused",
|
||||
"MailOperation_MoveJunk": "Move to Junk",
|
||||
"MailOperation_MoveOther": "Move to Other",
|
||||
"MailOperation_Navigate": "Navigate",
|
||||
"MailOperation_Print": "Print",
|
||||
"MailOperation_Reply": "Reply",
|
||||
"MailOperation_ReplyAll": "Reply all",
|
||||
"MailOperation_SaveAs": "Save As",
|
||||
"MailOperation_SetFlag": "Set flag",
|
||||
"MailOperation_Unarchive": "Unarchive",
|
||||
"MailOperation_Zoom": "Zoom",
|
||||
"MailsSelected": "{0} item(s) selected",
|
||||
"MarkFlagUnflag": "Mark as flagged/unflagged",
|
||||
"MarkReadUnread": "Mark as read/unread",
|
||||
"MenuManageAccounts": "Manage Accounts",
|
||||
"MenuNewMail": "New Mail",
|
||||
"MenuMergedAccountItemAccountsSuffix": " accounts",
|
||||
"MenuRate": "Rate Wino",
|
||||
"MenuSettings": "Settings",
|
||||
"MergedAccountsAvailableAccountsTitle": "Available Accounts",
|
||||
"More": "More",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} is not a valid folder for this mail.",
|
||||
"MoveMailDialog_Title": "Pick a folder",
|
||||
"NewAccountDialog_AccountName": "Account Name",
|
||||
"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",
|
||||
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
|
||||
"Notifications_MultipleNotificationsTitle": "New Mails",
|
||||
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
|
||||
"Notifications_WinoUpdatedTitle": "Wino Mail has been updated.",
|
||||
"Other": "Other",
|
||||
"PaneLengthOption_Default": "Default",
|
||||
"PaneLengthOption_ExtraLarge": "Extra Large",
|
||||
"PaneLengthOption_Large": "Large",
|
||||
"PaneLengthOption_Medium": "Medium",
|
||||
"MailOperation_MoveFocused": "Siirrä keskitettyihin",
|
||||
"MailOperation_MoveJunk": "Siirrä roskakoriin",
|
||||
"MailOperation_MoveOther": "Siirrä 'muut' kansioon",
|
||||
"MailOperation_Navigate": "Navigoi",
|
||||
"MailOperation_Print": "Tulosta",
|
||||
"MailOperation_Reply": "Vastaa",
|
||||
"MailOperation_ReplyAll": "Vastaa kaikille",
|
||||
"MailOperation_SaveAs": "Tallenna nimellä",
|
||||
"MailOperation_SetFlag": "Aseta merkintä",
|
||||
"MailOperation_Unarchive": "Poista arkistointi",
|
||||
"MailOperation_Zoom": "Zoomaa",
|
||||
"MailsSelected": "{0} kohta(a) valittu",
|
||||
"MarkFlagUnflag": "Merkitse tai poista merkintä",
|
||||
"MarkReadUnread": "Merkitse luetuksi / lukemattomaksi",
|
||||
"MenuManageAccounts": "Tilien hallinta",
|
||||
"MenuNewMail": "Uusi sähköposti",
|
||||
"MenuMergedAccountItemAccountsSuffix": " tilit",
|
||||
"MenuRate": "Arvostele Wino",
|
||||
"MenuSettings": "Asetukset",
|
||||
"MergedAccountsAvailableAccountsTitle": "Saatavilla olevat tilit",
|
||||
"More": "Lisää",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} ei ole kelvollinen kansio tälle viestille.",
|
||||
"MoveMailDialog_Title": "Valitse kansio",
|
||||
"NewAccountDialog_AccountName": "Tilin nimi",
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Henkilökohtainen",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "esim. Oma sähköposti",
|
||||
"NewAccountDialog_Title": "Lisää uusi tili",
|
||||
"NoMailSelected": "Ei viestiä valittuna",
|
||||
"NoMessageCrieteria": "Mikään viesti ei vastaa hakuasi",
|
||||
"NoMessageEmptyFolder": "Kansio tyhjä",
|
||||
"Notifications_MultipleNotificationsMessage": "Sinulla on {0} uutta sähköpostia",
|
||||
"Notifications_MultipleNotificationsTitle": "Uudet sähköpostit",
|
||||
"Notifications_WinoUpdatedMessage": "Tarkasta uusi versio {0}",
|
||||
"Notifications_WinoUpdatedTitle": "Wino Mail on päivitetty.",
|
||||
"Other": "Muut",
|
||||
"PaneLengthOption_Default": "Oletus",
|
||||
"PaneLengthOption_ExtraLarge": "Extra suuri",
|
||||
"PaneLengthOption_Large": "Suuri",
|
||||
"PaneLengthOption_Medium": "Keskikokoinen",
|
||||
"PaneLengthOption_Micro": "Micro",
|
||||
"PaneLengthOption_Small": "Small",
|
||||
"Photos": "Photos",
|
||||
"PreparingFoldersMessage": "Preparing folders",
|
||||
"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",
|
||||
"PaneLengthOption_Small": "Pieni",
|
||||
"Photos": "Kuvat",
|
||||
"PreparingFoldersMessage": "Valmistellaan kansioita",
|
||||
"ProviderDetail_Gmail_Description": "Google-tili",
|
||||
"ProviderDetail_IMAP_Description": "Mukautettu IMAP/SMTP palvelin",
|
||||
"ProviderDetail_IMAP_Title": "IMAP-palvelin",
|
||||
"ProtocolLogAvailable_Message": "Protokolla lokit ovat saatavilla diagnostiikkaan.",
|
||||
"Results": "Tulokset",
|
||||
"Right": "Oikea",
|
||||
"Reader_SaveAllAttachmentButtonText": "Tallenna kaikki liitteet",
|
||||
"SynchronizationFolderReport_Success": "up to date",
|
||||
"SynchronizationFolderReport_Failed": "synchronization is failed",
|
||||
"SearchBarPlaceholder": "Search",
|
||||
@@ -387,7 +424,7 @@
|
||||
"SettingsEnableLogs_Title": "Enable Logs",
|
||||
"SettingsEnableSignature": "Enable Signature",
|
||||
"SettingsExpandOnStartup_Description": "Set whether Wino should expand this account's folders on startup.",
|
||||
"SettingsExpandOnStartup_Title": "Expand Menu on Startup",
|
||||
"SettingsExpandOnStartup_Title": "Laajenna valikko käynnistäessä",
|
||||
"SettingsExternalContent_Description": "Manage external content settings when rendering mails.",
|
||||
"SettingsExternalContent_Title": "External Content",
|
||||
"SettingsFocusedInbox_Description": "Set whether Inbox should be split into two as Focused - Other.",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,13 +3,21 @@
|
||||
"AccountCreationDialog_Initializing": "initialisation",
|
||||
"AccountCreationDialog_PreparingFolders": "Réception des informations du dossier.",
|
||||
"AccountCreationDialog_SigninIn": "Enregistrement des informations du compte.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nom du compte",
|
||||
"AccountEditDialog_Title": "Modifier le compte",
|
||||
"AccountPickerDialog_Title": "Choisir un compte",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AccountSettingsDialog_AccountName": "Nom d'affichage de l'expéditeur",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "ex. Jean Dupont",
|
||||
"AddHyperlink": "Ajouter",
|
||||
"AutoDiscoveryProgressMessage": "Recherche des paramètres de messagerie...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Paramètres avancés",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Vos identifiants seront uniquement stockés sur votre ordinateur.",
|
||||
"BasicIMAPSetupDialog_Description": "Certains comptes requièrent des étapes supplémentaires pour se connecter",
|
||||
@@ -21,15 +29,17 @@
|
||||
"BasicIMAPSetupDialog_Password": "Mot de passe",
|
||||
"BasicIMAPSetupDialog_Title": "Compte IMAP",
|
||||
"Buttons_AddAccount": "Ajouter un compte",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Appliquer le thème",
|
||||
"Buttons_Browse": "Parcourir",
|
||||
"Buttons_Cancel": "Annuler",
|
||||
"Buttons_Close": "Fermer",
|
||||
"Buttons_Create": "Créer",
|
||||
"Buttons_CreateAccount": "Créer un compte",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Copy": "Copier",
|
||||
"Buttons_Delete": "Supprimer",
|
||||
"Buttons_Edit": "Edit",
|
||||
"Buttons_Edit": "Editer",
|
||||
"Buttons_Discard": "Ignorer",
|
||||
"Buttons_EnableImageRendering": "Activer",
|
||||
"Buttons_No": "Non",
|
||||
@@ -40,20 +50,21 @@
|
||||
"Buttons_SaveConfiguration": "Enregistrer la configuration",
|
||||
"Buttons_Share": "Partager",
|
||||
"Buttons_SignIn": "Connexion",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_TryAgain": "Réessayer",
|
||||
"Buttons_Yes": "Oui",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centrer",
|
||||
"ComingSoon": "Bientôt disponible...",
|
||||
"ComposerFrom": "De : ",
|
||||
"ComposerSubject": "Objet : ",
|
||||
"ComposerTo": "À : ",
|
||||
"ClipboardTextCopied_Message": "{0} copied to clipboard.",
|
||||
"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",
|
||||
"ClipboardTextCopied_Message": "{0} copié dans le presse-papiers.",
|
||||
"ClipboardTextCopied_Title": "Copié",
|
||||
"ClipboardTextCopyFailed_Message": "Échec de la copie de {0} dans le presse-papiers.",
|
||||
"ComposerToPlaceholder": "cliquer sur entrée pour saisir les adresses",
|
||||
"ComposerAttachmentsDropZone_Message": "Déposez vos fichiers ici",
|
||||
"ComposerImagesDropZone_Message": "Déposez vos images ici",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Attacher",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Définir une couleur d'accentuation personnalisée si vous le souhaitez. Ne pas sélectionner une couleur utilisera votre couleur d'accentuation Windows.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Couleur d'accentuation",
|
||||
"CustomThemeBuilder_PickColor": "Choisir",
|
||||
@@ -64,12 +75,22 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Définir un fond d'écran personnalisé",
|
||||
"DialogMessage_AccountLimitMessage": "Vous avez atteint la limite de création de compte.\nVoulez-vous acheter le module 'Compte illimité' pour continuer ?",
|
||||
"DialogMessage_AccountLimitTitle": "Limite de compte atteinte",
|
||||
"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": "Voulez-vous supprimer définitivement tous les messages de ce dossier ?",
|
||||
"DialogMessage_CleanupFolderTitle": "Nettoyer le dossier",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Le message n'a pas de destinataire.",
|
||||
"DialogMessage_ComposerValidationFailedTitle": "Validation échouée",
|
||||
"DialogMessage_CreateLinkedAccountMessage": "Give this new link a name. Accounts will be merged under this name.",
|
||||
"DialogMessage_CreateLinkedAccountTitle": "Account Link Name",
|
||||
"DialogMessage_CreateLinkedAccountMessage": "Donnez un nom à ce nouveau lien. Les comptes seront fusionnés sous ce nom.",
|
||||
"DialogMessage_CreateLinkedAccountTitle": "Nom du lien des comptes liés",
|
||||
"DialogMessage_DeleteAccountConfirmationMessage": "Supprimer {0} ?",
|
||||
"DialogMessage_DeleteAccountConfirmationTitle": "Toutes les données associées à ce compte seront définitivement supprimées du disque.",
|
||||
"DialogMessage_DiscardDraftConfirmationMessage": "Ce brouillon sera supprimé. Voulez-vous continuer ?",
|
||||
@@ -79,63 +100,77 @@
|
||||
"DialogMessage_NoAccountsForCreateMailMessage": "Vous n'avez aucun compte pour créer un message.",
|
||||
"DialogMessage_NoAccountsForCreateMailTitle": "Compte manquant",
|
||||
"DialogMessage_RenameLinkedAccountsMessage": "Entrez un nouveau nom pour le compte lié",
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Changer le nom du lien des comptes",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Cette opération ne supprimera pas vos comptes mais ne supprimera que le lien pour les connexions de dossiers partagés. Voulez-vous continuer?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Dissocier les comptes",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Sujet manquant",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Le message n'a pas d'objet. Voulez-vous continuer ?",
|
||||
"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}.",
|
||||
"DialogMessage_RenameFolderTitle": "Renommer le dossier",
|
||||
"DialogMessage_RenameFolderMessage": "Saisir un nouveau nom pour ce dossier",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Se désabonner",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Voulez-vous cesser de recevoir des messages de {0} ?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Pour ne plus recevoir de messages de {0}, rendez-vous sur leur site web pour vous désabonner.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Accéder au site Web",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Souhaitez-vous ne plus recevoir de messages de la part de {0} ? Wino se désabonnera pour vous en envoyant un e-mail de votre compte e-mail à {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Ne plus demander",
|
||||
"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 n'a pas son propre serveur Discord, mais un canal spécial « wino-mail » est hébergé sur le serveur « Developer Sanctuary ».\nPour obtenir les mises à jour sur Wino, veuillez rejoindre le serveur Developer Sanctuary et suivre le canal « wino-mail » sous « Projets communautaires ».\n\nVous serez dirigé vers l'URL du serveur car Discord ne prend pas en charge les invitations à des chaînes.",
|
||||
"DiscordChannelDisclaimerTitle": "Informations importantes sur Discord",
|
||||
"Draft": "Brouillon",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Dessiner",
|
||||
"EditorToolbarOption_Format": "Format",
|
||||
"EditorToolbarOption_Insert": "Insérer",
|
||||
"EditorToolbarOption_None": "Aucun",
|
||||
"EditorToolbarOption_Options": "Options",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"EditorTooltip_WebViewEditor": "Utiliser l'éditeur de vue web",
|
||||
"ElementTheme_Dark": "Mode sombre",
|
||||
"ElementTheme_Default": "Utiliser les paramètres du système",
|
||||
"ElementTheme_Light": "Mode clair",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_WinoServerException": "Le serveur Wino a échoué.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Impossible de trouver les paramètres de la boîte de réception.",
|
||||
"Exception_ImapClientPoolFailed": "Échec du groupement de clients IMAP.",
|
||||
"Exception_AuthenticationCanceled": "Authentification annulée",
|
||||
"Exception_CustomThemeExists": "Ce thème existe déjà.",
|
||||
"Exception_CustomThemeMissingName": "Vous devez indiquer un nom.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Vous devez fournir une image d'arrière-plan personnalisée.",
|
||||
"Exception_FailedToSynchronizeFolders": "Échec de la synchronisation des dossiers",
|
||||
"Exception_GoogleAuthCallbackNull": "Callback uri is null on activation.",
|
||||
"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": "L'url de rappel est nulle lors de l'activation.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Réponse d’autorisation corrompue.",
|
||||
"Exception_GoogleAuthError": "Erreur d'autorisation OAuth : {0}",
|
||||
"Exception_GoogleAuthInvalidResponse": "Received request with invalid state ({0})",
|
||||
"Exception_GoogleAuthorizationCodeExchangeFailed": "Authorization code exchange failed.",
|
||||
"Exception_GoogleAuthInvalidResponse": "Demande reçue avec un état invalide ({0})",
|
||||
"Exception_GoogleAuthorizationCodeExchangeFailed": "L'échange de code d'autorisation a échoué.",
|
||||
"Exception_InvalidSystemFolderConfiguration": "La configuration du dossier système n’est pas valide. Vérifiez la configuration et réessayez.",
|
||||
"Exception_NullAssignedAccount": "Assigned account is null",
|
||||
"Exception_NullAssignedFolder": "Assigned folder is null",
|
||||
"Exception_SynchronizerFailureHTTP": "Response handling failed with error HTTP code {0}",
|
||||
"Exception_NullAssignedAccount": "Le compte assigné est null",
|
||||
"Exception_NullAssignedFolder": "Le dossier assigné est null",
|
||||
"Exception_SynchronizerFailureHTTP": "Le traitement de la réponse a échoué avec le code d'erreur HTTP {0}",
|
||||
"Exception_TokenGenerationFailed": "Échec de la génération du jeton",
|
||||
"Exception_TokenInfoRetrivalFailed": "Impossible de récupérer les informations de l'utilisateur.",
|
||||
"Exception_UnknowErrorDuringAuthentication": "Unknown error occurred during authentication",
|
||||
"Exception_UnsupportedAction": "Action {0} is not implemented in request processor",
|
||||
"Exception_UnknowErrorDuringAuthentication": "Une erreur inconnue s'est produite lors de l'authentification",
|
||||
"Exception_UnsupportedAction": "L'action {0} n'est pas mise en œuvre dans le processeur de la demande",
|
||||
"Exception_UnsupportedProvider": "Ce fournisseur n'est pas pris en charge.",
|
||||
"Exception_UnsupportedSynchronizerOperation": "Cette opération n'est pas supportée pour {0}",
|
||||
"Exception_UserCancelSystemFolderSetupDialog": "L'utilisateur a annulé la boîte de dialogue de configuration du dossier système.",
|
||||
"Exception_InboxNotAvailable": "Couldn't setup account folders.",
|
||||
"Exception_InboxNotAvailable": "Impossible de configurer les dossiers du compte.",
|
||||
"Files": "Fichiers",
|
||||
"FilteringOption_All": "Tout",
|
||||
"FilteringOption_Flagged": "Marqué",
|
||||
"FilteringOption_Unread": "Non lus",
|
||||
"FilteringOption_Files": "Has files",
|
||||
"Focused": "Focused",
|
||||
"FilteringOption_Files": "Possède des pièces jointes",
|
||||
"Focused": "Focalisé",
|
||||
"FolderOperation_CreateSubFolder": "Créer un sous-dossier",
|
||||
"FolderOperation_Delete": "Supprimer",
|
||||
"FolderOperation_DontSync": "Ne pas synchroniser ce dossier",
|
||||
@@ -177,14 +212,14 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Utilisez le même nom d'utilisateur et mot de passe pour envoyer un e-mail",
|
||||
"IMAPSetupDialog_Username": "Nom d’utilisateur",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domaine/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Échec de la Connexion",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "Échec de la connexion IMAP.",
|
||||
"ImageRenderingDisabled": "L'affichage d'image est désactivé pour ce message.",
|
||||
"InfoBarAction_Enable": "Activer",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "Ce dossier est désactivé pour la synchronisation.",
|
||||
"InfoBarTitle_SynchronizationDisabledFolder": "Dossier désactivé",
|
||||
"GeneralTitle_Error": "Error",
|
||||
"GeneralTitle_Warning": "Warning",
|
||||
"GeneralTitle_Error": "Erreur",
|
||||
"GeneralTitle_Warning": "Avertissement",
|
||||
"GeneralTitle_Info": "Information",
|
||||
"Info_AccountCreatedMessage": "{0} est créé",
|
||||
"Info_AccountCreatedTitle": "Création de compte",
|
||||
@@ -202,12 +237,12 @@
|
||||
"Info_AttachmentSaveSuccessTitle": "Pièce jointe enregistrée",
|
||||
"Info_BackgroundExecutionDeniedMessage": "L'exécution en arrière-plan de l'application est refusée. Cela peut affecter la synchronisation en arrière-plan et les notifications en direct.",
|
||||
"Info_BackgroundExecutionDeniedTitle": "Exécution en arrière-plan refusée",
|
||||
"Info_BackgroundExecutionUnknownErrorMessage": "Unknown exception occurred when registering background synchronizer.",
|
||||
"Info_BackgroundExecutionUnknownErrorMessage": "Une exception inconnue s'est produite lors de l'enregistrement de la synchronisation en arrière-plan.",
|
||||
"Info_BackgroundExecutionUnknownErrorTitle": "Échec de l'exécution en arrière-plan",
|
||||
"Info_ComposerMissingMIMEMessage": "Impossible de trouver le fichier MIME. La synchronisation peut aider.",
|
||||
"Info_ComposerMissingMIMETitle": "Failed",
|
||||
"Info_ComposerMissingMIMETitle": "Échec",
|
||||
"Info_ContactExistsMessage": "Ce contact est déjà dans la liste des destinataires.",
|
||||
"Info_ContactExistsTitle": "Contact Exists",
|
||||
"Info_ContactExistsTitle": "Le contact existe",
|
||||
"Info_DraftFolderMissingMessage": "Le dossier Brouillon est manquant pour ce compte. Veuillez vérifier vos paramètres de compte.",
|
||||
"Info_DraftFolderMissingTitle": "Dossier brouillon manquant",
|
||||
"Info_FileLaunchFailedTitle": "Échec du lancement du fichier",
|
||||
@@ -223,11 +258,11 @@
|
||||
"Info_MailRenderingFailedTitle": "Le rendu a échoué",
|
||||
"Info_MessageCorruptedMessage": "Ce message est corrompu.",
|
||||
"Info_MessageCorruptedTitle": "Erreur",
|
||||
"Info_MissingFolderMessage": "{0} doesn't exist for this account.",
|
||||
"Info_MissingFolderMessage": "{0} n'existe pas pour ce compte.",
|
||||
"Info_MissingFolderTitle": "Dossier manquant",
|
||||
"Info_PDFSaveSuccessTitle": "Success",
|
||||
"Info_PDFSaveFailedTitle": "Failed to save PDF file",
|
||||
"Info_PDFSaveSuccessMessage": "PDF file is saved to {0}",
|
||||
"Info_PDFSaveSuccessTitle": "Réussi",
|
||||
"Info_PDFSaveFailedTitle": "Impossible d'enregistrer le fichier",
|
||||
"Info_PDFSaveSuccessMessage": "Le fichier PDF est sauvegardé dans {0}",
|
||||
"Info_PurchaseExistsMessage": "Il semble que ce produit ait déjà été acheté auparavant.",
|
||||
"Info_PurchaseExistsTitle": "Produit existant",
|
||||
"Info_PurchaseThankYouMessage": "Merci",
|
||||
@@ -250,9 +285,11 @@
|
||||
"Info_UnsupportedFunctionalityDescription": "Cette fonctionnalité n’est pas encore implémentée.",
|
||||
"Info_UnsupportedFunctionalityTitle": "Non supporté",
|
||||
"Info_UnsubscribeLinkInvalidTitle": "Url de désinscription non valide",
|
||||
"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_UnsubscribeLinkInvalidMessage": "Ce lien de désinscription est invalide. Impossible de se désabonner de la liste.",
|
||||
"Info_UnsubscribeSuccessMessage": "Désabonnement réussi de {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Échec du désabonnement",
|
||||
"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": "Méthode d’authentification",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Sécurité de la connexion",
|
||||
"ImapAuthenticationMethod_Auto": "Automatique",
|
||||
@@ -269,10 +306,10 @@
|
||||
"Justify": "Justifier",
|
||||
"Left": "Gauche",
|
||||
"Link": "Lien",
|
||||
"LinkedAccountsCreatePolicyMessage": "you must have at least 2 accounts to create link\nlink will be removed on save",
|
||||
"LinkedAccountsCreatePolicyMessage": "vous devez avoir au moins 2 comptes pour créer le lien\nlien sera supprimé lors de la sauvegarde",
|
||||
"LinkedAccountsTitle": "Comptes liés",
|
||||
"MailOperation_AlwaysMoveFocused": "Always Move to Focused",
|
||||
"MailOperation_AlwaysMoveOther": "Always Move to Other",
|
||||
"MailOperation_AlwaysMoveFocused": "Toujours déplacer vers Focalisation",
|
||||
"MailOperation_AlwaysMoveOther": "Toujours déplacer vers Autre",
|
||||
"MailOperation_Archive": "Archiver",
|
||||
"MailOperation_ClearFlag": "Enlever la balise",
|
||||
"MailOperation_DarkEditor": "Sombre",
|
||||
@@ -287,7 +324,7 @@
|
||||
"MailOperation_MarkAsUnread": "Marquer comme non lu",
|
||||
"MailOperation_MarkNotJunk": "Marquer comme non indésirable",
|
||||
"MailOperation_Move": "Déplacer",
|
||||
"MailOperation_MoveFocused": "Move to Focused",
|
||||
"MailOperation_MoveFocused": "Déplacer vers Focalisation",
|
||||
"MailOperation_MoveJunk": "Déplacer vers indésirables",
|
||||
"MailOperation_MoveOther": "Déplacer vers autres",
|
||||
"MailOperation_Navigate": "Naviguer",
|
||||
@@ -298,7 +335,7 @@
|
||||
"MailOperation_SetFlag": "Définir drapeau",
|
||||
"MailOperation_Unarchive": "Désarchiver",
|
||||
"MailOperation_Zoom": "Zoom",
|
||||
"MailsSelected": "{0} item(s) selected",
|
||||
"MailsSelected": "{0} élément(s) sélectionné(s)",
|
||||
"MarkFlagUnflag": "Marquer ou Démarquer ce message",
|
||||
"MarkReadUnread": "Marquer comme lu/non lu",
|
||||
"MenuManageAccounts": "Gérer les comptes",
|
||||
@@ -308,15 +345,15 @@
|
||||
"MenuSettings": "Paramètres",
|
||||
"MergedAccountsAvailableAccountsTitle": "Comptes disponibles",
|
||||
"More": "Plus",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} is not a valid folder for this mail.",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} n'est pas un dossier valide pour ce courrier.",
|
||||
"MoveMailDialog_Title": "Choisissez un dossier",
|
||||
"NewAccountDialog_AccountName": "Nom du compte",
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Personnel",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "Ex. courrier personnel",
|
||||
"NewAccountDialog_Title": "Ajouter un nouveau compte",
|
||||
"NoMailSelected": "No message selected",
|
||||
"NoMessageCrieteria": "No messages match your search criteria",
|
||||
"NoMessageEmptyFolder": "This folder is empty",
|
||||
"NoMailSelected": "Aucun message sélectionné",
|
||||
"NoMessageCrieteria": "Aucuns messages ne correspond à vos critères de recherche",
|
||||
"NoMessageEmptyFolder": "Ce dossier est vide",
|
||||
"Notifications_MultipleNotificationsMessage": "Vous avez {0} nouveaux messages",
|
||||
"Notifications_MultipleNotificationsTitle": "Nouveaux courriers",
|
||||
"Notifications_WinoUpdatedMessage": "Vérifier la nouvelle version {0}",
|
||||
@@ -333,21 +370,21 @@
|
||||
"ProviderDetail_Gmail_Description": "Compte Google",
|
||||
"ProviderDetail_IMAP_Description": "Serveur IMAP/SMTP personnalisé",
|
||||
"ProviderDetail_IMAP_Title": "Serveur IMAP",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"ProtocolLogAvailable_Message": "Les journaux de protocole sont disponibles pour les diagnostics.",
|
||||
"Results": "Résultats",
|
||||
"Right": "Droite",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Enregistrer toutes les pièces jointes",
|
||||
"SynchronizationFolderReport_Success": "À jour",
|
||||
"SynchronizationFolderReport_Failed": "la synchronisation a échouée",
|
||||
"SearchBarPlaceholder": "Search",
|
||||
"SearchingIn": "Searching in",
|
||||
"SearchPivotName": "Results",
|
||||
"SearchBarPlaceholder": "Rechercher",
|
||||
"SearchingIn": "Recherche dans",
|
||||
"SearchPivotName": "Résultats",
|
||||
"SettingsAboutGithub_Description": "Allez au dépôt GitHub du gestionnaire de tickets.",
|
||||
"SettingsAboutGithub_Title": "GitHub",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
|
||||
"SettingsAccountManagementAppendMessage_Title": "Ajouter les messages au dossier Envoyé",
|
||||
"SettingsAccountManagementAppendMessage_Description": "Créer une copie du message dans le dossier Envoyé après l'envoi du brouillon. Activez cette option si vous ne voyez pas vos e-mails après les avoir envoyés dans le dossier Envoyés.",
|
||||
"SettingsEditLinkedInbox_Title": "Edit Linked Inbox",
|
||||
"SettingsEditLinkedInbox_Description": "Add / remove accounts, rename or break the link between accounts.",
|
||||
"SettingsEditLinkedInbox_Title": "Modifier la boîte de réception liée",
|
||||
"SettingsEditLinkedInbox_Description": "Ajouter / supprimer des comptes, renommer ou rompre le lien entre les comptes.",
|
||||
"SettingsAboutVersion": "Version ",
|
||||
"SettingsAboutWinoDescription": "Client de messagerie léger pour les périphériques Windows.",
|
||||
"SettingsAbout_Description": "En savoir plus sur Wino.",
|
||||
@@ -359,29 +396,29 @@
|
||||
"SettingsAccountName_Title": "Nom du compte",
|
||||
"SettingsApplicationTheme_Description": "Personnalisez Wino avec différents thèmes d'application personnalisés pour vous.",
|
||||
"SettingsApplicationTheme_Title": "Thème de l'application",
|
||||
"SettingsAvailableThemes_Description": "Select a theme from Wino's own collection for your taste or apply your own themes.",
|
||||
"SettingsAvailableThemes_Description": "Sélectionnez un thème de la collection de Wino selon vos goûts ou appliquez vos propres thèmes.",
|
||||
"SettingsAvailableThemes_Title": "Thèmes disponibles",
|
||||
"SettingsAutoSelectNextItem_Title": "Auto select next item",
|
||||
"SettingsAutoSelectNextItem_Description": "Select the next item after you delete or move a mail.",
|
||||
"SettingsAutoSelectNextItem_Title": "Sélection automatique de l'élément suivant",
|
||||
"SettingsAutoSelectNextItem_Description": "Sélectionnez l'élément suivant après avoir supprimé ou déplacé un courrier.",
|
||||
"SettingsCustomTheme_Description": "Créez votre propre thème personnalisé avec un fond d'écran personnalisé et une couleur d'accentuation.",
|
||||
"SettingsCustomTheme_Title": "Thème personnalisé",
|
||||
"SettingsConfigureSpecialFolders_Title": "Configure System Folders",
|
||||
"SettingsConfigureSpecialFolders_Description": "Set folders with special functions. Folders such as Archive, Inbox, and Drafts are essential for Wino to function properly.",
|
||||
"SettingConfigureSpecialFolders_Button": "Configure",
|
||||
"Error_FailedToSetupSystemFolders_Title": "Failed to setup system folders",
|
||||
"SettingsConfigureSpecialFolders_Title": "Configurer les dossiers système",
|
||||
"SettingsConfigureSpecialFolders_Description": "Définir des dossiers avec des fonctions spéciales. Les dossiers tels que Archive, Boîte de réception et Brouillons sont essentiels au bon fonctionnement de Wino.",
|
||||
"SettingConfigureSpecialFolders_Button": "Configurer",
|
||||
"Error_FailedToSetupSystemFolders_Title": "Impossible de configurer les dossiers système",
|
||||
"SettingsDeleteAccount_Description": "Supprimer tous les e-mails et identifiants associés à ce compte.",
|
||||
"SettingsDeleteAccount_Title": "Supprimer ce compte",
|
||||
"SettingsDeleteProtection_Description": "Wino devrait-il vous demander une comfirmation chaque fois que vous essayez de supprimer définitivement un mail en utilisant les touches Maj + Supprimer?",
|
||||
"SettingsDeleteProtection_Title": "Protection contre la suppression permanente",
|
||||
"SettingsDiagnostics_Description": "Pour les développeurs",
|
||||
"SettingsDiagnostics_Title": "Diagnostics",
|
||||
"SettingsDiscord_Description": "Get regular development updates, join roadmap discussions and provide feedback.",
|
||||
"SettingsDiscord_Description": "Obtenez des mises à jour régulières sur le développement, participez aux discussions sur la feuille de route et donnez votre avis.",
|
||||
"SettingsDiscord_Title": "Canal Discord",
|
||||
"SettingsElementThemeSelectionDisabled": "Element theme selection is disabled when application theme is selected other than Default.",
|
||||
"SettingsElementTheme_Description": "Select a Windows theme for Wino",
|
||||
"SettingsElementThemeSelectionDisabled": "La sélection du thème de l'élément est désactivée lorsque le thème de l'application sélectionné n'est pas le thème par défaut.",
|
||||
"SettingsElementTheme_Description": "Sélectionnez un thème Windows pour Wino",
|
||||
"SettingsElementTheme_Title": "Thème de l'élément",
|
||||
"SettingsEnableHoverActions_Title": "Activer les actions de survol",
|
||||
"SettingsEnableIMAPLogs_Description": "Enable this to provide details about IMAP connectivity issuses you had during IMAP server setup.",
|
||||
"SettingsEnableIMAPLogs_Description": "Activez cette option pour fournir des détails sur les problèmes de connectivité IMAP que vous avez rencontrés lors de la configuration du serveur IMAP.",
|
||||
"SettingsEnableIMAPLogs_Title": "Activer les journaux de protocole IMAP",
|
||||
"SettingsEnableLogs_Description": "Je pourrais avoir besoin de Logs pour que les tickets ouverts sur GitHub puissent être diagnostiqués. Aucun de ces journaux n'exposera vos identifiants ou vos informations sensées.",
|
||||
"SettingsEnableLogs_Title": "Activer les journaux",
|
||||
@@ -392,55 +429,62 @@
|
||||
"SettingsExternalContent_Title": "Contenu externe",
|
||||
"SettingsFocusedInbox_Description": "Définit si la boîte de réception doit être divisée en deux en Prioritaire - Autre.",
|
||||
"SettingsFocusedInbox_Title": "Boîte de réception Prioritaire",
|
||||
"SettingsFolderSync_Description": "Enable or disable specific folders for synchronization.",
|
||||
"SettingsFolderSync_Title": "Folder Synchronization",
|
||||
"SettingsFolderOptions_Title": "Folder Configuration",
|
||||
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
|
||||
"SettingsHoverActionCenter": "Center Action",
|
||||
"SettingsFolderSync_Description": "Activer ou désactiver des dossiers spécifiques pour la synchronisation.",
|
||||
"SettingsFolderSync_Title": "Synchronisation de dossier",
|
||||
"SettingsFolderOptions_Title": "Configuration dossier",
|
||||
"SettingsFolderOptions_Description": "Modifier les paramètres des dossiers individuels, comme activer/désactiver la synchronisation ou afficher/masquer les badges non lus.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Action centrée",
|
||||
"SettingsHoverActionLeft": "Action de gauche",
|
||||
"SettingsHoverActionRight": "Action de droite",
|
||||
"SettingsHoverActions_Description": "Select 3 actions to show up when you hover over the mails with cursor.",
|
||||
"SettingsHoverActions_Description": "Sélectionnez 3 actions à afficher lorsque vous survolez les messages avec le curseur.",
|
||||
"SettingsHoverActions_Title": "Actions de survol",
|
||||
"SettingsLanguage_Description": "Changer la langue d'affichage de Wino.",
|
||||
"SettingsLanguage_Title": "Langue d'affichage",
|
||||
"SettingsLanguageTime_Title": "Language & Time",
|
||||
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
|
||||
"SettingsLanguageTime_Title": "Langue et heure",
|
||||
"SettingsLanguageTime_Description": "Langue d'affichage de Wino, format d'heure préféré.",
|
||||
"CategoriesFolderNameOverride": "Catégories",
|
||||
"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": "Plus",
|
||||
"SettingsOptions_Title": "Paramètres",
|
||||
"SettingsLinkAccounts_Description": "Merge multiple accounts into one. See mails from one Inbox together.",
|
||||
"SettingsLinkAccounts_Title": "Create Linked Accounts",
|
||||
"SettingsLinkedAccountsSave_Description": "Modify the current link with the new accounts.",
|
||||
"SettingsLinkAccounts_Description": "Fusionnez plusieurs comptes en un seul. Regroupez les messages d'une même boîte de réception.",
|
||||
"SettingsLinkAccounts_Title": "Créer des comptes liés",
|
||||
"SettingsLinkedAccountsSave_Description": "Modifier le lien actuel avec les nouveaux comptes.",
|
||||
"SettingsLinkedAccountsSave_Title": "Enregistrer les modifications",
|
||||
"SettingsLoadImages_Title": "Load images automatically",
|
||||
"SettingsLoadStyles_Title": "Load styles automatically",
|
||||
"SettingsMailSpacing_Description": "Adjust the spacing for listing mails.",
|
||||
"SettingsLoadImages_Title": "Charger les images automatiquement",
|
||||
"SettingsLoadStyles_Title": "Chargement automatique des styles",
|
||||
"SettingsMailSpacing_Description": "Ajuster l'espacement pour l'énumération des courriers.",
|
||||
"SettingsMailSpacing_Title": "Espacement du courrier",
|
||||
"SettingsFolderMenuStyle_Title": "Create Nested Folders",
|
||||
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
|
||||
"SettingsFolderMenuStyle_Title": "Créer des dossiers imbriqués",
|
||||
"SettingsFolderMenuStyle_Description": "Indique si les dossiers de compte doivent être imbriqués dans un élément de menu de compte ou non. Désactivez cette option si vous préférez l'ancien système de menu de Windows Mail",
|
||||
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronisation et autres paramètres par compte.",
|
||||
"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.",
|
||||
"SettingsMarkAsRead_DontChange": "Don't automatically mark item as read",
|
||||
"SettingsManageAccountSettings_Title": "Gérer les paramètres du compte",
|
||||
"SettingsAppPreferences_Title": "Préférence de l'application",
|
||||
"SettingsAppPreferences_Description": "Paramètres généraux / préférences pour Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Comportement de fermeture de l'application",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "Que se passe-t-il lorsque vous fermez l'application?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Démarrage minimisé au démarrage de Windows",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Permettre à Wino Mail de se lancer en mode réduit au démarrage de Windows. Autorisez-le toujours à recevoir des notifications.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail a été configuré avec succès pour être lancé en arrière-plan au démarrage de Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail ne sera pas lancé au démarrage de Windows. Vous ne recevrez donc pas de notifications lorsque vous redémarrerez votre ordinateur.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Votre administrateur ou les stratégies de groupe ont désactivé l'exécution d'applications au démarrage. Ainsi, Wino Mail ne peut pas être lancé au démarrage de Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Veuillez aller dans le Gestionnaire des tâches -> onglet Démarrage pour permettre à Wino Mail de se lancer au démarrage de Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Une erreur fatale s'est produite lors de la modification du mode de démarrage de Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Activer",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Désactiver",
|
||||
"SettingsReorderAccounts_Title": "Réorganiser les comptes",
|
||||
"SettingsReorderAccounts_Description": "Modifier l'ordre des comptes dans la liste des comptes.",
|
||||
"SettingsManageLink_Description": "Déplacer des éléments pour ajouter un nouveau lien ou supprimer un lien existant.",
|
||||
"SettingsManageLink_Title": "Gérer le lien",
|
||||
"SettingsMarkAsRead_Description": "Modifier ce qui doit arriver à l'élément sélectionné.",
|
||||
"SettingsMarkAsRead_DontChange": "Ne pas marquer automatiquement l'élément comme lu",
|
||||
"SettingsMarkAsRead_SecondsToWait": "Secondes à attendre : ",
|
||||
"SettingsMarkAsRead_Timer": "When viewed in the reading pane",
|
||||
"SettingsMarkAsRead_Timer": "Lorsqu'il est affiché dans le volet de lecture",
|
||||
"SettingsMarkAsRead_Title": "Marquer l'élément comme lu",
|
||||
"SettingsMarkAsRead_WhenSelected": "Lorsque sélectionné",
|
||||
"SettingsMessageList_Description": "Modifiez la façon dont vos messages doivent être organisés dans la liste de courriels.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Vous n'avez pas encore configuré de comptes.",
|
||||
"SettingsNotifications_Description": "Activer ou désactiver les notifications pour ce compte.",
|
||||
"SettingsNotifications_Title": "Notifications",
|
||||
"SettingsPaneLength_Description": "Modifie la largeur de la liste de courriels.",
|
||||
"SettingsPaneLength_Title": "Longueur du panneau de la liste d'emails",
|
||||
"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": "Montrez-nous plus d'amour ❤️ Tous les dons sont appréciés.",
|
||||
"SettingsPaypal_Title": "Faire un don via PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Mode compact",
|
||||
@@ -459,10 +503,10 @@
|
||||
"SettingsPersonalization_Title": "Personnalisation",
|
||||
"SettingsPrivacyPolicy_Description": "Examinez la politique de confidentialité.",
|
||||
"SettingsPrivacyPolicy_Title": "Politique de confidentialité",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReader_Title": "Lecteur",
|
||||
"SettingsComposer_Title": "Éditeur",
|
||||
"SettingsReadComposePane_Description": "Polices, contenu externe.",
|
||||
"SettingsReadComposePane_Title": "Lecteur & Éditeur",
|
||||
"SettingsReaderFont_Title": "Police par défaut du lecteur",
|
||||
"SettingsReaderFontFamily_Description": "Modifier la police par défaut et la taille de police pour la lecture des messages.",
|
||||
"SettingsFontFamily_Title": "Famille de polices",
|
||||
@@ -472,46 +516,46 @@
|
||||
"SettingsComposerFontFamily_Description": "Modifier la police et la taille par défaut lors de la composition des mails.",
|
||||
"SettingsRenameMergeAccount_Description": "Changer le nom d'affichage des comptes liés.",
|
||||
"SettingsRenameMergeAccount_Title": "Renommer",
|
||||
"SettingsSemanticZoom_Description": "This will allow you to click on the headers in messages list and go to specific date",
|
||||
"SettingsSemanticZoom_Title": "Semantic Zoom for Date Headers",
|
||||
"SettingsShowPreviewText_Description": "Hide/show thepreview text.",
|
||||
"SettingsShowPreviewText_Title": "Show Preview Text",
|
||||
"SettingsSemanticZoom_Description": "Cela vous permettra de cliquer sur les en-têtes de la liste des messages et d'accéder à une date spécifique",
|
||||
"SettingsSemanticZoom_Title": "Zoom sémantique sur les en-têtes de date",
|
||||
"SettingsShowPreviewText_Description": "Masquer/afficher le texte de l'aperçu.",
|
||||
"SettingsShowPreviewText_Title": "Afficher l'aperçu du texte",
|
||||
"SettingsShowSenderPictures_Description": "Masquer/afficher les vignettes des images de l'expéditeur.",
|
||||
"SettingsShowSenderPictures_Title": "Afficher l'avatar de l'expéditeur",
|
||||
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
|
||||
"SettingsPrefer24HourClock_Title": "Afficher le format horloge en 24 heures",
|
||||
"SettingsPrefer24HourClock_Description": "Les heures de réception du courrier seront affichées au format 24 heures au lieu de 12 (AM/PM)",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Description": "Gérer les signatures du compte",
|
||||
"SettingsSignature_Title": "Signature",
|
||||
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
|
||||
"SettingsStartupItem_Title": "Startup Item",
|
||||
"SettingsStartupItem_Description": "Élément principal du compte pour charger la boîte de réception au démarrage.",
|
||||
"SettingsStartupItem_Title": "Élément de démarrage",
|
||||
"SettingsStore_Description": "Montrer nous un peu d'amour ❤️",
|
||||
"SettingsStore_Title": "Évaluez l'application sur le store",
|
||||
"SettingsThreads_Description": "Organiser les messages en fils de conversation.",
|
||||
"SettingsThreads_Title": "Affichage en mode conversation",
|
||||
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. This will not delete your accounts.",
|
||||
"SettingsUnlinkAccounts_Description": "Supprimer le lien entre les comptes. Cela ne supprimera pas vos comptes.",
|
||||
"SettingsUnlinkAccounts_Title": "Dissocier les comptes",
|
||||
"SortingOption_Date": "Par date",
|
||||
"SortingOption_Name": "Par nom",
|
||||
"StoreRatingDialog_MessageFirstLine": "All feedbacks are appreciated and they will make much Wino better in the future. Would you like to rate Wino in Microsoft Store?",
|
||||
"StoreRatingDialog_MessageSecondLine": "Would you like to rate Wino Mail in Microsoft Store?",
|
||||
"StoreRatingDialog_MessageFirstLine": "Tous les commentaires sont appréciés et ils permettront d'améliorer Wino à l'avenir. Souhaitez-vous donner une note à Wino dans Microsoft Store ?",
|
||||
"StoreRatingDialog_MessageSecondLine": "Voulez-vous évaluer Wino Mail dans Microsoft Store ?",
|
||||
"StoreRatingDialog_Title": "Vous aimez Wino ?",
|
||||
"SystemFolderConfigDialog_ArchiveFolderDescription": "Archived messages will be moved to here.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderHeader": "Archive Folder",
|
||||
"SystemFolderConfigDialog_DeletedFolderDescription": "Deleted messages will be moved to here.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderDescription": "Les messages archivés seront déplacés ici.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderHeader": "Dossier archive",
|
||||
"SystemFolderConfigDialog_DeletedFolderDescription": "Les messages supprimés seront déplacés ici.",
|
||||
"SystemFolderConfigDialog_DeletedFolderHeader": "Dossier supprimé",
|
||||
"SystemFolderConfigDialog_DraftFolderDescription": "Les nouveaux courriels/réponses seront créés ici.",
|
||||
"SystemFolderConfigDialog_DraftFolderHeader": "Dossier de brouillon",
|
||||
"SystemFolderConfigDialog_JunkFolderDescription": "Tous les courriers indésirables et spam/spam seront ici.",
|
||||
"SystemFolderConfigDialog_JunkFolderHeader": "Dossier indésirable/spam",
|
||||
"SystemFolderConfigDialog_MessageFirstLine": "This IMAP server doesn't support SPECIAL-USE extension hence Wino couldn't setup the system folders properly.",
|
||||
"SystemFolderConfigDialog_MessageSecondLine": "Please select the appropriate folders for specific functionalities.",
|
||||
"SystemFolderConfigDialog_MessageFirstLine": "Ce serveur IMAP ne supporte pas l'extension SPECIAL-USE et Wino n'a donc pas pu configurer les dossiers système correctement.",
|
||||
"SystemFolderConfigDialog_MessageSecondLine": "Veuillez sélectionner les dossiers appropriés pour des fonctionnalités spécifiques.",
|
||||
"SystemFolderConfigDialog_SentFolderDescription": "Le dossier contenant les messages envoyés sera stocké.",
|
||||
"SystemFolderConfigDialog_SentFolderHeader": "Dossier envoyé",
|
||||
"SystemFolderConfigDialog_Title": "Configurer les dossiers système",
|
||||
"SystemFolderConfigDialogValidation_InboxSelected": "You can't assign Inbox folder to any other system folder.",
|
||||
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Some of the system folders are used more than once in the configuration.",
|
||||
"SystemFolderConfigSetupSuccess_Title": "System Folders Setup",
|
||||
"SystemFolderConfigSetupSuccess_Message": "System folders are successfully configured.",
|
||||
"SystemFolderConfigDialogValidation_InboxSelected": "Vous ne pouvez pas assigner de dossier de boîte de réception à un autre dossier système.",
|
||||
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Certains dossiers du système sont utilisés plusieurs fois dans la configuration.",
|
||||
"SystemFolderConfigSetupSuccess_Title": "Configuration des dossiers système",
|
||||
"SystemFolderConfigSetupSuccess_Message": "Les dossiers système sont configurés avec succès.",
|
||||
"TestingImapConnectionMessage": "Test de la connexion au serveur...",
|
||||
"Today": "Aujourd'hui",
|
||||
"UnknownAddress": "Adresse inconnue",
|
||||
@@ -520,33 +564,33 @@
|
||||
"UnknownSender": "Expéditeur inconnu",
|
||||
"Unsubscribe": "Se désabonner",
|
||||
"ViewContactDetails": "Voir les détails",
|
||||
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
|
||||
"WinoUpgradeDescription": "Wino offre 3 comptes gratuits pour commencer. Si vous avez besoin de plus de 3 comptes, veuillez passer à la version supérieure",
|
||||
"WinoUpgradeMessage": "Mettre à niveau vers des comptes illimités",
|
||||
"WinoUpgradeRemainingAccountsMessage": "{0} comptes gratuits utilisés sur {1}.",
|
||||
"Yesterday": "Hier",
|
||||
"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",
|
||||
"SignatureEditorDialog_Title": "Éditeur de signature",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Nom de la signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Nom de la signature",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Nom de la signature actuelle : {0}",
|
||||
"SignatureDeleteDialog_Title": "Supprimer la signature",
|
||||
"SignatureDeleteDialog_Message": "Êtes-vous sûr de vouloir supprimer la signature « {0} » ?",
|
||||
"SettingsSignature_ForNewMessages_Title": "Pour les nouveaux messages",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "Pour les réponses / les transferts",
|
||||
"SettingsSignature_SignatureDefaults": "Signature par défaut",
|
||||
"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"
|
||||
"SettingsSignature_AddCustomSignature_Title": "Ajouter une signature personnalisée",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Ajouter une signature",
|
||||
"SettingsSignature_EditSignature_Title": "Modifier la signature",
|
||||
"SettingsSignature_DeleteSignature_Title": "Supprimer la signature",
|
||||
"SettingsSignature_NoneSignatureName": "Aucun",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Réduire dans la barre d'état système",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail fonctionne en permanence dans la barre d'état système. Il est possible de le lancer en cliquant sur une icône. Vous serez informé de l'arrivée de nouveaux messages.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Exécuter en arrière-plan",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail continuera à fonctionner en arrière-plan. Vous serez informé de l'arrivée de nouveaux courriers.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminer",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail ne fonctionnera nulle part. Vous ne serez pas notifié de l'arrivée de nouveaux courriers. Lancez à nouveau Wino Mail pour continuer la synchronisation des courriers.",
|
||||
"TitleBarServerDisconnectedButton_Title": "pas de connexion",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino est déconnecté du réseau. Cliquez sur reconnecter pour rétablir la connexion.",
|
||||
"TitleBarServerReconnectButton_Title": "reconnecter",
|
||||
"TitleBarServerReconnectingButton_Title": "connexion en cours"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "iniciando",
|
||||
"AccountCreationDialog_PreparingFolders": "Neste intre estamos a obter información dos cartafois.",
|
||||
"AccountCreationDialog_SigninIn": "A información da conta estase a gardar.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nome da conta",
|
||||
"AccountEditDialog_Title": "Editar conta",
|
||||
"AccountPickerDialog_Title": "Escolla unha conta",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "p.ex. Manuel Rivas",
|
||||
"AddHyperlink": "Engadir",
|
||||
"AutoDiscoveryProgressMessage": "Estase a buscar a configuración do correo...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Opcións avanzadas",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "As túas credencias so se gardarán localmente no teu ordenador.",
|
||||
"BasicIMAPSetupDialog_Description": "Algunhas contas precisan pasos adicionais para iniciar sesión",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Contrasinal",
|
||||
"BasicIMAPSetupDialog_Title": "Conta IMAP",
|
||||
"Buttons_AddAccount": "Engadir conta",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Aplicar tema",
|
||||
"Buttons_Browse": "Procurar",
|
||||
"Buttons_Cancel": "Anular",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Iniciar sesión",
|
||||
"Buttons_TryAgain": "Téntao de novo",
|
||||
"Buttons_Yes": "Si",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centrar",
|
||||
"ComingSoon": "Proximamente...",
|
||||
"ComposerFrom": "De: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Escoller un fondo personalizado",
|
||||
"DialogMessage_AccountLimitMessage": "Chegou ó límite de contas. Para seguir, queres mercar a función de contas ilimitadas?",
|
||||
"DialogMessage_AccountLimitTitle": "Chegou ó límite de contas",
|
||||
"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": "Queres borrar todos os correos desta carpeta permanentemente?",
|
||||
"DialogMessage_CleanupFolderTitle": "Carpeta de limpeza",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "A mensaxe non ten destinatario.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Para deixar de obter mensaxes de {0}, vai ao seu sitio web para desubscribirte.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Ir á páxina web",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Queres deixar de recibir mensaxes de {0}? Wino desusbscribirate enviando un correo dende a túa conta a {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Non preguntar de novo",
|
||||
"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 non ten o seu propio servidor de Discord, pero hai un canal chamado \"wino-mail\" dentro do servidor \"Developer Sanctuary\". Para obter novas sobre Wino, por favor entra en Developer Sanctuary e segue o canal \"wino-mail\" dentro de \"Community Projects\".\n\nSerás redirixido ó servidor xa que Discord non ten a función de invitacións de canais.",
|
||||
"DiscordChannelDisclaimerTitle": "Información importante de Discord",
|
||||
"Draft": "Borrador",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Debuxar",
|
||||
"EditorToolbarOption_Format": "Formato",
|
||||
"EditorToolbarOption_Insert": "Inserir",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Modo claro",
|
||||
"Emoji": "Emoticonas",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Non se puido encontrar os axustes da bandexa de correo.",
|
||||
"Exception_ImapClientPoolFailed": "Fallou a colección de conexións IMAP.",
|
||||
"Exception_AuthenticationCanceled": "Cancelouse a autenticación",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Debes proporcionar un nome.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Debes proporcionar unha imaxe de fondo personalizada.",
|
||||
"Exception_FailedToSynchronizeFolders": "Produciuse un erro ao sincronizar as carpetas",
|
||||
"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": "A uri de retrochamada é nula na activación.",
|
||||
"Exception_GoogleAuthCorruptedCode": "A resposta da autenticación corrompiuse.",
|
||||
"Exception_GoogleAuthError": "Error de autorización OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "memulai",
|
||||
"AccountCreationDialog_PreparingFolders": "Kami sedang mendapatkan informasi folder.",
|
||||
"AccountCreationDialog_SigninIn": "Informasi akun sedang disimpan.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nama Akun",
|
||||
"AccountEditDialog_Title": "Sunting Akun",
|
||||
"AccountPickerDialog_Title": "Pilih akun",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "misal: Budi Susilo",
|
||||
"AddHyperlink": "Tambahkan",
|
||||
"AutoDiscoveryProgressMessage": "Mencari pengaturan surel...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Pengaturan Lanjutan",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Informasi masuk akun Anda akan disimpan hanya di perangkat.",
|
||||
"BasicIMAPSetupDialog_Description": "Beberapa akun membutuhkan tahapan tambahan untuk masuk",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Kata Sandi",
|
||||
"BasicIMAPSetupDialog_Title": "Akun IMAP",
|
||||
"Buttons_AddAccount": "Tambahkan Akun",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Terapkan Tema",
|
||||
"Buttons_Browse": "Telusuri",
|
||||
"Buttons_Cancel": "Batal",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Masuk",
|
||||
"Buttons_TryAgain": "Coba Lagi",
|
||||
"Buttons_Yes": "Ya",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Tengah",
|
||||
"ComingSoon": "Segera datang...",
|
||||
"ComposerFrom": "Dari: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Atur latar belakang khusus",
|
||||
"DialogMessage_AccountLimitMessage": "Anda telah mencapai batas akun.\nApakah Anda ingin membeli tambahan 'Akun Tidak Terbatas' untuk melanjutkan?",
|
||||
"DialogMessage_AccountLimitTitle": "Batas Akun Tercapai",
|
||||
"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": "Apakah Anda ingin menghapus semua surel di folder ini?",
|
||||
"DialogMessage_CleanupFolderTitle": "Bersihkan Folder",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Pesan tidak memiliki penerima.",
|
||||
@@ -82,7 +103,7 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Ubah Nama Akun Tertaut",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Ini tidak akan menghapus akun-akun Anda, tetapi hanya menghapus tautan folder yang digabungkan. Apakah Anda ingin melanjutkan?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Lepas Tautan Akun",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Tidak Ada Perihal",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Pesan tidak memiliki perihal. Apakah Anda ingin melanjutkan?",
|
||||
"DialogMessage_RenameFolderTitle": "Ubah nama folder",
|
||||
"DialogMessage_RenameFolderMessage": "Masukkan nama baru untuk folder ini",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Untuk berhenti mendapatkan pesan dari {0}, Anda harus mengunjungi situs mereka untuk berhenti berlangganan.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Buka situs web",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Apakah Anda ingin berhenti mendapatkan pesan dari {0}? Wino akan mengirimkan surel dari akun Anda ke {1} untuk berhenti berlangganan.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Jangan tanyakan lagi",
|
||||
"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 tidak memiliki server Discord sendiri, tapi ada saluran 'wino-mail' di server 'Developer Sanctuary'.\nUntuk mendapatkan pembaruan tentang Wino, harap bergabung dengan server Developer Sanctuary dan ikuti saluran 'wino-mail' di bawah 'Community Projects\".\n\nAnda akan diarahkan ke alamat server karena Discord tidak mendukung undangan saluran.",
|
||||
"DiscordChannelDisclaimerTitle": "Informasi tentang Discord",
|
||||
"Draft": "Konsep",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Gambar",
|
||||
"EditorToolbarOption_Format": "Format",
|
||||
"EditorToolbarOption_Insert": "Sisipkan",
|
||||
@@ -105,7 +136,8 @@
|
||||
"ElementTheme_Default": "Gunakan pengaturan sistem",
|
||||
"ElementTheme_Light": "Mode terang",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_WinoServerException": "Server Wino gagal.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Tidak dapat menemukan pengaturan kotak masuk.",
|
||||
"Exception_ImapClientPoolFailed": "Gagal IMAP Client Pool.",
|
||||
"Exception_AuthenticationCanceled": "Otentikasi dibatalkan",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Anda harus memberikan nama.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Anda harus memberikan gambar latar Anda sendiri.",
|
||||
"Exception_FailedToSynchronizeFolders": "Gagal menyelaraskan folder",
|
||||
"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": "Alamat panggilan menghasilkan balasan kosong.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Balasan otorisasi rusak.",
|
||||
"Exception_GoogleAuthError": "Galat otorisasi OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Tautan untuk berhenti berlangganan ini tidak valid. Gagal berhenti langganan dari daftar.",
|
||||
"Info_UnsubscribeSuccessMessage": "Berhasil berhenti berlangganan dari {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Gagal berhenti berlangganan",
|
||||
"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": "Metode otentikasi",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Keamanan sambungan",
|
||||
"ImapAuthenticationMethod_Auto": "Otomatis",
|
||||
@@ -336,7 +373,7 @@
|
||||
"ProtocolLogAvailable_Message": "Catatan log protokol kini tersedia untuk pengawakutuan.",
|
||||
"Results": "Hasil",
|
||||
"Right": "Kanan",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Simpan semua lampiran",
|
||||
"SynchronizationFolderReport_Success": "terbaru",
|
||||
"SynchronizationFolderReport_Failed": "penyelarasan gagal",
|
||||
"SearchBarPlaceholder": "Cari",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Penyelarasan Folder",
|
||||
"SettingsFolderOptions_Title": "Pengaturan Folder",
|
||||
"SettingsFolderOptions_Description": "Ubah pengaturan folder tertentu seperti nyalakan/matikan penyelarasan atau tampilkan/sembunyikan lambang belum dibaca.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Tindakan Tengah",
|
||||
"SettingsHoverActionLeft": "Tindakan Kiri",
|
||||
"SettingsHoverActionRight": "Tindakan Kanan",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Bahasa & Waktu",
|
||||
"SettingsLanguageTime_Description": "Bahasa tampilan Wino, format waktu.",
|
||||
"CategoriesFolderNameOverride": "Kategori",
|
||||
"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": "Lebih lanjut",
|
||||
"SettingsOptions_Title": "Pengaturan",
|
||||
"SettingsLinkAccounts_Description": "Gabungkan beberapa akun. Lihat pesan baru di satu Kotak Masuk.",
|
||||
@@ -420,19 +464,19 @@
|
||||
"SettingsFolderMenuStyle_Description": "Ubah apakah foldeer akun harus berada di dalam item menu akun atau tidak. Matikan jika Anda lebih suka gaya menu lama di Windows Mail.",
|
||||
"SettingsManageAccountSettings_Description": "Pemberitahuan, tanda tangan, penyelarasan, dan pengaturan lain per akun.",
|
||||
"SettingsManageAccountSettings_Title": "Kelole Pengaturan Akun",
|
||||
"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",
|
||||
"SettingsAppPreferences_Title": "Pengaturan Aplikasi",
|
||||
"SettingsAppPreferences_Description": "Pengaturan umum untuk Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Perilaku saat menutup aplikasi",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "Apa yang harus terjadi ketika Anda menutup aplikasi?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Mulai dan minimalkan saat menyalakan Windows",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Izinkan Wino Mail untuk berjalan dan diminimalkan saat Windows menyala. Selalu izinkan untuk menerima pemberitahuan.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail berhasil diatur untuk dijalankan di latar belakang saat Windows menyala.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail tidak akan dijalankan saat Windows menyala. Ini dapat membuat Anda melewatkan pemberitahuan saat komputer dimulai ulang.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Administrator atau setelan grup tidak mengizinkan menjalankan aplikasi saat menyala. Wino Mail gagal diatur untuk berjalan saat Windows menyala.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Izinkan Wino Mail untuk berjalan saat Windows menyala di Manajer Tugas > tab Aplikasi Pengaktifan.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Galat kritis terjadi saat mengubah modus mulai untuk Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Nyalakan",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Matikan",
|
||||
"SettingsReorderAccounts_Title": "Urutkan Ulang Akun",
|
||||
"SettingsReorderAccounts_Description": "Ubah urutan akun di daftar akun.",
|
||||
"SettingsManageLink_Description": "Pindahkan item untuk menambahkan tautan baru atau hapus tautan yang sudah ada.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Anda belum menyiapkan akun.",
|
||||
"SettingsNotifications_Description": "Nyalakan atau matikan pemberitahuan untuk akun ini.",
|
||||
"SettingsNotifications_Title": "Pemberitahuan",
|
||||
"SettingsPaneLength_Description": "Ubah lebar daftar email.",
|
||||
"SettingsPaneLength_Title": "Panjang Panel Daftar Surel",
|
||||
"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": "Berikan lebih banyak cinta ❤️ Semua sumbangan sangat kami hargai.",
|
||||
"SettingsPaypal_Title": "Sumbangkan melalui PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Mode Ringkas",
|
||||
@@ -459,10 +503,10 @@
|
||||
"SettingsPersonalization_Title": "Ubahsuaian",
|
||||
"SettingsPrivacyPolicy_Description": "Tinjau kebijakan privasi.",
|
||||
"SettingsPrivacyPolicy_Title": "Kebijakan Privasi",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReader_Title": "Pembaca",
|
||||
"SettingsComposer_Title": "Bidang penulisan",
|
||||
"SettingsReadComposePane_Description": "Fon, konten eksternal.",
|
||||
"SettingsReadComposePane_Title": "Pembaca dan Bidang Penulisan",
|
||||
"SettingsReaderFont_Title": "Fon Pembaca Bawaan",
|
||||
"SettingsReaderFontFamily_Description": "Ubah fon bawaan dan ukuran fon saat membaca surel.",
|
||||
"SettingsFontFamily_Title": "Jenis Fon",
|
||||
@@ -539,14 +583,14 @@
|
||||
"SettingsSignature_EditSignature_Title": "Sunting tanda tangan",
|
||||
"SettingsSignature_DeleteSignature_Title": "Hapus tanda tangan",
|
||||
"SettingsSignature_NoneSignatureName": "Tidak ada",
|
||||
"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"
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimalkan ke baki sistem",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail akan tetap berjalan di baki sistem. Anda dapat membuka Wino Mail dengan mengeklik ikon. Pemberitahuan surel baru akan tetap berfungsi.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Jalankan di latar belakang",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail akan tetap berjalan di latar belakang. Pemberitahuan surel baru akan tetap berfungsi.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Akhiri",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail tidak akan berjalan saat ditutup. Pemberitahuan surel baru tidak akan berfungsi. Jalankan Wino Mail lagi untuk melanjutkan penyelarasan.",
|
||||
"TitleBarServerDisconnectedButton_Title": "tiada sambungan",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino tidak tersambung ke jaringan. Klik sambungkan kembali untuk mencoba melanjutkan sambungan.",
|
||||
"TitleBarServerReconnectButton_Title": "sambungkan kembali",
|
||||
"TitleBarServerReconnectingButton_Title": "menyambungkan"
|
||||
}
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
{
|
||||
"AccountCreationDialog_Completed": "tutto fatto",
|
||||
"AccountCreationDialog_Completed": "fatto tutto",
|
||||
"AccountCreationDialog_Initializing": "inizializzazione",
|
||||
"AccountCreationDialog_PreparingFolders": "Stiamo ricevendo informazioni sulle cartelle al momento.",
|
||||
"AccountCreationDialog_SigninIn": "Le informazioni dell'account sono in fase di salvataggio.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nome account",
|
||||
"AccountEditDialog_Title": "Modifica account",
|
||||
"AccountPickerDialog_Title": "Scegli un account",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AccountSettingsDialog_AccountName": "Nome visualizzato mittente",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "es. Mario Rossi",
|
||||
"AddHyperlink": "Aggiungi",
|
||||
"AutoDiscoveryProgressMessage": "Ricerca delle impostazioni della posta...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Configurazione avanzata",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Le tue credenziali verranno memorizzate solo localmente sul tuo computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Alcuni account richiedono passaggi aggiuntivi per accedere",
|
||||
@@ -21,15 +29,17 @@
|
||||
"BasicIMAPSetupDialog_Password": "Password",
|
||||
"BasicIMAPSetupDialog_Title": "Account IMAP",
|
||||
"Buttons_AddAccount": "Aggiungi account",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Applica Tema",
|
||||
"Buttons_Browse": "Sfoglia",
|
||||
"Buttons_Cancel": "Annulla",
|
||||
"Buttons_Close": "Chiudi",
|
||||
"Buttons_Create": "Crea",
|
||||
"Buttons_CreateAccount": "Crea account",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Copy": "Copia",
|
||||
"Buttons_Delete": "Elimina",
|
||||
"Buttons_Edit": "Edit",
|
||||
"Buttons_Edit": "Modifica",
|
||||
"Buttons_Discard": "Scarta",
|
||||
"Buttons_EnableImageRendering": "Attiva",
|
||||
"Buttons_No": "No",
|
||||
@@ -40,8 +50,9 @@
|
||||
"Buttons_SaveConfiguration": "Salva configurazione",
|
||||
"Buttons_Share": "Condividi",
|
||||
"Buttons_SignIn": "Accedi",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_TryAgain": "Riprova",
|
||||
"Buttons_Yes": "Sì",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centra",
|
||||
"ComingSoon": "Prossimamente...",
|
||||
"ComposerFrom": "Da: ",
|
||||
@@ -52,9 +63,9 @@
|
||||
"ClipboardTextCopyFailed_Message": "Impossibile copiare {0} negli appunti.",
|
||||
"ComposerToPlaceholder": "clicca Invio per inserire gli indirizzi",
|
||||
"ComposerAttachmentsDropZone_Message": "Trascina qui i tuoi file",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerImagesDropZone_Message": "Trascina qui le tue immagini",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "Allega",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Imposta un colore principale personalizzato, se vuoi. Non selezionare un colore userà il colore principale di Windows.",
|
||||
"CustomThemeBuilder_AccentColorDescription": "Imposta un colore principale personalizzato, se vuoi. Se non si selezionerà un colore verrà usato il colore principale di Windows.",
|
||||
"CustomThemeBuilder_AccentColorTitle": "Colore principale",
|
||||
"CustomThemeBuilder_PickColor": "Scegli",
|
||||
"CustomThemeBuilder_ThemeNameDescription": "Nome unico del tuo tema personalizzato.",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Imposta uno sfondo personalizzato",
|
||||
"DialogMessage_AccountLimitMessage": "Hai raggiunto il limite di creazione degli account.\nVuoi acquistare il componente aggiuntivo 'Account Illimitati' per continuare?",
|
||||
"DialogMessage_AccountLimitTitle": "Raggiunto il limite degli account",
|
||||
"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": "Vuoi eliminare definitivamente tutti i messaggi in questa cartella?",
|
||||
"DialogMessage_CleanupFolderTitle": "Pulisci Cartella",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Il messaggio non ha alcun destinatario.",
|
||||
@@ -82,37 +103,51 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Rinomina l'account collegato",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Questa operazione non eliminerà i tuoi account, ma interromperà solo il collegamento verso le connessioni alla cartella condivisa. Vuoi continuare?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Scollega account",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Oggetto mancante",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Il messaggio non ha oggetto. Vuoi continuare?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_RenameFolderTitle": "Rinomina cartella",
|
||||
"DialogMessage_RenameFolderMessage": "Inserisci un nuovo nome per questa cartella",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "Disiscriviti",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Vuoi smettere di ricevere messaggi da {0}?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Per smettere di ricevere messaggi da {0}, vai sul loro sito web per annullare l'iscrizione.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Vai al sito",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Vuoi smettere di ricevere messaggi da {0}? Wino annullerà la tua iscrizione inviando una email dal tuo account email a {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Non chiedermelo più",
|
||||
"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 non ha il proprio server Discord, ma il canale speciale \"wino-mail\" è ospitato presso il server \"Developer Sanctuary\".\nPer ottenere gli aggiornamenti di Wino per favore unisciti al server Developer Sanctuary e segui il canale \"wino-mail\" sotto \"Community Projects\".\n\nSarai reindirizzato all'URL del server poiché Discord non supporta gli inviti del canale.",
|
||||
"DiscordChannelDisclaimerTitle": "Informazioni importanti su Discord",
|
||||
"Draft": "Bozza",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Disegna",
|
||||
"EditorToolbarOption_Format": "Formato",
|
||||
"EditorToolbarOption_Insert": "Inserisci",
|
||||
"EditorToolbarOption_None": "Vuoto",
|
||||
"EditorToolbarOption_Options": "Opzioni",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"EditorTooltip_WebViewEditor": "Usa editor di visualizzazione web",
|
||||
"ElementTheme_Dark": "Tema scuro",
|
||||
"ElementTheme_Default": "Usa le impostazioni di sistema",
|
||||
"ElementTheme_Light": "Tema chiaro",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_WinoServerException": "Connessione al server Wino fallita.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Impossibile trovare le impostazioni della casella postale.",
|
||||
"Exception_ImapClientPoolFailed": "IMAP Client Pool fallito.",
|
||||
"Exception_AuthenticationCanceled": "Autenticazione annullata",
|
||||
"Exception_CustomThemeExists": "Questo tema esiste già.",
|
||||
"Exception_CustomThemeMissingName": "È necessario fornire un nome.",
|
||||
"Exception_CustomThemeMissingWallpaper": "È necessario fornire un'immagine di sfondo personalizzata.",
|
||||
"Exception_FailedToSynchronizeFolders": "Sincronizzazione delle cartelle non riuscita",
|
||||
"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": "Il Callback uri è nullo all'attivazione.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Risposta all'autorizzazione corrotta.",
|
||||
"Exception_GoogleAuthError": "Errore di autorizzazione OAuth: {0}",
|
||||
@@ -177,8 +212,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "Usa lo stesso nome utente e la stessa password per l'invio di email",
|
||||
"IMAPSetupDialog_Username": "Nome utente",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connessione non riuscita",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "Connessione IMAP non riuscita.",
|
||||
"ImageRenderingDisabled": "La visualizzazione dell'immagine è disabilitata per questo messaggio.",
|
||||
"InfoBarAction_Enable": "Attiva",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "Questa cartella è disattivata per la sincronizzazione.",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Questo link di annullamento dell'iscrizione non è valido. Impossibile annullare l'iscrizione alla lista.",
|
||||
"Info_UnsubscribeSuccessMessage": "Iscrizione a {0} annullata con successo.",
|
||||
"Info_UnsubscribeErrorMessage": "Impossibile annullare l'iscrizione",
|
||||
"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": "Metodo di autenticazione",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Sicurezza della connessione",
|
||||
"ImapAuthenticationMethod_Auto": "Automatico",
|
||||
@@ -333,10 +370,10 @@
|
||||
"ProviderDetail_Gmail_Description": "Account Google",
|
||||
"ProviderDetail_IMAP_Description": "Server IMAP/SMTP personalizzato",
|
||||
"ProviderDetail_IMAP_Title": "Server IMAP",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"ProtocolLogAvailable_Message": "I registri del protocollo sono disponibili per la diagnostica.",
|
||||
"Results": "Risultati",
|
||||
"Right": "Destra",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Salva tutti gli allegati",
|
||||
"SynchronizationFolderReport_Success": "aggiornato",
|
||||
"SynchronizationFolderReport_Failed": "sincronizzazione fallita",
|
||||
"SearchBarPlaceholder": "Cerca",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Sincronizzazione della Cartella",
|
||||
"SettingsFolderOptions_Title": "Configurazione della Cartella",
|
||||
"SettingsFolderOptions_Description": "Cambia le impostazioni delle singole cartelle come attivare/disattivare la sincronizzazione o mostrare/nascondere l'indicatore non letto.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Azione Centrale",
|
||||
"SettingsHoverActionLeft": "Azione di Sinistra",
|
||||
"SettingsHoverActionRight": "Azione di Destra",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Lingua e Ora",
|
||||
"SettingsLanguageTime_Description": "Lingua di visualizzazione di Wino, formato orario preferito.",
|
||||
"CategoriesFolderNameOverride": "Categorie",
|
||||
"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": "Di più",
|
||||
"SettingsOptions_Title": "Impostazioni",
|
||||
"SettingsLinkAccounts_Description": "Unisci più account in uno. Vedi i messaggi da una Posta in arrivo comune.",
|
||||
@@ -420,21 +464,21 @@
|
||||
"SettingsFolderMenuStyle_Description": "Cambia se le cartelle dell'account devono essere annidate o meno all'interno di una voce del menù dell'account. Disattiva questa opzione se ti piace il vecchio sistema di menù in Windows Mail",
|
||||
"SettingsManageAccountSettings_Description": "Notifiche, firme, sincronizzazione e altre impostazioni per account.",
|
||||
"SettingsManageAccountSettings_Title": "Gestisci Impostazioni Account",
|
||||
"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.",
|
||||
"SettingsAppPreferences_Title": "Preferenze dell'app",
|
||||
"SettingsAppPreferences_Description": "Impostazioni generali / preferenze per Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Comportamento chiusura applicazione",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "Cosa dovrebbe succedere quando chiudi l'app?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Avvia minimizzato all'avvio di Windows",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Consenti a Wino Mail di lanciarsi minimizzato all'avvio di Windows. Consentigli sempre di ricevere notifiche.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail correttamente impostato per essere lanciato in background all'avvio di Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail non sarà avviato all'avvio di Windows. Questo ti farà perdere le notifiche quando riavvii il computer.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "L'amministratore o i criteri di gruppo hanno disabilitato l'esecuzione di applicazioni all'avvio. Così, Wino Mail non può essere impostato per avviarsi all'avvio di Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Vai a Task Manager -> scheda Avvio per consentire a Wino Mail di avviarsi all'avvio di Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Si è verificato un errore fatale modificando la modalità di avvio per Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Abilita",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Disabilita",
|
||||
"SettingsReorderAccounts_Title": "Riordina account",
|
||||
"SettingsReorderAccounts_Description": "Cambia l'ordine degli account nella lista account.",
|
||||
"SettingsManageLink_Description": "Sposta gli elementi per aggiungere un nuovo collegamento o rimuovi un collegamento esistente.",
|
||||
"SettingsManageLink_Title": "Gestisci Collegamenti",
|
||||
"SettingsMarkAsRead_Description": "Cambia cosa dovrebbe accadere all'elemento selezionato.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Non hai ancora configurato alcun account.",
|
||||
"SettingsNotifications_Description": "Attiva o disattiva le notifiche per questo account.",
|
||||
"SettingsNotifications_Title": "Notifiche",
|
||||
"SettingsPaneLength_Description": "Cambia la larghezza dell'elenco dei messaggi.",
|
||||
"SettingsPaneLength_Title": "Lunghezza del Pannello della Lista dei Messaggi",
|
||||
"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": "Mostra molto più amore ❤️ Tutte le donazioni sono apprezzate.",
|
||||
"SettingsPaypal_Title": "Dona con PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Modalità Compatta",
|
||||
@@ -459,10 +503,10 @@
|
||||
"SettingsPersonalization_Title": "Personalizzazione",
|
||||
"SettingsPrivacyPolicy_Description": "Verifica l'informativa sulla privacy.",
|
||||
"SettingsPrivacyPolicy_Title": "Informativa sulla Privacy",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReader_Title": "Lettore",
|
||||
"SettingsComposer_Title": "Compositore",
|
||||
"SettingsReadComposePane_Description": "Caratteri, contenuto esterno.",
|
||||
"SettingsReadComposePane_Title": "Lettore e compositore",
|
||||
"SettingsReaderFont_Title": "Carattere di Lettura Predefinito",
|
||||
"SettingsReaderFontFamily_Description": "Cambia la famiglia di caratteri predefinita e la dimensione del carattere per la lettura dei nuovi messaggi.",
|
||||
"SettingsFontFamily_Title": "Famiglia di Caratteri",
|
||||
@@ -480,7 +524,7 @@
|
||||
"SettingsShowSenderPictures_Title": "Mostra Avatar del Mittente",
|
||||
"SettingsPrefer24HourClock_Title": "Visualizza orologio in formato 24 Ore",
|
||||
"SettingsPrefer24HourClock_Description": "Gli orari di ricezione della posta saranno visualizzati in formato 24 ore invece di 12 (AM/PM)",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Description": "Gestisci firme account",
|
||||
"SettingsSignature_Title": "Firma",
|
||||
"SettingsStartupItem_Description": "Elemento dell'account primario per caricare la Posta in arrivo all'avvio.",
|
||||
"SettingsStartupItem_Title": "Elemento Iniziale",
|
||||
@@ -524,29 +568,29 @@
|
||||
"WinoUpgradeMessage": "Aggiorna a Account Illimitati",
|
||||
"WinoUpgradeRemainingAccountsMessage": "{0} di {1} account gratuiti utilizzati.",
|
||||
"Yesterday": "Ieri",
|
||||
"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"
|
||||
"SignatureEditorDialog_Title": "Editor di firme",
|
||||
"SignatureEditorDialog_SignatureName_Placeholder": "Nomina la tua firma",
|
||||
"SignatureEditorDialog_SignatureName_TitleNew": "Nome della firma",
|
||||
"SignatureEditorDialog_SignatureName_TitleEdit": "Nome firma attuale: {0}",
|
||||
"SignatureDeleteDialog_Title": "Elimina firma",
|
||||
"SignatureDeleteDialog_Message": "Sei sicuro di voler eliminare la firma \"{0}\"?",
|
||||
"SettingsSignature_ForNewMessages_Title": "Per nuovi messaggi",
|
||||
"SettingsSignature_ForFollowingMessages_Title": "Per risposte/inoltri",
|
||||
"SettingsSignature_SignatureDefaults": "Firme predefinite",
|
||||
"SettingsSignature_Signatures": "Firme",
|
||||
"SettingsSignature_AddCustomSignature_Title": "Aggiungi firma personalizzata",
|
||||
"SettingsSignature_AddCustomSignature_Button": "Aggiungi firma",
|
||||
"SettingsSignature_EditSignature_Title": "Modifica firma",
|
||||
"SettingsSignature_DeleteSignature_Title": "Elimina firma",
|
||||
"SettingsSignature_NoneSignatureName": "Nessuno",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimizza nell'area di notifica",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail continuerà a funzionare nell'area di notifica. Disponibile per il lancio facendo clic su un'icona. Sarai avvisato quando arriveranno nuovi messaggi.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Esegui in background",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail continuerà a essere in esecuzione in background. Sarai avvisato quando arriveranno nuovi messaggi.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Termina",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail non continuerà a funzionare da nessuna parte. Non sarai avvisato quando arrivano nuove e-mail. Avvia nuovamente Wino Mail per continuare la sincronizzazione della posta.",
|
||||
"TitleBarServerDisconnectedButton_Title": "nessuna connessione",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino è disconnesso dalla rete. Clicca di nuovo per ripristinare la connessione.",
|
||||
"TitleBarServerReconnectButton_Title": "riconnetti",
|
||||
"TitleBarServerReconnectingButton_Title": "in connessione"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "初期化中",
|
||||
"AccountCreationDialog_PreparingFolders": "現在フォルダ情報を取得中です。",
|
||||
"AccountCreationDialog_SigninIn": "アカウント情報を保存しています。",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "アカウント名",
|
||||
"AccountEditDialog_Title": "アカウントの編集",
|
||||
"AccountPickerDialog_Title": "アカウントを選択",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "追加",
|
||||
"AutoDiscoveryProgressMessage": "メール設定を検索中...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "詳細設定",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "認証情報はローカルにのみ保存されます。",
|
||||
"BasicIMAPSetupDialog_Description": "一部のアカウントではサインインするために追加の手順が必要です。",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "パスワード",
|
||||
"BasicIMAPSetupDialog_Title": "IMAPアカウント",
|
||||
"Buttons_AddAccount": "アカウントを追加",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "テーマを適用",
|
||||
"Buttons_Browse": "閲覧",
|
||||
"Buttons_Cancel": "キャンセル",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "サインイン",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "はい",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "中央",
|
||||
"ComingSoon": "近日公開",
|
||||
"ComposerFrom": "差出人: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "カスタム壁紙を設定",
|
||||
"DialogMessage_AccountLimitMessage": "アカウントの作成上限に達しました。\n「無制限アカウント」アドオンを購入して続行しますか?",
|
||||
"DialogMessage_AccountLimitTitle": "アカウントの上限に達しました",
|
||||
"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": "このフォルダ内のすべてのメールを完全に削除しますか?",
|
||||
"DialogMessage_CleanupFolderTitle": "フォルダのクリーンアップ",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "メッセージに宛先がありません。",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +137,7 @@
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"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}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "bezig met initialiseren",
|
||||
"AccountCreationDialog_PreparingFolders": "Bezig met ontvangen van mapgegevens.",
|
||||
"AccountCreationDialog_SigninIn": "Accountinformatie wordt opgeslagen.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Accountnaam",
|
||||
"AccountEditDialog_Title": "Bewerk account",
|
||||
"AccountPickerDialog_Title": "Kies een account",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Toevoegen",
|
||||
"AutoDiscoveryProgressMessage": "Zoeken naar mailinstellingen...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Geavanceerde configuratie",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Uw inloggegevens worden alleen lokaal opgeslagen op uw computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Sommige accounts vereisen aanvullende stappen om in te loggen",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Wachtwoord",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP account",
|
||||
"Buttons_AddAccount": "Account toevoegen",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Thema toepassen",
|
||||
"Buttons_Browse": "Bladeren",
|
||||
"Buttons_Cancel": "Annuleren",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Aanmelden",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Ja",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centreren",
|
||||
"ComingSoon": "Binnenkort beschikbaar...",
|
||||
"ComposerFrom": "Van: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Aangepaste achtergrond instellen",
|
||||
"DialogMessage_AccountLimitMessage": "U hebt de limiet voor het aanmaken van accounts bereikt.\nWilt u de 'Onbeperkt aantal accounts' add-on kopen om door te gaan?",
|
||||
"DialogMessage_AccountLimitTitle": "Limiet accounts bereikt",
|
||||
"DialogMessage_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": "Wilt u alle e-mails in deze map permanent verwijderen?",
|
||||
"DialogMessage_CleanupFolderTitle": "Opschonen map",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Bericht heeft geen ontvanger.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Niet opnieuw vragen",
|
||||
"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 heeft geen eigen Discord server, maar het speciale 'wino-mail' kanaal is gehost op de 'Developer Sanctuary' server.\nOm updates over Wino te krijgen, sluit je je aan bij de Developer Sanctuary server en volg je 'wino-mail' kanaal onder 'Community Projects'\n\nJe wordt doorgestuurd naar de server-URL omdat Discord geen kanaaluitnodigingen ondersteunt.",
|
||||
"DiscordChannelDisclaimerTitle": "Belangrijke informatie over Discord",
|
||||
"Draft": "Concept",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Tekenen",
|
||||
"EditorToolbarOption_Format": "Opmaak",
|
||||
"EditorToolbarOption_Insert": "Invoegen",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Lichte modus",
|
||||
"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 is mislukt.",
|
||||
"Exception_AuthenticationCanceled": "Authenticatie geannuleerd",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "U moet een naam invullen.",
|
||||
"Exception_CustomThemeMissingWallpaper": "U moet een aangepaste achtergrondafbeelding invoeren.",
|
||||
"Exception_FailedToSynchronizeFolders": "Synchroniseren van mappen mislukt",
|
||||
"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 bij het activeren.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Beschadigd autorisatieantwoord.",
|
||||
"Exception_GoogleAuthError": "OAuth autorisatiefout: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Deze afmeldlink is ongeldig. Afmelden van de lijst is mislukt.",
|
||||
"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": "Authenticatiemethode",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Beveiliging van verbinding",
|
||||
"ImapAuthenticationMethod_Auto": "Automatisch",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "inicjowanie",
|
||||
"AccountCreationDialog_PreparingFolders": "Trwa pobieranie informacji o folderach.",
|
||||
"AccountCreationDialog_SigninIn": "Zapisywanie danych konta.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nazwa konta",
|
||||
"AccountEditDialog_Title": "Edytuj konto",
|
||||
"AccountPickerDialog_Title": "Wybierz konto",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Dodaj",
|
||||
"AutoDiscoveryProgressMessage": "Wyszukiwanie ustawień poczty...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Konfiguracja zaawansowana",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Twoje dane logowania będą przechowywane lokalnie tylko na Twoim komputerze.",
|
||||
"BasicIMAPSetupDialog_Description": "Niektóre konta wymagają dodatkowych kroków do zalogowania",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Hasło",
|
||||
"BasicIMAPSetupDialog_Title": "Konto IMAP",
|
||||
"Buttons_AddAccount": "Dodaj konto",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Zastosuj motyw",
|
||||
"Buttons_Browse": "Przeglądaj",
|
||||
"Buttons_Cancel": "Anuluj",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Zaloguj się",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Tak",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Wyśrodkuj",
|
||||
"ComingSoon": "Już wkrótce...",
|
||||
"ComposerFrom": "Od: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Ustaw niestandardową tapetę",
|
||||
"DialogMessage_AccountLimitMessage": "Osiągnąłeś limit utworzonych kont.\nCzy chcesz kupić dodatek \"Nielimitowane konto\", aby kontynuować?",
|
||||
"DialogMessage_AccountLimitTitle": "Osiągnięto limit konta",
|
||||
"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": "Czy chcesz trwale usunąć wszystkie wiadomości z tego folderu?",
|
||||
"DialogMessage_CleanupFolderTitle": "Opróżnianie folderu",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Wiadomość nie ma odbiorcy.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Aby przestać otrzymywać wiadomości od {0}, przejdź do strony internetowej tego serwisu, aby zrezygnować.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Przejdź na stronę",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Czy chcesz przestać otrzymywać wiadomości od {0}? Wino zrezygnuje z subskrypcji, wysyłając wiadomości z konta e-mail do {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Nie pytaj ponownie",
|
||||
"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 nie ma własnego serwera Discorda, ale specjalny kanał \"wino-mail\" który jest hostowany na serwerze \"Developer Sanctuary\".\nAby otrzymywać najświeższe informacje o Wino dołącz do serwera Developer Sanctuary i obserwuj kanał 'wino-mail' pod 'Community Projects'\n\nZostaniesz przekierowany na adres URL serwera, ponieważ Discord nie obsługuje kanałów zaproszeń.",
|
||||
"DiscordChannelDisclaimerTitle": "Ważne informacje o kanale na Discordzie",
|
||||
"Draft": "Wersja robocza",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Rysowanie",
|
||||
"EditorToolbarOption_Format": "Formatowanie",
|
||||
"EditorToolbarOption_Insert": "Wstawianie",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Tryb jasny",
|
||||
"Emoji": "Emotikony",
|
||||
"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": "Pula klienta IMAP nie powiodła się.",
|
||||
"Exception_AuthenticationCanceled": "Anulowano uwierzytelnianie",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Musisz podać nazwę.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Musisz podać niestandardowy obraz tła.",
|
||||
"Exception_FailedToSynchronizeFolders": "Nie udało się zsynchronizować folderów",
|
||||
"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": "Adres uri wywołania zwrotnego jest pusty przy aktywacji.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Uszkodzona odpowiedź autoryzacji.",
|
||||
"Exception_GoogleAuthError": "Błąd autoryzacji OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Link anulowania subskrypcji jest nieprawidłowy. Nie udało się wypisać z listy subskrybentów.",
|
||||
"Info_UnsubscribeSuccessMessage": "Pomyślnie anulowano subskrypcję z {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Anulowanie subskrypcji nie powiodło się",
|
||||
"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": "Metoda autoryzacji",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Zabezpieczenia dot. połączenia",
|
||||
"ImapAuthenticationMethod_Auto": "Automatyczne",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Synchronizacja folderów",
|
||||
"SettingsFolderOptions_Title": "Konfiguracja folderów",
|
||||
"SettingsFolderOptions_Description": "Zmień ustawienia poszczególnych folderów, takie jak wyłączenie lub włączenie synchronizacji lub pokazywanie i ukrywanie ikony nieprzeczytanych wiadomości.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Akcja ze środka",
|
||||
"SettingsHoverActionLeft": "Akcja z lewej",
|
||||
"SettingsHoverActionRight": "Akcja z prawej",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Język i czas",
|
||||
"SettingsLanguageTime_Description": "Język wyświetlania Wino, preferowany format czasu.",
|
||||
"CategoriesFolderNameOverride": "Kategorie",
|
||||
"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": "Więcej",
|
||||
"SettingsOptions_Title": "Ustawienia",
|
||||
"SettingsLinkAccounts_Description": "Scal wiele kont w jedno. Przeglądaj wiadomości z jednej skrzynki odbiorczej razem.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Nie skonfigurowano jeszcze żadnych kont.",
|
||||
"SettingsNotifications_Description": "Włącz lub wyłącz powiadomienia dla tego konta.",
|
||||
"SettingsNotifications_Title": "Powiadomienia",
|
||||
"SettingsPaneLength_Description": "Zmień szerokość listy wiadomości.",
|
||||
"SettingsPaneLength_Title": "Długość panelu listy wiadomości",
|
||||
"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": "Okaż dużo więcej miłości ❤️ Za wszystkie darowizny dziękuję.",
|
||||
"SettingsPaypal_Title": "Wspomóż przez PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Tryb kompaktowy",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "iniciando",
|
||||
"AccountCreationDialog_PreparingFolders": "Estamos recebendo informações sobre as pastas no momento.",
|
||||
"AccountCreationDialog_SigninIn": "Informações da conta estão sendo salvas.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Nome da Conta",
|
||||
"AccountEditDialog_Title": "Editar Conta",
|
||||
"AccountPickerDialog_Title": "Escolha uma conta",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "Por exemplo, João Silva",
|
||||
"AddHyperlink": "Adicionar",
|
||||
"AutoDiscoveryProgressMessage": "Procurando por configurações de e-mail...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Configuração Avançada",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Suas credenciais só serão armazenadas localmente no seu computador.",
|
||||
"BasicIMAPSetupDialog_Description": "Algumas contas requerem passos adicionais para realizar o login",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Senha",
|
||||
"BasicIMAPSetupDialog_Title": "Conta IMAP",
|
||||
"Buttons_AddAccount": "Adicionar Conta",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Aplicar Tema",
|
||||
"Buttons_Browse": "Navegar",
|
||||
"Buttons_Cancel": "Cancelar",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Entrar",
|
||||
"Buttons_TryAgain": "Tentar Novamente",
|
||||
"Buttons_Yes": "Sim",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Centro",
|
||||
"ComingSoon": "Em breve...",
|
||||
"ComposerFrom": "De: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Definir papel de parede personalizado",
|
||||
"DialogMessage_AccountLimitMessage": "Você atingiu o limite de contas criadas.\nVocê gostaria de comprar o complemento 'Acesso Ilimitado' para continuar?",
|
||||
"DialogMessage_AccountLimitTitle": "Limite de Contas Alcançado",
|
||||
"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": "Você quer apagar permanentemente todos os e-mails nesta pasta?",
|
||||
"DialogMessage_CleanupFolderTitle": "Limpar Pasta",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "A mensagem não possui destinatário.",
|
||||
@@ -82,7 +103,7 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "Renomear conta vinculada",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "Esta operação não apagará suas contas, mas quebrará apenas o vínculo para conexões de pastas compartilhadas. Você deseja continuar?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Desvincular Contas",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Faltando Assunto",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Mensagem não possui assunto. Você deseja continuar?",
|
||||
"DialogMessage_RenameFolderTitle": "Renomear Pasta",
|
||||
"DialogMessage_RenameFolderMessage": "Escolha um novo nome para esta pasta",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Para parar de receber mensagens de {0}, vá para o site deles para cancelar a inscrição.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Ir para o site",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Você quer parar de receber mensagens de {0}? Wino cancelará a inscrição para você enviando um e-mail da sua conta para {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Não perguntar novamente",
|
||||
"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 não possui um servidor próprio do Discord, mas o canal especial 'wino-mail' está presente no servidor 'Developer Sanctuary'. Para obter atualizações sobre o Wino, por favor se junto ao servidor Developer Sanctuary e siga o canal 'wino-mail' em 'Community Projects'\n\nVocê será direcionado para a URL do servidor, já que o Discord não tem suporte a convites a um canal.",
|
||||
"DiscordChannelDisclaimerTitle": "Informações importantes do Discord",
|
||||
"Draft": "Rascunho",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Desenhar",
|
||||
"EditorToolbarOption_Format": "Formato",
|
||||
"EditorToolbarOption_Insert": "Inserir",
|
||||
@@ -105,7 +136,8 @@
|
||||
"ElementTheme_Default": "Usar configurações do sistema",
|
||||
"ElementTheme_Light": "Modo claro",
|
||||
"Emoji": "Emoji",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_WinoServerException": "O servidor do Wino falhou.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Não foi possível encontrar configurações da caixa de e-mail.",
|
||||
"Exception_ImapClientPoolFailed": "Client Pool do IMAP falhou.",
|
||||
"Exception_AuthenticationCanceled": "Autenticação cancelada",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Você deve escrever um nome.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Você deve fornecer uma imagem de fundo personalizada.",
|
||||
"Exception_FailedToSynchronizeFolders": "Erro ao sincronizar pastas",
|
||||
"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 é 'null' na ativação.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Resposta de autorização corrompida.",
|
||||
"Exception_GoogleAuthError": "Erro de autorização OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Este link de descadastramento é inválido. Falha ao cancelar a inscrição da lista.",
|
||||
"Info_UnsubscribeSuccessMessage": "Inscrição de {0} cancelada com sucesso.",
|
||||
"Info_UnsubscribeErrorMessage": "Falha ao Cancelar Inscrição",
|
||||
"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": "Método de autenticação",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Segurança de Conexão",
|
||||
"ImapAuthenticationMethod_Auto": "Automático",
|
||||
@@ -336,7 +373,7 @@
|
||||
"ProtocolLogAvailable_Message": "Os registros do protocolo estão disponíveis para diagnósticos.",
|
||||
"Results": "Resultados",
|
||||
"Right": "Direita",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "Salvar todos os anexos",
|
||||
"SynchronizationFolderReport_Success": "Atualizado",
|
||||
"SynchronizationFolderReport_Failed": "Falha na sincronização",
|
||||
"SearchBarPlaceholder": "Pesquisar",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Sincronização de pastas",
|
||||
"SettingsFolderOptions_Title": "Configuração de pastas",
|
||||
"SettingsFolderOptions_Description": "Altere as configurações de pastas individuais como ativar/desativar a sincronização ou exibir/ocultar como não lida.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Centralizar Ação",
|
||||
"SettingsHoverActionLeft": "Ação à esquerda",
|
||||
"SettingsHoverActionRight": "Ação à direita",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Idioma & Horário",
|
||||
"SettingsLanguageTime_Description": "Idioma de exibição do Wino, formato de hora preferido.",
|
||||
"CategoriesFolderNameOverride": "Categorias",
|
||||
"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": "Mais",
|
||||
"SettingsOptions_Title": "Configurações",
|
||||
"SettingsLinkAccounts_Description": "Junte várias contas em uma só. Veja e-mails em uma caixa de entrada.",
|
||||
@@ -420,19 +464,19 @@
|
||||
"SettingsFolderMenuStyle_Description": "Alterar se as pastas da conta devem estar aninhadas dentro de um item de menu de conta ou não. Desative esta opção se você gosta do sistema de menu antigo do Windows Mail",
|
||||
"SettingsManageAccountSettings_Description": "Notificações, assinaturas, sincronização e outras configurações por conta.",
|
||||
"SettingsManageAccountSettings_Title": "Gerenciar configurações de conta",
|
||||
"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",
|
||||
"SettingsAppPreferences_Title": "Preferências do Aplicativo",
|
||||
"SettingsAppPreferences_Description": "Configurações gerais / Preferências para o Wino Mail.",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "Comportamento do aplicativo fechado",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "O que deveria acontecer quando você fecha o aplicativo?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "Iniciar minimizado na inicialização do Windows",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "Permitir que o Wino inicie minimizado com o Windows. Sempre permita que ele receba notificações.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino foi definido com sucesso para ser iniciado de fundo na inicialização do Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "O Wino Mail não será iniciado na inicialização do Windows. Isso fará com que você perca as notificações quando reiniciar o computador.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Suas políticas de administrador ou grupo desativaram a execução de aplicativos na inicialização. Assim, o Wino Mail não pode ser configurado para iniciar com o Windows na inicialização.",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Por favor, vá para o Gerenciador de Tarefas -> Aplicativos de Inicialização para permitir que o Wino Mail inicie no Windows.",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "Ocorreu um erro fatal ao alterar o modo de inicialização do Wino Mail.",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "Habilitar",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "Desabilitar",
|
||||
"SettingsReorderAccounts_Title": "Reordenar Contas",
|
||||
"SettingsReorderAccounts_Description": "Altere a ordem das contas na lista de conta.",
|
||||
"SettingsManageLink_Description": "Mova os itens para adicionar um novo vínculo ou remover o vínculo existente.",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Você ainda não configurou nenhuma conta.",
|
||||
"SettingsNotifications_Description": "Ative ou desative as notificações para esta conta.",
|
||||
"SettingsNotifications_Title": "Notificações",
|
||||
"SettingsPaneLength_Description": "Altere a largura da lista de e-mails.",
|
||||
"SettingsPaneLength_Title": "Comprimento do painel da lista de e-mail",
|
||||
"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": "Mostre muito mais amor ❤️ Todas as doações são apreciadas.",
|
||||
"SettingsPaypal_Title": "Doe pelo PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Modo Compacto",
|
||||
@@ -539,14 +583,14 @@
|
||||
"SettingsSignature_EditSignature_Title": "Editar assinatura",
|
||||
"SettingsSignature_DeleteSignature_Title": "Excluir assinatura",
|
||||
"SettingsSignature_NoneSignatureName": "Nenhum",
|
||||
"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"
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimizar para a bandeja de sistema",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "O Wino Mail continuará em execução na bandeja do sistema. Disponível para iniciar clicando no ícone. Você será notificado assim que novos e-mails chegaram.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Executar em segundo plano",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "O Wino Mail continuará em execução em segundo plano. Você será notificado quando chegarem novos e-mails.",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Encerrar",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "O Wino Mail não será executado em nenhum lugar. Você não será notificado quando chegarem novos e-mails. Inicie o Wino Mail novamente para continuar a sincronização de e-mail.",
|
||||
"TitleBarServerDisconnectedButton_Title": "Sem conexão",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino está desconectado da rede. Clique em reconectar para restaurar a conexão.",
|
||||
"TitleBarServerReconnectButton_Title": "Reconectar",
|
||||
"TitleBarServerReconnectingButton_Title": "Conectando"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"AccountCreationDialog_Initializing": "инициализация",
|
||||
"AccountCreationDialog_PreparingFolders": "На данный момент мы получаем информацию о папках.",
|
||||
"AccountCreationDialog_SigninIn": "Данные учетной записи сохраняются.",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Имя пользователя",
|
||||
"AccountEditDialog_Title": "Редактировать учетную запись",
|
||||
"AccountPickerDialog_Title": "Выберите учетную запись",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "напр. Иван Иванов",
|
||||
"AddHyperlink": "Добавить",
|
||||
"AutoDiscoveryProgressMessage": "Поиск настроек почты...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Расширенная конфигурация",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Ваши учетные данные будут храниться только локально на вашем компьютере.",
|
||||
"BasicIMAPSetupDialog_Description": "Некоторые учетные записи требуют дополнительных шагов для входа",
|
||||
@@ -21,6 +29,8 @@
|
||||
"BasicIMAPSetupDialog_Password": "Пароль",
|
||||
"BasicIMAPSetupDialog_Title": "Учетная запись IMAP",
|
||||
"Buttons_AddAccount": "Добавить учетную запись",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Применить тему",
|
||||
"Buttons_Browse": "Обзор",
|
||||
"Buttons_Cancel": "Отмена",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Войти",
|
||||
"Buttons_TryAgain": "Повторить",
|
||||
"Buttons_Yes": "Да",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Центр",
|
||||
"ComingSoon": "Скоро...",
|
||||
"ComposerFrom": "От: ",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "Установить пользовательские обои",
|
||||
"DialogMessage_AccountLimitMessage": "Вы достигли предела создания учетной записи.\nХотите приобрести дополнение 'Неограниченная учетная запись', чтобы продолжить?",
|
||||
"DialogMessage_AccountLimitTitle": "Достигнут лимит учетных записей",
|
||||
"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": "Вы хотите навсегда удалить все письма в этой папке?",
|
||||
"DialogMessage_CleanupFolderTitle": "Очистить папку",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "Сообщение не имеет получателя.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Чтобы перестать получать сообщения от {0}, перейдите на их сайт и откажитесь от подписки.",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Перейти на сайт",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Вы хотите перестать получать сообщения от {0}? Wino отпишется от рассылки за вас, отправив письмо с вашего почтового ящика на адрес {1}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "Больше не спрашивать",
|
||||
"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 нет собственного сервера Discord, но специальный канал 'wino-mail' размещен на сервере 'Developer Sanctuary'.\nЧтобы получать обновления о Wino, пожалуйста, присоединитесь к серверу Developer Sanctuary и следите за каналом 'wino-mail' в разделе 'Community Projects'.\n\nВы будете направлены на URL сервера, так как Discord не поддерживает приглашения на канал.",
|
||||
"DiscordChannelDisclaimerTitle": "Важная информация о Discord",
|
||||
"Draft": "Черновик",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "Рисование",
|
||||
"EditorToolbarOption_Format": "Форматирование",
|
||||
"EditorToolbarOption_Insert": "Вставить",
|
||||
@@ -106,6 +137,7 @@
|
||||
"ElementTheme_Light": "Светлая тема",
|
||||
"Emoji": "Эмодзи",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Не удалось найти настройки почтового ящика.",
|
||||
"Exception_ImapClientPoolFailed": "Сбой пула клиентов IMAP.",
|
||||
"Exception_AuthenticationCanceled": "Аутентификация отменена",
|
||||
@@ -113,6 +145,9 @@
|
||||
"Exception_CustomThemeMissingName": "Необходимо указать название.",
|
||||
"Exception_CustomThemeMissingWallpaper": "Необходимо предоставить пользовательское фоновое изображение.",
|
||||
"Exception_FailedToSynchronizeFolders": "Не удалось синхронизировать папки",
|
||||
"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 пустой при активации.",
|
||||
"Exception_GoogleAuthCorruptedCode": "Поврежденный ответ авторизации.",
|
||||
"Exception_GoogleAuthError": "Ошибка авторизации OAuth: {0}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "Ссылка недействительна. Не удалось отписаться от списка рассылки.",
|
||||
"Info_UnsubscribeSuccessMessage": "Вы отписались от {0}.",
|
||||
"Info_UnsubscribeErrorMessage": "Не удалось отменить подписку",
|
||||
"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": "Метод авторизации",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "Безопасность соединения",
|
||||
"ImapAuthenticationMethod_Auto": "Автоматически",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "Синхронизация папок",
|
||||
"SettingsFolderOptions_Title": "Настройка папки",
|
||||
"SettingsFolderOptions_Description": "Измените настройки отдельных папок, например включите/выключите синхронизацию или покажите/скройте значок непрочитанного.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Кнопка по центру",
|
||||
"SettingsHoverActionLeft": "Левая кнопка",
|
||||
"SettingsHoverActionRight": "Правая кнопка",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "Язык и время",
|
||||
"SettingsLanguageTime_Description": "Язык интерфейса приложения, предпочитаемый формат времени.",
|
||||
"CategoriesFolderNameOverride": "Категории",
|
||||
"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": "Ещё",
|
||||
"SettingsOptions_Title": "Параметры",
|
||||
"SettingsLinkAccounts_Description": "Объедините несколько учетных записей в одну. Просматривайте письма из одной папки \"Входящие\".",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "Вы еще не создали ни одной учетной записи.",
|
||||
"SettingsNotifications_Description": "Включите или отключите уведомления для этой учетной записи.",
|
||||
"SettingsNotifications_Title": "Уведомления",
|
||||
"SettingsPaneLength_Description": "Измените ширину почтового списка.",
|
||||
"SettingsPaneLength_Title": "Длина панели почтового списка",
|
||||
"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": "Проявите больше любви ❤️ Все пожертвования высоко ценятся.",
|
||||
"SettingsPaypal_Title": "Пожертвовать через PayPal",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "Компактный режим",
|
||||
|
||||
@@ -1,55 +1,66 @@
|
||||
{
|
||||
"AccountCreationDialog_Completed": "all done",
|
||||
"AccountCreationDialog_Completed": "hepsi tamam",
|
||||
"AccountCreationDialog_Initializing": "başlatılıyor",
|
||||
"AccountCreationDialog_PreparingFolders": "Klasör bilgileri yükleniyor.",
|
||||
"AccountCreationDialog_SigninIn": "Hesap bilgileri kaydediliyor.",
|
||||
"AccountEditDialog_Message": "Account Name",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "Hesap Adı",
|
||||
"AccountEditDialog_Title": "Hesabı Düzenle",
|
||||
"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",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Your credentials will only be stored locally on your computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Some accounts require additional steps to sign in",
|
||||
"BasicIMAPSetupDialog_DisplayName": "Display Name",
|
||||
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "eg. John Doe",
|
||||
"BasicIMAPSetupDialog_LearnMore": "Learn more",
|
||||
"BasicIMAPSetupDialog_MailAddress": "E-Mail Address",
|
||||
"AccountPickerDialog_Title": "Bir hesap seçiniz",
|
||||
"AccountSettingsDialog_AccountName": "Gönderen Adı",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "örnek. Burak Köse",
|
||||
"AddHyperlink": "Ekle",
|
||||
"AutoDiscoveryProgressMessage": "Sunucu ayarları aranıyor...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Gelişmiş Ayarlar",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Hassas bilgileriniz yalnızca kendi bilgisayarınızda saklanacak.",
|
||||
"BasicIMAPSetupDialog_Description": "Bazı hesaplar ekstra adımlar gerektirebilir",
|
||||
"BasicIMAPSetupDialog_DisplayName": "Görünen Ad",
|
||||
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "örnek. Burak Köse",
|
||||
"BasicIMAPSetupDialog_LearnMore": "Daha fazla bilgi edinin",
|
||||
"BasicIMAPSetupDialog_MailAddress": "E-Posta adresi",
|
||||
"BasicIMAPSetupDialog_MailAddressPlaceholder": "johndoe@fabrikam.com",
|
||||
"BasicIMAPSetupDialog_Password": "Password",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP Account",
|
||||
"Buttons_AddAccount": "Add Account",
|
||||
"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",
|
||||
"Buttons_Open": "Open",
|
||||
"Buttons_Purchase": "Purchase",
|
||||
"Buttons_RateWino": "Rate Wino",
|
||||
"Buttons_Save": "Save",
|
||||
"Buttons_SaveConfiguration": "Save Configuration",
|
||||
"Buttons_Share": "Share",
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
"ComposerSubject": "Subject: ",
|
||||
"ComposerTo": "To: ",
|
||||
"ClipboardTextCopied_Message": "{0} copied to clipboard.",
|
||||
"ClipboardTextCopied_Title": "Copied",
|
||||
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
|
||||
"BasicIMAPSetupDialog_Password": "Parola",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP Hesabı",
|
||||
"Buttons_AddAccount": "Hesap Ekle",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "Temayı Uygula",
|
||||
"Buttons_Browse": "Gözat",
|
||||
"Buttons_Cancel": "İptal Et",
|
||||
"Buttons_Close": "Kapat",
|
||||
"Buttons_Create": "Oluştur",
|
||||
"Buttons_CreateAccount": "Hesap Oluştur",
|
||||
"Buttons_Copy": "Kopyala",
|
||||
"Buttons_Delete": "Sil",
|
||||
"Buttons_Edit": "Düzenle",
|
||||
"Buttons_Discard": "Vazgeç",
|
||||
"Buttons_EnableImageRendering": "Etkinleştir",
|
||||
"Buttons_No": "Hayır",
|
||||
"Buttons_Open": "Aç",
|
||||
"Buttons_Purchase": "Satın Al",
|
||||
"Buttons_RateWino": "Wino'yu Puanla",
|
||||
"Buttons_Save": "Kaydet",
|
||||
"Buttons_SaveConfiguration": "Ayarları Kaydet",
|
||||
"Buttons_Share": "Paylaş",
|
||||
"Buttons_SignIn": "Oturum Aç",
|
||||
"Buttons_TryAgain": "Tekrar Dene",
|
||||
"Buttons_Yes": "Evet",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Orta",
|
||||
"ComingSoon": "Yakında...",
|
||||
"ComposerFrom": "Gönderen: ",
|
||||
"ComposerSubject": "Konu: ",
|
||||
"ComposerTo": "Gönderilen: ",
|
||||
"ClipboardTextCopied_Message": "\"{0}\" panoya kopyalandı.",
|
||||
"ClipboardTextCopied_Title": "Kopyalandı",
|
||||
"ClipboardTextCopyFailed_Message": "{0} kopyalanamadı.",
|
||||
"ComposerToPlaceholder": "click enter to input addresses",
|
||||
"ComposerAttachmentsDropZone_Message": "Drop your files here",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
@@ -64,6 +75,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.",
|
||||
@@ -73,8 +94,8 @@
|
||||
"DialogMessage_DeleteAccountConfirmationMessage": "Delete {0}?",
|
||||
"DialogMessage_DeleteAccountConfirmationTitle": "All data associated with this account will be deleted from disk permanently.",
|
||||
"DialogMessage_DiscardDraftConfirmationMessage": "This draft will be discarded. Do you want to continue?",
|
||||
"DialogMessage_DiscardDraftConfirmationTitle": "Discard Draft",
|
||||
"DialogMessage_HardDeleteConfirmationMessage": "Permanent Delete",
|
||||
"DialogMessage_DiscardDraftConfirmationTitle": "Taslağı Sil",
|
||||
"DialogMessage_HardDeleteConfirmationMessage": "Kalıcı Olarak Sil",
|
||||
"DialogMessage_HardDeleteConfirmationTitle": "Message(s) will be permanently deleted. Do you want to continue?",
|
||||
"DialogMessage_NoAccountsForCreateMailMessage": "You don't have any accounts to create message from.",
|
||||
"DialogMessage_NoAccountsForCreateMailTitle": "Account Missing",
|
||||
@@ -84,17 +105,27 @@
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderTitle": "Klasörü Yeniden Adlandır",
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +137,7 @@
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"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}",
|
||||
@@ -161,11 +196,11 @@
|
||||
"IMAPSetupDialog_AccountType": "Account type",
|
||||
"IMAPSetupDialog_DisplayName": "Display Name",
|
||||
"IMAPSetupDialog_DisplayNamePlaceholder": "eg. John Doe",
|
||||
"IMAPSetupDialog_IncomingMailServer": "Incoming mail server",
|
||||
"IMAPSetupDialog_IncomingMailServer": "Gelen posta sunucusu",
|
||||
"IMAPSetupDialog_IncomingMailServerPort": "Port",
|
||||
"IMAPSetupDialog_MailAddress": "Email address",
|
||||
"IMAPSetupDialog_MailAddressPlaceholder": "someone@example.com",
|
||||
"IMAPSetupDialog_OutgoingMailServer": "Outgoing (SMTP) mail server",
|
||||
"IMAPSetupDialog_MailAddress": "E-posta adresi",
|
||||
"IMAPSetupDialog_MailAddressPlaceholder": "birisi@example.com",
|
||||
"IMAPSetupDialog_OutgoingMailServer": "Giden Sunucu (SMTP) Adresi",
|
||||
"IMAPSetupDialog_OutgoingMailServerPassword": "Outgoing server password",
|
||||
"IMAPSetupDialog_OutgoingMailServerPort": "Port",
|
||||
"IMAPSetupDialog_OutgoingMailServerRequireAuthentication": "Outgoing server requires authentication",
|
||||
@@ -177,7 +212,7 @@
|
||||
"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_ConnectionFailedTitle": "Bağlantı Başarısız",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
|
||||
"InfoBarAction_Enable": "Enable",
|
||||
@@ -191,7 +226,7 @@
|
||||
"Info_AccountCreationFailedTitle": "Account Creation Failed",
|
||||
"Info_AccountDeletedMessage": "{0} is successfuly deleted.",
|
||||
"Info_AccountDeletedTitle": "Account Deleted",
|
||||
"Info_AccountIssueFixFailedTitle": "Failed",
|
||||
"Info_AccountIssueFixFailedTitle": "Başarısız oldu",
|
||||
"Info_AccountIssueFixSuccessMessage": "Fixed all account issues.",
|
||||
"Info_AccountIssueFixSuccessTitle": "Success",
|
||||
"Info_AttachmentOpenFailedMessage": "Can't open this attachment.",
|
||||
@@ -253,68 +288,70 @@
|
||||
"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",
|
||||
"ImapAuthenticationMethod_CramMD5": "CRAM-MD5",
|
||||
"ImapAuthenticationMethod_DigestMD5": "DIGEST-MD5",
|
||||
"ImapAuthenticationMethod_None": "No authentication",
|
||||
"ImapAuthenticationMethod_None": "Kimlik doğrulama yok",
|
||||
"ImapAuthenticationMethod_Plain": "Normal password",
|
||||
"ImapAuthenticationMethod_EncryptedPassword": "Encrypted password",
|
||||
"ImapAuthenticationMethod_Ntlm": "NTLM",
|
||||
"ImapConnectionSecurity_None": "None",
|
||||
"ImapConnectionSecurity_SslTls": "SSL/TLS",
|
||||
"ImapConnectionSecurity_StartTls": "STARTTLS",
|
||||
"ImapConnectionSecurity_Auto": "Auto",
|
||||
"Justify": "Justify",
|
||||
"Left": "Left",
|
||||
"Link": "Link",
|
||||
"LinkedAccountsCreatePolicyMessage": "you must have at least 2 accounts to create link\nlink will be removed on save",
|
||||
"LinkedAccountsTitle": "Linked Accounts",
|
||||
"MailOperation_AlwaysMoveFocused": "Always Move to Focused",
|
||||
"MailOperation_AlwaysMoveOther": "Always Move to Other",
|
||||
"MailOperation_Archive": "Archive",
|
||||
"MailOperation_ClearFlag": "Clear flag",
|
||||
"MailOperation_DarkEditor": "Dark",
|
||||
"MailOperation_Delete": "Delete",
|
||||
"MailOperation_ExportPDF": "Export to PDF",
|
||||
"MailOperation_Find": "Find",
|
||||
"MailOperation_Forward": "Forward",
|
||||
"MailOperation_Ignore": "Ignore",
|
||||
"MailOperation_LightEditor": "Light",
|
||||
"MailOperation_MarkAsJunk": "Mark as junk",
|
||||
"MailOperation_MarkAsRead": "Mark as read",
|
||||
"MailOperation_MarkAsUnread": "Mark as unread",
|
||||
"MailOperation_MarkNotJunk": "Mark as Not Junk",
|
||||
"MailOperation_Move": "Move",
|
||||
"MailOperation_MoveFocused": "Move to Focused",
|
||||
"MailOperation_MoveJunk": "Move to Junk",
|
||||
"MailOperation_MoveOther": "Move to Other",
|
||||
"MailOperation_Navigate": "Navigate",
|
||||
"MailOperation_Print": "Print",
|
||||
"MailOperation_Reply": "Reply",
|
||||
"MailOperation_ReplyAll": "Reply all",
|
||||
"MailOperation_SaveAs": "Save As",
|
||||
"MailOperation_SetFlag": "Set flag",
|
||||
"MailOperation_Unarchive": "Unarchive",
|
||||
"MailOperation_Zoom": "Zoom",
|
||||
"MailsSelected": "{0} item(s) selected",
|
||||
"MarkFlagUnflag": "Mark as flagged/unflagged",
|
||||
"MarkReadUnread": "Mark as read/unread",
|
||||
"MenuManageAccounts": "Manage Accounts",
|
||||
"MenuNewMail": "New Mail",
|
||||
"MenuMergedAccountItemAccountsSuffix": " accounts",
|
||||
"MenuRate": "Rate Wino",
|
||||
"MenuSettings": "Settings",
|
||||
"MergedAccountsAvailableAccountsTitle": "Available Accounts",
|
||||
"More": "More",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} is not a valid folder for this mail.",
|
||||
"MoveMailDialog_Title": "Pick a folder",
|
||||
"NewAccountDialog_AccountName": "Account Name",
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Personal",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
|
||||
"NewAccountDialog_Title": "Add New Account",
|
||||
"NoMailSelected": "No message selected",
|
||||
"ImapConnectionSecurity_Auto": "Otomatik",
|
||||
"Justify": "Yasla",
|
||||
"Left": "Sol",
|
||||
"Link": "Bağlantı",
|
||||
"LinkedAccountsCreatePolicyMessage": "hesap bağlantısı oluşturabilmeniz için en az 2 adet hesap gerekli\nkaydet'e basıldığında hesap bağlantısı silinecektir",
|
||||
"LinkedAccountsTitle": "Bağlı Hesaplar",
|
||||
"MailOperation_AlwaysMoveFocused": "Her Zaman Odaklanmış'a Taşı",
|
||||
"MailOperation_AlwaysMoveOther": "Her Zaman Diğer'e Taşı",
|
||||
"MailOperation_Archive": "Arşivle",
|
||||
"MailOperation_ClearFlag": "Bayrağı sil",
|
||||
"MailOperation_DarkEditor": "Koyu",
|
||||
"MailOperation_Delete": "Sil",
|
||||
"MailOperation_ExportPDF": "PDF'e Aktar",
|
||||
"MailOperation_Find": "Bul",
|
||||
"MailOperation_Forward": "İlet",
|
||||
"MailOperation_Ignore": "Yoksay",
|
||||
"MailOperation_LightEditor": "Açık",
|
||||
"MailOperation_MarkAsJunk": "Gereksiz olarak işaretle",
|
||||
"MailOperation_MarkAsRead": "Okundu olarak işaretle",
|
||||
"MailOperation_MarkAsUnread": "Okunmadı olarak işaretle",
|
||||
"MailOperation_MarkNotJunk": "Gerekli Olarak İşaretle",
|
||||
"MailOperation_Move": "Taşı",
|
||||
"MailOperation_MoveFocused": "Odaklanmış'a Taşı",
|
||||
"MailOperation_MoveJunk": "Spam'e Taşı",
|
||||
"MailOperation_MoveOther": "Diğer'e Taşı",
|
||||
"MailOperation_Navigate": "Gezin",
|
||||
"MailOperation_Print": "Yazdır",
|
||||
"MailOperation_Reply": "Yanıtla",
|
||||
"MailOperation_ReplyAll": "Tümünü yanıtla",
|
||||
"MailOperation_SaveAs": "Farklı kaydet",
|
||||
"MailOperation_SetFlag": "Bayrak ekle",
|
||||
"MailOperation_Unarchive": "Arşivden çıkar",
|
||||
"MailOperation_Zoom": "Yakınlaştır",
|
||||
"MailsSelected": "{0} seçili",
|
||||
"MarkFlagUnflag": "Bayrak ekle/kaldır",
|
||||
"MarkReadUnread": "Okundu/okunmadı olarak işaretle",
|
||||
"MenuManageAccounts": "Hesapları Yönet",
|
||||
"MenuNewMail": "Yeni Posta",
|
||||
"MenuMergedAccountItemAccountsSuffix": " hesaplar",
|
||||
"MenuRate": "Wino'yu Puanla",
|
||||
"MenuSettings": "Ayarlar",
|
||||
"MergedAccountsAvailableAccountsTitle": "Mevcut hesaplar",
|
||||
"More": "Daha fazla",
|
||||
"MoveMailDialog_InvalidFolderMessage": "{0} bu e-posta için geçersiz.",
|
||||
"MoveMailDialog_Title": "Bir klasör seçin",
|
||||
"NewAccountDialog_AccountName": "Hesap Adı",
|
||||
"NewAccountDialog_AccountNameDefaultValue": "Kişisel",
|
||||
"NewAccountDialog_AccountNamePlaceholder": "örnek. Kişisel Hesabım",
|
||||
"NewAccountDialog_Title": "Yeni hesap ekle",
|
||||
"NoMailSelected": "İleti seçilmedi",
|
||||
"NoMessageCrieteria": "No messages match your search criteria",
|
||||
"NoMessageEmptyFolder": "This folder is empty",
|
||||
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
|
||||
@@ -365,56 +402,63 @@
|
||||
"SettingsAutoSelectNextItem_Description": "Select the next item after you delete or move a mail.",
|
||||
"SettingsCustomTheme_Description": "Create your own custom theme with custom wallpaper and accent color.",
|
||||
"SettingsCustomTheme_Title": "Custom Theme",
|
||||
"SettingsConfigureSpecialFolders_Title": "Configure System Folders",
|
||||
"SettingsConfigureSpecialFolders_Description": "Set folders with special functions. Folders such as Archive, Inbox, and Drafts are essential for Wino to function properly.",
|
||||
"SettingConfigureSpecialFolders_Button": "Configure",
|
||||
"Error_FailedToSetupSystemFolders_Title": "Failed to setup system folders",
|
||||
"SettingsDeleteAccount_Description": "Delete all e-mails and credentials associated with this account.",
|
||||
"SettingsDeleteAccount_Title": "Delete this account",
|
||||
"SettingsDeleteProtection_Description": "Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?",
|
||||
"SettingsDeleteProtection_Title": "Permanent Delete Protection",
|
||||
"SettingsDiagnostics_Description": "For developers",
|
||||
"SettingsDiagnostics_Title": "Diagnostics",
|
||||
"SettingsDiscord_Description": "Get regular development updates, join roadmap discussions and provide feedback.",
|
||||
"SettingsDiscord_Title": "Discord Channel",
|
||||
"SettingsElementThemeSelectionDisabled": "Element theme selection is disabled when application theme is selected other than Default.",
|
||||
"SettingsElementTheme_Description": "Select a Windows theme for Wino",
|
||||
"SettingsElementTheme_Title": "Element Theme",
|
||||
"SettingsEnableHoverActions_Title": "Enable hover actions",
|
||||
"SettingsEnableIMAPLogs_Description": "Enable this to provide details about IMAP connectivity issuses you had during IMAP server setup.",
|
||||
"SettingsEnableIMAPLogs_Title": "Enable IMAP Protocol Logs",
|
||||
"SettingsEnableLogs_Description": "I might need logs for crashes to diagnose issues you have opened in GitHub. None of the logs will expose your credentials or sensetive information to public.",
|
||||
"SettingsEnableLogs_Title": "Enable Logs",
|
||||
"SettingsEnableSignature": "Enable Signature",
|
||||
"SettingsExpandOnStartup_Description": "Set whether Wino should expand this account's folders on startup.",
|
||||
"SettingsExpandOnStartup_Title": "Expand Menu on Startup",
|
||||
"SettingsExternalContent_Description": "Manage external content settings when rendering mails.",
|
||||
"SettingsExternalContent_Title": "External Content",
|
||||
"SettingsFocusedInbox_Description": "Set whether Inbox should be split into two as Focused - Other.",
|
||||
"SettingsFocusedInbox_Title": "Focused Inbox",
|
||||
"SettingsFolderSync_Description": "Enable or disable specific folders for synchronization.",
|
||||
"SettingsFolderSync_Title": "Folder Synchronization",
|
||||
"SettingsFolderOptions_Title": "Folder Configuration",
|
||||
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
|
||||
"SettingsHoverActionCenter": "Center Action",
|
||||
"SettingsHoverActionLeft": "Left Action",
|
||||
"SettingsHoverActionRight": "Right Action",
|
||||
"SettingsHoverActions_Description": "Select 3 actions to show up when you hover over the mails with cursor.",
|
||||
"SettingsHoverActions_Title": "Hover Actions",
|
||||
"SettingsLanguage_Description": "Change display language for Wino.",
|
||||
"SettingsLanguage_Title": "Display Language",
|
||||
"SettingsLanguageTime_Title": "Language & Time",
|
||||
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
|
||||
"CategoriesFolderNameOverride": "Categories",
|
||||
"MoreFolderNameOverride": "More",
|
||||
"SettingsOptions_Title": "Settings",
|
||||
"SettingsLinkAccounts_Description": "Merge multiple accounts into one. See mails from one Inbox together.",
|
||||
"SettingsLinkAccounts_Title": "Create Linked Accounts",
|
||||
"SettingsLinkedAccountsSave_Description": "Modify the current link with the new accounts.",
|
||||
"SettingsLinkedAccountsSave_Title": "Save Changes",
|
||||
"SettingsLoadImages_Title": "Load images automatically",
|
||||
"SettingsLoadStyles_Title": "Load styles automatically",
|
||||
"SettingsMailSpacing_Description": "Adjust the spacing for listing mails.",
|
||||
"SettingsConfigureSpecialFolders_Title": "Sistem Klasörlerini Ayarla",
|
||||
"SettingsConfigureSpecialFolders_Description": "Özel işlevleri olan klasörleri belirleyin. Arşiv, Gelen Kutusu ve Taslaklar Wino'nun düzgün çalışabilmesi için önemlidir.",
|
||||
"SettingConfigureSpecialFolders_Button": "Ayarla",
|
||||
"Error_FailedToSetupSystemFolders_Title": "Sistem klasörleri ayarlanamadı",
|
||||
"SettingsDeleteAccount_Description": "Bu hesapa bağlı bütün bilgi ve e-postaları sil.",
|
||||
"SettingsDeleteAccount_Title": "Bu hesabı sil",
|
||||
"SettingsDeleteProtection_Description": "Wino her seferinde Shift + Del tuşlarıyla kalıcı olarak silmek istediğiniz e-postalar için uyarı mesajı göstersin mi?",
|
||||
"SettingsDeleteProtection_Title": "Kalıcı Silme Koruması",
|
||||
"SettingsDiagnostics_Description": "Geliştiriciler için",
|
||||
"SettingsDiagnostics_Title": "Teşhis",
|
||||
"SettingsDiscord_Description": "Güncel geliştirme güncellemelerini öğrenin. Yeni fikirler sunun ve geribildirim sağlayın.",
|
||||
"SettingsDiscord_Title": "Discord Kanalı",
|
||||
"SettingsElementThemeSelectionDisabled": "Uygulama teması 'Varsayılan' dışında ayarlandığında element temaları aktif değildir.",
|
||||
"SettingsElementTheme_Description": "Wino için bir Windows teması seçin",
|
||||
"SettingsElementTheme_Title": "Element Teması",
|
||||
"SettingsEnableHoverActions_Title": "Üzerine gelme eylemlerini aktifleştir",
|
||||
"SettingsEnableIMAPLogs_Description": "IMAP hesap oluştururken karşılaştığınız hatalar ile ilgili detayları aktlfleştirmek için bunu açınız.",
|
||||
"SettingsEnableIMAPLogs_Title": "IMAP protokol loglarını aktifleştir",
|
||||
"SettingsEnableLogs_Description": "Uygulama kapanmalarını teşhis etmek için loglara ihtiyacım olabilir. Hiçbir log sizin kişisel bilgilerinizi ya da hesap parolalarınızı barındırmaz.",
|
||||
"SettingsEnableLogs_Title": "Logları Aktifleştir",
|
||||
"SettingsEnableSignature": "İmzayı Etkinleştir",
|
||||
"SettingsExpandOnStartup_Description": "Uygulama açıldığında bu hesabın genişletilip genişletilmemesini belirleyin.",
|
||||
"SettingsExpandOnStartup_Title": "Açılışta Genişlet",
|
||||
"SettingsExternalContent_Description": "E-posta açılırken dış içerikleri yönet.",
|
||||
"SettingsExternalContent_Title": "Dış İçerikler",
|
||||
"SettingsFocusedInbox_Description": "Gelen Kutusu'nu Odaklanmış ve Diğer olarak ayrıştarılmasını kontrol edin.",
|
||||
"SettingsFocusedInbox_Title": "Odaklanmış Gelen Kutusu",
|
||||
"SettingsFolderSync_Description": "Bazı klasörler için senkronizasyonu açın veya kapatın.",
|
||||
"SettingsFolderSync_Title": "Klasör Senkronizasyonu",
|
||||
"SettingsFolderOptions_Title": "Klasör Yapılandırması",
|
||||
"SettingsFolderOptions_Description": "Bazı klasörler için senkronizasyon ya da okunmamış posta bildirimlerini açma/kapatma gibi ayarları kontrol edin.",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "Orta Aksiyon",
|
||||
"SettingsHoverActionLeft": "Sol Aksiyon",
|
||||
"SettingsHoverActionRight": "Sağ Aksiyon",
|
||||
"SettingsHoverActions_Description": "Postaların üzerine gelilndiğinde hızlı aksiyon tuşlarını belirlemek için 3 adet aksiyon seçin.",
|
||||
"SettingsHoverActions_Title": "Hızlı Aksiyonlar",
|
||||
"SettingsLanguage_Description": "Dili değiştirin.",
|
||||
"SettingsLanguage_Title": "Görüntüleme Dili",
|
||||
"SettingsLanguageTime_Title": "Dil ve Zaman",
|
||||
"SettingsLanguageTime_Description": "Uygulama dili ve tercih edilen zaman gösterimi.",
|
||||
"CategoriesFolderNameOverride": "Kategoriler",
|
||||
"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": "Daha fazla",
|
||||
"SettingsOptions_Title": "Ayarlar",
|
||||
"SettingsLinkAccounts_Description": "Birden fazla hesabı birbirine bağlayarak beraber kullanın.",
|
||||
"SettingsLinkAccounts_Title": "Bağlantılı Hesap Oluştur",
|
||||
"SettingsLinkedAccountsSave_Description": "Yeni bağlantılı hesap birleştirmesini düzenleyin.",
|
||||
"SettingsLinkedAccountsSave_Title": "Değişiklikleri Kaydet",
|
||||
"SettingsLoadImages_Title": "Resimleri otomatik olarak yükle",
|
||||
"SettingsLoadStyles_Title": "Stilleri otomatik olarak yükle",
|
||||
"SettingsMailSpacing_Description": "E-postalar arasındaki boşluğu ayarlayın.",
|
||||
"SettingsMailSpacing_Title": "Mail Spacing",
|
||||
"SettingsFolderMenuStyle_Title": "Create Nested Folders",
|
||||
"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",
|
||||
@@ -448,8 +492,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",
|
||||
@@ -465,56 +509,56 @@
|
||||
"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",
|
||||
"SettingsFontSize_Title": "Font Size",
|
||||
"SettingsFontPreview_Title": "Preview",
|
||||
"SettingsComposerFont_Title": "Default Composer Font",
|
||||
"SettingsComposerFontFamily_Description": "Change the default font family and font size for composing mails.",
|
||||
"SettingsRenameMergeAccount_Description": "Change the display name of the linked accounts.",
|
||||
"SettingsRenameMergeAccount_Title": "Rename",
|
||||
"SettingsSemanticZoom_Description": "This will allow you to click on the headers in messages list and go to specific date",
|
||||
"SettingsSemanticZoom_Title": "Semantic Zoom for Date Headers",
|
||||
"SettingsShowPreviewText_Description": "Hide/show thepreview text.",
|
||||
"SettingsShowPreviewText_Title": "Show Preview Text",
|
||||
"SettingsShowSenderPictures_Description": "Hide/show the thumbnail sender pictures.",
|
||||
"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": "Manage account signatures",
|
||||
"SettingsSignature_Title": "Signature",
|
||||
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
|
||||
"SettingsStartupItem_Title": "Startup Item",
|
||||
"SettingsStore_Description": "Show some love ❤️",
|
||||
"SettingsStore_Title": "Rate in Store",
|
||||
"SettingsThreads_Description": "Organize messages into conversation threads.",
|
||||
"SettingsThreads_Title": "Conversation Threading",
|
||||
"SettingsUnlinkAccounts_Description": "Remove the link between accounts. This will not delete your accounts.",
|
||||
"SettingsUnlinkAccounts_Title": "Unlink Accounts",
|
||||
"SortingOption_Date": "by date",
|
||||
"SortingOption_Name": "by name",
|
||||
"StoreRatingDialog_MessageFirstLine": "All feedbacks are appreciated and they will make much Wino better in the future. Would you like to rate Wino in Microsoft Store?",
|
||||
"StoreRatingDialog_MessageSecondLine": "Would you like to rate Wino Mail in Microsoft Store?",
|
||||
"StoreRatingDialog_Title": "Enjoying Wino?",
|
||||
"SystemFolderConfigDialog_ArchiveFolderDescription": "Archived messages will be moved to here.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderHeader": "Archive Folder",
|
||||
"SystemFolderConfigDialog_DeletedFolderDescription": "Deleted messages will be moved to here.",
|
||||
"SystemFolderConfigDialog_DeletedFolderHeader": "Deleted Folder",
|
||||
"SystemFolderConfigDialog_DraftFolderDescription": "New mails/replies will be crafted in here.",
|
||||
"SystemFolderConfigDialog_DraftFolderHeader": "Draft Folder",
|
||||
"SystemFolderConfigDialog_JunkFolderDescription": "All spam/junk mails will be here.",
|
||||
"SystemFolderConfigDialog_JunkFolderHeader": "Junk/Spam Folder",
|
||||
"SystemFolderConfigDialog_MessageFirstLine": "This IMAP server doesn't support SPECIAL-USE extension hence Wino couldn't setup the system folders properly.",
|
||||
"SystemFolderConfigDialog_MessageSecondLine": "Please select the appropriate folders for specific functionalities.",
|
||||
"SystemFolderConfigDialog_SentFolderDescription": "Folder that sent messages will be stored.",
|
||||
"SystemFolderConfigDialog_SentFolderHeader": "Sent Folder",
|
||||
"SystemFolderConfigDialog_Title": "Configure System Folders",
|
||||
"SystemFolderConfigDialogValidation_InboxSelected": "You can't assign Inbox folder to any other system folder.",
|
||||
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Some of the system folders are used more than once in the configuration.",
|
||||
"SystemFolderConfigSetupSuccess_Title": "System Folders Setup",
|
||||
"SystemFolderConfigSetupSuccess_Message": "System folders are successfully configured.",
|
||||
"TestingImapConnectionMessage": "Testing server connection...",
|
||||
"Today": "Today",
|
||||
"UnknownAddress": "unknown address",
|
||||
"SettingsFontFamily_Title": "Yazı Tipi",
|
||||
"SettingsFontSize_Title": "Yazı Boyutu",
|
||||
"SettingsFontPreview_Title": "Önizleme",
|
||||
"SettingsComposerFont_Title": "Varsayılan Editör Yazı Tipi",
|
||||
"SettingsComposerFontFamily_Description": "E-posta oluştururken kullanılan yazı tipini değiştirin.",
|
||||
"SettingsRenameMergeAccount_Description": "Bağlı hesabın adını değiştirin.",
|
||||
"SettingsRenameMergeAccount_Title": "Yeniden adlandır",
|
||||
"SettingsSemanticZoom_Description": "Bu seçenek e-postaların tarihlerine tıklayarak o tarihe ait mesajları görüntülemenizi sağlar",
|
||||
"SettingsSemanticZoom_Title": "Tarih Başlıkları için Semantik Yakınlaştırma",
|
||||
"SettingsShowPreviewText_Description": "Önizlemeyi aç/kapat.",
|
||||
"SettingsShowPreviewText_Title": "Önizleme",
|
||||
"SettingsShowSenderPictures_Description": "Gönderen resmini göster/gösterme.",
|
||||
"SettingsShowSenderPictures_Title": "Gönderen Resimleri",
|
||||
"SettingsPrefer24HourClock_Title": "24 saatlik format",
|
||||
"SettingsPrefer24HourClock_Description": "E-posta gönderim tarihleri 24 saatlik zaman diliminde gösterilecektir",
|
||||
"SettingsSignature_Description": "Hesap imzalarını ayarla",
|
||||
"SettingsSignature_Title": "İmza",
|
||||
"SettingsStartupItem_Description": "Uygulama açıldığında Gelen Kutusu'na gidilecek hesap.",
|
||||
"SettingsStartupItem_Title": "Başlangıç Hesabı",
|
||||
"SettingsStore_Description": "Biraz sevgi gösterin ❤️",
|
||||
"SettingsStore_Title": "Mağaza'da Puanla",
|
||||
"SettingsThreads_Description": "Bağlı mesajları tek bir liste halinde kategorize eder.",
|
||||
"SettingsThreads_Title": "Mesaj Gruplama",
|
||||
"SettingsUnlinkAccounts_Description": "Hesap bağlantısını koparın. Bu işlem hesaplarınızı silmez.",
|
||||
"SettingsUnlinkAccounts_Title": "Hesap Bağlantısını Kopar",
|
||||
"SortingOption_Date": "tarihe göre",
|
||||
"SortingOption_Name": "isme göre",
|
||||
"StoreRatingDialog_MessageFirstLine": "Bütün geribildirimler benim için değerlidir. Microsoft Mağaza'da Wino'yu puanlamak ister misiniz?",
|
||||
"StoreRatingDialog_MessageSecondLine": "Mıcrosoft Mağaza'da Wino'yu puanlamak ister misiniz?",
|
||||
"StoreRatingDialog_Title": "Wino'dan keyif alıyor musunuz?",
|
||||
"SystemFolderConfigDialog_ArchiveFolderDescription": "Arşivlenmiş postalar buraya taşınacaktır.",
|
||||
"SystemFolderConfigDialog_ArchiveFolderHeader": "Arşiv Klasörü",
|
||||
"SystemFolderConfigDialog_DeletedFolderDescription": "Silinmiş mesajlar buraya taşınacaktır.",
|
||||
"SystemFolderConfigDialog_DeletedFolderHeader": "Silinmiş Klasörü",
|
||||
"SystemFolderConfigDialog_DraftFolderDescription": "Yeni postalar burada oluşturulacaktır.",
|
||||
"SystemFolderConfigDialog_DraftFolderHeader": "Taslaklar Klasörü",
|
||||
"SystemFolderConfigDialog_JunkFolderDescription": "Bütün gereksiz mesajlar buraya taşınacaktır.",
|
||||
"SystemFolderConfigDialog_JunkFolderHeader": "Gereksiz (Spam) Klasörü",
|
||||
"SystemFolderConfigDialog_MessageFirstLine": "Bu IMAP sunucusu SPECIAL-USE eklentisini desteklemiyor. Bu nedenle Wino sistem klasörlerini otomatik olarak ayarlayamadı.",
|
||||
"SystemFolderConfigDialog_MessageSecondLine": "Lütfen özel işlevler için klasörleri belirleyin.",
|
||||
"SystemFolderConfigDialog_SentFolderDescription": "Gönderilmiş mesajlar burada toplanacaktır.",
|
||||
"SystemFolderConfigDialog_SentFolderHeader": "Gönderilenler Klasörü",
|
||||
"SystemFolderConfigDialog_Title": "Sistem Klasörlerini Ayarlayın",
|
||||
"SystemFolderConfigDialogValidation_InboxSelected": "Gelen Kutusu'nu başka bir sistem klasörü olarak seçemezsiniz.",
|
||||
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Bazı sistem klasörleri birden fazla işlevle kullanılamaz.",
|
||||
"SystemFolderConfigSetupSuccess_Title": "Sistem Klasörleri Ayarlaması",
|
||||
"SystemFolderConfigSetupSuccess_Message": "Sistem klasörleri başarıyla ayarlandı.",
|
||||
"TestingImapConnectionMessage": "Sunucu bağlantısı kontrol ediliyor...",
|
||||
"Today": "Bugün",
|
||||
"UnknownAddress": "bilinmeyen adres",
|
||||
"UnknownDateHeader": "Unknown Date",
|
||||
"UnknownGroupAddress": "unknown Mail Group Address",
|
||||
"UnknownSender": "Unknown Sender",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"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",
|
||||
@@ -10,6 +11,13 @@
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
|
||||
"AddHyperlink": "Add",
|
||||
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "Your credentials will only be stored locally on your computer.",
|
||||
"BasicIMAPSetupDialog_Description": "Some accounts require additional steps to sign in",
|
||||
@@ -21,6 +29,8 @@
|
||||
"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",
|
||||
@@ -42,6 +52,7 @@
|
||||
"Buttons_SignIn": "Sign In",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_Yes": "Yes",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "Center",
|
||||
"ComingSoon": "Coming soon...",
|
||||
"ComposerFrom": "From: ",
|
||||
@@ -64,6 +75,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.",
|
||||
@@ -91,10 +112,20 @@
|
||||
"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}.",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"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",
|
||||
@@ -106,6 +137,7 @@
|
||||
"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",
|
||||
@@ -113,6 +145,9 @@
|
||||
"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}",
|
||||
@@ -253,6 +288,8 @@
|
||||
"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",
|
||||
@@ -396,6 +433,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",
|
||||
@@ -406,6 +445,11 @@
|
||||
"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.",
|
||||
@@ -448,8 +492,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",
|
||||
|
||||
@@ -3,13 +3,21 @@
|
||||
"AccountCreationDialog_Initializing": "正在初始化",
|
||||
"AccountCreationDialog_PreparingFolders": "我们正在获取文件夹信息。",
|
||||
"AccountCreationDialog_SigninIn": "正在保存账户信息。",
|
||||
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
|
||||
"AccountEditDialog_Message": "账户名称",
|
||||
"AccountEditDialog_Title": "编辑账户",
|
||||
"AccountPickerDialog_Title": "选择账户",
|
||||
"AccountSettingsDialog_AccountName": "Sender Display Name",
|
||||
"AccountSettingsDialog_AccountName": "发件人名称",
|
||||
"AccountSettingsDialog_AccountNamePlaceholder": "例如: John Doe",
|
||||
"AddHyperlink": "添加",
|
||||
"AutoDiscoveryProgressMessage": "正在搜索邮件设置…",
|
||||
"AppCloseBackgroundSynchronizationWarningTitle": "Background Synchronization",
|
||||
"AppCloseTerminateBehaviorWarningMessageFirstLine": "You are terminating Wino Mail and your app close behavior is set to 'Terminate'.",
|
||||
"AppCloseTerminateBehaviorWarningMessageSecondLine": "This will stop all background synchronizations and notifications.",
|
||||
"AppCloseTerminateBehaviorWarningMessageThirdLine": "Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageFirstLine": "Application has not been set to launch on Windows startup.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageSecondLine": "This will cause you to miss notifications when you restart your computer.",
|
||||
"AppCloseStartupLaunchDisabledWarningMessageThirdLine": "Do you want to go to App Preferences page to enable it?",
|
||||
"BasicIMAPSetupDialog_AdvancedConfiguration": "高级设置",
|
||||
"BasicIMAPSetupDialog_CredentialLocalMessage": "您的凭据将仅存储在您的计算机上。",
|
||||
"BasicIMAPSetupDialog_Description": "部分账户需要额外的登录步骤",
|
||||
@@ -21,13 +29,15 @@
|
||||
"BasicIMAPSetupDialog_Password": "密码",
|
||||
"BasicIMAPSetupDialog_Title": "IMAP 账户",
|
||||
"Buttons_AddAccount": "添加账户",
|
||||
"Buttons_AddNewAlias": "Add New Alias",
|
||||
"Buttons_SyncAliases": "Synchronize Aliases",
|
||||
"Buttons_ApplyTheme": "应用主题",
|
||||
"Buttons_Browse": "浏览",
|
||||
"Buttons_Cancel": "取消",
|
||||
"Buttons_Close": "关闭",
|
||||
"Buttons_Create": "创建",
|
||||
"Buttons_CreateAccount": "添加账户",
|
||||
"Buttons_Copy": "Copy",
|
||||
"Buttons_Copy": "复制",
|
||||
"Buttons_Delete": "删除",
|
||||
"Buttons_Edit": "编辑",
|
||||
"Buttons_Discard": "放弃",
|
||||
@@ -40,8 +50,9 @@
|
||||
"Buttons_SaveConfiguration": "保存设置",
|
||||
"Buttons_Share": "分享",
|
||||
"Buttons_SignIn": "登录",
|
||||
"Buttons_TryAgain": "Try Again",
|
||||
"Buttons_TryAgain": "重试",
|
||||
"Buttons_Yes": "是",
|
||||
"Buttons_Reset": "Reset",
|
||||
"Center": "中心",
|
||||
"ComingSoon": "即将到来...",
|
||||
"ComposerFrom": "来自: ",
|
||||
@@ -51,8 +62,8 @@
|
||||
"ClipboardTextCopied_Title": "已复制",
|
||||
"ClipboardTextCopyFailed_Message": "无法将 {0} 复制到剪贴板。",
|
||||
"ComposerToPlaceholder": "点击输入地址",
|
||||
"ComposerAttachmentsDropZone_Message": "Drop your files here",
|
||||
"ComposerImagesDropZone_Message": "Drop your images here",
|
||||
"ComposerAttachmentsDropZone_Message": "将文件拖放至此",
|
||||
"ComposerImagesDropZone_Message": "将图片拖放至此",
|
||||
"ComposerAttachmentsDragDropAttach_Message": "附件",
|
||||
"CustomThemeBuilder_AccentColorDescription": "设置自定义颜色。若未选择颜色,将使用 Windows 默认颜色。",
|
||||
"CustomThemeBuilder_AccentColorTitle": "主题色",
|
||||
@@ -64,6 +75,16 @@
|
||||
"CustomThemeBuilder_WallpaperTitle": "设置自定义壁纸",
|
||||
"DialogMessage_AccountLimitMessage": "您已达到免费用户可创建账户数量上限(3个)。\n是否购买支持作者以“解除可创建账户数量上限”?",
|
||||
"DialogMessage_AccountLimitTitle": "已达到账户限制",
|
||||
"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": "您想永久删除此文件夹中的所有邮件吗?",
|
||||
"DialogMessage_CleanupFolderTitle": "清空文件夹",
|
||||
"DialogMessage_ComposerMissingRecipientMessage": "邮件没有收件人。",
|
||||
@@ -82,37 +103,51 @@
|
||||
"DialogMessage_RenameLinkedAccountsTitle": "重命名已链接账户",
|
||||
"DialogMessage_UnlinkAccountsConfirmationMessage": "此操作不会删除您的账户,只会断开共享文件夹的连接。是否继续?",
|
||||
"DialogMessage_UnlinkAccountsConfirmationTitle": "取消链接账户",
|
||||
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
|
||||
"DialogMessage_EmptySubjectConfirmation": "缺少标题",
|
||||
"DialogMessage_EmptySubjectConfirmationMessage": "邮件没有主题。您想要继续吗?",
|
||||
"DialogMessage_RenameFolderTitle": "Rename Folder",
|
||||
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
|
||||
"DialogMessage_RenameFolderTitle": "重命名文件夹",
|
||||
"DialogMessage_RenameFolderMessage": "输入新的文件夹名称",
|
||||
"DialogMessage_UnsubscribeConfirmationTitle": "取消订阅",
|
||||
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "您想要停止从 {0} 处获取信息吗?",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "要停止从 {0} 处获取消息,请前往他们的网站退订。",
|
||||
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "前往网站",
|
||||
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "您想要停止从 {0} 处获取消息吗? Wino将通过向 {1} 发送一封电子邮件以取消订阅。",
|
||||
"DialogMessage_EnableStartupLaunchTitle": "Enable Startup Launch",
|
||||
"DialogMessage_EnableStartupLaunchMessage": "Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications.\n\nDo you want to enable startup launch?",
|
||||
"DialogMessage_EnableStartupLaunchDeniedMessage": "You can enable startup launch from Settings -> App Preferences.",
|
||||
"Dialog_DontAskAgain": "不再询问",
|
||||
"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 没有自己的 Discord 服务器,但在 Developer Sanctuary 服务器上设有专门的 wino-mail 频道。如果要获取有关 Wino 的更新,请加入 Developer Sanctuary 服务器,并关注 Community Projects下的 wino-mail 频道。\n\n因为 Discord 不支持频道邀请,所以你需要通过网页加入频道。",
|
||||
"DiscordChannelDisclaimerTitle": "重要的 Discord 信息",
|
||||
"Draft": "草稿",
|
||||
"Busy": "Busy",
|
||||
"EditorToolbarOption_Draw": "绘制",
|
||||
"EditorToolbarOption_Format": "格式",
|
||||
"EditorToolbarOption_Insert": "插入",
|
||||
"EditorToolbarOption_None": "无",
|
||||
"EditorToolbarOption_Options": "选项",
|
||||
"EditorTooltip_WebViewEditor": "Use web view editor",
|
||||
"EditorTooltip_WebViewEditor": "使用 WebView 编辑器",
|
||||
"ElementTheme_Dark": "深色模式",
|
||||
"ElementTheme_Default": "使用系统设置",
|
||||
"ElementTheme_Light": "浅色模式",
|
||||
"Emoji": "表情",
|
||||
"Exception_WinoServerException": "Wino server failed.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
|
||||
"Exception_WinoServerException": "Wino 服务器连接失败",
|
||||
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
|
||||
"Exception_ImapAutoDiscoveryFailed": "找不到邮箱配置。",
|
||||
"Exception_ImapClientPoolFailed": "IMAP 客户端池失败。",
|
||||
"Exception_AuthenticationCanceled": "身份验证已取消",
|
||||
"Exception_CustomThemeExists": "此主题已经存在。",
|
||||
"Exception_CustomThemeMissingName": "您必须提供名称。",
|
||||
"Exception_CustomThemeMissingWallpaper": "您必须提供自定义背景图像。",
|
||||
"Exception_FailedToSynchronizeFolders": "同步文件夹失败",
|
||||
"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 在激活时无效。",
|
||||
"Exception_GoogleAuthCorruptedCode": "授权响应不正确。",
|
||||
"Exception_GoogleAuthError": "OAuth 授权错误: {0}",
|
||||
@@ -177,8 +212,8 @@
|
||||
"IMAPSetupDialog_UseSameConfig": "发送电子邮件时使用同一用户名和密码",
|
||||
"IMAPSetupDialog_Username": "用户名",
|
||||
"IMAPSetupDialog_UsernamePlaceholder": "示例:johndoe, johndoe@fabrikam.com, domain/johndoe",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
|
||||
"IMAPSetupDialog_ConnectionFailedTitle": "连接失败",
|
||||
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP 连接失败",
|
||||
"ImageRenderingDisabled": "此邮件的图像渲染已禁用。",
|
||||
"InfoBarAction_Enable": "启用",
|
||||
"InfoBarMessage_SynchronizationDisabledFolder": "此文件夹已禁用同步。",
|
||||
@@ -253,6 +288,8 @@
|
||||
"Info_UnsubscribeLinkInvalidMessage": "此退订链接无效。取消订阅列表失败。",
|
||||
"Info_UnsubscribeSuccessMessage": "成功取消了来自 {0} 处的订阅!",
|
||||
"Info_UnsubscribeErrorMessage": "取消订阅失败",
|
||||
"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": "身份验证方法",
|
||||
"ImapAdvancedSetupDialog_ConnectionSecurity": "连接安全性",
|
||||
"ImapAuthenticationMethod_Auto": "自动",
|
||||
@@ -333,10 +370,10 @@
|
||||
"ProviderDetail_Gmail_Description": "Google 账号",
|
||||
"ProviderDetail_IMAP_Description": "自定义 IMAP/SMTP 服务器",
|
||||
"ProviderDetail_IMAP_Title": "IMAP 服务器",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"ProtocolLogAvailable_Message": "协议诊断日志已可用。",
|
||||
"Results": "结果",
|
||||
"Right": "右侧",
|
||||
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
|
||||
"Reader_SaveAllAttachmentButtonText": "保存附件",
|
||||
"SynchronizationFolderReport_Success": "已是最新",
|
||||
"SynchronizationFolderReport_Failed": "同步失败",
|
||||
"SearchBarPlaceholder": "搜索",
|
||||
@@ -396,6 +433,8 @@
|
||||
"SettingsFolderSync_Title": "文件夹同步",
|
||||
"SettingsFolderOptions_Title": "文件夹设置",
|
||||
"SettingsFolderOptions_Description": "更改个人文件夹设置,如启用/禁用同步或显示/隐藏未读标志。",
|
||||
"SettingsManageAliases_Title": "Aliases",
|
||||
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
|
||||
"SettingsHoverActionCenter": "中心动作",
|
||||
"SettingsHoverActionLeft": "左侧动作",
|
||||
"SettingsHoverActionRight": "右侧动作",
|
||||
@@ -406,6 +445,11 @@
|
||||
"SettingsLanguageTime_Title": "语言和时间",
|
||||
"SettingsLanguageTime_Description": "Wino显示语言,首选时间格式",
|
||||
"CategoriesFolderNameOverride": "分类",
|
||||
"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": "更多",
|
||||
"SettingsOptions_Title": "设置",
|
||||
"SettingsLinkAccounts_Description": "将多个账户合并为一个。在同一个收件箱内查看所有邮件。",
|
||||
@@ -420,21 +464,21 @@
|
||||
"SettingsFolderMenuStyle_Description": "控制账户文件夹是否应嵌套在账户菜单中。 如果您喜欢Windows邮件中的旧菜单,关闭此选项",
|
||||
"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": "Reorder Accounts",
|
||||
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
|
||||
"SettingsAppPreferences_Title": "应用设置",
|
||||
"SettingsAppPreferences_Description": "Wino Mail 的常规 / 首选项设置",
|
||||
"SettingsAppPreferences_CloseBehavior_Title": "应用关闭后行为",
|
||||
"SettingsAppPreferences_CloseBehavior_Description": "当关闭应用时 Wino Mail 应该怎么做?",
|
||||
"SettingsAppPreferences_StartupBehavior_Title": "随 Windows 启动并最小化应用",
|
||||
"SettingsAppPreferences_StartupBehavior_Description": "允许 Wino Mail 随 Windows 最小化自启动。总是允许接收应用通知。",
|
||||
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino 成功设置为随 Windows 自启动。",
|
||||
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail 将不会随 Windows 自动。可能会导致重启系统后错过邮件通知。",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "管理员或组策略禁止了应用随 Windows 自启动,因此 Wino Mail 无法随 Windows 自启动。",
|
||||
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "请前往「任务管理器 」-「启动应用」标签以允许 Wino Mail 随 Windows 自启动。",
|
||||
"SettingsAppPreferences_StartupBehavior_FatalError": "更改 Wino Mail 启动模式发生严重错误。",
|
||||
"SettingsAppPreferences_StartupBehavior_Enable": "启用",
|
||||
"SettingsAppPreferences_StartupBehavior_Disable": "禁用",
|
||||
"SettingsReorderAccounts_Title": "重新排列账号",
|
||||
"SettingsReorderAccounts_Description": "改变账号在账号列表中的顺序。",
|
||||
"SettingsManageLink_Description": "移动项目以添加新链接或删除现有链接。",
|
||||
"SettingsManageLink_Title": "管理账户链接",
|
||||
"SettingsMarkAsRead_Description": "更改应对选定项目进行何种操作。",
|
||||
@@ -448,8 +492,8 @@
|
||||
"SettingsNoAccountSetupMessage": "您尚未设置任何账户。",
|
||||
"SettingsNotifications_Description": "开启或关闭此账户的通知。",
|
||||
"SettingsNotifications_Title": "通知",
|
||||
"SettingsPaneLength_Description": "更改邮件列表的宽度。",
|
||||
"SettingsPaneLength_Title": "邮件列表视图长度",
|
||||
"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": "展示更多的爱吧 ❤️ 我们感激所有的捐赠。",
|
||||
"SettingsPaypal_Title": "通过 PayPal 捐赠",
|
||||
"SettingsPersonalizationMailDisplayCompactMode": "紧凑模式",
|
||||
@@ -459,10 +503,10 @@
|
||||
"SettingsPersonalization_Title": "个性化",
|
||||
"SettingsPrivacyPolicy_Description": "查看隐私政策。",
|
||||
"SettingsPrivacyPolicy_Title": "隐私政策",
|
||||
"SettingsReader_Title": "Reader",
|
||||
"SettingsComposer_Title": "Composer",
|
||||
"SettingsReadComposePane_Description": "Fonts, external content.",
|
||||
"SettingsReadComposePane_Title": "Reader & Composer",
|
||||
"SettingsReader_Title": "阅读器",
|
||||
"SettingsComposer_Title": "编辑器",
|
||||
"SettingsReadComposePane_Description": "字体与外部内容。",
|
||||
"SettingsReadComposePane_Title": "阅读器和编辑器",
|
||||
"SettingsReaderFont_Title": "默认阅读字体",
|
||||
"SettingsReaderFontFamily_Description": "更改阅读邮件的默认字体和字体大小。",
|
||||
"SettingsFontFamily_Title": "字体",
|
||||
@@ -480,7 +524,7 @@
|
||||
"SettingsShowSenderPictures_Title": "显示发件人头像",
|
||||
"SettingsPrefer24HourClock_Title": "使用 24 小时制时间格式",
|
||||
"SettingsPrefer24HourClock_Description": "邮件接收时间将显示为 24 小时制,而不是 12 小时制(上午/下午)",
|
||||
"SettingsSignature_Description": "Manage account signatures",
|
||||
"SettingsSignature_Description": "管理账户签名",
|
||||
"SettingsSignature_Title": "签名",
|
||||
"SettingsStartupItem_Description": "启动时加载收件箱的主要账户项。",
|
||||
"SettingsStartupItem_Title": "启动项",
|
||||
@@ -524,29 +568,29 @@
|
||||
"WinoUpgradeMessage": "升级为无限账户数",
|
||||
"WinoUpgradeRemainingAccountsMessage": "已使用 {0} 个免费账户,共 {1} 个。",
|
||||
"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"
|
||||
"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": "最小化到系统托盘",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail 将在系统托盘上继续运行。点击托盘图标时将启动应用。当收到新邮件时将推送通知。",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "后台运行",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail 将在后台运行。当收到新邮件时将推送通知。",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "终止进程",
|
||||
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail 将不会时刻保持运行。收到新邮件时不会再推送通知。当再次启动应用时才会继续同步邮件。",
|
||||
"TitleBarServerDisconnectedButton_Title": "无网络连接",
|
||||
"TitleBarServerDisconnectedButton_Description": "Wino 已断开网络连接。点击「重新连接」重试。",
|
||||
"TitleBarServerReconnectButton_Title": "重新连接",
|
||||
"TitleBarServerReconnectingButton_Title": "正在连接"
|
||||
}
|
||||
|
||||
249
Wino.Core.Domain/Translator.Designer.cs
generated
249
Wino.Core.Domain/Translator.Designer.cs
generated
@@ -38,6 +38,11 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string AccountCreationDialog_SigninIn => Resources.GetTranslatedString(@"AccountCreationDialog_SigninIn");
|
||||
|
||||
/// <summary>
|
||||
/// Fetching profile details.
|
||||
/// </summary>
|
||||
public static string AccountCreationDialog_FetchingProfileInformation => Resources.GetTranslatedString(@"AccountCreationDialog_FetchingProfileInformation");
|
||||
|
||||
/// <summary>
|
||||
/// Account Name
|
||||
/// </summary>
|
||||
@@ -73,6 +78,41 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string AutoDiscoveryProgressMessage => Resources.GetTranslatedString(@"AutoDiscoveryProgressMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Background Synchronization
|
||||
/// </summary>
|
||||
public static string AppCloseBackgroundSynchronizationWarningTitle => Resources.GetTranslatedString(@"AppCloseBackgroundSynchronizationWarningTitle");
|
||||
|
||||
/// <summary>
|
||||
/// You are terminating Wino Mail and your app close behavior is set to 'Terminate'.
|
||||
/// </summary>
|
||||
public static string AppCloseTerminateBehaviorWarningMessageFirstLine => Resources.GetTranslatedString(@"AppCloseTerminateBehaviorWarningMessageFirstLine");
|
||||
|
||||
/// <summary>
|
||||
/// This will stop all background synchronizations and notifications.
|
||||
/// </summary>
|
||||
public static string AppCloseTerminateBehaviorWarningMessageSecondLine => Resources.GetTranslatedString(@"AppCloseTerminateBehaviorWarningMessageSecondLine");
|
||||
|
||||
/// <summary>
|
||||
/// Do you want to go to App Preferences to set Wino Mail to run minimized or in the background?
|
||||
/// </summary>
|
||||
public static string AppCloseTerminateBehaviorWarningMessageThirdLine => Resources.GetTranslatedString(@"AppCloseTerminateBehaviorWarningMessageThirdLine");
|
||||
|
||||
/// <summary>
|
||||
/// Application has not been set to launch on Windows startup.
|
||||
/// </summary>
|
||||
public static string AppCloseStartupLaunchDisabledWarningMessageFirstLine => Resources.GetTranslatedString(@"AppCloseStartupLaunchDisabledWarningMessageFirstLine");
|
||||
|
||||
/// <summary>
|
||||
/// This will cause you to miss notifications when you restart your computer.
|
||||
/// </summary>
|
||||
public static string AppCloseStartupLaunchDisabledWarningMessageSecondLine => Resources.GetTranslatedString(@"AppCloseStartupLaunchDisabledWarningMessageSecondLine");
|
||||
|
||||
/// <summary>
|
||||
/// Do you want to go to App Preferences page to enable it?
|
||||
/// </summary>
|
||||
public static string AppCloseStartupLaunchDisabledWarningMessageThirdLine => Resources.GetTranslatedString(@"AppCloseStartupLaunchDisabledWarningMessageThirdLine");
|
||||
|
||||
/// <summary>
|
||||
/// Advanced Configuration
|
||||
/// </summary>
|
||||
@@ -128,6 +168,16 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Buttons_AddAccount => Resources.GetTranslatedString(@"Buttons_AddAccount");
|
||||
|
||||
/// <summary>
|
||||
/// Add New Alias
|
||||
/// </summary>
|
||||
public static string Buttons_AddNewAlias => Resources.GetTranslatedString(@"Buttons_AddNewAlias");
|
||||
|
||||
/// <summary>
|
||||
/// Synchronize Aliases
|
||||
/// </summary>
|
||||
public static string Buttons_SyncAliases => Resources.GetTranslatedString(@"Buttons_SyncAliases");
|
||||
|
||||
/// <summary>
|
||||
/// Apply Theme
|
||||
/// </summary>
|
||||
@@ -233,6 +283,16 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Buttons_Yes => Resources.GetTranslatedString(@"Buttons_Yes");
|
||||
|
||||
/// <summary>
|
||||
/// Reset
|
||||
/// </summary>
|
||||
public static string Buttons_Reset => Resources.GetTranslatedString(@"Buttons_Reset");
|
||||
|
||||
/// <summary>
|
||||
/// Send
|
||||
/// </summary>
|
||||
public static string Buttons_Send => Resources.GetTranslatedString(@"Buttons_Send");
|
||||
|
||||
/// <summary>
|
||||
/// Center
|
||||
/// </summary>
|
||||
@@ -343,6 +403,56 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string DialogMessage_AccountLimitTitle => Resources.GetTranslatedString(@"DialogMessage_AccountLimitTitle");
|
||||
|
||||
/// <summary>
|
||||
/// Missing Alias
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasNotSelectedTitle => Resources.GetTranslatedString(@"DialogMessage_AliasNotSelectedTitle");
|
||||
|
||||
/// <summary>
|
||||
/// You must select an alias before sending a message.
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasNotSelectedMessage => Resources.GetTranslatedString(@"DialogMessage_AliasNotSelectedMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Existing Alias
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasExistsTitle => Resources.GetTranslatedString(@"DialogMessage_AliasExistsTitle");
|
||||
|
||||
/// <summary>
|
||||
/// This alias is already in use.
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasExistsMessage => Resources.GetTranslatedString(@"DialogMessage_AliasExistsMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Invalid Alias
|
||||
/// </summary>
|
||||
public static string DialogMessage_InvalidAliasTitle => Resources.GetTranslatedString(@"DialogMessage_InvalidAliasTitle");
|
||||
|
||||
/// <summary>
|
||||
/// This alias is not valid. Make sure all addresses of the alias are valid e-mail addresses.
|
||||
/// </summary>
|
||||
public static string DialogMessage_InvalidAliasMessage => Resources.GetTranslatedString(@"DialogMessage_InvalidAliasMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Can't Delete Alias
|
||||
/// </summary>
|
||||
public static string DialogMessage_CantDeleteRootAliasTitle => Resources.GetTranslatedString(@"DialogMessage_CantDeleteRootAliasTitle");
|
||||
|
||||
/// <summary>
|
||||
/// Root alias can't be deleted. This is your main identity associated with your account setup.
|
||||
/// </summary>
|
||||
public static string DialogMessage_CantDeleteRootAliasMessage => Resources.GetTranslatedString(@"DialogMessage_CantDeleteRootAliasMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Created New Alias
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasCreatedTitle => Resources.GetTranslatedString(@"DialogMessage_AliasCreatedTitle");
|
||||
|
||||
/// <summary>
|
||||
/// New alias is succesfully created.
|
||||
/// </summary>
|
||||
public static string DialogMessage_AliasCreatedMessage => Resources.GetTranslatedString(@"DialogMessage_AliasCreatedMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Do you want to permanently delete all the mails in this folder?
|
||||
/// </summary>
|
||||
@@ -434,7 +544,7 @@ namespace Wino.Core.Domain
|
||||
public static string DialogMessage_UnlinkAccountsConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_UnlinkAccountsConfirmationTitle");
|
||||
|
||||
/// <summary>
|
||||
/// Missin Subject
|
||||
/// Missing Subject
|
||||
/// </summary>
|
||||
public static string DialogMessage_EmptySubjectConfirmation => Resources.GetTranslatedString(@"DialogMessage_EmptySubjectConfirmation");
|
||||
|
||||
@@ -478,11 +588,56 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string DialogMessage_UnsubscribeConfirmationMailtoMessage => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationMailtoMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Enable Startup Launch
|
||||
/// </summary>
|
||||
public static string DialogMessage_EnableStartupLaunchTitle => Resources.GetTranslatedString(@"DialogMessage_EnableStartupLaunchTitle");
|
||||
|
||||
/// <summary>
|
||||
/// Let Wino Mail automatically launch minimized on Windows startup to not miss any notifications. Do you want to enable startup launch?
|
||||
/// </summary>
|
||||
public static string DialogMessage_EnableStartupLaunchMessage => Resources.GetTranslatedString(@"DialogMessage_EnableStartupLaunchMessage");
|
||||
|
||||
/// <summary>
|
||||
/// You can enable startup launch from Settings -> App Preferences.
|
||||
/// </summary>
|
||||
public static string DialogMessage_EnableStartupLaunchDeniedMessage => Resources.GetTranslatedString(@"DialogMessage_EnableStartupLaunchDeniedMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Don't ask again
|
||||
/// </summary>
|
||||
public static string Dialog_DontAskAgain => Resources.GetTranslatedString(@"Dialog_DontAskAgain");
|
||||
|
||||
/// <summary>
|
||||
/// Create Account Alias
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_Title => Resources.GetTranslatedString(@"CreateAccountAliasDialog_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Make sure your outgoing server allows sending mails from this alias.
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_Description => Resources.GetTranslatedString(@"CreateAccountAliasDialog_Description");
|
||||
|
||||
/// <summary>
|
||||
/// Address
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_AliasAddress => Resources.GetTranslatedString(@"CreateAccountAliasDialog_AliasAddress");
|
||||
|
||||
/// <summary>
|
||||
/// eg. support@mydomain.com
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_AliasAddressPlaceholder => Resources.GetTranslatedString(@"CreateAccountAliasDialog_AliasAddressPlaceholder");
|
||||
|
||||
/// <summary>
|
||||
/// Reply-To Address
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_ReplyToAddress => Resources.GetTranslatedString(@"CreateAccountAliasDialog_ReplyToAddress");
|
||||
|
||||
/// <summary>
|
||||
/// admin@mydomain.com
|
||||
/// </summary>
|
||||
public static string CreateAccountAliasDialog_ReplyToAddressPlaceholder => Resources.GetTranslatedString(@"CreateAccountAliasDialog_ReplyToAddressPlaceholder");
|
||||
|
||||
/// <summary>
|
||||
/// Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server. To get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects' You will be directed to server URL since Discord doesn't support channel invites.
|
||||
/// </summary>
|
||||
@@ -498,6 +653,11 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Draft => Resources.GetTranslatedString(@"Draft");
|
||||
|
||||
/// <summary>
|
||||
/// Busy
|
||||
/// </summary>
|
||||
public static string Busy => Resources.GetTranslatedString(@"Busy");
|
||||
|
||||
/// <summary>
|
||||
/// Draw
|
||||
/// </summary>
|
||||
@@ -553,6 +713,11 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Exception_WinoServerException => Resources.GetTranslatedString(@"Exception_WinoServerException");
|
||||
|
||||
/// <summary>
|
||||
/// This mail is still being processed. Please try again after few seconds.
|
||||
/// </summary>
|
||||
public static string Exception_MailProcessing => Resources.GetTranslatedString(@"Exception_MailProcessing");
|
||||
|
||||
/// <summary>
|
||||
/// Couldn't find mailbox settings.
|
||||
/// </summary>
|
||||
@@ -588,6 +753,21 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Exception_FailedToSynchronizeFolders => Resources.GetTranslatedString(@"Exception_FailedToSynchronizeFolders");
|
||||
|
||||
/// <summary>
|
||||
/// Failed to synchronize aliases
|
||||
/// </summary>
|
||||
public static string Exception_FailedToSynchronizeAliases => Resources.GetTranslatedString(@"Exception_FailedToSynchronizeAliases");
|
||||
|
||||
/// <summary>
|
||||
/// Primary alias does not exist for this account. Creating draft failed.
|
||||
/// </summary>
|
||||
public static string Exception_MissingAlias => Resources.GetTranslatedString(@"Exception_MissingAlias");
|
||||
|
||||
/// <summary>
|
||||
/// Failed to synchronize profile information
|
||||
/// </summary>
|
||||
public static string Exception_FailedToSynchronizeProfileInformation => Resources.GetTranslatedString(@"Exception_FailedToSynchronizeProfileInformation");
|
||||
|
||||
/// <summary>
|
||||
/// Callback uri is null on activation.
|
||||
/// </summary>
|
||||
@@ -1288,6 +1468,16 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string Info_UnsubscribeErrorMessage => Resources.GetTranslatedString(@"Info_UnsubscribeErrorMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Primary alias can't be deleted. Please change your alias before deleting this one
|
||||
/// </summary>
|
||||
public static string Info_CantDeletePrimaryAliasMessage => Resources.GetTranslatedString(@"Info_CantDeletePrimaryAliasMessage");
|
||||
|
||||
/// <summary>
|
||||
/// The Mail List size has been reset.
|
||||
/// </summary>
|
||||
public static string Info_MailListSizeResetSuccessMessage => Resources.GetTranslatedString(@"Info_MailListSizeResetSuccessMessage");
|
||||
|
||||
/// <summary>
|
||||
/// Authentication method
|
||||
/// </summary>
|
||||
@@ -2003,6 +2193,16 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string SettingsFolderOptions_Description => Resources.GetTranslatedString(@"SettingsFolderOptions_Description");
|
||||
|
||||
/// <summary>
|
||||
/// Aliases
|
||||
/// </summary>
|
||||
public static string SettingsManageAliases_Title => Resources.GetTranslatedString(@"SettingsManageAliases_Title");
|
||||
|
||||
/// <summary>
|
||||
/// See e-mail aliases assigned for this account, update or delete them.
|
||||
/// </summary>
|
||||
public static string SettingsManageAliases_Description => Resources.GetTranslatedString(@"SettingsManageAliases_Description");
|
||||
|
||||
/// <summary>
|
||||
/// Center Action
|
||||
/// </summary>
|
||||
@@ -2053,6 +2253,31 @@ namespace Wino.Core.Domain
|
||||
/// </summary>
|
||||
public static string CategoriesFolderNameOverride => Resources.GetTranslatedString(@"CategoriesFolderNameOverride");
|
||||
|
||||
/// <summary>
|
||||
/// Verified
|
||||
/// </summary>
|
||||
public static string AccountAlias_Column_Verified => Resources.GetTranslatedString(@"AccountAlias_Column_Verified");
|
||||
|
||||
/// <summary>
|
||||
/// Alias
|
||||
/// </summary>
|
||||
public static string AccountAlias_Column_Alias => Resources.GetTranslatedString(@"AccountAlias_Column_Alias");
|
||||
|
||||
/// <summary>
|
||||
/// Primary
|
||||
/// </summary>
|
||||
public static string AccountAlias_Column_IsPrimaryAlias => Resources.GetTranslatedString(@"AccountAlias_Column_IsPrimaryAlias");
|
||||
|
||||
/// <summary>
|
||||
/// Wino can only import aliases for your Gmail accounts.
|
||||
/// </summary>
|
||||
public static string AccountAlias_Disclaimer_FirstLine => Resources.GetTranslatedString(@"AccountAlias_Disclaimer_FirstLine");
|
||||
|
||||
/// <summary>
|
||||
/// If you want to use aliases for your Outlook or IMAP account, please add them yourself.
|
||||
/// </summary>
|
||||
public static string AccountAlias_Disclaimer_SecondLine => Resources.GetTranslatedString(@"AccountAlias_Disclaimer_SecondLine");
|
||||
|
||||
/// <summary>
|
||||
/// More
|
||||
/// </summary>
|
||||
@@ -2264,14 +2489,14 @@ namespace Wino.Core.Domain
|
||||
public static string SettingsNotifications_Title => Resources.GetTranslatedString(@"SettingsNotifications_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Change the width of the mail list.
|
||||
/// Reset the size of the mail list to original if you have issues with it.
|
||||
/// </summary>
|
||||
public static string SettingsPaneLength_Description => Resources.GetTranslatedString(@"SettingsPaneLength_Description");
|
||||
public static string SettingsPaneLengthReset_Description => Resources.GetTranslatedString(@"SettingsPaneLengthReset_Description");
|
||||
|
||||
/// <summary>
|
||||
/// Mail List Pane Length
|
||||
/// Reset Mail List Size
|
||||
/// </summary>
|
||||
public static string SettingsPaneLength_Title => Resources.GetTranslatedString(@"SettingsPaneLength_Title");
|
||||
public static string SettingsPaneLengthReset_Title => Resources.GetTranslatedString(@"SettingsPaneLengthReset_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Show much more love ❤️ All donations are appreciated.
|
||||
@@ -2394,7 +2619,7 @@ namespace Wino.Core.Domain
|
||||
public static string SettingsSemanticZoom_Title => Resources.GetTranslatedString(@"SettingsSemanticZoom_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Hide/show thepreview text.
|
||||
/// Hide/show the preview text.
|
||||
/// </summary>
|
||||
public static string SettingsShowPreviewText_Description => Resources.GetTranslatedString(@"SettingsShowPreviewText_Description");
|
||||
|
||||
@@ -2464,7 +2689,17 @@ namespace Wino.Core.Domain
|
||||
public static string SettingsThreads_Title => Resources.GetTranslatedString(@"SettingsThreads_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Remove the link between accounts. This will not delete your accounts.
|
||||
/// Hide/show action bar at top of message list.
|
||||
/// </summary>
|
||||
public static string SettingsMailListActionBar_Description => Resources.GetTranslatedString(@"SettingsMailListActionBar_Description");
|
||||
|
||||
/// <summary>
|
||||
/// Show mail list actions
|
||||
/// </summary>
|
||||
public static string SettingsMailListActionBar_Title => Resources.GetTranslatedString(@"SettingsMailListActionBar_Title");
|
||||
|
||||
/// <summary>
|
||||
/// Remove the link between accounts. his will not delete your accounts.
|
||||
/// </summary>
|
||||
public static string SettingsUnlinkAccounts_Description => Resources.GetTranslatedString(@"SettingsUnlinkAccounts_Description");
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</PackageReference>
|
||||
<PackageReference Include="MimeKit" Version="4.7.1" />
|
||||
<PackageReference Include="MailKit" Version="4.7.1.1" />
|
||||
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
|
||||
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Serilog;
|
||||
using Windows.ApplicationModel.Background;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
@@ -7,6 +10,7 @@ namespace Wino.Core.UWP.Services
|
||||
public class BackgroundTaskService : IBackgroundTaskService
|
||||
{
|
||||
private const string IsBackgroundTasksUnregisteredKey = nameof(IsBackgroundTasksUnregisteredKey);
|
||||
public const string ToastNotificationActivationHandlerTaskName = "ToastNotificationActivationHandlerTask";
|
||||
|
||||
private readonly IConfigurationService _configurationService;
|
||||
|
||||
@@ -17,7 +21,7 @@ namespace Wino.Core.UWP.Services
|
||||
|
||||
public void UnregisterAllBackgroundTask()
|
||||
{
|
||||
if (!_configurationService.Get(IsBackgroundTasksUnregisteredKey, false))
|
||||
if (_configurationService.Get(IsBackgroundTasksUnregisteredKey, false))
|
||||
{
|
||||
foreach (var task in BackgroundTaskRegistration.AllTasks)
|
||||
{
|
||||
@@ -28,5 +32,32 @@ namespace Wino.Core.UWP.Services
|
||||
_configurationService.Set(IsBackgroundTasksUnregisteredKey, true);
|
||||
}
|
||||
}
|
||||
|
||||
public Task RegisterBackgroundTasksAsync()
|
||||
{
|
||||
return RegisterToastNotificationHandlerBackgroundTaskAsync();
|
||||
}
|
||||
|
||||
public async Task RegisterToastNotificationHandlerBackgroundTaskAsync()
|
||||
{
|
||||
// If background task is already registered, do nothing.
|
||||
if (BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name.Equals(ToastNotificationActivationHandlerTaskName)))
|
||||
return;
|
||||
|
||||
// Otherwise request access
|
||||
BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();
|
||||
|
||||
// Create the background task
|
||||
BackgroundTaskBuilder builder = new BackgroundTaskBuilder()
|
||||
{
|
||||
Name = ToastNotificationActivationHandlerTaskName
|
||||
};
|
||||
|
||||
// Assign the toast action trigger
|
||||
builder.SetTrigger(new ToastNotificationActionTrigger());
|
||||
|
||||
// And register the task
|
||||
BackgroundTaskRegistration registration = builder.Register();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Storage;
|
||||
using Wino.Core.Domain;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.UWP.Services
|
||||
@@ -34,5 +36,27 @@ namespace Wino.Core.UWP.Services
|
||||
|
||||
return await createdFile.OpenStreamForWriteAsync();
|
||||
}
|
||||
|
||||
public async Task<bool> SaveLogsToFolderAsync(string logsFolder, string destinationFolder)
|
||||
{
|
||||
var logFiles = Directory.GetFiles(logsFolder, "*.log");
|
||||
|
||||
if (logFiles.Length == 0) return false;
|
||||
|
||||
using var fileStream = await GetFileStreamAsync(destinationFolder, Constants.LogArchiveFileName);
|
||||
using var archive = new ZipArchive(fileStream, ZipArchiveMode.Create, true);
|
||||
|
||||
foreach (var logFile in logFiles)
|
||||
{
|
||||
using FileStream logFileStream = File.Open(logFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
|
||||
var zipArchiveEntry = archive.CreateEntry(Path.GetFileName(logFile), CompressionLevel.Fastest);
|
||||
using var zipStream = zipArchiveEntry.Open();
|
||||
|
||||
await logFileStream.CopyToAsync(zipStream);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using CommunityToolkit.WinUI.Notifications;
|
||||
using Serilog;
|
||||
using Windows.Data.Xml.Dom;
|
||||
using Windows.UI.Notifications;
|
||||
using Wino.Core.Domain;
|
||||
@@ -38,83 +39,90 @@ namespace Wino.Core.UWP.Services
|
||||
{
|
||||
var mailCount = downloadedMailItems.Count();
|
||||
|
||||
// If there are more than 3 mails, just display 1 general toast.
|
||||
if (mailCount > 3)
|
||||
try
|
||||
{
|
||||
var builder = new ToastContentBuilder();
|
||||
builder.SetToastScenario(ToastScenario.Default);
|
||||
|
||||
builder.AddText(Translator.Notifications_MultipleNotificationsTitle);
|
||||
builder.AddText(string.Format(Translator.Notifications_MultipleNotificationsMessage, mailCount));
|
||||
|
||||
builder.AddButton(GetDismissButton());
|
||||
|
||||
builder.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
var validItems = new List<IMailItem>();
|
||||
|
||||
// Fetch mails again to fill up assigned folder data and latest statuses.
|
||||
// They've been marked as read by executing synchronizer tasks until inital sync finishes.
|
||||
|
||||
foreach (var item in downloadedMailItems)
|
||||
// If there are more than 3 mails, just display 1 general toast.
|
||||
if (mailCount > 3)
|
||||
{
|
||||
var mailItem = await _mailService.GetSingleMailItemAsync(item.UniqueId);
|
||||
|
||||
if (mailItem != null && mailItem.AssignedFolder != null)
|
||||
{
|
||||
validItems.Add(mailItem);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var mailItem in validItems)
|
||||
{
|
||||
//if (mailItem.IsRead)
|
||||
// continue;
|
||||
|
||||
var builder = new ToastContentBuilder();
|
||||
builder.SetToastScenario(ToastScenario.Default);
|
||||
|
||||
var host = ThumbnailService.GetHost(mailItem.FromAddress);
|
||||
builder.AddText(Translator.Notifications_MultipleNotificationsTitle);
|
||||
builder.AddText(string.Format(Translator.Notifications_MultipleNotificationsMessage, mailCount));
|
||||
|
||||
var knownTuple = ThumbnailService.CheckIsKnown(host);
|
||||
|
||||
bool isKnown = knownTuple.Item1;
|
||||
host = knownTuple.Item2;
|
||||
|
||||
if (isKnown)
|
||||
builder.AddAppLogoOverride(new System.Uri(ThumbnailService.GetKnownHostImage(host)), hintCrop: ToastGenericAppLogoCrop.Default);
|
||||
else
|
||||
{
|
||||
// TODO: https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/adaptive-interactive-toasts?tabs=toolkit
|
||||
// Follow official guides for icons/theme.
|
||||
|
||||
bool isOSDarkTheme = _underlyingThemeService.IsUnderlyingThemeDark();
|
||||
string profileLogoName = isOSDarkTheme ? "profile-dark.png" : "profile-light.png";
|
||||
|
||||
builder.AddAppLogoOverride(new System.Uri($"ms-appx:///Assets/NotificationIcons/{profileLogoName}"), hintCrop: ToastGenericAppLogoCrop.Circle);
|
||||
}
|
||||
|
||||
// Override system notification timetamp with received date of the mail.
|
||||
// It may create confusion for some users, but still it's the truth...
|
||||
builder.AddCustomTimeStamp(mailItem.CreationDate.ToLocalTime());
|
||||
|
||||
builder.AddText(mailItem.FromName);
|
||||
builder.AddText(mailItem.Subject);
|
||||
builder.AddText(mailItem.PreviewText);
|
||||
|
||||
builder.AddArgument(Constants.ToastMailUniqueIdKey, mailItem.UniqueId.ToString());
|
||||
builder.AddArgument(Constants.ToastActionKey, MailOperation.Navigate);
|
||||
|
||||
builder.AddButton(GetMarkedAsRead(mailItem.UniqueId));
|
||||
builder.AddButton(GetDeleteButton(mailItem.UniqueId));
|
||||
builder.AddButton(GetDismissButton());
|
||||
|
||||
builder.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
var validItems = new List<IMailItem>();
|
||||
|
||||
await UpdateTaskbarIconBadgeAsync();
|
||||
// Fetch mails again to fill up assigned folder data and latest statuses.
|
||||
// They've been marked as read by executing synchronizer tasks until inital sync finishes.
|
||||
|
||||
foreach (var item in downloadedMailItems)
|
||||
{
|
||||
var mailItem = await _mailService.GetSingleMailItemAsync(item.UniqueId);
|
||||
|
||||
if (mailItem != null && mailItem.AssignedFolder != null)
|
||||
{
|
||||
validItems.Add(mailItem);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var mailItem in validItems)
|
||||
{
|
||||
if (mailItem.IsRead)
|
||||
continue;
|
||||
|
||||
var builder = new ToastContentBuilder();
|
||||
builder.SetToastScenario(ToastScenario.Default);
|
||||
|
||||
var host = ThumbnailService.GetHost(mailItem.FromAddress);
|
||||
|
||||
var knownTuple = ThumbnailService.CheckIsKnown(host);
|
||||
|
||||
bool isKnown = knownTuple.Item1;
|
||||
host = knownTuple.Item2;
|
||||
|
||||
if (isKnown)
|
||||
builder.AddAppLogoOverride(new System.Uri(ThumbnailService.GetKnownHostImage(host)), hintCrop: ToastGenericAppLogoCrop.Default);
|
||||
else
|
||||
{
|
||||
// TODO: https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/adaptive-interactive-toasts?tabs=toolkit
|
||||
// Follow official guides for icons/theme.
|
||||
|
||||
bool isOSDarkTheme = _underlyingThemeService.IsUnderlyingThemeDark();
|
||||
string profileLogoName = isOSDarkTheme ? "profile-dark.png" : "profile-light.png";
|
||||
|
||||
builder.AddAppLogoOverride(new System.Uri($"ms-appx:///Assets/NotificationIcons/{profileLogoName}"), hintCrop: ToastGenericAppLogoCrop.Circle);
|
||||
}
|
||||
|
||||
// Override system notification timetamp with received date of the mail.
|
||||
// It may create confusion for some users, but still it's the truth...
|
||||
builder.AddCustomTimeStamp(mailItem.CreationDate.ToLocalTime());
|
||||
|
||||
builder.AddText(mailItem.FromName);
|
||||
builder.AddText(mailItem.Subject);
|
||||
builder.AddText(mailItem.PreviewText);
|
||||
|
||||
builder.AddArgument(Constants.ToastMailUniqueIdKey, mailItem.UniqueId.ToString());
|
||||
builder.AddArgument(Constants.ToastActionKey, MailOperation.Navigate);
|
||||
|
||||
builder.AddButton(GetMarkedAsRead(mailItem.UniqueId));
|
||||
builder.AddButton(GetDeleteButton(mailItem.UniqueId));
|
||||
builder.AddButton(GetDismissButton());
|
||||
|
||||
builder.Show();
|
||||
}
|
||||
|
||||
await UpdateTaskbarIconBadgeAsync();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Failed to create notifications.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,10 +150,10 @@ namespace Wino.Core.UWP.Services
|
||||
public async Task UpdateTaskbarIconBadgeAsync()
|
||||
{
|
||||
int totalUnreadCount = 0;
|
||||
var badgeUpdater = BadgeUpdateManager.CreateBadgeUpdaterForApplication();
|
||||
|
||||
try
|
||||
{
|
||||
var badgeUpdater = BadgeUpdateManager.CreateBadgeUpdaterForApplication();
|
||||
var accounts = await _accountService.GetAccountsAsync();
|
||||
|
||||
foreach (var account in accounts)
|
||||
@@ -178,11 +186,9 @@ namespace Wino.Core.UWP.Services
|
||||
else
|
||||
badgeUpdater.Clear();
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
catch (Exception ex)
|
||||
{
|
||||
// TODO: Log exceptions.
|
||||
|
||||
badgeUpdater.Clear();
|
||||
Log.Error(ex, "Error while updating taskbar badge.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,12 @@ namespace Wino.Core.UWP.Services
|
||||
set => SetPropertyAndSave(nameof(IsThreadingEnabled), value);
|
||||
}
|
||||
|
||||
public bool IsMailListActionBarEnabled
|
||||
{
|
||||
get => _configurationService.Get(nameof(IsMailListActionBarEnabled), false);
|
||||
set => SetPropertyAndSave(nameof(IsMailListActionBarEnabled), value);
|
||||
}
|
||||
|
||||
public bool IsShowSenderPicturesEnabled
|
||||
{
|
||||
get => _configurationService.Get(nameof(IsShowSenderPicturesEnabled), true);
|
||||
|
||||
@@ -23,9 +23,6 @@ namespace Wino.Core.UWP.Services
|
||||
_dialogService = dialogService;
|
||||
}
|
||||
|
||||
private void SetRated()
|
||||
=> _configurationService.SetRoaming(RatedStorageKey, true);
|
||||
|
||||
private bool IsAskingThresholdExceeded()
|
||||
{
|
||||
var latestAskedDate = _configurationService.Get(LatestAskedKey, DateTime.MinValue);
|
||||
@@ -62,15 +59,14 @@ namespace Wino.Core.UWP.Services
|
||||
{
|
||||
if (!IsAskingThresholdExceeded()) return;
|
||||
|
||||
var ratingDialogResult = await _dialogService.ShowRatingDialogAsync();
|
||||
var isRateWinoApproved = await _dialogService.ShowWinoCustomMessageDialogAsync(Translator.StoreRatingDialog_Title,
|
||||
Translator.StoreRatingDialog_MessageFirstLine,
|
||||
Translator.Buttons_RateWino,
|
||||
Domain.Enums.WinoCustomMessageDialogIcon.Question,
|
||||
Translator.Buttons_No,
|
||||
RatedStorageKey);
|
||||
|
||||
if (ratingDialogResult == null)
|
||||
return;
|
||||
|
||||
if (ratingDialogResult.DontAskAgain)
|
||||
SetRated();
|
||||
|
||||
if (ratingDialogResult.RateWinoClicked)
|
||||
if (isRateWinoApproved)
|
||||
{
|
||||
// In case of failure of this call, we will navigate users to Store page directly.
|
||||
|
||||
@@ -107,7 +103,7 @@ namespace Wino.Core.UWP.Services
|
||||
else
|
||||
_dialogService.InfoBarMessage(Translator.Info_ReviewSuccessTitle, Translator.Info_ReviewNewMessage, Domain.Enums.InfoBarMessageType.Success);
|
||||
|
||||
SetRated();
|
||||
_configurationService.Set(RatedStorageKey, true);
|
||||
break;
|
||||
case StoreRateAndReviewStatus.CanceledByUser:
|
||||
break;
|
||||
|
||||
@@ -46,7 +46,6 @@ namespace Wino.Services
|
||||
|
||||
public event EventHandler<ApplicationElementTheme> ElementThemeChanged;
|
||||
public event EventHandler<string> AccentColorChanged;
|
||||
public event EventHandler<string> AccentColorChangedBySystem;
|
||||
|
||||
private const string AccentColorKey = nameof(AccentColorKey);
|
||||
private const string CurrentApplicationThemeKey = nameof(CurrentApplicationThemeKey);
|
||||
|
||||
@@ -109,12 +109,12 @@ namespace Wino.Core.UWP.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
ConnectingHandle ??= new TaskCompletionSource<bool>();
|
||||
|
||||
var connectionCancellationToken = new CancellationTokenSource(TimeSpan.FromMilliseconds(ServerConnectionTimeoutMs));
|
||||
ConnectingHandle = new TaskCompletionSource<bool>();
|
||||
|
||||
Status = WinoServerConnectionStatus.Connecting;
|
||||
|
||||
var connectionCancellationToken = new CancellationTokenSource(TimeSpan.FromMilliseconds(ServerConnectionTimeoutMs));
|
||||
|
||||
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
|
||||
|
||||
// Connection establishment handler is in App.xaml.cs OnBackgroundActivated.
|
||||
@@ -125,10 +125,21 @@ namespace Wino.Core.UWP.Services
|
||||
|
||||
Log.Information("Server connection established successfully.");
|
||||
}
|
||||
catch (OperationCanceledException canceledException)
|
||||
{
|
||||
Log.Error(canceledException, $"Server process did not start in {ServerConnectionTimeoutMs} ms. Operation is canceled.");
|
||||
|
||||
ConnectingHandle?.TrySetException(canceledException);
|
||||
|
||||
Status = WinoServerConnectionStatus.Failed;
|
||||
return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Failed to connect to the server.");
|
||||
|
||||
ConnectingHandle?.TrySetException(ex);
|
||||
|
||||
Status = WinoServerConnectionStatus.Failed;
|
||||
return false;
|
||||
}
|
||||
@@ -239,6 +250,9 @@ namespace Wino.Core.UWP.Services
|
||||
case nameof(AccountSynchronizationProgressUpdatedMessage):
|
||||
WeakReferenceMessenger.Default.Send(JsonSerializer.Deserialize<AccountSynchronizationProgressUpdatedMessage>(messageJson));
|
||||
break;
|
||||
case nameof(AccountFolderConfigurationUpdated):
|
||||
WeakReferenceMessenger.Default.Send(JsonSerializer.Deserialize<AccountFolderConfigurationUpdated>(messageJson));
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Invalid data type name passed to client.");
|
||||
}
|
||||
|
||||
@@ -37,26 +37,6 @@
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -132,7 +112,7 @@
|
||||
<Version>7.1.2</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.AppCenter.Analytics">
|
||||
<Version>5.0.4</Version>
|
||||
<Version>5.0.5</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
||||
<Version>6.2.14</Version>
|
||||
|
||||
@@ -26,8 +26,6 @@ namespace Wino.Core.Authenticators
|
||||
|
||||
private readonly INativeAppService _nativeAppService;
|
||||
|
||||
public event EventHandler<string> InteractiveAuthenticationRequired;
|
||||
|
||||
public GmailAuthenticator(ITokenService tokenService, INativeAppService nativeAppService) : base(tokenService)
|
||||
{
|
||||
_nativeAppService = nativeAppService;
|
||||
|
||||
@@ -28,7 +28,16 @@ namespace Wino.Core.Authenticators
|
||||
|
||||
public string ClientId { get; } = "b19c2035-d740-49ff-b297-de6ec561b208";
|
||||
|
||||
private readonly string[] MailScope = ["email", "mail.readwrite", "offline_access", "mail.send"];
|
||||
private readonly string[] MailScope =
|
||||
[
|
||||
"email",
|
||||
"mail.readwrite",
|
||||
"offline_access",
|
||||
"mail.send",
|
||||
"Mail.Send.Shared",
|
||||
"Mail.ReadWrite.Shared",
|
||||
"User.Read"
|
||||
];
|
||||
|
||||
public override MailProviderType ProviderType => MailProviderType.Outlook;
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.MenuItems;
|
||||
|
||||
namespace Wino.Core.Extensions
|
||||
{
|
||||
public static class FolderTreeExtensions
|
||||
{
|
||||
private static MenuItemBase<IMailItemFolder, FolderMenuItem> GetMenuItemByFolderRecursive(IMailItemFolder structure, AccountMenuItem parentAccountMenuItem, IMenuItem parentFolderItem)
|
||||
{
|
||||
MenuItemBase<IMailItemFolder, FolderMenuItem> parentMenuItem = new FolderMenuItem(structure, parentAccountMenuItem.Parameter, parentFolderItem);
|
||||
|
||||
var childStructures = structure.ChildFolders;
|
||||
|
||||
foreach (var childFolder in childStructures)
|
||||
{
|
||||
if (childFolder == null) continue;
|
||||
|
||||
// Folder menu item.
|
||||
var subChildrenFolderTree = GetMenuItemByFolderRecursive(childFolder, parentAccountMenuItem, parentMenuItem);
|
||||
|
||||
if (subChildrenFolderTree is FolderMenuItem folderItem)
|
||||
{
|
||||
parentMenuItem.SubMenuItems.Add(folderItem);
|
||||
}
|
||||
}
|
||||
|
||||
return parentMenuItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Google.Apis.Gmail.v1.Data;
|
||||
@@ -77,9 +76,7 @@ namespace Wino.Core.Extensions
|
||||
|
||||
public static MailItemFolder GetLocalFolder(this Label label, ListLabelsResponse labelsResponse, Guid accountId)
|
||||
{
|
||||
bool isAllCapital = label.Name.All(a => char.IsUpper(a));
|
||||
|
||||
var normalizedLabelName = GetFolderName(label);
|
||||
var normalizedLabelName = GetFolderName(label.Name);
|
||||
|
||||
// Even though we normalize the label name, check is done by capitalizing the label name.
|
||||
var capitalNormalizedLabelName = normalizedLabelName.ToUpper();
|
||||
@@ -93,10 +90,10 @@ namespace Wino.Core.Extensions
|
||||
// without realizing that they are hidden in Gmail settings. Therefore, it makes more sense to ignore Gmail's configuration
|
||||
// since Wino allows folder visibility configuration separately.
|
||||
|
||||
// Overridden hidden labels are shown in the UI, but they have their synchronization disabled.
|
||||
// This is mainly because 'All Mails' label is hidden by default in Gmail, but there is no point to download all mails.
|
||||
// Overridden hidden labels are shown in the UI.
|
||||
// Also Gmail does not support folder sync enable/disable options due to history changes.
|
||||
// By default all folders will be enabled for synchronization.
|
||||
|
||||
bool shouldEnableSynchronization = label.LabelListVisibility != FOLDER_HIDE_IDENTIFIER;
|
||||
bool isHidden = false;
|
||||
|
||||
bool isChildOfCategoryFolder = label.Name.StartsWith(CATEGORY_PREFIX);
|
||||
@@ -115,7 +112,7 @@ namespace Wino.Core.Extensions
|
||||
RemoteFolderId = label.Id,
|
||||
Id = Guid.NewGuid(),
|
||||
MailAccountId = accountId,
|
||||
IsSynchronizationEnabled = shouldEnableSynchronization,
|
||||
IsSynchronizationEnabled = true,
|
||||
SpecialFolderType = specialFolderType,
|
||||
IsSystemFolder = isSystemFolder,
|
||||
IsSticky = isSticky,
|
||||
@@ -156,14 +153,14 @@ namespace Wino.Core.Extensions
|
||||
return labelsResponse.Labels.FirstOrDefault(a => a.Name == parentLabelName)?.Id ?? string.Empty;
|
||||
}
|
||||
|
||||
public static string GetFolderName(Label label)
|
||||
public static string GetFolderName(string fullFolderName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(label.Name)) return string.Empty;
|
||||
if (string.IsNullOrEmpty(fullFolderName)) return string.Empty;
|
||||
|
||||
// Folders with "//" at the end has "/" as the name.
|
||||
if (label.Name.EndsWith(FOLDER_SEPERATOR_STRING)) return FOLDER_SEPERATOR_STRING;
|
||||
if (fullFolderName.EndsWith(FOLDER_SEPERATOR_STRING)) return FOLDER_SEPERATOR_STRING;
|
||||
|
||||
string[] parts = label.Name.Split(FOLDER_SEPERATOR_CHAR);
|
||||
string[] parts = fullFolderName.Split(FOLDER_SEPERATOR_CHAR);
|
||||
|
||||
var lastPart = parts[parts.Length - 1];
|
||||
|
||||
@@ -205,44 +202,16 @@ namespace Wino.Core.Extensions
|
||||
};
|
||||
}
|
||||
|
||||
public static Tuple<MailCopy, MimeMessage, IEnumerable<string>> GetMailDetails(this Message message)
|
||||
public static List<RemoteAccountAlias> GetRemoteAliases(this ListSendAsResponse response)
|
||||
{
|
||||
MimeMessage mimeMessage = message.GetGmailMimeMessage();
|
||||
|
||||
if (mimeMessage == null)
|
||||
return response?.SendAs?.Select(a => new RemoteAccountAlias()
|
||||
{
|
||||
// This should never happen.
|
||||
Debugger.Break();
|
||||
|
||||
return default;
|
||||
}
|
||||
|
||||
bool isUnread = message.GetIsUnread();
|
||||
bool isFocused = message.GetIsFocused();
|
||||
bool isFlagged = message.GetIsFlagged();
|
||||
bool isDraft = message.GetIsDraft();
|
||||
|
||||
var mailCopy = new MailCopy()
|
||||
{
|
||||
CreationDate = mimeMessage.Date.UtcDateTime,
|
||||
Subject = HttpUtility.HtmlDecode(mimeMessage.Subject),
|
||||
FromName = MailkitClientExtensions.GetActualSenderName(mimeMessage),
|
||||
FromAddress = MailkitClientExtensions.GetActualSenderAddress(mimeMessage),
|
||||
PreviewText = HttpUtility.HtmlDecode(message.Snippet),
|
||||
ThreadId = message.ThreadId,
|
||||
Importance = (MailImportance)mimeMessage.Importance,
|
||||
Id = message.Id,
|
||||
IsDraft = isDraft,
|
||||
HasAttachments = mimeMessage.Attachments.Any(),
|
||||
IsRead = !isUnread,
|
||||
IsFlagged = isFlagged,
|
||||
IsFocused = isFocused,
|
||||
InReplyTo = mimeMessage.InReplyTo,
|
||||
MessageId = mimeMessage.MessageId,
|
||||
References = mimeMessage.References.GetReferences()
|
||||
};
|
||||
|
||||
return new Tuple<MailCopy, MimeMessage, IEnumerable<string>>(mailCopy, mimeMessage, message.LabelIds);
|
||||
AliasAddress = a.SendAsEmail,
|
||||
IsRootAlias = a.IsDefault.GetValueOrDefault(),
|
||||
IsPrimary = a.IsPrimary.GetValueOrDefault(),
|
||||
ReplyToAddress = a.ReplyToAddress,
|
||||
IsVerified = a.VerificationStatus == "accepted" || a.IsDefault.GetValueOrDefault(),
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,6 +136,8 @@ namespace Wino.Core.Extensions
|
||||
if (message == null)
|
||||
return string.Empty;
|
||||
|
||||
return message.From.Mailboxes.FirstOrDefault()?.Name ?? message.Sender?.Name ?? Translator.UnknownSender;
|
||||
|
||||
// From MimeKit
|
||||
|
||||
// The "From" header specifies the author(s) of the message.
|
||||
@@ -145,43 +147,44 @@ namespace Wino.Core.Extensions
|
||||
|
||||
// Also handle: https://stackoverflow.com/questions/46474030/mailkit-from-address
|
||||
|
||||
if (message.Sender != null)
|
||||
return string.IsNullOrEmpty(message.Sender.Name) ? message.Sender.Address : message.Sender.Name;
|
||||
else if (message.From?.Mailboxes != null)
|
||||
{
|
||||
var firstAvailableName = message.From.Mailboxes.FirstOrDefault(a => !string.IsNullOrEmpty(a.Name))?.Name;
|
||||
//if (message.Sender != null)
|
||||
// return string.IsNullOrEmpty(message.Sender.Name) ? message.Sender.Address : message.Sender.Name;
|
||||
//else if (message.From?.Mailboxes != null)
|
||||
//{
|
||||
// var firstAvailableName = message.From.Mailboxes.FirstOrDefault(a => !string.IsNullOrEmpty(a.Name))?.Name;
|
||||
|
||||
if (string.IsNullOrEmpty(firstAvailableName))
|
||||
{
|
||||
var firstAvailableAddress = message.From.Mailboxes.FirstOrDefault(a => !string.IsNullOrEmpty(a.Address))?.Address;
|
||||
// if (string.IsNullOrEmpty(firstAvailableName))
|
||||
// {
|
||||
// var firstAvailableAddress = message.From.Mailboxes.FirstOrDefault(a => !string.IsNullOrEmpty(a.Address))?.Address;
|
||||
|
||||
if (!string.IsNullOrEmpty(firstAvailableAddress))
|
||||
{
|
||||
return firstAvailableAddress;
|
||||
}
|
||||
}
|
||||
// if (!string.IsNullOrEmpty(firstAvailableAddress))
|
||||
// {
|
||||
// return firstAvailableAddress;
|
||||
// }
|
||||
// }
|
||||
|
||||
return firstAvailableName;
|
||||
}
|
||||
// return firstAvailableName;
|
||||
//}
|
||||
|
||||
// No sender, no from, I don't know what to do.
|
||||
return Translator.UnknownSender;
|
||||
//// No sender, no from, I don't know what to do.
|
||||
//return Translator.UnknownSender;
|
||||
}
|
||||
|
||||
// TODO: This is wrong.
|
||||
public static string GetActualSenderAddress(MimeMessage mime)
|
||||
public static string GetActualSenderAddress(MimeMessage message)
|
||||
{
|
||||
if (mime == null)
|
||||
return string.Empty;
|
||||
return message.From.Mailboxes.FirstOrDefault()?.Address ?? message.Sender?.Address ?? Translator.UnknownSender;
|
||||
//if (mime == null)
|
||||
// return string.Empty;
|
||||
|
||||
bool hasSingleFromMailbox = mime.From.Mailboxes.Count() == 1;
|
||||
//bool hasSingleFromMailbox = mime.From.Mailboxes.Count() == 1;
|
||||
|
||||
if (hasSingleFromMailbox)
|
||||
return mime.From.Mailboxes.First().GetAddress(idnEncode: true);
|
||||
else if (mime.Sender != null)
|
||||
return mime.Sender.GetAddress(idnEncode: true);
|
||||
else
|
||||
return Translator.UnknownSender;
|
||||
//if (hasSingleFromMailbox)
|
||||
// return mime.From.Mailboxes.First().GetAddress(idnEncode: true);
|
||||
//else if (mime.Sender != null)
|
||||
// return mime.Sender.GetAddress(idnEncode: true);
|
||||
//else
|
||||
// return Translator.UnknownSender;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using MailKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
@@ -8,14 +9,28 @@ namespace Wino.Core.Extensions
|
||||
{
|
||||
public static MailItemFolder GetLocalFolder(this IMailFolder mailkitMailFolder)
|
||||
{
|
||||
bool isAllCapital = mailkitMailFolder.Name?.All(a => char.IsUpper(a)) ?? false;
|
||||
|
||||
return new MailItemFolder()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
FolderName = mailkitMailFolder.Name,
|
||||
FolderName = isAllCapital ? mailkitMailFolder.Name.OnlyCapitilizeFirstLetter() : mailkitMailFolder.Name,
|
||||
RemoteFolderId = mailkitMailFolder.FullName,
|
||||
ParentRemoteFolderId = mailkitMailFolder.ParentFolder?.FullName,
|
||||
SpecialFolderType = Domain.Enums.SpecialFolderType.Other
|
||||
};
|
||||
}
|
||||
|
||||
public static string OnlyCapitilizeFirstLetter(this string s)
|
||||
{
|
||||
if (string.IsNullOrEmpty(s))
|
||||
return string.Empty;
|
||||
|
||||
s = s.ToLower();
|
||||
|
||||
char[] a = s.ToCharArray();
|
||||
a[0] = char.ToUpper(a[0]);
|
||||
return new string(a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ using MimeKit;
|
||||
using MimeKit.IO;
|
||||
using MimeKit.IO.Filters;
|
||||
using MimeKit.Utils;
|
||||
using Wino.Core.Domain;
|
||||
using Wino.Core.Domain.Entities;
|
||||
|
||||
namespace Wino.Core.Extensions
|
||||
{
|
||||
@@ -41,16 +39,6 @@ namespace Wino.Core.Extensions
|
||||
}
|
||||
}
|
||||
|
||||
public static AddressInformation ToAddressInformation(this MailboxAddress address)
|
||||
{
|
||||
if (address == null)
|
||||
return new AddressInformation() { Name = Translator.UnknownSender, Address = Translator.UnknownAddress };
|
||||
|
||||
if (string.IsNullOrEmpty(address.Name))
|
||||
address.Name = address.Address;
|
||||
|
||||
return new AddressInformation() { Name = address.Name, Address = address.Address };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets html body replacing base64 images with cid linked resources.
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.Graph.Models;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
@@ -61,5 +65,157 @@ namespace Wino.Core.Extensions
|
||||
|
||||
return mailCopy;
|
||||
}
|
||||
|
||||
public static Message AsOutlookMessage(this MimeMessage mime, bool includeInternetHeaders)
|
||||
{
|
||||
var fromAddress = GetRecipients(mime.From).ElementAt(0);
|
||||
var toAddresses = GetRecipients(mime.To).ToList();
|
||||
var ccAddresses = GetRecipients(mime.Cc).ToList();
|
||||
var bccAddresses = GetRecipients(mime.Bcc).ToList();
|
||||
var replyToAddresses = GetRecipients(mime.ReplyTo).ToList();
|
||||
|
||||
var message = new Message()
|
||||
{
|
||||
Subject = mime.Subject,
|
||||
Importance = GetImportance(mime.Importance),
|
||||
Body = new ItemBody() { ContentType = BodyType.Html, Content = mime.HtmlBody },
|
||||
IsDraft = false,
|
||||
IsRead = true, // Sent messages are always read.
|
||||
ToRecipients = toAddresses,
|
||||
CcRecipients = ccAddresses,
|
||||
BccRecipients = bccAddresses,
|
||||
From = fromAddress,
|
||||
InternetMessageId = GetProperId(mime.MessageId),
|
||||
ReplyTo = replyToAddresses,
|
||||
Attachments = []
|
||||
};
|
||||
|
||||
// Headers are only included when creating the draft.
|
||||
// When sending, they are not included. Graph will throw an error.
|
||||
|
||||
if (includeInternetHeaders)
|
||||
{
|
||||
message.InternetMessageHeaders = GetHeaderList(mime);
|
||||
}
|
||||
|
||||
foreach (var part in mime.BodyParts)
|
||||
{
|
||||
if (part.IsAttachment)
|
||||
{
|
||||
// File attachment.
|
||||
|
||||
using var memory = new MemoryStream();
|
||||
((MimePart)part).Content.DecodeTo(memory);
|
||||
|
||||
var bytes = memory.ToArray();
|
||||
|
||||
var fileAttachment = new FileAttachment()
|
||||
{
|
||||
ContentId = part.ContentId,
|
||||
Name = part.ContentDisposition?.FileName ?? part.ContentType.Name,
|
||||
ContentBytes = bytes,
|
||||
};
|
||||
|
||||
message.Attachments.Add(fileAttachment);
|
||||
}
|
||||
else if (part.ContentDisposition != null && part.ContentDisposition.Disposition == "inline")
|
||||
{
|
||||
// Inline attachment.
|
||||
|
||||
using var memory = new MemoryStream();
|
||||
((MimePart)part).Content.DecodeTo(memory);
|
||||
|
||||
var bytes = memory.ToArray();
|
||||
var inlineAttachment = new FileAttachment()
|
||||
{
|
||||
IsInline = true,
|
||||
ContentId = part.ContentId,
|
||||
Name = part.ContentDisposition?.FileName ?? part.ContentType.Name,
|
||||
ContentBytes = bytes
|
||||
};
|
||||
|
||||
message.Attachments.Add(inlineAttachment);
|
||||
}
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
#region Mime to Outlook Message Helpers
|
||||
|
||||
private static IEnumerable<Recipient> GetRecipients(this InternetAddressList internetAddresses)
|
||||
{
|
||||
foreach (var address in internetAddresses)
|
||||
{
|
||||
if (address is MailboxAddress mailboxAddress)
|
||||
yield return new Recipient() { EmailAddress = new EmailAddress() { Address = mailboxAddress.Address, Name = mailboxAddress.Name } };
|
||||
else if (address is GroupAddress groupAddress)
|
||||
{
|
||||
// TODO: Group addresses are not directly supported.
|
||||
// It'll be individually added.
|
||||
|
||||
foreach (var mailbox in groupAddress.Members)
|
||||
if (mailbox is MailboxAddress groupMemberMailAddress)
|
||||
yield return new Recipient() { EmailAddress = new EmailAddress() { Address = groupMemberMailAddress.Address, Name = groupMemberMailAddress.Name } };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Importance? GetImportance(MessageImportance importance)
|
||||
{
|
||||
return importance switch
|
||||
{
|
||||
MessageImportance.Low => Importance.Low,
|
||||
MessageImportance.Normal => Importance.Normal,
|
||||
MessageImportance.High => Importance.High,
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
|
||||
private static List<InternetMessageHeader> GetHeaderList(this MimeMessage mime)
|
||||
{
|
||||
// Graph API only allows max of 5 headers.
|
||||
// Here we'll try to ignore some headers that are not neccessary.
|
||||
// Outlook API will generate them automatically.
|
||||
|
||||
// Some headers also require to start with X- or x-.
|
||||
|
||||
string[] headersToIgnore = ["Date", "To", "Cc", "Bcc", "MIME-Version", "From", "Subject", "Message-Id"];
|
||||
string[] headersToModify = ["In-Reply-To", "Reply-To", "References", "Thread-Topic"];
|
||||
|
||||
var headers = new List<InternetMessageHeader>();
|
||||
|
||||
int includedHeaderCount = 0;
|
||||
|
||||
foreach (var header in mime.Headers)
|
||||
{
|
||||
if (!headersToIgnore.Contains(header.Field))
|
||||
{
|
||||
var headerName = headersToModify.Contains(header.Field) ? $"X-{header.Field}" : header.Field;
|
||||
|
||||
// No header value should exceed 995 characters.
|
||||
var headerValue = header.Value.Length >= 995 ? header.Value.Substring(0, 995) : header.Value;
|
||||
|
||||
headers.Add(new InternetMessageHeader() { Name = headerName, Value = headerValue });
|
||||
includedHeaderCount++;
|
||||
}
|
||||
|
||||
if (includedHeaderCount >= 5) break;
|
||||
}
|
||||
|
||||
return headers;
|
||||
}
|
||||
|
||||
private static string GetProperId(string id)
|
||||
{
|
||||
// Outlook requires some identifiers to start with "X-" or "x-".
|
||||
if (string.IsNullOrEmpty(id)) return string.Empty;
|
||||
|
||||
if (!id.StartsWith("x-") || !id.StartsWith("X-"))
|
||||
return $"X-{id}";
|
||||
|
||||
return id;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,11 +33,13 @@ namespace Wino.Core.Integration
|
||||
// Later on maybe we can make it configurable and leave it to the user with passing
|
||||
// real implementation details.
|
||||
|
||||
private readonly ImapImplementation _implementation = new ImapImplementation()
|
||||
private readonly ImapImplementation _implementation = new()
|
||||
{
|
||||
Version = "1.0",
|
||||
Version = "1.8.0",
|
||||
OS = "Windows",
|
||||
Vendor = "Wino"
|
||||
Vendor = "Wino",
|
||||
SupportUrl = "https://www.winomail.app",
|
||||
Name = "Wino Mail User",
|
||||
};
|
||||
|
||||
private readonly int MinimumPoolSize = 5;
|
||||
|
||||
@@ -19,8 +19,8 @@ namespace Wino.Core.Integration.Processors
|
||||
/// </summary>
|
||||
public interface IDefaultChangeProcessor
|
||||
{
|
||||
Task UpdateAccountAsync(MailAccount account);
|
||||
Task<string> UpdateAccountDeltaSynchronizationIdentifierAsync(Guid accountId, string deltaSynchronizationIdentifier);
|
||||
Task CreateAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId);
|
||||
Task DeleteAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId);
|
||||
Task ChangeMailReadStatusAsync(string mailCopyId, bool isRead);
|
||||
Task ChangeFlagStatusAsync(string mailCopyId, bool isFlagged);
|
||||
@@ -39,17 +39,20 @@ namespace Wino.Core.Integration.Processors
|
||||
/// <returns>All folders.</returns>
|
||||
Task<List<MailItemFolder>> GetLocalFoldersAsync(Guid accountId);
|
||||
|
||||
|
||||
Task<List<MailItemFolder>> GetSynchronizationFoldersAsync(SynchronizationOptions options);
|
||||
|
||||
Task<bool> MapLocalDraftAsync(Guid accountId, Guid localDraftCopyUniqueId, string newMailCopyId, string newDraftId, string newThreadId);
|
||||
Task UpdateFolderLastSyncDateAsync(Guid folderId);
|
||||
|
||||
Task<List<MailItemFolder>> GetExistingFoldersAsync(Guid accountId);
|
||||
Task UpdateRemoteAliasInformationAsync(MailAccount account, List<RemoteAccountAlias> remoteAccountAliases);
|
||||
}
|
||||
|
||||
public interface IGmailChangeProcessor : IDefaultChangeProcessor
|
||||
{
|
||||
Task MapLocalDraftAsync(string mailCopyId, string newDraftId, string newThreadId);
|
||||
Task CreateAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId);
|
||||
}
|
||||
|
||||
public interface IOutlookChangeProcessor : IDefaultChangeProcessor
|
||||
@@ -132,8 +135,7 @@ namespace Wino.Core.Integration.Processors
|
||||
public Task DeleteAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId)
|
||||
=> MailService.DeleteAssignmentAsync(accountId, mailCopyId, remoteFolderId);
|
||||
|
||||
public Task CreateAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId)
|
||||
=> MailService.CreateAssignmentAsync(accountId, mailCopyId, remoteFolderId);
|
||||
|
||||
|
||||
public Task DeleteMailAsync(Guid accountId, string mailId)
|
||||
=> MailService.DeleteMailAsync(accountId, mailId);
|
||||
@@ -165,12 +167,16 @@ namespace Wino.Core.Integration.Processors
|
||||
public Task<List<MailCopy>> GetDownloadedUnreadMailsAsync(Guid accountId, IEnumerable<string> downloadedMailCopyIds)
|
||||
=> MailService.GetDownloadedUnreadMailsAsync(accountId, downloadedMailCopyIds);
|
||||
|
||||
|
||||
|
||||
public Task SaveMimeFileAsync(Guid fileId, MimeMessage mimeMessage, Guid accountId)
|
||||
=> _mimeFileService.SaveMimeMessageAsync(fileId, mimeMessage, accountId);
|
||||
|
||||
public Task UpdateFolderLastSyncDateAsync(Guid folderId)
|
||||
=> FolderService.UpdateFolderLastSyncDateAsync(folderId);
|
||||
|
||||
public Task UpdateAccountAsync(MailAccount account)
|
||||
=> AccountService.UpdateAccountAsync(account);
|
||||
|
||||
public Task UpdateRemoteAliasInformationAsync(MailAccount account, List<RemoteAccountAlias> remoteAccountAliases)
|
||||
=> AccountService.UpdateRemoteAliasInformationAsync(account, remoteAccountAliases);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Services;
|
||||
|
||||
@@ -12,5 +13,8 @@ namespace Wino.Core.Integration.Processors
|
||||
|
||||
public Task MapLocalDraftAsync(string mailCopyId, string newDraftId, string newThreadId)
|
||||
=> MailService.MapLocalDraftAsync(mailCopyId, newDraftId, newThreadId);
|
||||
|
||||
public Task CreateAssignmentAsync(Guid accountId, string mailCopyId, string remoteFolderId)
|
||||
=> MailService.CreateAssignmentAsync(accountId, mailCopyId, remoteFolderId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Services;
|
||||
|
||||
@@ -27,7 +28,7 @@ namespace Wino.Core.Integration.Threading
|
||||
}
|
||||
|
||||
///<inheritdoc/>
|
||||
public async Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items)
|
||||
public async Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items, IMailItemFolder threadingForFolder)
|
||||
{
|
||||
var assignedAccount = items[0].AssignedAccount;
|
||||
|
||||
@@ -62,11 +63,43 @@ namespace Wino.Core.Integration.Threading
|
||||
}
|
||||
|
||||
var thread = new ThreadMailItem();
|
||||
|
||||
foreach (var childThreadItem in threadItem)
|
||||
{
|
||||
thread.AddThreadItem(childThreadItem);
|
||||
if (thread.ThreadItems.Any(a => a.Id == childThreadItem.Id))
|
||||
{
|
||||
// Mail already exist in the thread.
|
||||
// There should be only 1 instance of the mail in the thread.
|
||||
// Make sure we add the correct one.
|
||||
|
||||
// Add the one with threading folder.
|
||||
var threadingFolderItem = threadItem.FirstOrDefault(a => a.Id == childThreadItem.Id && a.FolderId == threadingForFolder.Id);
|
||||
|
||||
if (threadingFolderItem == null) continue;
|
||||
|
||||
// Remove the existing one.
|
||||
thread.ThreadItems.Remove(thread.ThreadItems.First(a => a.Id == childThreadItem.Id));
|
||||
|
||||
// Add the correct one for listing.
|
||||
thread.AddThreadItem(threadingFolderItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
thread.AddThreadItem(childThreadItem);
|
||||
}
|
||||
}
|
||||
|
||||
if (thread.ThreadItems.Count > 1)
|
||||
{
|
||||
resultList.Add(thread);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Don't make threads if the thread has only one item.
|
||||
// Gmail has may have multiple assignments for the same item.
|
||||
|
||||
resultList.Add(thread.ThreadItems.First());
|
||||
}
|
||||
resultList.Add(thread);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
||||
using SqlKata;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Extensions;
|
||||
using Wino.Core.Services;
|
||||
@@ -58,7 +59,7 @@ namespace Wino.Core.Integration.Threading
|
||||
return _databaseService.Connection.FindWithQueryAsync<MailCopy>(query.GetRawQuery());
|
||||
}
|
||||
|
||||
public async Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items)
|
||||
public async Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items, IMailItemFolder threadingForFolder)
|
||||
{
|
||||
var threads = new List<ThreadMailItem>();
|
||||
|
||||
|
||||
@@ -47,6 +47,12 @@ namespace Wino.Core.MenuItems
|
||||
set => SetProperty(Parameter.Name, value, Parameter, (u, n) => u.Name = n);
|
||||
}
|
||||
|
||||
public string Base64ProfilePicture
|
||||
{
|
||||
get => Parameter.Name;
|
||||
set => SetProperty(Parameter.Base64ProfilePictureData, value, Parameter, (u, n) => u.Base64ProfilePictureData = n);
|
||||
}
|
||||
|
||||
public IEnumerable<MailAccount> HoldingAccounts => new List<MailAccount> { Parameter };
|
||||
|
||||
public AccountMenuItem(MailAccount account, IMenuItem parent = null) : base(account, account.Id, parent)
|
||||
@@ -59,6 +65,7 @@ namespace Wino.Core.MenuItems
|
||||
Parameter = account;
|
||||
AccountName = account.Name;
|
||||
AttentionReason = account.AttentionReason;
|
||||
Base64ProfilePicture = account.Base64ProfilePictureData;
|
||||
|
||||
if (SubMenuItems == null) return;
|
||||
|
||||
|
||||
@@ -146,20 +146,17 @@ namespace Wino.Core.MenuItems
|
||||
accountMenuItem ??= this.OfType<MergedAccountMenuItem>()
|
||||
.FirstOrDefault(a => a.HoldingAccounts.Any(b => b.Id == accountId))?.SubMenuItems
|
||||
.OfType<AccountMenuItem>()
|
||||
.FirstOrDefault();
|
||||
.FirstOrDefault(a => a.AccountId == accountId);
|
||||
|
||||
return accountMenuItem;
|
||||
}
|
||||
|
||||
public async Task ReplaceFoldersAsync(IEnumerable<IMenuItem> folders)
|
||||
public void ReplaceFolders(IEnumerable<IMenuItem> folders)
|
||||
{
|
||||
await _dispatcher.ExecuteOnUIThread(() =>
|
||||
{
|
||||
ClearFolderAreaMenuItems();
|
||||
ClearFolderAreaMenuItems();
|
||||
|
||||
Items.Add(new SeperatorItem());
|
||||
AddRange(folders);
|
||||
});
|
||||
Items.Add(new SeperatorItem());
|
||||
AddRange(folders);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -194,9 +191,13 @@ namespace Wino.Core.MenuItems
|
||||
{
|
||||
item.IsExpanded = false;
|
||||
item.IsSelected = false;
|
||||
});
|
||||
|
||||
RemoveRange(itemsToRemove);
|
||||
try
|
||||
{
|
||||
Remove(item);
|
||||
}
|
||||
catch (Exception) { }
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,8 +31,6 @@ namespace Wino.Core.Requests
|
||||
}
|
||||
}
|
||||
|
||||
public override bool DelayExecution => false;
|
||||
|
||||
public List<Guid> SynchronizationFolderIds => [Folder.Id];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,5 +42,7 @@ namespace Wino.Core.Requests
|
||||
{
|
||||
Items.ForEach(item => WeakReferenceMessenger.Default.Send(new MailAddedMessage(item.Item)));
|
||||
}
|
||||
|
||||
public override int ResynchronizationDelay => 3000;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@ namespace Wino.Core.Requests
|
||||
}
|
||||
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public record BatchSendDraftRequestRequest(IEnumerable<IRequest> Items, SendDraftPreparationRequest Request) : BatchRequestBase(Items, MailSynchronizerOperation.Send)
|
||||
public record BatchSendDraftRequestRequest(IEnumerable<IRequest> Items,
|
||||
SendDraftPreparationRequest Request) : BatchRequestBase(Items, MailSynchronizerOperation.Send)
|
||||
{
|
||||
public override void ApplyUIChanges()
|
||||
{
|
||||
@@ -57,6 +58,7 @@ namespace Wino.Core.Requests
|
||||
Items.ForEach(item => WeakReferenceMessenger.Default.Send(new MailAddedMessage(item.Item)));
|
||||
}
|
||||
|
||||
public override bool DelayExecution => true;
|
||||
public override int ResynchronizationDelay => 6000;
|
||||
public override bool ExecuteSerialBatch => true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using CommunityToolkit.Diagnostics;
|
||||
@@ -10,6 +9,7 @@ using SqlKata;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Extensions;
|
||||
using Wino.Messaging.Client.Accounts;
|
||||
using Wino.Messaging.UI;
|
||||
@@ -233,6 +233,33 @@ namespace Wino.Core.Services
|
||||
return accounts;
|
||||
}
|
||||
|
||||
public async Task CreateRootAliasAsync(Guid accountId, string address)
|
||||
{
|
||||
var rootAlias = new MailAccountAlias()
|
||||
{
|
||||
AccountId = accountId,
|
||||
AliasAddress = address,
|
||||
IsPrimary = true,
|
||||
IsRootAlias = true,
|
||||
IsVerified = true,
|
||||
ReplyToAddress = address,
|
||||
Id = Guid.NewGuid()
|
||||
};
|
||||
|
||||
await Connection.InsertAsync(rootAlias).ConfigureAwait(false);
|
||||
|
||||
Log.Information("Created root alias for the account {AccountId}", accountId);
|
||||
}
|
||||
|
||||
public async Task<List<MailAccountAlias>> GetAccountAliasesAsync(Guid accountId)
|
||||
{
|
||||
var query = new Query(nameof(MailAccountAlias))
|
||||
.Where(nameof(MailAccountAlias.AccountId), accountId)
|
||||
.OrderByDesc(nameof(MailAccountAlias.IsRootAlias));
|
||||
|
||||
return await Connection.QueryAsync<MailAccountAlias>(query.GetRawQuery()).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private Task<MergedInbox> GetMergedInboxInformationAsync(Guid mergedInboxId)
|
||||
=> Connection.Table<MergedInbox>().FirstOrDefaultAsync(a => a.Id == mergedInboxId);
|
||||
|
||||
@@ -245,6 +272,7 @@ namespace Wino.Core.Services
|
||||
await Connection.Table<TokenInformation>().Where(a => a.AccountId == account.Id).DeleteAsync();
|
||||
await Connection.Table<MailItemFolder>().DeleteAsync(a => a.MailAccountId == account.Id);
|
||||
await Connection.Table<AccountSignature>().DeleteAsync(a => a.MailAccountId == account.Id);
|
||||
await Connection.Table<MailAccountAlias>().DeleteAsync(a => a.AccountId == account.Id);
|
||||
|
||||
// Account belongs to a merged inbox.
|
||||
// In case of there'll be a single account in the merged inbox, remove the merged inbox as well.
|
||||
@@ -295,6 +323,31 @@ namespace Wino.Core.Services
|
||||
ReportUIChange(new AccountRemovedMessage(account));
|
||||
}
|
||||
|
||||
public async Task UpdateProfileInformationAsync(Guid accountId, ProfileInformation profileInformation)
|
||||
{
|
||||
var account = await GetAccountAsync(accountId).ConfigureAwait(false);
|
||||
|
||||
if (account != null)
|
||||
{
|
||||
account.SenderName = profileInformation.SenderName;
|
||||
account.Base64ProfilePictureData = profileInformation.Base64ProfilePictureData;
|
||||
|
||||
// Forcefully add or update a contact data with the provided information.
|
||||
|
||||
var accountContact = new AccountContact()
|
||||
{
|
||||
Address = account.Address,
|
||||
Name = account.SenderName,
|
||||
Base64ContactPicture = account.Base64ProfilePictureData,
|
||||
IsRootContact = true
|
||||
};
|
||||
|
||||
await Connection.InsertOrReplaceAsync(accountContact).ConfigureAwait(false);
|
||||
|
||||
await UpdateAccountAsync(account).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<MailAccount> GetAccountAsync(Guid accountId)
|
||||
{
|
||||
var account = await Connection.Table<MailAccount>().FirstOrDefaultAsync(a => a.Id == accountId);
|
||||
@@ -321,17 +374,98 @@ namespace Wino.Core.Services
|
||||
|
||||
public async Task UpdateAccountAsync(MailAccount account)
|
||||
{
|
||||
if (account.Preferences == null)
|
||||
{
|
||||
Debugger.Break();
|
||||
}
|
||||
|
||||
await Connection.UpdateAsync(account.Preferences);
|
||||
await Connection.UpdateAsync(account);
|
||||
await Connection.UpdateAsync(account.Preferences).ConfigureAwait(false);
|
||||
await Connection.UpdateAsync(account).ConfigureAwait(false);
|
||||
|
||||
ReportUIChange(new AccountUpdatedMessage(account));
|
||||
}
|
||||
|
||||
public async Task UpdateAccountAliasesAsync(Guid accountId, List<MailAccountAlias> aliases)
|
||||
{
|
||||
// Delete existing ones.
|
||||
await Connection.Table<MailAccountAlias>().DeleteAsync(a => a.AccountId == accountId).ConfigureAwait(false);
|
||||
|
||||
// Insert new ones.
|
||||
foreach (var alias in aliases)
|
||||
{
|
||||
await Connection.InsertAsync(alias).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task UpdateRemoteAliasInformationAsync(MailAccount account, List<RemoteAccountAlias> remoteAccountAliases)
|
||||
{
|
||||
var localAliases = await GetAccountAliasesAsync(account.Id).ConfigureAwait(false);
|
||||
var rootAlias = localAliases.Find(a => a.IsRootAlias);
|
||||
|
||||
foreach (var remoteAlias in remoteAccountAliases)
|
||||
{
|
||||
var existingAlias = localAliases.Find(a => a.AccountId == account.Id && a.AliasAddress == remoteAlias.AliasAddress);
|
||||
|
||||
if (existingAlias == null)
|
||||
{
|
||||
// Create new alias.
|
||||
var newAlias = new MailAccountAlias()
|
||||
{
|
||||
AccountId = account.Id,
|
||||
AliasAddress = remoteAlias.AliasAddress,
|
||||
IsPrimary = remoteAlias.IsPrimary,
|
||||
IsVerified = remoteAlias.IsVerified,
|
||||
ReplyToAddress = remoteAlias.ReplyToAddress,
|
||||
Id = Guid.NewGuid(),
|
||||
IsRootAlias = remoteAlias.IsRootAlias
|
||||
};
|
||||
|
||||
await Connection.InsertAsync(newAlias);
|
||||
localAliases.Add(newAlias);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Update existing alias.
|
||||
existingAlias.IsPrimary = remoteAlias.IsPrimary;
|
||||
existingAlias.IsVerified = remoteAlias.IsVerified;
|
||||
existingAlias.ReplyToAddress = remoteAlias.ReplyToAddress;
|
||||
|
||||
await Connection.UpdateAsync(existingAlias);
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure there is only 1 root alias and 1 primary alias selected.
|
||||
|
||||
bool shouldUpdatePrimary = localAliases.Count(a => a.IsPrimary) != 1;
|
||||
bool shouldUpdateRoot = localAliases.Count(a => a.IsRootAlias) != 1;
|
||||
|
||||
if (shouldUpdatePrimary)
|
||||
{
|
||||
localAliases.ForEach(a => a.IsPrimary = false);
|
||||
|
||||
var idealPrimaryAlias = localAliases.Find(a => a.AliasAddress == account.Address) ?? localAliases.First();
|
||||
|
||||
idealPrimaryAlias.IsPrimary = true;
|
||||
await Connection.UpdateAsync(idealPrimaryAlias).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (shouldUpdateRoot)
|
||||
{
|
||||
localAliases.ForEach(a => a.IsRootAlias = false);
|
||||
|
||||
var idealRootAlias = localAliases.Find(a => a.AliasAddress == account.Address) ?? localAliases.First();
|
||||
|
||||
idealRootAlias.IsRootAlias = true;
|
||||
await Connection.UpdateAsync(idealRootAlias).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task DeleteAccountAliasAsync(Guid aliasId)
|
||||
{
|
||||
// Create query to delete alias.
|
||||
|
||||
var query = new Query("MailAccountAlias")
|
||||
.Where("Id", aliasId)
|
||||
.AsDelete();
|
||||
|
||||
await Connection.ExecuteAsync(query.GetRawQuery()).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task CreateAccountAsync(MailAccount account, TokenInformation tokenInformation, CustomServerInformation customServerInformation)
|
||||
{
|
||||
Guard.IsNotNull(account);
|
||||
@@ -385,7 +519,7 @@ namespace Wino.Core.Services
|
||||
// Outlook token cache is managed by MSAL.
|
||||
// Don't save it to database.
|
||||
|
||||
if (tokenInformation != null && account.ProviderType != MailProviderType.Outlook)
|
||||
if (tokenInformation != null && (account.ProviderType != MailProviderType.Outlook || account.ProviderType == MailProviderType.Office365))
|
||||
await Connection.InsertAsync(tokenInformation);
|
||||
}
|
||||
|
||||
@@ -409,7 +543,6 @@ namespace Wino.Core.Services
|
||||
|
||||
if (shouldUpdateIdentifier)
|
||||
{
|
||||
_logger.Debug("Updating synchronization identifier for {Name}. From: {SynchronizationDeltaIdentifier} To: {NewIdentifier}", account.Name, account.SynchronizationDeltaIdentifier, newIdentifier);
|
||||
account.SynchronizationDeltaIdentifier = newIdentifier;
|
||||
|
||||
await UpdateAccountAsync(account);
|
||||
@@ -437,5 +570,14 @@ namespace Wino.Core.Services
|
||||
|
||||
Messenger.Send(new AccountMenuItemsReordered(accountIdOrderPair));
|
||||
}
|
||||
|
||||
public async Task<MailAccountAlias> GetPrimaryAccountAliasAsync(Guid accountId)
|
||||
{
|
||||
var aliases = await GetAccountAliasesAsync(accountId);
|
||||
|
||||
if (aliases == null || aliases.Count == 0) return null;
|
||||
|
||||
return aliases.FirstOrDefault(a => a.IsPrimary) ?? aliases.First();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ namespace Wino.Core.Services
|
||||
{
|
||||
public interface IContactService
|
||||
{
|
||||
Task<List<AddressInformation>> GetAddressInformationAsync(string queryText);
|
||||
Task<AddressInformation> GetAddressInformationByAddressAsync(string address);
|
||||
Task<List<AccountContact>> GetAddressInformationAsync(string queryText);
|
||||
Task<AccountContact> GetAddressInformationByAddressAsync(string address);
|
||||
Task SaveAddressInformationAsync(MimeMessage message);
|
||||
}
|
||||
|
||||
@@ -19,25 +19,22 @@ namespace Wino.Core.Services
|
||||
{
|
||||
public ContactService(IDatabaseService databaseService) : base(databaseService) { }
|
||||
|
||||
public Task<List<AddressInformation>> GetAddressInformationAsync(string queryText)
|
||||
public Task<List<AccountContact>> GetAddressInformationAsync(string queryText)
|
||||
{
|
||||
if (queryText == null || queryText.Length < 2)
|
||||
return Task.FromResult<List<AddressInformation>>(null);
|
||||
return Task.FromResult<List<AccountContact>>(null);
|
||||
|
||||
var query = new Query(nameof(AddressInformation));
|
||||
var query = new Query(nameof(AccountContact));
|
||||
query.WhereContains("Address", queryText);
|
||||
query.OrWhereContains("Name", queryText);
|
||||
|
||||
var rawLikeQuery = query.GetRawQuery();
|
||||
|
||||
return Connection.QueryAsync<AddressInformation>(rawLikeQuery);
|
||||
return Connection.QueryAsync<AccountContact>(rawLikeQuery);
|
||||
}
|
||||
|
||||
public async Task<AddressInformation> GetAddressInformationByAddressAsync(string address)
|
||||
{
|
||||
return await Connection.Table<AddressInformation>().Where(a => a.Address == address).FirstOrDefaultAsync()
|
||||
?? new AddressInformation() { Name = address, Address = address };
|
||||
}
|
||||
public Task<AccountContact> GetAddressInformationByAddressAsync(string address)
|
||||
=> Connection.Table<AccountContact>().Where(a => a.Address == address).FirstOrDefaultAsync();
|
||||
|
||||
public async Task SaveAddressInformationAsync(MimeMessage message)
|
||||
{
|
||||
@@ -45,10 +42,21 @@ namespace Wino.Core.Services
|
||||
.GetRecipients(true)
|
||||
.Where(a => !string.IsNullOrEmpty(a.Name) && !string.IsNullOrEmpty(a.Address));
|
||||
|
||||
var addressInformations = recipients.Select(a => new AddressInformation() { Name = a.Name, Address = a.Address });
|
||||
var addressInformations = recipients.Select(a => new AccountContact() { Name = a.Name, Address = a.Address });
|
||||
|
||||
foreach (var info in addressInformations)
|
||||
await Connection.InsertOrReplaceAsync(info).ConfigureAwait(false);
|
||||
{
|
||||
var currentContact = await GetAddressInformationByAddressAsync(info.Address).ConfigureAwait(false);
|
||||
|
||||
if (currentContact == null)
|
||||
{
|
||||
await Connection.InsertAsync(info).ConfigureAwait(false);
|
||||
}
|
||||
else if (!currentContact.IsRootContact) // Don't update root contacts. They belong to accounts.
|
||||
{
|
||||
await Connection.InsertOrReplaceAsync(info).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,27 +80,26 @@ namespace Wino.Core.Services
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isAllFlagged = selectedMailItems.All(a => a.IsFlagged);
|
||||
bool isAllRead = selectedMailItems.All(a => a.IsRead);
|
||||
bool isAllUnread = selectedMailItems.All(a => !a.IsRead);
|
||||
bool isAllFlagged = selectedMailItems.All(a => a.IsFlagged);
|
||||
bool isAllNotFlagged = selectedMailItems.All(a => !a.IsFlagged);
|
||||
|
||||
if (isAllRead)
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsUnread));
|
||||
else
|
||||
List<MailOperationMenuItem> readOperations = (isAllRead, isAllUnread) switch
|
||||
{
|
||||
if (!isAllUnread)
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsUnread));
|
||||
(true, false) => [MailOperationMenuItem.Create(MailOperation.MarkAsUnread)],
|
||||
(false, true) => [MailOperationMenuItem.Create(MailOperation.MarkAsRead)],
|
||||
_ => [MailOperationMenuItem.Create(MailOperation.MarkAsRead), MailOperationMenuItem.Create(MailOperation.MarkAsUnread)]
|
||||
};
|
||||
operationList.AddRange(readOperations);
|
||||
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsRead));
|
||||
}
|
||||
|
||||
if (isAllFlagged)
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.ClearFlag));
|
||||
else
|
||||
List<MailOperationMenuItem> flagsOperations = (isAllFlagged, isAllNotFlagged) switch
|
||||
{
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.ClearFlag));
|
||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.SetFlag));
|
||||
}
|
||||
(true, false) => [MailOperationMenuItem.Create(MailOperation.ClearFlag)],
|
||||
(false, true) => [MailOperationMenuItem.Create(MailOperation.SetFlag)],
|
||||
_ => [MailOperationMenuItem.Create(MailOperation.SetFlag), MailOperationMenuItem.Create(MailOperation.ClearFlag)]
|
||||
};
|
||||
operationList.AddRange(flagsOperations);
|
||||
}
|
||||
|
||||
// Ignore
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace Wino.Core.Services
|
||||
|
||||
public class DatabaseService : IDatabaseService
|
||||
{
|
||||
private const string DatabaseName = "Wino172.db";
|
||||
private const string DatabaseName = "Wino180.db";
|
||||
|
||||
private bool _isInitialized = false;
|
||||
private readonly IApplicationConfiguration _folderConfiguration;
|
||||
@@ -57,11 +57,12 @@ namespace Wino.Core.Services
|
||||
typeof(MailItemFolder),
|
||||
typeof(MailAccount),
|
||||
typeof(TokenInformation),
|
||||
typeof(AddressInformation),
|
||||
typeof(AccountContact),
|
||||
typeof(CustomServerInformation),
|
||||
typeof(AccountSignature),
|
||||
typeof(MergedInbox),
|
||||
typeof(MailAccountPreferences)
|
||||
typeof(MailAccountPreferences),
|
||||
typeof(MailAccountAlias)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -387,11 +387,6 @@ namespace Wino.Core.Services
|
||||
if (configuration == null)
|
||||
throw new ArgumentNullException(nameof(configuration));
|
||||
|
||||
var account = await _accountService.GetAccountAsync(accountId);
|
||||
|
||||
if (account == null)
|
||||
throw new ArgumentNullException(nameof(account));
|
||||
|
||||
// Update system folders for this account.
|
||||
|
||||
await Task.WhenAll(UpdateSystemFolderInternalAsync(configuration.SentFolder, SpecialFolderType.Sent),
|
||||
@@ -400,9 +395,8 @@ namespace Wino.Core.Services
|
||||
UpdateSystemFolderInternalAsync(configuration.TrashFolder, SpecialFolderType.Deleted),
|
||||
UpdateSystemFolderInternalAsync(configuration.ArchiveFolder, SpecialFolderType.Archive));
|
||||
|
||||
await _accountService.UpdateAccountAsync(account);
|
||||
|
||||
return account;
|
||||
return await _accountService.GetAccountAsync(accountId).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private Task UpdateSystemFolderInternalAsync(MailItemFolder folder, SpecialFolderType assignedSpecialFolderType)
|
||||
@@ -492,13 +486,6 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
var account = await _accountService.GetAccountAsync(folder.MailAccountId).ConfigureAwait(false);
|
||||
if (account == null)
|
||||
{
|
||||
_logger.Warning("Account with id {MailAccountId} does not exist. Cannot update folder.", folder.MailAccountId);
|
||||
return;
|
||||
}
|
||||
|
||||
_logger.Debug("Updating folder {FolderName}", folder.Id, folder.FolderName);
|
||||
|
||||
await Connection.UpdateAsync(folder).ConfigureAwait(false);
|
||||
@@ -558,36 +545,11 @@ namespace Wino.Core.Services
|
||||
public Task<List<MailFolderPairMetadata>> GetMailFolderPairMetadatasAsync(string mailCopyId)
|
||||
=> GetMailFolderPairMetadatasAsync(new List<string>() { mailCopyId });
|
||||
|
||||
|
||||
public async Task<List<MailItemFolder>> GetSynchronizationFoldersAsync(SynchronizationOptions options)
|
||||
{
|
||||
var folders = new List<MailItemFolder>();
|
||||
|
||||
if (options.Type == SynchronizationType.Inbox)
|
||||
{
|
||||
var inboxFolder = await GetSpecialFolderByAccountIdAsync(options.AccountId, SpecialFolderType.Inbox);
|
||||
var sentFolder = await GetSpecialFolderByAccountIdAsync(options.AccountId, SpecialFolderType.Sent);
|
||||
var draftFolder = await GetSpecialFolderByAccountIdAsync(options.AccountId, SpecialFolderType.Draft);
|
||||
|
||||
// For properly creating threads we need Sent and Draft to be synchronized as well.
|
||||
|
||||
if (sentFolder != null && sentFolder.IsSynchronizationEnabled)
|
||||
{
|
||||
folders.Add(sentFolder);
|
||||
}
|
||||
|
||||
if (draftFolder != null && draftFolder.IsSynchronizationEnabled)
|
||||
{
|
||||
folders.Add(draftFolder);
|
||||
}
|
||||
|
||||
// User might've disabled inbox synchronization somehow...
|
||||
if (inboxFolder != null && inboxFolder.IsSynchronizationEnabled)
|
||||
{
|
||||
folders.Add(inboxFolder);
|
||||
}
|
||||
}
|
||||
else if (options.Type == SynchronizationType.Full)
|
||||
if (options.Type == SynchronizationType.Full)
|
||||
{
|
||||
// Only get sync enabled folders.
|
||||
|
||||
@@ -598,19 +560,75 @@ namespace Wino.Core.Services
|
||||
|
||||
folders.AddRange(synchronizationFolders);
|
||||
}
|
||||
else if (options.Type == SynchronizationType.Custom)
|
||||
else
|
||||
{
|
||||
// Only get the specified and enabled folders.
|
||||
// Inbox, Sent and Draft folders must always be synchronized regardless of whether they are enabled or not.
|
||||
// Custom folder sync will add additional folders to the list if not specified.
|
||||
|
||||
var synchronizationFolders = await Connection.Table<MailItemFolder>()
|
||||
.Where(a => a.MailAccountId == options.AccountId && a.IsSynchronizationEnabled && options.SynchronizationFolderIds.Contains(a.Id))
|
||||
.ToListAsync();
|
||||
var mustHaveFolders = await GetInboxSynchronizationFoldersAsync(options.AccountId);
|
||||
|
||||
// Order is important for moving.
|
||||
// By implementation, removing mail folders must be synchronized first. Requests are made in that order for custom sync.
|
||||
// eg. Moving item from Folder A to Folder B. If we start syncing Folder B first, we might miss adding assignment for Folder A.
|
||||
if (options.Type == SynchronizationType.Inbox)
|
||||
{
|
||||
return mustHaveFolders;
|
||||
}
|
||||
else if (options.Type == SynchronizationType.Custom)
|
||||
{
|
||||
// Only get the specified and enabled folders.
|
||||
|
||||
folders.AddRange(synchronizationFolders.OrderBy(a => options.SynchronizationFolderIds.IndexOf(a.Id)));
|
||||
var synchronizationFolders = await Connection.Table<MailItemFolder>()
|
||||
.Where(a => a.MailAccountId == options.AccountId && options.SynchronizationFolderIds.Contains(a.Id))
|
||||
.ToListAsync();
|
||||
|
||||
// Order is important for moving.
|
||||
// By implementation, removing mail folders must be synchronized first. Requests are made in that order for custom sync.
|
||||
// eg. Moving item from Folder A to Folder B. If we start syncing Folder B first, we might miss adding assignment for Folder A.
|
||||
|
||||
var orderedCustomFolders = synchronizationFolders.OrderBy(a => options.SynchronizationFolderIds.IndexOf(a.Id));
|
||||
|
||||
foreach (var item in orderedCustomFolders)
|
||||
{
|
||||
if (!mustHaveFolders.Any(a => a.Id == item.Id))
|
||||
{
|
||||
mustHaveFolders.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mustHaveFolders;
|
||||
}
|
||||
|
||||
return folders;
|
||||
}
|
||||
|
||||
private async Task<List<MailItemFolder>> GetInboxSynchronizationFoldersAsync(Guid accountId)
|
||||
{
|
||||
var folders = new List<MailItemFolder>();
|
||||
|
||||
var inboxFolder = await GetSpecialFolderByAccountIdAsync(accountId, SpecialFolderType.Inbox);
|
||||
var sentFolder = await GetSpecialFolderByAccountIdAsync(accountId, SpecialFolderType.Sent);
|
||||
var draftFolder = await GetSpecialFolderByAccountIdAsync(accountId, SpecialFolderType.Draft);
|
||||
var deletedFolder = await GetSpecialFolderByAccountIdAsync(accountId, SpecialFolderType.Deleted);
|
||||
|
||||
if (deletedFolder != null)
|
||||
{
|
||||
folders.Add(deletedFolder);
|
||||
}
|
||||
|
||||
if (inboxFolder != null)
|
||||
{
|
||||
folders.Add(inboxFolder);
|
||||
}
|
||||
|
||||
// For properly creating threads we need Sent and Draft to be synchronized as well.
|
||||
|
||||
if (sentFolder != null)
|
||||
{
|
||||
folders.Add(sentFolder);
|
||||
}
|
||||
|
||||
if (draftFolder != null)
|
||||
{
|
||||
folders.Add(draftFolder);
|
||||
}
|
||||
|
||||
return folders;
|
||||
|
||||
@@ -19,7 +19,11 @@ namespace Wino.Core.Services
|
||||
|
||||
public void RefreshLoggingLevel()
|
||||
{
|
||||
_levelSwitch.MinimumLevel = _preferencesService.IsLoggingEnabled ? Serilog.Events.LogEventLevel.Debug : Serilog.Events.LogEventLevel.Fatal;
|
||||
#if DEBUG
|
||||
_levelSwitch.MinimumLevel = Serilog.Events.LogEventLevel.Debug;
|
||||
#else
|
||||
_levelSwitch.MinimumLevel = _preferencesService.IsLoggingEnabled ? Serilog.Events.LogEventLevel.Information : Serilog.Events.LogEventLevel.Fatal;
|
||||
#endif
|
||||
}
|
||||
|
||||
public void SetupLogger(string fullLogFilePath)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Kiota.Abstractions.Extensions;
|
||||
using MimeKit;
|
||||
@@ -10,6 +11,7 @@ using SqlKata;
|
||||
using Wino.Core.Domain;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Exceptions;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Comparers;
|
||||
@@ -51,8 +53,9 @@ namespace Wino.Core.Services
|
||||
_preferencesService = preferencesService;
|
||||
}
|
||||
|
||||
public async Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(MailAccount composerAccount, DraftCreationOptions draftCreationOptions)
|
||||
public async Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions)
|
||||
{
|
||||
var composerAccount = await _accountService.GetAccountAsync(accountId).ConfigureAwait(false);
|
||||
var createdDraftMimeMessage = await CreateDraftMimeAsync(composerAccount, draftCreationOptions);
|
||||
|
||||
var draftFolder = await _folderService.GetSpecialFolderByAccountIdAsync(composerAccount.Id, SpecialFolderType.Draft);
|
||||
@@ -61,12 +64,14 @@ namespace Wino.Core.Services
|
||||
// This header will be used to map the local draft copy with the remote draft copy.
|
||||
var mimeUniqueId = createdDraftMimeMessage.Headers[Constants.WinoLocalDraftHeader];
|
||||
|
||||
var primaryAlias = await _accountService.GetPrimaryAccountAliasAsync(accountId).ConfigureAwait(false);
|
||||
|
||||
var copy = new MailCopy
|
||||
{
|
||||
UniqueId = Guid.Parse(mimeUniqueId),
|
||||
Id = Guid.NewGuid().ToString(), // This will be replaced after network call with the remote draft id.
|
||||
CreationDate = DateTime.UtcNow,
|
||||
FromAddress = composerAccount.Address,
|
||||
FromAddress = primaryAlias?.AliasAddress ?? composerAccount.Address,
|
||||
FromName = composerAccount.SenderName,
|
||||
HasAttachments = false,
|
||||
Importance = MailImportance.Normal,
|
||||
@@ -189,7 +194,7 @@ namespace Wino.Core.Services
|
||||
return query.GetRawQuery();
|
||||
}
|
||||
|
||||
public async Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options)
|
||||
public async Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var query = BuildMailFetchQuery(options);
|
||||
|
||||
@@ -197,6 +202,7 @@ namespace Wino.Core.Services
|
||||
|
||||
Dictionary<Guid, MailItemFolder> folderCache = [];
|
||||
Dictionary<Guid, MailAccount> accountCache = [];
|
||||
Dictionary<string, AccountContact> contactCache = [];
|
||||
|
||||
// Populate Folder Assignment for each single mail, to be able later group by "MailAccountId".
|
||||
// This is needed to execute threading strategy by account type.
|
||||
@@ -211,6 +217,8 @@ namespace Wino.Core.Services
|
||||
|
||||
if (!options.CreateThreads)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
// Threading is disabled. Just return everything as it is.
|
||||
mails.Sort(options.SortingOptionType == SortingOptionType.ReceiveDate ? new DateComparer() : new NameComparer());
|
||||
|
||||
@@ -224,6 +232,8 @@ namespace Wino.Core.Services
|
||||
// Each account items must be threaded separately.
|
||||
foreach (var group in mails.GroupBy(a => a.AssignedAccount.Id))
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
var accountId = group.Key;
|
||||
var groupAccount = mails.First(a => a.AssignedAccount.Id == accountId).AssignedAccount;
|
||||
|
||||
@@ -231,12 +241,13 @@ namespace Wino.Core.Services
|
||||
|
||||
// Only thread items from Draft and Sent folders must present here.
|
||||
// Otherwise this strategy will fetch the items that are in Deleted folder as well.
|
||||
var accountThreadedItems = await threadingStrategy.ThreadItemsAsync([.. group]);
|
||||
var accountThreadedItems = await threadingStrategy.ThreadItemsAsync([.. group], options.Folders.First());
|
||||
|
||||
// Populate threaded items with folder and account assignments.
|
||||
// Almost everything already should be in cache from initial population.
|
||||
foreach (var mail in accountThreadedItems)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
await LoadAssignedPropertiesWithCacheAsync(mail, folderCache, accountCache).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -247,11 +258,14 @@ namespace Wino.Core.Services
|
||||
}
|
||||
|
||||
threadedItems.Sort(options.SortingOptionType == SortingOptionType.ReceiveDate ? new DateComparer() : new NameComparer());
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
return threadedItems;
|
||||
|
||||
// Recursive function to populate folder and account assignments for each mail item.
|
||||
async Task LoadAssignedPropertiesWithCacheAsync(IMailItem mail, Dictionary<Guid, MailItemFolder> folderCache, Dictionary<Guid, MailAccount> accountCache)
|
||||
async Task LoadAssignedPropertiesWithCacheAsync(IMailItem mail,
|
||||
Dictionary<Guid, MailItemFolder> folderCache,
|
||||
Dictionary<Guid, MailAccount> accountCache)
|
||||
{
|
||||
if (mail is ThreadMailItem threadMailItem)
|
||||
{
|
||||
@@ -272,6 +286,7 @@ namespace Wino.Core.Services
|
||||
folderAssignment = await _folderService.GetFolderAsync(mailCopy.FolderId).ConfigureAwait(false);
|
||||
_ = folderCache.TryAdd(mailCopy.FolderId, folderAssignment);
|
||||
}
|
||||
|
||||
if (folderAssignment != null)
|
||||
{
|
||||
var isAccountCached = accountCache.TryGetValue(folderAssignment.MailAccountId, out accountAssignment);
|
||||
@@ -279,15 +294,55 @@ namespace Wino.Core.Services
|
||||
{
|
||||
accountAssignment = await _accountService.GetAccountAsync(folderAssignment.MailAccountId).ConfigureAwait(false);
|
||||
_ = accountCache.TryAdd(folderAssignment.MailAccountId, accountAssignment);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
AccountContact contactAssignment = null;
|
||||
|
||||
bool isContactCached = !string.IsNullOrEmpty(mailCopy.FromAddress) ?
|
||||
contactCache.TryGetValue(mailCopy.FromAddress, out contactAssignment) :
|
||||
false;
|
||||
|
||||
if (!isContactCached && accountAssignment != null)
|
||||
{
|
||||
contactAssignment = await GetSenderContactForAccountAsync(accountAssignment, mailCopy.FromAddress).ConfigureAwait(false);
|
||||
|
||||
if (contactAssignment != null)
|
||||
{
|
||||
_ = contactCache.TryAdd(mailCopy.FromAddress, contactAssignment);
|
||||
}
|
||||
}
|
||||
|
||||
mailCopy.AssignedFolder = folderAssignment;
|
||||
mailCopy.AssignedAccount = accountAssignment;
|
||||
mailCopy.SenderContact = contactAssignment ?? CreateUnknownContact(mailCopy.FromName, mailCopy.FromAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private AccountContact CreateUnknownContact(string fromName, string fromAddress)
|
||||
{
|
||||
if (string.IsNullOrEmpty(fromName) && string.IsNullOrEmpty(fromAddress))
|
||||
{
|
||||
return new AccountContact()
|
||||
{
|
||||
Name = Translator.UnknownSender,
|
||||
Address = Translator.UnknownAddress
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(fromName)) fromName = fromAddress;
|
||||
|
||||
return new AccountContact()
|
||||
{
|
||||
Name = fromName,
|
||||
Address = fromAddress
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<List<MailCopy>> GetMailItemsAsync(string mailCopyId)
|
||||
{
|
||||
var mailCopies = await Connection.Table<MailCopy>().Where(a => a.Id == mailCopyId).ToListAsync();
|
||||
@@ -300,11 +355,24 @@ namespace Wino.Core.Services
|
||||
return mailCopies;
|
||||
}
|
||||
|
||||
private Task<AccountContact> GetSenderContactForAccountAsync(MailAccount account, string fromAddress)
|
||||
{
|
||||
// Make sure to return the latest up to date contact information for the original account.
|
||||
if (fromAddress == account.Address)
|
||||
{
|
||||
return Task.FromResult(new AccountContact() { Address = account.Address, Name = account.SenderName, Base64ContactPicture = account.Base64ProfilePictureData });
|
||||
}
|
||||
else
|
||||
{
|
||||
return _contactService.GetAddressInformationByAddressAsync(fromAddress);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadAssignedPropertiesAsync(MailCopy mailCopy)
|
||||
{
|
||||
if (mailCopy == null) return;
|
||||
|
||||
// Load AssignedAccount and AssignedFolder.
|
||||
// Load AssignedAccount, AssignedFolder and SenderContact.
|
||||
|
||||
var folder = await _folderService.GetFolderAsync(mailCopy.FolderId);
|
||||
|
||||
@@ -316,6 +384,7 @@ namespace Wino.Core.Services
|
||||
|
||||
mailCopy.AssignedAccount = account;
|
||||
mailCopy.AssignedFolder = folder;
|
||||
mailCopy.SenderContact = await GetSenderContactForAccountAsync(account, mailCopy.FromAddress).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<MailCopy> GetSingleMailItemWithoutFolderAssignmentAsync(string mailCopyId)
|
||||
@@ -366,12 +435,11 @@ namespace Wino.Core.Services
|
||||
|
||||
foreach (var mailItem in allMails)
|
||||
{
|
||||
await DeleteMailInternalAsync(mailItem).ConfigureAwait(false);
|
||||
|
||||
// Delete mime file.
|
||||
// Delete mime file as well.
|
||||
// Even though Gmail might have multiple copies for the same mail, we only have one MIME file for all.
|
||||
// Their FileId is inserted same.
|
||||
await _mimeFileService.DeleteMimeMessageAsync(accountId, mailItem.FileId);
|
||||
|
||||
await DeleteMailInternalAsync(mailItem, preserveMimeFile: false).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,7 +459,7 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
_logger.Debug("Inserting mail {MailCopyId} to Folder {FolderId}", mailCopy.Id, mailCopy.FolderId);
|
||||
_logger.Debug("Inserting mail {MailCopyId} to {FolderName}", mailCopy.Id, mailCopy.AssignedFolder.FolderName);
|
||||
|
||||
await Connection.InsertAsync(mailCopy).ConfigureAwait(false);
|
||||
|
||||
@@ -414,7 +482,7 @@ namespace Wino.Core.Services
|
||||
ReportUIChange(new MailUpdatedMessage(mailCopy));
|
||||
}
|
||||
|
||||
private async Task DeleteMailInternalAsync(MailCopy mailCopy)
|
||||
private async Task DeleteMailInternalAsync(MailCopy mailCopy, bool preserveMimeFile)
|
||||
{
|
||||
if (mailCopy == null)
|
||||
{
|
||||
@@ -423,14 +491,14 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
_logger.Debug("Deleting mail {Id} with Folder {FolderId}", mailCopy.Id, mailCopy.FolderId);
|
||||
_logger.Debug("Deleting mail {Id} from folder {FolderName}", mailCopy.Id, mailCopy.AssignedFolder.FolderName);
|
||||
|
||||
await Connection.DeleteAsync(mailCopy).ConfigureAwait(false);
|
||||
|
||||
// If there are no more copies exists of the same mail, delete the MIME file as well.
|
||||
var isMailExists = await IsMailExistsAsync(mailCopy.Id).ConfigureAwait(false);
|
||||
|
||||
if (!isMailExists)
|
||||
if (!isMailExists && !preserveMimeFile)
|
||||
{
|
||||
await _mimeFileService.DeleteMimeMessageAsync(mailCopy.AssignedAccount.Id, mailCopy.FileId).ConfigureAwait(false);
|
||||
}
|
||||
@@ -451,7 +519,7 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
_logger.Information("Updating {MailCopyCount} mail copies with Id {MailCopyId}", mailCopies.Count, mailCopyId);
|
||||
_logger.Debug("Updating {MailCopyCount} mail copies with Id {MailCopyId}", mailCopies.Count, mailCopyId);
|
||||
|
||||
foreach (var mailCopy in mailCopies)
|
||||
{
|
||||
@@ -462,13 +530,15 @@ namespace Wino.Core.Services
|
||||
await UpdateMailAsync(mailCopy).ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
_logger.Information("Skipped updating mail because it is already in the desired state.");
|
||||
_logger.Debug("Skipped updating mail because it is already in the desired state.");
|
||||
}
|
||||
}
|
||||
|
||||
public Task ChangeReadStatusAsync(string mailCopyId, bool isRead)
|
||||
=> UpdateAllMailCopiesAsync(mailCopyId, (item) =>
|
||||
{
|
||||
if (item.IsRead == isRead) return false;
|
||||
|
||||
item.IsRead = isRead;
|
||||
|
||||
return true;
|
||||
@@ -477,6 +547,8 @@ namespace Wino.Core.Services
|
||||
public Task ChangeFlagStatusAsync(string mailCopyId, bool isFlagged)
|
||||
=> UpdateAllMailCopiesAsync(mailCopyId, (item) =>
|
||||
{
|
||||
if (item.IsFlagged == isFlagged) return false;
|
||||
|
||||
item.IsFlagged = isFlagged;
|
||||
|
||||
return true;
|
||||
@@ -507,6 +579,19 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
if (mailCopy.AssignedFolder.SpecialFolderType == SpecialFolderType.Sent &&
|
||||
localFolder.SpecialFolderType == SpecialFolderType.Deleted)
|
||||
{
|
||||
// Sent item is deleted.
|
||||
// Gmail does not delete the sent items, but moves them to the deleted folder.
|
||||
// API doesn't allow removing Sent label.
|
||||
// Here we intercept this behavior, removing the Sent copy of the mail and adding the Deleted copy.
|
||||
// This way item will only be visible in Trash folder as in Gmail Web UI.
|
||||
// Don't delete MIME file since if exists.
|
||||
|
||||
await DeleteMailInternalAsync(mailCopy, preserveMimeFile: true).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
// Copy one of the mail copy and assign it to the new folder.
|
||||
// We don't need to create a new MIME pack.
|
||||
// Therefore FileId is not changed for the new MailCopy.
|
||||
@@ -538,7 +623,7 @@ namespace Wino.Core.Services
|
||||
return;
|
||||
}
|
||||
|
||||
await DeleteMailInternalAsync(mailItem).ConfigureAwait(false);
|
||||
await DeleteMailInternalAsync(mailItem, preserveMimeFile: false).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<bool> CreateMailAsync(Guid accountId, NewMailItemPackage package)
|
||||
@@ -571,6 +656,7 @@ namespace Wino.Core.Services
|
||||
mailCopy.UniqueId = Guid.NewGuid();
|
||||
mailCopy.AssignedAccount = account;
|
||||
mailCopy.AssignedFolder = assignedFolder;
|
||||
mailCopy.SenderContact = await GetSenderContactForAccountAsync(account, mailCopy.FromAddress).ConfigureAwait(false);
|
||||
mailCopy.FolderId = assignedFolder.Id;
|
||||
|
||||
// Only save MIME files if they don't exists.
|
||||
@@ -620,12 +706,17 @@ namespace Wino.Core.Services
|
||||
// This unique id is stored in mime headers for Wino to identify remote message with local copy.
|
||||
// Same unique id will be used for the local copy as well.
|
||||
// Synchronizer will map this unique id to the local draft copy after synchronization.
|
||||
|
||||
var message = new MimeMessage()
|
||||
{
|
||||
Headers = { { Constants.WinoLocalDraftHeader, Guid.NewGuid().ToString() } },
|
||||
From = { new MailboxAddress(account.SenderName, account.Address) }
|
||||
};
|
||||
|
||||
var primaryAlias = await _accountService.GetPrimaryAccountAliasAsync(account.Id) ?? throw new MissingAliasException();
|
||||
|
||||
// Set FromName and FromAddress by alias.
|
||||
message.From.Add(new MailboxAddress(account.SenderName, primaryAlias.AliasAddress));
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
|
||||
var signature = await GetSignature(account, draftCreationOptions.Reason);
|
||||
@@ -728,6 +819,14 @@ namespace Wino.Core.Services
|
||||
message.Cc.AddRange(referenceMessage.Cc.Where(x => x is MailboxAddress mailboxAddress && !mailboxAddress.Address.Equals(account.Address, StringComparison.OrdinalIgnoreCase)));
|
||||
}
|
||||
|
||||
// Self email can be present at this step, when replying to own message. It should be removed only in case there no other recipients.
|
||||
if (message.To.Count > 1)
|
||||
{
|
||||
var self = message.To.FirstOrDefault(x => x is MailboxAddress mailboxAddress && mailboxAddress.Address.Equals(account.Address, StringComparison.OrdinalIgnoreCase));
|
||||
if (self != null)
|
||||
message.To.Remove(self);
|
||||
}
|
||||
|
||||
// Manage "ThreadId-ConversationId"
|
||||
if (!string.IsNullOrEmpty(referenceMessage.MessageId))
|
||||
{
|
||||
|
||||
@@ -109,12 +109,9 @@ namespace Wino.Core.Services
|
||||
var resourcePath = await GetMimeResourcePathAsync(accountId, fileId).ConfigureAwait(false);
|
||||
var completeFilePath = GetEMLPath(resourcePath);
|
||||
|
||||
var fileStream = File.Create(completeFilePath);
|
||||
using var fileStream = File.Open(completeFilePath, FileMode.OpenOrCreate);
|
||||
|
||||
using (fileStream)
|
||||
{
|
||||
await mimeMessage.WriteToAsync(fileStream).ConfigureAwait(false);
|
||||
}
|
||||
await mimeMessage.WriteToAsync(fileStream).ConfigureAwait(false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ namespace Wino.Core.Services
|
||||
private bool isInitialized = false;
|
||||
|
||||
private readonly IAccountService _accountService;
|
||||
private readonly IApplicationConfiguration _applicationConfiguration;
|
||||
private readonly IOutlookChangeProcessor _outlookChangeProcessor;
|
||||
private readonly IGmailChangeProcessor _gmailChangeProcessor;
|
||||
private readonly IImapChangeProcessor _imapChangeProcessor;
|
||||
@@ -26,7 +27,8 @@ namespace Wino.Core.Services
|
||||
IImapChangeProcessor imapChangeProcessor,
|
||||
IOutlookAuthenticator outlookAuthenticator,
|
||||
IGmailAuthenticator gmailAuthenticator,
|
||||
IAccountService accountService)
|
||||
IAccountService accountService,
|
||||
IApplicationConfiguration applicationConfiguration)
|
||||
{
|
||||
_outlookChangeProcessor = outlookChangeProcessor;
|
||||
_gmailChangeProcessor = gmailChangeProcessor;
|
||||
@@ -34,6 +36,7 @@ namespace Wino.Core.Services
|
||||
_outlookAuthenticator = outlookAuthenticator;
|
||||
_gmailAuthenticator = gmailAuthenticator;
|
||||
_accountService = accountService;
|
||||
_applicationConfiguration = applicationConfiguration;
|
||||
}
|
||||
|
||||
public async Task<IBaseSynchronizer> GetAccountSynchronizerAsync(Guid accountId)
|
||||
@@ -67,7 +70,7 @@ namespace Wino.Core.Services
|
||||
case Domain.Enums.MailProviderType.Gmail:
|
||||
return new GmailSynchronizer(mailAccount, _gmailAuthenticator, _gmailChangeProcessor);
|
||||
case Domain.Enums.MailProviderType.IMAP4:
|
||||
return new ImapSynchronizer(mailAccount, _imapChangeProcessor);
|
||||
return new ImapSynchronizer(mailAccount, _imapChangeProcessor, _applicationConfiguration);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
@@ -12,6 +13,7 @@ using Wino.Core.Domain;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Synchronization;
|
||||
using Wino.Core.Integration;
|
||||
@@ -69,8 +71,65 @@ namespace Wino.Core.Synchronizers
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
public abstract Task ExecuteNativeRequestsAsync(IEnumerable<IRequestBundle<TBaseRequest>> batchedRequests, CancellationToken cancellationToken = default);
|
||||
|
||||
public abstract Task<SynchronizationResult> SynchronizeInternalAsync(SynchronizationOptions options, CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Refreshes remote mail account profile if possible.
|
||||
/// Profile picture, sender name and mailbox settings (todo) will be handled in this step.
|
||||
/// </summary>
|
||||
public virtual Task<ProfileInformation> GetProfileInformationAsync() => default;
|
||||
|
||||
/// <summary>
|
||||
/// Refreshes the aliases of the account.
|
||||
/// Only available for Gmail right now.
|
||||
/// </summary>
|
||||
protected virtual Task SynchronizeAliasesAsync() => Task.CompletedTask;
|
||||
|
||||
/// <summary>
|
||||
/// Returns the base64 encoded profile picture of the account from the given URL.
|
||||
/// </summary>
|
||||
/// <param name="url">URL to retrieve picture from.</param>
|
||||
/// <returns>base64 encoded profile picture</returns>
|
||||
protected async Task<string> GetProfilePictureBase64EncodedAsync(string url)
|
||||
{
|
||||
using var client = new HttpClient();
|
||||
|
||||
var response = await client.GetAsync(url).ConfigureAwait(false);
|
||||
var byteContent = await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false);
|
||||
|
||||
return Convert.ToBase64String(byteContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internally synchronizes the account with the given options.
|
||||
/// Not exposed and overriden for each synchronizer.
|
||||
/// </summary>
|
||||
/// <param name="options">Synchronization options.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Synchronization result that contains summary of the sync.</returns>
|
||||
protected abstract Task<SynchronizationResult> SynchronizeInternalAsync(SynchronizationOptions options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Safely updates account's profile information.
|
||||
/// Database changes are reflected after this call.
|
||||
/// </summary>
|
||||
private async Task<ProfileInformation> SynchronizeProfileInformationInternalAsync()
|
||||
{
|
||||
var profileInformation = await GetProfileInformationAsync();
|
||||
|
||||
if (profileInformation != null)
|
||||
{
|
||||
Account.SenderName = profileInformation.SenderName;
|
||||
Account.Base64ProfilePictureData = profileInformation.Base64ProfilePictureData;
|
||||
}
|
||||
|
||||
return profileInformation;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Batches network requests, executes them, and does the needed synchronization after the batch request execution.
|
||||
/// </summary>
|
||||
/// <param name="options">Synchronization options.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Synchronization result that contains summary of the sync.</returns>
|
||||
public async Task<SynchronizationResult> SynchronizeAsync(SynchronizationOptions options, CancellationToken cancellationToken = default)
|
||||
{
|
||||
try
|
||||
@@ -104,13 +163,61 @@ namespace Wino.Core.Synchronizers
|
||||
|
||||
await synchronizationSemaphore.WaitAsync(activeSynchronizationCancellationToken);
|
||||
|
||||
// Let servers to finish their job. Sometimes the servers doesn't respond immediately.
|
||||
// Handle special synchronization types.
|
||||
|
||||
bool shouldDelayExecution = batches.Any(a => a.DelayExecution);
|
||||
// Profile information sync.
|
||||
if (options.Type == SynchronizationType.UpdateProfile)
|
||||
{
|
||||
if (!Account.IsProfileInfoSyncSupported) return SynchronizationResult.Empty;
|
||||
|
||||
ProfileInformation newProfileInformation = null;
|
||||
|
||||
try
|
||||
{
|
||||
newProfileInformation = await SynchronizeProfileInformationInternalAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Failed to update profile information for {Name}", Account.Name);
|
||||
|
||||
return SynchronizationResult.Failed;
|
||||
}
|
||||
|
||||
return SynchronizationResult.Completed(null, newProfileInformation);
|
||||
}
|
||||
|
||||
// Alias sync.
|
||||
if (options.Type == SynchronizationType.Alias)
|
||||
{
|
||||
if (!Account.IsAliasSyncSupported) return SynchronizationResult.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
await SynchronizeAliasesAsync();
|
||||
|
||||
return SynchronizationResult.Empty;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Failed to update aliases for {Name}", Account.Name);
|
||||
|
||||
return SynchronizationResult.Failed;
|
||||
}
|
||||
}
|
||||
|
||||
// Let servers to finish their job. Sometimes the servers doesn't respond immediately.
|
||||
// Bug: if Outlook can't create the message in Sent Items folder before this delay,
|
||||
// message will not appear in user's inbox since it's not in the Sent Items folder.
|
||||
|
||||
bool shouldDelayExecution =
|
||||
(Account.ProviderType == MailProviderType.Outlook || Account.ProviderType == MailProviderType.Office365)
|
||||
&& batches.Any(a => a.ResynchronizationDelay > 0);
|
||||
|
||||
if (shouldDelayExecution)
|
||||
{
|
||||
await Task.Delay(2000);
|
||||
var maxDelay = batches.Aggregate(0, (max, next) => Math.Max(max, next.ResynchronizationDelay));
|
||||
|
||||
await Task.Delay(maxDelay);
|
||||
}
|
||||
|
||||
// Start the internal synchronization.
|
||||
@@ -150,6 +257,10 @@ namespace Wino.Core.Synchronizers
|
||||
private void PublishUnreadItemChanges()
|
||||
=> WeakReferenceMessenger.Default.Send(new RefreshUnreadCountsMessage(Account.Id));
|
||||
|
||||
/// <summary>
|
||||
/// Sends a message to the shell to update the synchronization progress.
|
||||
/// </summary>
|
||||
/// <param name="progress">Percentage of the progress.</param>
|
||||
public void PublishSynchronizationProgress(double progress)
|
||||
=> WeakReferenceMessenger.Default.Send(new AccountSynchronizationProgressUpdatedMessage(Account.Id, progress));
|
||||
|
||||
|
||||
@@ -4,9 +4,11 @@ using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
using Google.Apis.Gmail.v1;
|
||||
using Google.Apis.Gmail.v1.Data;
|
||||
using Google.Apis.Http;
|
||||
using Google.Apis.PeopleService.v1;
|
||||
using Google.Apis.Requests;
|
||||
using Google.Apis.Services;
|
||||
using MailKit;
|
||||
@@ -18,6 +20,7 @@ using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Exceptions;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Requests;
|
||||
using Wino.Core.Domain.Models.Synchronization;
|
||||
@@ -25,6 +28,7 @@ using Wino.Core.Extensions;
|
||||
using Wino.Core.Http;
|
||||
using Wino.Core.Integration.Processors;
|
||||
using Wino.Core.Requests;
|
||||
using Wino.Messaging.UI;
|
||||
|
||||
namespace Wino.Core.Synchronizers
|
||||
{
|
||||
@@ -37,8 +41,10 @@ namespace Wino.Core.Synchronizers
|
||||
// https://github.com/googleapis/google-api-dotnet-client/issues/2603
|
||||
private const uint MaximumAllowedBatchRequestSize = 10;
|
||||
|
||||
private readonly ConfigurableHttpClient _gmailHttpClient;
|
||||
private readonly ConfigurableHttpClient _googleHttpClient;
|
||||
private readonly GmailService _gmailService;
|
||||
private readonly PeopleServiceService _peopleService;
|
||||
|
||||
private readonly IAuthenticator _authenticator;
|
||||
private readonly IGmailChangeProcessor _gmailChangeProcessor;
|
||||
private readonly ILogger _logger = Log.ForContext<GmailSynchronizer>();
|
||||
@@ -54,15 +60,48 @@ namespace Wino.Core.Synchronizers
|
||||
HttpClientFactory = this
|
||||
};
|
||||
|
||||
_gmailHttpClient = new ConfigurableHttpClient(messageHandler);
|
||||
_googleHttpClient = new ConfigurableHttpClient(messageHandler);
|
||||
|
||||
_gmailService = new GmailService(initializer);
|
||||
_peopleService = new PeopleServiceService(initializer);
|
||||
|
||||
_authenticator = authenticator;
|
||||
_gmailChangeProcessor = gmailChangeProcessor;
|
||||
}
|
||||
|
||||
public ConfigurableHttpClient CreateHttpClient(CreateHttpClientArgs args) => _gmailHttpClient;
|
||||
public ConfigurableHttpClient CreateHttpClient(CreateHttpClientArgs args) => _googleHttpClient;
|
||||
|
||||
public override async Task<SynchronizationResult> SynchronizeInternalAsync(SynchronizationOptions options, CancellationToken cancellationToken = default)
|
||||
public override async Task<ProfileInformation> GetProfileInformationAsync()
|
||||
{
|
||||
var profileRequest = _peopleService.People.Get("people/me");
|
||||
profileRequest.PersonFields = "names,photos";
|
||||
|
||||
string senderName = string.Empty, base64ProfilePicture = string.Empty;
|
||||
|
||||
var userProfile = await profileRequest.ExecuteAsync();
|
||||
|
||||
senderName = userProfile.Names?.FirstOrDefault()?.DisplayName ?? Account.SenderName;
|
||||
|
||||
var profilePicture = userProfile.Photos?.FirstOrDefault()?.Url ?? string.Empty;
|
||||
|
||||
if (!string.IsNullOrEmpty(profilePicture))
|
||||
{
|
||||
base64ProfilePicture = await GetProfilePictureBase64EncodedAsync(profilePicture).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return new ProfileInformation(senderName, base64ProfilePicture);
|
||||
}
|
||||
|
||||
protected override async Task SynchronizeAliasesAsync()
|
||||
{
|
||||
var sendAsListRequest = _gmailService.Users.Settings.SendAs.List("me");
|
||||
var sendAsListResponse = await sendAsListRequest.ExecuteAsync();
|
||||
var remoteAliases = sendAsListResponse.GetRemoteAliases();
|
||||
|
||||
await _gmailChangeProcessor.UpdateRemoteAliasInformationAsync(Account, remoteAliases).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
protected override async Task<SynchronizationResult> SynchronizeInternalAsync(SynchronizationOptions options, CancellationToken cancellationToken = default)
|
||||
{
|
||||
_logger.Information("Internal synchronization started for {Name}", Account.Name);
|
||||
|
||||
@@ -304,6 +343,9 @@ namespace Wino.Core.Synchronizers
|
||||
if (ShouldUpdateFolder(remoteFolder, existingLocalFolder))
|
||||
{
|
||||
existingLocalFolder.FolderName = remoteFolder.Name;
|
||||
existingLocalFolder.TextColorHex = remoteFolder.Color?.TextColor;
|
||||
existingLocalFolder.BackgroundColorHex = remoteFolder.Color?.BackgroundColor;
|
||||
|
||||
updatedFolders.Add(existingLocalFolder);
|
||||
}
|
||||
else
|
||||
@@ -325,6 +367,11 @@ namespace Wino.Core.Synchronizers
|
||||
{
|
||||
await _gmailChangeProcessor.UpdateFolderAsync(folder).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (insertedFolders.Any() || deletedFolders.Any() || updatedFolders.Any())
|
||||
{
|
||||
WeakReferenceMessenger.Default.Send(new AccountFolderConfigurationUpdated(Account.Id));
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -333,7 +380,16 @@ namespace Wino.Core.Synchronizers
|
||||
}
|
||||
|
||||
private bool ShouldUpdateFolder(Label remoteFolder, MailItemFolder existingLocalFolder)
|
||||
=> existingLocalFolder.FolderName.Equals(GoogleIntegratorExtensions.GetFolderName(remoteFolder), StringComparison.OrdinalIgnoreCase) == false;
|
||||
{
|
||||
var remoteFolderName = GoogleIntegratorExtensions.GetFolderName(remoteFolder.Name);
|
||||
var localFolderName = GoogleIntegratorExtensions.GetFolderName(existingLocalFolder.FolderName);
|
||||
|
||||
bool isNameChanged = !localFolderName.Equals(remoteFolderName, StringComparison.OrdinalIgnoreCase);
|
||||
bool isColorChanged = existingLocalFolder.BackgroundColorHex != remoteFolder.Color?.BackgroundColor ||
|
||||
existingLocalFolder.TextColorHex != remoteFolder.Color?.TextColor;
|
||||
|
||||
return isNameChanged || isColorChanged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a single get request to retrieve the raw message with the given id
|
||||
@@ -539,13 +595,23 @@ namespace Wino.Core.Synchronizers
|
||||
{
|
||||
return CreateBatchedHttpBundleFromGroup(request, (items) =>
|
||||
{
|
||||
// Sent label can't be removed from mails for Gmail.
|
||||
// They are automatically assigned by Gmail.
|
||||
// When you delete sent mail from gmail web portal, it's moved to Trash
|
||||
// but still has Sent label. It's just hidden from the user.
|
||||
// Proper assignments will be done later on CreateAssignment call to mimic this behavior.
|
||||
var batchModifyRequest = new BatchModifyMessagesRequest
|
||||
{
|
||||
Ids = items.Select(a => a.Item.Id.ToString()).ToList(),
|
||||
AddLabelIds = new[] { request.ToFolder.RemoteFolderId },
|
||||
RemoveLabelIds = new[] { request.FromFolder.RemoteFolderId }
|
||||
AddLabelIds = [request.ToFolder.RemoteFolderId]
|
||||
};
|
||||
|
||||
// Only add remove label ids if the source folder is not sent folder.
|
||||
if (request.FromFolder.SpecialFolderType != SpecialFolderType.Sent)
|
||||
{
|
||||
batchModifyRequest.RemoveLabelIds = [request.FromFolder.RemoteFolderId];
|
||||
}
|
||||
|
||||
return _gmailService.Users.Messages.BatchModify(batchModifyRequest, "me");
|
||||
});
|
||||
}
|
||||
@@ -737,6 +803,8 @@ namespace Wino.Core.Synchronizers
|
||||
|
||||
var bundleRequestCount = bundle.Count();
|
||||
|
||||
var bundleTasks = new List<Task>();
|
||||
|
||||
for (int k = 0; k < bundleRequestCount; k++)
|
||||
{
|
||||
var requestBundle = bundle.ElementAt(k);
|
||||
@@ -746,37 +814,40 @@ namespace Wino.Core.Synchronizers
|
||||
|
||||
request.ApplyUIChanges();
|
||||
|
||||
// TODO: Queue is synchronous. Create a task bucket to await all processing.
|
||||
nativeBatchRequest.Queue<object>(nativeRequest, async (content, error, index, message)
|
||||
=> await ProcessSingleNativeRequestResponseAsync(requestBundle, error, message, cancellationToken).ConfigureAwait(false));
|
||||
nativeBatchRequest.Queue<object>(nativeRequest, (content, error, index, message)
|
||||
=> bundleTasks.Add(ProcessSingleNativeRequestResponseAsync(requestBundle, error, message, cancellationToken)));
|
||||
}
|
||||
|
||||
await nativeBatchRequest.ExecuteAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
await Task.WhenAll(bundleTasks);
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcessGmailRequestError(RequestError error)
|
||||
private void ProcessGmailRequestError(RequestError error, IRequestBundle<IClientServiceRequest> bundle)
|
||||
{
|
||||
if (error == null) return;
|
||||
|
||||
// OutOfMemoryException is a known bug in Gmail SDK.
|
||||
if (error.Code == 0)
|
||||
{
|
||||
bundle?.Request.RevertUIChanges();
|
||||
throw new OutOfMemoryException(error.Message);
|
||||
}
|
||||
|
||||
// Entity not found.
|
||||
if (error.Code == 404)
|
||||
{
|
||||
bundle?.Request.RevertUIChanges();
|
||||
throw new SynchronizerEntityNotFoundException(error.Message);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(error.Message))
|
||||
{
|
||||
bundle?.Request.RevertUIChanges();
|
||||
error.Errors?.ForEach(error => _logger.Error("Unknown Gmail SDK error for {Name}\n{Error}", Account.Name, error));
|
||||
|
||||
// TODO: Debug
|
||||
// throw new SynchronizerException(error.Message);
|
||||
throw new SynchronizerException(error.Message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -795,7 +866,7 @@ namespace Wino.Core.Synchronizers
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcessGmailRequestError(error);
|
||||
ProcessGmailRequestError(error, null);
|
||||
}
|
||||
catch (OutOfMemoryException)
|
||||
{
|
||||
@@ -844,7 +915,7 @@ namespace Wino.Core.Synchronizers
|
||||
HttpResponseMessage httpResponseMessage,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
ProcessGmailRequestError(error);
|
||||
ProcessGmailRequestError(error, bundle);
|
||||
|
||||
if (bundle is HttpRequestBundle<IClientServiceRequest, Message> messageBundle)
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user