تَرِجم أي نص مُحَدَّد من أي مكان بضغطة زِر

بسم الله الرحمن الرحيم

شَدَّت انتباهي مؤخرًا ميزة ذكية وصديقة للمستخدم وجدتها في نظام iOS ألا وهي وجود زر لترجمة النص المحدَّد عليه. فعندما تُحَدِّد أحد النصوص في أي مكان على النظام ستظهر لك عدة خيارات منها نسخ النص والبحث عنه في الويب وترجمته في تطبيق الترجمة الخاص بِـApple.

مما لا يخفى على المرء أن ما يوجد من توافق بين أنظمة Apple وبرامجها لا يوجد عادة في الأنظمة الأُخرى مما يعطيهم أفضلية من ناحية سهولة الاستخدام لكن كما قال شخص حكيم:

“ما هو قابل للتطبيق على الحاسوب، لا بد أن يعمل على لينكس بإذن الله”

في الواقع يمكن تطبيق هذه الميزة على لينكس بسهولة عن طريق هذا الأمر لمستخدمي خادم نوافذ X11:

xclip -selection primary -o | python3 -Sc "from sys import stdin;from urllib.parse import quote;print(f'https://translate.google.com/?text={quote(stdin.read())}&sl=auto&tl=ar')" | xargs xdg-open

وهذا الأمر لمستخدمي wayland:

wl-paste -p | python3 -Sc "from sys import stdin;from urllib.parse import quote;print(f'https://translate.google.com/?text={quote(stdin.read())}&sl=auto&tl=ar')" | xargs xdg-open

بكل بساطة باستخدام أداة xclip أو wl-paste نحصل على محتوى حافظة الPRIMARY والَّتي هي عبارة عن النص المُحَدَّد، ثم يُمَرَّر إلى python3 حتى يُرَمَّز بترميز النسبة المئوية ويُوضَع في رابط ويب لترجمة قوقل، وفي النهاية تُمَرَّر المُخرجات إلى xdg-open حتى يُفتح الرابط في المتصفح الافتراضي على جهازك.

يمكنك وضع هذا الأمر داخل ملف bash ووصله باختصار على لوحة المفاتيح عن طريق بيئة سطح المكتب الخاصة بك أو مدير النوافذ.
الآن في كل مرة تضغط على الاختصار سَوف يُترجم النص المُحَدَّد فورًا.

بالطبع يمكنك استبدال ترجمة قوقل بأي خدمة تفضلها لكني شخصيًا أتركها كما هي لأني أستخدم إضافة libredirect على المتصفح لذلك سوف يُحَوَّل رابط ترجمة قوقل إلى خدمة أُخرى بشكل عشوائي كل مرة أفتحه.

يمكنك أيضًا تغيير اللغة الهدف ولغة المدخلات في الرابط على حسب رغبتك.


المُتطلبات

  • wl-clipboard (في حال استخدامك لـwayland)
  • xclip (في حال استخدامك لـX11)
  • xdg-utils (للحصول على أداة xdg-open غالبًا ستجدها مثبت بشكل افتراضي)
  • python3 (غالبًا ستجدها مثبتة بشكل افتراضي)

مصادر للاستزادة

  • شرح المحفطة على لينكس بشكل مبسط:
  • معايير XDG للمحفظة على سطح مكتب لينكس:

https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt

8 إعجابات