diff --git a/Makefile b/Makefile index 6f3b0b8..d77ca00 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +VERSION=$(shell python3 src/lilak.py -v) + all: hunspell build test hunspell: @@ -12,15 +14,30 @@ test: extensions: # mozila xpi - rm -rf ./build/mozile ./build/fa-IR-dictionary.xpi - mkdir -p ./build/mozile ./build/mozile/dictionaries ./build/mozile/icons - cp ./LICENSE ./build/mozile/LICENSE - cp ./icon.png ./build/mozile/icon.png - cp ./README_fa_IR.txt ./build/mozile/dictionaries/README_fa_IR.txt - cp ./build/fa-IR.dic ./build/mozile/dictionaries/fa-IR.dic - cp ./build/fa-IR.aff ./build/mozile/dictionaries/fa-IR.aff - echo '{ "manifest_version": 2, "dictionaries": { "fa-IR": "dictionaries/fa-IR.dic" }, "applications": { "gecko": { "id": "fa-IR@dictionaries.addons.mozilla.org" } }, "name": "Lilak", "version": "3.2", "description": "Lilak, Persian Spell Checking Dictionary" }' > ./build/mozile/manifest.json - cd ./build/mozile && zip -r ../fa-IR-dictionary.xpi * + rm -rf ./build/mozila ./build/fa-IR-dictionary.xpi + mkdir -p ./build/mozila + cp ./build/fa-IR.dic ./build/mozila/fa-IR.dic + cp ./build/fa-IR.aff ./build/mozila/fa-IR.aff + cp ./LICENSE ./build/mozila/LICENSE + cp ./icon.png ./build/mozila/icon.png + cp ./src/data/README_fa_IR.txt ./build/mozila/README_fa_IR.txt + cp ./src/data/manifest.json ./build/mozila/manifest.json + sed -i 's/%VER%/$(VERSION)/g' ./build/mozila/manifest.json + cd ./build/mozila && zip -r ../fa-IR-dictionary.xpi * + + # LibreOffice oxt + rm -rf ./build/libre ./build/fa-IR-dictionary.oxt + mkdir -p ./build/libre ./build/libre/META-INF + cp ./build/fa-IR.dic ./build/libre/fa-IR.dic + cp ./build/fa-IR.aff ./build/libre/fa-IR.aff + cp ./LICENSE ./build/libre/LICENSE + cp ./icon.png ./build/libre/icon.png + cp ./src/data/META-INF/manifest.xml ./build/libre/META-INF/manifest.xml + cp ./src/data/README_fa_IR.txt ./build/libre/README_fa_IR.txt + cp ./src/data/dictionaries.xcu ./build/libre/dictionaries.xcu + cp ./src/data/description.xml ./build/libre/description.xml + sed -i 's/%VER%/$(VERSION)/g' ./build/libre/description.xml + cd ./build/libre && zip -r ../fa-IR-dictionary.oxt * # chromium bdic rm -rf ~/chromium ~/depot_tools; diff --git a/src/data/META-INF/manifest.xml b/src/data/META-INF/manifest.xml new file mode 100644 index 0000000..45f84c6 --- /dev/null +++ b/src/data/META-INF/manifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/README_fa_IR.txt b/src/data/README_fa_IR.txt similarity index 100% rename from README_fa_IR.txt rename to src/data/README_fa_IR.txt diff --git a/src/data/description.xml b/src/data/description.xml new file mode 100644 index 0000000..07b85cb --- /dev/null +++ b/src/data/description.xml @@ -0,0 +1,22 @@ + + + + + + + + Lilak, Persian Spell Checking Dictionary + لیلک، غلط‌ یاب فارسی + + + + + + + + + Mostafa Sedaghat Joo + + diff --git a/src/data/dictionaries.xcu b/src/data/dictionaries.xcu new file mode 100644 index 0000000..fb25768 --- /dev/null +++ b/src/data/dictionaries.xcu @@ -0,0 +1,21 @@ + + + + + + + %origin%/fa-IR.aff %origin%/fa-IR.dic + + + DICT_SPELL + + + fa-IR + + + + + + + diff --git a/src/data/manifest.json b/src/data/manifest.json new file mode 100644 index 0000000..f833b9a --- /dev/null +++ b/src/data/manifest.json @@ -0,0 +1,17 @@ +{ + "manifest_version": 2, + "dictionaries": { + "fa-IR": "fa-IR.dic" + }, + "applications": { + "gecko": { + "id": "fa-IR@dictionaries.addons.mozilla.org" + } + }, + "icons": { + "48": "icon.png" + }, + "name": "Lilak", + "version": "%VER%", + "description": "Lilak, Persian Spell Checking Dictionary" +} \ No newline at end of file diff --git a/src/data/package-description.txt b/src/data/package-description.txt new file mode 100644 index 0000000..294c2f2 --- /dev/null +++ b/src/data/package-description.txt @@ -0,0 +1,4 @@ +Lilak, Persian Spell Checking Dictionary + +Lilak is an open source project for generating Persian dictionary for hunspell spell checker based on Persian Morphology. +This dictionary is free and the source is available under Apache License Version 2.0. diff --git a/src/lilak.py b/src/lilak.py index bad1bfd..8082506 100644 --- a/src/lilak.py +++ b/src/lilak.py @@ -35,7 +35,7 @@ import datetime import argparse -VERSIAN = '3.2' +VERSIAN = '3.3' DEBUG = 1 # set to 1 to generate a debug output file ZWNJ = '\u200C' @@ -732,6 +732,7 @@ def pars_main_dic(self): parser.add_argument("-m", "--mode", help="Run mode") parser.add_argument("-i", "--input", help="input lexicon file") parser.add_argument("-o", "--output", help="input dictionary file") + parser.add_argument('-v', '--version', action='version', version=VERSIAN) args = parser.parse_args() if args.mode == 'tihu': diff --git a/test/result.log b/test/result.log index b5ef705..3239b57 100644 --- a/test/result.log +++ b/test/result.log @@ -1,6 +1,6 @@ ../test/text1 -*یکیشان: کیشان, یکی‌شان, شیکیان, یکمشان, یکانشان, یکسانشان, نوکیششان -*فرنگیمان: فرنگمان, فرنگیسمان, فرنگیسان, فرهنگیانمان, فرانگیریم, فرانگیرم, فرنگان +*یکیشان: کیشان, یکی‌شان, شیکیان, یکمشان, یکانشان, یکسانشان +*فرنگیمان: فرنگمان, فرنگیسمان, فرنگیسان, فرانگیریم, فرهنگیانمان, فرانگیرم, فرنگان *هو: خو, و, هوی, هیو, یهو, هوا, هون, هود, همو, هور, هوو, هوس, سهو, هوش, هول *پیشش: پیسش, پیش, پشش, پریشش, پویشش, پیشکش, پیچشش, پیشی, پینش, نیشش, دیشش, میشش, پیرش, پرشش, ریشش *شوفته‌ی: شفته‌ی, شیفته‌ی, روفته‌ی, شکفته‌ی, کوفته‌ی @@ -28,7 +28,7 @@ *ات: ان, آن, تا, لت, ادت, دات, اتم, امت, مات, اتر, هات, اتو, اوت, وات, تات *شنگه‌ای: شنگ‌های, شنگهای, نگه‌ای, گشنه‌ای, شنگی‌ای, ینگه‌ای, شنبه‌ای, تنگه‌ای, لنگه‌ای, چنگه‌ای, نگشته‌ای *آجینم: آجیم, جینم, آجیانم, آجیدنم, آیینم, آجانم, آمینم, آرینم, وجینم, آجیلم, عجینم, آذینم, آئینم, آجرچینم -*یکیشان: کیشان, یکی‌شان, شیکیان, یکمشان, یکانشان, یکسانشان, نوکیششان +*یکیشان: کیشان, یکی‌شان, شیکیان, یکمشان, یکانشان, یکسانشان *بغ: باغ, بغر, بغل, بغض, بی, با, بن, بد, بم, مغ, بر, به, بو, بت, بس *هق: قه, دهق, نق, هد, دق, هم, هر, تق, سق, شق, هل, لق, زق, هک, آق *هق: قه, دهق, نق, هد, دق, هم, هر, تق, سق, شق, هل, لق, زق, هک, آق @@ -39,7 +39,7 @@ *قاه: قله, قه, قاهر, قاره, قمه, ماه, قره, راه, قوه, قاب, قبه, شاه, قال, قاز, گاه *قاه: قله, قه, قاهر, قاره, قمه, ماه, قره, راه, قوه, قاب, قبه, شاه, قال, قاز, گاه *یالله: بالله, الله, یاالله, یدالله, اللهی, والله -*مشتلق: مقتلش, مشتاق, مشتق +*مشتلق: مقتلش, مشتاق, مشتق, مشتمل *هروقت: عروقت, هرودت, سروقت, آروقت *بسم: بشم, بیم, بس, بم, سم, یبسم, بسرم, برسم, بسمه, بوسم, بستم, بتسم, تبسم, بسزم, بکسم *خل: چل, حل, جل, هل, خب, خلی, خیل, خلا, خال, نخل, خلد, دخل, خلم, مخل, بخل @@ -52,7 +52,7 @@ *ار: از, آز, را, لر, تر, ایر, یار, ارا, نار, دار, ارم, امر, مار, اره, اهر *چارده: چاره, چرده, ارده, چهارده, وارده ../test/text4 -*وقاس: وقار, وگاس +*وقاس: وقار, وگاس, وقایا *یزگرد: برکرد, برگرد, پرگرد, یزدگرد, میزگرد, ریزگرد *برگاشت: برگشت, برنگاشت, برگماشت, برگانت, بنگاشت, برداشت *صلاب: صلا, صلب, صلابه, صلابت, صلیب, صواب, صلات, گلاب, کلاب, جلاب, قلاب, صلاح, صحاب, طلاب @@ -76,7 +76,7 @@ *بازارگاه: بارگاه, بارگیرگاه *ازین: آرین, ازنی, زانی, ازن, این, زین, زیان, نازی, امین, مزین, رزین, ازون, اوین, وزین, کزین *ساو: سوا, سو, او, سادو, ساوه, ساتو, ساوس, ساوج, سان, ناو, داو, سام, سار, سرو, سهو -*رانیز: رانی, رایزن, رزانی, زرانی, رانید, رانیم, رانیه, رونیز, رانیل +*رانیز: رانی, رایزن, رزانی, زرانی, رانید, رانیم, رانیه, رونیز, رانیل, انیران *اندرند: نادرند, اردنند, تندرند, ندرند, اندرزند, ندارند, ندراند, راندند, انارند, انورند, انبرند, بندرند, اندکند, انکرند, کندرند *همی‌ننگرند: همی ننگرند, همی‌نگرند *میروی: نیروی, میری, میوی, مروی, امیروی, منیروی, می‌روی, میکروی, رمیوی, میرای, مینوی, موروی, متروی, سیروی, شیروی @@ -85,7 +85,7 @@ *کلبوی: کلیوی, کلوبی, کابوی, کلبی, کلوی, لبوی, کلمبوی *گوپال: کوپال, گودال *کیند: گپند, کنید, کسند, کین, کید, کند, کینید, کینند, کیدند, کیمند, کیتند, کیسند, کیشند, کیلند, کیکند -*مازنداران: مازندران, مهمانداران, کمانداران, فرمانداران, مازمانندان +*مازنداران: مازندران, مهمانداران, فرمانداران, میانداران, مازمانندان *راهست: رهاست, هارست, راهت, راست, راهبست, اهرست, راسته, هراست, رایست, رانست, رادست, رامست, راهبت, رابست, راسست *گونه‌تر: گونه تر, کوته‌تر, گشنه‌تر *گردکن: گردن, گردکان, گردان, گرمکن, گردون, سردکن, خردکن @@ -105,7 +105,7 @@ *آیدش: ابدش, آید, یدش, آشید, آیدا, آندش, آردش, ریدش, بیدش, آیتش, سیدش, شیدش, زیدش, کیدش, قیدش *ممانید: مماتید, مامنید, نمانید, کمانید, منانید, مکانید, مانید, مامانید, مهمانید, میانید, امانید, دمانید, رمانید, بمانید, متانید *ازین: آرین, ازنی, زانی, ازن, این, زین, زیان, نازی, امین, مزین, رزین, ازون, اوین, وزین, کزین -*نماندست: نمادست, نماندنست, ماندنست, نمدانست, نماندنت, نمالاندنست, نمایاندنست, نماندند, نماند +*نماندست: نمادست, نماندنست, ماندنست, نمدانست, نماندنت, نمالاندنست, نمایاندنست, نماندند, نمادگانست *اوست: لوست, توست, اوشت, اوت, است, وست, اویست, ایوست, اوستا, اونست, ادوست, ماوست, اوسرت, اورست, هاوست *بباد: بیاد, بلاد, باد, بباید, ببارد, بباشد, ببالد, ببازد, ببافد, ببند, بداد, مباد, ببار, ببرد, ببود *پدرود: بدرود, پدرو, درود, پدروی, پدرید, پدرند, ندرود, پدروم, پدروت, پدروش @@ -142,7 +142,7 @@ *جزین: چربت, خریت, حزبت, حزین, حربت, حریت, جربت, جین, زین, جینز, جزیا, جنین, مزین, رزین, جزیه *هرچ: هرج, هر, هچ, هرچه, چهر, هیچ, هرم, هرس, هرز, پرچ ../test/text5 -*برون‌اند: برونه‌اند, بروندی‌اند, برونئی‌اند, برونته‌اند, برونداده‌اند +*برون‌اند: برونه‌اند, بروندی‌اند, برونته‌اند, برونئی‌اند, برونداده‌اند ../test/text6 *زینجا: زیجان, اینجا, نینجا, زینها, جایگزین ../test/text7 @@ -156,18 +156,18 @@ *آخه: آچه, آخ, آه, آخها, آخته, آخی, آیه, یخه, آخن, آخم, آخر, آره, آبه, آخت, آخش ../test/text8 *بارگانِ: بارکان, یارکان, پارکان, باران, باگان, برگان, ارگان, بارگیان, بازرگان, باکرگان, بایگان, بانگان, نارگان, بارمان, بارگاه -*میبیند: می‌بیند, مبینید, میبدند, میویند, می‌بینند -*میبیند: می‌بیند, مبینید, میبدند, میویند, می‌بینند +*میبیند: می‌بیند, مبینید, میبدند, میویند, می‌بینند, بیند +*میبیند: می‌بیند, مبینید, میبدند, میویند, می‌بینند, بیند *میسراید: میسرید, می‌سراید, می‌سرایید, سراییدم, سرایدارید, سراییدیم *قلاعِ: قلع, عقلا, قلان, قلاب, قلات, قلاش, قطاع -*کاندران: کندران, اندرکاران, کاندر, ندراند, ندرانند +*کاندران: کندران, اندرکاران, کاندر, دکانداران, سکانداران *چار: خار, جاز, جار, چرا, پار, چتر, چنار, چادر, چدار, دچار, چاره, چهار, چارت, چارک, چاکر *برمیآشوبند: برمی‌آشوبند, برنمی‌آشوبند, برهمی‌آشوبند, برمی‌آشوبد, برآشوبند *میکوبند: میگویند, منکوبید, میکروبند, می‌کوبند, میخکوبند, منکوبند, مرکوبند *میروبند: میروند, می‌روبند, میکروبند, میرابند, مشروبند, مضروبند, روبندند, روبند *بیآزرم: بی‌آزرم, بی‌آزارم *بیآیین: بی‌آیین, بدآیین, آیین -*کاندران: کندران, اندرکاران, کاندر, ندراند, ندرانند +*کاندران: کندران, اندرکاران, کاندر, دکانداران, سکانداران *بیگونه‌ای: بگونه‌ای, بیگانه‌ای, بیمارگونه‌ای, چگونه‌ای *تازه‌رو: تازه رو *قلّه‌ست: قله ست, قله‌ات, قلهاست, قلهکست @@ -196,7 +196,7 @@ *شاهیست: شیهاست, شایست, شاهینست, شایسته, شاهینت, شاهدست, شاهکست, ستمشاهی, ستم‌شاهی *زمیری: زیمری, زمری, زیری, میری, ازمیری, زیریم, زایری, امیری, زمینی, نمیری, زبیری, بمیری, سمیری, زفیری, خمیری *میخواهیم: می‌خواهیم, میخواریم, می‌خواهی, خواهیم -*میمالیم: می‌مالیم, می‌مالیدیم, گالیمیمیم, مالیم, هیمالیایم +*میمالیم: می‌مالیم, پایمالیم, می‌مالیدیم, گالیمیمیم, مالیم *میگوئیم: میگوییم, میگویم *آنک: انگ, آن, نک, آنکه, آنکس, آنی, آنا, آند, آرک, رنک, آهک, ونک, بنک, آنت, تنک *شیرینکار: شیرینکاری, شیرین‌کار, شیرین‌کام @@ -204,7 +204,7 @@ *۱۳۳۶: ../test/text9 *تکبیرة: تکبیرت, تکبیر, تکبیری, تکبیرم, تکبیرش -*الاحرام: احرامم, احرام +*الاحرام: الاهرام, احرامم, احرام *تننا: تنان, نتان, تانن, تمنا, تنگنا, تینا, تانا, تنند, تنها *ها: هل, های, هان, هدا, دها, هما, هار, رها, هوا, بها, هات, سها, هال, هاگ, هجا *هو: خو, و, هوی, هیو, یهو, هوا, هون, هود, همو, هور, هوو, هوس, سهو, هوش, هول @@ -216,7 +216,7 @@ *–: و, ز *۱۳۴۳: ../test/text10 -*ببریده‌اند: بریده‌اند, باریده‌اند, نبریده‌اند, برندمیده‌اند, برچیده‌اند, برجهیده‌اند, برنچیده‌اند +*ببریده‌اند: بریده‌اند, باریده‌اند, نبریده‌اند, برچیده‌اند, برندمیده‌اند, برجهیده‌اند, برنچیده‌اند *خوش‌حالان: خوش حالان, خوشحالان, خوش‌الحان *مر: رم, نر, کر, مری, مرا, مار, امر, مرد, مدر, دمر, مرم, ممر, مره, مهر, مرو *آن‌که: آن که, آنکه, آن‌چه