Recent

Author Topic: Trayslate 1.3.0 - Free tray translator with hotkeys and configurable services  (Read 1916 times)

AlexanderT

  • New Member
  • *
  • Posts: 27
Hello,

I’ve created a lightweight open-source tray translator for Windows:
Trayslate (a combination of “tray” and “translate”).

Main features:
  • Global hotkeys for instant translation
  • Works with clipboard and selected text
  • Convenient Mouse Mode for keyboard-free translation
  • Configurable translation services
  • Runs silently in the system tray

The project is open-source and written in Lazarus (Free Pascal).
At the moment, only Windows is supported.

GitHub:
https://github.com/plaintool/trayslate

New Version is now available!

In this release, I focused on improving network connectivity and flexibility. Trayslate now uses the Synapse networking library, adds support for proxy servers, and can securely store API keys for translation services that require authentication.
I also added several quality-of-life improvements, including automatic copying of translated text to the clipboard, instant saving of settings, and better management of recent language pairs.
No Linux yet. Sorry.

Download here
« Last Edit: June 10, 2026, 08:17:58 pm by AlexanderT »

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4715
  • I like bugs.
It does not compile on Linux.
"Registry" is inside {$IFDEF Windows} block in unit systemtool.
Unit langtool has a useless {$IFDEF Windows} block.
Then there are some Windows specific defines ...

Such an application can be written without any {$IFDEF Windows} or using the "Windows" unit.
LCLIntf ports part of Windows API and LCLType defines Windows compatible stuff.
« Last Edit: April 04, 2026, 09:56:29 am by JuhaManninen »
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

AlexanderT

  • New Member
  • *
  • Posts: 27
It does not compile on Linux.
"Registry" is inside {$IFDEF Windows} block in unit systemtool..
Unit langtool has a useless {$IFDEF Windows} block.
Then there are some Windows specific defines ...

Such an application can be written without any {$IFDEF Windows} or using the "Windows" unit.
LCLIntf ports part of Windows API and LCLType defines Windows compatible stuff.

Hello,
Thank you for your feedback and for reviewing the code.

At the moment, I haven’t built or tested the application on Linux yet. Cross-platform support is planned for future versions. When I start working on Linux builds, I will review and clean up Windows-specific parts and unnecessary {$IFDEF} blocks.

In version 1.0.0, the application is intended and officially supported only on Windows.

dbannon

  • Hero Member
  • *****
  • Posts: 3826
    • tomboy-ng, a rewrite of the classic Tomboy
At the moment, I haven’t built or tested the application on Linux yet. Cross-platform support is planned for future versions. When I start working on Linux builds, I will review and clean up Windows-specific parts and unnecessary {$IFDEF} blocks.
:'(  :'(  :'(  :'(

When you do get around to Linux (Mac is easy) please have a look at my app, mentioned below. While what you have hopefully done will work with sensible Desktops like Mate, xfce or Cinnamon unfortunately, the most common default Desktop, Gnome, requires heroic efforts to get the System Tray working. Sad but true.

So, start testing with, my recommendation, Mate, to get your confidence up. Then try Gnome and KDE.  :o  :o

Davo 
Lazarus 4, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

AlexanderT

  • New Member
  • *
  • Posts: 27
When you do get around to Linux (Mac is easy) please have a look at my app, mentioned below. While what you have hopefully done will work with sensible Desktops like Mate, xfce or Cinnamon unfortunately, the most common default Desktop, Gnome, requires heroic efforts to get the System Tray working. Sad but true.

So, start testing with, my recommendation, Mate, to get your confidence up. Then try Gnome and KDE.  :o  :o

Hello Davo,

Thanks for the advice — I’m aware of the system tray issues in GNOME, so that’s something I’ll keep in mind. It might make sense to look into macOS first, since I haven’t had experience building for it yet.

Right now I’m trying to promote the project and improve its visibility to get more downloads and feedback. If you have any suggestions, I’d be glad to hear them.

Xenno

  • Full Member
  • ***
  • Posts: 109
    • BS Programs
Is it okay to access Google Translate using REST with AndroidTranslate as User Agent's value?
Lazarus 4.0, Windows 10, https://www.youtube.com/@bsprograms

AlexanderT

  • New Member
  • *
  • Posts: 27
Is it okay to access Google Translate using REST with AndroidTranslate as User Agent's value?

Hello,

The application itself does not include any built-in integration with Google Translate.
The provided configurations are intended only as examples. If needed, you can use official APIs — for instance, obtain a Google Translate API key and create your own configuration based on it.
The User-Agent used in the example configuration was taken from a popular public repository (similar to py-googletrans), though I don’t remember the exact source.

Best regards,
« Last Edit: April 04, 2026, 03:48:17 pm by AlexanderT »

AlexanderT

  • New Member
  • *
  • Posts: 27
Trayslate v1.0.1 (2026-04-06)

[Full Changelog: click here]

Quote
✨ Enhancements
- Add global Ctrl+Shift+Number hotkeys for recent language pairs and set checked state for the current pair #6

🐛 Fixed Bugs
- Fixed installer issues #5
- Titles were not updated when showing the main window #3
- To determine the language, send only a text sample #2
- The application in some cases did not open by clicking on the tray icon #1

Xenno

  • Full Member
  • ***
  • Posts: 109
    • BS Programs
Thanks for the clarity. It’s important for anyone using or collaborating on this app to understand that translation services have strict TOS regarding indirect access. We want to stay fully compliant to avoid any impact on our users. On a separate note, the app itself is looking great.
Lazarus 4.0, Windows 10, https://www.youtube.com/@bsprograms

AlexanderT

  • New Member
  • *
  • Posts: 27
Thanks for the clarity. It’s important for anyone using or collaborating on this app to understand that translation services have strict TOS regarding indirect access. We want to stay fully compliant to avoid any impact on our users. On a separate note, the app itself is looking great.

There are many projects on GitHub that use Google services by emulating a browser in one way or another. In my case, this kind of logic is not implemented in the code, but the configurations are even more transparent than the code itself.
I am aware that this can be a concern. For now, I have noted it in the disclaimer section of the README.md. I am also considering adding a warning directly inside the application itself to make this more visible to users. I may also take additional measures if needed.

AlexanderT

  • New Member
  • *
  • Posts: 27
v1.3.0 (2026-06-09)

🚀 New Features
  • Migrated networking layer to Synapse while keeping OpenSSL 1.1.1w support for Windows XP compatibility #109
  • Added support for proxy server configuration #75
  • Added support for translation services requiring API keys with secure storage in user settings #99
  • Added option to automatically copy translated text to the clipboard #78

✨ Enhancements
  • Settings are now saved immediately after changes #108
  • Added Remove action for recent language pairs and pair reordering via context menu #87
  • Show Translate button on mouse-mode double-click when text has been copied #84

🌐 Localization
  • Added Brazilian Portuguese language contributed by @Havokdan #100
  • Updated Italian translation contributed by @bovirus
  • Updated Bulgarian translation contributed by @jekovcar

🐛 Fixed Bugs
  • Automatic Translation option in Quick Settings was not saved correctly #98
  • Popup Window was not resized after translation when already visible #92
  • Popup Window font settings were not remembered between sessions #85

 

TinyPortal © 2005-2018