Skip to content

LAB02-Research/DeepL-Translator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub release (latest by date) license OS - Windows dotnet GitHub all releases

DeepL logo

DeepL Translator

DeepL Translator is a Windows-based client application for DeepL's translation API, developed in .NET 7.

Click here to download the latest installer.


Content


Introduction

DeepL provides AI/ML translation services. They differ from for example Google Translate in that they don't translate as-is, but also contextually. I've been using it a lot for translating from and into French, and it's truly amazing what they can do. Besides plain text, it's also possible to translate entire documents, while preserving their layout.

DeepL logo

DeepL offers a Windows app for their translation services, but that client doesn't support the API, only regular subscriptions. Using the API can be more cost efficient for both the free and pro subscriptions: the free subscription offers 500.000 characters per month, which can be used for both documents and text. The pro subscription charges per character, instead of having to pay a set price monthly regardless of usage.

So, since there isn't an API client available, I built one that I'd want to use. It even has a feature that DeepL doesn't yet provide: translating webpages! It uses Firefox's reading mode engine which not only makes it easier for you to read the translation, but also reduces the amount of characters.

Note: regardless of how it may seem, I'm not affiliated with DeepL in any way. I did not get a dime for writing this. If you appreciate my work, I'd appreciate a coffee!

"Buy Me A Coffee"


Download

Click here to download the latest installer, or here for the zip package and source code.


Functionality

  • Text: translate written text, or just drag and drop a .txt file.

  • Documents: translate a variaty of document types. Supports drag and drop, and has lots of checks to make sure your document will be accepted by DeepL.

  • Webpages: translate any webpage. Extracts the relevant text to reduce the amount of characters and increase the readability.

  • Language detection: all of the above options support automatic source language detection.

  • Hotkey: easily consult the app by pressing your hotkey. If you have text selected, it'll be conveniently pasted into the source textbox. Select an url and it'll get translated on the webpage tab right away.

  • Formality: supports setting a different formality (as long as the language supports it).

  • Cost management: tells you how much your text or document will cost in terms of both characters and hard cash. Shows the current state of your subscription.

  • UI: full fledged interface, built to be easy and intuitive to use with as little input as possible. Resides in the system tray.

  • Print or save: print your translations, or store them locally for later reference.

  • Updater: contains an automatic updater that'll keep your translator up-to-date in the background.


Usage

Just install the latest installer. It'll make sure you have all the required prerequisites, and the application will launch when done (and notify you of a missing API key).

You can get your free or pro key here: https://www.deepl.com/pro-api/

Make sure you set the correct domain, corresponding to your subscription:

image

Note: if you use a pro subscription and a different currency than euros, make sure to set the correct price-per-character value.


Screenshots

What's the point of open sourcing your software if you don't share screenshots ..

Text interface:

image

Document interface:

image

Webpage interface:

image

image

You'll be notified of the costs before translating a document:

image

image

image

If a document or webpage translation will exceed your limit, you'll be notified as well:

image

Or if you've already reached your limit:

image

Easily check your subscription's state:

image

image

Formality support:

image

Hides in your system tray, next to the clock:

image


Implemented

This is a list of features and fixes that have so far been done:

  • Make main window resizable
  • Toggle button to switch source and target language
  • 'Document in use' check
  • Add scrollbars to text translation fields
  • Apply theme to webpage reading mode scrollbars
  • Button tooltips
  • Limit nagging popups to max once
  • Always on top
  • Support for other currencies
  • Recognize urls when using global hotkey, insert into webpage tab
  • Add 'open in browser' button for translated webpage
  • Support for drag 'n dropping URLs
  • Add 'save translation' support
  • Add 'print translation' support
  • Global hotkey
  • Fetch selection after using global hotkey
  • Set focus to 'translate' button after selecting document
  • Set focus to 'copy to clipboard' after translating text
  • Fix scaling on non-default DPI modes
  • Ignore 'characters left' for pro
  • Emphasize 'limit (will be) reached' message with red
  • Revert to 'text' page on hide
  • Fix tray icon on dark backgrounds
  • Auto launch on Windows login
  • Domain info popup
  • UI stays locked after 'translation failed'
  • Allow only single instance
  • Press 'esc' in any window to hide
  • Set money cost to zero on free
  • Show warning when limit passed
  • Show warning when limit will be passed by translation
  • Add 'clear' buttons
  • Add 'open subscription' button to info page
  • Improve installer graphics
  • Bundle .NET 7 and WebView2 with installer

Credits and Licensing

Thanks to DeepL for providing such a great translation service!

And a big thank you to all other packages:

ByteSize, DeepL.net, Microsoft.Web.WebView2, Newtonsoft.Json, HotkeyListener (and @ruffk's core version), Serilog, SmartReader, Syncfusion.

Please consult their individual licensing if you plan to use any of their code.

DeepL Translator is released under the MIT license.

LAB02 Research is not in any way affiliated with DeepL, and does not receive any commisions or other payment for developing this application.