استفاده از گوگل ترنسلیت در نوتیفیکیشن لینوکس

تاریخ انتشار:

یکی از خوبی‌های گنو لینوکس و نرم‌افزار اپن‌سورس اینه که کاربر‌ها اگر به چیزی نیاز داشته باشن میتونن دست به کار بشن و برای خودشون و دیگران چیزای جالبی درست کنن. البته باید دانش کافی رو هم داشته باشن اما خوب موضوع اینجاست که زمینه فعالیت برای آدم‌ها بازه و هر کاری بخوان میتونن انجام بدن (حتی بزنن کل سیستم خودشون رو پاک کنن! ) من چند وقتیه از یه ابزار کوچیک که با گوگل ترنسلیت کار می‌کنه استفاده می‌کنم و واقعا خیلی به درد بخوره و خیلی سریع ترجمه کلمات و جمله‌های انتخاب شده در سیستم رو فرقی نداره در هر برنامه‌ای که باشم رو در نوتیفیکیشن سیستم نشون میده. من از این کد در اوبونتو استفاده کردم اما فکر نمی‌کنم مشکلی در توزیع‌های دیگه داشته باشه منبع کد هم اینجاست
استفاده از گوگل ترنسلیت در نوتیفیکیشن لینوکس

راه اندازی گوگل ترنسلیت

اول باید پکیج‌های ضروری را نصب کنیم

sudo apt-get install libnotify-bin wget xsel xclip

بعد از نصب باید یه فایل ایجاد کنیم

sudo nano /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}')"

####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}')"
#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}')"
echo "$translate" | xclip -selection clipboard
killall notify-osd
notify-send --icon=info "$text" "$translate"

و بعد به اون مجوز اجرایی میدیم

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

حالا باید یه کیبورد شورتکات براش تعیین کنیم هر دسکتاپی روش خودش رو برای اینکار داره در قسمت دستور باید مسیر کامل اسکریپت رو بنویسید مثلا در اوبونتو با رفتن به قسمت زیر میتونید شورتکات خودتون رو تعریف کنید

System Settings -> Keyboard -> Shortcuts -> Custom Shortcuts

در پایان هر جایی از سیستم با انتخاب واژه یا جمله و فشردن شورتکات معنی اون عبارت در نوتیفیکیشن نشون داده میشه.

چند نکته درباره کد:

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

 

بروزرسانی:

یه روش جدید استفاده از ابزار translate-shell هستش که نتیجه رو بهتر میکنه

اول باید پکیج‌های ضروری را نصب کنیم

sudo apt install translate-shell xsel

بعد از نصب باید یه فایل ایجاد کنیم

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

و کد‌ها رو داخلش کپی کنیم

#!/usr/bin/env bash
TEXT=$(xsel -o)
TRANSLATE="$(trans :fa -no-bidi -theme=none "$TEXT")"
zenity --info --title="Translation" --text="$TRANSLATE"
#use -brief parametr for Brief Mode
#if use Brief Mode, can use notify-send
#killall notify-osd
#notify-send "$TRANSLATE"

و بعد به اون مجوز اجرایی میدیم

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

حالا باید یه کیبورد شورتکات براش تعیین کنیم هر دسکتاپی روش خودش رو برای اینکار داره در قسمت دستور باید مسیر کامل اسکریپت رو بنویسید مثلا در اوبونتو با رفتن به قسمت زیر میتونید شورتکات خودتون رو تعریف کنید

System Settings -> Keyboard -> Shortcuts -> Custom Shortcuts
در پایان هر جایی از سیستم با انتخاب واژه یا جمله و فشردن شورتکات معنی اون عبارت در نوتیفیکیشن نشون داده میشه.

1 دیدگاه برای ”استفاده از گوگل ترنسلیت در نوتیفیکیشن لینوکس

  1. رضا

    چه روش جالبی! خیلی خوب بود ممنون از سایت خوبتون

دیدگاه خود را ارسال کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *