Penelope adalah alat multi untuk membuat, mengedit, dan mengonversi kamus, terutama untuk perangkat eReader.
Dengan versi saat ini Anda dapat:
bookeen
)Buka konsol dan ketik:
$ [sudo] pip install penelope
Itu saja! Jalankan saja tanpa argumen (atau dengan -h
atau --help
) untuk mendapatkan manualnya:
$ penelope
Prosedur ini akan menginstal lxml
dan marisa-trie
. Anda mungkin perlu menginstal dictzip
(output StarDict) dan kindlegen
(output MOBI) secara terpisah, lihat di bawah.
Dapatkan kode sumber:
kloning repo ini dengan git
:
$ git clone https://github.com/pettarin/penelope.git
atau unduh rilis terbaru dan buka kompresinya di suatu tempat,
atau unduh ZIP master saat ini dan buka kompresinya di suatu tempat.
Buka konsol dan masuk ke direktori penelope
(kloning):
$ cd /path/to/penelope
Itu saja! Jalankan saja tanpa argumen (atau dengan -h
atau --help
) untuk mendapatkan manualnya:
$ python -m penelope
Prosedur ini tidak akan menginstal dependensi apa pun: Anda harus melakukannya secara manual, lihat di bawah.
Python, versi 2.7.x atau 3.4.x (atau lebih tinggi)
untuk menulis kamus StarDict: dictzip
dapat dieksekusi, tersedia di $PATH
Anda atau ditentukan dengan --dictzip-path
:
$ [sudo] apt-get install dictzip
untuk membaca/menulis kamus Kobo: modul Python marisa-trie
:
$ [sudo] pip install marisa-trie
atau executable MARISA yang tersedia di $PATH
Anda atau ditentukan dengan --marisa-bin-path
untuk menulis kamus MOBI Kindle: kindlegen yang dapat dieksekusi, tersedia di $PATH
Anda atau ditentukan dengan --kindlegen-path
untuk membaca/menulis kamus XML: modul 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
Anda dapat menemukan kode bahasa ISO 639-1 di sini.
Misalnya, Anda ingin menggunakan kamus IT -> EN.
it-en.dict
dan it-en.dict.idx
.it-en.dict
dan it-en.dict.idx
dari PC Anda ke direktori Dictionaries/
pada perangkat Odyssey Anda. Perhatikan bahwa perangkat lunak kamus Bookeen akan memilih kamus yang akan digunakan dengan membaca metadata dc:language
eBuku Anda. Pastikan eBuku Anda memiliki metadata dc:language
yang tepat, jika tidak, kamus yang benar mungkin tidak dapat dimuat.
Pada saat penulisan ini (16-02-2016), perangkat Kobo akan memuat kamus hanya jika file tersebut memiliki nama file kamus resmi Kobo, yaitu:
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
(NL)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)(lihat thread MobileRead ini)
Oleh karena itu, jika Anda ingin memasang kamus khusus yang dibuat dengan Penelope, Anda harus memilih untuk menimpa salah satu kamus resmi Kobo, sehingga kehilangan kemungkinan untuk menggunakan kamus resmi Kobo.
Misalnya, Anda ingin menggunakan kamus bahasa Polandia ( dicthtml-pl.zip
), sedangkan Anda tidak tertarik menggunakan kamus resmi bahasa Portugis ( dicthtml-pt.zip
).
dicthtml-pl.zip
.dicthtml-pl.zip
dari PC Anda ke direktori .kobo/dict/
di perangkat Kobo Anda. (Perhatikan bahwa .kobo
adalah direktori tersembunyi: Anda mungkin perlu mengaktifkan pengaturan "tampilkan file/direktori tersembunyi" pada pengelola file Anda.)dicthtml-pl.zip
menjadi dicthtml-pt.zip
.Perhatikan bahwa jika Anda memperbarui firmware Kobo Anda, kamus khusus mungkin akan ditimpa dengan kamus resmi. Oleh karena itu, simpanlah salinan cadangan kamus khusus Anda di tempat yang aman, misalnya PC atau kartu SD.
Anda dapat menemukan daftar kamus khusus, yang sebagian besar dibuat dengan Penelope, di thread MobileRead ini.
Penelope dirilis di bawah Lisensi MIT sejak versi 2.0.0 (30-06-2014).
Versi sebelumnya, yang dihosting oleh Google Code, dirilis di bawah Lisensi GNU GPL 3.
format_stardict.py
)Terima kasih banyak kepada:
dict()
alih-alih set dict()
;-l
beralih ke MARISA_BUILD
;& < >
saat mengeluarkan dalam format XML;.syn
untuk pengujian.