Penelope هي أداة متعددة لإنشاء القواميس وتحريرها وتحويلها، خاصة لأجهزة القراءة الإلكترونية.
مع الإصدار الحالي يمكنك:
bookeen
فقط)افتح وحدة التحكم واكتب:
$ [sudo] pip install penelope
هذا كل شيء! ما عليك سوى التشغيل بدون وسيطات (أو باستخدام -h
أو --help
) للحصول على الدليل:
$ penelope
سيؤدي هذا الإجراء إلى تثبيت lxml
و marisa-trie
. قد تحتاج إلى تثبيت dictzip
(مخرج StarDict) و kindlegen
(مخرج MOBI) بشكل منفصل، انظر أدناه.
احصل على الكود المصدري:
استنساخ هذا الريبو مع git
:
$ git clone https://github.com/pettarin/penelope.git
أو قم بتنزيل الإصدار الأخير وفك ضغطه في مكان ما،
أو قم بتنزيل ملف ZIP الرئيسي الحالي وفك ضغطه في مكان ما.
افتح وحدة التحكم وأدخل دليل penelope
(المستنسخ):
$ cd /path/to/penelope
هذا كل شيء! ما عليك سوى التشغيل بدون وسيطات (أو باستخدام -h
أو --help
) للحصول على الدليل:
$ python -m penelope
لن يقوم هذا الإجراء بتثبيت أي تبعيات: ستحتاج إلى القيام بذلك يدويًا، انظر أدناه.
بايثون، الإصدار 2.7.x أو 3.4.x (أو أعلى)
لكتابة قواميس StarDict: dictzip
القابل للتنفيذ، والمتوفر في $PATH
الخاص بك أو المحدد بـ --dictzip-path
:
$ [sudo] apt-get install dictzip
لقراءة/كتابة قواميس كوبو: وحدة بايثون marisa-trie
:
$ [sudo] pip install marisa-trie
أو ملفات MARISA التنفيذية المتوفرة في $PATH
أو المحددة باستخدام --marisa-bin-path
لكتابة قواميس MOBI Kindle: ملف kindlegen القابل للتنفيذ، والمتوفر في $PATH
الخاص بك أو المحدد باستخدام --kindlegen-path
لقراءة/كتابة قواميس XML: وحدة Python lxml
:
$ [sudo] pip install lxml
usage:
$ penelope -h
$ penelope -i INPUT_FILE -j INPUT_FORMAT -f LANGUAGE_FROM -t LANGUAGE_TO -p OUTPUT_FORMAT -o OUTPUT_FILE [OPTIONS]
$ penelope -i IN1,IN2[,IN3...] -j INPUT_FORMAT -f LANGUAGE_FROM -t LANGUAGE_TO -p OUTPUT_FORMAT -o OUTPUT_FILE [OPTIONS]
description:
Convert dictionary file(s) with file name prefix INPUT_FILE from format INPUT_FORMAT to format OUTPUT_FORMAT, saving it as OUTPUT_FILE.
The dictionary is from LANGUAGE_FROM to LANGUAGE_TO, possibly the same.
You can merge several dictionaries (with the same format), by providing a list of comma-separated prefixes, as shown by the third synopsis above.
optional arguments:
-h, --help show this help message and exit
-d, --debug enable debug mode (default: False)
-f LANGUAGE_FROM, --language-from LANGUAGE_FROM
from language (ISO 639-1 code)
-i INPUT_FILE, --input-file INPUT_FILE
input file name prefix(es). Multiple prefixes must be
comma-separated.
-j INPUT_FORMAT, --input-format INPUT_FORMAT
from format (values: bookeen|csv|kobo|stardict|xml)
-k, --keep keep temporary files (default: False)
-o OUTPUT_FILE, --output-file OUTPUT_FILE
output file name
-p OUTPUT_FORMAT, --output-format OUTPUT_FORMAT
to format (values:
bookeen|csv|epub|kobo|mobi|stardict|xml)
-t LANGUAGE_TO, --language-to LANGUAGE_TO
to language (ISO 639-1 code)
-v, --version print version and exit
--author AUTHOR author string
--copyright COPYRIGHT
copyright string
--cover-path COVER_PATH
path of the cover image file
--description DESCRIPTION
description string
--email EMAIL email string
--identifier IDENTIFIER
identifier string
--license LICENSE license string
--title TITLE title string
--website WEBSITE website string
--year YEAR year string
--apply-css APPLY_CSS
apply the given CSS file (epub and mobi output only)
--bookeen-collation-function BOOKEEN_COLLATION_FUNCTION
use the specified collation function
--bookeen-install-file
create *.install file (default: False)
--csv-fs CSV_FS CSV field separator (default: ',')
--csv-ignore-first-line
ignore the first line of the input CSV file(s)
(default: False)
--csv-ls CSV_LS CSV line separator (default: 'n')
--dictzip-path DICTZIP_PATH
path to dictzip executable
--epub-no-compress do not create the compressed container (epub output
only, default: False)
--escape-strings escape HTML strings (default: False)
--flatten-synonyms flatten synonyms, creating a new entry with
headword=synonym and using the definition of the
original headword (default: False)
--group-by-prefix-function GROUP_BY_PREFIX_FUNCTION
compute the prefix of headwords using the given prefix
function file
--group-by-prefix-length GROUP_BY_PREFIX_LENGTH
group headwords by prefix of given length (default: 2)
--group-by-prefix-merge-across-first
merge headword groups even when the first character
changes (default: False)
--group-by-prefix-merge-min-size GROUP_BY_PREFIX_MERGE_MIN_SIZE
merge headword groups until the given minimum number
of headwords is reached (default: 0, meaning no merge
will take place)
--ignore-case ignore headword case, all headwords will be lowercased
(default: False)
--ignore-synonyms ignore synonyms, not reading/writing them if present
(default: False)
--include-index-page include an index page (epub and mobi output only,
default: False)
--input-file-encoding INPUT_FILE_ENCODING
use the specified encoding for reading the raw
contents of input file(s) (default: 'utf-8')
--input-parser INPUT_PARSER
use the specified parser function after reading the
raw contents of input file(s)
--kindlegen-path KINDLEGEN_PATH
path to kindlegen executable
--marisa-bin-path MARISA_BIN_PATH
path to MARISA bin directory
--marisa-index-size MARISA_INDEX_SIZE
maximum size of the MARISA index (default: 1000000)
--merge-definitions merge definitions for the same headword (default:
False)
--merge-separator MERGE_SEPARATOR
add this string between merged definitions (default: '
| ')
--mobi-no-kindlegen do not run kindlegen, keep .opf and .html files
(default: False)
--no-definitions do not output definitions for EPUB and MOBI formats
(default: False)
--sd-ignore-sametypesequence
ignore the value of sametypesequence in StarDict .ifo
files (default: False)
--sd-no-dictzip do not compress the .dict file in StarDict files
(default: False)
--sort-after sort after merging/flattening (default: False)
--sort-before sort before merging/flattening (default: False)
--sort-by-definition sort by definition (default: False)
--sort-by-headword sort by headword (default: False)
--sort-ignore-case ignore case when sorting (default: False)
--sort-reverse reverse the sort order (default: False)
examples:
$ penelope -i dict.csv -j csv -f en -t it -p stardict -o output.zip
Convert en->it dictionary dict.csv (in CSV format) into output.zip (in StarDict format)
$ penelope -i dict.csv -j csv -f en -t it -p stardict -o output.zip --merge-definitions
As above, but also merge definitions
$ penelope -i d1,d2,d3 -j csv -f en -t it -p csv -o output.csv --sort-after --sort-by-headword
Merge CSV dictionaries d1, d2, and d3 into output.csv, sorting by headword
$ penelope -i d1,d2,d3 -j csv -f en -t it -p csv -o output.csv --sort-after --sort-by-headword --sort-ignore-case
As above, but ignore case for sorting
$ penelope -i d1,d2,d3 -j csv -f en -t it -p csv -o output.csv --sort-after --sort-by-headword --sort-reverse
As above, but reverse the order
$ penelope -i dict.zip -j stardict -f en -t it -p csv -o output.csv
Convert en->it dictionary dict.zip (in StarDict format) into output.csv (in CSV format)
$ penelope -i dict.zip -j stardict -f en -t it -p csv -o output.csv --ignore-synonyms
As above, but do not read the .syn synonym file if present
$ penelope -i dict.zip -j stardict -f en -t it -p csv -o output.csv --flatten-synonyms
As above, but flatten synonyms
$ penelope -i dict.zip -j stardict -f en -t it -p bookeen -o output
Convert dict.zip into output.dict.idx and output.dict for Bookeen devices
$ penelope -i dict.zip -j stardict -f en -t it -p kobo -o dicthtml-en-it
Convert dict.zip into dicthtml-en-it.zip for Kobo devices
$ penelope -i dict.csv -j csv -f en -t it -p mobi -o output.mobi --cover-path mycover.png --title "My English->Italian Dictionary"
Convert dict.csv into a MOBI (Kindle) dictionary, using the specified cover image and title
$ penelope -i dict.xml -j xml -f en -t it -p mobi -o output.epub
Convert dict.xml into an EPUB dictionary
$ penelope -i dict.xml -j xml -f en -t it -p mobi -o output.epub --epub-output-definitions
As above, but also output definitions
يمكنك العثور على رموز اللغة ISO 639-1 هنا.
على سبيل المثال، لنفترض أنك تريد استخدام قاموس IT -> EN.
it-en.dict
و it-en.dict.idx
.it-en.dict
و it-en.dict.idx
من جهاز الكمبيوتر الخاص بك إلى دليل Dictionaries/
على جهاز Odyssey الخاص بك. لاحظ أن برنامج قاموس Bookeen سيحدد القاموس الذي سيتم استخدامه من خلال قراءة بيانات التعريف dc:language
الخاصة بكتابك الإلكتروني. تأكد من أن كتبك الإلكترونية تحتوي على البيانات التعريفية المناسبة dc:language
: وإلا فقد لا يتم تحميل القاموس الصحيح.
في وقت كتابة هذه السطور (16-02-2016)، لن تقوم أجهزة Kobo بتحميل القواميس إلا إذا كانت الملفات تحتوي على اسم ملف لقواميس Kobo الرسمية، وهي:
dicthtml.zip
(EN)dicthtml-de.zip
(DE)، dicthtml-de-en.zip
(DE -> EN)، dicthtml-en-de.zip
(EN -> DE)،dicthtml-es.zip
(ES)، dicthtml-es-en.zip
(ES -> EN)، dicthtml-en-es.zip
(EN -> ES)،dicthtml-fr.zip
(FR)، dicthtml-fr-en.zip
(FR -> EN)، dicthtml-en-fr.zip
(EN -> FR)،dicthtml-it.zip
(IT)، dicthtml-it-en.zip
(IT -> EN)، dicthtml-en-it.zip
(EN -> IT)،dicthtml-nl.zip
(هولندا)dicthtml-ja.zip
(JA)، dicthtml-en-ja.zip
(EN -> JA)،dicthtml-pt.zip
(PT)، dicthtml-pt-en.zip
(PT -> EN)، dicthtml-en-pt.zip
(EN -> PT)(راجع موضوع MobileRead هذا)
ومن ثم، إذا كنت ترغب في تثبيت قاموس مخصص تم إنتاجه باستخدام Penelope، فيجب عليك اختيار الكتابة فوق أحد قواميس Kobo الرسمية، مما يفقد فعليًا إمكانية استخدام الأخير.
على سبيل المثال، لنفترض أنك تريد استخدام القاموس البولندي ( dicthtml-pl.zip
)، بينما لا ترغب في استخدام القاموس البرتغالي الرسمي ( dicthtml-pt.zip
).
dicthtml-pl.zip
.dicthtml-pl.zip
من جهاز الكمبيوتر الخاص بك إلى دليل .kobo/dict/
على جهاز Kobo الخاص بك. (لاحظ أن .kobo
هو دليل مخفي: قد تحتاج إلى تمكين إعداد "إظهار الملفات/الدلائل المخفية" في مدير الملفات الخاص بك.)dicthtml-pl.zip
إلى dicthtml-pt.zip
.لاحظ أنه إذا قمت بتحديث البرنامج الثابت لجهاز Kobo الخاص بك، فقد يتم استبدال القواميس المخصصة بالقواميس الرسمية. وبالتالي، احتفظ بنسخة احتياطية من قواميسك المخصصة في مكان آمن، على سبيل المثال جهاز الكمبيوتر الخاص بك أو بطاقة SD.
يمكنك العثور على قائمة بالقواميس المخصصة، معظمها مع Penelope، في موضوع MobileRead هذا.
تم إصدار Penelope بموجب ترخيص MIT منذ الإصدار 2.0.0 (30/06/2014).
تم إصدار الإصدارات السابقة، التي استضافتها Google Code، بموجب ترخيص GNU GPL 3.
format_stardict.py
)جزيل الشكر ل:
dict()
بدلاً من set dict()
؛-l
التبديل إلى MARISA_BUILD
؛& < >
عند الإخراج بتنسيق XML؛.syn
للاختبار.