345 Commits

Author SHA1 Message Date
Burak Kaan Köse
d623129d56 Merge pull request #325 from bkaankose/features/mail-list-splitter
Mail List splitter
2024-08-19 21:21:28 +02:00
Aleh Khantsevich
9cc4c33bb1 Fix multiselect and hide sizer 2024-08-19 21:16:58 +02:00
Burak Kaan Köse
c087b40d4a Renaming event handlers and fixing the search box margin issue. 2024-08-19 21:07:21 +02:00
Aleh Khantsevich
a82e074bd4 Fix merge conflicts 2024-08-19 20:50:14 +02:00
Burak Kaan Köse
3365c099bb Missing comments. 2024-08-19 20:43:26 +02:00
Aleh Khantsevich
d8705de26f Replaced setting with reset button 2024-08-19 20:41:55 +02:00
Burak Kaan Köse
3af181e736 Merge pull request #324 from bkaankose/feature/Aliases
E-mail Aliases Support
2024-08-19 20:37:58 +02:00
Burak Kaan Köse
ba6c01b7c6 Missing comments. 2024-08-19 19:16:54 +02:00
Burak Kaan Köse
7a7cdcb041 Remove json.net dependency to STJson 2024-08-19 19:16:47 +02:00
Burak Kaan Köse
09e52bf199 Remove not implemented comment. 2024-08-19 19:05:54 +02:00
Burak Kaan Köse
a8c39a1587 Fixing send draft issue with OutlookSynchronizer. 2024-08-19 19:02:33 +02:00
Aleh Khantsevich
68536d6c34 Fix padding in narrow state 2024-08-19 18:49:35 +02:00
Aleh Khantsevich
f57c27e755 Fix multiple items selected 2024-08-19 17:15:59 +02:00
Aleh Khantsevich
9a97a27c8a Init 2024-08-19 16:26:15 +02:00
Burak Kaan Köse
07bb90dda9 Refactoring outlook draft creation and sending. 2024-08-19 03:44:16 +02:00
Burak Kaan Köse
3bb156f4da Handling of OutlookSynchronizer alias. 2024-08-18 22:45:23 +02:00
Burak Kaan Köse
e13e0efcc6 Bump some nugets. 2024-08-18 22:44:55 +02:00
Burak Kaan Köse
3ae0a94159 Remove folder init progress bar in mail list page. 2024-08-18 22:27:31 +02:00
Burak Kaan Köse
eec67ec7dc Fixed an issue where re-loading messages with attachments break the included attachment encodings. 2024-08-18 22:25:29 +02:00
Burak Kaan Köse
cf51853eec Removed non-mandatory reply-to validation. 2024-08-18 01:11:23 +02:00
Burak Kaan Köse
67838b28a4 Syntactic sugar. 2024-08-18 01:06:21 +02:00
Burak Kaan Köse
bf68e3b7d5 Fix sending draft issue. 2024-08-18 01:05:43 +02:00
Burak Kaan Köse
91ed0bb8bd Ability to select alias in composer page. 2024-08-17 22:55:58 +02:00
Burak Kaan Köse
55fe791c2a Handling of missing mime downloads and mail processed messages. 2024-08-17 20:19:01 +02:00
Burak Kaan Köse
747efac2ec Reworked aliases. 2024-08-17 19:54:52 +02:00
Burak Kaan Köse
a87df2e9f6 Fixed an issue where deleting account navigates back to mail list of the next account. 2024-08-17 19:54:44 +02:00
Burak Kaan Köse
2e4a664744 More detailed ImapImplementation for ID extension. 2024-08-17 19:53:50 +02:00
Tiktack
579a22ea45 Remove self from reply all when no other recepients (#319) 2024-08-17 15:00:25 +02:00
Burak Kaan Köse
abff850427 Managing account aliases and profile synchronization for outlook and gmail. 2024-08-17 03:43:37 +02:00
Burak Kaan Köse
f1154058ba Fix ascending download for messages. QQ server issue will be handled later. 2024-08-17 00:03:45 +02:00
Burak Kaan Köse
cf9f308b7f Updating aliases during profile sync for Gmail. 2024-08-16 01:29:31 +02:00
Burak Kaan Köse
1791df236c Remove unused extension class. 2024-08-16 01:03:00 +02:00
Burak Kaan Köse
7211f94f08 Try - catch for outlook profile sync. 2024-08-16 00:40:10 +02:00
Burak Kaan Köse
7b0343c87f Added sender name comment for gmail. 2024-08-16 00:37:50 +02:00
Burak Kaan Köse
b80f0276b4 Sender Name and Profile Picture synchronization for Outlook 2024-08-16 00:37:38 +02:00
Burak Kaan Köse
8f66fcbb00 Activated contact service for Gmail to retrieve profile picture and sender name. 2024-08-15 23:57:45 +02:00
Burak Kaan Köse
fe449ee1f3 Comments for alias entity. 2024-08-15 16:13:18 +02:00
Burak Kaan Köse
34d6d95186 Including ReplyToAddress for alias. 2024-08-15 16:11:12 +02:00
Burak Kaan Köse
05ddc0660a Creating MailAccountAlias entity. 2024-08-15 16:02:02 +02:00
Burak Kaan Köse
c6047a8428 Version bump 2024-08-13 23:40:09 +02:00
Burak Kaan Köse
bc4838578e Handling null client connection while sending server response. 2024-08-13 22:57:36 +02:00
Burak Kaan Köse
548996405a Fix incorrect accounts' mails are going to different accounts. 2024-08-13 22:54:36 +02:00
Burak Kaan Köse
a9a5f0bd14 Ascending downloading of mails since some servers require it. 2024-08-13 22:54:14 +02:00
Burak Kaan Köse
ec05ff6123 Optional splash screen. 2024-08-13 19:26:24 +02:00
Burak Kaan Köse
10c7ab421b Setting exception on connection failure. 2024-08-13 16:14:25 +02:00
Burak Kaan Köse
a8a5cc53ea Merge branch 'main' of https://github.com/bkaankose/Wino-Mail 2024-08-13 16:13:25 +02:00
Burak Kaan Köse
8fe48ca438 Fixed an issue where reconnecting doesn't await the handle in the second attempt. 2024-08-13 16:12:34 +02:00
Tiktack
cbd5a515a9 Fix account signature preferences during draft creation (#314)
* Pass account ID instead of account to draft creation method, since account object can be stale.

* Configure await
2024-08-12 00:56:26 +02:00
Tiktack
5912adff93 Embedded images replaced with cid linked resources. (#313)
* Added logic to replace embedded images with linked resources

* Added alt text for images and replaced NewtonSoft with Text.Json

* Fix draft mime preparation

* Fix crashes for signatures without images.

---------

Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2024-08-11 23:58:54 +02:00
Burak Kaan Köse
983bc21448 Removing server init from the app init. Making sure server connection is established before doing a request. Handling Connecting state. 2024-08-11 15:25:40 +02:00
Burak Kaan Köse
6d08368462 Hiding reconnect flyout on clicking reconnect. 2024-08-11 15:18:23 +02:00
Burak Kaan Köse
cde7bb3524 Merged main. 2024-08-10 14:35:26 +02:00
Burak Kaan Köse
133dc91561 Prevent crashes on invalid Uri for protocol activation. 2024-08-10 14:35:01 +02:00
Tiktack
f408f59beb Improve mailto links handling (#310)
* Refactor draft creation

* try scoped namespace

* Refactor mailto protocol and revert namespaces

* Remove useless account query

* Fix typo and CC/BCC in replies

* Replace convert with existing extension

* Small fixes

* Fix CC/Bcc in replies to automatically show if needed.

* Fixed body parameter position from mailto parameters

* Fixed issue with ReplyAll self not removed
2024-08-10 14:33:02 +02:00
Burak Kaan Köse
8763bf11ab Fix typo. 2024-08-09 14:23:51 +02:00
Burak Kaan Köse
99592a52be Unregistration condition. 2024-08-09 02:02:11 +02:00
Burak Kaan Köse
25a8a52573 Remove SessionConnectedTask 2024-08-09 01:51:21 +02:00
Burak Kaan Köse
5901344459 Remove SessionConntectedTask. 2024-08-09 01:24:55 +02:00
Burak Kaan Köse
b07ae4bc42 New Crowdin updates (#303)
* New translations resources.json (French)

* New translations resources.json (Spanish)

* New translations resources.json (Catalan)

* New translations resources.json (Czech)

* New translations resources.json (Danish)

* New translations resources.json (German)

* New translations resources.json (Greek)

* New translations resources.json (Finnish)

* New translations resources.json (Italian)

* New translations resources.json (Japanese)

* New translations resources.json (Dutch)

* New translations resources.json (Polish)

* New translations resources.json (Russian)

* New translations resources.json (Turkish)

* New translations resources.json (Ukrainian)

* New translations resources.json (Chinese Simplified)

* New translations resources.json (Galician)

* New translations resources.json (Portuguese, Brazilian)

* New translations resources.json (Indonesian)
2024-08-05 01:07:55 +02:00
Burak Kaan Köse
0d9e61480a Fix typo. 2024-08-05 01:07:02 +02:00
Burak Kaan Köse
baaea96b1d Add Italian languge. 2024-08-05 01:06:19 +02:00
Burak Kaan Köse
e156cb5c2e New Crowdin updates (#302)
* New translations resources.json (French)

* New translations resources.json (Spanish)

* New translations resources.json (Catalan)

* New translations resources.json (Czech)

* New translations resources.json (Danish)

* New translations resources.json (German)

* New translations resources.json (Greek)

* New translations resources.json (Finnish)

* New translations resources.json (Italian)

* New translations resources.json (Japanese)

* New translations resources.json (Dutch)

* New translations resources.json (Polish)

* New translations resources.json (Russian)

* New translations resources.json (Turkish)

* New translations resources.json (Ukrainian)

* New translations resources.json (Chinese Simplified)

* New translations resources.json (Galician)

* New translations resources.json (Portuguese, Brazilian)

* New translations resources.json (Indonesian)
2024-08-05 01:02:19 +02:00
Burak Kaan Köse
ff77b2b3dc Full trust Wino Server implementation. (#295)
* Separation of messages. Introducing Wino.Messages library.

* Wino.Server and Wino.Packaging projects. Enabling full trust for UWP and app service connection manager basics.

* Remove debug code.

* Enable generating assembly info to deal with unsupported os platform warnings.

* Fix server-client connection.

* UIMessage communication. Single instancing for server and re-connection mechanism on suspension.

* Removed IWinoSynchronizerFactory from UWP project.

* Removal of background task service from core.

* Delegating changes to UI and triggering new background synchronization.

* Fix build error.

* Moved core lib messages to Messaging project.

* Better client-server communication. Handling of requests in the server. New synchronizer factory in the server.

* WAM broker and MSAL token caching for OutlookAuthenticator. Handling account creation for Outlook.

* WinoServerResponse basics.

* Delegating protocol activation for Gmail authenticator.

* Adding margin to searchbox to match action bar width.

* Move libraries into lib folder.

* Storing base64 encoded mime on draft creation instead of MimeMessage object. Fixes serialization/deserialization issue with S.T.Json

* Scrollbar adjustments

* WınoExpander for thread expander layout ıssue.

* Handling synchronizer state changes.

* Double init on background activation.

* FIxing packaging issues and new Wino Mail launcher protocol for activation from full thrust process.

* Remove debug deserialization.

* Remove debug code.

* Making sure the server connection is established when the app is launched.

* Thrust -> Trust string replacement...

* Rename package to Wino Mail

* Enable translated values in the server.

* Fixed an issue where toast activation can't find the clicked mail after the folder is initialized.

* Revert debug code.

* Change server background sync to every 3 minute and Inbox only synchronization.

* Revert google auth changes.

* App preferences page.

* Changing tray icon visibility on preference change.

* Start the server with invisible tray icon if set to invisible.

* Reconnect button on the title bar.

* Handling of toast actions.

* Enable x86 build for server during packaging.

* Get rid of old background tasks and v180 migration.

* Terminate client when Exit clicked in server.

* Introducing SynchronizationSource to prevent notifying UI after server tick synchronization.

* Remove confirmAppClose restricted capability and unused debug code in manifest.

* Closing the reconnect info popup when reconnect is clicked.

* Custom RetryHandler for OutlookSynchronizer and separating client/server logs.

* Running server on Windows startup.

* Fix startup exe.

* Fix for expander list view item paddings.

* Force full sync on app launch instead of Inbox.

* Fix draft creation.

* Fix an issue with custom folder sync logic.

* Reporting back account sync progress from server.

* Fix sending drafts and missing notifications for imap.

* Changing imap folder sync requirements.

* Retain file  count is set to 3.

* Disabled swipe gestures temporarily due to native crash
 with SwipeControl

* Save all attachments implementation.

* Localization for save all attachments button.

* Fix logging dates for logs.

* Fixing ARM64 build.

* Add ARM64 build config to packaging project.

* Comment out OutOfProcPDB for ARM64.

* Hnadling GONE response for Outlook folder synchronization.
2024-08-05 00:36:26 +02:00
Burak Kaan Köse
4dc225184d Bump version 1.7.8 2024-07-24 14:04:36 +02:00
Burak Kaan Köse
49a0266224 Fix an issue with rendering drafts and replies. 2024-07-24 13:18:05 +02:00
Burak Kaan Köse
7a62d96b91 Bump client version. 2024-07-23 21:39:56 +02:00
Tiktack
641454fa14 Fixed broken build after compoer fonts merge (#288) 2024-07-18 21:02:03 +02:00
Tiktack
cf2f0ec936 Ability to set composer default font (#287)
* Added ability to set Composer font

* Added missing translations and refactoring

* Remove unused methods

* Small fixes
2024-07-18 20:04:11 +02:00
Burak Kaan Köse
76375c9471 Remove calendar project from UWP sln. 2024-07-16 13:24:36 +02:00
Burak Kaan Köse
0894c56c19 Fix for prune non single draft items. 2024-07-15 00:58:20 +02:00
Burak Kaan Köse
7de89ffe57 Fixing an issue with thread creation and selected items notifications. 2024-07-15 00:00:38 +02:00
Burak Kaan Köse
e0c01343a8 Fix unread badge icon for taskbar after re-calculating unread items. 2024-07-11 15:50:37 +02:00
Burak Kaan Köse
48ed4f971c Merge branch 'main' of https://github.com/bkaankose/Wino-Mail 2024-07-09 19:17:28 +02:00
Burak Kaan Köse
9e8c8a019e Remove old patch note. 2024-07-09 19:17:25 +02:00
Burak Kaan Köse
96f4ca2cc9 1.7.6 Release 2024-07-09 19:17:14 +02:00
Burak Kaan Köse
fad59604f9 New Crowdin updates (#274)
* New translations resources.json (French)

* New translations resources.json (Spanish)

* New translations resources.json (Catalan)

* New translations resources.json (Czech)

* New translations resources.json (Danish)

* New translations resources.json (German)

* New translations resources.json (Greek)

* New translations resources.json (Italian)

* New translations resources.json (Japanese)

* New translations resources.json (Dutch)

* New translations resources.json (Polish)

* New translations resources.json (Russian)

* New translations resources.json (Turkish)

* New translations resources.json (Ukrainian)

* New translations resources.json (Chinese Simplified)

* New translations resources.json (Galician)

* New translations resources.json (Portuguese, Brazilian)

* New translations resources.json (Indonesian)
2024-07-09 19:08:21 +02:00
Burak Kaan Köse
ac0e8da0ba Fix crash on signature dialog. 2024-07-09 19:01:22 +02:00
Burak Kaan Köse
fc5c3fd73e Fix recursive issue with merged account folder menu items. 2024-07-09 01:29:58 +02:00
Burak Kaan Köse
536fbb23a1 Folder operations, Gmail folder sync improvements and rework of menu items. (#273)
* New rename folder dialog keys.

* Insfra work for folder operations and rename folder code.

* RenameFolder for Gmail.

* Fixed input dialog to take custom take for primary button.

* Missing rename for DS call.

* Outlook to throw exception in case of error.

* Implemented rename folder functionality for Outlook.

* Remove default primary text from input dialog.

* Fixed an issue where outlook folder rename does not work.

* Disable vertical scroll for composing page editor items.

* Fixing some issues with imap folder sync.

* fix copy pasta

* TODO folder update/removed overrides for shell.

* New rename folder dialog keys.

* Insfra work for folder operations and rename folder code.

* RenameFolder for Gmail.

* Fixed input dialog to take custom take for primary button.

* Missing rename for DS call.

* Outlook to throw exception in case of error.

* Implemented rename folder functionality for Outlook.

* Remove default primary text from input dialog.

* Fixed an issue where outlook folder rename does not work.

* Disable vertical scroll for composing page editor items.

* Fixing some issues with imap folder sync.

* fix copy pasta

* TODO folder update/removed overrides for shell.

* New rename folder dialog keys.

* Insfra work for folder operations and rename folder code.

* RenameFolder for Gmail.

* Fixed input dialog to take custom take for primary button.

* Missing rename for DS call.

* Outlook to throw exception in case of error.

* Implemented rename folder functionality for Outlook.

* Remove default primary text from input dialog.

* Fixed an issue where outlook folder rename does not work.

* Disable vertical scroll for composing page editor items.

* Fixing some issues with imap folder sync.

* fix copy pasta

* TODO folder update/removed overrides for shell.

* New rename folder dialog keys.

* Fixed an issue where redundant older updates causing pivots to be re-created.

* New empty folder request

* New rename folder dialog keys.

* Insfra work for folder operations and rename folder code.

* RenameFolder for Gmail.

* Fixed input dialog to take custom take for primary button.

* Missing rename for DS call.

* Outlook to throw exception in case of error.

* Implemented rename folder functionality for Outlook.

* Remove default primary text from input dialog.

* Fixed an issue where outlook folder rename does not work.

* Fixing some issues with imap folder sync.

* fix copy pasta

* TODO folder update/removed overrides for shell.

* New rename folder dialog keys.

* New rename folder dialog keys.

* New rename folder dialog keys.

* Fixed an issue where redundant older updates causing pivots to be re-created.

* New empty folder request

* Enable empty folder on base sync.

* Move updates on event listeners.

* Remove folder UI messages.

* Reworked folder synchronization for gmail.

* Loading folders on the fly as the selected account changed instead of relying on cached menu items.

* Merged account folder items, re-navigating to existing rendering page.

* - Reworked merged account menu system.
- Reworked unread item count loadings.
- Fixed back button visibility.
- Instant rendering of mails if renderer is active.
- Animation fixes.
- Menu item re-load crash/hang fixes.

* Handle folder renaming on the UI.

* Empty folder for all synchronizers.

* New execution delay mechanism and handling folder mark as read for all synchronizers.

* Revert UI changes on failure for IMAP.

* Remove duplicate translation keys.

* Cleanup.
2024-07-09 01:05:16 +02:00
Burak Kaan Köse
ac01006398 Handle BAD respose on first try for ID command for IMAP. 2024-07-07 20:16:41 +02:00
Burak Kaan Köse
ade8654cc4 Change default font to Arial for composer. 2024-07-07 19:57:15 +02:00
Burak Kaan Köse
8e03f26fb5 Replace web view editor icon and tooltip. 2024-07-07 19:57:07 +02:00
Burak Kaan Köse
dab51bef7b NRE on invoke script. 2024-07-07 18:09:13 +02:00
Burak Kaan Köse
bea7fb5fe5 Merge branch 'main' of https://github.com/bkaankose/Wino-Mail 2024-07-07 18:08:19 +02:00
Tiktack
d6b3240506 Migrate from Quill to Jodit (#264)
* Refactored JS folder.
Removed useless files

* Add border to signature webview ( Fix for light theme)

* migrated quill to jodit(links not working)

* Removed quill subfolder

* removed table styles and fixed trigger color

* disable addaptive toolbar

* Remove direction button

* MinHeight, Toolbar toggle, style for combobox

* Added reference mail to replies and forward

* Command bar in compose page
Fixed align behaviour with Jodit

* Fix theme toggle in composer

* switch cc and to in mail chain

* default selected value for aligment

* make CC/To/From to be mailto links

* Added drag and drop for images
Fixed dropzones visual states
Corrected border radius
Fixed null reference exception when event dispatched when chromium still not initialized
2024-07-07 18:04:53 +02:00
Burak Kaan Köse
19e53d8bc8 Merge branch 'features/code-quality-js' of https://github.com/Tiktack/Wino-Mail 2024-07-07 17:56:56 +02:00
Aleh Khantsevich
5923d72803 Added drag and drop for images
Fixed dropzones visual states
Corrected border radius
Fixed null reference exception when event dispatched when chromium still not initialized
2024-07-07 01:42:12 +02:00
Aleh Khantsevich
8cde976358 make CC/To/From to be mailto links 2024-07-06 22:54:54 +02:00
Aleh Khantsevich
256a5b50ac default selected value for aligment 2024-07-06 19:34:46 +02:00
Aleh Khantsevich
8b236f68f4 switch cc and to in mail chain 2024-07-06 19:16:04 +02:00
Aleh Khantsevich
c18f6d3978 Fix theme toggle in composer 2024-07-06 18:23:44 +02:00
Aleh Khantsevich
e65733754c Command bar in compose page
Fixed align behaviour with Jodit
2024-07-06 00:52:19 +02:00
Aleh Khantsevich
4505630896 Added reference mail to replies and forward 2024-07-03 23:54:19 +02:00
Aleh Khantsevich
044804143f MinHeight, Toolbar toggle, style for combobox 2024-07-03 02:10:28 +02:00
Aleh Khantsevich
1e9d7c9b93 Remove direction button 2024-07-02 02:52:56 +02:00
Aleh Khantsevich
573fe3cad3 disable addaptive toolbar 2024-07-02 02:26:07 +02:00
Aleh Khantsevich
cd3880c85c removed table styles and fixed trigger color 2024-07-02 02:14:59 +02:00
Burak Kaan Köse
02cd8ed7ae Updated Reaadme 2024-07-01 22:48:45 +02:00
Aleh Khantsevich
3d69f96b96 Removed quill subfolder 2024-07-01 01:28:18 +02:00
Aleh Khantsevich
963a15abe7 migrated quill to jodit(links not working) 2024-07-01 00:57:07 +02:00
Burak Kaan Köse
40542f0461 Introducing new app icon. 2024-06-28 01:39:43 +02:00
Aleh Khantsevich
bfc2af71a4 Add border to signature webview ( Fix for light theme) 2024-06-27 17:03:07 +02:00
Aleh Khantsevich
35142bb61d Refactored JS folder.
Removed useless files
2024-06-27 14:17:05 +02:00
Burak Kaan Köse
39626e0df9 Couple UI Fixes (#255)
- Disabled UI navigation cache for all pages.
- Restore the renderer<>composer page animation back.
- IdlePage functionality into mail list page.
- Couple bugfixes.
2024-06-26 20:00:10 +02:00
Burak Kaan Köse
ca40730600 Merge branch 'Tiktack-features/UI-refresh' 2024-06-25 22:50:06 +02:00
Burak Kaan Köse
4158e196d6 Add visual state for moving To,CC and BCC to vertical line when the page is small enough. 2024-06-25 22:39:35 +02:00
Burak Kaan Köse
1516e800dd Merge branch 'features/UI-refresh' of https://github.com/Tiktack/Wino-Mail into Tiktack-features/UI-refresh 2024-06-25 22:20:38 +02:00
Aleh Khantsevich
0b96f69a1d Fix backgrounds 2024-06-25 00:37:09 +02:00
Aleh Khantsevich
bb418e51d4 fix compose page spacing 2024-06-24 01:38:50 +02:00
Aleh Khantsevich
5fb23ab8bf simplify xaml spacing 2024-06-24 01:36:53 +02:00
Burak Kaan Köse
117b01c48b Fix for IMAP missing Inbox folder type. 2024-06-24 01:32:07 +02:00
Aleh Khantsevich
18719815a3 Merge main 2024-06-24 01:30:20 +02:00
Aleh Khantsevich
f795595107 Fix narrowed view bug 2024-06-24 00:57:23 +02:00
Burak Kaan Köse
be3f9465eb Fix sharing wino logs. 2024-06-24 00:36:21 +02:00
Aleh Khantsevich
c598daab9b Fixed command bar open state 2024-06-24 00:20:54 +02:00
Burak Kaan Köse
438b25672f Release 1.7.4. 2024-06-23 23:32:04 +02:00
Aleh Khantsevich
1e12ddd8e2 Fix custom themes and drag/drop 2024-06-23 23:04:42 +02:00
Aleh Khantsevich
dccf55d57a Added separated zones 2024-06-23 13:32:06 +02:00
Burak Kaan Köse
3397845ccc Fixed an issue where empty listview drags focus to search bar automatically. 2024-06-22 00:43:48 +02:00
Burak Kaan Köse
82ae13ba3e Fixed Archive implementation for Gmail. 2024-06-21 23:48:03 +02:00
Burak Kaan Köse
8c830761f3 Fixed a rare issue with move function fails to re-synchronize the item properly to target folder. 2024-06-21 23:44:59 +02:00
Burak Kaan Köse
ad5c134887 Revert "Get rid of additional progress bar loading in list page under the command bar."
This reverts commit cfdd32708a.
2024-06-21 22:39:44 +02:00
Burak Kaan Köse
150bf124a9 Imap client pool improvements and implementation of MaxConcurrentClients. 2024-06-21 04:27:44 +02:00
Burak Kaan Köse
1c96c0ccbf Reworked IMAP folder synchronization logic. Gained 4x and fixed bunch of bugs around it. 2024-06-21 04:27:17 +02:00
Burak Kaan Köse
cf8ad3d697 Disable synchronization for default imap folders. 2024-06-21 04:25:32 +02:00
Burak Kaan Köse
5b723ec954 MaxConcurrentClients for IMAP model. 2024-06-21 04:25:07 +02:00
Burak Kaan Köse
633c708c33 Translation issue on save config text for missing system folder setup dialog. 2024-06-21 04:24:46 +02:00
Burak Kaan Köse
e4784108f7 Default client size for imap client pool. 2024-06-21 04:24:31 +02:00
Burak Kaan Köse
b4103a4edb Fixed an issue where setting archive folder as special folder does not update the configuration. 2024-06-21 04:24:04 +02:00
Burak Kaan Köse
cfdd32708a Get rid of additional progress bar loading in list page under the command bar. 2024-06-21 04:10:55 +02:00
Burak Kaan Köse
8e97c1e9e8 Removed old code from imap setup dialogs pages. 2024-06-21 02:58:12 +02:00
Burak Kaan Köse
e009bebfaf Fixed an issue where local draft is deleted via hover over action or delete button instead of discard button. Disabled discarding local drafts in compose page. 2024-06-21 02:11:18 +02:00
Burak Kaan Köse
d3d190989d Enabled portuguese-brazil language. 2024-06-21 01:22:03 +02:00
Burak Kaan Köse
1b36b52019 New Crowdin updates (#244)
* New translations resources.json (French)

* New translations resources.json (Spanish)

* New translations resources.json (Catalan)

* New translations resources.json (Czech)

* New translations resources.json (Danish)

* New translations resources.json (German)

* New translations resources.json (Italian)

* New translations resources.json (Japanese)

* New translations resources.json (Dutch)

* New translations resources.json (Polish)

* New translations resources.json (Russian)

* New translations resources.json (Turkish)

* New translations resources.json (Ukrainian)

* New translations resources.json (Chinese Simplified)

* New translations resources.json (Greek)

* New translations resources.json (Indonesian)

* New translations resources.json (Galician)

* New translations resources.json (Portuguese, Brazilian)
2024-06-21 01:15:26 +02:00
Burak Kaan Köse
e526e96e2d Fixed an issue where specifying imap auth method is ignored during authentication other than Auto. 2024-06-21 01:13:25 +02:00
Burak Kaan Köse
1659d74938 Release imap client only when the pool fails to provide one. 2024-06-21 00:32:45 +02:00
Burak Kaan Köse
f7161dc39b Pre-post authentication ID extension for IMAP. Some servers require it pre-auth looks like. 2024-06-18 02:22:55 +02:00
Burak Kaan Köse
d8ea41e4dd Version bump. 2024-06-18 00:33:28 +02:00
Burak Kaan Köse
fe0a03db2f Fix crash on stream flush. 2024-06-17 10:16:38 +02:00
Burak Kaan Köse
49afed7751 Reworked IMAP setup flow. Implemented easy way to share protocol log on failure if possible. 2024-06-17 02:16:06 +02:00
Burak Kaan Köse
a788b1706b Remove 'Rate' button from the shell menu. 2024-06-17 02:03:45 +02:00
Burak Kaan Köse
d57fd20ca2 Fixed a crash for IMAP when there are no sent and draft folder set. 2024-06-16 23:18:21 +02:00
Burak Kaan Köse
5ecc1b09c8 Merge pull request #223 from Tiktack/Fix/Scrollbaroverlay-signature-webview-size
Fix overlay scrollbars and signature webview size
2024-06-16 22:22:18 +02:00
Burak Kaan Köse
f1dfc9666b Merge pull request #219 from Tiktack/Bugs/AddLinkFix
Make HyperLink focusable in Signature Editor
2024-06-16 22:22:07 +02:00
Aleh Khantsevich
b503584431 Fix overlay scrollbars and signature webview size 2024-06-15 16:19:06 +02:00
Aleh Khantsevich
0dfe1c8e3a Remove semicolon 2024-06-14 01:40:05 +02:00
Aleh Khantsevich
c5630d90ec Made HyperLink focusable 2024-06-14 01:37:56 +02:00
Burak Kaan Köse
f8973a3cf7 Updated 1.7.2 patch notes. 2024-06-14 01:08:10 +02:00
Burak Kaan Köse
228be8376f Rename database to match the version. 2024-06-14 01:08:00 +02:00
Burak Kaan Köse
3fee3b0224 Fix draft and junk folder's incorrect unread badge. 2024-06-14 00:52:36 +02:00
Burak Kaan Köse
b4e705b347 Merge pull request #218 from bkaankose/l10n_main
New Crowdin updates
2024-06-14 00:40:54 +02:00
Burak Kaan Köse
51e59bebfc New translations resources.json (Indonesian) 2024-06-14 00:40:08 +02:00
Burak Kaan Köse
a56ac31f4b New translations resources.json (Greek) 2024-06-14 00:40:07 +02:00
Burak Kaan Köse
af05f081d2 New translations resources.json (Chinese Simplified) 2024-06-14 00:40:06 +02:00
Burak Kaan Köse
b97d79d261 New translations resources.json (Ukrainian) 2024-06-14 00:40:05 +02:00
Burak Kaan Köse
d227e6339f New translations resources.json (Turkish) 2024-06-14 00:40:04 +02:00
Burak Kaan Köse
74c503fea0 New translations resources.json (Russian) 2024-06-14 00:40:03 +02:00
Burak Kaan Köse
ed8b0c4d3c New translations resources.json (Polish) 2024-06-14 00:40:02 +02:00
Burak Kaan Köse
cbb17e92f0 New translations resources.json (Dutch) 2024-06-14 00:40:01 +02:00
Burak Kaan Köse
f9d64cf777 New translations resources.json (Japanese) 2024-06-14 00:40:00 +02:00
Burak Kaan Köse
7fdd6d19cf New translations resources.json (Italian) 2024-06-14 00:39:59 +02:00
Burak Kaan Köse
60ca252b63 New translations resources.json (German) 2024-06-14 00:39:58 +02:00
Burak Kaan Köse
2027837c18 New translations resources.json (Danish) 2024-06-14 00:39:57 +02:00
Burak Kaan Köse
67904568b1 New translations resources.json (Czech) 2024-06-14 00:39:56 +02:00
Burak Kaan Köse
afbc559a47 New translations resources.json (Catalan) 2024-06-14 00:39:55 +02:00
Burak Kaan Köse
67c312642c New translations resources.json (Spanish) 2024-06-14 00:39:54 +02:00
Burak Kaan Köse
89eb007e43 New translations resources.json (French) 2024-06-14 00:39:52 +02:00
Burak Kaan Köse
88c3f3204b Fix chinese translations. 2024-06-14 00:39:24 +02:00
Burak Kaan Köse
052ab98cd3 Fixing Gmail replies... 2024-06-14 00:39:18 +02:00
Burak Kaan Köse
cd01c0e31b Release 1.7.2 2024-06-14 00:23:17 +02:00
Burak Kaan Köse
c3d3228f65 Fixing signature dialog sizing issues and light theme switch. 2024-06-14 00:07:51 +02:00
Burak Kaan Köse
f04647192f Merge pull request #217 from Tiktack/features/SignaturesImprovements
Re-implemented signature page to support multiple signatures
2024-06-13 23:41:08 +02:00
Burak Kaan Köse
c00f0c9f52 Fixed an issue where notification payloads don't carry remote folder id with them. 2024-06-13 23:38:02 +02:00
Burak Kaan Köse
690e04c377 Fixed an issue where merged accounts are counting as 1 account for premium limit. 2024-06-13 22:51:29 +02:00
Burak Kaan Köse
545880dcce Fixing notification actions. 2024-06-13 22:48:33 +02:00
Aleh Khantsevich
fedf5d2203 Fixed tooltips 2024-06-13 03:13:53 +02:00
Aleh Khantsevich
5242e55826 fixed some app bar buttons 2024-06-13 02:49:54 +02:00
Aleh Khantsevich
1bf86e73a7 Fix merge conflicts 2024-06-13 01:42:19 +02:00
Aleh Khantsevich
c3fe72f561 Added scrollviewer to signatures settings 2024-06-13 01:32:32 +02:00
Aleh Khantsevich
b54555a4f7 Re-implemented signature page to support different signatures for different actions 2024-06-13 00:51:59 +02:00
Burak Kaan Köse
4c080360a7 Delay after-execution-sync for Outlook only. 2024-06-12 02:12:39 +02:00
Burak Kaan Köse
fdea15eef4 Fix gmail sending. 2024-06-12 02:12:23 +02:00
Burak Kaan Köse
5a4dd97abe Fix gmail single mime download error. 2024-06-12 00:32:04 +02:00
Burak Kaan Köse
e47e3d936b Fixing Outlook sending issue. 2024-06-11 22:48:18 +02:00
Burak Kaan Köse
0e9fd4373e Create SendDraftRequest implementation and handle missing SentFolder synchronization. 2024-06-11 14:19:08 +02:00
Burak Kaan Köse
69a10c754a Implement sending functionality for Outlook synchronizer. 2024-06-11 14:16:57 +02:00
Burak Kaan Köse
a8ba965c0d 1.7.2 release version update for manifest. 2024-06-11 14:16:30 +02:00
Burak Kaan Köse
847aed3519 Fix missing translation error on app updated background task message. 2024-06-11 14:16:16 +02:00
Burak Kaan Köse
fed9345bea Fix requiring sender name in the initial account setup dialog for IMAP. 2024-06-10 16:22:35 +02:00
Burak Kaan Köse
d71b6d0ab0 Fix #164 2024-06-09 02:59:07 +02:00
Burak Kaan Köse
40e5521fbf Merge pull request #212 from bkaankose/feature/AccountOrdering
[Feature] Account re-ordering.
2024-06-09 02:41:15 +02:00
Burak Kaan Köse
c7781d2e75 Implemented a new dialog for account re-ordering and required apis. 2024-06-09 02:37:30 +02:00
Burak Kaan Köse
0ccf67000c Merge pull request #210 from bkaankose/l10n_main
New Crowdin updates
2024-06-08 00:00:36 +02:00
Burak Kaan Köse
f4e81aca9d rebased 2024-06-08 00:00:05 +02:00
Burak Kaan Köse
2d654cf759 New translations resources.json (Indonesian) 2024-06-07 23:59:58 +02:00
Burak Kaan Köse
0b728162ae New translations resources.json (Greek) 2024-06-07 23:59:57 +02:00
Burak Kaan Köse
f52b426652 New translations resources.json (Chinese Simplified) 2024-06-07 23:59:56 +02:00
Burak Kaan Köse
ad0528d763 New translations resources.json (Ukrainian) 2024-06-07 23:59:56 +02:00
Burak Kaan Köse
263adcf2b5 New translations resources.json (Turkish) 2024-06-07 23:59:55 +02:00
Burak Kaan Köse
b201e274f1 New translations resources.json (Russian) 2024-06-07 23:59:54 +02:00
Burak Kaan Köse
c1a6a73b7d New translations resources.json (Polish) 2024-06-07 23:59:53 +02:00
Burak Kaan Köse
ed4764cc70 New translations resources.json (Dutch) 2024-06-07 23:59:52 +02:00
Burak Kaan Köse
8d84b3adbc New translations resources.json (Japanese) 2024-06-07 23:59:51 +02:00
Burak Kaan Köse
35db674c88 New translations resources.json (Italian) 2024-06-07 23:59:50 +02:00
Burak Kaan Köse
3e1850a713 New translations resources.json (German) 2024-06-07 23:59:49 +02:00
Burak Kaan Köse
8c625c0ecd New translations resources.json (Danish) 2024-06-07 23:59:48 +02:00
Burak Kaan Köse
bf1de8e7a4 Initial setup for account ordering. 2024-06-07 23:59:47 +02:00
Burak Kaan Köse
8c2dca3770 New translations resources.json (Czech) 2024-06-07 23:59:47 +02:00
Burak Kaan Köse
23adbddfb7 New translations resources.json (Catalan) 2024-06-07 23:59:46 +02:00
Burak Kaan Köse
b1b6b64e68 New translations resources.json (Spanish) 2024-06-07 23:59:45 +02:00
Burak Kaan Köse
0c7909df09 New translations resources.json (French) 2024-06-07 23:59:44 +02:00
Burak Kaan Köse
641bfd8c06 Sender name implementation. 2024-06-07 23:58:51 +02:00
Burak Kaan Köse
52140c3208 Enable ARM configuration. 2024-06-07 02:30:42 +02:00
Burak Kaan Köse
1baa9173cb Fixing the build issue that prevents Release. 2024-06-07 02:01:30 +02:00
Burak Kaan Köse
26749c2116 Update ms graph library to latest in core library. 2024-06-07 01:56:28 +02:00
Burak Kaan Köse
a1ecb9ad39 Remove redundant shell loading event. 2024-06-07 01:11:21 +02:00
Burak Kaan Köse
b398fde24e Separation of change processors. 2024-06-02 21:35:03 +02:00
Burak Kaan Köse
a5767b60fb AppCenter update and reverting back ms graph update to make app compile in Release. 2024-06-02 14:49:34 +02:00
Burak Kaan Köse
ef196c384c Initial setup for account ordering. 2024-05-30 02:34:54 +02:00
Burak Kaan Köse
920def7446 Fix #192 2024-05-30 01:41:43 +02:00
Burak Kaan Köse
bec98dcaa2 Remove unused build configurations 2024-05-30 01:14:23 +02:00
Burak Kaan Köse
747be07322 Added Indonesian and Greek languages. 2024-05-30 01:03:03 +02:00
Burak Kaan Köse
c1fc6f0bce Merge pull request #204 from bkaankose/l10n_main
New Crowdin updates
2024-05-30 00:22:19 +02:00
Burak Kaan Köse
851c42e630 New translations resources.json (Indonesian) 2024-05-30 00:21:10 +02:00
Burak Kaan Köse
4e5a4a9c17 New translations resources.json (Greek) 2024-05-30 00:21:09 +02:00
Burak Kaan Köse
df19d500de New translations resources.json (Polish) 2024-05-30 00:21:05 +02:00
Burak Kaan Köse
4fd4c9802e New translations resources.json (Italian) 2024-05-30 00:21:03 +02:00
Burak Kaan Köse
23d0eeab16 Prevent downloading existing messages for Outlook. 2024-05-25 17:00:52 +02:00
Burak Kaan Köse
b66557f3be Merge branch 'main' of https://github.com/bkaankose/Wino-Mail 2024-05-25 16:59:36 +02:00
Burak Kaan Köse
580586cab3 Upgrade core packages to latest version. 2024-05-25 16:59:32 +02:00
Burak Kaan Köse
9a97ef1dad Merge pull request #197 from bkaankose/l10n_main
New Crowdin updates
2024-05-25 12:04:33 +02:00
Burak Kaan Köse
b4f7503d85 New translations resources.json (Greek) 2024-05-25 12:03:56 +02:00
Burak Kaan Köse
b89406a89a New translations resources.json (Chinese Simplified) 2024-05-25 12:03:55 +02:00
Burak Kaan Köse
932cdae22e New translations resources.json (Ukrainian) 2024-05-25 12:03:54 +02:00
Burak Kaan Köse
34ef86cfff New translations resources.json (Turkish) 2024-05-25 12:03:53 +02:00
Burak Kaan Köse
023bace2a9 New translations resources.json (Russian) 2024-05-25 12:03:52 +02:00
Burak Kaan Köse
467b63cffb New translations resources.json (Polish) 2024-05-25 12:03:51 +02:00
Burak Kaan Köse
49ffb0fa68 New translations resources.json (Dutch) 2024-05-25 12:03:50 +02:00
Burak Kaan Köse
04984dea98 New translations resources.json (Japanese) 2024-05-25 12:03:49 +02:00
Burak Kaan Köse
78e9a768b4 New translations resources.json (Italian) 2024-05-25 12:03:48 +02:00
Burak Kaan Köse
401f877388 New translations resources.json (German) 2024-05-25 12:03:47 +02:00
Burak Kaan Köse
b3ba1aa3b9 New translations resources.json (Danish) 2024-05-25 12:03:46 +02:00
Burak Kaan Köse
ae76aebe24 New translations resources.json (Czech) 2024-05-25 12:03:45 +02:00
Burak Kaan Köse
b5e1bf2867 New translations resources.json (Catalan) 2024-05-25 12:03:44 +02:00
Burak Kaan Köse
fb3a0da54f New translations resources.json (Spanish) 2024-05-25 12:03:43 +02:00
Burak Kaan Köse
7d197f405d New translations resources.json (French) 2024-05-25 12:03:42 +02:00
Burak Kaan Köse
bc7af3a68b Merge pull request #191 from Tiktack/features/dropzone
Added attachments drag & drop support
2024-05-22 23:35:37 +02:00
Burak Kaan Köse
120e79229a New updated release notes. 2024-05-22 23:06:37 +02:00
Burak Kaan Köse
f0e4bbcda9 Update db name for new release. 2024-05-22 23:04:54 +02:00
Aleh Khantsevich
57e31c1dfb Added attachments drag & drop support 2024-05-22 02:10:14 +02:00
Burak Kaan Köse
8f2f414f5e Fixed an issue where draft unique id tracking prevents reply draft to be removed from thread until the list is refreshed. 2024-05-21 23:48:44 +02:00
Burak Kaan Köse
879f91693e Remove commented debug code. 2024-05-21 23:48:06 +02:00
Burak Kaan Köse
0c504b52e4 Hide vertical scroll in composer page 2024-05-21 23:24:06 +02:00
Burak Kaan Köse
bbaa5f9fa8 Fix invisible signature page content. 2024-05-21 23:07:15 +02:00
Burak Kaan Köse
2a9f7fde28 Added Chinese language. 2024-05-21 22:58:33 +02:00
Burak Kaan Köse
0ec7c87851 Merge pull request #187 from bkaankose/l10n_main
New Crowdin updates
2024-05-12 02:04:33 +02:00
Burak Kaan Köse
cf515abc4c New translations resources.json (Greek) 2024-05-12 02:04:22 +02:00
Burak Kaan Köse
99cab08ab7 New translations resources.json (Chinese Simplified) 2024-05-12 02:04:21 +02:00
Burak Kaan Köse
e60d40ee9c New translations resources.json (Ukrainian) 2024-05-12 02:04:21 +02:00
Burak Kaan Köse
c90fa68f16 New translations resources.json (Turkish) 2024-05-12 02:04:20 +02:00
Burak Kaan Köse
61ae86e927 New translations resources.json (Russian) 2024-05-12 02:04:19 +02:00
Burak Kaan Köse
86c995906c New translations resources.json (Polish) 2024-05-12 02:04:18 +02:00
Burak Kaan Köse
a77b88aaf6 New translations resources.json (Dutch) 2024-05-12 02:04:17 +02:00
Burak Kaan Köse
0d288f3206 New translations resources.json (Japanese) 2024-05-12 02:04:16 +02:00
Burak Kaan Köse
d9d6244931 New translations resources.json (Italian) 2024-05-12 02:04:15 +02:00
Burak Kaan Köse
4d984f0524 New translations resources.json (German) 2024-05-12 02:04:14 +02:00
Burak Kaan Köse
b456b0143b New translations resources.json (Danish) 2024-05-12 02:04:13 +02:00
Burak Kaan Köse
3ebcfd5598 New translations resources.json (Czech) 2024-05-12 02:04:12 +02:00
Burak Kaan Köse
745ea3509e New translations resources.json (Catalan) 2024-05-12 02:04:11 +02:00
Burak Kaan Köse
8f5d4e5bc2 New translations resources.json (Spanish) 2024-05-12 02:04:10 +02:00
Burak Kaan Köse
acd7d3bbac New translations resources.json (French) 2024-05-12 02:04:09 +02:00
Burak Kaan Köse
f3bd6598e7 Merge pull request #181 from Tiktack/visual-adjustments
Improved attachments UI and added filter option "Has files"
2024-05-11 01:07:00 +02:00
Burak Kaan Köse
ce48fdc445 Merge pull request #185 from Tiktack/183-ui-improvements
Search improvements
2024-05-09 03:58:50 +02:00
Burak Kaan Köse
5aea223c14 Fixed double init issue when performing search. 2024-05-09 03:40:19 +02:00
Aleh Khantsevich
1f59d3179c Added SearchPivotName trnslation resource 2024-05-09 01:11:02 +02:00
Aleh Khantsevich
1f6e1db695 Fyx typo and formating 2024-05-09 00:51:16 +02:00
Aleh Khantsevich
5b46c372ab Added search pivot 2024-05-08 23:59:50 +02:00
Aleh Khantsevich
f143d3e1c2 Changed placegolders to start from capital latter 2024-05-08 20:01:55 +02:00
Aleh Khantsevich
c7639309ef Fixed progress ring, width of empty results and message for empty results with filters 2024-05-08 19:26:47 +02:00
Aleh Khantsevich
b788531e47 Reset all filters after navigation and clear button re-initializing mail list 2024-05-08 02:05:42 +02:00
Aleh Khantsevich
00fa2ca804 Fix formating issues and styles 2024-05-05 17:41:49 +02:00
Aleh Khantsevich
74cdf09ebc Added filter option has files 2024-05-05 17:01:40 +02:00
Aleh Khantsevich
80ec12740a Fixed scrollbar 2024-05-05 02:38:51 +02:00
Aleh Khantsevich
a0002ff97b fixed attachments layout and size and added progressbar 2024-05-05 02:15:29 +02:00
Aleh Khantsevich
2cb0db02e3 Fixed crash for adding files 2024-05-04 12:33:27 +02:00
Burak Kaan Köse
bed8d71f7e Merge pull request #177 from Tiktack/fix-dark-scrollbar-webview
Fixed scrollbars in a dark theme to be accessible
2024-05-03 16:55:05 +02:00
Aleh Khantsevich
668b385a10 And fluent overlay scrollbars 2024-05-03 12:36:58 +02:00
Aleh Khantsevich
d96df469a4 Fixed scrollbars in a dark theme to be accessible 2024-05-02 20:38:00 +02:00
Burak Kaan Köse
8edbe1aa2c Merge pull request #176 from bkaankose/l10n_main
New Crowdin updates
2024-05-02 00:27:08 +02:00
Burak Kaan Köse
99ece9a61a New translations resources.json (Chinese Simplified) 2024-05-02 00:26:26 +02:00
Burak Kaan Köse
4b5253dd6b New translations resources.json (Ukrainian) 2024-05-02 00:26:25 +02:00
Burak Kaan Köse
5e10294a16 New translations resources.json (Turkish) 2024-05-02 00:26:24 +02:00
Burak Kaan Köse
226d2069d9 New translations resources.json (Russian) 2024-05-02 00:26:23 +02:00
Burak Kaan Köse
8d1365b712 New translations resources.json (Polish) 2024-05-02 00:26:22 +02:00
Burak Kaan Köse
45624d905e New translations resources.json (Dutch) 2024-05-02 00:26:21 +02:00
Burak Kaan Köse
a5d9c931ca New translations resources.json (Japanese) 2024-05-02 00:26:20 +02:00
Burak Kaan Köse
f0db2b2f6e New translations resources.json (Italian) 2024-05-02 00:26:19 +02:00
Burak Kaan Köse
cde5913ace New translations resources.json (German) 2024-05-02 00:26:18 +02:00
Burak Kaan Köse
ceea9fc501 New translations resources.json (Danish) 2024-05-02 00:26:17 +02:00
Burak Kaan Köse
eb678b4533 New translations resources.json (Czech) 2024-05-02 00:26:16 +02:00
Burak Kaan Köse
dcbe8bb3dc New translations resources.json (Catalan) 2024-05-02 00:26:15 +02:00
Burak Kaan Köse
555310a4ca New translations resources.json (Spanish) 2024-05-02 00:26:14 +02:00
Burak Kaan Köse
3a57358f58 New translations resources.json (French) 2024-05-02 00:26:13 +02:00
Burak Kaan Köse
9982ba2fec Merge pull request #175 from Tiktack/improve-unsubscribe-with-oneclick
Added support for one click unsubscribe with confirmation dialog.
2024-05-02 00:24:11 +02:00
Burak Kaan Köse
11b652f851 Introduced IUnsubscriptionService and replaced the usage in rendering page view model. 2024-05-02 00:21:29 +02:00
Burak Kaan Köse
380950a615 Merge pull request #173 from Tiktack/threading-performance
Improve performance of API Threading strategy.
2024-05-02 00:14:04 +02:00
Burak Kaan Köse
e8b07738a5 Replaced WinoMail to Wino in EN resources. 2024-05-01 23:46:56 +02:00
Aleh Khantsevich
9d1163e73e Changed mailto link to redirect to compose page. 2024-05-01 15:26:34 +02:00
Aleh Khantsevich
e2f0c73bab Added support for one click unsubscribe with confirmation dialog. 2024-05-01 14:23:23 +02:00
Aleh Khantsevich
183873afff Small fixes 2024-04-30 00:56:00 +02:00
Aleh Khantsevich
b356475741 Replace one query per one email with just one queyr for all mails 2024-04-30 00:04:59 +02:00
Burak Kaan Köse
279bae115a Merge pull request #170 from chenseanxy/main 2024-04-29 01:20:05 +02:00
Chen Xinyang
82bb5a96ad Fix message on autoconfig failure 2024-04-29 01:22:34 +03:00
Burak Kaan Köse
a4e9ffcc99 Merge pull request #169 from bkaankose/l10n_main
New Crowdin updates
2024-04-29 00:18:28 +02:00
Burak Kaan Köse
1c25427c5c New translations resources.json (Chinese Simplified) 2024-04-29 00:17:55 +02:00
Burak Kaan Köse
2ec22eb6cd New translations resources.json (Ukrainian) 2024-04-29 00:17:54 +02:00
Burak Kaan Köse
2ff508607d New translations resources.json (Turkish) 2024-04-29 00:17:53 +02:00
Burak Kaan Köse
69a34c65f7 New translations resources.json (Russian) 2024-04-29 00:17:52 +02:00
Burak Kaan Köse
f34c1520a4 New translations resources.json (Polish) 2024-04-29 00:17:51 +02:00
Burak Kaan Köse
f3fa8eec50 New translations resources.json (Dutch) 2024-04-29 00:17:50 +02:00
Burak Kaan Köse
9baa9b1dd6 New translations resources.json (Japanese) 2024-04-29 00:17:49 +02:00
Burak Kaan Köse
c1c1af1ded New translations resources.json (Italian) 2024-04-29 00:17:48 +02:00
Burak Kaan Köse
4a8c1b7de4 New translations resources.json (German) 2024-04-29 00:17:47 +02:00
Burak Kaan Köse
1f35165919 New translations resources.json (Danish) 2024-04-29 00:17:46 +02:00
Burak Kaan Köse
2e85508426 New translations resources.json (Czech) 2024-04-29 00:17:45 +02:00
Burak Kaan Köse
631b218057 New translations resources.json (Catalan) 2024-04-29 00:17:44 +02:00
Burak Kaan Köse
e8cfc88d83 New translations resources.json (Spanish) 2024-04-29 00:17:44 +02:00
Burak Kaan Köse
78502a0cd0 New translations resources.json (French) 2024-04-29 00:17:43 +02:00
Burak Kaan Köse
2bcb6a146b Merge pull request #163 from Tiktack/unread-folder-should-not-read-email-automatically
Prevent Unread folder to read All emails automatically
2024-04-28 20:42:50 +02:00
Burak Kaan Köse
ae474b5e5b Fixed 'Delete' action not deleting the item after it's been marked as read. 2024-04-28 20:38:22 +02:00
Burak Kaan Köse
babed18af0 Added hashset uniqueid mail check to prevent gmail unread folder items to be removed on next item selection. 2024-04-28 20:20:29 +02:00
Burak Kaan Köse
3fa7e3e36d Merge pull request #168 from Tiktack/language-time-page
Language & Time page
2024-04-28 18:08:39 +02:00
Burak Kaan Köse
45587d5f15 Merge pull request #161 from Tiktack/titlebar-should-be-draggable
Fixed dead zone in title bar in settings to be draggable
2024-04-28 17:52:55 +02:00
Burak Kaan Köse
e98f6997ca Merge pull request #167 from Tiktack/wino165-commandbar-issues
Fix commend bar issues
2024-04-28 17:50:02 +02:00
Aleh Khantsevich
21d1b71653 Remove seconds from reading page 2024-04-28 00:31:25 +02:00
Aleh Khantsevich
afd7b5650f Removed useless command paramter and duplicate registration 2024-04-27 16:29:26 +02:00
Aleh Khantsevich
a0687d555a Added translations. Strongly typed paramter for setting navigation.
Titles now uses translation for breadcrumb
2024-04-27 15:27:02 +02:00
Aleh Khantsevich
f543953389 Added language & time page 2024-04-27 13:50:18 +02:00
Aleh Khantsevich
2c4c7586b7 Change visible to condition for SecondaryItems 2024-04-26 14:30:00 +02:00
Aleh Khantsevich
e92921a6cc Fix commend bar issues #165 2024-04-26 01:47:46 +02:00
Aleh Khantsevich
0322bcd047 Added filter to do not update UI when unread folder changed. 2024-04-25 00:26:58 +02:00
Aleh Khantsevich
26c914be96 Fix dead zone in title bar to be draggable 2024-04-23 11:03:40 +02:00
Burak Kaan Köse
75863faf58 Merge pull request #158 from Tiktack/settings-appearance
Hide Scrollbars and add glyphs to external links
2024-04-22 12:44:22 +02:00
Aleh Khantsevich
99b3ec4ce3 Resolved suggestions 2024-04-22 01:45:44 +02:00
Aleh Khantsevich
d97ffd863b Scrollbars and glyphs
Updated ScrollViewer and added action icons in XAML files
2024-04-21 19:04:18 +02:00
529 changed files with 24697 additions and 31464 deletions

View File

@@ -25,6 +25,7 @@ I'm a big fan of Windows Mail & Calendars due to its simplicity. Personally, I f
- API integration for Outlook and Gmail
- IMAP/SMTP support for custom mail servers
- Send, receive, mark as (read,important,spam etc), move mails.
- Linked/Merged Accounts
- Toast notifications with background sync.
- Instant startup performance
- Offline use / search.
@@ -43,7 +44,7 @@ Download latest version of Wino Mail from Microsoft Store for free.
## Beta Releases
Stable releases will always be distributed on Microsoft Store. However, beta releases will be distributed in [GitHub Releases](https://github.com/bkaankose/Wino-Mail/releases). Please keep in mind that beta releases might not be for daily use, only for testing purposes and recommended for experienced users or developers.
Stable releases will always be distributed on Microsoft Store. However, beta releases will be distributed in [GitHub Releases](https://github.com/bkaankose/Wino-Mail/releases). Please keep in mind that beta releases might not be for daily use, only for testing purposes and recommended for experienced users or developers. Beta releases are also managed manually. Therefore, code in the repository might be ahead of the released Beta version at the moment. Make sure to compare versions before tryout out the Beta version.
These releases are distributed as side-loaded packages. To install them, download the **.msixbundle** file in GitHub releases and [follow the steps explained here.](https://learn.microsoft.com/en-us/windows/application-management/sideload-apps-in-windows)
@@ -52,10 +53,6 @@ These releases are distributed as side-loaded packages. To install them, downloa
Check out the [contribution guidelines](/CONTRIBUTING.md) before diving into the source code or opening an issue. There are multiple ways to contribute and all of them are explained in detail there.
#### Attention
Sources here **does not belong to the Store version of Wino Mail. It belongs to beta release as of April 17 2024.** I've been working on a big patch for couple months already and the code here includes those changes, but these changes are not yet released to Microsoft Store. Therefore, if you'd like to contribute, please validate the bug before in beta version and start working on it. I will delete this text from here once this big patch goes alive in the Store, so everything will be aligned then.
## Donate
Your donations will motivate me more to work on Wino in my spare time and cover the expenses to keep [project's website](https://www.winomail.app/) alive.

View File

@@ -1,7 +1,6 @@
using Microsoft.Toolkit.Uwp.Notifications;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Background;
using Wino.Core.Domain;
namespace Wino.BackgroundTasks
{
@@ -23,8 +22,9 @@ namespace Wino.BackgroundTasks
var versionText = string.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);
builder.AddText(Translator.Notifications_WinoUpdatedTitle);
builder.AddText(string.Format(Translator.Notifications_WinoUpdatedMessage, versionText));
// TODO: Handle with Translator, but it's not initialized here yet.
builder.AddText("Wino Mail is updated!");
builder.AddText(string.Format("New version {0} is ready.", versionText));
builder.Show();

View File

@@ -1,48 +0,0 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Serilog;
using Windows.ApplicationModel.Background;
using Windows.Storage;
using Wino.Core;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Services;
using Wino.Core.UWP;
using Wino.Services;
namespace Wino.BackgroundTasks
{
public sealed class SessionConnectedTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
var def = taskInstance.GetDeferral();
try
{
var services = new ServiceCollection();
services.RegisterCoreServices();
services.RegisterCoreUWPServices();
var providere = services.BuildServiceProvider();
var backgroundTaskService = providere.GetService<IBackgroundSynchronizer>();
var dbService = providere.GetService<IDatabaseService>();
var logInitializer = providere.GetService<ILogInitializer>();
logInitializer.SetupLogger(ApplicationData.Current.LocalFolder.Path);
await dbService.InitializeAsync();
await backgroundTaskService.RunBackgroundSynchronizationAsync(Core.Domain.Enums.BackgroundSynchronizationReason.SessionConnected);
}
catch (Exception ex)
{
Log.Error(ex, "Background synchronization failed from background task.");
}
finally
{
def.Complete();
}
}
}
}

View File

@@ -18,25 +18,6 @@
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<AllowCrossPlatformRetargeting>false</AllowCrossPlatformRetargeting>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
@@ -123,7 +104,6 @@
<ItemGroup>
<Compile Include="AppUpdatedTask.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SessionConnectedTask.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">

View File

@@ -8,7 +8,10 @@
public const string WinoLocalDraftHeader = "X-Wino-Draft-Id";
public const string LocalDraftStartPrefix = "localDraft_";
public const string ToastMailItemIdKey = nameof(ToastMailItemIdKey);
public const string ToastMailUniqueIdKey = nameof(ToastMailUniqueIdKey);
public const string ToastActionKey = nameof(ToastActionKey);
public const string ClientLogFile = "Client_.log";
public const string ServerLogFile = "Server_.log";
}
}

View File

@@ -8,6 +8,10 @@ namespace Wino.Core.Domain.Entities
[PrimaryKey]
public Guid Id { get; set; }
public string Name { get; set; }
public string HtmlBody { get; set; }
public Guid MailAccountId { get; set; }
}
}

View File

@@ -11,6 +11,10 @@ namespace Wino.Core.Domain.Entities
public Guid AccountId { get; set; }
/// <summary>
/// This field is ignored. DisplayName is stored in MailAccount as SenderName from now.
/// </summary>
[Ignore]
public string DisplayName { get; set; }
public string Address { get; set; }
public string IncomingServer { get; set; }
@@ -39,11 +43,11 @@ namespace Wino.Core.Domain.Entities
public string ProxyServer { get; set; }
public string ProxyServerPort { get; set; }
[Obsolete("As 1.7.0")]
public bool IncomingRequiresSSL { get; set; }
[Obsolete("As 1.7.0")]
public bool OutgoingRequresSSL { get; set; }
/// <summary>
/// Number of concurrent clients that can connect to the server.
/// Default is 5.
/// </summary>
public int MaxConcurrentClients { get; set; }
}
}

View File

@@ -20,7 +20,7 @@ namespace Wino.Core.Domain.Entities
/// IMAP is populated by user on setup dialog.
/// </summary>
public string ProfileName { get; set; }
public string SenderName { get; set; }
/// <summary>
/// Account e-mail address.
@@ -40,10 +40,19 @@ namespace Wino.Core.Domain.Entities
public string SynchronizationDeltaIdentifier { get; set; }
/// <summary>
/// Gets or sets the signature to be used for this account.
/// Null if no signature should be used.
/// TODO: Gets or sets the custom account identifier color in hex.
/// </summary>
public Guid? SignatureId { get; set; }
public string AccountColorHex { get; set; }
/// <summary>
/// Base64 encoded profile picture of the account.
/// </summary>
public string Base64ProfilePictureData { get; set; }
/// <summary>
/// Gets or sets the listing order of the account in the accounts list.
/// </summary>
public int Order { get; set; }
/// <summary>
/// Gets or sets whether the account has any reason for an interactive user action to fix continue operating.
@@ -74,5 +83,15 @@ namespace Wino.Core.Domain.Entities
/// </summary>
[Ignore]
public MailAccountPreferences Preferences { get; set; }
/// <summary>
/// Gets whether the account can perform ProfileInformation sync type.
/// </summary>
public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Office365 || ProviderType == MailProviderType.Gmail;
/// <summary>
/// Gets whether the account can perform AliasInformation sync type.
/// </summary>
public bool IsAliasSyncSupported => ProviderType == MailProviderType.Gmail;
}
}

View 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;
}
}

View File

@@ -25,15 +25,25 @@ namespace Wino.Core.Domain.Entities
/// </summary>
public bool IsNotificationsEnabled { get; set; }
/// <summary>
/// Gets or sets the custom account identifier color in hex.
/// </summary>
public string AccountColorHex { get; set; }
/// <summary>
/// Gets or sets whether the account has Focused inbox support.
/// Null if the account provider type doesn't support Focused inbox.
/// </summary>
public bool? IsFocusedInboxEnabled { get; set; }
/// <summary>
/// Gets or sets whether signature should be appended automatically.
/// </summary>
public bool IsSignatureEnabled { get; set; }
/// <summary>
/// Gets or sets signature for new messages. Null if signature is not needed.
/// </summary>
public Guid? SignatureIdForNewMessages { get; set; }
/// <summary>
/// Gets or sets signature for following messages. Null if signature is not needed.
/// </summary>
public Guid? SignatureIdForFollowingMessages { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using SQLite;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.MailItem;
@@ -107,6 +108,12 @@ namespace Wino.Core.Domain.Entities
/// </summary>
public string DraftId { get; set; }
/// <summary>
/// Whether this mail is only created locally.
/// </summary>
[Ignore]
public bool IsLocalDraft => !string.IsNullOrEmpty(DraftId) && DraftId.StartsWith(Constants.LocalDraftStartPrefix);
/// <summary>
/// Whether this copy is draft or not.
/// </summary>
@@ -134,7 +141,7 @@ namespace Wino.Core.Domain.Entities
/// </summary>
[Ignore]
public MailAccount AssignedAccount { get; set; }
public IEnumerable<Guid> GetContainingIds() => [UniqueId];
public override string ToString() => $"{Subject} <-> {Id}";
}
}

View File

@@ -67,6 +67,9 @@ namespace Wino.Core.Domain.Entities
return false;
}
public static MailItemFolder CreateMoreFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.More, FolderName = Translator.MoreFolderNameOverride };
public static MailItemFolder CreateCategoriesFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.Category, FolderName = Translator.CategoriesFolderNameOverride };
public override string ToString() => FolderName;
}
}

View File

@@ -11,6 +11,10 @@ namespace Wino.Core.Domain.Entities
public Guid AccountId { get; set; }
/// <summary>
/// Unique object storage for authenticators if needed.
/// </summary>
public string UniqueId { get; set; }
public string Address { get; set; }
public void RefreshTokens(TokenInformationBase tokenInformationBase)

View File

@@ -9,6 +9,7 @@
ManuelSetupWaiting,
TestingConnection,
AutoDiscoverySetup,
AutoDiscoveryInProgress
AutoDiscoveryInProgress,
FetchingProfileInformation
}
}

View File

@@ -11,6 +11,10 @@
Czech,
Chinese,
Spanish,
French
French,
Indonesian,
Greek,
PortugeseBrazil,
Italian
}
}

View File

@@ -5,6 +5,7 @@
All,
Unread,
Flagged,
Mentions
Mentions,
Files
}
}

View File

@@ -11,7 +11,10 @@
ChangeFlag,
AlwaysMoveTo,
MoveToFocused,
RenameFolder
Archive,
RenameFolder,
EmptyFolder,
MarkFolderRead,
}
// UI requests
@@ -44,6 +47,7 @@
DarkEditor,
LightEditor,
Print,
DiscardLocalDraft,
Navigate // For toast activation
}
}

View File

@@ -1,15 +0,0 @@
namespace Wino.Core.Domain.Enums
{
public enum ReaderFont
{
Arial,
TimesNewRoman,
Verdana,
Tahoma,
CourierNew,
Georgia,
TrebuchetMS,
Calibri,
Helvetica
}
}

View File

@@ -0,0 +1,12 @@
namespace Wino.Core.Domain.Enums
{
/// <summary>
/// What should happen to server app when the client is terminated.
/// </summary>
public enum ServerBackgroundMode
{
MinimizedTray, // Still runs, tray icon is visible.
Invisible, // Still runs, tray icon is invisible.
Terminate // Server is terminated as Wino terminates.
}
}

View File

@@ -0,0 +1,11 @@
namespace Wino.Core.Domain.Enums
{
public enum StartupBehaviorResult
{
Enabled,
Disabled,
DisabledByUser,
DisabledByPolicy,
Fatal
}
}

View File

@@ -0,0 +1,12 @@
namespace Wino.Core.Domain.Enums
{
/// <summary>
/// Enumeration for the source of synchronization.
/// Right now it can either be from the client or the server.
/// </summary>
public enum SynchronizationSource
{
Client,
Server
}
}

View File

@@ -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
}
}

View File

@@ -19,7 +19,10 @@
PersonalizationPage,
MessageListPage,
MailListPage,
ReadingPanePage,
SettingOptionsPage
ReadComposePanePage,
LanguageTimePage,
AppPreferencesPage,
SettingOptionsPage,
AliasManagementPage
}
}

View File

@@ -0,0 +1,11 @@
namespace Wino.Core.Domain.Enums
{
public enum WinoServerConnectionStatus
{
None,
Connecting,
Connected,
Disconnected,
Failed
}
}

View File

@@ -1,9 +0,0 @@
using System;
namespace Wino.Core.Domain.Exceptions
{
/// <summary>
/// An exception thrown when the background task execution policies are denied for some reason.
/// </summary>
public class BackgroundTaskExecutionRequestDeniedException : Exception { }
}

View File

@@ -4,8 +4,11 @@ namespace Wino.Core.Domain.Exceptions
{
public class ImapClientPoolException : Exception
{
public ImapClientPoolException(Exception innerException) : base(Translator.Exception_ImapClientPoolFailed, innerException)
public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
{
ProtocolLog = protocolLog;
}
public string ProtocolLog { get; }
}
}

View File

@@ -0,0 +1,21 @@
using System;
using Wino.Core.Domain.Models.AutoDiscovery;
namespace Wino.Core.Domain.Exceptions
{
public class ImapConnectionFailedPackage
{
public ImapConnectionFailedPackage(Exception error, string protocolLog, AutoDiscoverySettings settings)
{
Error = error;
ProtocolLog = protocolLog;
Settings = settings;
}
public AutoDiscoverySettings Settings { get; }
public Exception Error { get; }
public string ProtocolLog { get; }
public string GetErrorMessage() => Error.InnerException == null ? Error.Message : Error.InnerException.Message;
}
}

View File

@@ -0,0 +1,7 @@
namespace Wino.Core.Domain.Exceptions
{
public class MissingAliasException : System.Exception
{
public MissingAliasException() : base(Translator.Exception_MissingAlias) { }
}
}

View File

@@ -0,0 +1,12 @@
using System;
namespace Wino.Core.Domain.Exceptions
{
/// <summary>
/// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
/// </summary>
public class WinoServerException : Exception
{
public WinoServerException(string message) : base(message) { }
}
}

View File

@@ -0,0 +1,20 @@
using System;
namespace Wino.Core.Domain.Extensions
{
public static class MimeExtensions
{
public static string GetBase64MimeMessage(this MimeKit.MimeMessage message)
{
using System.IO.MemoryStream memoryStream = new();
message.WriteTo(MimeKit.FormatOptions.Default, memoryStream);
byte[] buffer = memoryStream.GetBuffer();
int count = (int)memoryStream.Length;
return Convert.ToBase64String(buffer);
}
public static MimeKit.MimeMessage GetMimeMessageFromBase64(this string base64)
=> MimeKit.MimeMessage.Load(new System.IO.MemoryStream(Convert.FromBase64String(base64)));
}
}

View File

@@ -5,9 +5,17 @@ namespace Wino.Core.Domain.Interfaces
{
public interface IAccountMenuItem : IMenuItem
{
bool IsEnabled { get; set; }
double SynchronizationProgress { get; set; }
int UnreadItemCount { get; set; }
IEnumerable<MailAccount> HoldingAccounts { get; }
void UpdateAccount(MailAccount account);
}
public interface IMergedAccountMenuItem : IAccountMenuItem
{
int MergedAccountCount { get; }
MergedInbox Parameter { get; }
}
}

View File

@@ -13,5 +13,26 @@ namespace Wino.Core.Domain.Interfaces
/// Name representation of the view model that will be used to identify the startup entity on launch.
/// </summary>
string StartupEntityTitle { get; }
/// <summary>
/// E-mail addresses that this account holds.
/// </summary>
string StartupEntityAddresses { get; }
/// <summary>
/// Represents the account order in the accounts list.
/// </summary>
int Order { get; }
/// <summary>
/// Provider details of the account.
/// </summary>
IProviderDetail ProviderDetail { get; set; }
/// <summary>
/// How many accounts this provider has.
/// </summary>
int HoldingAccountCount { get; }
}
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Models.Accounts;
namespace Wino.Core.Domain.Interfaces
{
@@ -68,12 +69,91 @@ namespace Wino.Core.Domain.Interfaces
/// <returns>Current account synchronization modifier.</returns>
Task<string> UpdateSynchronizationIdentifierAsync(Guid accountId, string newIdentifier);
/// <summary>
/// Renames the merged inbox with the given id.
/// </summary>
/// <param name="mergedInboxId">Merged Inbox id</param>
/// <param name="newName">New name for the merged/linked inbox.</param>
Task RenameMergedAccountAsync(Guid mergedInboxId, string newName);
/// <summary>
/// Creates a new merged inbox with the given accounts.
/// </summary>
/// <param name="mergedInbox">Merged inbox properties.</param>
/// <param name="accountsToMerge">List of accounts to merge together.</param>
Task CreateMergeAccountsAsync(MergedInbox mergedInbox, IEnumerable<MailAccount> accountsToMerge);
/// <summary>
/// Updates the merged inbox with the given id with the new linked accounts.
/// </summary>
/// <param name="mergedInboxId">Updating merged inbox id.</param>
/// <param name="linkedAccountIds">List of linked account ids.</param>
Task UpdateMergedInboxAsync(Guid mergedInboxId, IEnumerable<Guid> linkedAccountIds);
/// <summary>
/// Destroys the merged inbox with the given id.
/// </summary>
/// <param name="mergedInboxId">Merged inbox id to destroy.</param>
Task UnlinkMergedInboxAsync(Guid mergedInboxId);
/// <summary>
/// Updates the account listing orders.
/// </summary>
/// <param name="accountIdOrderPair">AccountId-OrderNumber pair for all accounts.</param>
Task UpdateAccountOrdersAsync(Dictionary<Guid, int> accountIdOrderPair);
/// <summary>
/// Returns the account aliases.
/// </summary>
/// <param name="accountId">Account id.</param>
/// <returns>A list of MailAccountAlias that has e-mail aliases.</returns>
Task<List<MailAccountAlias>> GetAccountAliasesAsync(Guid accountId);
/// <summary>
/// Updated account's aliases.
/// </summary>
/// <param name="accountId">Account id to update aliases for.</param>
/// <param name="aliases">Full list of updated aliases.</param>
/// <returns></returns>
Task UpdateAccountAliasesAsync(Guid accountId, List<MailAccountAlias> aliases);
/// <summary>
/// Delete account alias.
/// </summary>
/// <param name="aliasId">Alias to remove.</param>
Task DeleteAccountAliasAsync(Guid aliasId);
/// <summary>
/// Updated profile information of the account.
/// </summary>
/// <param name="accountId">Account id to update info for.</param>
/// <param name="profileInformation">Info data.</param>
/// <returns></returns>
Task UpdateProfileInformationAsync(Guid accountId, ProfileInformation profileInformation);
/// <summary>
/// Creates a root + primary alias for the account.
/// This is only called when the account is created.
/// </summary>
/// <param name="accountId">Account id.</param>
/// <param name="address">Address to create root primary alias from.</param>
Task CreateRootAliasAsync(Guid accountId, string address);
/// <summary>
/// Will compare local-remote aliases and update the local ones or add/delete new ones.
/// </summary>
/// <param name="remoteAccountAliases">Remotely fetched basic alias info from synchronizer.</param>
/// <param name="account">Account to update remote aliases for..</param>
Task UpdateRemoteAliasInformationAsync(MailAccount account, List<RemoteAccountAlias> remoteAccountAliases);
/// <summary>
/// Gets the primary account alias for the given account id.
/// Used when creating draft messages.
/// </summary>
/// <param name="accountId">Account id.</param>
/// <returns>Primary alias for the account.</returns>
Task<MailAccountAlias> GetPrimaryAccountAliasAsync(Guid accountId);
}
}

View File

@@ -1,11 +0,0 @@
using System.Threading.Tasks;
namespace Wino.Core.Domain.Interfaces
{
public interface IAppInitializerService
{
string GetApplicationDataFolder();
Task MigrateAsync();
}
}

View File

@@ -0,0 +1,21 @@
namespace Wino.Core.Domain.Interfaces
{
/// <summary>
/// Singleton object that holds the application data folder path and the publisher shared folder path.
/// Load the values before calling any service.
/// App data folder is used for storing files.
/// Pubhlisher cache folder is only used for database file so other apps can access it in the same package by same publisher.
/// </summary>
public interface IApplicationConfiguration
{
/// <summary>
/// Application data folder.
/// </summary>
string ApplicationDataFolderPath { get; set; }
/// <summary>
/// Publisher shared folder path.
/// </summary>
string PublisherSharedFolderPath { get; set; }
}
}

View File

@@ -1,5 +1,4 @@
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
@@ -23,28 +22,12 @@ namespace Wino.Core.Domain.Interfaces
/// <summary>
/// Initial creation of token. Requires user interaction.
/// This will save token into database, but still returns for account creation
/// This will cache the token but still returns for account creation
/// since account address is required.
/// </summary>
/// <param name="expectedAccountAddress">Token cache might ask for regeneration of token for specific
/// account address. If one is provided and re-generation native token doesn't belong to this address
/// token saving to database won't happen.</param>
/// <returns>Freshly created TokenInformation..</returns>
Task<TokenInformation> GenerateTokenAsync(MailAccount account, bool saveToken);
/// <summary>
/// Required for external authorization on launched browser to continue.
/// Used for Gmail.
/// </summary>
/// <param name="authorizationResponseUri">Response's redirect uri.</param>
void ContinueAuthorization(Uri authorizationResponseUri);
/// <summary>
/// For external browser required authentications.
/// Canceling Gmail authentication dialog etc.
/// </summary>
void CancelAuthorization();
/// <summary>
/// ClientId in case of needed for authorization/authentication.
/// </summary>

View File

@@ -0,0 +1,6 @@
namespace Wino.Core.Domain.Interfaces
{
public interface IOutlookAuthenticator : IAuthenticator { }
public interface IGmailAuthenticator : IAuthenticator { }
public interface IImapAuthenticator : IAuthenticator { }
}

View File

@@ -1,16 +1,7 @@
using System.Threading.Tasks;
namespace Wino.Core.Domain.Interfaces
namespace Wino.Core.Domain.Interfaces
{
public interface IBackgroundTaskService
{
/// <summary>
/// Manages background task registrations, requests access if needed, checks the statusses of them etc.
/// </summary>
/// <exception cref="BackgroundTaskExecutionRequestDeniedException">If the access request is denied for some reason.</exception>
/// <exception cref="BackgroundTaskRegistrationFailedException">If one of the requires background tasks are failed during registration.</exception>
Task HandleBackgroundTaskRegistrations();
/// <summary>
/// Unregisters all existing background tasks. Useful for migrations.
/// </summary>

View File

@@ -0,0 +1,62 @@
using System.Threading;
using System.Threading.Tasks;
using MailKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Synchronization;
namespace Wino.Core.Domain.Interfaces
{
public interface IBaseSynchronizer
{
/// <summary>
/// Account that is assigned for this synchronizer.
/// </summary>
MailAccount Account { get; }
/// <summary>
/// Synchronizer state.
/// </summary>
AccountSynchronizerState State { get; }
/// <summary>
/// Queues a single request to be executed in the next synchronization.
/// </summary>
/// <param name="request">Request to queue.</param>
void QueueRequest(IRequestBase request);
/// <summary>
/// TODO
/// </summary>
/// <returns>Whether active synchronization is stopped or not.</returns>
bool CancelActiveSynchronization();
/// <summary>
/// Performs a full synchronization with the server with given options.
/// This will also prepares batch requests for execution.
/// Requests are executed in the order they are queued and happens before the synchronization.
/// Result of the execution queue is processed during the synchronization.
/// </summary>
/// <param name="options">Options for synchronization.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Result summary of synchronization.</returns>
Task<SynchronizationResult> SynchronizeAsync(SynchronizationOptions options, CancellationToken cancellationToken = default);
/// <summary>
/// Synchronizes profile information with the server.
/// Sender name and Profile picture are updated.
/// </summary>
/// <returns>Profile information model that holds the values.</returns>
Task<ProfileInformation> GetProfileInformationAsync();
/// <summary>
/// Downloads a single MIME message from the server and saves it to disk.
/// </summary>
/// <param name="mailItem">Mail item to download from server.</param>
/// <param name="transferProgress">Optional progress reporting for download operation.</param>
/// <param name="cancellationToken">Cancellation token.</param>
Task DownloadMissingMimeMessageAsync(IMailItem mailItem, ITransferProgress transferProgress, CancellationToken cancellationToken = default);
}
}

View File

@@ -0,0 +1,8 @@
namespace Wino.Core.Domain.Interfaces
{
/// <summary>
/// All messages that Client sends to Server and awaits a response in return.
/// For example; triggering a new synchronization request.
/// </summary>
public interface IClientMessage;
}

View File

@@ -0,0 +1,9 @@
using Wino.Core.Domain.Entities;
namespace Wino.Core.Domain.Interfaces
{
public interface ICreateAccountAliasDialog
{
public MailAccountAlias CreatedAccountAlias { get; set; }
}
}

View File

@@ -15,5 +15,11 @@ namespace Wino.Core.Domain.Interfaces
/// Displays preparing folders page.
/// </summary>
void ShowPreparingFolders();
/// <summary>
/// Updates account properties for the welcome imap setup dialog and starts the setup.
/// </summary>
/// <param name="account">Account properties.</param>
void StartImapConnectionSetup(MailAccount account);
}
}

View File

@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.Folders;
namespace Wino.Core.Domain.Interfaces
@@ -25,12 +27,19 @@ namespace Wino.Core.Domain.Interfaces
// Custom dialogs
Task<IMailItemFolder> ShowMoveMailFolderDialogAsync(List<IMailItemFolder> availableFolders);
Task<Tuple<string, MailProviderType>> ShowNewAccountMailProviderDialogAsync(List<IProviderDetail> availableProviders);
Task<AccountCreationDialogResult> ShowNewAccountMailProviderDialogAsync(List<IProviderDetail> availableProviders);
IAccountCreationDialog GetAccountCreationDialog(MailProviderType type);
Task<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription);
Task<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
Task<MailAccount> ShowEditAccountDialogAsync(MailAccount account);
Task<MailAccount> ShowAccountPickerDialogAsync(List<MailAccount> availableAccounts);
/// <summary>
/// Displays a dialog to the user for reordering accounts.
/// </summary>
/// <param name="availableAccounts">Available accounts in order.</param>
/// <returns>Result model that has dict of AccountId-AccountOrder.</returns>
Task ShowAccountReorderDialogAsync(ObservableCollection<IAccountProviderDetailViewModel> availableAccounts);
/// <summary>
/// Presents a dialog to the user for selecting folder.
/// </summary>
@@ -38,5 +47,12 @@ namespace Wino.Core.Domain.Interfaces
/// <param name="reason">The reason behind the picking operation
/// <returns>Selected folder structure. Null if none.</returns>
Task<IMailItemFolder> PickFolderAsync(Guid accountId, PickFolderReason reason, IFolderService folderService);
/// <summary>
/// Presents a dialog to the user for signature creation/modification.
/// </summary>
/// <returns>Signature information. Null if canceled.</returns>
Task<AccountSignature> ShowSignatureEditorDialog(AccountSignature signatureModel = null);
Task<ICreateAccountAliasDialog> ShowCreateAccountAliasDialogAsync();
}
}

View File

@@ -8,6 +8,7 @@ namespace Wino.Core.Domain.Interfaces
public interface IFolderMenuItem : IBaseFolderMenuItem
{
MailAccount ParentAccount { get; }
void UpdateParentAccounnt(MailAccount account);
}
public interface IMergedAccountFolderMenuItem : IBaseFolderMenuItem { }
@@ -19,6 +20,7 @@ namespace Wino.Core.Domain.Interfaces
int UnreadItemCount { get; set; }
SpecialFolderType SpecialFolderType { get; }
IEnumerable<IMailItemFolder> HandlingFolders { get; }
IEnumerable<IMenuItem> SubMenuItems { get; }
bool IsMoveTarget { get; }
bool IsSticky { get; }
bool IsSystemFolder { get; }

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Synchronization;
@@ -15,13 +16,10 @@ namespace Wino.Core.Domain.Interfaces
Task<MailItemFolder> GetFolderAsync(Guid folderId);
Task<MailItemFolder> GetFolderAsync(Guid accountId, string remoteFolderId);
Task<List<MailItemFolder>> GetFoldersAsync(Guid accountId);
Task<List<MailItemFolder>> GetUnreadUpdateFoldersAsync(Guid accountId);
Task SetSpecialFolderAsync(Guid folderId, SpecialFolderType type);
Task<MailItemFolder> GetSpecialFolderByAccountIdAsync(Guid accountId, SpecialFolderType type);
Task<int> GetCurrentItemCountForFolder(Guid folderId);
Task<int> GetFolderNotificationBadgeAsync(Guid folderId);
Task ChangeStickyStatusAsync(Guid folderId, bool isSticky);
Task UpdateCustomServerMailListAsync(Guid accountId, List<MailItemFolder> folders);
Task<MailAccount> UpdateSystemFolderConfigurationAsync(Guid accountId, SystemFolderConfiguration configuration);
Task ChangeFolderSynchronizationStateAsync(Guid folderId, bool isSynchronizationEnabled);
@@ -39,25 +37,6 @@ namespace Wino.Core.Domain.Interfaces
/// </summary>
Task<List<MailFolderPairMetadata>> GetMailFolderPairMetadatasAsync(string mailCopyId);
// v2
/// <summary>
/// Performs bulk update for the given folders.
/// Used in Gmail.
/// </summary>
/// <param name="accountId">Account that folders belong to.</param>
/// <param name="allFolders">Folders to update.</param>
Task BulkUpdateFolderStructureAsync(Guid accountId, List<MailItemFolder> allFolders);
/// <summary>
/// Updates Folder's delta synchronization identifier.
/// Only used in Outlook since it does per-folder sync.
/// </summary>
/// <param name="folderId">Folder id</param>
/// <param name="synchronizationIdentifier">New synchronization identifier.</param>
/// <returns>New identifier if success.</returns>
Task<string> UpdateFolderDeltaSynchronizationIdentifierAsync(Guid folderId, string synchronizationIdentifier);
/// <summary>
/// Deletes the folder for the given account by remote folder id.
/// </summary>
@@ -87,6 +66,29 @@ namespace Wino.Core.Domain.Interfaces
/// <returns>True if Inbox exists, False if not.</returns>
Task<bool> IsInboxAvailableForAccountAsync(Guid accountId);
Task TestAsync();
/// <summary>
/// Updates folder's LastSynchronizedDate to now.
/// </summary>
/// <param name="folderId">Folder to update.</param>
Task UpdateFolderLastSyncDateAsync(Guid folderId);
/// <summary>
/// Updates the given folder.
/// </summary>
/// <param name="folder">Folder to update.</param>
Task UpdateFolderAsync(MailItemFolder folder);
/// <summary>
/// Returns the active folder menu items for the given account for UI.
/// </summary>
/// <param name="accountMenuItem">Account to get folder menu items for.</param>
Task<IEnumerable<IMenuItem>> GetAccountFoldersForDisplayAsync(IAccountMenuItem accountMenuItem);
/// <summary>
/// Returns a list of unread item counts for the given account ids.
/// Every folder that is marked as show unread badge is included.
/// </summary>
/// <param name="accountIds">Account ids to get unread folder counts for.</param>
Task<List<UnreadItemCountResult>> GetUnreadItemCountResultsAsync(IEnumerable<Guid> accountIds);
}
}

View File

@@ -1,16 +1,16 @@
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Reader;
namespace Wino.Core.Domain.Interfaces
{
/// <summary>
/// Service to access available fonts.
/// </summary>
public interface IFontService
{
List<ReaderFontModel> GetReaderFonts();
ReaderFontModel GetCurrentReaderFont();
int GetCurrentReaderFontSize();
void ChangeReaderFont(ReaderFont font);
void ChangeReaderFontSize(int size);
/// <summary>
/// Get available fonts. Default + installed system fonts.
/// Fonts initialized only once. To refresh fonts, restart the application.
/// </summary>
List<string> GetFonts();
}
}

View File

@@ -1,10 +1,16 @@
using System.Collections.Specialized;
using Wino.Core.Domain.Models.Launch;
namespace Wino.Core.Domain.Interfaces
namespace Wino.Core.Domain.Interfaces;
public interface ILaunchProtocolService
{
public interface ILaunchProtocolService
{
object LaunchParameter { get; set; }
NameValueCollection MailtoParameters { get; set; }
}
/// <summary>
/// Used to handle toasts.
/// </summary>
object LaunchParameter { get; set; }
/// <summary>
/// Used to handle mailto links.
/// </summary>
MailToUri MailToUri { get; set; }
}

View File

@@ -2,7 +2,7 @@
{
public interface ILogInitializer
{
void SetupLogger(string logFolderPath);
void SetupLogger(string fullLogFilePath);
void RefreshLoggingLevel();
}

View File

@@ -11,13 +11,8 @@ namespace Wino.Core.Domain.Interfaces
{
Task<MailCopy> GetSingleMailItemAsync(string mailCopyId, string remoteFolderId);
Task<MailCopy> GetSingleMailItemAsync(Guid uniqueMailId);
Task<MailCopy> CreateDraftAsync(MailAccount composerAccount, MimeMessage generatedReplyMime, MimeMessage replyingMimeMessage = null, IMailItem replyingMailItem = null);
Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options);
Task<List<string>> GetMailIdsByFolderIdAsync(Guid folderId);
// v2
/// <summary>
/// Deletes all mail copies for all folders.
/// </summary>
@@ -48,15 +43,12 @@ namespace Wino.Core.Domain.Interfaces
/// <summary>
/// Maps new mail item with the existing local draft copy.
///
/// </summary>
/// <param name="newMailCopyId"></param>
/// <param name="newDraftId"></param>
/// <param name="newThreadId"></param>
/// <returns></returns>
Task MapLocalDraftAsync(string newMailCopyId, string newDraftId, string newThreadId);
Task<MimeMessage> CreateDraftMimeMessageAsync(Guid accountId, DraftCreationOptions options);
Task UpdateMailAsync(MailCopy mailCopy);
/// <summary>
@@ -77,5 +69,43 @@ namespace Wino.Core.Domain.Interfaces
/// <param name="uniqueMailId">Unique id of the mail item.</param>
/// <returns>Account that mail belongs to.</returns>
Task<MailAccount> GetMailAccountByUniqueIdAsync(Guid uniqueMailId);
/// <summary>
/// Checks whether the given mail copy id exists in the database.
/// Safely used for Outlook to prevent downloading the same mail twice.
/// For Gmail, it should be avoided since one mail may belong to multiple folders.
/// </summary>
/// <param name="mailCopyId">Native mail id of the message.</param>
Task<bool> IsMailExistsAsync(string mailCopyId);
/// <summary>
/// Returns all mails for given folder id.
/// </summary>
/// <param name="folderId">Folder id to get mails for</param>
Task<List<MailCopy>> GetMailsByFolderIdAsync(Guid folderId);
/// <summary>
/// Returns all unread mails for given folder id.
/// </summary>
/// <param name="folderId">Folder id to get unread mails for.</param>
Task<List<MailCopy>> GetUnreadMailsByFolderIdAsync(Guid folderId);
/// <summary>
/// Checks whether the mail exists in the folder.
/// When deciding Create or Update existing mail, we need to check if the mail exists in the folder.
/// </summary>
/// <param name="mailCopyId">MailCopy id</param>
/// <param name="folderId">Folder's local id.</param>
/// <returns>Whether mail exists in the folder or not.</returns>
Task<bool> IsMailExistsAsync(string mailCopyId, Guid folderId);
/// <summary>
/// Creates a draft MailCopy and MimeMessage based on the given options.
/// For forward/reply it would include the referenced message.
/// </summary>
/// <param name="accountId">AccountId which should have new draft.</param>
/// <param name="draftCreationOptions">Options like new email/forward/draft.</param>
/// <returns>Draft MailCopy and Draft MimeMessage as base64.</returns>
Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions);
}
}

View File

@@ -8,9 +8,23 @@ namespace Wino.Core.Domain.Interfaces
{
string GetWebAuthenticationBrokerUri();
Task<string> GetMimeMessageStoragePath();
Task<string> GetQuillEditorBundlePathAsync();
Task<string> GetEditorBundlePathAsync();
Task LaunchFileAsync(string filePath);
Task LaunchUriAsync(Uri uri);
/// <summary>
/// Launches the default browser with the specified uri and waits for protocol activation to finish.
/// </summary>
/// <param name="authenticator"></param>
/// <returns>Response callback from the browser.</returns>
Task<Uri> GetAuthorizationResponseUriAsync(IAuthenticator authenticator, string authorizationUri);
/// <summary>
/// Finalizes GetAuthorizationResponseUriAsync for current IAuthenticator.
/// </summary>
/// <param name="authorizationResponseUri"></param>
void ContinueAuthorization(Uri authorizationResponseUri);
bool IsAppRunning();
string GetFullAppVersion();
@@ -21,5 +35,11 @@ namespace Wino.Core.Domain.Interfaces
/// Some cryptographic shit is needed for requesting Google authentication in UWP.
/// </summary>
GoogleAuthorizationRequest GetGoogleAuthorizationRequest();
/// <summary>
/// Gets or sets the function that returns a pointer for main window hwnd for UWP.
/// This is used to display WAM broker dialog on running UWP app called by a windowless server code.
/// </summary>
Func<IntPtr> GetCoreWindowHwnd { get; set; }
}
}

View File

@@ -122,15 +122,25 @@ namespace Wino.Core.Domain.Interfaces
AppLanguage CurrentLanguage { get; set; }
/// <summary>
/// Setting: Display font for the mail reader. Not composer.
/// Setting: Display font for the mail reader.
/// </summary>
ReaderFont ReaderFont { get; set; }
string ReaderFont { get; set; }
/// <summary>
/// Setting: Font size for the mail reader. Not composer.
/// Setting: Font size for the mail reader.
/// </summary>
int ReaderFontSize { get; set; }
/// <summary>
/// Setting: Display font for the mail composer.
/// </summary>
string ComposerFont { get; set; }
/// <summary>
/// Setting: Font size for the mail composer.
/// </summary>
int ComposerFontSize { get; set; }
/// <summary>
/// Setting: Whether the navigation pane is opened on the last session or not.
/// </summary>
@@ -140,5 +150,10 @@ namespace Wino.Core.Domain.Interfaces
/// Setting: Whether the next item should be automatically selected once the current item is moved or removed.
/// </summary>
bool AutoSelectNextItem { get; set; }
/// <summary>
/// Setting: Gets or sets what should happen to server app when the client is terminated.
/// </summary>
ServerBackgroundMode ServerTerminationBehavior { get; set; }
}
}

View File

@@ -22,7 +22,7 @@ namespace Wino.Core.Domain.Interfaces
TRequest NativeRequest { get; }
}
public interface IRequestBase
public interface IRequestBase : IClientMessage
{
/// <summary>
/// Synchronizer option to perform.
@@ -40,6 +40,15 @@ namespace Wino.Core.Domain.Interfaces
/// Reverts the UI changes applied by <see cref="ApplyUIChanges"/> if the request fails.
/// </summary>
void RevertUIChanges();
/// <summary>
/// Whether synchronizations should be delayed after executing this request.
/// Specially Outlook sometimes don't report changes back immidiately after sending the API request.
/// This results following synchronization to miss the changes.
/// We add small delay for the following synchronization after executing current requests to overcome this issue.
/// Default is false.
/// </summary>
bool DelayExecution { get; }
}
public interface IRequest : IRequestBase

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities;
@@ -7,27 +8,40 @@ namespace Wino.Core.Domain.Interfaces
public interface ISignatureService
{
/// <summary>
/// Returns the assigned account signature for the account.
/// Get one signature by Id.
/// </summary>
/// <param name="accountId"></param>
/// <returns></returns>
Task<AccountSignature> GetAccountSignatureAsync(Guid accountId);
/// <param name="signatureId">Signature Id.</param>
Task<AccountSignature> GetSignatureAsync(Guid signatureId);
/// <summary>
/// Creates the initial signature for new created accounts.
/// Returns all signatures for specified account.
/// </summary>
/// <param name="accountId"></param>
/// <returns></returns>
/// <param name="accountId">Account id</param>
Task<List<AccountSignature>> GetSignaturesAsync(Guid accountId);
/// <summary>
/// Creates a new signature for the account.
/// </summary>
/// <param name="signature">Signature that should be created. It should contain ID and account to which it belongs.</param>
Task<AccountSignature> CreateSignatureAsync(AccountSignature signature);
/// <summary>
/// Creates a default Wino signature for the account.
/// Needed only for initial account setup.
/// </summary>
/// <param name="accountId">Account Id.</param>
Task<AccountSignature> CreateDefaultSignatureAsync(Guid accountId);
/// <summary>
/// Updates account's existing signature with the given HTML signature.
/// Updates existing signature.
/// </summary>
Task<AccountSignature> UpdateAccountSignatureAsync(Guid accountId, string htmlBody);
/// <param name="signature">Signature that should be updated. It should contain ID and account to which it belongs.</param>
Task<AccountSignature> UpdateSignatureAsync(AccountSignature signature);
/// <summary>
/// Disabled signature for the account and deletes existing signature.
/// Deletes existing signature.
/// </summary>
Task DeleteAccountSignatureAssignment(Guid accountId);
/// <param name="signature">Signature that should be deleted.</param>
Task<AccountSignature> DeleteSignatureAsync(AccountSignature signature);
}
}

View File

@@ -0,0 +1,20 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Interfaces
{
public interface IStartupBehaviorService
{
/// <summary>
/// Gets whether Wino Server is set to launch on startup or not.
/// </summary>
Task<StartupBehaviorResult> GetCurrentStartupBehaviorAsync();
/// <summary>
/// Enables/disables the current startup behavior for Wino Server.
/// </summary>
/// <param name="isEnabled">Whether to launch enabled or disabled.</param>
/// <returns>True if operation success, false if not.</returns>
Task<StartupBehaviorResult> ToggleStartupBehavior(bool isEnabled);
}
}

View File

@@ -1,19 +0,0 @@
using System;
namespace Wino.Core.Domain.Interfaces
{
/// <summary>
/// An interface for reporting progress of the synchronization.
/// Gmail does not support reporting folder progress.
/// For others, account progress is calculated based on the number of folders.
/// </summary>
public interface ISynchronizationProgress
{
/// <summary>
/// Reports account synchronization progress.
/// </summary>
/// <param name="accountId">Account id for the report.</param>
/// <param name="progress">Value. This is always between 0 - 100</param>
void AccountProgressUpdated(Guid accountId, int progress);
}
}

View File

@@ -0,0 +1,11 @@
using System;
using System.Threading.Tasks;
namespace Wino.Core.Domain.Interfaces
{
public interface ISynchronizerFactory
{
Task<IBaseSynchronizer> GetAccountSynchronizerAsync(Guid accountId);
Task InitializeAsync();
}
}

View File

@@ -7,6 +7,11 @@ namespace Wino.Core.Domain.Interfaces
{
public interface IThreadingStrategy
{
/// <summary>
/// Attach thread mails to the list.
/// </summary>
/// <param name="items">Original mails.</param>
/// <returns>Original mails with thread mails.</returns>
Task<List<IMailItem>> ThreadItemsAsync(List<MailCopy> items);
bool ShouldThreadWithItem(IMailItem originalItem, IMailItem targetItem);
}

View File

@@ -1,4 +1,4 @@
namespace Wino.Core.Domain.Models.Requests
namespace Wino.Core.Domain.Interfaces
{
/// <summary>
/// Interface for all messages to report UI changes from synchronizers to UI.
@@ -6,5 +6,6 @@
/// They are sent either from processor or view models to signal some other
/// parts of the application.
/// </summary>
public interface IUIMessage;
}

View File

@@ -0,0 +1,15 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Models.Reader;
namespace Wino.Core.Domain.Interfaces
{
public interface IUnsubscriptionService
{
/// <summary>
/// Unsubscribes from the subscription using one-click method.
/// </summary>
/// <param name="info">Unsubscribtion information.</param>
/// <returns>Whether the unsubscription is succeeded or not.</returns>
Task<bool> OneClickUnsubscribeAsync(UnsubscribeInfo info);
}
}

View File

@@ -1,5 +1,4 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
@@ -17,7 +16,7 @@ namespace Wino.Core.Domain.Interfaces
/// Queues new draft creation request for synchronizer.
/// </summary>
/// <param name="draftPreperationRequest">A class that holds the parameters for creating a draft.</param>
Task ExecuteAsync(DraftPreperationRequest draftPreperationRequest);
Task ExecuteAsync(DraftPreparationRequest draftPreperationRequest);
/// <summary>
/// Queues a new request for synchronizer to send a draft.
@@ -28,8 +27,7 @@ namespace Wino.Core.Domain.Interfaces
/// <summary>
/// Prepares requires IRequest collection for folder actions and executes them via proper synchronizers.
/// </summary>
/// <param name="operation">Folder operation to execute.</param>
/// <param name="folderStructure">Target folder</param>
Task ExecuteAsync(FolderOperation operation, IMailItemFolder folderStructure);
/// <param name="folderOperationPreperationRequest">Folder prep request.</param>
Task ExecuteAsync(FolderOperationPreperationRequest folderOperationPreperationRequest);
}
}

View File

@@ -1,15 +1,18 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Requests;
namespace Wino.Core.Domain.Interfaces
{
public interface IWinoRequestProcessor
{
Task<IRequest> PrepareFolderRequestAsync(FolderOperation operation, IMailItemFolder mailItemFolder);
/// <summary>
/// Prepares proper folder action requests for synchronizers to execute.
/// </summary>
/// <param name="request"></param>
/// <returns>Base request that synchronizer can execute.</returns>
Task<IRequestBase> PrepareFolderRequestAsync(FolderOperationPreperationRequest request);
/// <summary>
/// Prepares proper Wino requests for synchronizers to execute categorized by AccountId and FolderId.
@@ -17,6 +20,7 @@ namespace Wino.Core.Domain.Interfaces
/// <param name="operation">User action</param>
/// <param name="mailCopyIds">Selected mails.</param>
/// <exception cref="UnavailableSpecialFolderException">When required folder target is not available for account.</exception>
/// <returns>Base request that synchronizer can execute.</returns>
Task<List<IRequest>> PrepareRequestsAsync(MailOperationPreperationRequest request);
}
}

View File

@@ -0,0 +1,61 @@
using System;
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Server;
namespace Wino.Core.Domain.Interfaces
{
public interface IWinoServerConnectionManager
{
/// <summary>
/// When the connection status changes, this event will be triggered.
/// </summary>
event EventHandler<WinoServerConnectionStatus> StatusChanged;
/// <summary>
/// Gets the connection status.
/// </summary>
WinoServerConnectionStatus Status { get; }
/// <summary>
/// Launches Full Trust process (Wino Server) and awaits connection completion.
/// If connection is not established in 10 seconds, it will return false.
/// If the server process is already running, it'll connect to existing one.
/// If the server process is not running, it'll be launched and connection establishment is awaited.
/// </summary>
/// <returns>Whether connection is established or not.</returns>
Task<bool> ConnectAsync();
/// <summary>
/// Queues a new user request to be processed by Wino Server.
/// Healthy connection must present before calling this method.
/// </summary>
/// <param name="request">Request to queue for synchronizer in the server.</param>
/// <param name="accountId">Account id to queueu request for.</param>
Task QueueRequestAsync(IRequestBase request, Guid accountId);
/// <summary>
/// Returns response from server for the given request.
/// </summary>
/// <typeparam name="TResponse">Response type.</typeparam>
/// <typeparam name="TRequestType">Request type.</typeparam>
/// <param name="clientMessage">Request type.</param>
/// <returns>Response received from the server for the given TResponse type.</returns>
Task<WinoServerResponse<TResponse>> GetResponseAsync<TResponse, TRequestType>(TRequestType clientMessage) where TRequestType : IClientMessage;
/// <summary>
/// Handle for connecting to the server.
/// If the server is already running, it'll connect to existing one.
/// Callers can await this handle to wait for connection establishment.
/// </summary>
TaskCompletionSource<bool> ConnectingHandle { get; }
}
public interface IWinoServerConnectionManager<TAppServiceConnection> : IWinoServerConnectionManager, IInitializeAsync
{
/// <summary>
/// Existing connection handle to the server of TAppServiceConnection type.
/// </summary>
TAppServiceConnection Connection { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
using System;
using Wino.Core.Domain.Entities;
namespace Wino.Core.Domain.Interfaces
{
public interface IWinoSynchronizerFactory : IInitializeAsync
{
IBaseSynchronizer GetAccountSynchronizer(Guid accountId);
IBaseSynchronizer CreateNewSynchronizer(MailAccount account);
}
}

View File

@@ -0,0 +1,6 @@
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Accounts
{
public record AccountCreationDialogResult(MailProviderType ProviderType, string AccountName, string AccountColorHex = "");
}

View 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);
}

View File

@@ -0,0 +1,13 @@
using System;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Accounts
{
public class UnreadItemCountResult
{
public Guid FolderId { get; set; }
public Guid AccountId { get; set; }
public SpecialFolderType SpecialFolderType { get; set; }
public int UnreadItemCount { get; set; }
}
}

View File

@@ -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,

View File

@@ -1,21 +0,0 @@
using System;
namespace Wino.Core.Domain.Models.AutoDiscovery
{
public class AutoDiscoveryConnectionTestFailedPackage
{
public AutoDiscoveryConnectionTestFailedPackage(AutoDiscoverySettings settings, Exception error)
{
Settings = settings ?? throw new ArgumentNullException(nameof(settings));
Error = error ?? throw new ArgumentNullException(nameof(error));
}
public AutoDiscoveryConnectionTestFailedPackage(Exception error)
{
Error = error ?? throw new ArgumentNullException(nameof(error));
}
public AutoDiscoverySettings Settings { get; set; }
public Exception Error { get; set; }
}
}

View File

@@ -1,22 +1,22 @@
using Newtonsoft.Json;
using System.Text.Json.Serialization;
namespace Wino.Core.Domain.Models.AutoDiscovery
{
public class AutoDiscoveryProviderSetting
{
[JsonProperty("protocol")]
[JsonPropertyName("protocol")]
public string Protocol { get; set; }
[JsonProperty("address")]
[JsonPropertyName("address")]
public string Address { get; set; }
[JsonProperty("port")]
[JsonPropertyName("port")]
public int Port { get; set; }
[JsonProperty("secure")]
[JsonPropertyName("secure")]
public string Secure { get; set; }
[JsonProperty("username")]
[JsonPropertyName("username")]
public string Username { get; set; }
}
}

View File

@@ -1,19 +1,19 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Text.Json.Serialization;
using Wino.Core.Domain.Entities;
namespace Wino.Core.Domain.Models.AutoDiscovery
{
public class AutoDiscoverySettings
{
[JsonProperty("domain")]
[JsonPropertyName("domain")]
public string Domain { get; set; }
[JsonProperty("password")]
[JsonPropertyName("password")]
public string Password { get; set; }
[JsonProperty("settings")]
[JsonPropertyName("settings")]
public List<AutoDiscoveryProviderSetting> Settings { get; set; }
/// <summary>
@@ -30,9 +30,6 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
if (imapSettings == null || smtpSettings == null) return null;
bool imapRequiresSSL = imapSettings.Secure == "SSL";
bool smtpRequiresSSL = smtpSettings.Secure == "SSL";
string imapUrl = imapSettings.Address;
string smtpUrl = smtpSettings.Address;
@@ -49,15 +46,18 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
Address = UserMinimalSettings.Email,
IncomingServerPassword = UserMinimalSettings.Password,
OutgoingServerPassword = UserMinimalSettings.Password,
IncomingRequiresSSL = imapRequiresSSL,
OutgoingRequresSSL = smtpRequiresSSL,
IncomingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
OutgoingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
OutgoingServerSocketOption = Enums.ImapConnectionSecurity.Auto,
IncomingServerSocketOption = Enums.ImapConnectionSecurity.Auto,
IncomingServer = imapUrl,
OutgoingServer = smtpUrl,
IncomingServerPort = imapPort.ToString(),
OutgoingServerPort = smtpPort.ToString(),
IncomingServerType = Enums.CustomIncomingServerType.IMAP4,
IncomingServerUsername = imapUsername,
OutgoingServerUsername = smtpUsername
OutgoingServerUsername = smtpUsername,
MaxConcurrentClients = 5
};
return serverInfo;

View File

@@ -0,0 +1,12 @@
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Folders
{
/// <summary>
/// Encapsulates a request to prepare a folder operation like Rename, Delete, etc.
/// </summary>
/// <param name="Action">Folder operation.</param>
/// <param name="Folder">Target folder.</param>
public record FolderOperationPreperationRequest(FolderOperation Action, MailItemFolder Folder) { }
}

View File

@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Wino.Core.Domain.Models.Launch;
public class MailToUri
{
public string Subject { get; private set; }
public string Body { get; private set; }
public List<string> To { get; } = [];
public List<string> Cc { get; } = [];
public List<string> Bcc { get; } = [];
public Dictionary<string, string> OtherParameters { get; } = [];
public MailToUri(string mailToUrl)
{
ParseMailToUrl(mailToUrl);
}
private void ParseMailToUrl(string mailToUrl)
{
if (string.IsNullOrWhiteSpace(mailToUrl))
throw new ArgumentException("mailtoUrl cannot be null or empty.", nameof(mailToUrl));
if (!mailToUrl.StartsWith("mailto:", StringComparison.OrdinalIgnoreCase))
throw new ArgumentException("URL must start with 'mailto:'.", nameof(mailToUrl));
var mailToWithoutScheme = mailToUrl.Substring(7); // Remove "mailto:"
var components = mailToWithoutScheme.Split('?');
if (!string.IsNullOrEmpty(components[0]))
{
To.AddRange(components[0].Split(',').Select(email => HttpUtility.UrlDecode(email).Trim()));
}
if (components.Length <= 1)
{
return;
}
var parameters = components[1].Split('&');
foreach (var parameter in parameters)
{
var keyValue = parameter.Split('=');
if (keyValue.Length != 2)
continue;
var key = keyValue[0].ToLowerInvariant();
var value = HttpUtility.UrlDecode(keyValue[1]);
switch (key)
{
case "to":
To.AddRange(value.Split(',').Select(email => email.Trim()));
break;
case "subject":
Subject = value;
break;
case "body":
Body = value;
break;
case "cc":
Cc.AddRange(value.Split(',').Select(email => email.Trim()));
break;
case "bcc":
Bcc.AddRange(value.Split(',').Select(email => email.Trim()));
break;
default:
OtherParameters[key] = value;
break;
}
}
}
}

View File

@@ -1,40 +1,27 @@
using System.Collections.Specialized;
using System.Linq;
using MimeKit;
using MimeKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Launch;
namespace Wino.Core.Domain.Models.MailItem
namespace Wino.Core.Domain.Models.MailItem;
public class DraftCreationOptions
{
public class DraftCreationOptions
{
public MimeMessage ReferenceMimeMessage { get; set; }
public MailCopy ReferenceMailCopy { get; set; }
public DraftCreationReason Reason { get; set; }
public DraftCreationReason Reason { get; set; }
#region Mailto Protocol Related Stuff
/// <summary>
/// Used for forward/reply
/// </summary>
public ReferencedMessage ReferencedMessage { get; set; }
public const string MailtoSubjectParameterKey = "subject";
public const string MailtoBodyParameterKey = "body";
public const string MailtoToParameterKey = "mailto";
public const string MailtoCCParameterKey = "cc";
public const string MailtoBCCParameterKey = "bcc";
public NameValueCollection MailtoParameters { get; set; }
private bool IsMailtoParameterExists(string parameterKey)
=> MailtoParameters != null
&& MailtoParameters.AllKeys.Contains(parameterKey);
public bool TryGetMailtoValue(string key, out string value)
{
bool valueExists = IsMailtoParameterExists(key);
value = valueExists ? MailtoParameters[key] : string.Empty;
return valueExists;
}
#endregion
}
/// <summary>
/// Used to create mails from Mailto links
/// </summary>
public MailToUri MailToUri { get; set; }
}
public class ReferencedMessage
{
public MailCopy MailCopy { get; set; }
public MimeMessage MimeMessage { get; set; }
}

View File

@@ -0,0 +1,55 @@
using System;
using System.Text.Json.Serialization;
using MimeKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Extensions;
namespace Wino.Core.Domain.Models.MailItem;
public class DraftPreparationRequest
{
public DraftPreparationRequest(MailAccount account,
MailCopy createdLocalDraftCopy,
string base64EncodedMimeMessage,
DraftCreationReason reason,
MailCopy referenceMailCopy = null)
{
Account = account ?? throw new ArgumentNullException(nameof(account));
CreatedLocalDraftCopy = createdLocalDraftCopy ?? throw new ArgumentNullException(nameof(createdLocalDraftCopy));
ReferenceMailCopy = referenceMailCopy;
// MimeMessage is not serializable with System.Text.Json. Convert to base64 string.
// This is additional work when deserialization needed, but not much to do atm.
Base64LocalDraftMimeMessage = base64EncodedMimeMessage;
Reason = reason;
}
[JsonConstructor]
private DraftPreparationRequest() { }
public MailCopy CreatedLocalDraftCopy { get; set; }
public MailCopy ReferenceMailCopy { get; set; }
public string Base64LocalDraftMimeMessage { get; set; }
public DraftCreationReason Reason { get; set; }
[JsonIgnore]
private MimeMessage createdLocalDraftMimeMessage;
[JsonIgnore]
public MimeMessage CreatedLocalDraftMimeMessage
{
get
{
createdLocalDraftMimeMessage ??= Base64LocalDraftMimeMessage.GetMimeMessageFromBase64();
return createdLocalDraftMimeMessage;
}
}
public MailAccount Account { get; set; }
}

View File

@@ -1,23 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using MimeKit;
using Wino.Core.Domain.Entities;
namespace Wino.Core.Domain.Models.MailItem
{
public class DraftPreperationRequest : DraftCreationOptions
{
public DraftPreperationRequest(MailAccount account, MailCopy createdLocalDraftCopy, MimeMessage createdLocalDraftMimeMessage)
{
Account = account ?? throw new ArgumentNullException(nameof(account));
CreatedLocalDraftCopy = createdLocalDraftCopy ?? throw new ArgumentNullException(nameof(createdLocalDraftCopy));
CreatedLocalDraftMimeMessage = createdLocalDraftMimeMessage ?? throw new ArgumentNullException(nameof(createdLocalDraftMimeMessage));
}
public MailCopy CreatedLocalDraftCopy { get; set; }
public MimeMessage CreatedLocalDraftMimeMessage { get; set; }
public MailAccount Account { get; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace Wino.Core.Domain.Models.MailItem
{
/// <summary>
/// An interface that returns the UniqueId store for IMailItem.
/// For threads, it may be multiple items.
/// For single mails, it'll always be one item.
/// </summary>
public interface IMailHashContainer
{
IEnumerable<Guid> GetContainingIds();
}
}

View File

@@ -6,7 +6,7 @@ namespace Wino.Core.Domain.Models.MailItem
/// <summary>
/// Interface of simplest representation of a MailCopy.
/// </summary>
public interface IMailItem
public interface IMailItem : IMailHashContainer
{
Guid UniqueId { get; }
string Id { get; }

View File

@@ -9,61 +9,31 @@ namespace Wino.Core.Domain.Models.MailItem
/// <summary>
/// Encapsulates the options for preparing requests to execute mail operations for mail items like Move, Delete, MarkAsRead, etc.
/// </summary>
public class MailOperationPreperationRequest
/// <param name="Action"> Action to execute. </param>
/// <param name="MailItems"> Mail copies execute the action on. </param>
/// <param name="ToggleExecution"> Whether the operation can be reverted if needed.
/// eg. MarkAsRead on already read item will set the action to MarkAsUnread.
/// This is used in hover actions for example. </param>
/// <param name="IgnoreHardDeleteProtection"> Whether hard delete protection should be ignored.
/// Discard draft requests for example should ignore hard delete protection. </param>
/// <param name="MoveTargetFolder"> Moving folder for the Move operation.
/// If null and the action is Move, the user will be prompted to select a folder. </param>
public record MailOperationPreperationRequest(MailOperation Action, IEnumerable<MailCopy> MailItems, bool ToggleExecution, bool IgnoreHardDeleteProtection, IMailItemFolder MoveTargetFolder)
{
public MailOperationPreperationRequest(MailOperation action,
IEnumerable<MailCopy> mailItems,
bool toggleExecution = false,
IMailItemFolder moveTargetFolder = null,
bool ignoreHardDeleteProtection = false)
bool ignoreHardDeleteProtection = false) : this(action, mailItems ?? throw new ArgumentNullException(nameof(mailItems)), toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
{
Action = action;
MailItems = mailItems ?? throw new ArgumentNullException(nameof(mailItems));
ToggleExecution = toggleExecution;
MoveTargetFolder = moveTargetFolder;
IgnoreHardDeleteProtection = ignoreHardDeleteProtection;
}
public MailOperationPreperationRequest(MailOperation action,
MailCopy singleMailItem,
bool toggleExecution = false,
IMailItemFolder moveTargetFolder = null,
bool ignoreHardDeleteProtection = false)
bool ignoreHardDeleteProtection = false) : this(action, new List<MailCopy>() { singleMailItem }, toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
{
Action = action;
MailItems = new List<MailCopy>() { singleMailItem };
ToggleExecution = toggleExecution;
MoveTargetFolder = moveTargetFolder;
IgnoreHardDeleteProtection = ignoreHardDeleteProtection;
}
/// <summary>
/// Action to execute.
/// </summary>
public MailOperation Action { get; set; }
/// <summary>
/// Mail copies execute the action on.
/// </summary>
public IEnumerable<MailCopy> MailItems { get; set; }
/// <summary>
/// Whether the operation can be reverted if needed.
/// eg. MarkAsRead on already read item will set the action to MarkAsUnread.
/// This is used in hover actions for example.
/// </summary>
public bool ToggleExecution { get; set; }
/// <summary>
/// Whether hard delete protection should be ignored.
/// Discard draft requests for example should ignore hard delete protection.
/// </summary>
public bool IgnoreHardDeleteProtection { get; set; }
/// <summary>
/// Moving folder for the Move operation.
/// If null and the action is Move, the user will be prompted to select a folder.
/// </summary>
public IMailItemFolder MoveTargetFolder { get; }
}
}

View File

@@ -1,7 +1,21 @@
using MimeKit;
using System.Text.Json.Serialization;
using MimeKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Extensions;
namespace Wino.Core.Domain.Models.MailItem
{
public record SendDraftPreparationRequest(MailCopy MailItem, MimeMessage Mime, MailItemFolder DraftFolder, MailItemFolder SentFolder, MailAccountPreferences AccountPreferences);
public record SendDraftPreparationRequest(MailCopy MailItem,
MailAccountAlias SendingAlias,
MailItemFolder SentFolder,
MailItemFolder DraftFolder,
MailAccountPreferences AccountPreferences,
string Base64MimeMessage)
{
[JsonIgnore]
private MimeMessage mime;
[JsonIgnore]
public MimeMessage Mime => mime ??= Base64MimeMessage.GetMimeMessageFromBase64();
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using Wino.Core.Domain.Entities;
@@ -40,6 +41,8 @@ namespace Wino.Core.Domain.Models.MailItem
}
}
public IEnumerable<Guid> GetContainingIds() => ThreadItems?.Select(a => a.UniqueId) ?? default;
#region IMailItem
public Guid UniqueId => LatestMailItem?.UniqueId ?? Guid.Empty;

View File

@@ -1,8 +1,7 @@
using System;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.MailItem;
namespace Wino.Core.Domain.Models.Requests
namespace Wino.Core.Domain.Models.MailItem
{
/// <summary>
/// Defines a single rule for toggling user actions if needed.

View File

@@ -3,6 +3,6 @@
public enum NavigationTransitionType
{
None, // Supress
DrillIn,
DrillIn
}
}

View File

@@ -1,4 +0,0 @@
namespace Wino.Core.Domain.Models.Personalization
{
public record MailListPaneLengthPreferences(string Title, double Length);
}

View File

@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Wino.Core.Domain.Models.Reader;
public class ImageInfo
{
[JsonPropertyName("data")]
public string Data { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
}

View File

@@ -11,10 +11,9 @@ namespace Wino.Core.Domain.Models.Reader
{
public string RenderHtml { get; }
public MailRenderingOptions MailRenderingOptions { get; }
public List<MimePart> Attachments { get; set; } = new List<MimePart>();
public List<MimePart> Attachments { get; set; } = [];
public string UnsubscribeLink { get; set; }
public bool CanUnsubscribe => !string.IsNullOrEmpty(UnsubscribeLink);
public UnsubscribeInfo UnsubscribeInfo { get; set; }
public MailRenderModel(string renderHtml, MailRenderingOptions mailRenderingOptions = null)
{
@@ -22,4 +21,12 @@ namespace Wino.Core.Domain.Models.Reader
MailRenderingOptions = mailRenderingOptions;
}
}
public class UnsubscribeInfo
{
public string HttpLink { get; set; }
public string MailToLink { get; set; }
public bool IsOneClick { get; set; }
public bool CanUnsubscribe => HttpLink != null || MailToLink != null;
}
}

View File

@@ -1,6 +0,0 @@
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Reader
{
public record ReaderFontModel(ReaderFont Font, string FontFamilyName);
}

View File

@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
namespace Wino.Core.Domain.Models.Reader
{
/// <summary>
/// Used to pass messages from the webview to the app.
/// </summary>
public class WebViewMessage
{
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("value")]
public string Value { get; set; }
}
}

View File

@@ -11,17 +11,23 @@ namespace Wino.Core.Domain.Models.Requests
public abstract IBatchChangeRequest CreateBatch(IEnumerable<IRequest> requests);
public abstract void ApplyUIChanges();
public abstract void RevertUIChanges();
public virtual bool DelayExecution => false;
}
public abstract record FolderRequestBase(MailItemFolder Folder, MailSynchronizerOperation Operation) : IFolderRequest
{
public abstract void ApplyUIChanges();
public abstract void RevertUIChanges();
public virtual bool DelayExecution => false;
}
public abstract record BatchRequestBase(IEnumerable<IRequest> Items, MailSynchronizerOperation Operation) : IBatchChangeRequest
{
public abstract void ApplyUIChanges();
public abstract void RevertUIChanges();
public virtual bool DelayExecution => false;
}
}

View File

@@ -0,0 +1,15 @@
using System;
using Wino.Core.Domain.Interfaces;
namespace Wino.Core.Domain.Models.Requests
{
/// <summary>
/// Encapsulates request to queue and account for synchronizer.
/// </summary>
/// <param name="AccountId">Which account to execute this request for.</param>
/// <param name="Request">Prepared request for the server.</param>
public record ServerRequestPackage(Guid AccountId, IRequestBase Request) : IClientMessage
{
public override string ToString() => $"Server Package: {Request.GetType().Name}";
}
}

View File

@@ -0,0 +1,40 @@
using Wino.Core.Domain.Exceptions;
namespace Wino.Core.Domain.Models.Server
{
/// <summary>
/// Encapsulates responses from the Wino server.
/// Exceptions are stored separately in the Message and StackTrace properties due to serialization issues.
/// </summary>
/// <typeparam name="T">Type of the expected response.</typeparam>
public class WinoServerResponse<T>
{
public bool IsSuccess { get; set; }
public string Message { get; set; }
public T Data { get; set; }
public static WinoServerResponse<T> CreateSuccessResponse(T data)
{
return new WinoServerResponse<T>
{
IsSuccess = true,
Data = data
};
}
public static WinoServerResponse<T> CreateErrorResponse(string message)
{
return new WinoServerResponse<T>
{
IsSuccess = false,
Message = message
};
}
public void ThrowIfFailed()
{
if (!IsSuccess)
throw new WinoServerException(Message);
}
}
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
namespace Wino.Core.Domain.Models.Synchronization
{
@@ -27,11 +26,6 @@ namespace Wino.Core.Domain.Models.Synchronization
/// </summary>
public List<Guid> SynchronizationFolderIds { get; set; }
/// <summary>
/// A listener to be notified about the progress of the synchronization.
/// </summary>
public ISynchronizationProgress ProgressListener { get; set; }
/// <summary>
/// When doing a linked inbox synchronization, we must ignore reporting completion to the caller for each folder.
/// This Id will help tracking that. Id is unique, but this one can be the same for all sync requests

View File

@@ -1,21 +1,38 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.MailItem;
namespace Wino.Core.Domain.Models.Synchronization
{
public class SynchronizationResult
{
protected SynchronizationResult() { }
public SynchronizationResult() { }
/// <summary>
/// Gets the new downloaded messages from synchronization.
/// Server will create notifications for these messages.
/// It's ignored in serialization. Client should not react to this.
/// </summary>
[JsonIgnore]
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = [];
public ProfileInformation ProfileInformation { get; set; }
public IEnumerable<IMailItem> DownloadedMessages { get; set; } = new List<IMailItem>();
public SynchronizationCompletedState CompletedState { get; set; }
public static SynchronizationResult Empty => new() { CompletedState = SynchronizationCompletedState.Success };
public static SynchronizationResult Completed(IEnumerable<IMailItem> downloadedMessages)
=> new() { DownloadedMessages = downloadedMessages, CompletedState = SynchronizationCompletedState.Success };
public static SynchronizationResult Completed(IEnumerable<IMailItem> downloadedMessages, ProfileInformation profileInformation = null)
=> new()
{
DownloadedMessages = downloadedMessages,
ProfileInformation = profileInformation,
CompletedState = SynchronizationCompletedState.Success
};
public static SynchronizationResult Canceled => new() { CompletedState = SynchronizationCompletedState.Canceled };
public static SynchronizationResult Failed => new() { CompletedState = SynchronizationCompletedState.Failed };
}
}

View File

@@ -36,8 +36,12 @@ namespace Wino.Core.Domain.Translations
AppLanguage.Polish => "pl_PL",
AppLanguage.Czech => "cs_CZ",
AppLanguage.French => "fr_FR",
AppLanguage.Chinese => "zh_CH",
AppLanguage.Chinese => "zh_CN",
AppLanguage.Spanish => "es_ES",
AppLanguage.Indonesian => "id_ID",
AppLanguage.Italian => "it_IT",
AppLanguage.Greek => "el_GR",
AppLanguage.PortugeseBrazil => "pt_BR",
_ => "en_US",
};
}

View File

@@ -6,6 +6,8 @@
"AccountEditDialog_Message": "Account Name",
"AccountEditDialog_Title": "Edit Account",
"AccountPickerDialog_Title": "Pick an account",
"AccountSettingsDialog_AccountName": "Sender Display Name",
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
"AddHyperlink": "Add",
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
@@ -25,7 +27,9 @@
"Buttons_Close": "Close",
"Buttons_Create": "Create",
"Buttons_CreateAccount": "Create Account",
"Buttons_Copy": "Copy",
"Buttons_Delete": "Delete",
"Buttons_Edit": "Edit",
"Buttons_Discard": "Discard",
"Buttons_EnableImageRendering": "Enable",
"Buttons_No": "No",
@@ -36,6 +40,7 @@
"Buttons_SaveConfiguration": "Save Configuration",
"Buttons_Share": "Share",
"Buttons_SignIn": "Sign In",
"Buttons_TryAgain": "Try Again",
"Buttons_Yes": "Yes",
"Center": "Center",
"ComingSoon": "Coming soon...",
@@ -46,6 +51,9 @@
"ClipboardTextCopied_Title": "Copied",
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
"ComposerToPlaceholder": "click enter to input addresses",
"ComposerAttachmentsDropZone_Message": "Drop your files here",
"ComposerImagesDropZone_Message": "Drop your images here",
"ComposerAttachmentsDragDropAttach_Message": "Attach",
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
"CustomThemeBuilder_AccentColorTitle": "Accent color",
"CustomThemeBuilder_PickColor": "Pick",
@@ -74,8 +82,15 @@
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
"DialogMessage_RenameFolderTitle": "Rename Folder",
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Do you want to stop getting messages from {0}? Wino will unsubscribe for you by sending an email from your email account to {1}.",
"Dialog_DontAskAgain": "Don't ask again",
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
"DiscordChannelDisclaimerTitle": "Important Discord Information",
@@ -85,10 +100,13 @@
"EditorToolbarOption_Insert": "Insert",
"EditorToolbarOption_None": "None",
"EditorToolbarOption_Options": "Options",
"EditorTooltip_WebViewEditor": "Use web view editor",
"ElementTheme_Dark": "Dark mode",
"ElementTheme_Default": "Use system setting",
"ElementTheme_Light": "Light mode",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
"Exception_AuthenticationCanceled": "Authentication canceled",
"Exception_CustomThemeExists": "This theme already exists.",
@@ -116,6 +134,7 @@
"FilteringOption_All": "All",
"FilteringOption_Flagged": "Flagged",
"FilteringOption_Unread": "Unread",
"FilteringOption_Files": "Has files",
"Focused": "Focused",
"FolderOperation_CreateSubFolder": "Create sub folder",
"FolderOperation_Delete": "Delete",
@@ -158,6 +177,8 @@
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
"IMAPSetupDialog_Username": "Username",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
"InfoBarAction_Enable": "Enable",
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
@@ -230,6 +251,8 @@
"Info_UnsupportedFunctionalityTitle": "Unsupported",
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
"ImapAuthenticationMethod_Auto": "Auto",
@@ -291,9 +314,9 @@
"NewAccountDialog_AccountNameDefaultValue": "Personal",
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
"NewAccountDialog_Title": "Add New Account",
"NoMailSelected": "no message selected",
"NoMessageCrieteria": "no messages match your search criteria.",
"NoMessageEmptyFolder": "this folder is empty.",
"NoMailSelected": "No message selected",
"NoMessageCrieteria": "No messages match your search criteria",
"NoMessageEmptyFolder": "This folder is empty",
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
"Notifications_MultipleNotificationsTitle": "New Mails",
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
@@ -310,12 +333,15 @@
"ProviderDetail_Gmail_Description": "Google Account",
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
"ProviderDetail_IMAP_Title": "IMAP Server",
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
"Results": "Results",
"Right": "Right",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "up to date",
"SynchronizationFolderReport_Failed": "synchronization is failed",
"SearchBarPlaceholder": "search",
"SearchingIn": "searching in",
"SearchBarPlaceholder": "Search",
"SearchingIn": "Searching in",
"SearchPivotName": "Results",
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
@@ -377,6 +403,8 @@
"SettingsHoverActions_Title": "Hover Actions",
"SettingsLanguage_Description": "Change display language for Wino.",
"SettingsLanguage_Title": "Display Language",
"SettingsLanguageTime_Title": "Language & Time",
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
"CategoriesFolderNameOverride": "Categories",
"MoreFolderNameOverride": "More",
"SettingsOptions_Title": "Settings",
@@ -392,6 +420,21 @@
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
"SettingsManageAccountSettings_Title": "Manage Account Settings",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Reorder Accounts",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsManageLink_Description": "Move items to add new link or remove existing link.",
"SettingsManageLink_Title": "Manage Link",
"SettingsMarkAsRead_Description": "Change what should happen to the selected item.",
@@ -416,8 +459,10 @@
"SettingsPersonalization_Title": "Personalization",
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
"SettingsPrivacyPolicy_Title": "Privacy Policy",
"SettingsReadingPane_Description": "Mail rendering options.",
"SettingsReadingPane_Title": "Reading Pane",
"SettingsReader_Title": "Reader",
"SettingsComposer_Title": "Composer",
"SettingsReadComposePane_Description": "Fonts, external content.",
"SettingsReadComposePane_Title": "Reader & Composer",
"SettingsReaderFont_Title": "Default Reader Font",
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
"SettingsFontFamily_Title": "Font Family",
@@ -435,7 +480,7 @@
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
"SettingsSignature_Description": "Edit or remove account signature",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_Title": "Signature",
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
"SettingsStartupItem_Title": "Startup Item",
@@ -478,5 +523,30 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SignatureEditorDialog_Title": "Signature Editor",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_Signatures": "Signatures",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_EditSignature_Title": "Edit signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
"SettingsSignature_NoneSignatureName": "None",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

View File

@@ -6,6 +6,8 @@
"AccountEditDialog_Message": "Název účtu",
"AccountEditDialog_Title": "Upravit účet",
"AccountPickerDialog_Title": "Vybrat účet",
"AccountSettingsDialog_AccountName": "Jméno odesílatele",
"AccountSettingsDialog_AccountNamePlaceholder": "např. Jan Novák",
"AddHyperlink": "Přidat",
"AutoDiscoveryProgressMessage": "Vyhledávání v nastaveních mailu...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Pokročilá nastavení",
@@ -25,7 +27,9 @@
"Buttons_Close": "Zavřít",
"Buttons_Create": "Vytvořit",
"Buttons_CreateAccount": "Vytvořit účet",
"Buttons_Copy": "Kopírovat",
"Buttons_Delete": "Smazat",
"Buttons_Edit": "Upravit",
"Buttons_Discard": "Zahodit",
"Buttons_EnableImageRendering": "Povolit",
"Buttons_No": "Ne",
@@ -36,6 +40,7 @@
"Buttons_SaveConfiguration": "Uložit nastavení",
"Buttons_Share": "Sdílet",
"Buttons_SignIn": "Přihlásit se",
"Buttons_TryAgain": "Zkusit znovu",
"Buttons_Yes": "Ano",
"Center": "Nastřed",
"ComingSoon": "Již brzy...",
@@ -46,6 +51,9 @@
"ClipboardTextCopied_Title": "Zkopírováno",
"ClipboardTextCopyFailed_Message": "Nepodařilo se zkopírovat \"{0}\" do schránky.",
"ComposerToPlaceholder": "pro vložení adresy zmáčkni Enter",
"ComposerAttachmentsDropZone_Message": "Sem přetáhněte soubory",
"ComposerImagesDropZone_Message": "Drop your images here",
"ComposerAttachmentsDragDropAttach_Message": "Přiložit",
"CustomThemeBuilder_AccentColorDescription": "Pokud chcete, můžete si nastavit barevný tón. Jinak se použije se výchozí barevný tón Windows.",
"CustomThemeBuilder_AccentColorTitle": "Barevný tón",
"CustomThemeBuilder_PickColor": "Vybrat",
@@ -74,8 +82,15 @@
"DialogMessage_RenameLinkedAccountsTitle": "Přejmenovat propojený účet",
"DialogMessage_UnlinkAccountsConfirmationMessage": "Tato operace neodstraní vaše mailové účty, ale pouze zruší jejich propojení. Chcete pokračovat?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Rozpojit účty",
"DialogMessage_EmptySubjectConfirmation": "Chybějící Předmět",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Zpráva nemá Předmět. Chcete pokračovat?",
"DialogMessage_RenameFolderTitle": "Rename Folder",
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
"DialogMessage_UnsubscribeConfirmationTitle": "Odhlásit",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Chcete přestat dostávat zprávy od {0}?",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Chcete-li přestat dostávat zprávy od {0}, přejděte na jejich webové stránky a odhlašte se.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Přejít na web",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Chcete přestat dostávat zprávy od {0}? Wino se za vás odhlásí zasláním e-mailu z Vašeho e-mailového účtu na {1}.",
"Dialog_DontAskAgain": "Příště se neptat",
"DiscordChannelDisclaimerMessage": "Wino nemá vlastní Discord server, ale speciální kanál 'wino-mail' je hostován na serveru 'Developer Sanctuary'.\nChcete-li získat informace o Winu, připojte se k vývojářskému serveru a sledujte 'wino-mail' kanál v rámci 'Community Projects'. \n\nBudete přesměrováni na stránku serveru 'Developer Sanctuary', protože Discord nepodporuje pozvánky přímo do kanálů.",
"DiscordChannelDisclaimerTitle": "Důležité Discord informace",
@@ -85,10 +100,13 @@
"EditorToolbarOption_Insert": "Vložit",
"EditorToolbarOption_None": "Žádné",
"EditorToolbarOption_Options": "Možnosti",
"EditorTooltip_WebViewEditor": "Use web view editor",
"ElementTheme_Dark": "Tmavý režim",
"ElementTheme_Default": "Použít nastavení systému",
"ElementTheme_Light": "Světlý režim",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_ImapAutoDiscoveryFailed": "Nastavení poštovní schránky se nepodařilo najít.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool selhal.",
"Exception_AuthenticationCanceled": "Ověřování bylo zrušeno",
"Exception_CustomThemeExists": "Tento motiv už existuje.",
@@ -116,6 +134,7 @@
"FilteringOption_All": "Všechny",
"FilteringOption_Flagged": "Označené",
"FilteringOption_Unread": "Nepřečtené",
"FilteringOption_Files": "Obsahuje soubory",
"Focused": "Důležité",
"FolderOperation_CreateSubFolder": "Vytvořit podsložku",
"FolderOperation_Delete": "Odstranit",
@@ -158,6 +177,8 @@
"IMAPSetupDialog_UseSameConfig": "Použít stejné uživatelské jméno a heslo pro odesílání e-mailu",
"IMAPSetupDialog_Username": "Uživatelské jméno",
"IMAPSetupDialog_UsernamePlaceholder": "jan.novak, jan.novak@seznam.cz",
"IMAPSetupDialog_ConnectionFailedTitle": "Připojení se nezdařilo",
"IMAPSetupDialog_ConnectionFailedMessage": "Připojení IMAP se nezdařilo.",
"ImageRenderingDisabled": "Vykreslování obrázků je pro tuto zprávu zakázáno.",
"InfoBarAction_Enable": "Zapnout",
"InfoBarMessage_SynchronizationDisabledFolder": "Synchronizace této složky je vypnuta.",
@@ -230,6 +251,8 @@
"Info_UnsupportedFunctionalityTitle": "Nepodporováno",
"Info_UnsubscribeLinkInvalidTitle": "Neplatná URI pro odhlášení mailu",
"Info_UnsubscribeLinkInvalidMessage": "Tento odkaz pro odhlášení je neplatný. Nepodařilo se odhlásit automatizované zasílání e-mailu.",
"Info_UnsubscribeSuccessMessage": "Odběr {0} byl úspěšně odhlášen.",
"Info_UnsubscribeErrorMessage": "Nepodařilo se odhlásit odběr",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Způsob ověření",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Zabezpečení připojení",
"ImapAuthenticationMethod_Auto": "Auto",
@@ -291,9 +314,9 @@
"NewAccountDialog_AccountNameDefaultValue": "Osobní",
"NewAccountDialog_AccountNamePlaceholder": "např. Osobní účet",
"NewAccountDialog_Title": "Přidat nový účet",
"NoMailSelected": "nebyly vybrány žádné zprávy",
"NoMessageCrieteria": "žádná zpráva neodpovídá kritériím vyhledávání.",
"NoMessageEmptyFolder": "Tato složka je prázdná.",
"NoMailSelected": "Nebyly vybrány žádné zprávy",
"NoMessageCrieteria": "Žádná zpráva neodpovídá kritériím vyhledávání",
"NoMessageEmptyFolder": "Tato složka je prázdná",
"Notifications_MultipleNotificationsMessage": "Máš {0} nových zpráv.",
"Notifications_MultipleNotificationsTitle": "Nová pošta",
"Notifications_WinoUpdatedMessage": "Vyzkoušejte novou verzi {0}",
@@ -310,12 +333,15 @@
"ProviderDetail_Gmail_Description": "Google účet",
"ProviderDetail_IMAP_Description": "Vlastní IMAP/SMTP server",
"ProviderDetail_IMAP_Title": "IMAP server",
"ProtocolLogAvailable_Message": "Protokoly jsou k dispozici pro diagnostiku.",
"Results": "Výsledky",
"Right": "Vpravo",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "Aktuální",
"SynchronizationFolderReport_Failed": "Synchronizace se nezdařila.",
"SearchBarPlaceholder": "vyhledávaný výraz",
"SearchBarPlaceholder": "Vyhledávaný výraz",
"SearchingIn": "Vyhledávání v",
"SearchPivotName": "Výsledky",
"SettingsAboutGithub_Description": "Přejít na seznam chyb na GitHub.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Přidat zprávy do složky Odeslané",
@@ -377,6 +403,8 @@
"SettingsHoverActions_Title": "Akce při přejetí myší",
"SettingsLanguage_Description": "Změnit jazyk aplikace pro Wino.",
"SettingsLanguage_Title": "Jazyk aplikace",
"SettingsLanguageTime_Title": "Jazyk & čas",
"SettingsLanguageTime_Description": "Jazyk aplikace Wino, preferovaný formát času.",
"CategoriesFolderNameOverride": "Kategorie",
"MoreFolderNameOverride": "Více",
"SettingsOptions_Title": "Nastavení",
@@ -392,6 +420,21 @@
"SettingsFolderMenuStyle_Description": "Změnit, zda by složky účtu měly být vnořeny uvnitř nabídky účtu či nikoli. Vypněte tento režim, pokud se vám líbí starý systém menu Windows Mail",
"SettingsManageAccountSettings_Description": "Oznámení, podpisy, synchronizace a další nastavení pro jednotlivé účty.",
"SettingsManageAccountSettings_Title": "Správa nastavení účtů",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Změna pořadí účtů",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsManageLink_Description": "Přesunout položky pro přidání nového propojení účtů nebo odstranění již existujícího.",
"SettingsManageLink_Title": "Spravovat propojení",
"SettingsMarkAsRead_Description": "Změnit, co by se mělo stát s vybranou položkou.",
@@ -416,8 +459,10 @@
"SettingsPersonalization_Title": "Přizpůsobení",
"SettingsPrivacyPolicy_Description": "Zkontrolujte zásady ochrany osobních údajů.",
"SettingsPrivacyPolicy_Title": "Zásady ochrany osobních údajů",
"SettingsReadingPane_Description": "Možnosti vykreslování e-mailů.",
"SettingsReadingPane_Title": "Panel s vykreskeným e-mailem",
"SettingsReader_Title": "Reader",
"SettingsComposer_Title": "Composer",
"SettingsReadComposePane_Description": "Fonts, external content.",
"SettingsReadComposePane_Title": "Reader & Composer",
"SettingsReaderFont_Title": "Výchozí font pro vykreslení e-mailu",
"SettingsReaderFontFamily_Description": "Změna výchozího fontu a jeho velikosti pro vykreslení e-mailu",
"SettingsFontFamily_Title": "Font",
@@ -435,7 +480,7 @@
"SettingsShowSenderPictures_Title": "Zobrazit avatary odesílatele",
"SettingsPrefer24HourClock_Title": "Zobrazit 24-hodinový formát času",
"SettingsPrefer24HourClock_Description": "Čas přijetí pošty bude zobrazen ve 24-hodinovém formátu času, namísto 12-hodinového (AM/PM)",
"SettingsSignature_Description": "Upravit nebo odebrat podpis účtu",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_Title": "Podpis",
"SettingsStartupItem_Description": "Primární účet zobrazený po startu",
"SettingsStartupItem_Title": "Primární účet",
@@ -478,5 +523,30 @@
"WinoUpgradeDescription": "Wino nabízí 3 účty zdarma. Pokud potřebujete více než 3 účty, upgradujte prosím.",
"WinoUpgradeMessage": "Přejít na neomezený počet účtů",
"WinoUpgradeRemainingAccountsMessage": "{0} z {1} použitých bezplatných účtů.",
"Yesterday": "Včera"
"Yesterday": "Včera",
"SignatureEditorDialog_Title": "Signature Editor",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_Signatures": "Signatures",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_EditSignature_Title": "Edit signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
"SettingsSignature_NoneSignatureName": "None",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

View File

@@ -6,6 +6,8 @@
"AccountEditDialog_Message": "Account Name",
"AccountEditDialog_Title": "Edit Account",
"AccountPickerDialog_Title": "Pick an account",
"AccountSettingsDialog_AccountName": "Sender Display Name",
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
"AddHyperlink": "Add",
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
@@ -25,7 +27,9 @@
"Buttons_Close": "Close",
"Buttons_Create": "Create",
"Buttons_CreateAccount": "Create Account",
"Buttons_Copy": "Copy",
"Buttons_Delete": "Delete",
"Buttons_Edit": "Edit",
"Buttons_Discard": "Discard",
"Buttons_EnableImageRendering": "Enable",
"Buttons_No": "No",
@@ -36,6 +40,7 @@
"Buttons_SaveConfiguration": "Save Configuration",
"Buttons_Share": "Share",
"Buttons_SignIn": "Sign In",
"Buttons_TryAgain": "Try Again",
"Buttons_Yes": "Yes",
"Center": "Center",
"ComingSoon": "Coming soon...",
@@ -46,6 +51,9 @@
"ClipboardTextCopied_Title": "Copied",
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
"ComposerToPlaceholder": "click enter to input addresses",
"ComposerAttachmentsDropZone_Message": "Drop your files here",
"ComposerImagesDropZone_Message": "Drop your images here",
"ComposerAttachmentsDragDropAttach_Message": "Attach",
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
"CustomThemeBuilder_AccentColorTitle": "Accent color",
"CustomThemeBuilder_PickColor": "Pick",
@@ -74,8 +82,15 @@
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
"DialogMessage_RenameFolderTitle": "Rename Folder",
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Do you want to stop getting messages from {0}? Wino will unsubscribe for you by sending an email from your email account to {1}.",
"Dialog_DontAskAgain": "Don't ask again",
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
"DiscordChannelDisclaimerTitle": "Important Discord Information",
@@ -85,10 +100,13 @@
"EditorToolbarOption_Insert": "Insert",
"EditorToolbarOption_None": "None",
"EditorToolbarOption_Options": "Options",
"EditorTooltip_WebViewEditor": "Use web view editor",
"ElementTheme_Dark": "Dark mode",
"ElementTheme_Default": "Use system setting",
"ElementTheme_Light": "Light mode",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
"Exception_AuthenticationCanceled": "Authentication canceled",
"Exception_CustomThemeExists": "This theme already exists.",
@@ -116,6 +134,7 @@
"FilteringOption_All": "All",
"FilteringOption_Flagged": "Flagged",
"FilteringOption_Unread": "Unread",
"FilteringOption_Files": "Has files",
"Focused": "Focused",
"FolderOperation_CreateSubFolder": "Create sub folder",
"FolderOperation_Delete": "Delete",
@@ -158,6 +177,8 @@
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
"IMAPSetupDialog_Username": "Username",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
"InfoBarAction_Enable": "Enable",
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
@@ -230,6 +251,8 @@
"Info_UnsupportedFunctionalityTitle": "Unsupported",
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
"ImapAuthenticationMethod_Auto": "Auto",
@@ -291,9 +314,9 @@
"NewAccountDialog_AccountNameDefaultValue": "Personal",
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
"NewAccountDialog_Title": "Add New Account",
"NoMailSelected": "no message selected",
"NoMessageCrieteria": "no messages match your search criteria.",
"NoMessageEmptyFolder": "this folder is empty.",
"NoMailSelected": "No message selected",
"NoMessageCrieteria": "No messages match your search criteria",
"NoMessageEmptyFolder": "This folder is empty",
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
"Notifications_MultipleNotificationsTitle": "New Mails",
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
@@ -310,12 +333,15 @@
"ProviderDetail_Gmail_Description": "Google Account",
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
"ProviderDetail_IMAP_Title": "IMAP Server",
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
"Results": "Results",
"Right": "Right",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "up to date",
"SynchronizationFolderReport_Failed": "synchronization is failed",
"SearchBarPlaceholder": "search",
"SearchingIn": "searching in",
"SearchBarPlaceholder": "Search",
"SearchingIn": "Searching in",
"SearchPivotName": "Results",
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
@@ -377,6 +403,8 @@
"SettingsHoverActions_Title": "Hover Actions",
"SettingsLanguage_Description": "Change display language for Wino.",
"SettingsLanguage_Title": "Display Language",
"SettingsLanguageTime_Title": "Language & Time",
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
"CategoriesFolderNameOverride": "Categories",
"MoreFolderNameOverride": "More",
"SettingsOptions_Title": "Settings",
@@ -392,6 +420,21 @@
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
"SettingsManageAccountSettings_Title": "Manage Account Settings",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Reorder Accounts",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsManageLink_Description": "Move items to add new link or remove existing link.",
"SettingsManageLink_Title": "Manage Link",
"SettingsMarkAsRead_Description": "Change what should happen to the selected item.",
@@ -416,8 +459,10 @@
"SettingsPersonalization_Title": "Personalization",
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
"SettingsPrivacyPolicy_Title": "Privacy Policy",
"SettingsReadingPane_Description": "Mail rendering options.",
"SettingsReadingPane_Title": "Reading Pane",
"SettingsReader_Title": "Reader",
"SettingsComposer_Title": "Composer",
"SettingsReadComposePane_Description": "Fonts, external content.",
"SettingsReadComposePane_Title": "Reader & Composer",
"SettingsReaderFont_Title": "Default Reader Font",
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
"SettingsFontFamily_Title": "Font Family",
@@ -435,7 +480,7 @@
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
"SettingsSignature_Description": "Edit or remove account signature",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_Title": "Signature",
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
"SettingsStartupItem_Title": "Startup Item",
@@ -478,5 +523,30 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SignatureEditorDialog_Title": "Signature Editor",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_Signatures": "Signatures",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_EditSignature_Title": "Edit signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
"SettingsSignature_NoneSignatureName": "None",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

View File

@@ -1,18 +1,20 @@
{
"AccountCreationDialog_Completed": "alles erledigt",
"AccountCreationDialog_Initializing": "initialisiere",
"AccountCreationDialog_Initializing": "Initialisierung",
"AccountCreationDialog_PreparingFolders": "Es werden Ordner-Informationen gesammelt.",
"AccountCreationDialog_SigninIn": "Kontoinformationen wurden gespeichert.",
"AccountEditDialog_Message": "Konto-Name",
"AccountEditDialog_Title": "Konto bearbeiten",
"AccountPickerDialog_Title": "Konto auswählen",
"AccountSettingsDialog_AccountName": "Absender-Anzeigename",
"AccountSettingsDialog_AccountNamePlaceholder": "z.B. Max Mustermann",
"AddHyperlink": "Hinzufügen",
"AutoDiscoveryProgressMessage": "Es wird nach Mail-Einstellungen gesucht...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Erweiterte Konfiguration",
"BasicIMAPSetupDialog_CredentialLocalMessage": "Die Zugangsdaten werden nur lokal auf Ihrem Computer gespeichert.",
"BasicIMAPSetupDialog_Description": "Einige Konten benötigen zusätzliche Schritte zum Anmelden",
"BasicIMAPSetupDialog_DisplayName": "Anzeigename",
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "z.B. John Doe",
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "z.B. Max Mustermann",
"BasicIMAPSetupDialog_LearnMore": "Mehr erfahren",
"BasicIMAPSetupDialog_MailAddress": "E-Mail Adresse",
"BasicIMAPSetupDialog_MailAddressPlaceholder": "johndoe@fabrikam.com",
@@ -25,9 +27,11 @@
"Buttons_Close": "Schließen",
"Buttons_Create": "Erstellen",
"Buttons_CreateAccount": "Konto erstellen",
"Buttons_Copy": "Kopieren",
"Buttons_Delete": "Löschen",
"Buttons_Edit": "Bearbeiten",
"Buttons_Discard": "Verwerfen",
"Buttons_EnableImageRendering": "An",
"Buttons_EnableImageRendering": "Aktivieren",
"Buttons_No": "Nein",
"Buttons_Open": "Öffnen",
"Buttons_Purchase": "Kaufen",
@@ -36,6 +40,7 @@
"Buttons_SaveConfiguration": "Einstellungen speichern",
"Buttons_Share": "Teilen",
"Buttons_SignIn": "Anmelden",
"Buttons_TryAgain": "Wiederholen",
"Buttons_Yes": "Ja",
"Center": "Zentriert",
"ComingSoon": "Bald verfügbar...",
@@ -44,13 +49,16 @@
"ComposerTo": "An: ",
"ClipboardTextCopied_Message": "{0} in die Zwischenablage kopiert.",
"ClipboardTextCopied_Title": "Kopiert",
"ClipboardTextCopyFailed_Message": "Konnte {0} nicht in die Zwischenablage kopieren.",
"ComposerToPlaceholder": "klicke Enter, um Adressen einzugeben",
"ClipboardTextCopyFailed_Message": "{0} konnte nicht in die Zwischenablage kopiert werden.",
"ComposerToPlaceholder": "Klicke Enter um Adressen einzugeben",
"ComposerAttachmentsDropZone_Message": "Dateien hier ablegen",
"ComposerImagesDropZone_Message": "Bilder hier ablegen",
"ComposerAttachmentsDragDropAttach_Message": "Anhängen",
"CustomThemeBuilder_AccentColorDescription": "Legen Sie eine benutzerdefinierte Akzentfarbe fest. Wenn Sie keine Farbe wählen, wird die Akzentfarbe von Windows verwendet.",
"CustomThemeBuilder_AccentColorTitle": "Akzentfarbe",
"CustomThemeBuilder_PickColor": "Auswählen",
"CustomThemeBuilder_ThemeNameDescription": "Eindeutiger Name für Ihr benutzerdefiniertes Thema.",
"CustomThemeBuilder_ThemeNameTitle": "Name des Designs",
"CustomThemeBuilder_ThemeNameTitle": "Name des Themas",
"CustomThemeBuilder_Title": "Benutzerdefinierter Theme-Generator",
"CustomThemeBuilder_WallpaperDescription": "Eigenen Hintergrund für Wino festlegen",
"CustomThemeBuilder_WallpaperTitle": "Eigenen Hintergrund festlegen",
@@ -74,8 +82,15 @@
"DialogMessage_RenameLinkedAccountsTitle": "Verknüpftes Konto umbenennen",
"DialogMessage_UnlinkAccountsConfirmationMessage": "Dieser Vorgang wird Ihre Konten nicht löschen, sondern nur den Link für freigegebene Ordnerverbindungen zerstören. Möchten Sie fortfahren?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Konten trennen",
"DialogMessage_EmptySubjectConfirmation": "Betreff fehlt",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Nachricht hat keinen Betreff. Möchten Sie fortfahren?",
"DialogMessage_RenameFolderTitle": "Ordner umbenennen",
"DialogMessage_RenameFolderMessage": "Geben Sie einen neuen Namen für diesen Ordner ein",
"DialogMessage_UnsubscribeConfirmationTitle": "Abmelden",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Möchten Sie den Empfang von Nachrichten von {0} beenden?",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Um Nachrichten von {0} nicht mehr zu erhalten, gehen Sie auf die Webseite, um sich abzumelden.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Zur Webseite",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Möchten Sie den Empfang von Nachrichten von {0} beenden? Wino wird sich für Sie abmelden, indem es eine E-Mail aus Ihrem E-Mail-Konto an {1} sendet.",
"Dialog_DontAskAgain": "Nicht mehr fragen",
"DiscordChannelDisclaimerMessage": "Wino hat keinen eigenen Discord Server, aber der spezielle 'wino-mail'-Kanal wird auf dem 'Developer Sanctuary' Server gehostet (englisch).\nUm Updates über Wino zu erhalten, treten Sie gerne dem 'Developer Sactuary'-Server bei und folgen dem 'wino-mail'-Kanal unter 'Community Projects'.\n\nSie werden zur Server-URL weitergeleitet, da Discord keine Kanal-Einladungen unterstützt.",
"DiscordChannelDisclaimerTitle": "Wichtige Discord-Informationen",
@@ -85,10 +100,13 @@
"EditorToolbarOption_Insert": "Einfügen",
"EditorToolbarOption_None": "Keine",
"EditorToolbarOption_Options": "Optionen",
"EditorTooltip_WebViewEditor": "Web-View Editor verwenden",
"ElementTheme_Dark": "Dunkler Modus",
"ElementTheme_Default": "Systemeinstellung verwenden",
"ElementTheme_Light": "Heller Modus",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_ImapAutoDiscoveryFailed": "Mailbox-Einstellungen konnten nicht gefunden werden.",
"Exception_ImapClientPoolFailed": "IMAP Client-Pool fehlgeschlagen.",
"Exception_AuthenticationCanceled": "Authentifizierung abgebrochen",
"Exception_CustomThemeExists": "Dieses Thema existiert bereits.",
@@ -111,11 +129,12 @@
"Exception_UnsupportedProvider": "Dieser Anbieter wird nicht unterstützt.",
"Exception_UnsupportedSynchronizerOperation": "Diese Operation wird für {0} nicht unterstützt",
"Exception_UserCancelSystemFolderSetupDialog": "Benutzer hat den Konfigurationsdialog für den Systemordner abgebrochen.",
"Exception_InboxNotAvailable": "Couldn't setup account folders.",
"Exception_InboxNotAvailable": "Konto-Ordner konnten nicht eingerichtet werden.",
"Files": "Dateien",
"FilteringOption_All": "Alle",
"FilteringOption_Flagged": "Markiert",
"FilteringOption_Unread": "Ungelesen",
"FilteringOption_Files": "Enthält Dateien",
"Focused": "Fokussiert",
"FolderOperation_CreateSubFolder": "Unterordner erstellen",
"FolderOperation_Delete": "Löschen",
@@ -158,6 +177,8 @@
"IMAPSetupDialog_UseSameConfig": "Den gleichen Benutzernamen und das gleiche Passwort für das Senden von E-Mails verwenden",
"IMAPSetupDialog_Username": "Benutzername",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
"IMAPSetupDialog_ConnectionFailedTitle": "Verbindung fehlgeschlagen",
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP Verbindung fehlgeschlagen.",
"ImageRenderingDisabled": "Bilddarstellung ist für diese Nachricht deaktiviert.",
"InfoBarAction_Enable": "Aktivieren",
"InfoBarMessage_SynchronizationDisabledFolder": "Dieser Ordner wird nicht synchronisiert.",
@@ -230,6 +251,8 @@
"Info_UnsupportedFunctionalityTitle": "Nicht unterstützt",
"Info_UnsubscribeLinkInvalidTitle": "Ungültige Abmelde-Uri",
"Info_UnsubscribeLinkInvalidMessage": "Dieser Abmeldelink ist ungültig. Fehler beim Abmelden der Liste.",
"Info_UnsubscribeSuccessMessage": "Erfolgreich von {0} abgemeldet.",
"Info_UnsubscribeErrorMessage": "Abmeldung fehlgeschlagen",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentifizierungsmethode",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Verbindungssicherheit",
"ImapAuthenticationMethod_Auto": "Auto",
@@ -291,9 +314,9 @@
"NewAccountDialog_AccountNameDefaultValue": "Persönlich",
"NewAccountDialog_AccountNamePlaceholder": "z.B. Persönliche Mails",
"NewAccountDialog_Title": "Neues Konto hinzufügen",
"NoMailSelected": "keine Nachricht ausgewählt",
"NoMessageCrieteria": "Keine Nachrichten entsprechen Ihren Suchkriterien.",
"NoMessageEmptyFolder": "Dieser Ordner ist leer.",
"NoMailSelected": "Keine Nachricht ausgewählt",
"NoMessageCrieteria": "Keine Nachrichten entsprechen Ihren Suchkriterien",
"NoMessageEmptyFolder": "Dieser Ordner ist leer",
"Notifications_MultipleNotificationsMessage": "Sie haben {0} neue Mails",
"Notifications_MultipleNotificationsTitle": "Neue Mails",
"Notifications_WinoUpdatedMessage": "Neue Version {0} herunterladen",
@@ -310,12 +333,15 @@
"ProviderDetail_Gmail_Description": "Google-Konto",
"ProviderDetail_IMAP_Description": "Eigener IMAP/SMTP Server",
"ProviderDetail_IMAP_Title": "IMAP-Server",
"ProtocolLogAvailable_Message": "Protokolle zur Diagnose sind verfügbar.",
"Results": "Ergebnisse",
"Right": "Rechts",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "aktuell",
"SynchronizationFolderReport_Failed": "Synchronisierung fehlgeschlagen",
"SearchBarPlaceholder": "Suche",
"SearchingIn": "suche in",
"SearchingIn": "Suche in",
"SearchPivotName": "Ergebnisse",
"SettingsAboutGithub_Description": "Gehen Sie zum Problem-Tracker GitHub-Repository.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Nachrichten an Gesendete Ordner anhängen",
@@ -377,6 +403,8 @@
"SettingsHoverActions_Title": "Hover-Aktionen",
"SettingsLanguage_Description": "Anzeigesprache für Wino ändern.",
"SettingsLanguage_Title": "Anzeigesprache",
"SettingsLanguageTime_Title": "Sprache und Zeit",
"SettingsLanguageTime_Description": "Wino Anzeigesprache, bevorzugtes Zeitformat.",
"CategoriesFolderNameOverride": "Kategorien",
"MoreFolderNameOverride": "Mehr",
"SettingsOptions_Title": "Einstellungen",
@@ -392,6 +420,21 @@
"SettingsFolderMenuStyle_Description": "Ändern Sie, ob Kontoordner in einem Konten-Menüpunkt verschachtelt werden sollen oder nicht. Schalten Sie dies aus, wenn Sie das alte Menüsystem in Windows Mail mögen.",
"SettingsManageAccountSettings_Description": "Benachrichtigungen, Signaturen, Synchronisierung und andere Einstellungen pro Konto.",
"SettingsManageAccountSettings_Title": "Kontoeinstellungen verwalten",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Konten neu ordnen",
"SettingsReorderAccounts_Description": "Ändern Sie die Konten-Reihenfolge in der Kontenliste.",
"SettingsManageLink_Description": "Elemente verschieben, um neuen Link hinzuzufügen oder bestehenden Link zu entfernen.",
"SettingsManageLink_Title": "Link verwalten",
"SettingsMarkAsRead_Description": "Ändern Sie, was mit dem ausgewählten Element passieren soll.",
@@ -412,12 +455,14 @@
"SettingsPersonalizationMailDisplayCompactMode": "Kompakter Modus",
"SettingsPersonalizationMailDisplayMediumMode": "Mittlerer Modus",
"SettingsPersonalizationMailDisplaySpaciousMode": "Geräumiger Modus",
"SettingsPersonalization_Description": "Ändern Sie das Aussehen von Wino nach Ihren Belieben.",
"SettingsPersonalization_Description": "Ändern Sie das Aussehen von Wino nach Ihren Vorlieben.",
"SettingsPersonalization_Title": "Personalisierung",
"SettingsPrivacyPolicy_Description": "Datenschutzrichtlinie ansehen.",
"SettingsPrivacyPolicy_Title": "Datenschutzerklärung",
"SettingsReadingPane_Description": "Mail-Darstellungs-Optionen.",
"SettingsReadingPane_Title": "Lesefenster",
"SettingsReader_Title": "Leseansicht",
"SettingsComposer_Title": "Verfasser",
"SettingsReadComposePane_Description": "Schriftarten, externe Inhalte.",
"SettingsReadComposePane_Title": "Leseansicht & Verfasser",
"SettingsReaderFont_Title": "Standard Lese-Schriftart",
"SettingsReaderFontFamily_Description": "Ändern Sie die Standardschriftart und Schriftgröße für das Lesen von Mails.",
"SettingsFontFamily_Title": "Schriftart",
@@ -435,7 +480,7 @@
"SettingsShowSenderPictures_Title": "Absender-Profilbilder anzeigen",
"SettingsPrefer24HourClock_Title": "Uhr-Format in 24 Stunden anzeigen",
"SettingsPrefer24HourClock_Description": "Empfangszeiten für Mails werden im 24-Stunden-Format statt 12 (AM/PM) angezeigt",
"SettingsSignature_Description": "Kontosignatur bearbeiten oder entfernen",
"SettingsSignature_Description": "Kontosignaturen verwalten",
"SettingsSignature_Title": "Signatur",
"SettingsStartupItem_Description": "Primäres Konto zum Laden des Posteingangs beim Starten.",
"SettingsStartupItem_Title": "Startelement",
@@ -478,5 +523,30 @@
"WinoUpgradeDescription": "Wino bietet 3 Accounts zum kostenlosen Start an. Wenn Sie mehr als 3 Accounts benötigen, upgraden Sie bitte.",
"WinoUpgradeMessage": "Auf unbegrenzte Konten upgraden",
"WinoUpgradeRemainingAccountsMessage": "{0} von {1} kostenlosen Konten verwendet.",
"Yesterday": "Gestern"
"Yesterday": "Gestern",
"SignatureEditorDialog_Title": "Signatur-Editor",
"SignatureEditorDialog_SignatureName_Placeholder": "Fügen Sie Ihre Signatur ein",
"SignatureEditorDialog_SignatureName_TitleNew": "Signaturname",
"SignatureEditorDialog_SignatureName_TitleEdit": "Aktueller Signaturname: {0}",
"SignatureDeleteDialog_Title": "Signatur löschen",
"SignatureDeleteDialog_Message": "Wollen Sie Signatur \"{0}\" wirklich löschen?",
"SettingsSignature_ForNewMessages_Title": "Für neue Nachrichten",
"SettingsSignature_ForFollowingMessages_Title": "Für Antworten/Weiterleitungen",
"SettingsSignature_SignatureDefaults": "Standard-Signaturen",
"SettingsSignature_Signatures": "Signaturen",
"SettingsSignature_AddCustomSignature_Title": "Eigene Signatur hinzufügen",
"SettingsSignature_AddCustomSignature_Button": "Signatur hinzufügen",
"SettingsSignature_EditSignature_Title": "Signatur bearbeiten",
"SettingsSignature_DeleteSignature_Title": "Signatur löschen",
"SettingsSignature_NoneSignatureName": "Keine",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

View File

@@ -0,0 +1,552 @@
{
"AccountCreationDialog_Completed": "όλα έτοιμα",
"AccountCreationDialog_Initializing": "αρχικοποιείται",
"AccountCreationDialog_PreparingFolders": "Προς το παρόν λαμβάνουμε πληροφορίες φακέλων.",
"AccountCreationDialog_SigninIn": "Οι πληροφορίες λογαριασμού αποθηκεύονται.",
"AccountEditDialog_Message": "Όνομα Λογαριασμού",
"AccountEditDialog_Title": "Επεξεργασία Λογαριασμού",
"AccountPickerDialog_Title": "Επιλέξτε έναν λογαριασμό",
"AccountSettingsDialog_AccountName": "Εμφανιζόμενο Όνομα Αποστολέα",
"AccountSettingsDialog_AccountNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
"AddHyperlink": "Προσθήκη",
"AutoDiscoveryProgressMessage": "Αναζήτηση για ρυθμίσεις αλληλογραφίας...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Σύνθετη Διαμόρφωση",
"BasicIMAPSetupDialog_CredentialLocalMessage": "Τα διαπιστευτήριά σας θα αποθηκεύονται μόνο τοπικά στον υπολογιστή σας.",
"BasicIMAPSetupDialog_Description": "Ορισμένοι λογαριασμοί απαιτούν πρόσθετα βήματα για να συνδεθούν",
"BasicIMAPSetupDialog_DisplayName": "Εμφανιζόμενο Όνομα",
"BasicIMAPSetupDialog_DisplayNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
"BasicIMAPSetupDialog_LearnMore": "Μάθετε περισσότερα",
"BasicIMAPSetupDialog_MailAddress": "Διεύθυνση E-mail",
"BasicIMAPSetupDialog_MailAddressPlaceholder": "gianpapadakis@magazi.com",
"BasicIMAPSetupDialog_Password": "Κωδικόs πρόσβασης",
"BasicIMAPSetupDialog_Title": "Λογαριασμός IMAP",
"Buttons_AddAccount": "Προσθήκη Λογαριασμού",
"Buttons_ApplyTheme": "Εφαρμογή Θέματος",
"Buttons_Browse": "Περιήγηση",
"Buttons_Cancel": "Ακύρωση",
"Buttons_Close": "Κλείσιμο",
"Buttons_Create": "Δημιουργία",
"Buttons_CreateAccount": "Δημιουργία Λογαριασμού",
"Buttons_Copy": "Αντιγραφή",
"Buttons_Delete": "Διαγραφή",
"Buttons_Edit": "Επεξεργασία",
"Buttons_Discard": "Απόρριψη",
"Buttons_EnableImageRendering": "Ενεργοποίηση",
"Buttons_No": "Όχι",
"Buttons_Open": "Άνοιγμα",
"Buttons_Purchase": "Αγορά",
"Buttons_RateWino": "Αξιολογήστε το Wino",
"Buttons_Save": "Αποθήκευση",
"Buttons_SaveConfiguration": "Αποθήκευση Διαμόρφωσης",
"Buttons_Share": "Κοινοποίηση",
"Buttons_SignIn": "Σύνδεση",
"Buttons_TryAgain": "Προσπαθήστε ξανά",
"Buttons_Yes": "Ναι",
"Center": "Κέντρο",
"ComingSoon": "Έρχεται σύντομα...",
"ComposerFrom": "Από: ",
"ComposerSubject": "Θέμα: ",
"ComposerTo": "Προς: ",
"ClipboardTextCopied_Message": "Το \"{0}\" αντιγράφηκε στο πρόχειρο.",
"ClipboardTextCopied_Title": "Αντιγράφηκε",
"ClipboardTextCopyFailed_Message": "Η αντιγραφή του {0} στο πρόχειρο απέτυχε.",
"ComposerToPlaceholder": "κάντε κλικ στο enter για να εισάγετε διευθύνσεις",
"ComposerAttachmentsDropZone_Message": "Τοποθετήστε το αρχείο σας εδώ",
"ComposerImagesDropZone_Message": "Αφήστε τις εικόνες σας εδώ",
"ComposerAttachmentsDragDropAttach_Message": "Επισύναψη",
"CustomThemeBuilder_AccentColorDescription": "Ορίστε προσαρμοσμένο χρώμα έμφασης αν θέλετε. Αν δεν επιλέξετε κάποιο χρώμα θα χρησιμοποιηθεί το χρώμα έμφασης των Windows.",
"CustomThemeBuilder_AccentColorTitle": "Χρώμα έμφασης",
"CustomThemeBuilder_PickColor": "Επιλογή",
"CustomThemeBuilder_ThemeNameDescription": "Μοναδικό όνομα για το προσαρμοσμένο θέμα σας.",
"CustomThemeBuilder_ThemeNameTitle": "Όνομα θέματος",
"CustomThemeBuilder_Title": "Δημιουργός Προσαρμοσμένου Θέματος",
"CustomThemeBuilder_WallpaperDescription": "Ορισμός προσαρμοσμένης ταπετσαρίας για το Wino",
"CustomThemeBuilder_WallpaperTitle": "Ορισμός προσαρμοσμένης ταπετσαρίας",
"DialogMessage_AccountLimitMessage": "Έχετε φτάσει το όριο δημιουργίας λογαριασμού.\nΘα θέλατε να αγοράσετε το πρόσθετο 'Απεριόριστοι Λογαριασμοί' για να συνεχίσετε;",
"DialogMessage_AccountLimitTitle": "Το Όριο Λογαριασμού Επιτεύχθη",
"DialogMessage_CleanupFolderMessage": "Θέλετε να διαγράψετε μόνιμα όλα τα μηνύματα σε αυτό το φάκελο;",
"DialogMessage_CleanupFolderTitle": "Εκκαθάριση Φακέλου",
"DialogMessage_ComposerMissingRecipientMessage": "Το μήνυμα δεν έχει παραλήπτη.",
"DialogMessage_ComposerValidationFailedTitle": "Αποτυχία Επικύρωσης",
"DialogMessage_CreateLinkedAccountMessage": "Δώστε σε αυτόν τον νέο σύνδεσμο ένα όνομα. Οι λογαριασμοί θα συγχωνευθούν με αυτό το όνομα.",
"DialogMessage_CreateLinkedAccountTitle": "Όνομα Συνδέσμου Λογαριασμού",
"DialogMessage_DeleteAccountConfirmationMessage": "Διαγραφή {0};",
"DialogMessage_DeleteAccountConfirmationTitle": "Όλα τα δεδομένα που σχετίζονται με αυτόν τον λογαριασμό θα διαγραφούν από το δίσκο οριστικά.",
"DialogMessage_DiscardDraftConfirmationMessage": "Αυτό το πρόχειρο θα απορριφθεί. Θέλετε να συνεχίσετε;",
"DialogMessage_DiscardDraftConfirmationTitle": "Απόρριψη προχείρου",
"DialogMessage_HardDeleteConfirmationMessage": "Μόνιμη διαγραφή",
"DialogMessage_HardDeleteConfirmationTitle": "Θα γίνει οριστική διαγραφή μηνύματος/-ων. Θέλετε να συνεχίσετε;",
"DialogMessage_NoAccountsForCreateMailMessage": "Δεν έχετε λογαριασμούς για να δημιουργήσετε μήνυμα.",
"DialogMessage_NoAccountsForCreateMailTitle": "Λείπει Λογαριασμός",
"DialogMessage_RenameLinkedAccountsMessage": "Εισάγετε νέο όνομα για συνδεδεμένο λογαριασμό",
"DialogMessage_RenameLinkedAccountsTitle": "Μετονομασία Συνδεδεμένου Λογαριασμού",
"DialogMessage_UnlinkAccountsConfirmationMessage": "Αυτή η λειτουργία δεν θα διαγράψει τους λογαριασμούς σας αλλά, απλά θα διαλύσει το σύνδεσμο για συνδέσεις κοινόχρηστων φακέλων. Θέλετε να συνεχίσετε;",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Αποδέσμευση Λογαριασμού",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Το μήνυμα δεν έχει θέμα. Θέλετε να συνεχίσετε;",
"DialogMessage_RenameFolderTitle": "Μετονομασία Φακέλου",
"DialogMessage_RenameFolderMessage": "Εισάγετε νέο όνομα για αυτόν το φάκελο",
"DialogMessage_UnsubscribeConfirmationTitle": "Κατάργηση εγγραφής",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Θέλετε να σταματήσετε να λαμβάνετε μηνύματα από το {0};",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "Για να σταματήσετε να λαμβάνετε μηνύματα από το {0}, μεταβείτε στην ιστοσελίδα τους για να καταργήσετε την εγγραφή σας.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Μεταβείτε στον ιστότοπο",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Θέλετε να σταματήσετε να λαμβάνετε μηνύματα από τον{0}; Το Wino θα κάνει κατάργηση εγγραφής για εσάς στέλνοντας ένα email από τον λογαριασμό email σας στο {1}.",
"Dialog_DontAskAgain": "Να μην ερωτηθώ ξανά",
"DiscordChannelDisclaimerMessage": "Το Wino δεν έχει το δικό του διακομιστή στο Discord, αλλά το ειδικό κανάλι «wino-mail» φιλοξενείται στον διακομιστή «Developer Sanctuary».\nΓια να λάβετε τις ενημερώσεις σχετικά με το Wino παρακαλούμε γίνετε μέλος του διακομιστή Developer Sanctuary και ακολουθήστε το κανάλι «wino-mail» στο «Community Projects»\n\nΘα κατευθυνθείτε στο URL του διακομιστή καθώς το Discord δεν υποστηρίζει προσκλήσεις καναλιών.",
"DiscordChannelDisclaimerTitle": "Σημαντικές Πληροφορίες για το Discord",
"Draft": "Πρόχειρο",
"EditorToolbarOption_Draw": "Σχέδιο",
"EditorToolbarOption_Format": "Μορφή",
"EditorToolbarOption_Insert": "Εισαγωγή",
"EditorToolbarOption_None": "Κανένα",
"EditorToolbarOption_Options": "Επιλογές",
"EditorTooltip_WebViewEditor": "Χρήση επεξεργαστή προβολής ιστού",
"ElementTheme_Dark": "Σκοτεινή λειτουργία",
"ElementTheme_Default": "Χρήση ρυθμίσεων συστήματος",
"ElementTheme_Light": "Ανοιχτή λειτουργία",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_ImapAutoDiscoveryFailed": "Δεν βρέθηκαν οι ρυθμίσεις γραμματοκιβωτίου.",
"Exception_ImapClientPoolFailed": "Αποτυχία συγκέντρωσης πελάτη IMAP.",
"Exception_AuthenticationCanceled": "Η ταυτοποίηση ακυρώθηκε",
"Exception_CustomThemeExists": "Αυτό το θέμα υπάρχει ήδη.",
"Exception_CustomThemeMissingName": "Πρέπει να δώσετε ένα όνομα.",
"Exception_CustomThemeMissingWallpaper": "Πρέπει να δώσετε μια προσαρμοσμένη εικόνα φόντου.",
"Exception_FailedToSynchronizeFolders": "Αποτυχία συγχρονισμού φακέλων",
"Exception_GoogleAuthCallbackNull": "Το Callback uri είναι κενό κατά την ενεργοποίηση.",
"Exception_GoogleAuthCorruptedCode": "Κατεστραμμένη απάντηση εξουσιοδότησης.",
"Exception_GoogleAuthError": "Σφάλμα εξουσιοδότησης OAuth: {0}",
"Exception_GoogleAuthInvalidResponse": "Λήφθηκε αίτημα με μη έγκυρη κατάσταση ({0})",
"Exception_GoogleAuthorizationCodeExchangeFailed": "Απέτυχε η ανταλλαγή κωδικού εξουσιοδότησης.",
"Exception_InvalidSystemFolderConfiguration": "Η διαμόρφωση του φακέλου συστήματος δεν είναι έγκυρη. Ελέγξτε τη διαμόρφωση και προσπαθήστε ξανά.",
"Exception_NullAssignedAccount": "Ο εκχωρημένος λογαριασμός είναι κενός",
"Exception_NullAssignedFolder": "Ο εκχωρημένος λογαριασμός είναι κενός",
"Exception_SynchronizerFailureHTTP": "Ο χειρισμός της απάντησης απέτυχε με κωδικό HTTP σφάλματος {0}",
"Exception_TokenGenerationFailed": "Η δημιουργία αναγνωριστικού απέτυχε",
"Exception_TokenInfoRetrivalFailed": "Αποτυχία λήψης πληροφοριών αναγνωριστικού.",
"Exception_UnknowErrorDuringAuthentication": "Παρουσιάστηκε άγνωστο σφάλμα κατά την ταυτοποίηση",
"Exception_UnsupportedAction": "Η ενέργεια {0} δεν υλοποιείται στον επεξεργαστή αιτήματος",
"Exception_UnsupportedProvider": "Αυτός ο πάροχος δεν υποστηρίζεται.",
"Exception_UnsupportedSynchronizerOperation": "Αυτή η λειτουργία δεν υποστηρίζεται για {0}",
"Exception_UserCancelSystemFolderSetupDialog": "Ο χρήστης ακύρωσε το παράθυρο ρυθμίσεων του φακέλου.",
"Exception_InboxNotAvailable": "Δεν ήταν δυνατή η ρύθμιση φακέλων λογαριασμού.",
"Files": "Αρχεία",
"FilteringOption_All": "Όλα",
"FilteringOption_Flagged": "Με σημαία",
"FilteringOption_Unread": "Μη αναγνωσμένα",
"FilteringOption_Files": "Έχει αρχεία",
"Focused": "Εστιασμένα",
"FolderOperation_CreateSubFolder": "Δημιουργία υποφακέλου",
"FolderOperation_Delete": "Διαγραφή",
"FolderOperation_DontSync": "Να μην συγχρονιστεί αυτός ο φάκελος",
"FolderOperation_Empty": "Άδειασμα αυτού του φακέλου",
"FolderOperation_MarkAllAsRead": "Σήμανση όλων ως αναγνωσμένα",
"FolderOperation_Move": "Μετακίνηση",
"DragMoveToFolderCaption": "Μετακίνηση σε {0}",
"FolderOperation_None": "Καμία",
"FolderOperation_Pin": "Καρφίτσωμα",
"FolderOperation_Rename": "Μετονομασία",
"FolderOperation_Unpin": "Ξεκαρφίτσωμα",
"HoverActionOption_Archive": "Αρχειοθέτηση",
"HoverActionOption_Delete": "Διαγραφή",
"HoverActionOption_MoveJunk": "Μετακίνηση στα Ανεπιθύμητα",
"HoverActionOption_ToggleFlag": "Προσθήκη/ Αφαίρεση σημαίας",
"HoverActionOption_ToggleRead": "Αναγνωσμένο / Μη Αναγνωσμένο",
"MergedAccountCommonFolderInbox": "Εισερχόμενα",
"MergedAccountCommonFolderSent": "Απεσταλμένα",
"MergedAccountCommonFolderDraft": "Πρόχειρο",
"MergedAccountCommonFolderJunk": "Ανεπιθύμητα",
"MergedAccountCommonFolderTrash": "Διαγραμμένα",
"MergedAccountCommonFolderArchive": "Αρχείο",
"IMAPSetupDialog_AccountType": "Τύπος λογαριασμού",
"IMAPSetupDialog_DisplayName": "Εμφανιζόμενο Όνομα",
"IMAPSetupDialog_DisplayNamePlaceholder": "πχ. Γιώργος Παπαδάκης",
"IMAPSetupDialog_IncomingMailServer": "Διακομιστής εισερχόμενων mail",
"IMAPSetupDialog_IncomingMailServerPort": "Πύλη",
"IMAPSetupDialog_MailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"IMAPSetupDialog_MailAddressPlaceholder": "someone@example.com",
"IMAPSetupDialog_OutgoingMailServer": "Εξερχόμενος διακομιστής αλληλογραφίας (SMTP)",
"IMAPSetupDialog_OutgoingMailServerPassword": "Κωδικός πρόσβασης διακομιστή εξερχομένων",
"IMAPSetupDialog_OutgoingMailServerPort": "Θύρα",
"IMAPSetupDialog_OutgoingMailServerRequireAuthentication": "Ο διακομιστής εξερχομένων απαιτεί ταυτοποίηση",
"IMAPSetupDialog_OutgoingMailServerUsername": "Όνομα χρήστη διακομιστή εξερχομένων",
"IMAPSetupDialog_Password": "Κωδικός πρόσβασης",
"IMAPSetupDialog_RequireSSLForIncomingMail": "Απαίτηση SSL για εισερχόμενα email",
"IMAPSetupDialog_RequireSSLForOutgoingMail": "Απαίτηση SSL για εξερχόμενα email",
"IMAPSetupDialog_Title": "Προηγμένη Ρύθμιση IMAP",
"IMAPSetupDialog_UseSameConfig": "Χρησιμοποιήστε το ίδιο όνομα χρήστη και κωδικό πρόσβασης για την αποστολή email",
"IMAPSetupDialog_Username": "Όνομα χρήστη",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
"IMAPSetupDialog_ConnectionFailedTitle": "Η Σύνδεση Απέτυχε",
"IMAPSetupDialog_ConnectionFailedMessage": "Αποτυχία σύνδεσης IMAP.",
"ImageRenderingDisabled": "Η αποτύπωση εικόνων είναι απενεργοποιημένη για αυτό το μήνυμα.",
"InfoBarAction_Enable": "Ενεργοποίηση",
"InfoBarMessage_SynchronizationDisabledFolder": "Αυτός ο φάκελος είναι απενεργοποιημένος για συγχρονισμό.",
"InfoBarTitle_SynchronizationDisabledFolder": "Απενεργοποιημένος Φάκελος",
"GeneralTitle_Error": "Σφάλμα",
"GeneralTitle_Warning": "Προειδοποίηση",
"GeneralTitle_Info": "Πληροφορίες",
"Info_AccountCreatedMessage": "Ο {0} δημιουργήθηκε",
"Info_AccountCreatedTitle": "Δημιουργία Λογαριασμού",
"Info_AccountCreationFailedTitle": "Αποτυχία Δημιουργίας Λογαριασμού",
"Info_AccountDeletedMessage": "Ο {0} διαγράφηκε επιτυχώς.",
"Info_AccountDeletedTitle": "Ο Λογαριασμός Διαγράφηκε",
"Info_AccountIssueFixFailedTitle": "Αποτυχία",
"Info_AccountIssueFixSuccessMessage": "Επιδιορθώθηκαν όλα τα ζητήματα λογαριασμού.",
"Info_AccountIssueFixSuccessTitle": "Επιτυχία",
"Info_AttachmentOpenFailedMessage": "Αδυναμία ανοίγματος αυτού του συνημμένου.",
"Info_AttachmentOpenFailedTitle": "Αποτυχία",
"Info_AttachmentSaveFailedMessage": "Αδυναμία αποθήκευσης αυτού του συνημμένου.",
"Info_AttachmentSaveFailedTitle": "Απέτυχε",
"Info_AttachmentSaveSuccessMessage": "Το συνημμένο αποθηκεύτηκε.",
"Info_AttachmentSaveSuccessTitle": "Το Συνημμένο Αποθηκεύτηκε",
"Info_BackgroundExecutionDeniedMessage": "Η εκτέλεση στο παρασκήνιο για την εφαρμογή δεν επιτρέπεται. Αυτό μπορεί να επηρεάσει το συγχρονισμό στο παρασκήνιο και τις ζωντανές ειδοποιήσεις.",
"Info_BackgroundExecutionDeniedTitle": "Άρνηση Εκτέλεσης Παρασκηνίου",
"Info_BackgroundExecutionUnknownErrorMessage": "Παρουσιάστηκε άγνωστη εξαίρεση κατά την εγγραφή συγχρονισμού στο παρασκήνιο.",
"Info_BackgroundExecutionUnknownErrorTitle": "Αποτυχία Εκτέλεσης Παρασκηνίου",
"Info_ComposerMissingMIMEMessage": "Αδυναμία εντοπισμού του αρχείου MIME. Ο συγχρονισμός μπορεί να βοηθήσει.",
"Info_ComposerMissingMIMETitle": "Απέτυχε",
"Info_ContactExistsMessage": "Αυτή η επαφή είναι ήδη στη λίστα παραληπτών.",
"Info_ContactExistsTitle": "Η Επαφή Υπάρχει",
"Info_DraftFolderMissingMessage": "Λείπει ο φάκελος προχείρου για αυτόν τον λογαριασμό. Παρακαλώ ελέγξτε τις ρυθμίσεις του λογαριασμού σας.",
"Info_DraftFolderMissingTitle": "Λείπει Φάκελος Προχείρου",
"Info_FileLaunchFailedTitle": "Απέτυχε η εκκίνηση αρχείου",
"Info_InvalidAddressMessage": "Η «{0}» δεν είναι έγκυρη διεύθυνση email.",
"Info_InvalidAddressTitle": "Μη Έγκυρη Διεύθυνση",
"Info_InvalidMoveTargetMessage": "Δεν μπορείτε να μετακινήσετε τα επιλεγμένα μηνύματα σε αυτόν το φάκελο.",
"Info_InvalidMoveTargetTitle": "Μη Έγκυρος Προορισμός Μετακίνησης",
"Info_LogsNotFoundMessage": "Δεν υπάρχουν αρχεία καταγραφής για κοινή χρήση.",
"Info_LogsNotFoundTitle": "Δεν Βρέθηκαν Αρχεία Καταγραφής",
"Info_LogsSavedMessage": "Το {0} αποθηκεύεται στον επιλεγμένο φάκελο.",
"Info_LogsSavedTitle": "Αποθηκεύτηκε",
"Info_MailRenderingFailedMessage": "Αυτό το μήνυμα είναι κατεστραμμένο ή δεν μπορεί να ανοιχτεί.\n{0}",
"Info_MailRenderingFailedTitle": "Η Απόδοση Απέτυχε",
"Info_MessageCorruptedMessage": "Αυτό το μήνυμα είναι κατεστραμμένο.",
"Info_MessageCorruptedTitle": "Σφάλμα",
"Info_MissingFolderMessage": "Το {0} δεν υπάρχει για αυτόν το λογαριασμό.",
"Info_MissingFolderTitle": "Λείπει Φάκελος",
"Info_PDFSaveSuccessTitle": "Επιτυχία",
"Info_PDFSaveFailedTitle": "Αποτυχία αποθήκευσης αρχείου PDF",
"Info_PDFSaveSuccessMessage": "Το αρχείο PDF έχει αποθηκευτεί στο {0}",
"Info_PurchaseExistsMessage": "Φαίνεται ότι αυτό το προϊόν έχει ήδη αγοραστεί.",
"Info_PurchaseExistsTitle": "Υπάρχον Προϊόν",
"Info_PurchaseThankYouMessage": "Ευχαριστούμε",
"Info_PurchaseThankYouTitle": "Η αγορά ήταν επιτυχής",
"Info_RequestCreationFailedTitle": "Αποτυχία Δημιουργίας Αιτημάτων",
"Info_ReviewNetworkErrorMessage": "Υπήρξε ένα πρόβλημα δικτύου με την αξιολόγησή σας.",
"Info_ReviewNetworkErrorTitle": "Πρόβλημα Δικτύου",
"Info_ReviewNewMessage": "Όλα τα σχόλια είναι ευπρόσδεκτα. Σας ευχαριστούμε για την κριτική!",
"Info_ReviewSuccessTitle": "Ευχαριστούμε",
"Info_ReviewUnknownErrorMessage": "Υπήρξε ένα άγνωστο ζήτημα με την κριτική σας. ({0})",
"Info_ReviewUnknownErrorTitle": "Άγνωστο σφάλμα",
"Info_ReviewUpdatedMessage": "Σας ευχαριστούμε για την ενημερωμένη αξιολόγηση.",
"Info_SignatureDisabledMessage": "Απενεργοποιήθηκε η υπογραφή για αυτόν τον λογαριασμό",
"Info_SignatureDisabledTitle": "Επιτυχία",
"Info_SignatureSavedMessage": "Η νέα υπογραφή αποθηκεύτηκε",
"Info_SignatureSavedTitle": "Επιτυχία",
"Info_SyncCanceledMessage": "Ακυρώθηκε",
"Info_SyncCanceledTitle": "Συγχρονισμός",
"Info_SyncFailedTitle": "Ο συγχρονισμός Απέτυχε",
"Info_UnsupportedFunctionalityDescription": "Αυτή η λειτουργία δεν έχει υλοποιηθεί ακόμα.",
"Info_UnsupportedFunctionalityTitle": "Δεν υποστηρίζεται",
"Info_UnsubscribeLinkInvalidTitle": "Μη Έγκυρο Uri Κατάργησης Εγγραφής",
"Info_UnsubscribeLinkInvalidMessage": "Αυτός ο σύνδεσμος κατάργησης εγγραφής δεν είναι έγκυρος. Αποτυχία διαγραφής από τη λίστα.",
"Info_UnsubscribeSuccessMessage": "Επιτυχής κατάργηση εγγραφής από το {0}.",
"Info_UnsubscribeErrorMessage": "Αποτυχία κατάργησης εγγραφής",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Μέθοδος επαλήθευσης",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Ασφάλεια σύνδεσης",
"ImapAuthenticationMethod_Auto": "Αυτόματο",
"ImapAuthenticationMethod_CramMD5": "CRAM-MD5",
"ImapAuthenticationMethod_DigestMD5": "DIGEST-MD5",
"ImapAuthenticationMethod_None": "Χωρίς ταυτοποίηση",
"ImapAuthenticationMethod_Plain": "Κανονικός κωδικός πρόσβασης",
"ImapAuthenticationMethod_EncryptedPassword": "Κρυπτογραφημένος κωδικός πρόσβασης",
"ImapAuthenticationMethod_Ntlm": "NTLM",
"ImapConnectionSecurity_None": "Καμία",
"ImapConnectionSecurity_SslTls": "SSL/TLS",
"ImapConnectionSecurity_StartTls": "STARTTLS",
"ImapConnectionSecurity_Auto": "Αυτόματο",
"Justify": "Στοίχιση",
"Left": "Αριστερά",
"Link": "Σύνδεσμος",
"LinkedAccountsCreatePolicyMessage": "πρέπει να έχετε τουλάχιστον 2 λογαριασμούς για να δημιουργήσετε σύνδεσμο\nο σύνδεσμος θα αφαιρεθεί κατά την αποθήκευση",
"LinkedAccountsTitle": "Συνδεδεμένοι Λογαριασμοί",
"MailOperation_AlwaysMoveFocused": "Πάντα Μετακίνηση στα Εστιασμένα",
"MailOperation_AlwaysMoveOther": "Πάντα Μετακίνηση σε Άλλα",
"MailOperation_Archive": "Αρχειοθέτηση",
"MailOperation_ClearFlag": "Καθαρισμός σήμανσης",
"MailOperation_DarkEditor": "Σκοτεινό",
"MailOperation_Delete": "Διαγραφή",
"MailOperation_ExportPDF": "Εξαγωγή σε PDF",
"MailOperation_Find": "Εύρεση",
"MailOperation_Forward": "Προώθηση",
"MailOperation_Ignore": "Αγνόηση",
"MailOperation_LightEditor": "Φωτεινό",
"MailOperation_MarkAsJunk": "Επισήμανση ως ανεπιθύμητο",
"MailOperation_MarkAsRead": "Επισήμανση ως αναγνωσμένο",
"MailOperation_MarkAsUnread": "Επισήμανση ως μη αναγνωσμένο",
"MailOperation_MarkNotJunk": "Επιήμανση ως Μη Ανεπιθύμητο",
"MailOperation_Move": "Μετακίνηση",
"MailOperation_MoveFocused": "Μετακίνηση σε Εστιασμένα",
"MailOperation_MoveJunk": "Μετακίνηση στα Ανεπιθύμητα",
"MailOperation_MoveOther": "Μετακίνηση σε Άλλα",
"MailOperation_Navigate": "Πλοήγηση",
"MailOperation_Print": "Εκτύπωση",
"MailOperation_Reply": "Απάντηση",
"MailOperation_ReplyAll": "Απάντηση σε όλους",
"MailOperation_SaveAs": "Αποθήκευση ως",
"MailOperation_SetFlag": "Ορισμός επισήμανσης",
"MailOperation_Unarchive": "Αφαίρεση από το αρχείο",
"MailOperation_Zoom": "Μεγέθυνση",
"MailsSelected": "Επιλέχθηκαν {0} αντικείμενα/-ο",
"MarkFlagUnflag": "Σήμανση ως με/χωρίς επισήμανση",
"MarkReadUnread": "Σήμανση ως αναγνωσμένο/μη αναγνωσμένο",
"MenuManageAccounts": "Διαχείριση Λογαριασμών",
"MenuNewMail": "Νέα Αλληλογραφία",
"MenuMergedAccountItemAccountsSuffix": " λογαριασμοί",
"MenuRate": "Αξιολογήστε το Wino",
"MenuSettings": "Ρυθμίσεις",
"MergedAccountsAvailableAccountsTitle": "Διαθέσιμοι Λογαριασμοί",
"More": "Περισσότερα",
"MoveMailDialog_InvalidFolderMessage": "Το {0} δεν είναι έγκυρος φάκελος για αυτό το μήνυμα.",
"MoveMailDialog_Title": "Επιλέξτε ένα φάκελο",
"NewAccountDialog_AccountName": "Όνομα Λογαριασμού",
"NewAccountDialog_AccountNameDefaultValue": "Προσωπικός",
"NewAccountDialog_AccountNamePlaceholder": "πχ. Προσωπική Αλληλογραφία",
"NewAccountDialog_Title": "Προσθήκη Νέου Λογαριασμού",
"NoMailSelected": "Δεν επιλέχθηκε μήνυμα",
"NoMessageCrieteria": "Κανένα μήνυμα δεν ταιριάζει με τα κριτήρια αναζήτησής σας",
"NoMessageEmptyFolder": "Αυτός ο φάκελος είναι κενός",
"Notifications_MultipleNotificationsMessage": "Έχετε {0} νέα μηνύματα",
"Notifications_MultipleNotificationsTitle": "Νέα Μηνύματα",
"Notifications_WinoUpdatedMessage": "Ρίξτε μια ματιά στη νέα έκδοση {0}",
"Notifications_WinoUpdatedTitle": "Το Wino Mail έχει ενημερωθεί.",
"Other": "Άλλα",
"PaneLengthOption_Default": "Προεπιλογή",
"PaneLengthOption_ExtraLarge": "Πολύ Μεγάλο",
"PaneLengthOption_Large": "Μεγάλο",
"PaneLengthOption_Medium": "Μεσαίο",
"PaneLengthOption_Micro": "Μικροσκοπικό",
"PaneLengthOption_Small": "Μικρό",
"Photos": "Φωτογραφίες",
"PreparingFoldersMessage": "Προετοιμασία φακέλων",
"ProviderDetail_Gmail_Description": "Λογαριασμός Google",
"ProviderDetail_IMAP_Description": "Προσαρμοσμένος διακομιστής IMAP/SMTP",
"ProviderDetail_IMAP_Title": "Διακομιστής IMAP",
"ProtocolLogAvailable_Message": "Τα αρχεία καταγραφής πρωτοκόλλου είναι διαθέσιμα για διαγνωστικά.",
"Results": "Αποτελέσματα",
"Right": "Δεξιά",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "ενημερωμένο",
"SynchronizationFolderReport_Failed": "ο συγχρονισμός απέτυχε",
"SearchBarPlaceholder": "Αναζήτηση",
"SearchingIn": "Αναζήτηση σε",
"SearchPivotName": "Αποτελέσματα",
"SettingsAboutGithub_Description": "Μεταβείτε στο αποθετήριο GitHub για τον ανιχνευτή προβλημάτων.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Προσάρτηση μηνυμάτων στον φάκελο Απεσταλμένα",
"SettingsAccountManagementAppendMessage_Description": "Δημιουργία αντιγράφου του μηνύματος στον φάκελο Απεσταλμένα μετά την αποστολή του προχείρου. Ενεργοποιήστε το αν δεν βλέπετε τα μηνύματά σας μετά την αποστολή τους, στο φάκελο Απεσταλμένα.",
"SettingsEditLinkedInbox_Title": "Επεξεργασία Συνδεδεμένων Εισερχομένων",
"SettingsEditLinkedInbox_Description": "Προσθήκη / κατάργηση λογαριασμών, μετονομασία ή διακοπή του συνδέσμου μεταξύ λογαριασμών.",
"SettingsAboutVersion": "Έκδοση ",
"SettingsAboutWinoDescription": "Ελαφρύ πρόγραμμα αλληλογραφίας για τις συσκευές Windows.",
"SettingsAbout_Description": "Μάθετε περισσότερα για το Wino.",
"SettingsAbout_Title": "Σχετικά",
"SettingsAccentColor_Description": "Αλλαγή χρώματος έμφασης εφαρμογής",
"SettingsAccentColor_Title": "Χρώμα Έμφασης",
"SettingsAccentColor_UseWindowsAccentColor": "Χρήση χρώματος έμφασης των Windows",
"SettingsAccountName_Description": "Αλλάξτε το όνομα του λογαριασμού.",
"SettingsAccountName_Title": "Όνομα Λογαριασμού",
"SettingsApplicationTheme_Description": "Εξατομικεύστε το Wino με διαφορετικά προσαρμοσμένα θέματα εφαρμογής για τα δικά σας γούστα.",
"SettingsApplicationTheme_Title": "Θέμα Εφαρμογής",
"SettingsAvailableThemes_Description": "Επιλέξτε ένα θέμα από τη δική σας συλλογή Wino που σάς αρέσει ή εφαρμόστε τα δικά σας θέματα.",
"SettingsAvailableThemes_Title": "Διαθέσιμα Θέματα",
"SettingsAutoSelectNextItem_Title": "Αυτόματη επιλογή επόμενου αντικειμένου",
"SettingsAutoSelectNextItem_Description": "Επιλέξτε το επόμενο στοιχείο μετά τη διαγραφή ή τη μετακίνηση ενός μηνύματος.",
"SettingsCustomTheme_Description": "Δημιουργήστε το δικό σας προσαρμοσμένο θέμα με προσαρμοσμένη ταπετσαρία και χρώμα έμφασης.",
"SettingsCustomTheme_Title": "Προσαρμοσμένο Θέμα",
"SettingsConfigureSpecialFolders_Title": "Διαμόρφωση Φακέλων Συστήματος",
"SettingsConfigureSpecialFolders_Description": "Καθορίστε φακέλους με ειδικές λειτουργίες. Φάκελοι όπως Αρχείο, Εισερχόμενα και Πρόχειρα είναι απαραίτητοι για τη σωστή λειτουργία του Wino.",
"SettingConfigureSpecialFolders_Button": "Διαμόρφωση",
"Error_FailedToSetupSystemFolders_Title": "Αποτυχία ρύθμισης φακέλων συστήματος",
"SettingsDeleteAccount_Description": "Διαγραφή όλων των e-mails και διαπιστευτηρίων που σχετίζονται με αυτόν τον λογαριασμό.",
"SettingsDeleteAccount_Title": "Διαγραφή αυτού του λογαριασμού",
"SettingsDeleteProtection_Description": "Πρέπει να Wino ζητήσει την επιβεβαίωση κάθε φορά που προσπαθείτε να διαγράψετε μόνιμα ένα μήνυμα χρησιμοποιώντας το Shift + Del;",
"SettingsDeleteProtection_Title": "Προστασία Μόνιμης Διαγραφής",
"SettingsDiagnostics_Description": "Για προγραμματιστές",
"SettingsDiagnostics_Title": "Διαγνωστικά",
"SettingsDiscord_Description": "Λήψη τακτικών ενημερώσεων για την ανάπτυξη, συμμετοχή σε συζητήσεις προόδου και παροχή σχολίων.",
"SettingsDiscord_Title": "Κανάλι Discord",
"SettingsElementThemeSelectionDisabled": "Η επιλογή θέματος βάσει στοιχείου είναι απενεργοποιημένη όταν το θέμα της εφαρμογής είναι άλλο εκτός του Προεπιλεγμένου.",
"SettingsElementTheme_Description": "Επιλέξτε ένα θέμα των Windows για Wino",
"SettingsElementTheme_Title": "Θέμα Στοιχείου",
"SettingsEnableHoverActions_Title": "Ενεργοποίηση ενεργειών αιώρησης",
"SettingsEnableIMAPLogs_Description": "Ενεργοποιήστε το για την παροχή λεπτομερειών σχετικά με προβλήματα με τη σύνδεση IMAP που είχατε κατά τη ρύθμιση του διακομιστή IMAP.",
"SettingsEnableIMAPLogs_Title": "Ενεργοποίηση Αρχείων Καταγραφής Πρωτοκόλλου IMAP",
"SettingsEnableLogs_Description": "Μπορεί να χρειαστώ καταγραφές για να εντοπίσω προβλήματα που έχετε ανοίξει στο GitHub. Κανένα από τα αρχεία καταγραφής δεν θα εκθέσει τα διαπιστευτήριά σας ή ευαίσθητες πληροφορίες στο κοινό.",
"SettingsEnableLogs_Title": "Ενεργοποίηση Καταγραφών",
"SettingsEnableSignature": "Ενεργοποίηση Υπογραφής",
"SettingsExpandOnStartup_Description": "Ορίστε αν ο Wino θα πρέπει να επεκτείνει τους φακέλους αυτού του λογαριασμού κατά την εκκίνηση.",
"SettingsExpandOnStartup_Title": "Ανάπτυξη Μενού κατά την Εκκίνηση",
"SettingsExternalContent_Description": "Διαχείριση ρυθμίσεων εξωτερικού περιεχομένου κατά την απόδοση μηνυμάτων.",
"SettingsExternalContent_Title": "Εξωτερικό Περιεχόμενο",
"SettingsFocusedInbox_Description": "Ορίστε αν τα Εισερχόμενα πρέπει να χωριστούν σε δύο, ως Εστιασμένα - Άλλα.",
"SettingsFocusedInbox_Title": "Εστιασμένα Εισερχόμενα",
"SettingsFolderSync_Description": "Ενεργοποίηση ή απενεργοποίηση συγκεκριμένων φακέλων για συγχρονισμό.",
"SettingsFolderSync_Title": "Συγχρονισμός Φακέλου",
"SettingsFolderOptions_Title": "Διαμόρφωση Φακέλου",
"SettingsFolderOptions_Description": "Αλλάξτε μεμονωμένες ρυθμίσεις φακέλου, όπως ενεργοποίηση/απενεργοποίηση συγχρονισμού ή εμφάνιση/απόκρυψη σήματος ανάγνωσης.",
"SettingsHoverActionCenter": "Κεντρική Ενέργεια",
"SettingsHoverActionLeft": "Αριστερή Ενέργεια",
"SettingsHoverActionRight": "Δεξιά Ενέργεια",
"SettingsHoverActions_Description": "Επιλέξτε 3 ενέργειες για να εμφανίσετε όταν τοποθετείτε το ποντίκι πάνω από τα μηνύματα.",
"SettingsHoverActions_Title": "Ενέργειες Αιώρησης",
"SettingsLanguage_Description": "Αλλαγή γλώσσας εμφάνισης για Wino.",
"SettingsLanguage_Title": "Γλώσσα εμφάνισης",
"SettingsLanguageTime_Title": "Γλώσσα & Ώρα",
"SettingsLanguageTime_Description": "Εμφάνιση γλώσσας Wino, προτιμώμενη μορφή ώρας.",
"CategoriesFolderNameOverride": "Κατηγορίες",
"MoreFolderNameOverride": "Περισσότερα",
"SettingsOptions_Title": "Ρυθμίσεις",
"SettingsLinkAccounts_Description": "Συγχώνευση πολλαπλών λογαριασμών σε έναν. Δείτε τα μηνύματα σε ένα φάκελο Εισερχόμενα μαζί.",
"SettingsLinkAccounts_Title": "Δημιουργία Συνδεδεμένων Λογαριασμών",
"SettingsLinkedAccountsSave_Description": "Τροποποίηση του τρέχοντος συνδέσμου με τους νέους λογαριασμούς.",
"SettingsLinkedAccountsSave_Title": "Αποθήκευση Αλλαγών",
"SettingsLoadImages_Title": "Αυτόματη φόρτωση εικόνων",
"SettingsLoadStyles_Title": "Αυτόματη φόρτωση στυλ",
"SettingsMailSpacing_Description": "Προσαρμόστε τις αποστάσεις για τη λίστα μηνυμάτων.",
"SettingsMailSpacing_Title": "Αποστάσεις Αλληλογραφίας",
"SettingsFolderMenuStyle_Title": "Δημιουργία Εμφωλευμένων Φακέλων",
"SettingsFolderMenuStyle_Description": "Επιλέξτε αν οι φάκελοι λογαριασμού θα πρέπει να είναι εμφωλευμένοι μέσα σε ένα στοιχείο μενού του λογαριασμού ή όχι. Ενεργοποιήστε αυτήν την επιλογή αν σας αρέσει το παλιό σύστημα μενού στο Windows Mail",
"SettingsManageAccountSettings_Description": "Ειδοποιήσεις, υπογραφές, συγχρονισμός και άλλες ρυθμίσεις ανά λογαριασμό.",
"SettingsManageAccountSettings_Title": "Ρυθμίσεις Διαχείρισης Λογαριασμού",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Αναδιάταξη Λογαριασμών",
"SettingsReorderAccounts_Description": "Αλλάξτε τη σειρά των λογαριασμών στη λίστα λογαριασμών.",
"SettingsManageLink_Description": "Μετακίνηση αντικειμένων για προσθήκη νέου συνδέσμου ή κατάργηση υπάρχοντος συνδέσμου.",
"SettingsManageLink_Title": "Διαχείριση Συνδέσμου",
"SettingsMarkAsRead_Description": "Αλλάξτε τι πρέπει να συμβεί στο επιλεγμένο αντικείμενο.",
"SettingsMarkAsRead_DontChange": "Να μην επισημαίνεται αυτόματα το στοιχείο ως αναγνωσμένο",
"SettingsMarkAsRead_SecondsToWait": "Δευτερόλεπτα προς αναμονή: ",
"SettingsMarkAsRead_Timer": "Όταν προβάλλεται στο παράθυρο ανάγνωσης",
"SettingsMarkAsRead_Title": "Σήμανση αντικειμένου ως αναγνωσμένο",
"SettingsMarkAsRead_WhenSelected": "Όταν επιλεγεί",
"SettingsMessageList_Description": "Αλλάξτε τον τρόπο οργάνωσης των μηνυμάτων σας στη λίστα αλληλογραφίας.",
"SettingsMessageList_Title": "Λίστα Μηνυμάτων",
"SettingsNoAccountSetupMessage": "Δεν έχετε ρυθμίσει κανέναν λογαριασμό ακόμα.",
"SettingsNotifications_Description": "Ενεργοποίηση ή απενεργοποίηση ειδοποιήσεων για αυτόν τον λογαριασμό.",
"SettingsNotifications_Title": "Ειδοποιήσεις",
"SettingsPaneLength_Description": "Αλλαγή του πλάτους της λίστας αλληλογραφίας.",
"SettingsPaneLength_Title": "Μήκος Παραθύρου Λίστας Αλληλογραφίας",
"SettingsPaypal_Description": "Δείξτε πολύ περισσότερη αγάπη ❤️ Όλες οι δωρεές εκτιμούνται.",
"SettingsPaypal_Title": "Δωρεά μέσω PayPal",
"SettingsPersonalizationMailDisplayCompactMode": "Συμπαγής Λειτουργία",
"SettingsPersonalizationMailDisplayMediumMode": "Μεσαία Λειτουργία",
"SettingsPersonalizationMailDisplaySpaciousMode": "Ευρύχωρη Λειτουργία",
"SettingsPersonalization_Description": "Αλλάξτε την εμφάνιση του Wino όπως σας αρέσει.",
"SettingsPersonalization_Title": "Εξατομίκευση",
"SettingsPrivacyPolicy_Description": "Εξέταση πολιτικής απορρήτου.",
"SettingsPrivacyPolicy_Title": "Πολιτική Απορρήτου",
"SettingsReader_Title": "Αναγνώστης",
"SettingsComposer_Title": "Συνθέτης",
"SettingsReadComposePane_Description": "Γραμματοσειρές, εξωτερικό περιεχόμενο.",
"SettingsReadComposePane_Title": "Αναγνώστης & Συνθέτης",
"SettingsReaderFont_Title": "Προεπιλεγμένη Γραμματοσειρά Αναγνώστη",
"SettingsReaderFontFamily_Description": "Αλλάξτε την προεπιλεγμένη οικογένεια γραμματοσειρών και το μέγεθος γραμματοσειράς για την ανάγνωση μηνυμάτων.",
"SettingsFontFamily_Title": "Γραμματοσειρά",
"SettingsFontSize_Title": "Μέγεθος γραμματοσειράς",
"SettingsFontPreview_Title": "Προεπισκόπηση",
"SettingsComposerFont_Title": "Προεπιλεγμένη Γραμματοσειρά Συντάκτη",
"SettingsComposerFontFamily_Description": "Αλλάξτε την προεπιλεγμένη οικογένεια γραμματοσειρών και το μέγεθος γραμματοσειράς για τη σύνταξη μηνυμάτων.",
"SettingsRenameMergeAccount_Description": "Αλλάξτε το εμφανιζόμενο όνομα των συνδεδεμένων λογαριασμών.",
"SettingsRenameMergeAccount_Title": "Μετονομασία",
"SettingsSemanticZoom_Description": "Αυτό θα σας επιτρέψει να κάνετε κλικ στις κεφαλίδες στη λίστα μηνυμάτων και να μεταβείτε σε συγκεκριμένη ημερομηνία",
"SettingsSemanticZoom_Title": "Σημασιολογική Μεγέθυνση για Κεφαλίδες Ημερομηνίας",
"SettingsShowPreviewText_Description": "Απόκρυψη/εμφάνιση κειμένου προεπισκόπησης.",
"SettingsShowPreviewText_Title": "Εμφάνιση Κειμένου Προεπισκόπησης",
"SettingsShowSenderPictures_Description": "Απόκρυψη/εμφάνιση της μικρογραφίας του αποστολέα.",
"SettingsShowSenderPictures_Title": "Εμφάνιση Avatars Αποστολέα",
"SettingsPrefer24HourClock_Title": "Εμφάνιση μορφής ρολογιού σε 24ώρο",
"SettingsPrefer24HourClock_Description": "Οι χρόνοι άφιξης της αλληλογραφίας θα εμφανίζονται σε μορφή 24 ωρών αντί για 12 (ΠΜ/ΜΜ)",
"SettingsSignature_Description": "Διαχείριση υπογραφών λογαριασμού",
"SettingsSignature_Title": "Υπογραφή",
"SettingsStartupItem_Description": "Αντικείμενο κύριου λογαριασμού για φόρτωση Εισερχομένων κατά την εκκίνηση.",
"SettingsStartupItem_Title": "Αντικείμενο εκκίνησης",
"SettingsStore_Description": "Δείξτε λίγη αγάπη ❤️",
"SettingsStore_Title": "Αξιολόγηση στο Κατάστημα",
"SettingsThreads_Description": "Οργάνωση μηνυμάτων σε νήματα συνομιλίας.",
"SettingsThreads_Title": "Νηματοποίηση Συζήτησης",
"SettingsUnlinkAccounts_Description": "Αφαιρέστε τη σύνδεση μεταξύ των λογαριασμών. Αυτό δεν θα διαγράψει τους λογαριασμούς σας.",
"SettingsUnlinkAccounts_Title": "Αποδέσμευση Λογαριασμών",
"SortingOption_Date": "κατά ημερομηνία",
"SortingOption_Name": "κατ' όνομα",
"StoreRatingDialog_MessageFirstLine": "Όλες οι αξιολογήσεις εκτιμώνται και θα κάνουν το Wino πολύ καλύτερο στο μέλλον. Θα θέλατε να αξιολογήσετε το Wino στο Microsoft Store;",
"StoreRatingDialog_MessageSecondLine": "Θα θέλατε να αξιολογήσετε το Wino Mail στο Microsoft Store;",
"StoreRatingDialog_Title": "Απολαμβάνετε το Wino;",
"SystemFolderConfigDialog_ArchiveFolderDescription": "Τα αρχειοθετημένα μηνύματα θα μετακινηθούν εδώ.",
"SystemFolderConfigDialog_ArchiveFolderHeader": "Φάκελος Αρχειοθέτηση",
"SystemFolderConfigDialog_DeletedFolderDescription": "Τα διαγραμμένα μηνύματα θα μετακινηθούν εδώ.",
"SystemFolderConfigDialog_DeletedFolderHeader": "Φάκελος Διαγραμμένα",
"SystemFolderConfigDialog_DraftFolderDescription": "Τα νέα μηνύματα/απαντήσεις θα δημιουργηθούν εδώ.",
"SystemFolderConfigDialog_DraftFolderHeader": "Φάκελος Πρόχειρα",
"SystemFolderConfigDialog_JunkFolderDescription": "Όλα τα ανεπιθύμητα μηνύματα θα είναι εδώ.",
"SystemFolderConfigDialog_JunkFolderHeader": "Φάκελος Ανεπιθύμητα",
"SystemFolderConfigDialog_MessageFirstLine": "Αυτός ο διακομιστής IMAP δεν υποστηρίζει την επέκταση SPECIAL-USE για αυτό και το Wino δεν μπόρεσε να ρυθμίσει σωστά τους φακέλους συστημάτων.",
"SystemFolderConfigDialog_MessageSecondLine": "Παρακαλώ επιλέξτε τους κατάλληλους φακέλους για συγκεκριμένες λειτουργίες.",
"SystemFolderConfigDialog_SentFolderDescription": "Ο φάκελος που θα αποθηκευτούν τα απεσταλμένα μηνύματα.",
"SystemFolderConfigDialog_SentFolderHeader": "Φάκελος Απεσταλμένα",
"SystemFolderConfigDialog_Title": "Διαμόρφωση Φακέλων Συστήματος",
"SystemFolderConfigDialogValidation_InboxSelected": "Δεν μπορείτε να αντιστοιχίσετε τον φάκελο Εισερχομένων σε οποιονδήποτε άλλο φάκελο συστήματος.",
"SystemFolderConfigDialogValidation_DuplicateSystemFolders": "Μερικοί από τους φακέλους του συστήματος χρησιμοποιούνται περισσότερες από μία φορές στη διαμόρφωση.",
"SystemFolderConfigSetupSuccess_Title": "Ρύθμιση Φακέλων Συστήματος",
"SystemFolderConfigSetupSuccess_Message": "Οι φάκελοι συστήματος έχουν ρυθμιστεί επιτυχώς.",
"TestingImapConnectionMessage": "Έλεγχος σύνδεσης διακομιστή...",
"Today": "Σήμερα",
"UnknownAddress": "άγνωστη διεύθυνση",
"UnknownDateHeader": "Άγνωστη Ημερομηνία",
"UnknownGroupAddress": "άγνωστη διεύθυνση ομάδας αλληλογραφίας",
"UnknownSender": "Άγνωστος Αποστολέας",
"Unsubscribe": "Κατάργηση εγγραφής",
"ViewContactDetails": "Προβολή Λεπτομερειών",
"WinoUpgradeDescription": "Το Wino προσφέρει 3 λογαριασμούς για να ξεκινήσετε δωρεάν. Εάν χρειάζεστε περισσότερους από 3, παρακαλώ αναβαθμίστε",
"WinoUpgradeMessage": "Αναβάθμιση σε Απεριόριστους Λογαριασμούς",
"WinoUpgradeRemainingAccountsMessage": "Χρησιμοποιούνται {0} από τους {1} δωρεάν λογαριασμούς.",
"Yesterday": "Χθες",
"SignatureEditorDialog_Title": "Συντάκτης Υπογραφής",
"SignatureEditorDialog_SignatureName_Placeholder": "Ονομάστε την υπογραφή σας",
"SignatureEditorDialog_SignatureName_TitleNew": "Όνομα υπογραφής",
"SignatureEditorDialog_SignatureName_TitleEdit": "Τρέχον όνομα υπογραφής: {0}",
"SignatureDeleteDialog_Title": "Διαγραφή υπογραφής",
"SignatureDeleteDialog_Message": "Σίγουρα θέλετε να διαγράψετε την υπογραφή \"{0}\";",
"SettingsSignature_ForNewMessages_Title": "Για Νέα Μηνύματα",
"SettingsSignature_ForFollowingMessages_Title": "Για Απαντήσεις/Προώθηση",
"SettingsSignature_SignatureDefaults": "Προεπιλογές υπογραφής",
"SettingsSignature_Signatures": "Υπογραφές",
"SettingsSignature_AddCustomSignature_Title": "Προσθήκη προσαρμοσμένης υπογραφής",
"SettingsSignature_AddCustomSignature_Button": "Προσθήκη υπογραφής",
"SettingsSignature_EditSignature_Title": "Επεξεργασία υπογραφής",
"SettingsSignature_DeleteSignature_Title": "Διαγραφή υπογραφής",
"SettingsSignature_NoneSignatureName": "Καμία",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

View File

@@ -3,9 +3,12 @@
"AccountCreationDialog_Initializing": "initializing",
"AccountCreationDialog_PreparingFolders": "We are getting folder information at the moment.",
"AccountCreationDialog_SigninIn": "Account information is being saved.",
"AccountCreationDialog_FetchingProfileInformation": "Fetching profile details.",
"AccountEditDialog_Message": "Account Name",
"AccountEditDialog_Title": "Edit Account",
"AccountPickerDialog_Title": "Pick an account",
"AccountSettingsDialog_AccountName": "Sender Display Name",
"AccountSettingsDialog_AccountNamePlaceholder": "eg. John Doe",
"AddHyperlink": "Add",
"AutoDiscoveryProgressMessage": "Searching for mail settings...",
"BasicIMAPSetupDialog_AdvancedConfiguration": "Advanced Configuration",
@@ -19,13 +22,17 @@
"BasicIMAPSetupDialog_Password": "Password",
"BasicIMAPSetupDialog_Title": "IMAP Account",
"Buttons_AddAccount": "Add Account",
"Buttons_AddNewAlias": "Add New Alias",
"Buttons_SyncAliases": "Synchronize Aliases",
"Buttons_ApplyTheme": "Apply Theme",
"Buttons_Browse": "Browse",
"Buttons_Cancel": "Cancel",
"Buttons_Close": "Close",
"Buttons_Create": "Create",
"Buttons_CreateAccount": "Create Account",
"Buttons_Copy": "Copy",
"Buttons_Delete": "Delete",
"Buttons_Edit": "Edit",
"Buttons_Discard": "Discard",
"Buttons_EnableImageRendering": "Enable",
"Buttons_No": "No",
@@ -36,7 +43,9 @@
"Buttons_SaveConfiguration": "Save Configuration",
"Buttons_Share": "Share",
"Buttons_SignIn": "Sign In",
"Buttons_TryAgain": "Try Again",
"Buttons_Yes": "Yes",
"Buttons_Reset": "Reset",
"Center": "Center",
"ComingSoon": "Coming soon...",
"ComposerFrom": "From: ",
@@ -46,6 +55,9 @@
"ClipboardTextCopied_Title": "Copied",
"ClipboardTextCopyFailed_Message": "Failed to copy {0} to clipboard.",
"ComposerToPlaceholder": "click enter to input addresses",
"ComposerAttachmentsDropZone_Message": "Drop your files here",
"ComposerImagesDropZone_Message": "Drop your images here",
"ComposerAttachmentsDragDropAttach_Message": "Attach",
"CustomThemeBuilder_AccentColorDescription": "Set custom accent color if you wish. Not selecting a color will use your Windows accent color.",
"CustomThemeBuilder_AccentColorTitle": "Accent color",
"CustomThemeBuilder_PickColor": "Pick",
@@ -56,6 +68,16 @@
"CustomThemeBuilder_WallpaperTitle": "Set custom wallpaper",
"DialogMessage_AccountLimitMessage": "You have reached the account creation limit.\nWould you like to purchase 'Unlimited Account' add-on to continue?",
"DialogMessage_AccountLimitTitle": "Account Limit Reached",
"DialogMessage_AliasNotSelectedTitle": "Missing Alias",
"DialogMessage_AliasNotSelectedMessage": "You must select an alias before sending a message.",
"DialogMessage_AliasExistsTitle": "Existing Alias",
"DialogMessage_AliasExistsMessage": "This alias is already in use.",
"DialogMessage_InvalidAliasTitle": "Invalid Alias",
"DialogMessage_InvalidAliasMessage": "This alias is not valid. Make sure all addresses of the alias are valid e-mail addresses.",
"DialogMessage_CantDeleteRootAliasTitle": "Can't Delete Alias",
"DialogMessage_CantDeleteRootAliasMessage": "Root alias can't be deleted. This is your main identity associated with your account setup.",
"DialogMessage_AliasCreatedTitle": "Created New Alias",
"DialogMessage_AliasCreatedMessage": "New alias is succesfully created.",
"DialogMessage_CleanupFolderMessage": "Do you want to permanently delete all the mails in this folder?",
"DialogMessage_CleanupFolderTitle": "Cleanup Folder",
"DialogMessage_ComposerMissingRecipientMessage": "Message has no recipient.",
@@ -74,27 +96,48 @@
"DialogMessage_RenameLinkedAccountsTitle": "Rename Linked Account",
"DialogMessage_UnlinkAccountsConfirmationMessage": "This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?",
"DialogMessage_UnlinkAccountsConfirmationTitle": "Unlink Accounts",
"DialogMessage_EmptySubjectConfirmation": "Missin Subject",
"DialogMessage_EmptySubjectConfirmation": "Missing Subject",
"DialogMessage_EmptySubjectConfirmationMessage": "Message has no subject. Do you want to continue?",
"DialogMessage_RenameFolderTitle": "Rename Folder",
"DialogMessage_RenameFolderMessage": "Enter new name for this folder",
"DialogMessage_UnsubscribeConfirmationTitle": "Unsubscribe",
"DialogMessage_UnsubscribeConfirmationOneClickMessage": "Do you want to stop getting messages from {0}?",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage": "To stop getting messages from {0}, go to their website to unsubscribe.",
"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton": "Go to website",
"DialogMessage_UnsubscribeConfirmationMailtoMessage": "Do you want to stop getting messages from {0}? Wino will unsubscribe for you by sending an email from your email account to {1}.",
"Dialog_DontAskAgain": "Don't ask again",
"CreateAccountAliasDialog_Title": "Create Account Alias",
"CreateAccountAliasDialog_Description": "Make sure your outgoing server allows sending mails from this alias.",
"CreateAccountAliasDialog_AliasAddress": "Address",
"CreateAccountAliasDialog_AliasAddressPlaceholder": "eg. support@mydomain.com",
"CreateAccountAliasDialog_ReplyToAddress": "Reply-To Address",
"CreateAccountAliasDialog_ReplyToAddressPlaceholder": "admin@mydomain.com",
"DiscordChannelDisclaimerMessage": "Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server.\nTo get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects'\n\nYou will be directed to server URL since Discord doesn't support channel invites.",
"DiscordChannelDisclaimerTitle": "Important Discord Information",
"Draft": "Draft",
"Busy": "Busy",
"EditorToolbarOption_Draw": "Draw",
"EditorToolbarOption_Format": "Format",
"EditorToolbarOption_Insert": "Insert",
"EditorToolbarOption_None": "None",
"EditorToolbarOption_Options": "Options",
"EditorTooltip_WebViewEditor": "Use web view editor",
"ElementTheme_Dark": "Dark mode",
"ElementTheme_Default": "Use system setting",
"ElementTheme_Light": "Light mode",
"Emoji": "Emoji",
"Exception_WinoServerException": "Wino server failed.",
"Exception_MailProcessing": "This mail is still being processed. Please try again after few seconds.",
"Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
"Exception_AuthenticationCanceled": "Authentication canceled",
"Exception_CustomThemeExists": "This theme already exists.",
"Exception_CustomThemeMissingName": "You must provide a name.",
"Exception_CustomThemeMissingWallpaper": "You must provide a custom background image.",
"Exception_FailedToSynchronizeFolders": "Failed to synchronize folders",
"Exception_FailedToSynchronizeAliases": "Failed to synchronize aliases",
"Exception_MissingAlias": "Primary alias does not exist for this account. Creating draft failed.",
"Exception_FailedToSynchronizeProfileInformation": "Failed to synchronize profile information",
"Exception_GoogleAuthCallbackNull": "Callback uri is null on activation.",
"Exception_GoogleAuthCorruptedCode": "Corrupted authorization response.",
"Exception_GoogleAuthError": "OAuth authorization error: {0}",
@@ -116,6 +159,7 @@
"FilteringOption_All": "All",
"FilteringOption_Flagged": "Flagged",
"FilteringOption_Unread": "Unread",
"FilteringOption_Files": "Has files",
"Focused": "Focused",
"FolderOperation_CreateSubFolder": "Create sub folder",
"FolderOperation_Delete": "Delete",
@@ -158,6 +202,8 @@
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
"IMAPSetupDialog_Username": "Username",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
"IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
"IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
"InfoBarAction_Enable": "Enable",
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
@@ -230,6 +276,10 @@
"Info_UnsupportedFunctionalityTitle": "Unsupported",
"Info_UnsubscribeLinkInvalidTitle": "Invalid Unsubscribe Uri",
"Info_UnsubscribeLinkInvalidMessage": "This unsubscribe link is invalid. Failed to unsubscribe from the list.",
"Info_UnsubscribeSuccessMessage": "Successfully unsubscribed from {0}.",
"Info_UnsubscribeErrorMessage": "Failed to unsubscribe",
"Info_CantDeletePrimaryAliasMessage": "Primary alias can't be deleted. Please change your alias before deleting this one",
"Info_MailListSizeResetSuccessMessage": "The Mail List size has been reset.",
"ImapAdvancedSetupDialog_AuthenticationMethod": "Authentication method",
"ImapAdvancedSetupDialog_ConnectionSecurity": "Connection security",
"ImapAuthenticationMethod_Auto": "Auto",
@@ -291,9 +341,9 @@
"NewAccountDialog_AccountNameDefaultValue": "Personal",
"NewAccountDialog_AccountNamePlaceholder": "eg. Personal Mail",
"NewAccountDialog_Title": "Add New Account",
"NoMailSelected": "no message selected",
"NoMessageCrieteria": "no messages match your search criteria.",
"NoMessageEmptyFolder": "this folder is empty.",
"NoMailSelected": "No message selected",
"NoMessageCrieteria": "No messages match your search criteria",
"NoMessageEmptyFolder": "This folder is empty",
"Notifications_MultipleNotificationsMessage": "You have {0} new mails",
"Notifications_MultipleNotificationsTitle": "New Mails",
"Notifications_WinoUpdatedMessage": "Checkout new version {0}",
@@ -310,12 +360,15 @@
"ProviderDetail_Gmail_Description": "Google Account",
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
"ProviderDetail_IMAP_Title": "IMAP Server",
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
"Results": "Results",
"Right": "Right",
"Reader_SaveAllAttachmentButtonText": "Save all attachments",
"SynchronizationFolderReport_Success": "up to date",
"SynchronizationFolderReport_Failed": "synchronization is failed",
"SearchBarPlaceholder": "search",
"SearchingIn": "searching in",
"SearchBarPlaceholder": "Search",
"SearchingIn": "Searching in",
"SearchPivotName": "Results",
"SettingsAboutGithub_Description": "Go to issue tracker GitHub repository.",
"SettingsAboutGithub_Title": "GitHub",
"SettingsAccountManagementAppendMessage_Title": "Append messages to Sent folder",
@@ -370,6 +423,8 @@
"SettingsFolderSync_Title": "Folder Synchronization",
"SettingsFolderOptions_Title": "Folder Configuration",
"SettingsFolderOptions_Description": "Change individual folder settings like enable/disable sync or show/hide unread badge.",
"SettingsManageAliases_Title": "Aliases",
"SettingsManageAliases_Description": "See e-mail aliases assigned for this account, update or delete them.",
"SettingsHoverActionCenter": "Center Action",
"SettingsHoverActionLeft": "Left Action",
"SettingsHoverActionRight": "Right Action",
@@ -377,7 +432,14 @@
"SettingsHoverActions_Title": "Hover Actions",
"SettingsLanguage_Description": "Change display language for Wino.",
"SettingsLanguage_Title": "Display Language",
"SettingsLanguageTime_Title": "Language & Time",
"SettingsLanguageTime_Description": "Wino display language, preferred time format.",
"CategoriesFolderNameOverride": "Categories",
"AccountAlias_Column_Verified": "Verified",
"AccountAlias_Column_Alias": "Alias",
"AccountAlias_Column_IsPrimaryAlias": "Primary",
"AccountAlias_Disclaimer_FirstLine": "Wino can only import aliases for your Gmail accounts.",
"AccountAlias_Disclaimer_SecondLine": "If you want to use aliases for your Outlook or IMAP account, please add them yourself.",
"MoreFolderNameOverride": "More",
"SettingsOptions_Title": "Settings",
"SettingsLinkAccounts_Description": "Merge multiple accounts into one. See mails from one Inbox together.",
@@ -392,6 +454,21 @@
"SettingsFolderMenuStyle_Description": "Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail",
"SettingsManageAccountSettings_Description": "Notifications, signatures, synchronization and other settings per account.",
"SettingsManageAccountSettings_Title": "Manage Account Settings",
"SettingsAppPreferences_Title": "App Preferences",
"SettingsAppPreferences_Description": "General settings / preferences for Wino Mail.",
"SettingsAppPreferences_CloseBehavior_Title": "Application close behavior",
"SettingsAppPreferences_CloseBehavior_Description": "What should happen when you close the app?",
"SettingsAppPreferences_StartupBehavior_Title": "Start minimized on Windows startup",
"SettingsAppPreferences_StartupBehavior_Description": "Allow Wino Mail to launch minimized when Windows starts. Always allow it to receive notifications.",
"SettingsAppPreferences_StartupBehavior_Enabled": "Wino Mail successfully set to be launched in the background on Windows startup.",
"SettingsAppPreferences_StartupBehavior_Disabled": "Wino Mail will not be launched on Windows startup. This will cause you to miss notifications when you restart your computer.",
"SettingsAppPreferences_StartupBehavior_DisabledByPolicy": "Your administrator or group policies disabled running applications on startup. Thus, Wino Mail can't be set to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_DisabledByUser": "Please go to Task Manager -> Startup tab to allow Wino Mail to launch on Windows startup.",
"SettingsAppPreferences_StartupBehavior_FatalError": "Fatal error occurred while changing the startup mode for Wino Mail.",
"SettingsAppPreferences_StartupBehavior_Enable": "Enable",
"SettingsAppPreferences_StartupBehavior_Disable": "Disable",
"SettingsReorderAccounts_Title": "Reorder Accounts",
"SettingsReorderAccounts_Description": "Change the order of accounts in the account list.",
"SettingsManageLink_Description": "Move items to add new link or remove existing link.",
"SettingsManageLink_Title": "Manage Link",
"SettingsMarkAsRead_Description": "Change what should happen to the selected item.",
@@ -405,8 +482,8 @@
"SettingsNoAccountSetupMessage": "You didn't setup any accounts yet.",
"SettingsNotifications_Description": "Turn on or off notifications for this account.",
"SettingsNotifications_Title": "Notifications",
"SettingsPaneLength_Description": "Change the width of the mail list.",
"SettingsPaneLength_Title": "Mail List Pane Length",
"SettingsPaneLengthReset_Description": "Reset the size of the mail list to original if you have issues with it.",
"SettingsPaneLengthReset_Title": "Reset Mail List Size",
"SettingsPaypal_Description": "Show much more love ❤️ All donations are appreciated.",
"SettingsPaypal_Title": "Donate via PayPal",
"SettingsPersonalizationMailDisplayCompactMode": "Compact Mode",
@@ -416,8 +493,10 @@
"SettingsPersonalization_Title": "Personalization",
"SettingsPrivacyPolicy_Description": "Review privacy policy.",
"SettingsPrivacyPolicy_Title": "Privacy Policy",
"SettingsReadingPane_Description": "Mail rendering options.",
"SettingsReadingPane_Title": "Reading Pane",
"SettingsReader_Title": "Reader",
"SettingsComposer_Title": "Composer",
"SettingsReadComposePane_Description": "Fonts, external content.",
"SettingsReadComposePane_Title": "Reader & Composer",
"SettingsReaderFont_Title": "Default Reader Font",
"SettingsReaderFontFamily_Description": "Change the default font family and font size for reading mails.",
"SettingsFontFamily_Title": "Font Family",
@@ -435,7 +514,7 @@
"SettingsShowSenderPictures_Title": "Show Sender Avatars",
"SettingsPrefer24HourClock_Title": "Display Clock Format in 24 Hours",
"SettingsPrefer24HourClock_Description": "Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)",
"SettingsSignature_Description": "Edit or remove account signature",
"SettingsSignature_Description": "Manage account signatures",
"SettingsSignature_Title": "Signature",
"SettingsStartupItem_Description": "Primary account item to load Inbox at startup.",
"SettingsStartupItem_Title": "Startup Item",
@@ -478,5 +557,31 @@
"WinoUpgradeDescription": "Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade",
"WinoUpgradeMessage": "Upgrade to Unlimited Accounts",
"WinoUpgradeRemainingAccountsMessage": "{0} out of {1} free accounts used.",
"Yesterday": "Yesterday"
"Yesterday": "Yesterday",
"SignatureEditorDialog_Title": "Signature Editor",
"SignatureEditorDialog_SignatureName_Placeholder": "Name your signature",
"SignatureEditorDialog_SignatureName_TitleNew": "Signature name",
"SignatureEditorDialog_SignatureName_TitleEdit": "Current signature name: {0}",
"SignatureDeleteDialog_Title": "Delete signature",
"SignatureDeleteDialog_Message": "Are you sure you want to delete \"{0}\" signature?",
"SettingsSignature_ForNewMessages_Title": "For New Messages",
"SettingsSignature_ForFollowingMessages_Title": "For Replies/Forwards",
"SettingsSignature_SignatureDefaults": "Signature defaults",
"SettingsSignature_Signatures": "Signatures",
"SettingsSignature_AddCustomSignature_Title": "Add custom signature",
"SettingsSignature_AddCustomSignature_Button": "Add signature",
"SettingsSignature_EditSignature_Title": "Edit signature",
"SettingsSignature_DeleteSignature_Title": "Delete signature",
"SettingsSignature_NoneSignatureName": "None",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Title": "Minimize to system tray",
"SettingsAppPreferences_ServerBackgroundingMode_MinimizeTray_Description": "Wino Mail will keep running on the system tray. Available to launch by clicking on an icon. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Title": "Run in the background",
"SettingsAppPreferences_ServerBackgroundingMode_Invisible_Description": "Wino Mail will keep running in the background. You will be notified as new mails arrive.",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Title": "Terminate",
"SettingsAppPreferences_ServerBackgroundingMode_Terminate_Description": "Wino Mail will not keep running anywhere. You will not be notified as new mails arrive. Launch Wino Mail again to continue mail synchronization.",
"TitleBarServerDisconnectedButton_Title": "no connection",
"TitleBarServerDisconnectedButton_Description": "Wino is disconnected from the network. Click reconnect to restore connection.",
"TitleBarServerReconnectButton_Title": "reconnect",
"TitleBarServerReconnectingButton_Title": "connecting"
}

Some files were not shown because too many files have changed in this diff Show More