Menerjemahkan Bahasa Menggunakan Google Translate, Bing Translator dan Yandex.Translate dalam Terminal/CLI

Semoga masih segar dalam ingatan Anda tulisan saya tentang Menggunakan Google Search, Google Site Search, dan Google News dari Dalam Terminal. Kini, saya akan mengupas layanan yang umumnya hanya bisa diakses melalui peramban; penerjemah.
Setidaknya ada tiga layanan penerjemah besar yang saya ketahui; Google Translate, Bing Translator dan Yandex.Translate. Sejauh yang saya ketahui, ketiganya memerlukan akses menggunakan peramban. Mungkin ada juka aplikasi untuk Android-nya, namun umumnya berupa wrapper untuk versi web-nya.
Nah, kini kita akan mempelajari bagaimana mengakses layanan-layanan tersebut menggunakan baris perintah.

What with you and this command line obsessions?

Ini bukan obsesi sih, cuma memang dalam banyak kesempatan saya lebih memilih menggunakan perkakas yang berjalan dalam terminal dibandingkan menggunakan perkakas berantar-muka grafis (GUI). Terlebih, tren aplikasi GUI sekarang semakin tidak memuaskan. Ya, misalnya saja aplikasi berdasar electron. Untuk menulis teks saja kini butuh ratusan megabyte RAM dan prosesor berinti banyak. Jika menilik perkembangan yang seperti ini, jangan kaget jika di masa depan walau prosesor komputer 12GHz berinti 17 dan RAM 1TB namun pengalaman berkomputasinya tidak lebih baik dari keadaan sekarang. Ya karena nanti muncul electron-electron lain yang lebih rakus.

Yeah, that's my personal opinion. Jadi kita pinggirkan dulu sebentar dan mulai membahas cara mengakses layanan penerjemah Google, Bing dan Yandex menggunakan baris perintah.
Bagaimana caranya? Yaitu dengan menggunakan piranti lunak bernama translate-shell.

Translate-shell (sebelumnya bernama Google Translate CLI) adalah sebuah perangkat lunak berantarmuka baris perintah (command line interface) yang berguna sebagai penerjemah dengan memanfaatkan layanan dari Google, Bing, Yandex dan Apertium.

Bagaimana memasang translate-shell?

Ada banyak cara untuk memasang translate-shell, untuk selengkapnya silakan rujuk reponya di GitHub. Yang paling mudah tentunya dengan memeriksa apakah ia telah masuk ke dalam repo distro yang kita gunakan. Jika sudah ada dalam repo, tinggal install menggunakan penata paket yang ada.

Berikut cara pemasangan di distro yang diketahui telah memiliki translate-shell dalam reponya. Daftar selengkapnya bisa dilihat di sini.

  • Debian/Ubuntu
    apt-get install translate-shell
    aptitude install translate-shell
    apt install translate-shell
    
  • Mageia
    urpmi translate-shell
    
  • Gentoo
    emerge --ask app-i18n/translate-shell
    
  • Arch
    yaourt -S translate-shell
    
  • Source Mage GNU/Linux
    cast translate-shell
    
  • Fedora
    dnf install translate-shell
    

Jika ternyata translate-shell belum masuk repo distro yang Anda gunakan, jangan berkecil hati. Gunakan saja cara tradisional:

  • Clone repo GitHub-nya.
    git clone https://github.com/soimort/translate-shell
    cd translate-shell/
    make
    sudo make install
    
  • Unduh skrip translate-shell dan jadikan executable.
    wget git.io/trans
    chmod +x ./trans
    sudo mv trans /usr/bin/
    

Jika telah terpasang, translate-shell dapat dijalankan dengan menggunakan perintah trans.

Bagaimana menggunakan translate-shell?

Seperti umumnya perangkat lunak CLI, dokumentasi dan cara penggunaan translate-shell bisa dibaca di manual (man trans) atau parameter help (trans --help).
Berikut akan diberikan contoh-contoh mendasar, sisanya bisa Anda coba-coba sendiri.

Secara asali, translate-shell menggunakan Google sebagai mesin penerjemahnya. Daftar mesin penerjemah yang didukung translate-shell dapat dilihat menggunakan parameter -S.

$ trans -S
* google
  bing
  apertium
  yandex

Gunakan parameter -e untuk menggunakan mesin lain. Misal untuk menggunakan mesin bing:

trans -e bing terjemah

Dan agar tidak terus-menerus mengetik parameter -e, Anda bisa menetapkannya di berkas konfigurasi.

Jika tidak diberikan bahasa tujuan terjemah, translate-shell akan menerjemahkan kata ke dalam bahasa sesuai pengaturan locale di sistem Linux yang kita pakai. Gunakan perintah echo $LANG untuk mengetahui locale pada sistem.
Misal, locale pada Debian saya adalah en_US.UTF-8:

$ echo $LANG
en_US.UTF-8

Jadi, jika saya hanya mengetikkan kata, maka kata tersebut akan diterjemahkan ke dalam bahasa Inggris versi Amerika Serikat.

$ trans bahasa
bahasa
(null)

language
/null/

Definitions of bahasa
[ Bahasa Indonesia -> English ]

noun
    language
        bahasa, cara menulis
    tongue
        lidah, bahasa, kayu penarik, cara bicara, cara berbicara, cara bercakap
    speech
        pidato, bahasa, kemampuan berbicara, cara bicara, cara berbicara, logat
    terms
        bahasa, haid
    parlance
        bahasa, cara bercakap, cara bicara, cara berbicara
    argot
        dialek, bahasa
    good manners
        basa-basi, kesantunan, bahasa

Seperti yang Anda lihat di atas, keluaran translate-shell begitu terperinci. jika hanya ingin mengetahui padanan katanya saja, gunakan parameter -b.

$ trans -b bahasa
language

Atau gunakan -d untuk tampilan berbentuk layaknya kamus.

$ trans -d bahasa
bahasa
(null)

language
/null/

Definitions of bahasa
[ Bahasa Indonesia -> English ]

Synonyms
    noun
        - percakapan
        - peristilahan, istilah

See also
    bahasa daerah, bahasa pengantar, bahasa isyarat, bahasa Indonesia, bahasa ibu, gaya bahasa, bahasa sehari-hari, ahli bahasa, bahasa kasar, bahasa Jerman

Dan jika ternyata kita ingin menerjemahkan ke dalam bahasa selain yang telah diatur di locale, kita bisa menggunakan kode negara. Misal jika hendak menerjemahkan ke dalam bahasa belanda:

$ trans :nl bahasa
bahasa
(null)

taal
(null)

Translations of bahasa
[ Bahasa Indonesia -> Nederlands ]

bahasa
    taal, de taal, taal voorhanden, language, taal wijzigen

nl adalah kode negara untuk Belanda. Daftar kode negara yang didukung bisa dilihat menggunakan parameter -R.

$ trans -R
┌───────────────────────┬───────────────────────┬───────────────────────┐
│ Afrikaans      -   af | Hindi          -   hi | Punjabi        -   pa |
│ Albanian       -   sq | Hmong          -  hmn | Querétaro Otomi-  otq |
│ Amharic        -   am | Hmong Daw      -  mww | Romanian       -   ro |
│ Arabic         -   ar | Hungarian      -   hu | Russian        -   ru |
│ Armenian       -   hy | Icelandic      -   is | Samoan         -   sm |
│ Azerbaijani    -   az | Igbo           -   ig | Scots Gaelic   -   gd |
│ Basque         -   eu | Indonesian     -   id | Serbian (Cyr...-sr-Cyrl
│ Belarusian     -   be | Irish          -   ga | Serbian (Latin)-sr-Latn
│ Bengali        -   bn | Italian        -   it | Sesotho        -   st |
│ Bosnian        -   bs | Japanese       -   ja | Shona          -   sn |
│ Bulgarian      -   bg | Javanese       -   jv | Sindhi         -   sd |
│ Cantonese      -  yue | Kannada        -   kn | Sinhala        -   si |
│ Catalan        -   ca | Kazakh         -   kk | Slovak         -   sk |
│ Cebuano        -  ceb | Khmer          -   km | Slovenian      -   sl |
│ Chichewa       -   ny | Klingon        -  tlh | Somali         -   so |
│ Chinese Simp...- zh-CN| Klingon (pIqaD)tlh-Qaak Spanish        -   es |
│ Chinese Trad...- zh-TW| Korean         -   ko | Sundanese      -   su |
│ Corsican       -   co | Kurdish        -   ku | Swahili        -   sw |
│ Croatian       -   hr | Kyrgyz         -   ky | Swedish        -   sv |
│ Czech          -   cs | Lao            -   lo | Tahitian       -   ty |
│ Danish         -   da | Latin          -   la | Tajik          -   tg |
│ Dutch          -   nl | Latvian        -   lv | Tamil          -   ta |
│ English        -   en | Lithuanian     -   lt | Tatar          -   tt |
│ Esperanto      -   eo | Luxembourgish  -   lb | Telugu         -   te |
│ Estonian       -   et | Macedonian     -   mk | Thai           -   th |
│ Fijian         -   fj | Malagasy       -   mg | Tongan         -   to |
│ Filipino       -   tl | Malay          -   ms | Turkish        -   tr |
│ Finnish        -   fi | Malayalam      -   ml | Udmurt         -  udm |
│ French         -   fr | Maltese        -   mt | Ukrainian      -   uk |
│ Frisian        -   fy | Maori          -   mi | Urdu           -   ur |
│ Galician       -   gl | Marathi        -   mr | Uzbek          -   uz |
│ Georgian       -   ka | Mongolian      -   mn | Vietnamese     -   vi |
│ German         -   de | Myanmar        -   my | Welsh          -   cy |
│ Greek          -   el | Nepali         -   ne | Xhosa          -   xh |
│ Gujarati       -   gu | Norwegian      -   no | Yiddish        -   yi |
│ Haitian Creole -   ht | Pashto         -   ps | Yoruba         -   yo |
│ Hausa          -   ha | Persian        -   fa | Yucatec Maya   -  yua |
│ Hawaiian       -  haw | Polish         -   pl | Zulu           -   zu |
│ Hebrew         -   he | Portuguese     -   pt |                       │
└───────────────────────┴───────────────────────┴───────────────────────┘

Wah, Basa Sunda pun telah didukung. Mari kita coba.

$ trans :su gadis
gadis
(null)

mojang
(null)

Translations of gadis
[ Bahasa Indonesia -> Basa Sunda ]

gadis
    mojang, awéwé, gadis, gede, arek

Mengagumkan.

Ada kalanya mesin penerjemah gagal mendeteksi bahasa sumber. Misalnya:

$ trans mojang
mojang
(null)

mojang
/null/

Translations of mojang
[ Bahasa Indonesia -> English ]

mojang
    mojang

Bisa dilihat mesin penerjemah salah mendeteksi kata mojang yang aslinya adalah bahasa Sunda. Kita bisa gunakan kode negara lagi untuk memberi tahu mesin penerjemah mengenai asal kata. Bedanya dengan penggunaan kode negara di atas adalah; kode negara untuk bahasa tujuan penulisannya diawali titik dua, sementara kode negara untuk menunjukkan sumber penulisannya diakhiri titik dua.

$ trans su: mojang
mojang
(null)

girl
/null/

Definitions of mojang
[ Basa Sunda -> English ]

noun
    girl
        mojang

Kini mesin penerjemah pun bisa menerjemahkan dengan tepat.

Translate-shell dapat menerjemahkan banyak kata sekaligus. Misalnya kata terima dan kasih.

$ trans terima kasih
terima
(null)

accept
/null/

Definitions of terima
[ Bahasa Indonesia -> English ]

noun
    acceptance
        penerimaan, terima, dukungan, sambutan
kasih
(null)

love
/null/

Definitions of kasih
[ Bahasa Indonesia -> English ]

noun
    love
        cinta, kasih, cinta kasih, sayang, kasih sayang, kecintaan
    affection
        kasih sayang, sayang, kasih
    attachment
        lampiran, cinta, kasih sayang, kasih, alat tambahan, alat pelengkap

Untuk menerjemahkan kalimat, apit kalimat menggunakan tanda kutip.

$ trans 'terima kasih'
terima kasih
(null)

thank you
/null/

Definitions of terima kasih
[ Bahasa Indonesia -> English ]

noun
    gratitude
        terima kasih, perasaan bersyukur
    gratefulness
        terima kasih

Jika misalnya ketika sedang berbincang di Telegram, Anda menemukan huruf atau bahasa yang tidak dikenali, translate-shell bisa membantu untuk menemukan muasal kata atau huruf tersebut.

$ trans -id 言葉
日本語
Name                  Japanese
Family                Japonic
Writing system        Japanese (Han + Hiragana + Katakana)
Code                  ja
ISO 639-3             jpn
SIL                   http://www-01.sil.org/iso639-3/documentation.asp?id=jpn
Glottolog             http://glottolog.org/resource/languoid/id/nucl1643
Wikipedia             http://en.wikipedia.org/wiki/Japanese_language

Banyak bahasa yang memiliki sistem pelafalan kata yang berbeda dengan Bahasa Indonesia. Misalnya, bagaimana kita menyuarakan queue atau cache?.

$ trans -sp "queue"

Atau jika ingin mendengarkan bunyi terjemahan kata, misalnya terima kasih dalam bahasa Jepang.

$ trans -b -p :ja 'terima kasih'
ありがとう null

Cuma memang masih ada embel-embel null yang mengganggu.

O ya, Anda ingin menerjemahkan tulisan ke dalam bahasa Inggris? Tidak perlu repot untuk copy-paste, cukup beritahu translate-shell di mana berkas tulisan yang akan diterjemahkan berada. Misal hendak menerjemahkan tulisan dalam berkas draft.txt yang terletak di /tmp ke dalam bahasa Inggris:

trans :en file://tmp/draft.txt

Dan yang pamungkas, translate-shell juga bisa menerjemahkan laman web. Well, yang ini tidak terlalu istimewa karena dasarnya hanya tautan untuk membuka laman penerjemah.

trans --browser firefox :en http://www.rizaumami.com/2017/09/membuat-bot-telegram-selamat-datang.html

Perintah di atas akan menjalankan Firefox yang kemudian membuka laman http://www.rizaumami.com/2017/09/membuat-bot-telegram-selamat-datang.html untuk diterjemahkan ke dalam bahasa Inggris.

Seperti yang Anda lihat dari sekelumit contoh-contoh di atas, translate-shell ini lumayan mengagumkan. Kini kita tidak perlu lagi memasang piranti lunak kamus atau sengaja membuka peramban web hanya untuk menerjemahkan kata atau kalimat.
Jika Anda juga memiliki piranti lunak CLI favorit atau bahkan andalan yang berdayaguna, silakan bagikan di kolom komentar.
Happy translating...