Penelope ist ein Multitool zum Erstellen, Bearbeiten und Konvertieren von Wörterbüchern, insbesondere für eReader-Geräte.
Mit der aktuellen Version können Sie:
bookeen
Ausgabeformat)Öffnen Sie eine Konsole und geben Sie Folgendes ein:
$ [sudo] pip install penelope
Das ist es! Führen Sie einfach ohne Argumente (oder mit -h
oder --help
) aus, um das Handbuch zu erhalten:
$ penelope
Durch dieses Verfahren werden lxml
und marisa-trie
installiert. Möglicherweise müssen Sie dictzip
(StarDict-Ausgabe) und kindlegen
(MOBI-Ausgabe) separat installieren, siehe unten.
Holen Sie sich den Quellcode:
Klonen Sie dieses Repo mit git
:
$ git clone https://github.com/pettarin/penelope.git
oder laden Sie die neueste Version herunter und dekomprimieren Sie sie irgendwo.
oder laden Sie die aktuelle Master-ZIP-Datei herunter und entpacken Sie sie irgendwo.
Öffnen Sie eine Konsole und geben Sie das Verzeichnis penelope
(geklont) ein:
$ cd /path/to/penelope
Das ist es! Führen Sie einfach ohne Argumente (oder mit -h
oder --help
) aus, um das Handbuch zu erhalten:
$ python -m penelope
Durch dieses Verfahren werden keine Abhängigkeiten installiert. Sie müssen dies manuell tun, siehe unten.
Python, Version 2.7.x oder 3.4.x (oder höher)
um StarDict-Wörterbücher zu schreiben: die ausführbare Datei dictzip
, verfügbar in Ihrem $PATH
oder angegeben mit --dictzip-path
:
$ [sudo] apt-get install dictzip
zum Lesen/Schreiben von Kobo-Wörterbüchern: das Python-Modul marisa-trie
:
$ [sudo] pip install marisa-trie
oder ausführbare MARISA-Dateien, die in Ihrem $PATH
verfügbar sind oder mit --marisa-bin-path
angegeben werden
um MOBI Kindle-Wörterbücher zu schreiben: die ausführbare Datei kindlegen, verfügbar in Ihrem $PATH
oder angegeben mit --kindlegen-path
zum Lesen/Schreiben von XML-Wörterbüchern: das Python-Modul 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
Die ISO 639-1-Sprachcodes finden Sie hier.
Angenommen, Sie möchten ein IT -> EN-Wörterbuch verwenden.
it-en.dict
und it-en.dict.idx
.it-en.dict
und it-en.dict.idx
von Ihrem PC in das Dictionaries/
-Verzeichnis auf Ihrem Odyssey-Gerät. Beachten Sie, dass die Bookeen-Wörterbuchsoftware das zu verwendende Wörterbuch auswählt, indem sie die dc:language
Metadaten Ihres eBooks liest. Stellen Sie sicher, dass Ihre E-Books über die richtigen dc:language
Metadaten verfügen, andernfalls wird möglicherweise nicht das richtige Wörterbuch geladen.
Zum Zeitpunkt der Erstellung dieses Artikels (16.02.2016) laden Kobo-Geräte Wörterbücher nur, wenn die Dateien einen Dateinamen eines offiziellen Kobo-Wörterbuchs haben, nämlich:
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)(siehe diesen MobileRead-Thread)
Wenn Sie also ein mit Penelope erstelltes benutzerdefiniertes Wörterbuch installieren möchten, müssen Sie eines der offiziellen Kobo-Wörterbücher überschreiben und damit die Möglichkeit verlieren, letzteres zu verwenden.
Angenommen, Sie möchten ein polnisches Wörterbuch ( dicthtml-pl.zip
) verwenden, möchten aber nicht das offizielle portugiesische Wörterbuch ( dicthtml-pt.zip
) verwenden.
dicthtml-pl.zip
herunter.dicthtml-pl.zip
von Ihrem PC in das Verzeichnis .kobo/dict/
auf Ihrem Kobo-Gerät. (Beachten Sie, dass .kobo
ein verstecktes Verzeichnis ist: Möglicherweise müssen Sie die Einstellung „Versteckte Dateien/Verzeichnisse anzeigen“ Ihres Dateimanagers aktivieren.)dicthtml-pl.zip
in dicthtml-pt.zip
.Beachten Sie, dass die benutzerdefinierten Wörterbücher möglicherweise durch die offiziellen überschrieben werden, wenn Sie die Firmware Ihres Kobo aktualisieren. Bewahren Sie daher eine Sicherungskopie Ihrer benutzerdefinierten Wörterbücher an einem sicheren Ort auf, z. B. auf Ihrem PC oder auf einer SD-Karte.
Eine Liste benutzerdefinierter Wörterbücher, die größtenteils mit Penelope erstellt wurden, finden Sie in diesem MobileRead-Thread.
Penelope wird seit Version 2.0.0 (30.06.2014) unter der MIT-Lizenz veröffentlicht.
Frühere Versionen, die von Google Code gehostet wurden, wurden unter der GNU GPL 3-Lizenz veröffentlicht.
format_stardict.py
).Vielen Dank an:
dict()
anstelle von set dict()
zu verwenden;-l
switch an MARISA_BUILD
zu übergeben;& < >
bei der Ausgabe im XML-Format zu maskieren;.syn
Datei zum Testen.