انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: تبدیل دیکشنری‌های Stardict به mdic(حل شد)  (دفعات بازدید: 20449 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« : 26 بهمن 1388، 04:39 ب‌ظ »
من با استفاده از pyglossary چند تا از دیکشنری‌های Stardict رو به m2 تبدیل کردم،ولی در همه‌شون یه‌سری کاراکتر n\ به صورت اضافه وجود داره...
راهی برای حذفشون هست؟
« آخرین ویرایش: 01 اسفند 1388، 05:42 ب‌ظ توسط Midgårdsormen »

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
« پاسخ #1 : 26 بهمن 1388، 11:47 ب‌ظ »
الان که یه دیکشنری bgl رو هم convert کردم این مشکل وجود داشت...

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
« پاسخ #2 : 01 اسفند 1388، 02:36 ق‌ظ »
الان که یه دیکشنری bgl رو هم convert کردم این مشکل وجود داشت...
این رو نصب کنید:
http://dl.dropbox.com/u/3154538/packages/pyglossary/pyglossary_2010.2.20_all.deb
و دوباره convert کنید، ببینید مشکل حل میشه یا نه.

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
« پاسخ #3 : 01 اسفند 1388، 10:04 ق‌ظ »
میشه بسته‌ی rpmشو هم درست کنید...چون با کامپایلش از روی سورس مشکل دارم
متشکرم

ویرایش:این alien پدر منو درآورد!خیلی خنگ بود!
بعد از convert فایل deb و موقع نصب بهم گیر میداد که چرا python 2.5 نصب نیست
در صورتی که نسخه‌ی 2.6 رو نصبیده بودم
در هر حال خدا پدر این nodeps-- رو بیامرزه
و اما طرز کار برنامه...میتونم بگم دمت گرم!همه‌چی خوب کار میکنه
البته یه اشکالی هم کشف کردم؛موقع convert فایل‌های m2 به ifo برنامه به مشکل میخوره
/usr/share/pyglossary/src/glossary.py:84: DeprecationWarning: os.popen3 is deprecated.  Use the subprocess module.           
  p3 = os.popen3("%s '%s.dict'"%(dictzipCmd,filename))                                                                       
dictzip command: "/usr/bin/../share/pyglossary/dependencies/dictzip"                                                         
dictzip error: /bin/sh: /usr/bin/../share/pyglossary/dependencies/dictzip: No such file or directory
من نمیدونم این dictzip چیه...تو مخازن مندریوا هم یافت نشد!

در کمال پررویی یه درخواست دیگه هم داشتم...این فایلای bdc ساختارشون با bgl خیلی متفاوته؟
من شنیدم فرقشون فقط تو چند تا کد هگزادسیماله...البته فقط شنیدم
راهی هست که بشه اونا رو هم convert کرد؟
« آخرین ویرایش: 01 اسفند 1388، 01:14 ب‌ظ توسط Midgårdsormen »

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
« پاسخ #4 : 01 اسفند 1388، 05:07 ب‌ظ »
میشه بسته‌ی rpmشو هم درست کنید...چون با کامپایلش از روی سورس مشکل دارم
متشکرم

ویرایش:این alien پدر منو درآورد!خیلی خنگ بود!
بعد از convert فایل deb و موقع نصب بهم گیر میداد که چرا python 2.5 نصب نیست
در صورتی که نسخه‌ی 2.6 رو نصبیده بودم
در هر حال خدا پدر این nodeps-- رو بیامرزه
و اما طرز کار برنامه...میتونم بگم دمت گرم!همه‌چی خوب کار میکنه
اینم پکیج rpm
http://dl.dropbox.com/u/3154538/packages/pyglossary/pyglossary-2010.2.20-2.noarch.rpm
البته یه اشکالی هم کشف کردم؛موقع convert فایل‌های m2 به ifo برنامه به مشکل میخوره
/usr/share/pyglossary/src/glossary.py:84: DeprecationWarning: os.popen3 is deprecated.  Use the subprocess module.           
  p3 = os.popen3("%s '%s.dict'"%(dictzipCmd,filename))                                                                       
dictzip command: "/usr/bin/../share/pyglossary/dependencies/dictzip"                                                         
dictzip error: /bin/sh: /usr/bin/../share/pyglossary/dependencies/dictzip: No such file or directory
من نمیدونم این dictzip چیه...تو مخازن مندریوا هم یافت نشد!
اون مشکل نیست! در واقع سعی می‌کنه با دستور dictzip دیتابیس استاردیکت رو فشرده کنه، ولی دستور رو پیدا نمی‌کنه و ارور میده! شما می‌تونید اون ارور رو نادیده بگیرید. اگه هم خواستید دیتابیس استاردیکت خروجی، خودش فشرده بشه، پکیج dictzip رو نصب کنید(توی مخازن اوبونتو که هست، مندریوا رو نمی‌دونم)

در کمال پررویی یه درخواست دیگه هم داشتم...این فایلای bdc ساختارشون با bgl خیلی متفاوته؟
من شنیدم فرقشون فقط تو چند تا کد هگزادسیماله...البته فقط شنیدم
راهی هست که بشه اونا رو هم convert کرد؟
کلاً ساختار bgl خیلی پیجیده هست. ساختار bdc هم نمی‌دونم با bgl چقدر فرق داره، ولی من که نتونستم فرمتش(یعنی نحوهٔ ذخیره‌سازی‌ش) رو کشف کنم. شما اگه منبعی سراغ دارید معرفی کنید. تنها چیزی که در مورد bdc می‌دونم، اینه که متن‌های توش فشرده نشده، بر خلاف bgl که از فشرده‌سازی gzip استفاده می‌کنه.

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
« پاسخ #5 : 01 اسفند 1388، 05:42 ب‌ظ »
خیلی ممنون

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #6 : 21 اردیبهشت 1389، 08:00 ب‌ظ »
خب سه تا مشکل...یکی اینکه تبدیل دیکشنری collinscobuild5.bgl به دیکشنری مورد استفاده‌ی xfardic کار نمیکنه.یعنی فایل xdb حاصله در xfardic هیچ نتیجه‌ایو نشون نمیده.در استاردیکت خوب کار میکنه فقط دو تا مشکل داره:
یه مشکل با نمایش فونتیک(این یکی خیلی عجیبه،چون با فونتیک oxford رو که خود شما زحمتشو کشیده بودین و درست کرده بودین بدون مشکل چه در xfardic،چه در stardict و چه در mdic نمایش داده میشه)

دومی اینه که در این دیکشنری(یعنی همون collins cobuild) برای قیدها مثال آورده شده که رنگش با رنگ سایر بخش‌های definition فرق داره.همین‌جور متضادها و گاهی هم‌معنی‌هایی هم آورده شده که ظاهرا رنگ یا فونتشون فرق داره...متأسفانه این کاراکترها در استاردیکت به صورت مغشوش نمایش داده میشن.

برای اینکه بهتر منظور منو درک کنید،این مثالو ببینید:

<--- Collins Cobuild 5 --->
polite
po|lite /p&#x0259;l'a&#x026A;t/ (politer politest)

1 [ADJ]

  Someone who is polite has good manners and behaves in a way that is socially correct and not rude to other people.

  Everyone around him was trying to be polite, but you could tell they were all bored...

  It's not polite to point or talk about strangers in public...

  Gately, a quiet and very polite young man, made a favourable impression...

  I hate having to make polite conversation.

 â‰  rude

â—� politely <FONT COLOR="#007000">[ADV] usu ADV with v, also ADV adj</FONT>

  `Your home is beautiful,' I said politely...

  ≠ rudely

â—� politeness <FONT COLOR="#007000">[N-UNCOUNT]</FONT>

  She listened to him, but only out of politeness.

2 [ADJ] ADJ n

  You can refer to people who consider themselves to be socially superior and to set standards of behaviour for everyone else as polite society or polite company.
به خط سوم توجه کنید...در اون قسمت بین دو تا اسلش،باید آوانوشت کلمه قرار بگیره ولی یه سری اعداد هگزادسیمال و گاهی تگ مشاهده میشن
در بعضی قسمت‌ها باید عباراتی مثل adverb و adjective و Antonym و... قرار میگرفتن ولی یه سری کاراکتر مغشوش مشاهده میشن
در قسمت‌های دیگه هم تگ مربوط به رنگ فونت مشاهده میشه که البته باعث هیچ تغییر رنگی هم نشده.

پ.ن۱:من از جدیدترین نسخه‌ی pyglossary استفاده میکنم.در تنظیمات پیش‌فرض pyglossary هم هیچ تغییراتی ندادم.یعنی گزینه‌ی مربوط به حذف tagها در قسمت preferences فعاله.
پ.ن۲:لینک دریافت دیکشنری collinscobuild5.bgl برای تست:
http://s83.eu.rapidbaz.net/get/_7Faf/CollinsCobuild5.bgl
پ.ن۳:در mdic بدون هیچ مشکلی کار میکنه این دیکشنری

با تشکر از زحمات فراوان آقا سعید!
« آخرین ویرایش: 21 اردیبهشت 1389، 08:05 ب‌ظ توسط Midgårdsormen »

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #7 : 22 اردیبهشت 1389، 09:14 ق‌ظ »
بله. علتش اینه که توی فایل bgl به همون شکل ذخیره شده و pyglossary هم اون‌ها رو به همون صورت لود کرده و تغییر نداده و به همون صورت هم به فرمت‌های دیگه تبدیل کرده. در واقع بهتر بود که اون کاراکترهای هگزادسیمال رو با معادل یونیکد جایگزین می‌کرد. ولی خب فعلا هنوز این قابلیت رو به برنامه اضافه نکردم. سعی می‌کنم به زودی اضافه کنم (سعی می‌کنم).  :)

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #8 : 22 اردیبهشت 1389، 10:03 ق‌ظ »
من بدون اون حرف x پیش‌بینی کرده بودم که جایگزین کنه. مثلا:
&#0259;ولی نمی‌دونستم با x هم ممکنه بیاد!
&#x0259;به هر حال اینم گذاشتم که جایگزین کنه. و یه ورژن آپلود کردم. تست کنید ببینید درست شده یا نه.
https://sourceforge.net/projects/pyglossary/files
« آخرین ویرایش: 22 اردیبهشت 1389، 10:05 ق‌ظ توسط سعید رسولی (ilius) »

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #9 : 22 اردیبهشت 1389، 06:00 ب‌ظ »
ممنون آقا سعید، مشکل فونتیک‌ها در استاردیکت تا حد زیادی حل شد...البته اشکالاتی هم وجود داره،مثلا در تعریف word:
♦♦♦ word /w'ɜː<sup>r</sup>d/ (words wording worded)

همون‌جور که مشاهده میفرمایید،هنوزم برای بعضی از کلمات تگ‌های اضافی در قسمت فونتیکشون مشاهده میشن

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #10 : 22 اردیبهشت 1389، 08:49 ب‌ظ »
فعلا برای حذف شدن تگ sup این دستور رو اجرا کنید:
echo -e '\ntags["sup"]=0' >> ~/.pyglossaryاگه تگ‌های دیگه‌ای هم می‌خواید از دیتابیس حذف بشه، فایل
~/.pyglossaryرو با یه ادیتور باز کنید و خطی که با عبارت tags شروع میشه رو پیدا کنید، بعد با توجه به فرمت اون چیزی که توی فایل نوشته شده (دیکشنری پایتون) تگ‌های دلخواه رو اضافه یا حذف کنید.
## TagName : RemoveBetween
tags={
'i' :0,
'I' :0,
'b' :0,
'B' :0,
'a' :0,
'A' :0,
'tr' :0,
'font' :0,
'FONT' :0,
'TR' :0,
'tr' :0,
'td' :0,
'TD' :0,
'HR' :0,
'hr' :0,
'TABLE' :0,
'table' :0,
'P' :0,
'p' :0,
'U' :0,
'u' :0,
'sup'   :0,
'SUP'   :0}

توجه کنید عدد 0 یعنی رشتهٔ بین باز و بسته شدن رو حذف نمی‌کنه و فقط خود تگ‌ها رو حذف می‌کنه، مثلا عبارت
word /w'ɜː<sup>r</sup>d/ (words wording worded)تبدیل میشه به:
word /w'ɜːrd/ (words wording worded)یعنی فقط خود عبارت‌های <sup> و </sup> حذف میشه.
ولی اگه عدد مقابل اون تگ رو 1 بذارید بجای 0، اون‌وقت رشتهٔ بین دو تگ هم حذف میشه، یعنی این مثال بالا تبدیل میشه به:
word /w'ɜːd/ (words wording worded)که باعث میشه حرف r هم حذف بشه! که در مورد تگ sup مطلوب نیست. برای اغلب تگ‌ها همون پارامتر 0 مناسب هست.
باید بالاخره یه رابط گرافیکی برای تنظیم کردن این بذارم توی تنظیمات برنامه. ولی متاسفانه وقت نمی‌کنم!

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #11 : 23 اردیبهشت 1389، 02:51 ب‌ظ »
دمت گرم!این راهنمایی که کردی خیلی خوب بود...

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #12 : 24 اردیبهشت 1389، 01:39 ب‌ظ »
خب یه اتفاق تازه افتاد...در تعریف واژه‌ی pragmatic

prag|mat|ics /pr&aelig;gm'&aelig;tɪks/

همون‌جوری که مشاهده میکنید،این بار یه سری کاراکتر اضافه،که tag هم نیستن دیده میشن
اینم برای واژه‌ی glass:
♦♦ glass /gl'ɑːs, gl'&aelig;s/

فکر میکنم در نمایش دادن ligatureها یه مقدار مشکل داره...یعنی به‌جای اینکه بنویسه æ مینویسه aelig&

پ.ن:این کاراکترهای ♦♠ممکنه مشکلشون از فونت باشه؟البته همون‌جور که گفتم این دیکشنری بدون هیچ مشکلی برای mdic کانورت میشه...
« آخرین ویرایش: 24 اردیبهشت 1389، 01:45 ب‌ظ توسط Midgårdsormen »

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #13 : 24 اردیبهشت 1389، 05:08 ب‌ظ »
اتفاقا دیروز و امروز روی موتور لود کردن bgl کار کردم، و این اشکال و چند تا اشکال دیگه رو برطرف کردم. اون رنگ‌ها و فرمت‌بندی (bold و italic و...) هم درست شد و اون فرمت‌بندی‌های توی استاردیکت کاملاً درست نشون داده میشه و نیاز به حذف tag ها نیست. :)
فعلاً هنوز دارم روش کار می‌کنم ببینم اگه نقص دیگه‌ای هست برطرف کنم. احتمالا فردا یه ورژن آپلود کنم.

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
« پاسخ #14 : 24 اردیبهشت 1389، 05:44 ب‌ظ »
1000^1000+