نوشتهشده به وسیلهی: Mehrdad در: اکتبر 9, 2009
سلام دوستان (حسش اومد سلام کنم)
همونطور که توی پست قبلی مجید نوشته بود! MDic علاوه بر تغییرات زیادش دو تا قابلیت جالب و جدید داره! که ممکنه پیدا کردن نحوهی استفاده از اونا سر راست نباشه! پس گفتم یه پستی بنویسم و بالاخره یه مرجعی باشه در مورد استفاده از اونا:
خوب یکی از اهداف MDic ترجمهی متن بود، که اینکار با استفاده از سرویس ترجمهی متن گوگل که اخیرا زبان فارسی هم هرچند شکسته بسته، بهش اضافه شده! فراهم شده!
اما چطور از این امکان استفاده کنیم!؟
در حال حاضر این رو به نحوی پیاده کردیم، که مثل بقیهی دیکشنریها باهاش برخورد میشه! شاید بهتر باشه در آینده تغییراتی برای بهینهشدن استفاده و کاربری اون بهش بدیم!
برای استفاده باید به پنجرهی تنظیمات برنامه تب Dictionaries برید! و روی دکمهی Add کلیک کنید! خوب پنجرهی زیر باز میشه:

حالا اینجا دو مدل دیکشنری میشه اضافه کرد، یکی دیکشنریهای MDic هست! که باید یک فایل انتخاب کنید، و دیگری هم Google translate است!
که در مورد دوم، باید از لیستهای پایین، زبان مبدا و زبان مقصد رو انتخاب کنید! که خوشبختانه یک حالت اتوماتیک برای تشخیص زبان مبدا وجود داره!
بعد از انتخاب، و فشردن کلید OK یک دیکشنری به لیست اضافه میشه! و از این به بعد در صورتی که این دیکشنری فعال باشه، زمان ترجمه به این دیکشنری هم رجوع میشه!
این رو هم در نظر داشته باشید که با استفاده از این سیستم، سرعت کار کم خواهد شد! البته بسته به سرعت اینترنتتون! مثلا برای من با ایدیاسال ۱۲۸، سرعتش زیاد محسوس نیست! و قابل تحمله D:
و خوب دارم فکر میکنم که این قسمت رو بشه بهینه کرد، که کارایی برنامه بهتر بشه! اگر ایدهای دارین بگین!
یکی از چیزایی که از چند وقت پیش نیازش حس شد، داشتن میانبر عمومی برای برنامهاست!
اما نکتهای که توی این زمینه است، اینه که مدیریت صفحه کلید دست سرور ایکس است! و بالاتر از اون دست مدیر پنجرهها! یعنی Kwin و metacity در دسکتاپهای KDE و Gnome! پس در واقع Qt نمیتونه این قابلیت رو پشتیبانی کنه! در حالی که KDE داره! و پشتیبانی میکنه!
پس سریعترین و بهترین راه حل، استفاده از KDE بود! که برنامه رو به کتابخانههای kde وابسته میکرد! اما از جایی که نمیخواستیم این اتفاق بیوفته مخصوصا برای کاربران گنوم و xfce! پس راه دیگهای پیدا شد! راهی که qstardict استفاده کرده بود! و اون داشتن یک واسط برای dbus بود!
dbus یک راه ارتباطی بین برنامهها و پروسههای در حال اجرا در گنو/لینوکس است! در واقع فکر کنم جزء پروژهی Open Desktop باشه! که دسکتاپهای آزاد همه پشتیبانی میکنن ازش! خوب بحث فنی رو تموم کنیم، چطوری از این ماجرا میشه استفاده کرد!؟
مدیر پنجرهها این امکان رو دارن که شما بهشون بگین که با فشرده شدن یک کلید یا ترکیبی از کلیدها، یک دستور رو اجرا کنن، یا اینکه یک فایل shell رو اجرا کنن! که باید این رو پیدا کنین، و تنظیم کنین! راستش توی گنوم نمیدونم کجاست! از دوستانی که میدونن بگن، تا اینجا اضافه کنم D:
کلیت کار چیه!؟
به همراه کیوت، برنامهای بنام qdbus نصب شده! که با استفاده از اون میتونین دستوراتی رو از طریق dbus اجرا کنین! (البته بدون اون هم دستور dbus-send وجود داره!) بطور مثال با اجرای دستور زیر ترجمهی کلمهی Freedom نشون داده میشه:
$ qdbus org.mdic.dbus /mdic org.mdic.dbus.showTranslation "Freedom"
دستورات قابل اجرا برای MDic، دستورات زیر میباشند:
org.mdic.dbus.toggleMainWindowVisible()
org.mdic.dbus.toggleSelectionScannerEnable()
org.mdic.dbus.showTranslation( QString text )
QString org.mdic.dbus.translate(QString text)
که همونطور که از ظواهر امر پیداست! دو تا دستور اول هیچ آرگومان ورودیای نمیگیرن، و صرفا دو تا ویژگی رو فعال و غیرفعال میکنند! اولی قابل روئیت بودن پنجرهی برنامه رو، دومی فعال بودن selection scanner رو!
دو تای دومی هم ورودیشون کلمهای است که باید ترجمه بشه! اما اولی نتیجه رو طبق تنظیمات MDic نشون میده! و دومی نتیجه رو به برنامهای که فراخوانی کرده برمیگردونه! و در واقع یک برنامه میتونه با این دستور، نتیجهی یک جستجو رو به هر نحوی که میخواد استفاده کنه!
پس حالا برای پشتیبانی از کلید میانبر عمومی برای فعال و غیرفعال کردن اسکنر برنامه، کافیه دستور زیر رو توی مدیر پنجره تعریف کنیم تا با زدن کلید مورد نظر، این دستور اجرا بشه! و همینطور الخ…
$ qdbus org.mdic.dbus /mdic org.mdic.dbus.toggleSelectionScannerEnable
برای kde توی تنظیمات KDE یعنی همون پنجرهی System Settings تب General تنظیماتی وجود داره به نام Input Actions که همون جاییه که باید اینکار رو کرد!
خوب توی این عکس خیلی چیزا واضحه فکر کنم D: (روش کلیک کنین تا بزرگشو ببینین!)
دو راه وجود داره! یکی تعریف یک دستور! و دیگری تعریف یک دستور DBus! اینم از خوبیه KDE که پیشبینی برای dbus کرده D:
اگر گزینهی اول یعنی Command رو زدین، کافیه دستور مورد نظر رو بنویسین! اگر دومی یعنی D Bus Command رو زدین هم طبق چیزی که توی عکس میبینین باید پرش کنین!
!؟ نمیدونم D: اگه فهمیدم همینجا مینویسم!