نمایش ترجمه در نوتیفیکیشن!

امین 16 سپتامبر 2023 زمان خواندن: 3 دقیقه

توجه: این مطلب قدیمی است و صرفا جهت آرشیو حفظ شده است. ممکن است امروزه برخی موارد یکسان نباشند.

یک ترفند بسیار جالب و کاربردی برای استفاده از گوگل ترنسلیت. میتونیم با این اسکریپت ترجمه ی هر لغت یا جمله ای که میخوایم رو در نوتیفیکیشن داشته باشیم! البته در xorg و نه در wayland

برای اینکار این اسکریپت رو در  یک فایلی ذخیره کنید:

مثلا 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 کنید.

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس