2-إنشاء برنامج للترجمة الفورية من خلال إستخدام Yandex Translate و python

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

السلام عليكم ورحمة الله وبركاته

 

 

إنشاء برنامج للترجمة الفورية من خلال إستخدام Yandex Translate و python .



رابط الجزء الأول https://arfedora.blogspot.com/2017/08/1-yandex-translate-python.html

 

 1-عرض ال notification .



نقوم بعمل دالة ونكتب كما في الصورة .

1-app_name إسم البرنامج الخاص بنا .

2-title عنوان ال notification .

3-text الشيء المراد عرضه .

4-timeout زمن مدة عرض ال notification وهي بال milliseconds .

هناك أشياء أخرى مثل تغير ال icon لم أستخدمها لمزيد من المعلومات رابط .





2-الحصول على الأسطر المحددة بمأشر الفأرة .


 قمت بإستدعاء Gtk و Gdk ثم كتبت دالة get_selected_text ثم قمت بتحديد #hello worlDDD بمأشر الفأرة .




نلاحظ حصلت على ما هو محدد (ملاحظة إذا كنا نعمل من واجهة جنوم غالبا سيكون النظام يعمل من خلال wayland لهذا لن تعمل الدالة إلى إذا كتبنا GDK_BACKEND=x11 قبل تشغيل البرنامج  الخاص بنا.





3-إنشاء أزرار إختصار وإنشاء دالة الترجمة وتشغيل البرنامج النهائي .


 قمت بإستدعاء الأشياء المطلوبة وقمت بحفظ المفتاح الخاص بي بمتغير سميته key .




 1-داخل دالة الترجمة translate قمت أولا بجلب ما هو محدد من خلال ماشر الفأرة وتاكدت ان هناك كلام محدد بالفعل أي ان عدد الأحرف لا يساوي صفر وإلا سيتم الخروج من الدالة return .

2-أرسلت طلب للترجمة ما تم حفظه في متغير text (نلاحظ مكتبة requests توفر طريقة للتعامل مع json  أي تحويل النتيجة مباشرتا لاحظو ()json  على العموم يمكن إعتماد هذه الطريقة أو الطريقة التي تم شرحها سابقا)

3-عرض النتيجة ك notification من خلال دالة send_notify التي سبق وكتبناها .

4- لا ننسى شروط yandex إذا كنا نريد نشر البرنامج  إضافة Powered by Yandex.Translate http://translate.yandex.com و...إلخ .

5-في دالة main قمت بربط إختصار Alt B بدالة translate أي عند كل ضغط على Alt B سيتم تشغيل دالة translate .

6-قمت بتشغيل حلقة Gtk.main .

7-قمت بتشغبل دالة main الأساسية .



 الان قمت بتشغيل البرنامج نلاحظ حصلت على خطأ بمعنى ان هذا الإختصار مستخدم بالفعل .


 قمت بغلق البرنامج قم قمت بتغير Alt B إلى Alt J .



 قمت مجددا بتشغيل البرنامج ولم أحصل على أي خطأ .




 قمت بتحديد كلمة main وضغطت على Alt J لأحصل على النتيجة إلى هنا يكون إنتهى الشرح الأساسي .







4- جعل البرناج يعمل في الخلفية مع إقلاع النظام .


1-أولا ننقل البرنامج إلى مجلد usr/bin/ ثم نعطيه صلاحيات التنفيذ لنفترض إسم السكربت هو pytranslate.py وهو موجود في مجلد المنزل الخاص بنا ننفذ هذه الأوامر .

  sudo cp ~/pytranslate.py  /usr/bin

sudo chmod 755 /usr/bin/pytranslate.py


2-إنشاء ملف Desktop Entry ونقله إلى مجلد etc/xdg/autostart/ أو إلى هذا المجلد  في مجلد المنزل config/autostart. كما ذكرت لنفترض إسم البرنامج pytranslate نقوم داخل مجلد المنزل بإنشاء ملف بإسم pytranslate.desktop ونكتب داخله كما في الأسفل .

[Desktop Entry]
Encoding=UTF-8
Name=pytranslate
GenericName=translater
Comment=Start pytranslate
Exec=env GDK_BACKEND=x11  /usr/bin/pytranslate.py
Terminal=false
Type=Application
Categories=GTK;
StartupNotify=false

الأن نقوم بنقل أو أخذ نسخة عن هذا الملف إلى مجلد etc/xdg/autostart/ ونعيد إقلاع الجهاز لنجد أن برنامجنا يعمل مع إقلاع النظام وهو ينتظر ان تضغط على مفتاح Alt J ليقوم بجلب ما هو محدد وترجمته وعرضه .
sudo cp ~/pytranslate.desktop /etc/xdg/autostart

أخر ملاحظة إذا أردنا فعلا نشر برنامج ما الأفضل أن نختار له إسم مميز غير مستخدم أظن إسم pytranslate مستخدم لاكنه كان فقط لدواعي الشرح .


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


أخيرا بالنسبة لبرنامجي لم أجد بعد وقت للتدقيق فيه ومراجعته ورفعه على github لاكن سانشره إن شاء الله قريبا لمن أراد الإطلاع عليه .

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)