نمایش ترجمه متن در نوتیفیکیشن اوبونتو + تلفظ کلمه

گوگل ترنسیلیت یکی از بهترین ابزارها برای ترجمه یک متن کوچک یا لغت می باشد اما برای دسترسی به گوگل ترنسلیت در گنو/لینوکس باید مرورگر را باز کنیم و ...! در روشی که امروز یاد خواهید گرفت متن ترجمه شده بدون هیچ مشکلی در نوتیفیکیشن اوبونتو یا هر توزیع دیگری نشان داده خواهد شد.(برای راه انداری گوگل ترنسلیت به همراه تلفظ کلمه به بخش دوم این مطلب مراجعه کنید)

  • بخش اول راه اندازی گوگل ترنسلیت:

در اولین مرحله باید بسته های libnotify-bin ,wget ,xsel ,xclip را نصب کنید.

sudo apt install libnotify-bin wget xsel xclip

در دومین مرحله یک فایل به اسم google-translate (یا هر اسم دلخواهی) در مسیر /usr/local/bin/ با vim یا هر ادیتور دلخواهی ایجاد کنید.

sudo vim /usr/local/bin/google-translate

و کدهای زیر را در آن کپی کنید

#!/usr/bin/env bash

####just displays the translation in notify-osd
#notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=fa&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"

####displays the translation in Zenity
#text="$(xsel -o)"
#translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?#client=gtx&sl=auto&tl=fa&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
#echo -e "Original text:" "$text"'\n' > /tmp/notitrans
#echo "Translation:" "$translate" >> /tmp/notitrans
#zenity --text-info --title="Translation" --filename=/tmp/notitrans

####displays the translation in notify-osd and copy to clipboard
text="$(xsel -o)"
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=fa&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
echo "$translate" | xclip -selection clipboard
killall notify-osd
notify-send --icon=info "$text" "$translate"

در سومین مرحله به فایل اسکریپت google-translate مجوز اجرایی میدهیم.

sudo chmod +x /usr/local/bin/google-translate

در آخرین مرحله باید برای فایل اسکریپتgoogle-translate یک کیبورد شورتکات شورتکات تعیین کنید

چند نکته درباره کد:
اول اینکه برای ترجمه به زبان های دیگر باید fa را در کد تغییر بدید. مثلا برای ترجمه از هر زبانی به فرانسه باید بجای fa از fr استفاده کنید. دوم اینکه این اسکریپت دارای سه حالت می باشد. همان طور که در خود اسکریپت توضیح داده شده است در اولین قسمت اسکریپت, ترجمه را در نوتیفیکیشن نشان می دهد و قابل کپی کردن نیست دومین قسمت اسکریپت در zenity نشان داده می شود و در سومین قسمت اسکریپت, ترجمه را در نوتیفیکیشن نشان میدهد و بوسیله xclip آن را در کلیپ بورد کپی میکند. هرکدام که مورد نیاز شماست را uncomment کنید یعنی # رو از ابتدای تک تک خطوط آن بردارید و بقیه را comment کنید.

  • بخش دوم راه اندازی گوگل ترنسلیت به همراه تلفظ:

اسکریپت بالا تنها تلفظ کلمه مورد نظر را به ما نشان میدهد.  اما در اسکرپپتی که در ادامه این مطلب خواهید دید علاوه بر ترجمه متن, تلفظ کلمه را نیز از گوگل ترنسلیت دانلود و پخش میکند. اما برای این کار علاوه بر پیش نیازهایی که در بالا گفته شد شما باید vlc را نیز نصب کنید.

sudo apt update
sudo apt install vlc browser-plugin-vlc

در مرحله بعد دو فایل متنی به نام های google-translate-v و voice-google-translate-cvlc.sh در مسیر /usr/local/bin/ درست کنید و کد های زیر را به ترتیب در فایل های متنی کپی کنید.

کد زیر را در google-translate-v کپی کنید

#!/usr/bin/env bash

####just displays the translation in notify-osd
#notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=fa&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"

####displays the translation in Zenity
#text="$(xsel -o)"
#translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?#client=gtx&sl=auto&tl=fa&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
#echo -e "Original text:" "$text"'\n' > /tmp/notitrans
#echo "Translation:" "$translate" >> /tmp/notitrans
#zenity --text-info --title="Translation" --filename=/tmp/notitrans

####displays the translation in notify-osd and copy to clipboard
text="$(xsel -o)"
wget -q -U Mozilla "https://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&client=tw-ob&tl=en&q=$(echo $text)&textlen=4" -O .RezaShokri.mp3
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=fa&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
echo "$translate" | xclip -selection clipboard
killall notify-osd
notify-send --icon=info "$text" "$translate" | cvlc ~/.RezaShokri.mp3 | /usr/local/bin/./voice-google-translate-cvlc.sh

و کد زیر را در فایل متنی voice-google-translate-cvlc.sh کپی کنید

#!/usr/bin/env bash
sleep 40
killall vlc
rm ~/.RezaShokri.mp3

و به دو فایل اسکریپت بالا مجوز اجرایی بدهید

sudo chmod +x /usr/local/bin/google-translate-v /usr/local/bin/voice-google-translate-cvlc.sh

و در آخر برای فایل اسکریپت google-translate-v یک شورتکات تعیین کنید.

اگر در مورد این مطلب سوال داشتین می توانید سوال خود را در گروه لینوکس فور لایف در  تلگرام مطرح کنید.

گروه لینوکس فور لایف

کانال لینوکس فور لایف

علیرضا امیرصمیمی
+3
علیرضا امیرصمیمی
سپاس
بسیار کاربردی و خوب بود
دوشنبه مرداد 1396 پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
رضا شکری
0
رضا شکری
خیلی ممنون
پنج شنبه مرداد 1396 پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

فرم نظر دهی


تصویر امنیتی جدید تصویر امنیتی
143530
TodayToday3
YesterdayYesterday125
This_WeekThis_Week25
This_MonthThis_Month3083
All_DaysAll_Days143530