یکی از خوبیهای گنو لینوکس و نرمافزار اپنسورس اینه که کاربرها اگر به چیزی نیاز داشته باشن میتونن دست به کار بشن و برای خودشون و دیگران چیزای جالبی درست کنن. البته باید دانش کافی رو هم داشته باشن اما خوب موضوع اینجاست که زمینه فعالیت برای آدمها بازه و هر کاری بخوان میتونن انجام بدن (حتی بزنن کل سیستم خودشون رو پاک کنن! ) من چند وقتیه از یه ابزار کوچیک که با گوگل ترنسلیت کار میکنه استفاده میکنم و واقعا خیلی به درد بخوره و خیلی سریع ترجمه کلمات و جملههای انتخاب شده در سیستم رو فرقی نداره در هر برنامهای که باشم رو در نوتیفیکیشن سیستم نشون میده. من از این کد در اوبونتو استفاده کردم اما فکر نمیکنم مشکلی در توزیعهای دیگه داشته باشه منبع کد هم اینجاست
راه اندازی گوگل ترنسلیت
اول باید پکیجهای ضروری را نصب کنیم
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
در پایان هر جایی از سیستم با انتخاب واژه یا جمله و فشردن شورتکات معنی اون عبارت در نوتیفیکیشن نشون داده میشه.
چه روش جالبی! خیلی خوب بود ممنون از سایت خوبتون