Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Latar Belakang
Kamus atau dictionary, bagi yang beraktifitas dalam dua bahasa, pasti memerlukannya.
Meskipun tidak setiap waktu, namun cukup merepotkan apabila akses untuk mencari kamus cukup ribet.
Misal,
Orang A
- Membuka browser dan mengakses halaman Google Translate
- Mengetikkan kata/kalimat yang akan ditranslate
- Menunggu hasil
Orang B
- Membuka terminal dan masuk ke dalam translate-shell
- Mengetikkan kata/kalimat yang akan ditranslate
- Menunggu hasil
Sekilas, tidak ada yang terlalu berbeda dari perilaku antara Orang A atau B.
Namun, pada kenyataannya, proses nomor 1. bisa jadi cukup panjang bagi Orang A, karena perlu untuk menggerakkan mouse ke sana dan kemari.
Belum lagi apabila resource RAM yang tidak memadai sehingga membuka browser saja menjadi pekerjaan yang cukup menyita waktu.
Saya adalah gambaran dari Orang A sebelum akhirnya mengenal translate-shell dan menjadi Orang B saat ini.
Tentang translate-shell
Translate Shell adalah command-line translator yang dapat menggunakan Google Translate, Bing Translator, Yandex Translate, Apertium, dll. sebagai engine translator untuk menerjemahkan kata/frase/kalimat. Sebelumnya, dikenal dengan nama Google Tranaslate CLI.
Kebutuhan Sistem
Translate Shell dapat bekerja pada banyak sistem yang sesuai dengan POSIX seperti:
- GNU/Linux
- macOS
- *BSD
- Android (menggunakan Termux)
- Windows (menggunakan WSL, Cygwin, atau MSYS2)
Dependensi
Dependensi yang diperlukan:
- GNU Awk (Gawk)
- GNU Bash atau Zsh, namun dapat pula menggunakan unix shell apapun seperti ksh, tcsh, fish, dan lain-lain.
Dependensi yang Direkomendasikan
Beberapa daftar dependensi di bawah ini bersifat optional namun sangat direkomendasikan untuk dipasang.
- curl
- GNU FriBidi
- mplayer, mpv, mpg123, eSpeak
- less, more, most
- rlwrap
- aspell, hunspell
Instalasi
Translate Shell pada halaman “GitHub readme” mereka, menjelaskan berbagai macam cara untuk memasang Translate Shell, tautannnya dapat teman-teman lihat di sini.
Nyicip dulu (tanpa install)
Kita dapat sekedar “nyicipin” dahulu tanpa perlu melakukan instalasi.
Buka Terminal, (khusus bash & zsh)
$ gawk -f <(curl -Ls git.io/translate) -- -shell
Apabila berhasil outputnya akan seperti ini.
Translate Shell
(:q to quit)
> _
Tinggal mengetikkan kata yang akan kita translate, maka translate-shell akan secara otomatis mendeteksi kata/kalimat yang diinputkan dan secara default akan ditranslate ke bahasa inggris.
Untuk proses instalasi, teman-teman dapat menggunakan package manager dari distro masing-masing.
Misal, seperti saya yang menggunakan Arch Linux.
$ sudo pacman -S translate-shell
Untuk distirbusi yang lain, dapat dilihat di sini.
Untuk cara instalasi yang lain, dapat dilihat di sini.
Konfigurasi
File konfigurasi dapat kalian letakkan pada lokasi-lokasi beirikut ini:
-
.trans
di current working directory – direktori kerja saat ini -
~/.translate-shell/init.trans
di HOME direktori -
$XDG_CONFIG_HOME/translate-shell/init.trans
(defaultnya ada di~/.config/translate-shell/init.trans
) -
/etc/translate-shell
untuk system wide
Saya memilih lokasi nomor 3, untuk menyimpan file init.trans
.
Dan ini adalah contoh dari file init.trans
yang saya gunakan.
1
2
3
4
5
6
7
8
9
10
{
:translate-shell "0.9.6"
:verbose true
:hl "id"
:tl "en"
:show-original false
:view true
:engine "google"
:user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0"
}
Parameter-parameter tersebut dapat kalian lihat pada option -h
atau $ manual trans
.
Silahkan modifikasi sendiri sesaui dengan kebutuhan kalian.
Cara Penggunaan
Saya hanya akan menunjukkan beberapa contoh saja, karena pada halaman GitHub readme dari Translate Shell sudah mendemonstrasikan dengan sangat lengkap.
Menerjemahkan kata
Mendefinisikan bahasa target
Dari bahasa apapun, ke bahasa kita
Target bahasa yang digunakan adalah bahasa yang kita definisikan pada locale
sistem kita.
$ trans impersonate
Dari bahasa apapun, ke bahasa yang kita definisikan
$ trans :id impersonate
Dari bahasa apapun, ke 2 bahasa yang kita definisikan
$ trans :id+ja impersonate
Selain mendefinisikan bahasa target setelah tanda :
, kita juga dapat menggunakan option -t
.
$ trans -t id impersonate
$ trans -t id+ja impersonate
Keuntungan menggunakan option -t
, kita dapat menuliskan bahasa target dengan nama bahasanya.
$ trans -t japanese impersonate
$ trans -t 日本語 impersonate
Mendefinisikan bahasa sumber
Sekarang sebaliknya, untuk mendefinisikan bahasa sumber.
$ trans id: menirukan
Karena kita tidak mendefinisikan bahasa target (hanya bahasa sumber), maka kata ‘meniru’ akan diterjemahkan ke bahasa yang didefinisikan di locale
.
Untuk option bahasa sumber, kita gunakan -s
.
$ trans -s id menirukan
Menerjemahkan banyak kata atau sebuah frase
Kalau kalian menulis seperti ini.
$ trans :id impersonate character
Maka, akan diterjemakan masing-masing kata.
Apabila, ingin diterjemahkan sebagai satu frase, harus diapit dengan tanda petik satu '...'
atau dua "..."
.
$ trans :id 'impersonate character'
$ trans :id "impersonate character"
Menerjemahkan sebuah kalimat
Kurang lebih formnya sama dengan frase, yaitu menggunakan tanda petik satu '...'
atau dua "..."
.
$ trans :id 'Impersonator is someone who imitates the behavior or actions of another.'
$ trans :id "Impersonator is someone who imitates the behavior or actions of another."
Dapat pula untuk multiline (banyak baris).
$ 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."
Untuk menghindari karakter tertentu seperti tanda !
diintrepertasikan oleh shell sebagai “special characters”, gunakan petik satu.
$ trans :id 'Out, out, brief candle!'
Atau, kalau ingin teteap menggunakan petik dua, dapat menggunakan backslash tepat sebelum spesial karakter tersebut \
(escaping character).
$ trans :id "Out, out, brief candle\!"
Apabila terdapat kata yang menggunakan tanda petik satu, seperti jum'at
, maka kalimat sebaiknya diapit oleh tanda petik dua "..."
.
$ trans :id "Life's but a walking shadow, a poor player."
Alternatif lain, selain menggunakan tanda petik, kita dapat menggunakan option -j
(-join-sentence
).
$ trans :id -j Impersonator is someone who imitates the behavior of another.
Atau, apabila terdapat kata yang mengandung tanda petik sati, gunakan backslash tepat sebelum tanda petik.
$ trans :id -j Life\'s but a walking shadow, a poor player.
Brief Mode
Secara default, Translate Shell akan menunjukkan hasil terjemahan yang banyak sekali.
Apabila kita lebih suka untuk melihat terjemahan yang paling relevan saja, terdapat mode yang disebut “brief mode”.
Untuk dapat menggunakannya, tambahkan option -b
(-brief
).
$ trans -b :ja 'Hello, World'
Hasilnya
こんにちは世界
Contoh di atas, secara default akan ditampilkan dalam tulisah jepang. Untuk hasil yang menampilkan “phonetic notation” (notasi penyebutan), kita dapat menambahkan tanda @
tepat sebelum bahasa target.
$ trans -b :@ja 'Hello, World'
Hasilnya,
Kon'nichiwa sekai
Dan masih banyak, contoh-contoh penggunaan dari options yang disediakan oleh Translate Shell.
Teman-teman dapat mengunjungi halaman GitHub readme dari Tranaslate Shell, di sini.
Salah satu fitur yang saya suka adalah REPL (Interactive Translate Shell).
Kita dapat masuk ke dalam REPL shell dengan menggunakan options -I
, -interactive
, atau -shell
.
$ trans -shell
Hasilnya,
Translate Shell
(:q to quit)
> _
REPL mode ini mengikuti konfigurasi file init.trans
yang sudah kita definisikan.
Tambahan
Membuat Interaktif Menu Translate dengan Dmenu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
DMENU="/usr/local/bin/dmenu"
en_id() {
st -t 'st+:Translate Shell [EN:ID]' \
-g 60x8-0-0 \
-e trans -no-view -no-pager -indent 0 -j \
-hl en \
-shell \
-show-original-phonetics n \
-show-translation y \
-show-translation-phonetics n \
-show-prompt-message n \
-show-languages n \
-show-original-dictionary n \
-show-dictionary n \
-show-alternatives n \
en:id
}
id_en() {
st -t 'st+:Translate Shell [ID:EN]' \
-g 60x8-0-0 \
-e trans -no-view -no-pager -indent 0 -j \
-hl en \
-shell \
-show-original-phonetics n \
-show-translation y \
-show-translation-phonetics n \
-show-prompt-message n \
-show-languages n \
-show-original-dictionary n \
-show-dictionary n \
-show-alternatives n \
id:en
}
vim_translate() {
st -t 'st+:Translate Playground' -g 85x20-0-0 -e vim ~/.translate
}
OPTIONS=$(echo -e "EN-ID\nID-EN\nPlayground" | $DMENU -i -p " Translate:")
case "$OPTIONS" in
"EN-ID") en_id;;
"ID-EN") id_en;;
"Playground") vim_translate;;
esac
Hasilnya akan seperti ini,
Saya biasa gunakan untuk mentranslate beberapa kata/frase/atau kalimat yang saya tidak paham maksudnya.
Mengintegrasikan Translate Shell dengan Vim/Neovim
Ada beberapa plugin yang dapat kita gunakan untuk mengintegrasikan Translate Shell dengan Vim.
-
VincentCordobes/vim-translate, a tiny translate-shell wrapper for Vim.
-
echuraev/translate-shell.vim, a power and flexible plugin for translating text without leaving Vim. It provides a window that displays the translate of word under cursor, selected text or you can use “on fly” translation and translate inserted text.
-
voldikss/vim-translator, an asynchronous translating plugin for Vim/Neovim, it allows users to use multiple engines including trans.
Saat tulisan ini dibuat, saya baru mencoba VincentCordobes/vim-translate.
Pesan Penulis
Sepertinya, segini dulu yang dapat saya tuliskan.
Mudah-mudahan dapat bermanfaat.
Terima kasih.
(^_^)
Referensi
-
github.com/soimort/translate-shell
Diakses tanggal: 2020/10/16 -
github.com/soimort/translate-shell/wiki/Configuration
Diakses tanggal: 2020/10/16 -
github.com/soimort/translate-shell/wiki/REPL
Diakses tanggal: 2020/10/16 -
github.com/VincentCordobes/vim-translate
Diakses tanggal: 2020/10/16
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi