:speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.
See the codeTranslate Shell (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Yandex.Translate, and Apertium. It gives you easy access to one of these translation engines in your terminal:
$ trans 'Saluton, Mondo!'
Saluton, Mondo!
Hello, World!
Translations of Saluton, Mondo!
[ Esperanto -> English ]
Saluton ,
Hello,
Mondo !
World!
By default, translations with detailed explanations are shown. You can also translate the text briefly: (only the most relevant translation will be shown)
$ trans -brief 'Saluton, Mondo!'
Hello, World!
Translate Shell can also be used like an interactive shell; input the text to be translated line by line:
$ trans -shell -brief
> Rien ne réussit comme le succès.
Nothing succeeds like success.
> Was mich nicht umbringt, macht mich stärker.
What does not kill me makes me stronger.
> Юмор есть остроумие глубокого чувства.
Humor has a deep sense of wit.
> 學而不思則罔,思而不學則殆。
Learning without thought is labor lost, thought without learning is perilous.
> 幸福になるためには、人から愛されるのが一番の近道。
In order to be happy, the best way is to be loved by people.
Translate Shell is known to work on many POSIX-compliant systems, including but not limited to:
These dependencies are optional, but strongly recommended for full functionality:
It is a must to have corresponding fonts for the language(s) / script(s) you wish to display in your terminal. See wiki: Writing Systems and Fonts for more details on scripts and recommended Unicode fonts.
Start an interactive shell and translate anything you input into your native language: (in bash or zsh)
$ gawk -f <(curl -Ls --compressed https://git.io/translate) -- -shell
(in fish)
$ gawk -f (curl -Ls --compressed https://git.io/translate | psub) -- -shell
To try out via Docker, run:
$ docker pull soimort/translate-shell
Then you may start an interactive shell from the Docker image for translating:
$ docker run -it soimort/translate-shell -shell
Download the self-contained executable and place it into your path. It's everything you need.
$ wget git.io/trans
$ chmod +x ./trans
There is a GPG signature.
See wiki: Distros on how to install from a specific package manager on your distro.
Add the following line to your .zshrc:
antigen bundle soimort/translate-shell@develop
$ git clone https://github.com/soimort/translate-shell
$ cd translate-shell/
$ make
$ [sudo] make install
In case you have only zsh but not bash in your system, build with:
$ make TARGET=zsh
The default PREFIX of installation is /usr/local. To install the program to somewhere else (e.g. /usr, ~/.local), use:
$ [sudo] make PREFIX=/usr install
Google Translate can identify the language of the source text automatically, and Translate Shell by default translates the source text into the language of your locale.
$ trans vorto
Translate a word into French:
$ trans :fr word
Translate a word into Chinese and Japanese: (use a plus sign "+" as the delimiter)
$ trans :zh+ja word
Alternatively, equals sign ("=") can be used in place of the colon (":"). Note that in some shells (e.g. zsh), equals signs may be interpreted differently, therefore the argument specifying languages needs to be protected:
$ trans {=zh+ja} word
$ trans '=zh+ja' word
You can also use the -target (-t) option to specify the target language(s):
$ trans -t zh+ja word
With the -t option, the name of the language may also be used instead of the language code:
$ trans -t japanese word
$ trans -t 日本語 word
Google Translate may wrongly identify the source text as some other language than you expected:
$ trans 手紙
In that case, you need to specify its language explicitly:
$ trans ja: 手紙
$ trans zh: 手紙
You can also use the -source (-s) option to specify the source language:
$ trans -s ja 手紙
Translate each word alone:
$ trans en:zh word processor
Put words into one argument, and translate them as a whole:
$ trans en:zh "word processor"
Translating a sentence is much the same like translating a phrase; you can just quote the sentence into one argument:
$ trans :zh "To-morrow, and to-morrow, and to-morrow,"
$ trans :zh 'To-morrow, and to-morrow, and to-morrow,'
It is also possible to translate multi-line sentences:
$ trans :zh "Creeps in this petty pace from day to day,
> To the last syllable of recorded time;
> And all our yesterdays have lighted fools
> The way to dusty death."
To avoid punctuation marks (e.g. "!") or other special characters being interpreted by the shell, use single quotes:
$ trans :zh 'Out, out, brief candle!'
There are some cases though, you may still want to use double quotes: (e.g. the sentence contains a single quotation mark "'")
$ trans :zh "Life's but a walking shadow, a poor player"
Alternatively, use the -join-sentence (-j) option to treat all arguments as one sentence so that quotes can be omitted:
$ trans -j :zh Life\'s but a walking shadow, a poor player
By default, Translate Shell displays translations in a verbose manner. If you prefer to see only the most relevant translation, there is a brief mode available using the -brief (-b) option:
$ trans -b :fr "Saluton, Mondo"
In brief mode, phonetic notation (if any) is not shown by default. To enable this, put an at sign "@" in front of the language code:
$ trans -b :@ja "Saluton, Mondo"
Google Translate can be used as a dictionary. When translating a word and the target language is the same as the source language, the dictionary entry of the word is shown:
$ trans :en word
To enable dictionary mode no matter whether the source language and the target language are identical, use the -dictionary (-d) option.
$ trans -d fr: mot
Note: Not every language supported by Google Translate has provided dictionary data. See wiki: Languages to find out which language(s) has dictionary support.
Use the -identify (-id) option to identify the language of the text:
$ trans -id 言葉
Use the -play (-p) option to listen to the translation:
$ trans -b -p :ja "Saluton, Mondo"
Use the -speak (-sp) option to listen to the original text:
$ trans -sp "你好,世界"
Sometimes the content of translation can be too much for display in one screen. Use the -view (-v) option to view the translation in a terminal pager such as less or more:
$ trans -d -v word
Right-to-Left (RTL) languages are well supported via GNU FriBidi.
The program will automatically adjust the screen width for padding when displaying right-to-left languages. Alternatively, you may use the -width (-w) option to specify the screen width:
$ trans -b -w 40 :he "Saluton, Mondo"
See wiki: Languages to find out which language(s) uses a Right-to-Left writing system.
If no source text is given in command-line arguments, the program will read from standard input, or from the file specified by the -input (-i) option:
$ echo "Saluton, Mondo" | trans -b :fr
$ trans -b -i input.txt :fr
Translations are written to standard output, or to the file specified by the -output (-o) option:
$ echo "Saluton, Mondo" | trans -b -o output.txt :fr
Instead of using the -input option, a file URI scheme (file:// followed by the file name) can be used as a command-line argument:
$ trans :fr file://input.txt
Note: Brief mode is used when translating from file URI schemes.
To translate a web page, an http(s) URI scheme can be used as an argument:
$ trans :fr http://www.w3.org/
A browser session will open for viewing the translation (via Google Translate's web interface). To specify your web browser of choice, use the -browser option:
$ trans -browser firefox :fr http://www.w3.org/
Use the -linguist (-L) option to view details of one or more languages:
$ trans -L fr
$ trans -L de+en
Some basic information of the language will be displayed: its English name and endonym (language name in the language itself), language family, writing system, canonical Google Translate code and ISO 639-3 code.
Start an interactive shell using the -shell (or -interactive, -I) option:
$ trans -shell
You may specify the source language and the target language(s) before starting an interactive shell:
$ trans -shell en:fr
You may also change these settings during an interactive session. See wiki: REPL for more advanced usage of the interactive Translate Shell.
For more details on command-line options, see the man page trans(1) or use trans -M in a terminal.
Usage: trans [OPTIONS] [SOURCES]:[TARGETS] [TEXT]...
Information options:
-V, -version
Print version and exit.
-H, -help
Print help message and exit.
-M, -man
Show man page and exit.
-T, -reference
Print reference table of languages (in endonyms) and codes, and exit.
-R, -reference-english
Print reference table of languages (in English names) and codes, and exit.
-S, -list-engines
List available translation engines and exit.
-list-languages
List all languages (in endonyms) and exit.
-list-languages-english
List all languages (in English names) and exit.
-list-codes
List all codes and exit.
-list-all
List all languages (endonyms and English names) and codes, and exit.
-L CODES, -linguist CODES
Print details of languages and exit.
-U, -upgrade
Check for upgrade of this program.
Translator options:
-e ENGINE, -engine ENGINE
Specify the translation engine to use.
Display options:
-verbose
Verbose mode. (default)
-b, -brief
Brief mode.
-d, -dictionary
Dictionary mode.
-identify
Language identification.
-show-original Y/n
Show original text or not.
-show-original-phonetics Y/n
Show phonetic notation of original text or not.
-show-translation Y/n
Show translation or not.
-show-translation-phonetics Y/n
Show phonetic notation of translation or not.
-show-prompt-message Y/n
Show prompt message or not.
-show-languages Y/n
Show source and target languages or not.
-show-original-dictionary y/N
Show dictionary entry of original text or not.
-show-dictionary Y/n
Show dictionary entry of translation or not.
-show-alternatives Y/n
Show alternative translations or not.
-w NUM, -width NUM
Specify the screen width for padding.
-indent NUM
Specify the size of indent (number of spaces).
-theme FILENAME
Specify the theme to use.
-no-theme
Do not use any other theme than default.
-no-ansi
Do not use ANSI escape codes.
-no-autocorrect
Do not autocorrect. (if defaulted by the translation engine)
-no-bidi
Do not convert bidirectional texts.
-bidi
Always convert bidirectional texts.
-no-warn
Do not write warning messages to stderr.
-dump
Print raw API response instead.
Audio options:
-p, -play
Listen to the translation.
-speak
Listen to the original text.
-n VOICE, -narrator VOICE
Specify the narrator, and listen to the translation.
-player PROGRAM
Specify the audio player to use, and listen to the translation.
-no-play
Do not listen to the translation.
-no-translate
Do not translate anything when using -speak.
-download-audio
Download the audio to the current directory.
-download-audio-as FILENAME
Download the audio to the specified file.
Terminal paging and browsing options:
-v, -view
View the translation in a terminal pager.
-pager PROGRAM
Specify the terminal pager to use, and view the translation.
-no-view, -no-pager
Do not view the translation in a terminal pager.
-browser PROGRAM
Specify the web browser to use.
-no-browser
Do not open the web browser.
Networking options:
-x HOST:PORT, -proxy HOST:PORT
Use HTTP proxy on given port.
-u STRING, -user-agent STRING
Specify the User-Agent to identify as.
-4, -ipv4, -inet4-only
Connect only to IPv4 addresses.
-6, -ipv6, -inet6-only
Connect only to IPv6 addresses.
Interactive shell options:
-I, -interactive, -shell
Start an interactive shell.
-E, -emacs
Start the GNU Emacs front-end for an interactive shell.
-no-rlwrap
Do not invoke rlwrap when starting an interactive shell.
I/O options:
-i FILENAME, -input FILENAME
Specify the input file.
-o FILENAME, -output FILENAME
Specify the output file.
Language preference options:
-hl CODE, -host CODE
Specify the host (interface) language.
-s CODES, -sl CODES, -source CODES, -from CODES
Specify the source language(s), joined by '+'.
-t CODES, -tl CODES, -target CODES, -to CODES
Specify the target language(s), joined by '+'.
Text preprocessing options:
-j, -join-sentence
Treat all arguments as one single sentence.
Other options:
-no-init
Do not load any initialization script.
See the man page trans(1) for more information.
Use trans -R or trans -T to view the reference table in a terminal.
For more details on languages and corresponding codes, see wiki: Languages.
| Language | Code | Language | Code | Language | Code |
|---|---|---|---|---|---|
| Afrikaans Afrikaans | af | Hebrew עִבְרִית | he | Portuguese (Brazilian) Português Brasileiro | pt-BR |
| Albanian Shqip | sq | Hill Mari Кырык мары | mrj | Portuguese (European) Português Europeu | pt-PT |
| Amharic አማርኛ | am | Hindi हिन्दी | hi | Punjabi ਪੰਜਾਬੀ | pa |
| Arabic العربية | ar | Hmong Hmoob | hmn | Quechua Runasimi | qu |
| Armenian Հայերեն | hy | Hungarian Magyar | hu | Querétaro Otomi Hñąñho | otq |
| Assamese অসমীয়া | as | Icelandic Íslenska | is | Romanian Română | ro |
| Aymara Aymar aru | ay | Igbo Igbo | ig | Romansh Rumantsch | rm |
| Azerbaijani Azərbaycanca | az | Ilocano Ilokano | ilo | Russian Русский | ru |
| Bambara Bamanankan | bm | Indonesian Bahasa Indonesia | id | Samoan Gagana Sāmoa | sm |
| Bashkir Башҡортса | ba | Interlingue Interlingue | ie | Sanskrit संस्कृतम् | sa |
| Basque Euskara | eu | Inuinnaqtun Inuinnaqtun | ikt | Scots Gaelic Gàidhlig | gd |
| Belarusian беларуская | be | Inuktitut ᐃᓄᒃᑎᑐᑦ | iu | Sepedi Sepedi | nso |
| Bengali বাংলা | bn | Inuktitut (Latin) Inuktitut | iu-Latn | Serbian (Cyrillic) Српски | sr-Cyrl |
| Bhojpuri भोजपुरी | bho | Irish Gaeilge | ga | Serbian (Latin) Srpski | sr-Latn |
| Bosnian Bosanski | bs | Italian Italiano | it | Sesotho Sesotho | st |
| Breton Brezhoneg | br | Japanese 日本語 | ja | Setswana Setswana | tn |
| Bulgarian български | bg | Javanese Basa Jawa | jv | Shona chiShona | sn |
| Cantonese 粵語 | yue | Kannada ಕನ್ನಡ | kn | Sindhi سنڌي | sd |
| Catalan Català | ca | Kazakh Қазақ тілі | kk | Sinhala සිංහල | si |
| Cebuano Cebuano | ceb | Khmer ភាសាខ្មែរ | km | Slovak Slovenčina | sk |
| Cherokee ᏣᎳᎩ | chr | Kinyarwanda Ikinyarwanda | rw | Slovenian Slovenščina | sl |
| Chichewa Nyanja | ny | Klingon tlhIngan Hol | tlh-Latn | Somali Soomaali | so |
| Chinese (Literary) 文言 | lzh | Konkani कोंकणी | gom | Spanish Español | es |
| Chinese (Simplified) 简体中文 | zh-CN | Korean 한국어 | ko | Sundanese Basa Sunda | su |
| Chinese (Traditional) 繁體中文 | zh-TW | Krio Krio | kri | Swahili Kiswahili | sw |
| Chuvash Чӑвашла | cv | Kurdish (Central) سۆرانی | ckb | Swedish Svenska | sv |
| Corsican Corsu | co | Kurdish (Northern) Kurmancî | ku | Tahitian Reo Tahiti | ty |
| Croatian Hrvatski | hr | Kyrgyz Кыргызча | ky | Tajik Тоҷикӣ | tg |
| Czech Čeština | cs | Lao ລາວ | lo | Tamil தமிழ் | ta |
| Danish Dansk | da | Latin Latina | la | Tatar татарча | tt |
| Dari دری | prs | Latvian Latviešu | lv | Telugu తెలుగు | te |
| Dhivehi ދިވެހި | dv | Lingala Lingála | ln | Thai ไทย | th |
| Dogri डोगरी | doi | Lithuanian Lietuvių | lt | Tibetan བོད་ཡིག | bo |
| Dutch Nederlands | nl | Luganda Luganda | lg | Tigrinya ትግርኛ | ti |
| Dzongkha རྫོང་ཁ | dz | Luxembourgish Lëtzebuergesch | lb | Tongan Lea faka-Tonga | to |
| Eastern Mari Олык марий | mhr | Macedonian Македонски | mk | Tsonga Xitsonga | ts |
| English English | en | Maithili मैथिली | mai | Turkish Türkçe | tr |
| Esperanto Esperanto | eo | Malagasy Malagasy | mg | Turkmen Türkmen | tk |
| Estonian Eesti | et | Malay Bahasa Melayu | ms | Twi Twi | tw |
| Ewe Eʋegbe | ee | Malayalam മലയാളം | ml | Udmurt Удмурт | udm |
| Faroese Føroyskt | fo | Maltese Malti | mt | Ukrainian Українська | uk |
| Fijian Vosa Vakaviti | fj | Maori Māori | mi | Upper Sorbian Hornjoserbšćina | hsb |
| Filipino Filipino | tl | Marathi मराठी | mr | Urdu اُردُو | ur |
| Finnish Suomi | fi | Meiteilon ꯃꯤꯇꯩꯂꯣꯟ | mni-Mtei | Uyghur ئۇيغۇر تىلى | ug |
| French Français | fr | Mizo Mizo ṭawng | lus | Uzbek Oʻzbek tili | uz |
| French (Canadian) Français canadien | fr-CA | Mongolian Монгол | mn | Vietnamese Tiếng Việt | vi |
| Frisian Frysk | fy | Mongolian (Traditional) ᠮᠣᠩᠭᠣᠯ | mn-Mong | Volapük Volapük | vo |
| Galician Galego | gl | Myanmar မြန်မာစာ | my | Welsh Cymraeg | cy |
| Georgian ქართული | ka | Nepali नेपाली | ne | Wolof Wollof | wo |
| German Deutsch | de | Norwegian Norsk | no | Xhosa isiXhosa | xh |
| Greek Ελληνικά | el | Occitan Occitan | oc | Yakut Sakha | sah |
| Greenlandic Kalaallisut | kl | Odia ଓଡ଼ିଆ | or | Yiddish ייִדיש | yi |
| Guarani Avañe'ẽ | gn | Oromo Afaan Oromoo | om | Yoruba Yorùbá | yo |
| Gujarati ગુજરાતી | gu | Papiamento Papiamentu | pap | Yucatec Maya Màaya T'àan | yua |
| Haitian Creole Kreyòl Ayisyen | ht | Pashto پښتو | ps | Zulu isiZulu | zu |
| Hausa Hausa | ha | Persian فارسی | fa | ||
| Hawaiian ʻŌlelo Hawaiʻi | haw | Polish Polski | pl |
Lists of all languages, writing systems and fonts for reference:
The following pages demonstrate the advanced usage of Translate Shell:
Find out whether your Linux distribution has included Translate Shell in its official repository. If not, contribute one:
Frequently Asked Questions, historical stuff, AWK coding style, etc.:
Please review the guidelines for contributing before reporting an issue or sending a pull request.
This is free and unencumbered software released into the public domain. See LICENSE and WAIVER for details.
Awk
98.8%
:speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.
See the codeTranslate Shell (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Yandex.Translate, and Apertium. It gives you easy access to one of these translation engines in your terminal:
$ trans 'Saluton, Mondo!'
Saluton, Mondo!
Hello, World!
Translations of Saluton, Mondo!
[ Esperanto -> English ]
Saluton ,
Hello,
Mondo !
World!
By default, translations with detailed explanations are shown. You can also translate the text briefly: (only the most relevant translation will be shown)
$ trans -brief 'Saluton, Mondo!'
Hello, World!
Translate Shell can also be used like an interactive shell; input the text to be translated line by line:
$ trans -shell -brief
> Rien ne réussit comme le succès.
Nothing succeeds like success.
> Was mich nicht umbringt, macht mich stärker.
What does not kill me makes me stronger.
> Юмор есть остроумие глубокого чувства.
Humor has a deep sense of wit.
> 學而不思則罔,思而不學則殆。
Learning without thought is labor lost, thought without learning is perilous.
> 幸福になるためには、人から愛されるのが一番の近道。
In order to be happy, the best way is to be loved by people.
Translate Shell is known to work on many POSIX-compliant systems, including but not limited to:
These dependencies are optional, but strongly recommended for full functionality:
It is a must to have corresponding fonts for the language(s) / script(s) you wish to display in your terminal. See wiki: Writing Systems and Fonts for more details on scripts and recommended Unicode fonts.
Start an interactive shell and translate anything you input into your native language: (in bash or zsh)
$ gawk -f <(curl -Ls --compressed https://git.io/translate) -- -shell
(in fish)
$ gawk -f (curl -Ls --compressed https://git.io/translate | psub) -- -shell
To try out via Docker, run:
$ docker pull soimort/translate-shell
Then you may start an interactive shell from the Docker image for translating:
$ docker run -it soimort/translate-shell -shell
Download the self-contained executable and place it into your path. It's everything you need.
$ wget git.io/trans
$ chmod +x ./trans
There is a GPG signature.
See wiki: Distros on how to install from a specific package manager on your distro.
Add the following line to your .zshrc:
antigen bundle soimort/translate-shell@develop
$ git clone https://github.com/soimort/translate-shell
$ cd translate-shell/
$ make
$ [sudo] make install
In case you have only zsh but not bash in your system, build with:
$ make TARGET=zsh
The default PREFIX of installation is /usr/local. To install the program to somewhere else (e.g. /usr, ~/.local), use:
$ [sudo] make PREFIX=/usr install
Google Translate can identify the language of the source text automatically, and Translate Shell by default translates the source text into the language of your locale.
$ trans vorto
Translate a word into French:
$ trans :fr word
Translate a word into Chinese and Japanese: (use a plus sign "+" as the delimiter)
$ trans :zh+ja word
Alternatively, equals sign ("=") can be used in place of the colon (":"). Note that in some shells (e.g. zsh), equals signs may be interpreted differently, therefore the argument specifying languages needs to be protected:
$ trans {=zh+ja} word
$ trans '=zh+ja' word
You can also use the -target (-t) option to specify the target language(s):
$ trans -t zh+ja word
With the -t option, the name of the language may also be used instead of the language code:
$ trans -t japanese word
$ trans -t 日本語 word
Google Translate may wrongly identify the source text as some other language than you expected:
$ trans 手紙
In that case, you need to specify its language explicitly:
$ trans ja: 手紙
$ trans zh: 手紙
You can also use the -source (-s) option to specify the source language:
$ trans -s ja 手紙
Translate each word alone:
$ trans en:zh word processor
Put words into one argument, and translate them as a whole:
$ trans en:zh "word processor"
Translating a sentence is much the same like translating a phrase; you can just quote the sentence into one argument:
$ trans :zh "To-morrow, and to-morrow, and to-morrow,"
$ trans :zh 'To-morrow, and to-morrow, and to-morrow,'
It is also possible to translate multi-line sentences:
$ trans :zh "Creeps in this petty pace from day to day,
> To the last syllable of recorded time;
> And all our yesterdays have lighted fools
> The way to dusty death."
To avoid punctuation marks (e.g. "!") or other special characters being interpreted by the shell, use single quotes:
$ trans :zh 'Out, out, brief candle!'
There are some cases though, you may still want to use double quotes: (e.g. the sentence contains a single quotation mark "'")
$ trans :zh "Life's but a walking shadow, a poor player"
Alternatively, use the -join-sentence (-j) option to treat all arguments as one sentence so that quotes can be omitted:
$ trans -j :zh Life\'s but a walking shadow, a poor player
By default, Translate Shell displays translations in a verbose manner. If you prefer to see only the most relevant translation, there is a brief mode available using the -brief (-b) option:
$ trans -b :fr "Saluton, Mondo"
In brief mode, phonetic notation (if any) is not shown by default. To enable this, put an at sign "@" in front of the language code:
$ trans -b :@ja "Saluton, Mondo"
Google Translate can be used as a dictionary. When translating a word and the target language is the same as the source language, the dictionary entry of the word is shown:
$ trans :en word
To enable dictionary mode no matter whether the source language and the target language are identical, use the -dictionary (-d) option.
$ trans -d fr: mot
Note: Not every language supported by Google Translate has provided dictionary data. See wiki: Languages to find out which language(s) has dictionary support.
Use the -identify (-id) option to identify the language of the text:
$ trans -id 言葉
Use the -play (-p) option to listen to the translation:
$ trans -b -p :ja "Saluton, Mondo"
Use the -speak (-sp) option to listen to the original text:
$ trans -sp "你好,世界"
Sometimes the content of translation can be too much for display in one screen. Use the -view (-v) option to view the translation in a terminal pager such as less or more:
$ trans -d -v word
Right-to-Left (RTL) languages are well supported via GNU FriBidi.
The program will automatically adjust the screen width for padding when displaying right-to-left languages. Alternatively, you may use the -width (-w) option to specify the screen width:
$ trans -b -w 40 :he "Saluton, Mondo"
See wiki: Languages to find out which language(s) uses a Right-to-Left writing system.
If no source text is given in command-line arguments, the program will read from standard input, or from the file specified by the -input (-i) option:
$ echo "Saluton, Mondo" | trans -b :fr
$ trans -b -i input.txt :fr
Translations are written to standard output, or to the file specified by the -output (-o) option:
$ echo "Saluton, Mondo" | trans -b -o output.txt :fr
Instead of using the -input option, a file URI scheme (file:// followed by the file name) can be used as a command-line argument:
$ trans :fr file://input.txt
Note: Brief mode is used when translating from file URI schemes.
To translate a web page, an http(s) URI scheme can be used as an argument:
$ trans :fr http://www.w3.org/
A browser session will open for viewing the translation (via Google Translate's web interface). To specify your web browser of choice, use the -browser option:
$ trans -browser firefox :fr http://www.w3.org/
Use the -linguist (-L) option to view details of one or more languages:
$ trans -L fr
$ trans -L de+en
Some basic information of the language will be displayed: its English name and endonym (language name in the language itself), language family, writing system, canonical Google Translate code and ISO 639-3 code.
Start an interactive shell using the -shell (or -interactive, -I) option:
$ trans -shell
You may specify the source language and the target language(s) before starting an interactive shell:
$ trans -shell en:fr
You may also change these settings during an interactive session. See wiki: REPL for more advanced usage of the interactive Translate Shell.
For more details on command-line options, see the man page trans(1) or use trans -M in a terminal.
Usage: trans [OPTIONS] [SOURCES]:[TARGETS] [TEXT]...
Information options:
-V, -version
Print version and exit.
-H, -help
Print help message and exit.
-M, -man
Show man page and exit.
-T, -reference
Print reference table of languages (in endonyms) and codes, and exit.
-R, -reference-english
Print reference table of languages (in English names) and codes, and exit.
-S, -list-engines
List available translation engines and exit.
-list-languages
List all languages (in endonyms) and exit.
-list-languages-english
List all languages (in English names) and exit.
-list-codes
List all codes and exit.
-list-all
List all languages (endonyms and English names) and codes, and exit.
-L CODES, -linguist CODES
Print details of languages and exit.
-U, -upgrade
Check for upgrade of this program.
Translator options:
-e ENGINE, -engine ENGINE
Specify the translation engine to use.
Display options:
-verbose
Verbose mode. (default)
-b, -brief
Brief mode.
-d, -dictionary
Dictionary mode.
-identify
Language identification.
-show-original Y/n
Show original text or not.
-show-original-phonetics Y/n
Show phonetic notation of original text or not.
-show-translation Y/n
Show translation or not.
-show-translation-phonetics Y/n
Show phonetic notation of translation or not.
-show-prompt-message Y/n
Show prompt message or not.
-show-languages Y/n
Show source and target languages or not.
-show-original-dictionary y/N
Show dictionary entry of original text or not.
-show-dictionary Y/n
Show dictionary entry of translation or not.
-show-alternatives Y/n
Show alternative translations or not.
-w NUM, -width NUM
Specify the screen width for padding.
-indent NUM
Specify the size of indent (number of spaces).
-theme FILENAME
Specify the theme to use.
-no-theme
Do not use any other theme than default.
-no-ansi
Do not use ANSI escape codes.
-no-autocorrect
Do not autocorrect. (if defaulted by the translation engine)
-no-bidi
Do not convert bidirectional texts.
-bidi
Always convert bidirectional texts.
-no-warn
Do not write warning messages to stderr.
-dump
Print raw API response instead.
Audio options:
-p, -play
Listen to the translation.
-speak
Listen to the original text.
-n VOICE, -narrator VOICE
Specify the narrator, and listen to the translation.
-player PROGRAM
Specify the audio player to use, and listen to the translation.
-no-play
Do not listen to the translation.
-no-translate
Do not translate anything when using -speak.
-download-audio
Download the audio to the current directory.
-download-audio-as FILENAME
Download the audio to the specified file.
Terminal paging and browsing options:
-v, -view
View the translation in a terminal pager.
-pager PROGRAM
Specify the terminal pager to use, and view the translation.
-no-view, -no-pager
Do not view the translation in a terminal pager.
-browser PROGRAM
Specify the web browser to use.
-no-browser
Do not open the web browser.
Networking options:
-x HOST:PORT, -proxy HOST:PORT
Use HTTP proxy on given port.
-u STRING, -user-agent STRING
Specify the User-Agent to identify as.
-4, -ipv4, -inet4-only
Connect only to IPv4 addresses.
-6, -ipv6, -inet6-only
Connect only to IPv6 addresses.
Interactive shell options:
-I, -interactive, -shell
Start an interactive shell.
-E, -emacs
Start the GNU Emacs front-end for an interactive shell.
-no-rlwrap
Do not invoke rlwrap when starting an interactive shell.
I/O options:
-i FILENAME, -input FILENAME
Specify the input file.
-o FILENAME, -output FILENAME
Specify the output file.
Language preference options:
-hl CODE, -host CODE
Specify the host (interface) language.
-s CODES, -sl CODES, -source CODES, -from CODES
Specify the source language(s), joined by '+'.
-t CODES, -tl CODES, -target CODES, -to CODES
Specify the target language(s), joined by '+'.
Text preprocessing options:
-j, -join-sentence
Treat all arguments as one single sentence.
Other options:
-no-init
Do not load any initialization script.
See the man page trans(1) for more information.
Use trans -R or trans -T to view the reference table in a terminal.
For more details on languages and corresponding codes, see wiki: Languages.
| Language | Code | Language | Code | Language | Code |
|---|---|---|---|---|---|
| Afrikaans Afrikaans | af | Hebrew עִבְרִית | he | Portuguese (Brazilian) Português Brasileiro | pt-BR |
| Albanian Shqip | sq | Hill Mari Кырык мары | mrj | Portuguese (European) Português Europeu | pt-PT |
| Amharic አማርኛ | am | Hindi हिन्दी | hi | Punjabi ਪੰਜਾਬੀ | pa |
| Arabic العربية | ar | Hmong Hmoob | hmn | Quechua Runasimi | qu |
| Armenian Հայերեն | hy | Hungarian Magyar | hu | Querétaro Otomi Hñąñho | otq |
| Assamese অসমীয়া | as | Icelandic Íslenska | is | Romanian Română | ro |
| Aymara Aymar aru | ay | Igbo Igbo | ig | Romansh Rumantsch | rm |
| Azerbaijani Azərbaycanca | az | Ilocano Ilokano | ilo | Russian Русский | ru |
| Bambara Bamanankan | bm | Indonesian Bahasa Indonesia | id | Samoan Gagana Sāmoa | sm |
| Bashkir Башҡортса | ba | Interlingue Interlingue | ie | Sanskrit संस्कृतम् | sa |
| Basque Euskara | eu | Inuinnaqtun Inuinnaqtun | ikt | Scots Gaelic Gàidhlig | gd |
| Belarusian беларуская | be | Inuktitut ᐃᓄᒃᑎᑐᑦ | iu | Sepedi Sepedi | nso |
| Bengali বাংলা | bn | Inuktitut (Latin) Inuktitut | iu-Latn | Serbian (Cyrillic) Српски | sr-Cyrl |
| Bhojpuri भोजपुरी | bho | Irish Gaeilge | ga | Serbian (Latin) Srpski | sr-Latn |
| Bosnian Bosanski | bs | Italian Italiano | it | Sesotho Sesotho | st |
| Breton Brezhoneg | br | Japanese 日本語 | ja | Setswana Setswana | tn |
| Bulgarian български | bg | Javanese Basa Jawa | jv | Shona chiShona | sn |
| Cantonese 粵語 | yue | Kannada ಕನ್ನಡ | kn | Sindhi سنڌي | sd |
| Catalan Català | ca | Kazakh Қазақ тілі | kk | Sinhala සිංහල | si |
| Cebuano Cebuano | ceb | Khmer ភាសាខ្មែរ | km | Slovak Slovenčina | sk |
| Cherokee ᏣᎳᎩ | chr | Kinyarwanda Ikinyarwanda | rw | Slovenian Slovenščina | sl |
| Chichewa Nyanja | ny | Klingon tlhIngan Hol | tlh-Latn | Somali Soomaali | so |
| Chinese (Literary) 文言 | lzh | Konkani कोंकणी | gom | Spanish Español | es |
| Chinese (Simplified) 简体中文 | zh-CN | Korean 한국어 | ko | Sundanese Basa Sunda | su |
| Chinese (Traditional) 繁體中文 | zh-TW | Krio Krio | kri | Swahili Kiswahili | sw |
| Chuvash Чӑвашла | cv | Kurdish (Central) سۆرانی | ckb | Swedish Svenska | sv |
| Corsican Corsu | co | Kurdish (Northern) Kurmancî | ku | Tahitian Reo Tahiti | ty |
| Croatian Hrvatski | hr | Kyrgyz Кыргызча | ky | Tajik Тоҷикӣ | tg |
| Czech Čeština | cs | Lao ລາວ | lo | Tamil தமிழ் | ta |
| Danish Dansk | da | Latin Latina | la | Tatar татарча | tt |
| Dari دری | prs | Latvian Latviešu | lv | Telugu తెలుగు | te |
| Dhivehi ދިވެހި | dv | Lingala Lingála | ln | Thai ไทย | th |
| Dogri डोगरी | doi | Lithuanian Lietuvių | lt | Tibetan བོད་ཡིག | bo |
| Dutch Nederlands | nl | Luganda Luganda | lg | Tigrinya ትግርኛ | ti |
| Dzongkha རྫོང་ཁ | dz | Luxembourgish Lëtzebuergesch | lb | Tongan Lea faka-Tonga | to |
| Eastern Mari Олык марий | mhr | Macedonian Македонски | mk | Tsonga Xitsonga | ts |
| English English | en | Maithili मैथिली | mai | Turkish Türkçe | tr |
| Esperanto Esperanto | eo | Malagasy Malagasy | mg | Turkmen Türkmen | tk |
| Estonian Eesti | et | Malay Bahasa Melayu | ms | Twi Twi | tw |
| Ewe Eʋegbe | ee | Malayalam മലയാളം | ml | Udmurt Удмурт | udm |
| Faroese Føroyskt | fo | Maltese Malti | mt | Ukrainian Українська | uk |
| Fijian Vosa Vakaviti | fj | Maori Māori | mi | Upper Sorbian Hornjoserbšćina | hsb |
| Filipino Filipino | tl | Marathi मराठी | mr | Urdu اُردُو | ur |
| Finnish Suomi | fi | Meiteilon ꯃꯤꯇꯩꯂꯣꯟ | mni-Mtei | Uyghur ئۇيغۇر تىلى | ug |
| French Français | fr | Mizo Mizo ṭawng | lus | Uzbek Oʻzbek tili | uz |
| French (Canadian) Français canadien | fr-CA | Mongolian Монгол | mn | Vietnamese Tiếng Việt | vi |
| Frisian Frysk | fy | Mongolian (Traditional) ᠮᠣᠩᠭᠣᠯ | mn-Mong | Volapük Volapük | vo |
| Galician Galego | gl | Myanmar မြန်မာစာ | my | Welsh Cymraeg | cy |
| Georgian ქართული | ka | Nepali नेपाली | ne | Wolof Wollof | wo |
| German Deutsch | de | Norwegian Norsk | no | Xhosa isiXhosa | xh |
| Greek Ελληνικά | el | Occitan Occitan | oc | Yakut Sakha | sah |
| Greenlandic Kalaallisut | kl | Odia ଓଡ଼ିଆ | or | Yiddish ייִדיש | yi |
| Guarani Avañe'ẽ | gn | Oromo Afaan Oromoo | om | Yoruba Yorùbá | yo |
| Gujarati ગુજરાતી | gu | Papiamento Papiamentu | pap | Yucatec Maya Màaya T'àan | yua |
| Haitian Creole Kreyòl Ayisyen | ht | Pashto پښتو | ps | Zulu isiZulu | zu |
| Hausa Hausa | ha | Persian فارسی | fa | ||
| Hawaiian ʻŌlelo Hawaiʻi | haw | Polish Polski | pl |
Lists of all languages, writing systems and fonts for reference:
The following pages demonstrate the advanced usage of Translate Shell:
Find out whether your Linux distribution has included Translate Shell in its official repository. If not, contribute one:
Frequently Asked Questions, historical stuff, AWK coding style, etc.:
Please review the guidelines for contributing before reporting an issue or sending a pull request.
This is free and unencumbered software released into the public domain. See LICENSE and WAIVER for details.
Awk
98.8%