نمایش ترجمه در نوتیفیکیشن!
امین | جمعه ۱۹ شهریور ۱۳۹۵
یک ترفند بسیار جالب و کاربردی برای استفاده از گوگل ترنسلیت. میتونیم با این اسکریپت ترجمه ی هر لغت یا جمله ای که میخوایم رو در نوتیفیکیشن داشته باشیم!
برای اینکار این اسکریپت رو در یک فایلی ذخیره کنید:
حالا یه کیبورد شورتکات براش تعیین کنید. هر دسکتاپی روش خودش رو برای اینکار داره. در قسمت دستور باید مسیر کامل اسکریپت رو بنویسید.
حالا در هر جایی که باشید اگه واژه یا جمله ای رو انتخاب کنید و شورتکاتی که تعیین کرده بودید بفشارید! معنی اون عبارت در نوتیفیکیشن نشون داده میشه. اما چند نکته:
اول اینکه پر واضحه برای ترجمه به زبانهای دیگه میبایست en رو تغییر بدید. مثلا برای ترجمه از هر زبانی به فرانسه بجای en بذارید fr
دوم اینکه این اسکریپت میشه سه جور باشه. همون طور که در بالا میبینید در خود اسکریپت توضیح داده شده. اولیش ترجمه رو در نوتیفیکیشن نشون میده. دومی در zenity نشون میده و سومی در نوتیفیکیشن نشون میده و بوسیله xclip اون رو در کلیپبورد کپی هم میکنه. بنابراین باید xclip هم نصب داشته باشید. علاوه بر اون xsel هم باید نصب باشه. هرکدوم که مورد نیاز شماست uncomment کنید. یعنی # رو از ابتدای تک تک خطوطش بردارید و بقیه رو comment کنید.
مثلا gedit ~/Programs/notitrans با این محتوی: #!/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=en&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=en&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=en&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo "$translate" | xclip -selection clipboard notify-send --icon=info "$text" "$translate" |
و بعد به اون مجوز اجرایی بدید:
chmod +x ~/Programs/notitrans |
حالا در هر جایی که باشید اگه واژه یا جمله ای رو انتخاب کنید و شورتکاتی که تعیین کرده بودید بفشارید! معنی اون عبارت در نوتیفیکیشن نشون داده میشه. اما چند نکته:
اول اینکه پر واضحه برای ترجمه به زبانهای دیگه میبایست en رو تغییر بدید. مثلا برای ترجمه از هر زبانی به فرانسه بجای en بذارید fr
دوم اینکه این اسکریپت میشه سه جور باشه. همون طور که در بالا میبینید در خود اسکریپت توضیح داده شده. اولیش ترجمه رو در نوتیفیکیشن نشون میده. دومی در zenity نشون میده و سومی در نوتیفیکیشن نشون میده و بوسیله xclip اون رو در کلیپبورد کپی هم میکنه. بنابراین باید xclip هم نصب داشته باشید. علاوه بر اون xsel هم باید نصب باشه. هرکدوم که مورد نیاز شماست uncomment کنید. یعنی # رو از ابتدای تک تک خطوطش بردارید و بقیه رو comment کنید.
دسته:
sudo apt-get install libnotify-bin wget xsel
چونکه libnotify-bin به صورت پیشفرض برای من نصب نبود شاید برای دیگران هم نصب نباشه