I would like to translate words from English to Language X trough terminal
If it is possible, what kind of dictionaries there are?
Is it possible to use online services like webxicon.org trough terminal?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.Sign up to join this community
You can install
dictd server and use Freedict Dictionary database for word translations.
sudo apt-get install dictd
Install translation database. eg. dict-freedict-eng-fra for English to French translation, dict-freedict-eng-spa for English to Spanish translation.
sudo apt-get install dict-freedict-eng-fra sudo apt-get install dict-freedict-eng-spa
View list of databases:
Use a particular database eg. for English to Spanish translation:
dict -d fd-eng-spa "how are you?"
sudo apt-get install libtranslate-bin
eg. using online google translate engine:
echo "what are you doing" | translate-bin -s google -f en -t fr
Installing English dictionary databeses (gcide, wn, devil):
sudo apt-get install dict-gcide sudo apt-get install dict-wn sudo apt-get install dict-devil
Installing English Thesaurus database (moby-thesaurus):
sudo apt-get install dict-moby-thesaurus
Using a particular database (eg. WordNet - wn):
dict -d wn "dictionary"
Not specifying a dict-database will output definitions/translations/thesaurus from all available databases. eg.
Translate Shell (ex Google Translate CLI) is a tool that lets you use translate text from the command line using Google Translate.
$ wget git.io/trans $ chmod +x ./trans
sudo apt install translate-shell
$ git clone https://github.com/soimort/translate-shell $ cd translate-shell/ $ make $ [sudo] make install
trans en:de "The quick brown fox jumps over the lazy dog" # Translate to German (de) trans es: "Igualdad, fraternidad y libertad" # From Spanish to your `locale` trans :fr "Igualdad, fraternidad y libertad" # From your `locale` to French trans -b :fr "Igualdad, fraternidad y libertad" # Same but `-brief`
As a dictionary: Google Translate can be used as a dictionary when lang from==to or -d parameter is used
trans -d fr: mot
Additional information and some examples can be found in the official site
Depending on the language you want, check out Apertium for offline machine translation through the terminal. It seems to focus mostly on Romance languages (ES, FR, PT, CAT, OCC..), but looks like they are slowly adding various new languages.
For Spanish you would install:
sudo apt install apertium apertium-en-es echo "Hola Mundo." | apertium -a es-en > Hello world.
It's terminal based but there's also a basic GUI:
The version in the repos is older, if you want a newer version follow the install instructions.
I wrote a simple command-line translator base on google translate using Python.
The code: The python code is less than 100 lines, and I also wrote an installer script, and provide a config file so that could set your default preferred language.
It's under MIT license.
Pre-requisites: Python2.x on Linux, is all it needs, it don't support python3 yet, I might fix this later.
Have a look at sdcv based answer here (It also has "Xlanguage" to "Ylanguage" dictionaries):
Should also check surfraw. Once you install, you may get meaning of a word through
sr webster difficultWord. One way to translate will be through
sr google difficultword in hindi.There will probably be other options for translation as well.
I have written a simple command-line translator based on text files. It also reproduces an audio file if it exists. I already have a database of audio files, and if I don't find them, then I download them from a google database.