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

جامعه کاربران => پروژه‌ها => واژه‌نامه چندزبانه MDic => نویسنده: Midgårdsormen در 26 بهمن 1388، 04:39 ب‌ظ

عنوان: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 26 بهمن 1388، 04:39 ب‌ظ
من با استفاده از pyglossary چند تا از دیکشنری‌های Stardict رو به m2 تبدیل کردم،ولی در همه‌شون یه‌سری کاراکتر n\ به صورت اضافه وجود داره...
راهی برای حذفشون هست؟
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
ارسال شده توسط: Midgårdsormen در 26 بهمن 1388، 11:47 ب‌ظ
الان که یه دیکشنری bgl رو هم convert کردم این مشکل وجود داشت...
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
ارسال شده توسط: سعید رسولی در 01 اسفند 1388، 02:36 ق‌ظ
الان که یه دیکشنری bgl رو هم convert کردم این مشکل وجود داشت...
این رو نصب کنید:
http://dl.dropbox.com/u/3154538/packages/pyglossary/pyglossary_2010.2.20_all.deb
و دوباره convert کنید، ببینید مشکل حل میشه یا نه.
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
ارسال شده توسط: Midgårdsormen در 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 کرد؟
عنوان: پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
ارسال شده توسط: سعید رسولی در 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 استفاده می‌کنه.
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic
ارسال شده توسط: Midgårdsormen در 01 اسفند 1388، 05:42 ب‌ظ
خیلی ممنون
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 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 بدون هیچ مشکلی کار میکنه این دیکشنری

با تشکر از زحمات فراوان آقا سعید!
عنوان: پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 22 اردیبهشت 1389، 09:14 ق‌ظ
بله. علتش اینه که توی فایل bgl به همون شکل ذخیره شده و pyglossary هم اون‌ها رو به همون صورت لود کرده و تغییر نداده و به همون صورت هم به فرمت‌های دیگه تبدیل کرده. در واقع بهتر بود که اون کاراکترهای هگزادسیمال رو با معادل یونیکد جایگزین می‌کرد. ولی خب فعلا هنوز این قابلیت رو به برنامه اضافه نکردم. سعی می‌کنم به زودی اضافه کنم (سعی می‌کنم).  :)
عنوان: پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 22 اردیبهشت 1389، 10:03 ق‌ظ
من بدون اون حرف x پیش‌بینی کرده بودم که جایگزین کنه. مثلا:
&#0259;ولی نمی‌دونستم با x هم ممکنه بیاد!
&#x0259;به هر حال اینم گذاشتم که جایگزین کنه. و یه ورژن آپلود کردم. تست کنید ببینید درست شده یا نه.
https://sourceforge.net/projects/pyglossary/files
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 22 اردیبهشت 1389، 06:00 ب‌ظ
ممنون آقا سعید، مشکل فونتیک‌ها در استاردیکت تا حد زیادی حل شد...البته اشکالاتی هم وجود داره،مثلا در تعریف word:
♦♦♦ word /w'ɜː<sup>r</sup>d/ (words wording worded)

همون‌جور که مشاهده میفرمایید،هنوزم برای بعضی از کلمات تگ‌های اضافی در قسمت فونتیکشون مشاهده میشن
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 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 مناسب هست.
باید بالاخره یه رابط گرافیکی برای تنظیم کردن این بذارم توی تنظیمات برنامه. ولی متاسفانه وقت نمی‌کنم!
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 23 اردیبهشت 1389، 02:51 ب‌ظ
دمت گرم!این راهنمایی که کردی خیلی خوب بود...
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 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 کانورت میشه...
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 24 اردیبهشت 1389، 05:08 ب‌ظ
اتفاقا دیروز و امروز روی موتور لود کردن bgl کار کردم، و این اشکال و چند تا اشکال دیگه رو برطرف کردم. اون رنگ‌ها و فرمت‌بندی (bold و italic و...) هم درست شد و اون فرمت‌بندی‌های توی استاردیکت کاملاً درست نشون داده میشه و نیاز به حذف tag ها نیست. :)
فعلاً هنوز دارم روش کار می‌کنم ببینم اگه نقص دیگه‌ای هست برطرف کنم. احتمالا فردا یه ورژن آپلود کنم.
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 24 اردیبهشت 1389، 05:44 ب‌ظ
1000^1000+
عنوان: پاسخ به: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 25 اردیبهشت 1389، 09:22 ق‌ظ
یه ورژن جدید:
https://sourceforge.net/projects/pyglossary/files/
اون مشکلات رو برطرف کردم و فرمت‌بندی‌ها هم درست توی استاردیکت نمایش داده میشه، البته به شرطی که تگ‌ها رو حذف نکنید. یعنی توی Preferences قسمت Convert تیک Remove tags after loading رو بردارید.
http://dl.dropbox.com/u/3154538/images/Screenshot-StarDict-Collins-GNU.png

فقط یه مشکل هست که نتونستم برطرف کنم، توی این گلاسری Collins بعضی عبارت‌هایی که با حرف a شروع میشن توی استاردیکت معنی‌شون نمایش داده نمیشه، یعنی Not Found می‌نویسه. چاره‌ش هم اینه که کلمات lowercase بشه یعنی توی همون Preferences قسمت Convert تیک Lowercase after loading رو بذارید.
اگه فرصت کردم سعی می‌کنم این اشکال رو برطرف کنم.
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 25 اردیبهشت 1389، 10:52 ق‌ظ
عالیه آقا سعید...حتی لینک‌های دیکشنری هم کار میکنن.
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 25 اردیبهشت 1389، 09:19 ب‌ظ
خب خبر جدید...من سعی کردم دانشنامه‌ی بریتانیکا رو هم کانورت کنم
http://babylon.japan21.co.jp/files/nonfree/Britannica/English/Britannica_Concise_Encyclopedi.BGL

نتیجه عالی بود؛لینک‌های به‌خوبی کار میکردن،ساختار متن به‌خوبی رعایت شده بود،فقط یه مشکل کوچیک وجود داشت...یه سری کاراکترهای عجیب‌وغریب که مثلا به‌جای خط فاصله بین سال‌ها قرار میگرفتن.مثلا در مداخلی که مربوط به نام اشخاص میشد،سال تولد و مرگ رو نوشته و بینشون خط فاصله گذاشته،اما در دیکشنری کانورت شده برای استاردیکت جاشون کاراکترای عجیبی میاد
یک نمونه در مدخل huguenots

huguenots
n.
French Protestants of the 16th–17th century, many of whom suffered severe persecution for their faith.
The first French Huguenot community was founded in 1546, and the confession of faith drawn up by the first synod in 1559 was influenced by the ideas of John Calvin. Their numbers increased rapidly and they became a political force, led by Gaspard II de Coligny. Conflicts with the Roman Catholic government and others, including the House of Guise, led to the Wars of Religion (1562–98). A Huguenot political party was formed in 1573 to fight for religious and civil liberties. The powerful anti-Huguenot Holy League was formed in 1576. Henry IV ended the civil wars by abjuring Protestantism in 1593 and converting to Catholicism, but in 1598 he promulgated the Edict of Nantes, granting rights to Protestants. Civil wars occurred again in the 1620s, the Huguenots lost their political power, and they continued to be harassed and forcibly converted. In 1685 Louis XIV revoked the Edict of Nantes; over the next several years, more than 400,000 French Protestants left France.0   Huguenots
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: سعید رسولی در 26 اردیبهشت 1389، 10:50 ب‌ظ
همم
ممنون. درستش می‌کنم
به کمک شما این برنامه داره به تدریج کامل میشه... :)

فقط نمی‌دونم چرا عکس‌ها توی استاردیکت نشون داده نمیشه! با اینکه آدرسشون رو هم درست set می‌کنم!
عنوان: پاسخ به: تبدیل دیکشنری‌های Stardict به mdic(حل شد)
ارسال شده توسط: Midgårdsormen در 27 اردیبهشت 1389، 12:18 ق‌ظ
نقل‌قول
به کمک شما این برنامه داره به تدریج کامل میشه...
شرمنده میفرمایید!اصل کارو که شما کردین
 :oops:

نقل‌قول
فقط نمی‌دونم چرا عکس‌ها توی استاردیکت نشون داده نمیشه! با اینکه آدرسشون رو هم درست set می‌کنم!
تا جایی که میدونم استاردیکت توانایی نشون دادن فایل‌های عکس با فرمت gif و jpg و png رو داره...کما اینکه در دیکشنری American Heritage میتونه نشون بده
البته عکسای این بریتانیکا که کانورت کردم،جاشون خالی میمونه و فقط اسم فایل تصویری مربوط رو مینویسه