Portable Version [Windows]
Created by: smaragdus
Preamble
After using QTranslate (desktop program) and Translate Man (browser extension- Chromium, Firefox) for quite some time, several days ago I came across Crow Translate (on AlternativeTo). QTranslate is a well-designed and mature program but it is neither cross platform nor open source. As sooner or later I will have to switch from Windows to Linux (Windows 8 will be my last Windows version as I have not even considered updating to spyware Windows 10) I decided to have a look at Crow Translate. Screenshots and programming language usually can tell a lot so even before testing Crow Translate I supposed I would like the program- native (written in C++, no .NET, no Java, no abominations like JavaScript/Electron), cross platform and open source, clean interface, decent customization options. Testing Crow Translate just confirmed my expectations- the program is a keeper. Yet it does not (yet) have one of the virtues of QTranslate- portable version.
Request
As I mentioned above QTranslate has a portable version- one needs just to download the archive, extract it, run the executable and all settings will be saved in a configuration file (Options.json) in a sub-folder (Data) inside program folder. As the portable version of QTranslate does not write neither to Windows Registry nor to AppData the user can easily move the program from machine to machine with all its settings.
Currently Crow Translate saves settings to Windows Registry:
HKEY_CURRENT_USER\Software\Crow\Crow Translate
The most important about portable version of a program (or a program running in portable mode) is that all settings are saved in a configuration file (Config, INI, JSON, XML, etc) inside program folder and nothing is written neither in AppData nor in Windows Registry. Portability can be implemented in different ways, I will provide several examples below:
- portable version - separate portable version- the program is packed in archive, the user extracts the archive and runs the executable, settings are saved in a configuration file in program folder;
-
command-line argument - if crow.exe is started with a specific parameter, for example
crow.exe -portable
, settings are saved in a configuration file in program folder; -
portable flag - specific file in program folder (for example
portable
without extension orportable.txt
) triggers portable mode, when Crow Translate starts it checks program folder for such file and if it is there settings are saved in a configuration file in program folder; - configuration file - when Crow Translate starts it checks program folder for a configuration file and if it is there the program uses it;
-
special sub-folder - when Crow Translate starts it checks program folder for a special sub-folder (for example
Data
orSettings
) and if it is there it saves settings in a configuration file in this sub-folder; -
executable name - if the executable is renamed from
crow.exe
tocrow-portable.exe
the program starts in portable mode, settings are saved in a configuration file in program folder; -
option in settings - new check box-
Portable mode
, which, if selected, forces the program to save settings in a configuration file in program folder; - portable installation - when the program is installed beside normal installation it offers also portable installation (extraction), which just extracts the files to a folder specified by the user and settings are saved in a configuration file in program folder;
There may be other ways of triggering portable mode but I suppose the ones I suggested above are the most common. I prefer methods 1, 3, 4 and 5 but any of them would do once Crow Translate can save settings to configuration file and load settings from configuration file (and thus not using Windows Registry for saving/loading settings).
Advantage
I think that portable programs (or programs running in portable mode) have several advantages:
- mobility - portable programs can be easily transferred from machine to machine with all their data and settings;
- backup - portable programs are easy to back up to external drives or to cloud services (in case one needs to re-install OS);
- testing - portable programs facilitate testing- one can test different versions (stable, alpha, beta) with different settings;
So I will be glad if you consider implementing portable mode for Crow Translate in future releases. I believe that if there is portable version of Crow Translate (or it can run in portable mode) this would add more flexibility to the already quite promising program.