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

AlexanderT

  • New Member
  • *
  • Posts: 36
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!

Since the previous releases, Trayslate has received a number of significant improvements and new features:
  • Improved translation workflow — the Popup Window has become more convenient with new controls, language pair switching, Auto Height options, and improved interaction with translated text.
  • More powerful Mouse Mode — added new actions to the translate button and fixed several issues that could occasionally cause Mouse Mode to stop working.
  • Built-in language detection — introduced and significantly improved automatic language detection, now using a corpus-based algorithm supporting 100+ languages.
  • Powerful scripting support — added PascalScript for calculated parameters and response processing, making translation configurations much more flexible.
  • More translation services — added configurations for Reverso, Yandex Translate, Lara Translate, LLM7 AI, Google Translate WebTran, and others.
  • Improved configuration management — easier configuration editing, reloading, icon management, proxy settings, and additional configuration options.
  • New drag-and-drop capabilities — drag text from other applications into Trayslate and rearrange recent language pairs with the mouse.
  • Keyboard shortcuts — added hotkeys for Quick Settings and improved hotkey handling throughout the application.
  • Better stability and reliability — fixed numerous issues related to translation threads, clipboard handling, popup windows, keyboard and mouse hooks, focus handling, and configuration management.

Overall, these releases make Trayslate more powerful, flexible, reliable, and convenient to use, while keeping its lightweight approach.

Download here
« Last Edit: August 23, 2026, 12:08:11 am by AlexanderT »

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4743
  • 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: 36
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: 3888
    • 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: 36
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: 201
    • BS Programs
Is it okay to access Google Translate using REST with AndroidTranslate as User Agent's value?
Lazarus 4.6, Windows 10, Website, YouTube channel
If I want to share, I give. If I want money, I sell. I don't set traps.

AlexanderT

  • New Member
  • *
  • Posts: 36
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: 36
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: 201
    • 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.6, Windows 10, Website, YouTube channel
If I want to share, I give. If I want money, I sell. I don't set traps.

AlexanderT

  • New Member
  • *
  • Posts: 36
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: 36
v1.5.1 (2026-08-14)

🚀 New Features
  • Added tray icon frame in Mouse Mode and circular tray icon mode #246

✨ Enhancements
  • Don't save empty translation files to backup #253
  • Added JSON functions for PascalScript #252
  • Disabled Launch at system startup by default for the Portable version #244

🐛 Fixed Bugs
  • Settings form is now brought to the foreground when changing Quick Settings while it is visible #250
  • Fixed incorrect language changes when selecting different config types #249
  • Added mouse movement direction checking to prevent frequent language pair button jitter #243
  • Added additional protection against list errors and other code errors #242
  • Fixed an error when creating a new config #241
  • Fixed response processing script not working #240
  • Fixed config icon fallback to the standard form icon #239
  • Fixed incorrect translation of some characters #238

v1.5.0 (2026-08-12)

🚀 New Features
  • Added context menu actions in Mouse Mode to replace selected text with translation or open the translation in the desired window #215
  • Added drop-down menu and quick Auto Height controls to the Popup Window #194
  • Added hotkeys for Quick Settings #229
  • Added drag-and-drop text insertion from other applications #234
  • Added drag-and-drop reordering of recent language pairs #212
  • Added PascalScript response processing #202
  • Added language pair swapping to the Popup Window #195

✨ Enhancements
  • Significantly improved built-in language detection with a corpus-based algorithm supporting 100+ languages #214
  • Improved configuration management with config reloading, icon management, and additional options #226 #227 #232
  • Added LLM7 AI and Google Translate WebTran configurations #224 #222
  • Added RegExp support to PascalScript #203
  • Added Config Editor access to the Recent Pairs context menu #198
  • Improved Popup Window resizing and Auto Height behavior #196

🌐 Localization
  • Updated Bulgarian translation by @jekovcar
  • Updated Brazilian Portuguese translation by @Havokdan
  • Updated Vietnamese translation by @vuanhvu11982
  • Updated Italian translation by @bovirus

🐛 Fixed Bugs
  • Fixed several issues that could occasionally cause Mouse Mode to stop working #236 #218 #207
  • Fixed button response issues after displaying context menus #225
  • Fixed settings and Apply button behavior #223 #206 #205
  • Improved Popup Window StayOnTop and height recalculation #191
  • Improved dark mode icons #228
  • Fixed translation issues with resource strings #200
« Last Edit: August 14, 2026, 03:25:06 pm by AlexanderT »

 

TinyPortal © 2005-2018