Add docs
Browse files- docs/Makefile +195 -0
- docs/changes.rst +124 -0
- docs/conf.py +265 -0
- docs/converters.rst +57 -0
- docs/hacking/directory-layout.rst +48 -0
- docs/hacking/directory-layout/bin.rst +19 -0
- docs/hacking/directory-layout/root.rst +19 -0
- docs/hacking/directory-layout/tools.rst +19 -0
- docs/hacking/hack-n-test.rst +29 -0
- docs/hacking/index.rst +13 -0
- docs/hacking/setup-env.rst +37 -0
- docs/hwp5.rst +62 -0
- docs/hwp5proc.rst +252 -0
- docs/index.rst +28 -0
- docs/intro.rst +73 -0
- docs/translated/en/LC_MESSAGES/converters.po +127 -0
- docs/translated/en/LC_MESSAGES/hwp5proc.po +227 -0
- docs/translated/en/LC_MESSAGES/index.po +48 -0
- docs/translated/en/LC_MESSAGES/intro.po +187 -0
- docs/translated/ko/LC_MESSAGES/converters.po +140 -0
- docs/translated/ko/LC_MESSAGES/hwp5proc.po +240 -0
- docs/translated/ko/LC_MESSAGES/index.po +48 -0
- docs/translated/ko/LC_MESSAGES/intro.po +206 -0
docs/Makefile
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Makefile for Sphinx documentation
|
| 2 |
+
#
|
| 3 |
+
|
| 4 |
+
# You can set these variables from the command line.
|
| 5 |
+
SPHINXOPTS =
|
| 6 |
+
SPHINXBUILD = sphinx-build
|
| 7 |
+
PAPER =
|
| 8 |
+
BUILDDIR = ../build/docs
|
| 9 |
+
|
| 10 |
+
# User-friendly check for sphinx-build
|
| 11 |
+
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
| 12 |
+
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
| 13 |
+
endif
|
| 14 |
+
|
| 15 |
+
# Internal variables.
|
| 16 |
+
PAPEROPT_a4 = -D latex_paper_size=a4
|
| 17 |
+
PAPEROPT_letter = -D latex_paper_size=letter
|
| 18 |
+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
| 19 |
+
# the i18n builder cannot share the environment and doctrees with the others
|
| 20 |
+
I18NSPHINXOPTS = -d $(BUILDDIR)/doctrees.i18n $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
| 21 |
+
|
| 22 |
+
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext intl
|
| 23 |
+
|
| 24 |
+
help:
|
| 25 |
+
@echo "Please use \`make <target>' where <target> is one of"
|
| 26 |
+
@echo " html to make standalone HTML files"
|
| 27 |
+
@echo " dirhtml to make HTML files named index.html in directories"
|
| 28 |
+
@echo " singlehtml to make a single large HTML file"
|
| 29 |
+
@echo " pickle to make pickle files"
|
| 30 |
+
@echo " json to make JSON files"
|
| 31 |
+
@echo " htmlhelp to make HTML files and a HTML help project"
|
| 32 |
+
@echo " qthelp to make HTML files and a qthelp project"
|
| 33 |
+
@echo " applehelp to make an Apple Help Book"
|
| 34 |
+
@echo " devhelp to make HTML files and a Devhelp project"
|
| 35 |
+
@echo " epub to make an epub"
|
| 36 |
+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
| 37 |
+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
| 38 |
+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
| 39 |
+
@echo " text to make text files"
|
| 40 |
+
@echo " man to make manual pages"
|
| 41 |
+
@echo " texinfo to make Texinfo files"
|
| 42 |
+
@echo " info to make Texinfo files and run them through makeinfo"
|
| 43 |
+
@echo " gettext to make PO message catalogs"
|
| 44 |
+
@echo " changes to make an overview of all changed/added/deprecated items"
|
| 45 |
+
@echo " xml to make Docutils-native XML files"
|
| 46 |
+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
| 47 |
+
@echo " linkcheck to check all external links for integrity"
|
| 48 |
+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
| 49 |
+
@echo " coverage to run coverage check of the documentation (if enabled)"
|
| 50 |
+
|
| 51 |
+
clean:
|
| 52 |
+
rm -rf $(BUILDDIR)/*
|
| 53 |
+
|
| 54 |
+
html:
|
| 55 |
+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
| 56 |
+
@echo
|
| 57 |
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
| 58 |
+
|
| 59 |
+
dirhtml:
|
| 60 |
+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
| 61 |
+
@echo
|
| 62 |
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
| 63 |
+
|
| 64 |
+
singlehtml:
|
| 65 |
+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
| 66 |
+
@echo
|
| 67 |
+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
| 68 |
+
|
| 69 |
+
pickle:
|
| 70 |
+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
| 71 |
+
@echo
|
| 72 |
+
@echo "Build finished; now you can process the pickle files."
|
| 73 |
+
|
| 74 |
+
json:
|
| 75 |
+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
| 76 |
+
@echo
|
| 77 |
+
@echo "Build finished; now you can process the JSON files."
|
| 78 |
+
|
| 79 |
+
htmlhelp:
|
| 80 |
+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
| 81 |
+
@echo
|
| 82 |
+
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
| 83 |
+
".hhp project file in $(BUILDDIR)/htmlhelp."
|
| 84 |
+
|
| 85 |
+
qthelp:
|
| 86 |
+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
| 87 |
+
@echo
|
| 88 |
+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
| 89 |
+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
| 90 |
+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/METE0R-PROJECT.qhcp"
|
| 91 |
+
@echo "To view the help file:"
|
| 92 |
+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/METE0R-PROJECT.qhc"
|
| 93 |
+
|
| 94 |
+
applehelp:
|
| 95 |
+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
| 96 |
+
@echo
|
| 97 |
+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
| 98 |
+
@echo "N.B. You won't be able to view it unless you put it in" \
|
| 99 |
+
"~/Library/Documentation/Help or install it in your application" \
|
| 100 |
+
"bundle."
|
| 101 |
+
|
| 102 |
+
devhelp:
|
| 103 |
+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
| 104 |
+
@echo
|
| 105 |
+
@echo "Build finished."
|
| 106 |
+
@echo "To view the help file:"
|
| 107 |
+
@echo "# mkdir -p $$HOME/.local/share/devhelp/METE0R-PROJECT"
|
| 108 |
+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/METE0R-PROJECT"
|
| 109 |
+
@echo "# devhelp"
|
| 110 |
+
|
| 111 |
+
epub:
|
| 112 |
+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
| 113 |
+
@echo
|
| 114 |
+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
| 115 |
+
|
| 116 |
+
latex:
|
| 117 |
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
| 118 |
+
@echo
|
| 119 |
+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
| 120 |
+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
| 121 |
+
"(use \`make latexpdf' here to do that automatically)."
|
| 122 |
+
|
| 123 |
+
latexpdf:
|
| 124 |
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
| 125 |
+
@echo "Running LaTeX files through pdflatex..."
|
| 126 |
+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
| 127 |
+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
| 128 |
+
|
| 129 |
+
latexpdfja:
|
| 130 |
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
| 131 |
+
@echo "Running LaTeX files through platex and dvipdfmx..."
|
| 132 |
+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
| 133 |
+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
| 134 |
+
|
| 135 |
+
text:
|
| 136 |
+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
| 137 |
+
@echo
|
| 138 |
+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
| 139 |
+
|
| 140 |
+
man:
|
| 141 |
+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
| 142 |
+
@echo
|
| 143 |
+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
| 144 |
+
|
| 145 |
+
texinfo:
|
| 146 |
+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
| 147 |
+
@echo
|
| 148 |
+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
| 149 |
+
@echo "Run \`make' in that directory to run these through makeinfo" \
|
| 150 |
+
"(use \`make info' here to do that automatically)."
|
| 151 |
+
|
| 152 |
+
info:
|
| 153 |
+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
| 154 |
+
@echo "Running Texinfo files through makeinfo..."
|
| 155 |
+
make -C $(BUILDDIR)/texinfo info
|
| 156 |
+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
| 157 |
+
|
| 158 |
+
gettext:
|
| 159 |
+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) locale/pot
|
| 160 |
+
@echo
|
| 161 |
+
@echo "Build finished. The message catalogs are in locale."
|
| 162 |
+
|
| 163 |
+
intl:
|
| 164 |
+
sphinx-intl update --pot-dir locale/pot --language=en --language=ko
|
| 165 |
+
|
| 166 |
+
changes:
|
| 167 |
+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
| 168 |
+
@echo
|
| 169 |
+
@echo "The overview file is in $(BUILDDIR)/changes."
|
| 170 |
+
|
| 171 |
+
linkcheck:
|
| 172 |
+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
| 173 |
+
@echo
|
| 174 |
+
@echo "Link check complete; look for any errors in the above output " \
|
| 175 |
+
"or in $(BUILDDIR)/linkcheck/output.txt."
|
| 176 |
+
|
| 177 |
+
doctest:
|
| 178 |
+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
| 179 |
+
@echo "Testing of doctests in the sources finished, look at the " \
|
| 180 |
+
"results in $(BUILDDIR)/doctest/output.txt."
|
| 181 |
+
|
| 182 |
+
coverage:
|
| 183 |
+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
| 184 |
+
@echo "Testing of coverage in the sources finished, look at the " \
|
| 185 |
+
"results in $(BUILDDIR)/coverage/python.txt."
|
| 186 |
+
|
| 187 |
+
xml:
|
| 188 |
+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
| 189 |
+
@echo
|
| 190 |
+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
| 191 |
+
|
| 192 |
+
pseudoxml:
|
| 193 |
+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
| 194 |
+
@echo
|
| 195 |
+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
docs/changes.rst
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
CHANGES
|
| 2 |
+
=======
|
| 3 |
+
|
| 4 |
+
0.1b16 (unreleased)
|
| 5 |
+
-------------------
|
| 6 |
+
|
| 7 |
+
- [CVE-2023-0286] Depends on cryptography >= 40.0.1
|
| 8 |
+
- [CVE-2022-2309] Depends on lxml >= 4.9,2
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
0.1b15 (2020-05-30)
|
| 12 |
+
-------------------
|
| 13 |
+
|
| 14 |
+
- Unknown Numbering.Kind value of 6, which is not described in the official
|
| 15 |
+
specification docs, has been added. See #177.
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
0.1b14 (2020-05-17)
|
| 19 |
+
-------------------
|
| 20 |
+
|
| 21 |
+
- Fix xmldump_flat for Python 3.8
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
0.1b13 (2020-05-17)
|
| 25 |
+
-------------------
|
| 26 |
+
|
| 27 |
+
- Replace docopt with argparse.
|
| 28 |
+
- Workaround for BinData decompression (#175, #176)
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
0.1b12 (2019-04-08)
|
| 32 |
+
-------------------
|
| 33 |
+
|
| 34 |
+
- Add Python 3.x support.
|
| 35 |
+
- Add an optional dependency on colorlog for colorful logging
|
| 36 |
+
- Remove dependency on hypua2jamo, resulting no automatic conversion of
|
| 37 |
+
Hanyang PUA to Hangul Jamo
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
0.1b11 (2019-03-21)
|
| 41 |
+
-------------------
|
| 42 |
+
|
| 43 |
+
- Remove dependency on PyCrypto.
|
| 44 |
+
- [CVE-2013-7458], [CVE-2018-6594]
|
| 45 |
+
- Add dependency on cryptography.
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
0.1b10 (2019-03-21)
|
| 49 |
+
-------------------
|
| 50 |
+
|
| 51 |
+
- Drop support for Python 2.5, 2.6.
|
| 52 |
+
- Prefer 'olefile' to 'OleFileIO_PL'.
|
| 53 |
+
- Fix 'Dutmal' control attribute names.
|
| 54 |
+
- hwp5html: represent path names in bytes
|
| 55 |
+
- Declare some dependencies with environment markers: olefile, lxml, pycrypto
|
| 56 |
+
- Update dependency on hypua2jamo >= 0.4.4
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
0.1b9 (2016-02-26)
|
| 60 |
+
------------------
|
| 61 |
+
|
| 62 |
+
- hwp5html: serveral improvements
|
| 63 |
+
- lang-* classes of span elements and associated css font-family
|
| 64 |
+
- horizontal page layouts
|
| 65 |
+
- Single page layout
|
| 66 |
+
- enhance horizontal positioning of TableControl, GShapeObject
|
| 67 |
+
- distdoc: fix sha1offset (by Hodong Kim)
|
| 68 |
+
|
| 69 |
+
0.1b8 (2014-11-03)
|
| 70 |
+
------------------
|
| 71 |
+
|
| 72 |
+
- hwp5view: experimental viewer with webkitgtk+
|
| 73 |
+
- hwp5proc: xml --formats ("flat", "nested")
|
| 74 |
+
- hwp5proc: models --events (experimental)
|
| 75 |
+
- hwp5proc: models --seqno --format (incompatible changes)
|
| 76 |
+
- hwp5proc: find --from-stdin
|
| 77 |
+
- hwp5proc: find --format
|
| 78 |
+
- binmodels: GShapeObjectCaption
|
| 79 |
+
- olestorage: Gsf implementation through python-gi
|
| 80 |
+
- olestorage: use new olefile instead of OleFileIO_PL
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
0.1b7 (2014-01-31)
|
| 84 |
+
------------------
|
| 85 |
+
|
| 86 |
+
- support distribution docs. (based on `Changwoo Ryu's algorithm <https://groups.google.com/forum/#!topic/hwp-foss/d2KL2ypR89Q>`_)
|
| 87 |
+
|
| 88 |
+
0.1b6 (2014-01-20)
|
| 89 |
+
------------------
|
| 90 |
+
|
| 91 |
+
- binmodel: change type of TableCell dimensions to signed integer
|
| 92 |
+
- hwp5odt: fix NCName for style:name (close #140)
|
| 93 |
+
- hwp5proc: fix with-statement in 'xml' command for Python 2.5
|
| 94 |
+
- hwp5proc: mark 'xml' command experimental
|
| 95 |
+
|
| 96 |
+
0.1b5 (2013-10-29)
|
| 97 |
+
------------------
|
| 98 |
+
|
| 99 |
+
- close #134
|
| 100 |
+
- hwp5html generates .xhtml instead of .html
|
| 101 |
+
- hwp5proc: new '--no-xml-decl' option
|
| 102 |
+
- hwp5odt: fix to not use '/' in resulting style names
|
| 103 |
+
- hwp5proc: IdMappings.memoshape only if version > 5.0.1.6
|
| 104 |
+
|
| 105 |
+
0.1b4 (2013-07-03)
|
| 106 |
+
------------------
|
| 107 |
+
|
| 108 |
+
- hwp5proc records: new option '--raw-header'
|
| 109 |
+
- hwp5odt: new '--document' option produces single ODT XML files (``*.fodt``)
|
| 110 |
+
- hwp5odt: new '--styles', '--content' option produces styles/content XML files
|
| 111 |
+
- ODT XSL files restructured
|
| 112 |
+
|
| 113 |
+
0.1b3 (2013-06-18)
|
| 114 |
+
------------------
|
| 115 |
+
|
| 116 |
+
- Fix IdMappings (#125)
|
| 117 |
+
- hwp5proc records: new option '--raw-payload'
|
| 118 |
+
- hwp5proc xml: FlagsType as xsd:hexBinary
|
| 119 |
+
- Various binary/xml models changes
|
| 120 |
+
|
| 121 |
+
0.1b2 (2013-06-08)
|
| 122 |
+
------------------
|
| 123 |
+
|
| 124 |
+
- Add PyPy support
|
docs/conf.py
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
#
|
| 3 |
+
# pyhwp documentation build configuration file, created by
|
| 4 |
+
# sphinx-quickstart on Sat Mar 10 15:30:24 2012.
|
| 5 |
+
#
|
| 6 |
+
# This file is execfile()d with the current directory set to its containing dir.
|
| 7 |
+
#
|
| 8 |
+
# Note that not all possible configuration values are present in this
|
| 9 |
+
# autogenerated file.
|
| 10 |
+
#
|
| 11 |
+
# All configuration values have a default; values that are commented out
|
| 12 |
+
# serve to show the default.
|
| 13 |
+
|
| 14 |
+
import sys, os
|
| 15 |
+
import os.path
|
| 16 |
+
|
| 17 |
+
# If extensions (or modules to document with autodoc) are in another directory,
|
| 18 |
+
# add these directories to sys.path here. If the directory is relative to the
|
| 19 |
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
| 20 |
+
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
|
| 21 |
+
'..', 'src')))
|
| 22 |
+
|
| 23 |
+
# -- General configuration -----------------------------------------------------
|
| 24 |
+
|
| 25 |
+
# If your documentation needs a minimal Sphinx version, state it here.
|
| 26 |
+
#needs_sphinx = '1.0'
|
| 27 |
+
|
| 28 |
+
# Add any Sphinx extension module names here, as strings. They can be extensions
|
| 29 |
+
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
| 30 |
+
extensions = [
|
| 31 |
+
'sphinx.ext.autodoc',
|
| 32 |
+
'sphinx.ext.coverage',
|
| 33 |
+
'sphinxarg.ext',
|
| 34 |
+
]
|
| 35 |
+
|
| 36 |
+
# Add any paths that contain templates here, relative to this directory.
|
| 37 |
+
templates_path = ['templates']
|
| 38 |
+
locale_dirs = ['translated']
|
| 39 |
+
|
| 40 |
+
# The suffix of source filenames.
|
| 41 |
+
source_suffix = '.rst'
|
| 42 |
+
|
| 43 |
+
# The encoding of source files.
|
| 44 |
+
#source_encoding = 'utf-8-sig'
|
| 45 |
+
|
| 46 |
+
# The master toctree document.
|
| 47 |
+
master_doc = 'index'
|
| 48 |
+
|
| 49 |
+
# General information about the project.
|
| 50 |
+
project = u'pyhwp'
|
| 51 |
+
copyright = u'2012, mete0r'
|
| 52 |
+
|
| 53 |
+
# The version info for the project you're documenting, acts as replacement for
|
| 54 |
+
# |version| and |release|, also used in various other places throughout the
|
| 55 |
+
# built documents.
|
| 56 |
+
#
|
| 57 |
+
# The full version, including alpha/beta/rc tags.
|
| 58 |
+
from hwp5 import __version__ as hwp5_release
|
| 59 |
+
release = hwp5_release
|
| 60 |
+
if release.endswith('-dirty'):
|
| 61 |
+
release = release[:-len('-dirty')]
|
| 62 |
+
|
| 63 |
+
# The short X.Y version.
|
| 64 |
+
import re
|
| 65 |
+
version_match = re.match(r'([0-9]+\.[0-9]+).*', release)
|
| 66 |
+
if version_match:
|
| 67 |
+
version = version_match.group(1)
|
| 68 |
+
else:
|
| 69 |
+
version = 'develop'
|
| 70 |
+
|
| 71 |
+
# The language for content autogenerated by Sphinx. Refer to documentation
|
| 72 |
+
# for a list of supported languages.
|
| 73 |
+
#language = None
|
| 74 |
+
|
| 75 |
+
# There are two options for replacing |today|: either, you set today to some
|
| 76 |
+
# non-false value, then it is used:
|
| 77 |
+
#today = ''
|
| 78 |
+
# Else, today_fmt is used as the format for a strftime call.
|
| 79 |
+
#today_fmt = '%B %d, %Y'
|
| 80 |
+
|
| 81 |
+
# List of patterns, relative to source directory, that match files and
|
| 82 |
+
# directories to ignore when looking for source files.
|
| 83 |
+
exclude_patterns = ['.build']
|
| 84 |
+
|
| 85 |
+
# The reST default role (used for this markup: `text`) to use for all documents.
|
| 86 |
+
#default_role = None
|
| 87 |
+
|
| 88 |
+
# If true, '()' will be appended to :func: etc. cross-reference text.
|
| 89 |
+
#add_function_parentheses = True
|
| 90 |
+
|
| 91 |
+
# If true, the current module name will be prepended to all description
|
| 92 |
+
# unit titles (such as .. function::).
|
| 93 |
+
#add_module_names = True
|
| 94 |
+
|
| 95 |
+
# If true, sectionauthor and moduleauthor directives will be shown in the
|
| 96 |
+
# output. They are ignored by default.
|
| 97 |
+
#show_authors = False
|
| 98 |
+
|
| 99 |
+
# The name of the Pygments (syntax highlighting) style to use.
|
| 100 |
+
pygments_style = 'sphinx'
|
| 101 |
+
|
| 102 |
+
# A list of ignored prefixes for module index sorting.
|
| 103 |
+
#modindex_common_prefix = []
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
# -- Options for HTML output ---------------------------------------------------
|
| 107 |
+
|
| 108 |
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
| 109 |
+
# a list of builtin themes.
|
| 110 |
+
html_theme = 'default'
|
| 111 |
+
|
| 112 |
+
# Theme options are theme-specific and customize the look and feel of a theme
|
| 113 |
+
# further. For a list of options available for each theme, see the
|
| 114 |
+
# documentation.
|
| 115 |
+
#html_theme_options = {}
|
| 116 |
+
|
| 117 |
+
# Add any paths that contain custom themes here, relative to this directory.
|
| 118 |
+
#html_theme_path = []
|
| 119 |
+
|
| 120 |
+
# The name for this set of Sphinx documents. If None, it defaults to
|
| 121 |
+
# "<project> v<release> documentation".
|
| 122 |
+
#html_title = None
|
| 123 |
+
|
| 124 |
+
# A shorter title for the navigation bar. Default is the same as html_title.
|
| 125 |
+
#html_short_title = None
|
| 126 |
+
|
| 127 |
+
# The name of an image file (relative to this directory) to place at the top
|
| 128 |
+
# of the sidebar.
|
| 129 |
+
#html_logo = None
|
| 130 |
+
|
| 131 |
+
# The name of an image file (within the static path) to use as favicon of the
|
| 132 |
+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
| 133 |
+
# pixels large.
|
| 134 |
+
#html_favicon = None
|
| 135 |
+
|
| 136 |
+
# Add any paths that contain custom static files (such as style sheets) here,
|
| 137 |
+
# relative to this directory. They are copied after the builtin static files,
|
| 138 |
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
| 139 |
+
html_static_path = ['static']
|
| 140 |
+
|
| 141 |
+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
| 142 |
+
# using the given strftime format.
|
| 143 |
+
#html_last_updated_fmt = '%b %d, %Y'
|
| 144 |
+
|
| 145 |
+
# If true, SmartyPants will be used to convert quotes and dashes to
|
| 146 |
+
# typographically correct entities.
|
| 147 |
+
#html_use_smartypants = True
|
| 148 |
+
|
| 149 |
+
# Custom sidebar templates, maps document names to template names.
|
| 150 |
+
#html_sidebars = {}
|
| 151 |
+
|
| 152 |
+
# Additional templates that should be rendered to pages, maps page names to
|
| 153 |
+
# template names.
|
| 154 |
+
#html_additional_pages = {}
|
| 155 |
+
|
| 156 |
+
# If false, no module index is generated.
|
| 157 |
+
#html_domain_indices = True
|
| 158 |
+
|
| 159 |
+
# If false, no index is generated.
|
| 160 |
+
#html_use_index = True
|
| 161 |
+
|
| 162 |
+
# If true, the index is split into individual pages for each letter.
|
| 163 |
+
#html_split_index = False
|
| 164 |
+
|
| 165 |
+
# If true, links to the reST sources are added to the pages.
|
| 166 |
+
#html_show_sourcelink = True
|
| 167 |
+
|
| 168 |
+
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
| 169 |
+
#html_show_sphinx = True
|
| 170 |
+
|
| 171 |
+
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
| 172 |
+
#html_show_copyright = True
|
| 173 |
+
|
| 174 |
+
# If true, an OpenSearch description file will be output, and all pages will
|
| 175 |
+
# contain a <link> tag referring to it. The value of this option must be the
|
| 176 |
+
# base URL from which the finished HTML is served.
|
| 177 |
+
#html_use_opensearch = ''
|
| 178 |
+
|
| 179 |
+
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
| 180 |
+
#html_file_suffix = None
|
| 181 |
+
|
| 182 |
+
# Output file base name for HTML help builder.
|
| 183 |
+
htmlhelp_basename = 'pyhwpdoc'
|
| 184 |
+
|
| 185 |
+
|
| 186 |
+
# -- Options for LaTeX output --------------------------------------------------
|
| 187 |
+
|
| 188 |
+
latex_elements = {
|
| 189 |
+
# The paper size ('letterpaper' or 'a4paper').
|
| 190 |
+
'papersize': 'a4paper',
|
| 191 |
+
|
| 192 |
+
# The font size ('10pt', '11pt' or '12pt').
|
| 193 |
+
#'pointsize': '10pt',
|
| 194 |
+
|
| 195 |
+
# Additional stuff for the LaTeX preamble.
|
| 196 |
+
'preamble': '\\usepackage{kotex}',
|
| 197 |
+
|
| 198 |
+
# Workaround for latex babel language; there are no korean support currently
|
| 199 |
+
# Just force it to english documentclass
|
| 200 |
+
# see https://bitbucket.org/birkenfeld/sphinx/src/
|
| 201 |
+
# 87eb42dafb5c172e085893d57224fa58e3df80e8/sphinx/writers/latex.py
|
| 202 |
+
# ?at=default#cl-238
|
| 203 |
+
'extraclassoptions': 'english',
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
# Grouping the document tree into LaTeX files. List of tuples
|
| 207 |
+
# (source start file, target name, title, author, documentclass [howto/manual]).
|
| 208 |
+
latex_documents = [
|
| 209 |
+
('index', 'pyhwp.tex', u'pyhwp Documentation',
|
| 210 |
+
u'mete0r', 'manual'),
|
| 211 |
+
]
|
| 212 |
+
|
| 213 |
+
# The name of an image file (relative to this directory) to place at the top of
|
| 214 |
+
# the title page.
|
| 215 |
+
#latex_logo = None
|
| 216 |
+
|
| 217 |
+
# For "manual" documents, if this is true, then toplevel headings are parts,
|
| 218 |
+
# not chapters.
|
| 219 |
+
#latex_use_parts = False
|
| 220 |
+
|
| 221 |
+
# If true, show page references after internal links.
|
| 222 |
+
#latex_show_pagerefs = False
|
| 223 |
+
|
| 224 |
+
# If true, show URL addresses after external links.
|
| 225 |
+
#latex_show_urls = False
|
| 226 |
+
|
| 227 |
+
# Documents to append as an appendix to all manuals.
|
| 228 |
+
#latex_appendices = []
|
| 229 |
+
|
| 230 |
+
# If false, no module index is generated.
|
| 231 |
+
#latex_domain_indices = True
|
| 232 |
+
|
| 233 |
+
|
| 234 |
+
# -- Options for manual page output --------------------------------------------
|
| 235 |
+
|
| 236 |
+
# One entry per manual page. List of tuples
|
| 237 |
+
# (source start file, name, description, authors, manual section).
|
| 238 |
+
man_pages = [
|
| 239 |
+
('index', 'pyhwp', u'pyhwp Documentation',
|
| 240 |
+
[u'mete0r'], 1)
|
| 241 |
+
]
|
| 242 |
+
|
| 243 |
+
# If true, show URL addresses after external links.
|
| 244 |
+
#man_show_urls = False
|
| 245 |
+
|
| 246 |
+
|
| 247 |
+
# -- Options for Texinfo output ------------------------------------------------
|
| 248 |
+
|
| 249 |
+
# Grouping the document tree into Texinfo files. List of tuples
|
| 250 |
+
# (source start file, target name, title, author,
|
| 251 |
+
# dir menu entry, description, category)
|
| 252 |
+
texinfo_documents = [
|
| 253 |
+
('index', 'pyhwp', u'pyhwp Documentation',
|
| 254 |
+
u'mete0r', 'pyhwp', 'One line description of project.',
|
| 255 |
+
'Miscellaneous'),
|
| 256 |
+
]
|
| 257 |
+
|
| 258 |
+
# Documents to append as an appendix to all manuals.
|
| 259 |
+
#texinfo_appendices = []
|
| 260 |
+
|
| 261 |
+
# If false, no module index is generated.
|
| 262 |
+
#texinfo_domain_indices = True
|
| 263 |
+
|
| 264 |
+
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
| 265 |
+
#texinfo_show_urls = 'footnote'
|
docs/converters.rst
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Converters (*Experimental*)
|
| 2 |
+
===========================
|
| 3 |
+
|
| 4 |
+
Convert HWPv5 documents into other document formats.
|
| 5 |
+
|
| 6 |
+
Requirements
|
| 7 |
+
------------
|
| 8 |
+
The conversions are performed with `XSLT <http://www.w3.org/TR/xslt>`_
|
| 9 |
+
internally and verified with `Relax NG <http://relaxng.org/>`_ if possible.
|
| 10 |
+
|
| 11 |
+
For these processing, the converters requires
|
| 12 |
+
`lxml <http://pypi.python.org/pypi/lxml>`_ (`homepage <http://lxml.de>`_) or
|
| 13 |
+
`libxml2 <http://www.xmlsoft.org/>`_'s
|
| 14 |
+
`xsltproc <http://xmlsoft.org/XSLT/xsltproc2.html>`_ /
|
| 15 |
+
`xmllint <http://infohost.nmt.edu/tcc/help/xml/lint.html>`_ programs.
|
| 16 |
+
|
| 17 |
+
For lxml installation::
|
| 18 |
+
|
| 19 |
+
pip install --user lxml # install to user directory
|
| 20 |
+
pip install lxml # install with virtualenv
|
| 21 |
+
|
| 22 |
+
or see `Installing lxml <http://lxml.de/installation.html>`_.
|
| 23 |
+
|
| 24 |
+
(Currently conversions with lxml 2.3.5 is tested and verified to be working.
|
| 25 |
+
lxml versions below that may work too, but those are not tested.)
|
| 26 |
+
|
| 27 |
+
For ``xsltproc`` / ``xmllint`` installation::
|
| 28 |
+
|
| 29 |
+
sudo apt-get install xsltproc libxml2-utils # Debian/Ubuntu
|
| 30 |
+
|
| 31 |
+
Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT``
|
| 32 |
+
specifies the paths of the each programs. (If not set, ``xsltproc`` and/or
|
| 33 |
+
``xmllint`` should be in the one of the directories specified in ``PATH``.)
|
| 34 |
+
|
| 35 |
+
``hwp5odt``: ODT conversion
|
| 36 |
+
---------------------------
|
| 37 |
+
|
| 38 |
+
.. argparse::
|
| 39 |
+
:module: hwp5.hwp5odt
|
| 40 |
+
:func: main_argparser
|
| 41 |
+
:prog: hwp5odt
|
| 42 |
+
|
| 43 |
+
``hwp5html``: HTML conversion
|
| 44 |
+
-----------------------------
|
| 45 |
+
|
| 46 |
+
.. argparse::
|
| 47 |
+
:module: hwp5.hwp5html
|
| 48 |
+
:func: main_argparser
|
| 49 |
+
:prog: hwp5html
|
| 50 |
+
|
| 51 |
+
``hwp5txt``: text conversion
|
| 52 |
+
----------------------------
|
| 53 |
+
|
| 54 |
+
.. argparse::
|
| 55 |
+
:module: hwp5.hwp5txt
|
| 56 |
+
:func: main_argparser
|
| 57 |
+
:prog: hwp5txt
|
docs/hacking/directory-layout.rst
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
================
|
| 2 |
+
Directory Layout
|
| 3 |
+
================
|
| 4 |
+
|
| 5 |
+
::
|
| 6 |
+
|
| 7 |
+
pyhwp Project Root
|
| 8 |
+
|
|
| 9 |
+
+-- pyhwp/ Source packages root
|
| 10 |
+
| |
|
| 11 |
+
| +-- hwp5/ Source package
|
| 12 |
+
|
|
| 13 |
+
+-- pyhwp-tests/ Test packages root
|
| 14 |
+
| |
|
| 15 |
+
| +-- hwp5_tests/ Test package
|
| 16 |
+
|
|
| 17 |
+
+-- docs/ Documentations, i.e. this document!
|
| 18 |
+
|
|
| 19 |
+
+-- bin/ hwp5proc, hwp5odt, build/testing scripts, etc.,
|
| 20 |
+
|
|
| 21 |
+
+-- etc/ development configuration files
|
| 22 |
+
|
|
| 23 |
+
+-- misc/ development configuration templates / helper scripts
|
| 24 |
+
|
|
| 25 |
+
+-- tools/ development helper packages
|
| 26 |
+
|
|
| 27 |
+
.
|
| 28 |
+
. (various directories)
|
| 29 |
+
.
|
| 30 |
+
|
| 31 |
+
After the initial :ref:`invocation of buildout <invoke-buildout>` completes
|
| 32 |
+
successfully, your directory will have a few more new generated directories,
|
| 33 |
+
e.g. :file:`bin/`, :file:`develop-eggs/`. These are the standard buildout
|
| 34 |
+
directories, which we will not cover the every details of them here. For general
|
| 35 |
+
information, see `Directory Structure of a Buildout
|
| 36 |
+
<http://www.buildout.org/docs/dirstruct.html>`_.
|
| 37 |
+
|
| 38 |
+
Followings are ``pyhwp`` specific informations:
|
| 39 |
+
|
| 40 |
+
.. include:: directory-layout/root.rst
|
| 41 |
+
|
| 42 |
+
.. include:: directory-layout/bin.rst
|
| 43 |
+
|
| 44 |
+
.. include:: directory-layout/pyhwp.rst
|
| 45 |
+
|
| 46 |
+
.. include:: directory-layout/pyhwp-tests.rst
|
| 47 |
+
|
| 48 |
+
.. include:: directory-layout/tools.rst
|
docs/hacking/directory-layout/bin.rst
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
``bin/`` - Buildout generated scripts
|
| 2 |
+
-------------------------------------
|
| 3 |
+
|
| 4 |
+
This directory will be populated with scripts generated from the ``pyhwp``
|
| 5 |
+
package and the various development helper packages/scripts.
|
| 6 |
+
|
| 7 |
+
``pyhwp`` generate following scripts:
|
| 8 |
+
|
| 9 |
+
:program:`hwp5proc`
|
| 10 |
+
HWP format version 5 files processor. See :doc:`../hwp5proc`.
|
| 11 |
+
:program:`hwp5odt`, :program:`hwp5txt`, :program:`hwp5html`
|
| 12 |
+
Experimental converters. See :doc:`../converters`.
|
| 13 |
+
|
| 14 |
+
Development helper scripts (incomplete):
|
| 15 |
+
|
| 16 |
+
:program:`buildout`
|
| 17 |
+
(Re)generate the development environment.
|
| 18 |
+
:program:`test-core`
|
| 19 |
+
Run a quick unit test.
|
docs/hacking/directory-layout/root.rst
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
``/`` - project root directory
|
| 2 |
+
------------------------------
|
| 3 |
+
|
| 4 |
+
The project root directory contains project configuration files.
|
| 5 |
+
|
| 6 |
+
:file:`buildout.cfg`
|
| 7 |
+
`buildout <http://www.buildout.org>`_ configuration file.
|
| 8 |
+
|
| 9 |
+
:file:`setup.py`, :file:`setup.cfg`
|
| 10 |
+
``pyhwp`` setup files.
|
| 11 |
+
|
| 12 |
+
:file:`tox.ini`
|
| 13 |
+
`tox <http://tox.testrun.org>`_ configuration file. This file will be
|
| 14 |
+
automatically generated from :file:`tox.ini.in` by :program:`bin/buildout`.
|
| 15 |
+
See ``[tox]`` parts in :file:`buildout.cfg`.
|
| 16 |
+
|
| 17 |
+
:file:`tox.ini.in`
|
| 18 |
+
tox_ configuration template file. If you want to modify tox_ configuration,
|
| 19 |
+
edit this file and run :program:`bin/buildout` again.
|
docs/hacking/directory-layout/tools.rst
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
``tools/`` - Development helper packages
|
| 2 |
+
----------------------------------------
|
| 3 |
+
|
| 4 |
+
``discover.python/``
|
| 5 |
+
``discover.lxml/``
|
| 6 |
+
``discover.jre/``
|
| 7 |
+
``discover.lo/``
|
| 8 |
+
``install.jython/``
|
| 9 |
+
|
| 10 |
+
Discover multiple python versions, lxml, JRE, Libreoffice to use in the
|
| 11 |
+
developement environment. Provides zc.buildout recipes.
|
| 12 |
+
|
| 13 |
+
``xsltest/``
|
| 14 |
+
|
| 15 |
+
an XSLT test runner.
|
| 16 |
+
|
| 17 |
+
``oxt.tool/``
|
| 18 |
+
|
| 19 |
+
Build and test .oxt packages with the LibreOffice.
|
docs/hacking/hack-n-test.rst
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
===========
|
| 2 |
+
Hack & Test
|
| 3 |
+
===========
|
| 4 |
+
|
| 5 |
+
If you modify some modules in ``hwp5`` package in the ``pyhwp/`` directory, you
|
| 6 |
+
can test the modification with the ``hwp5proc`` script in the ``bin/``
|
| 7 |
+
directory.
|
| 8 |
+
|
| 9 |
+
You can test the ``hwp5`` package by executing ``bin/test-core``, but it's just
|
| 10 |
+
a quick test and not a complete test suite. If you want to run a full-blown
|
| 11 |
+
test suite, run ``tox``, which tries to test ``pyhwp`` in various
|
| 12 |
+
`virtualenv <http://pypi.python.org/pypi/virtualenv>`_-isolated python
|
| 13 |
+
platforms, including Python 2.5, 2.6, 2.7, Jython 2.5 and PyPy.
|
| 14 |
+
|
| 15 |
+
::
|
| 16 |
+
|
| 17 |
+
$ bin/buildout
|
| 18 |
+
|
| 19 |
+
(...)
|
| 20 |
+
|
| 21 |
+
$ vim pyhwp/hwp5/proc/__init__.py
|
| 22 |
+
|
| 23 |
+
(HACK HACK HACK)
|
| 24 |
+
|
| 25 |
+
$ bin/test-core
|
| 26 |
+
|
| 27 |
+
$ bin/hwp5proc ...
|
| 28 |
+
|
| 29 |
+
$ bin/tox
|
docs/hacking/index.rst
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Hacking Guide
|
| 2 |
+
=============
|
| 3 |
+
|
| 4 |
+
Standard procedures to hacking on ``pyhwp``.
|
| 5 |
+
|
| 6 |
+
Contents:
|
| 7 |
+
|
| 8 |
+
.. toctree::
|
| 9 |
+
:maxdepth: 2
|
| 10 |
+
|
| 11 |
+
setup-env
|
| 12 |
+
directory-layout
|
| 13 |
+
hack-n-test
|
docs/hacking/setup-env.rst
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
=============================
|
| 2 |
+
Setup development environment
|
| 3 |
+
=============================
|
| 4 |
+
|
| 5 |
+
1. Install prerequisites
|
| 6 |
+
------------------------
|
| 7 |
+
|
| 8 |
+
* CPython 2.7
|
| 9 |
+
* `virtualenv`
|
| 10 |
+
* GNU `Make`
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
2. Clone the source repository
|
| 14 |
+
------------------------------
|
| 15 |
+
|
| 16 |
+
::
|
| 17 |
+
|
| 18 |
+
$ git clone https://github.com/mete0r/pyhwp.git
|
| 19 |
+
|
| 20 |
+
3. Initialize the environment
|
| 21 |
+
------------------------------
|
| 22 |
+
|
| 23 |
+
Bootstrap development environment::
|
| 24 |
+
|
| 25 |
+
$ make bootstrap
|
| 26 |
+
$ . bin/activate
|
| 27 |
+
|
| 28 |
+
4. Check basic stuffs
|
| 29 |
+
---------------------
|
| 30 |
+
|
| 31 |
+
Run `hwp5proc`::
|
| 32 |
+
|
| 33 |
+
$ hwp5proc --help
|
| 34 |
+
|
| 35 |
+
To run tests::
|
| 36 |
+
|
| 37 |
+
$ tox
|
docs/hwp5.rst
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
package hwp5
|
| 2 |
+
************
|
| 3 |
+
|
| 4 |
+
module :mod:`hwp5.filestructure`
|
| 5 |
+
================================
|
| 6 |
+
.. automodule:: hwp5.filestructure
|
| 7 |
+
:members:
|
| 8 |
+
|
| 9 |
+
module :mod:`hwp5.recordstream`
|
| 10 |
+
===============================
|
| 11 |
+
.. automodule:: hwp5.recordstream
|
| 12 |
+
:members:
|
| 13 |
+
|
| 14 |
+
module :mod:`hwp5.binmodel`
|
| 15 |
+
===========================
|
| 16 |
+
.. automodule:: hwp5.binmodel
|
| 17 |
+
:members:
|
| 18 |
+
|
| 19 |
+
module :mod:`hwp5.xmlmodel`
|
| 20 |
+
===========================
|
| 21 |
+
.. automodule:: hwp5.xmlmodel
|
| 22 |
+
:members:
|
| 23 |
+
|
| 24 |
+
module :mod:`hwp5.xmlformat`
|
| 25 |
+
============================
|
| 26 |
+
.. automodule:: hwp5.xmlformat
|
| 27 |
+
:members:
|
| 28 |
+
|
| 29 |
+
module :mod:`hwp5.storage`
|
| 30 |
+
==========================
|
| 31 |
+
.. automodule:: hwp5.storage
|
| 32 |
+
:members:
|
| 33 |
+
|
| 34 |
+
module :mod:`hwp5.dataio`
|
| 35 |
+
=========================
|
| 36 |
+
.. automodule:: hwp5.dataio
|
| 37 |
+
:members:
|
| 38 |
+
|
| 39 |
+
module :mod:`hwp5.tagids`
|
| 40 |
+
=========================
|
| 41 |
+
.. automodule:: hwp5.tagids
|
| 42 |
+
:members:
|
| 43 |
+
|
| 44 |
+
module :mod:`hwp5.plat`
|
| 45 |
+
===========================
|
| 46 |
+
.. automodule:: hwp5.plat
|
| 47 |
+
:members:
|
| 48 |
+
|
| 49 |
+
module :mod:`hwp5.importhelper`
|
| 50 |
+
===============================
|
| 51 |
+
.. automodule:: hwp5.importhelper
|
| 52 |
+
:members:
|
| 53 |
+
|
| 54 |
+
module :mod:`hwp5.treeop`
|
| 55 |
+
=========================
|
| 56 |
+
.. automodule:: hwp5.treeop
|
| 57 |
+
:members:
|
| 58 |
+
|
| 59 |
+
module :mod:`hwp5.utils`
|
| 60 |
+
=========================
|
| 61 |
+
.. automodule:: hwp5.utils
|
| 62 |
+
:members:
|
docs/hwp5proc.rst
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
``hwp5proc``: HWPv5 processor
|
| 2 |
+
=============================
|
| 3 |
+
|
| 4 |
+
.. argparse::
|
| 5 |
+
:module: hwp5.hwp5proc
|
| 6 |
+
:func: main_argparser
|
| 7 |
+
:prog: hwp5proc
|
| 8 |
+
:nosubcommands:
|
| 9 |
+
|
| 10 |
+
Subcommands
|
| 11 |
+
===========
|
| 12 |
+
|
| 13 |
+
version
|
| 14 |
+
-------
|
| 15 |
+
|
| 16 |
+
Print the file format version of .hwp files.
|
| 17 |
+
|
| 18 |
+
.. argparse::
|
| 19 |
+
:module: hwp5.hwp5proc
|
| 20 |
+
:func: main_argparser
|
| 21 |
+
:prog: hwp5proc
|
| 22 |
+
:path: version
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
header
|
| 26 |
+
------
|
| 27 |
+
|
| 28 |
+
Print file headers of .hwp files.
|
| 29 |
+
|
| 30 |
+
.. argparse::
|
| 31 |
+
:module: hwp5.hwp5proc
|
| 32 |
+
:func: main_argparser
|
| 33 |
+
:prog: hwp5proc
|
| 34 |
+
:path: header
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
summaryinfo
|
| 38 |
+
-----------
|
| 39 |
+
|
| 40 |
+
Print summary informations of .hwp files.
|
| 41 |
+
|
| 42 |
+
.. argparse::
|
| 43 |
+
:module: hwp5.hwp5proc
|
| 44 |
+
:func: main_argparser
|
| 45 |
+
:prog: hwp5proc
|
| 46 |
+
:path: summaryinfo
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
ls
|
| 50 |
+
--
|
| 51 |
+
List streams in .hwp files.
|
| 52 |
+
|
| 53 |
+
.. argparse::
|
| 54 |
+
:module: hwp5.hwp5proc
|
| 55 |
+
:func: main_argparser
|
| 56 |
+
:prog: hwp5proc
|
| 57 |
+
:path: ls
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
cat
|
| 61 |
+
---
|
| 62 |
+
|
| 63 |
+
Extract out internal streams of .hwp files
|
| 64 |
+
|
| 65 |
+
.. argparse::
|
| 66 |
+
:module: hwp5.hwp5proc
|
| 67 |
+
:func: main_argparser
|
| 68 |
+
:prog: hwp5proc
|
| 69 |
+
:path: cat
|
| 70 |
+
|
| 71 |
+
Example::
|
| 72 |
+
|
| 73 |
+
$ hwp5proc cat samples/sample-5017.hwp BinData/BIN0002.jpg | file -
|
| 74 |
+
|
| 75 |
+
$ hwp5proc cat samples/sample-5017.hwp BinData/BIN0002.jpg > BIN0002.jpg
|
| 76 |
+
|
| 77 |
+
$ hwp5proc cat samples/sample-5017.hwp PrvText | iconv -f utf-16le -t utf-8
|
| 78 |
+
|
| 79 |
+
$ hwp5proc cat --vstreams samples/sample-5017.hwp PrvText.utf8
|
| 80 |
+
|
| 81 |
+
$ hwp5proc cat --vstreams samples/sample-5017.hwp FileHeader.txt
|
| 82 |
+
|
| 83 |
+
ccl: 0
|
| 84 |
+
cert_drm: 0
|
| 85 |
+
cert_encrypted: 0
|
| 86 |
+
cert_signature_extra: 0
|
| 87 |
+
cert_signed: 0
|
| 88 |
+
compressed: 1
|
| 89 |
+
distributable: 0
|
| 90 |
+
drm: 0
|
| 91 |
+
history: 0
|
| 92 |
+
password: 0
|
| 93 |
+
script: 0
|
| 94 |
+
signature: HWP Document File
|
| 95 |
+
version: 5.0.1.7
|
| 96 |
+
xmltemplate_storage: 0
|
| 97 |
+
|
| 98 |
+
unpack
|
| 99 |
+
------
|
| 100 |
+
|
| 101 |
+
Extract out internal streams of .hwp files into a directory.
|
| 102 |
+
|
| 103 |
+
.. argparse::
|
| 104 |
+
:module: hwp5.hwp5proc
|
| 105 |
+
:func: main_argparser
|
| 106 |
+
:prog: hwp5proc
|
| 107 |
+
:path: unpack
|
| 108 |
+
|
| 109 |
+
Example::
|
| 110 |
+
|
| 111 |
+
$ hwp5proc unpack samples/sample-5017.hwp
|
| 112 |
+
$ ls sample-5017
|
| 113 |
+
|
| 114 |
+
Example::
|
| 115 |
+
|
| 116 |
+
$ hwp5proc unpack --vstreams samples/sample-5017.hwp
|
| 117 |
+
$ cat sample-5017/PrvText.utf8
|
| 118 |
+
|
| 119 |
+
records
|
| 120 |
+
-------
|
| 121 |
+
|
| 122 |
+
Print the record structure of .hwp file record streams.
|
| 123 |
+
|
| 124 |
+
.. argparse::
|
| 125 |
+
:module: hwp5.hwp5proc
|
| 126 |
+
:func: main_argparser
|
| 127 |
+
:prog: hwp5proc
|
| 128 |
+
:path: records
|
| 129 |
+
|
| 130 |
+
Example::
|
| 131 |
+
|
| 132 |
+
$ hwp5proc records samples/sample-5017.hwp DocInfo
|
| 133 |
+
|
| 134 |
+
Example::
|
| 135 |
+
|
| 136 |
+
$ hwp5proc records samples/sample-5017.hwp DocInfo --range=0-2
|
| 137 |
+
|
| 138 |
+
If neither <hwp5file> nor <record-stream> is specified, the record stream is
|
| 139 |
+
read from the standard input with an assumption that the input is in the format
|
| 140 |
+
version specified by -V option.
|
| 141 |
+
|
| 142 |
+
Example::
|
| 143 |
+
|
| 144 |
+
$ hwp5proc records --raw samples/sample-5017.hwp DocInfo --range=0-2 > tmp.rec
|
| 145 |
+
$ hwp5proc records < tmp.rec
|
| 146 |
+
|
| 147 |
+
models
|
| 148 |
+
-------
|
| 149 |
+
|
| 150 |
+
Print parsed binary models of .hwp file record streams.
|
| 151 |
+
|
| 152 |
+
.. argparse::
|
| 153 |
+
:module: hwp5.hwp5proc
|
| 154 |
+
:func: main_argparser
|
| 155 |
+
:prog: hwp5proc
|
| 156 |
+
:path: models
|
| 157 |
+
|
| 158 |
+
Example::
|
| 159 |
+
|
| 160 |
+
$ hwp5proc models samples/sample-5017.hwp DocInfo
|
| 161 |
+
$ hwp5proc models samples/sample-5017.hwp BodyText/Section0
|
| 162 |
+
|
| 163 |
+
$ hwp5proc models samples/sample-5017.hwp docinfo
|
| 164 |
+
$ hwp5proc models samples/sample-5017.hwp bodytext/0
|
| 165 |
+
|
| 166 |
+
Example::
|
| 167 |
+
|
| 168 |
+
$ hwp5proc models --simple samples/sample-5017.hwp bodytext/0
|
| 169 |
+
$ hwp5proc models --format='%(level)s %(tagname)s\\n' \\
|
| 170 |
+
samples/sample-5017.hwp bodytext/0
|
| 171 |
+
|
| 172 |
+
Example::
|
| 173 |
+
|
| 174 |
+
$ hwp5proc models --simple --treegroup=1 samples/sample-5017.hwp bodytext/0
|
| 175 |
+
$ hwp5proc models --simple --seqno=4 samples/sample-5017.hwp bodytext/0
|
| 176 |
+
|
| 177 |
+
If neither <hwp5file> nor <record-stream> is specified, the record stream is
|
| 178 |
+
read from the standard input with an assumption that the input is in the format
|
| 179 |
+
version specified by -V option.
|
| 180 |
+
|
| 181 |
+
Example::
|
| 182 |
+
|
| 183 |
+
$ hwp5proc cat samples/sample-5017.hwp BodyText/Section0 > Section0.bin
|
| 184 |
+
$ hwp5proc models -V 5.0.1.7 < Section0.bin
|
| 185 |
+
|
| 186 |
+
find
|
| 187 |
+
----
|
| 188 |
+
|
| 189 |
+
Find record models with specified predicates.
|
| 190 |
+
|
| 191 |
+
.. argparse::
|
| 192 |
+
:module: hwp5.hwp5proc
|
| 193 |
+
:func: main_argparser
|
| 194 |
+
:prog: hwp5proc
|
| 195 |
+
:path: find
|
| 196 |
+
|
| 197 |
+
Example: Find paragraphs::
|
| 198 |
+
|
| 199 |
+
$ hwp5proc find --model=Paragraph samples/*.hwp
|
| 200 |
+
$ hwp5proc find --tag=HWPTAG_PARA_TEXT samples/*.hwp
|
| 201 |
+
$ hwp5proc find --tag=66 samples/*.hwp
|
| 202 |
+
|
| 203 |
+
Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed
|
| 204 |
+
incompletely::
|
| 205 |
+
|
| 206 |
+
$ hwp5proc find --tag=HWPTAG_LIST_HEADER --incomplete --dump samples/*.hwp
|
| 207 |
+
|
| 208 |
+
xml
|
| 209 |
+
---
|
| 210 |
+
|
| 211 |
+
Transform .hwp files into an XML.
|
| 212 |
+
|
| 213 |
+
.. argparse::
|
| 214 |
+
:module: hwp5.hwp5proc
|
| 215 |
+
:func: main_argparser
|
| 216 |
+
:prog: hwp5proc
|
| 217 |
+
:path: xml
|
| 218 |
+
|
| 219 |
+
Example::
|
| 220 |
+
|
| 221 |
+
$ hwp5proc xml samples/sample-5017.hwp > sample-5017.xml
|
| 222 |
+
$ xmllint --format sample-5017.xml
|
| 223 |
+
|
| 224 |
+
With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files in
|
| 225 |
+
the output XML.
|
| 226 |
+
|
| 227 |
+
Example::
|
| 228 |
+
|
| 229 |
+
$ hwp5proc xml --embedbin samples/sample-5017.hwp > sample-5017.xml
|
| 230 |
+
$ xmllint --format sample-5017.xml
|
| 231 |
+
|
| 232 |
+
rawunz
|
| 233 |
+
------
|
| 234 |
+
|
| 235 |
+
Deflate an headerless zlib-compressed stream.
|
| 236 |
+
|
| 237 |
+
.. argparse::
|
| 238 |
+
:module: hwp5.hwp5proc
|
| 239 |
+
:func: main_argparser
|
| 240 |
+
:prog: hwp5proc
|
| 241 |
+
:path: rawunz
|
| 242 |
+
|
| 243 |
+
diststream
|
| 244 |
+
----------
|
| 245 |
+
|
| 246 |
+
Decode a distribute document stream.
|
| 247 |
+
|
| 248 |
+
.. argparse::
|
| 249 |
+
:module: hwp5.hwp5proc
|
| 250 |
+
:func: main_argparser
|
| 251 |
+
:prog: hwp5proc
|
| 252 |
+
:path: diststream
|
docs/index.rst
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.. pyhwp documentation master file, created by
|
| 2 |
+
sphinx-quickstart on Sat Mar 10 15:30:24 2012.
|
| 3 |
+
You can adapt this file completely to your liking, but it should at least
|
| 4 |
+
contain the root `toctree` directive.
|
| 5 |
+
|
| 6 |
+
Welcome to pyhwp's documentation!
|
| 7 |
+
=================================
|
| 8 |
+
|
| 9 |
+
Contents:
|
| 10 |
+
|
| 11 |
+
.. toctree::
|
| 12 |
+
:maxdepth: 2
|
| 13 |
+
|
| 14 |
+
intro
|
| 15 |
+
hwp5proc
|
| 16 |
+
converters
|
| 17 |
+
hacking/index
|
| 18 |
+
changes
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
Indices and tables
|
| 23 |
+
==================
|
| 24 |
+
|
| 25 |
+
* :ref:`genindex`
|
| 26 |
+
* :ref:`modindex`
|
| 27 |
+
* :ref:`search`
|
| 28 |
+
|
docs/intro.rst
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
pyhwp
|
| 2 |
+
=====
|
| 3 |
+
|
| 4 |
+
HWP Document Format v5 parser & processor.
|
| 5 |
+
|
| 6 |
+
Features
|
| 7 |
+
--------
|
| 8 |
+
|
| 9 |
+
- Analyze and extract internal streams out from a HWP Document Format v5 file
|
| 10 |
+
- (*Experimental*) Conversion to OpenDocument format (.odt) or plain text (.txt)
|
| 11 |
+
|
| 12 |
+
Installation
|
| 13 |
+
------------
|
| 14 |
+
|
| 15 |
+
from `pypi <http://pypi.org/project/pyhwp>`_::
|
| 16 |
+
|
| 17 |
+
virtualenv pyhwp
|
| 18 |
+
pyhwp/bin/pip install --pre pyhwp # Install pyhwp into a virtualenv directory
|
| 19 |
+
|
| 20 |
+
Or::
|
| 21 |
+
|
| 22 |
+
pip install --user --pre pyhwp # Install pyhwp into user's home directory
|
| 23 |
+
|
| 24 |
+
Requirements
|
| 25 |
+
------------
|
| 26 |
+
|
| 27 |
+
- Python 2.7, 3.5, 3.6, 3.7 or 3.8
|
| 28 |
+
- `cryptography <https://pypi.org/project/cryptography>`_
|
| 29 |
+
- `lxml <https://pypi.org/project/lxml>`_
|
| 30 |
+
- `olefile <https://pypi.org/project/olefile>`_
|
| 31 |
+
|
| 32 |
+
Documentation & Development
|
| 33 |
+
---------------------------
|
| 34 |
+
|
| 35 |
+
- Documentation: `https://pyhwp.readthedocs.io <https://pyhwp.readthedocs.io>`_ [`한국/조선어 <https://pyhwp.readthedocs.io/ko/latest>`_]
|
| 36 |
+
- Distribution: `https://pypi.org/project/pyhwp/ <https://pypi.org/project/pyhwp/>`_
|
| 37 |
+
- Development: `https://github.com/mete0r/pyhwp <https://github.com/mete0r/pyhwp>`_
|
| 38 |
+
- Issue tracker: `https://github.com/mete0r/pyhwp/issues <https://github.com/mete0r/pyhwp/issues>`_
|
| 39 |
+
- Feedbacks & contributions are welcome!
|
| 40 |
+
|
| 41 |
+
Contributors
|
| 42 |
+
------------
|
| 43 |
+
|
| 44 |
+
Maintainer: `mete0r <https://github.com/mete0r>`_
|
| 45 |
+
|
| 46 |
+
License
|
| 47 |
+
-------
|
| 48 |
+
|
| 49 |
+
Copyright (C) 2010-2023 mete0r <https://github.com/mete0r>
|
| 50 |
+
|
| 51 |
+
.. image:: http://www.gnu.org/graphics/agplv3-155x51.png
|
| 52 |
+
|
| 53 |
+
`GNU Affero General Public License v3.0 <http://www.gnu.org/licenses/agpl-3.0.html>`_
|
| 54 |
+
`(text version) <http://www.gnu.org/licenses/agpl-3.0.txt>`_
|
| 55 |
+
|
| 56 |
+
This program is free software: you can redistribute it and/or modify
|
| 57 |
+
it under the terms of the GNU Affero General Public License as published by
|
| 58 |
+
the Free Software Foundation, either version 3 of the License, or
|
| 59 |
+
(at your option) any later version.
|
| 60 |
+
|
| 61 |
+
This program is distributed in the hope that it will be useful,
|
| 62 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 63 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 64 |
+
GNU Affero General Public License for more details.
|
| 65 |
+
|
| 66 |
+
You should have received a copy of the GNU Affero General Public License
|
| 67 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 68 |
+
|
| 69 |
+
Disclosure
|
| 70 |
+
----------
|
| 71 |
+
|
| 72 |
+
This program has been developed in accordance with a public document named "HWP
|
| 73 |
+
Binary Specification 1.1" published by `Hancom Inc. <http://www.hancom.co.kr>`_
|
docs/translated/en/LC_MESSAGES/converters.po
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2013-10-29 04:47\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: en\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# eafb3e22bc3740cb9f41f4f2df9e7800
|
| 21 |
+
#: ../../converters.rst:2
|
| 22 |
+
msgid "Converters (*Experimental*)"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# 6b4bc6aa159144d4bb3a51e48e5909da
|
| 26 |
+
#: ../../converters.rst:4
|
| 27 |
+
msgid "Convert HWPv5 documents into other document formats."
|
| 28 |
+
msgstr ""
|
| 29 |
+
|
| 30 |
+
# 5d38e3678e074ca2b766734ae5247217
|
| 31 |
+
#: ../../converters.rst:7
|
| 32 |
+
msgid "Requirements"
|
| 33 |
+
msgstr ""
|
| 34 |
+
|
| 35 |
+
# 67f8cb2c410f45559ea36edddc5f3bd6
|
| 36 |
+
#: ../../converters.rst:8
|
| 37 |
+
msgid ""
|
| 38 |
+
"The conversions are performed with `XSLT <http://www.w3.org/TR/xslt>`_ "
|
| 39 |
+
"internally and verified with `Relax NG <http://relaxng.org/>`_ if possible."
|
| 40 |
+
msgstr ""
|
| 41 |
+
|
| 42 |
+
# 45e757bc017d449a95192776960d8b5d
|
| 43 |
+
#: ../../converters.rst:11
|
| 44 |
+
msgid ""
|
| 45 |
+
"For these processing, the converters requires `lxml <http://pypi.python.org/"
|
| 46 |
+
"pypi/lxml>`_ (`homepage <http://lxml.de>`_) or `libxml2 <http://www.xmlsoft."
|
| 47 |
+
"org/>`_'s `xsltproc <http://xmlsoft.org/XSLT/xsltproc2.html>`_ / `xmllint "
|
| 48 |
+
"<http://infohost.nmt.edu/tcc/help/xml/lint.html>`_ programs."
|
| 49 |
+
msgstr ""
|
| 50 |
+
|
| 51 |
+
# 4bbc12c733e64021b1e57753c362e03f
|
| 52 |
+
#: ../../converters.rst:17
|
| 53 |
+
msgid "For lxml installation::"
|
| 54 |
+
msgstr ""
|
| 55 |
+
|
| 56 |
+
# 87c456830c3f40b0b0922d11b45e7f7a
|
| 57 |
+
#: ../../converters.rst:22
|
| 58 |
+
msgid "or see `Installing lxml <http://lxml.de/installation.html>`_."
|
| 59 |
+
msgstr ""
|
| 60 |
+
|
| 61 |
+
# 279b07aa798c48238be60111a825bd7a
|
| 62 |
+
#: ../../converters.rst:24
|
| 63 |
+
msgid ""
|
| 64 |
+
"(Currently conversions with lxml 2.3.5 is tested and verified to be working. "
|
| 65 |
+
"lxml versions below that may work too, but those are not tested.)"
|
| 66 |
+
msgstr ""
|
| 67 |
+
|
| 68 |
+
# 173347f476564817bd87068b394dbd6a
|
| 69 |
+
#: ../../converters.rst:27
|
| 70 |
+
msgid "For ``xsltproc`` / ``xmllint`` installation::"
|
| 71 |
+
msgstr ""
|
| 72 |
+
|
| 73 |
+
# 50fa23c1a25a4330bab200b3d4c5d753
|
| 74 |
+
#: ../../converters.rst:31
|
| 75 |
+
msgid ""
|
| 76 |
+
"Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT`` "
|
| 77 |
+
"specifies the paths of the each programs. (If not set, ``xsltproc`` and/or "
|
| 78 |
+
"``xmllint`` should be in the one of the directories specified in ``PATH``.)"
|
| 79 |
+
msgstr ""
|
| 80 |
+
|
| 81 |
+
# bc95c4ff391e4201a6ed44a1d0d56e5e
|
| 82 |
+
#: ../../converters.rst:36
|
| 83 |
+
msgid "``hwp5odt``: ODT conversion"
|
| 84 |
+
msgstr ""
|
| 85 |
+
|
| 86 |
+
# c4f68ae4a1294abfb389633cdbfbd335
|
| 87 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:1
|
| 88 |
+
msgid "HWPv5 to ODT converter"
|
| 89 |
+
msgstr ""
|
| 90 |
+
|
| 91 |
+
# 3de42de0b2fe408280df0c1236fad4e0
|
| 92 |
+
# 6d65211ee5dc4aae9509848ed33ad453
|
| 93 |
+
# db61f8ccd1b24c80b24fc45cef56d189
|
| 94 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:3
|
| 95 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:3
|
| 96 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:3
|
| 97 |
+
msgid "Usage::"
|
| 98 |
+
msgstr ""
|
| 99 |
+
|
| 100 |
+
# 8e52e64968d9457da967a7f1b5826470
|
| 101 |
+
# b650b764f0bc40d68cf0b3cff9bec9fc
|
| 102 |
+
# ea68666462574d1da0411b50c9aaa33b
|
| 103 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:12
|
| 104 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:9
|
| 105 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:9
|
| 106 |
+
msgid "Options::"
|
| 107 |
+
msgstr ""
|
| 108 |
+
|
| 109 |
+
# 41a0562c7de84f6087262873b7090b36
|
| 110 |
+
#: ../../converters.rst:40
|
| 111 |
+
msgid "``hwp5html``: HTML conversion"
|
| 112 |
+
msgstr ""
|
| 113 |
+
|
| 114 |
+
# 7aa5783ccbe141a4b84397507548a5fb
|
| 115 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring of hwp5.hwp5html:1
|
| 116 |
+
msgid "HWPv5 to HTML converter"
|
| 117 |
+
msgstr ""
|
| 118 |
+
|
| 119 |
+
# c0616df18e5148faa66eeeecbe6920d3
|
| 120 |
+
#: ../../converters.rst:44
|
| 121 |
+
msgid "``hwp5txt``: text conversion"
|
| 122 |
+
msgstr ""
|
| 123 |
+
|
| 124 |
+
# 991947c6361e4eb3b2cf1ed6cfd4c15b
|
| 125 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring of hwp5.hwp5txt:1
|
| 126 |
+
msgid "HWPv5 to text converter"
|
| 127 |
+
msgstr ""
|
docs/translated/en/LC_MESSAGES/hwp5proc.po
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2014-11-03 12:05+0900\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: en\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# 8ae66890d3c34537b90c78f06ac868ef
|
| 21 |
+
#: ../../hwp5proc.rst:2
|
| 22 |
+
msgid "``hwp5proc``: HWPv5 processor"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# bed00d76e0724575a465d3780b90d7fd
|
| 26 |
+
#: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:1
|
| 27 |
+
msgid "Do various operations on HWPv5 files."
|
| 28 |
+
msgstr ""
|
| 29 |
+
|
| 30 |
+
# cf8a544eee554bbcb012724d966509dc
|
| 31 |
+
#: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:3
|
| 32 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring hwp5.proc.version:3
|
| 33 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:3
|
| 34 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:3
|
| 35 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:3
|
| 36 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:3
|
| 37 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:3
|
| 38 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:3
|
| 39 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:3
|
| 40 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:3
|
| 41 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:8
|
| 42 |
+
msgid "Usage::"
|
| 43 |
+
msgstr ""
|
| 44 |
+
|
| 45 |
+
# 3d0680517061451580552a8980218e48
|
| 46 |
+
#: ../../hwp5proc.rst:7
|
| 47 |
+
msgid "command: ``version``"
|
| 48 |
+
msgstr ""
|
| 49 |
+
|
| 50 |
+
# cad75aaf5f6a42ae8910807b46c6a1ef
|
| 51 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:1
|
| 52 |
+
msgid "Print HWP file format version of <hwp5file>."
|
| 53 |
+
msgstr ""
|
| 54 |
+
|
| 55 |
+
# 71d2980c664e45d397af9734a5494c43
|
| 56 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:8
|
| 57 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:8
|
| 58 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:8
|
| 59 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:10
|
| 60 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:10
|
| 61 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:10
|
| 62 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:14
|
| 63 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:11
|
| 64 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:11
|
| 65 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:18
|
| 66 |
+
msgid "Options::"
|
| 67 |
+
msgstr ""
|
| 68 |
+
|
| 69 |
+
# 4c8936ae2aab43778971aa79502a721e
|
| 70 |
+
#: ../../hwp5proc.rst:12
|
| 71 |
+
msgid "command: ``header``"
|
| 72 |
+
msgstr ""
|
| 73 |
+
|
| 74 |
+
# cad75aaf5f6a42ae8910807b46c6a1ef
|
| 75 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring of hwp5.proc.header:1
|
| 76 |
+
msgid "Print HWP file header."
|
| 77 |
+
msgstr ""
|
| 78 |
+
|
| 79 |
+
# 5d77d4ca0f394422b709faccc50cfec9
|
| 80 |
+
#: ../../hwp5proc.rst:17
|
| 81 |
+
msgid "command: ``summaryinfo``"
|
| 82 |
+
msgstr ""
|
| 83 |
+
|
| 84 |
+
# f8011d33ac684c2b8378e18b9e3abedc
|
| 85 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring of
|
| 86 |
+
#: hwp5.proc.summaryinfo:1
|
| 87 |
+
msgid "Print summary information of <hwp5file>."
|
| 88 |
+
msgstr ""
|
| 89 |
+
|
| 90 |
+
# b7b04b5b3eb74f0eb111194985e01b0d
|
| 91 |
+
#: ../../hwp5proc.rst:22
|
| 92 |
+
msgid "command: ``ls``"
|
| 93 |
+
msgstr ""
|
| 94 |
+
|
| 95 |
+
# b44ddef0cd314f458485388b49c636ca
|
| 96 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:1
|
| 97 |
+
msgid "List streams in the <hwp5file>."
|
| 98 |
+
msgstr ""
|
| 99 |
+
|
| 100 |
+
# 43a9eab8ec344cfdb4a33aa848da2a56
|
| 101 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:22
|
| 102 |
+
msgid "Example: List without virtual streams::"
|
| 103 |
+
msgstr ""
|
| 104 |
+
|
| 105 |
+
# ecd90dc2d4094b3c8052a495648ff78f
|
| 106 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:39
|
| 107 |
+
msgid "Example: List virtual streams too::"
|
| 108 |
+
msgstr ""
|
| 109 |
+
|
| 110 |
+
# 192f6f50cb544c27ad3479b914ef7222
|
| 111 |
+
#: ../../hwp5proc.rst:27
|
| 112 |
+
msgid "command: ``cat``"
|
| 113 |
+
msgstr ""
|
| 114 |
+
|
| 115 |
+
# 15eb8617d1d944949717d81ebb9456f1
|
| 116 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:1
|
| 117 |
+
msgid ""
|
| 118 |
+
"Extract out the specified stream in the <hwp5file> to the standard output."
|
| 119 |
+
msgstr ""
|
| 120 |
+
|
| 121 |
+
# dcb71948aa8f47e9b064023f21957a35
|
| 122 |
+
# 71ecad71cb0f4fe9ba80cf55082e5f8a
|
| 123 |
+
# ef37227f045746b8997f0c2eb30319cd
|
| 124 |
+
# 737e619d6b524f69af7005f5ef92ada8
|
| 125 |
+
# 07ef11c376cb4d308967be19edcc2881
|
| 126 |
+
# 3ae85a74884d4ad9b5c6a8e89747e224
|
| 127 |
+
# 6f312dd686584fa4a9dff6f49bbc56b4
|
| 128 |
+
# 35fb8b185a6a48dabea56e256d85bfb4
|
| 129 |
+
# 4fd7a028c7ff4c11b87ba598655a7907
|
| 130 |
+
# 170f201e5a0c4a44abcb0dcea95905d9
|
| 131 |
+
# 8329c429e5674eee8022ec39cceed432
|
| 132 |
+
# cbf2341d2c7c4149bdc3f07da885e0ae
|
| 133 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:22
|
| 134 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:22
|
| 135 |
+
#: hwp5.proc.unpack:27 ../../../pyhwp/hwp5/proc/records.py:docstring
|
| 136 |
+
#: hwp5.proc.records:38 hwp5.proc.records:42 hwp5.proc.records:50
|
| 137 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:34
|
| 138 |
+
#: hwp5.proc.models:42 hwp5.proc.models:48 hwp5.proc.models:57
|
| 139 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:31 hwp5.proc.xml:39
|
| 140 |
+
msgid "Example::"
|
| 141 |
+
msgstr ""
|
| 142 |
+
|
| 143 |
+
# 8113891b61bb4b339c77d078336391f4
|
| 144 |
+
#: ../../hwp5proc.rst:32
|
| 145 |
+
msgid "command: ``unpack``"
|
| 146 |
+
msgstr ""
|
| 147 |
+
|
| 148 |
+
# 8acb7c74c7c748c6b7874f5e33b25dac
|
| 149 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring of hwp5.proc.unpack:1
|
| 150 |
+
msgid "Extract out streams in the specified <hwp5file> to a directory."
|
| 151 |
+
msgstr ""
|
| 152 |
+
|
| 153 |
+
# 414f684ce5a540d0a5cd18ab8b2a5f24
|
| 154 |
+
#: ../../hwp5proc.rst:37
|
| 155 |
+
msgid "command: ``records``"
|
| 156 |
+
msgstr ""
|
| 157 |
+
|
| 158 |
+
# f521cdaf60f4451b88faab8a6235b5a4
|
| 159 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:1
|
| 160 |
+
msgid "Print the record structure."
|
| 161 |
+
msgstr ""
|
| 162 |
+
|
| 163 |
+
# 241ea6ff890d49db8d765402e0c7b6b5
|
| 164 |
+
# 2a49fc3eff194012a083bf9bc0426d93
|
| 165 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:46
|
| 166 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:53
|
| 167 |
+
msgid ""
|
| 168 |
+
"If neither <hwp5file> nor <record-stream> is specified, the record stream is "
|
| 169 |
+
"read from the standard input with an assumption that the input is in the "
|
| 170 |
+
"format version specified by -V option."
|
| 171 |
+
msgstr ""
|
| 172 |
+
|
| 173 |
+
# a7dfeeb3a6464db18f930dc3747acc77
|
| 174 |
+
#: ../../hwp5proc.rst:42
|
| 175 |
+
msgid "command: ``models``"
|
| 176 |
+
msgstr ""
|
| 177 |
+
|
| 178 |
+
# 058aa45f4ec8463080526f955a7ff2fd
|
| 179 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring of hwp5.proc.models:1
|
| 180 |
+
msgid "Print parsed binary models in the specified <record-stream>."
|
| 181 |
+
msgstr ""
|
| 182 |
+
|
| 183 |
+
# 7375606379a84a7688a05b9939f6b47d
|
| 184 |
+
#: ../../hwp5proc.rst:47
|
| 185 |
+
msgid "command: ``find``"
|
| 186 |
+
msgstr ""
|
| 187 |
+
|
| 188 |
+
# 8cdcfec208464d1a9dbafb8d0489fe4b
|
| 189 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:1
|
| 190 |
+
msgid "Find record models with specified predicates."
|
| 191 |
+
msgstr ""
|
| 192 |
+
|
| 193 |
+
# 78f39cd8bb2c46a89417b59931917868
|
| 194 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:29
|
| 195 |
+
msgid "Example: Find paragraphs::"
|
| 196 |
+
msgstr ""
|
| 197 |
+
|
| 198 |
+
# 9e23e53b35ca4aefb5e8c1ffa99d3d26
|
| 199 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:35
|
| 200 |
+
msgid ""
|
| 201 |
+
"Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed "
|
| 202 |
+
"incompletely::"
|
| 203 |
+
msgstr ""
|
| 204 |
+
|
| 205 |
+
# 7778883e65f849bf99fad8697e25308d
|
| 206 |
+
#: ../../hwp5proc.rst:52
|
| 207 |
+
msgid "command: ``xml`` (*Experimental*)"
|
| 208 |
+
msgstr ""
|
| 209 |
+
|
| 210 |
+
# b8814a65f0fe49e78ffc380bfa9ce629
|
| 211 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:1
|
| 212 |
+
msgid "Transform an HWPv5 file into an XML."
|
| 213 |
+
msgstr ""
|
| 214 |
+
|
| 215 |
+
# 412afcfa0f324982801d3cfacaf69b86
|
| 216 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:5
|
| 217 |
+
msgid ""
|
| 218 |
+
"This command is experimental. Its output format is subject to change at any "
|
| 219 |
+
"time."
|
| 220 |
+
msgstr ""
|
| 221 |
+
|
| 222 |
+
# d89687875f5d4135963346b8e2de3a53
|
| 223 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:36
|
| 224 |
+
msgid ""
|
| 225 |
+
"With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files "
|
| 226 |
+
"in the output XML."
|
| 227 |
+
msgstr ""
|
docs/translated/en/LC_MESSAGES/index.po
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2013-10-29 04:47\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: en\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# e67bfb841934418fb9aa8d6803ae6f61
|
| 21 |
+
#: ../../index.rst:7
|
| 22 |
+
msgid "Welcome to pyhwp's documentation!"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# fce4f4f87ace4bd79507f35f9f31fc09
|
| 26 |
+
#: ../../index.rst:9
|
| 27 |
+
msgid "Contents:"
|
| 28 |
+
msgstr ""
|
| 29 |
+
|
| 30 |
+
# c7b2c8ef52e84e3294e7003ff9087ee0
|
| 31 |
+
#: ../../index.rst:23
|
| 32 |
+
msgid "Indices and tables"
|
| 33 |
+
msgstr ""
|
| 34 |
+
|
| 35 |
+
# 8caf5884bb214dacaf993c38e939ca98
|
| 36 |
+
#: ../../index.rst:25
|
| 37 |
+
msgid ":ref:`genindex`"
|
| 38 |
+
msgstr ""
|
| 39 |
+
|
| 40 |
+
# 7d2787c7551040dd8500264c58449cc9
|
| 41 |
+
#: ../../index.rst:26
|
| 42 |
+
msgid ":ref:`modindex`"
|
| 43 |
+
msgstr ""
|
| 44 |
+
|
| 45 |
+
# a3f0175d485c4314b9d7204608644b95
|
| 46 |
+
#: ../../index.rst:27
|
| 47 |
+
msgid ":ref:`search`"
|
| 48 |
+
msgstr ""
|
docs/translated/en/LC_MESSAGES/intro.po
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2014-01-31 08:31+0900\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: en\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# 229d7f6cb6e94b80b3ed276154632ea7
|
| 21 |
+
#: ../../intro.rst:2
|
| 22 |
+
msgid "pyhwp"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# 75c5f1d6ce704cfb987f218ddac8e5c9
|
| 26 |
+
#: ../../intro.rst:4
|
| 27 |
+
msgid "HWP Document Format v5 parser & processor."
|
| 28 |
+
msgstr ""
|
| 29 |
+
|
| 30 |
+
# bdea2ae9aea14b619ceab66b9f6d685c
|
| 31 |
+
#: ../../intro.rst:7
|
| 32 |
+
msgid "Features"
|
| 33 |
+
msgstr ""
|
| 34 |
+
|
| 35 |
+
# 6b057a4ced754848bd138b559238556f
|
| 36 |
+
#: ../../intro.rst:9
|
| 37 |
+
msgid ""
|
| 38 |
+
"Analyze and extract internal streams out from a HWP Document Format v5 file"
|
| 39 |
+
msgstr ""
|
| 40 |
+
|
| 41 |
+
# a68f3e9e704d45dda4278f0efaf64d8a
|
| 42 |
+
#: ../../intro.rst:10
|
| 43 |
+
msgid ""
|
| 44 |
+
"(*Experimental*) Conversion to OpenDocument format (.odt) or plain text (."
|
| 45 |
+
"txt)"
|
| 46 |
+
msgstr ""
|
| 47 |
+
|
| 48 |
+
# ea5a3a8d49cc413eb9ef1fa6f58633ff
|
| 49 |
+
#: ../../intro.rst:13
|
| 50 |
+
msgid "Installation"
|
| 51 |
+
msgstr ""
|
| 52 |
+
|
| 53 |
+
# 0d7548139cea4b37bb2298584800bffc
|
| 54 |
+
#: ../../intro.rst:15
|
| 55 |
+
msgid "from `pypi <http://pypi.python.org/pypi/pyhwp>`_::"
|
| 56 |
+
msgstr ""
|
| 57 |
+
|
| 58 |
+
# 33cd4af4dc6f496bbea8284505308c83
|
| 59 |
+
#: ../../intro.rst:20
|
| 60 |
+
msgid "Or::"
|
| 61 |
+
msgstr ""
|
| 62 |
+
|
| 63 |
+
# da4c2f33f39048e9a72ad43807cd7e37
|
| 64 |
+
#: ../../intro.rst:25
|
| 65 |
+
msgid "Requirements"
|
| 66 |
+
msgstr ""
|
| 67 |
+
|
| 68 |
+
# db6d63914fb2413d92e5701b694e2b22
|
| 69 |
+
#: ../../intro.rst:27
|
| 70 |
+
msgid "CPython 2.5, 2.6, 2.7, Jython 2.5.3 or PyPy 2.0.2"
|
| 71 |
+
msgstr ""
|
| 72 |
+
|
| 73 |
+
# 62d6fe10634a497f8d1ced5bbc8343f7
|
| 74 |
+
#: ../../intro.rst:28
|
| 75 |
+
msgid "`setuptools <http://pypi.python.org/pypi/setuptools>`_"
|
| 76 |
+
msgstr ""
|
| 77 |
+
|
| 78 |
+
# 2cab7c2a85d34ff7adc294b7e48d5575
|
| 79 |
+
#: ../../intro.rst:29
|
| 80 |
+
msgid ""
|
| 81 |
+
"`pycrypto <https://pypi.python.org/pypi/pycrypto>`_ (optional, to decode "
|
| 82 |
+
"distribution docs)"
|
| 83 |
+
msgstr ""
|
| 84 |
+
|
| 85 |
+
# 070821d20ddc4c6cb15fa70632bf6523
|
| 86 |
+
#: ../../intro.rst:32
|
| 87 |
+
msgid "Documentation & Development"
|
| 88 |
+
msgstr ""
|
| 89 |
+
|
| 90 |
+
# f1aaad2952f54b7b9649f8a60173486c
|
| 91 |
+
#: ../../intro.rst:34
|
| 92 |
+
msgid ""
|
| 93 |
+
"Documentation: `http://pythonhosted.org/pyhwp/ <http://pythonhosted.org/"
|
| 94 |
+
"pyhwp/>`_ [`한국/조선어 <http://pythonhosted.org/pyhwp/ko/>`_] [`develop "
|
| 95 |
+
"branch <http://pyhwp.readthedocs.org>`_]"
|
| 96 |
+
msgstr ""
|
| 97 |
+
|
| 98 |
+
# 85285a15a8574742b5e7e57d5ce9c7bb
|
| 99 |
+
#: ../../intro.rst:35
|
| 100 |
+
msgid ""
|
| 101 |
+
"Distribution: `http://pypi.python.org/pypi/pyhwp <http://pypi.python.org/"
|
| 102 |
+
"pypi/pyhwp>`_"
|
| 103 |
+
msgstr ""
|
| 104 |
+
|
| 105 |
+
# e638ce10db3e4e07ae412b24bf350d53
|
| 106 |
+
#: ../../intro.rst:36
|
| 107 |
+
msgid ""
|
| 108 |
+
"Development: `https://github.com/mete0r/pyhwp <https://github.com/mete0r/"
|
| 109 |
+
"pyhwp>`_"
|
| 110 |
+
msgstr ""
|
| 111 |
+
|
| 112 |
+
# f0f93a1ed81747dc9c7a3c631b971e86
|
| 113 |
+
#: ../../intro.rst:37
|
| 114 |
+
msgid ""
|
| 115 |
+
"Issue tracker: `https://github.com/mete0r/pyhwp/issues <https://github.com/"
|
| 116 |
+
"mete0r/pyhwp/issues>`_"
|
| 117 |
+
msgstr ""
|
| 118 |
+
|
| 119 |
+
# 317c633c180a4bda8045e2a5b1e757cf
|
| 120 |
+
#: ../../intro.rst:38
|
| 121 |
+
msgid "Feedbacks & contributions are welcome!"
|
| 122 |
+
msgstr ""
|
| 123 |
+
|
| 124 |
+
# b200736b60a04a8480b72cb24a513db0
|
| 125 |
+
#: ../../intro.rst:41
|
| 126 |
+
msgid "Contributors"
|
| 127 |
+
msgstr ""
|
| 128 |
+
|
| 129 |
+
# 242f97c427344df39bad7d586d5e60c0
|
| 130 |
+
#: ../../intro.rst:43
|
| 131 |
+
msgid "Maintainer: `mete0r <https://github.com/mete0r>`_"
|
| 132 |
+
msgstr ""
|
| 133 |
+
|
| 134 |
+
# 3968cb8206a14f398a248eed814ad9aa
|
| 135 |
+
#: ../../intro.rst:46
|
| 136 |
+
msgid "License"
|
| 137 |
+
msgstr ""
|
| 138 |
+
|
| 139 |
+
# d64dabb371984d2ba250f37e220aa39a
|
| 140 |
+
#: ../../intro.rst:48
|
| 141 |
+
msgid "Copyright (C) 2010-2023 mete0r <https://github.com/mete0r>"
|
| 142 |
+
msgstr ""
|
| 143 |
+
|
| 144 |
+
# 32ed7d69ae9f4bf5bff4e8d68c113f4c
|
| 145 |
+
#: ../../intro.rst:52
|
| 146 |
+
msgid ""
|
| 147 |
+
"`GNU Affero General Public License v3.0 <http://www.gnu.org/licenses/"
|
| 148 |
+
"agpl-3.0.html>`_ `(text version) <http://www.gnu.org/licenses/agpl-3.0.txt>`_"
|
| 149 |
+
msgstr ""
|
| 150 |
+
|
| 151 |
+
# 164415d866774a9e9e7ad1008447cf74
|
| 152 |
+
#: ../../intro.rst:55
|
| 153 |
+
msgid ""
|
| 154 |
+
"This program is free software: you can redistribute it and/or modify it "
|
| 155 |
+
"under the terms of the GNU Affero General Public License as published by the "
|
| 156 |
+
"Free Software Foundation, either version 3 of the License, or (at your "
|
| 157 |
+
"option) any later version."
|
| 158 |
+
msgstr ""
|
| 159 |
+
|
| 160 |
+
# 6cc8ef94865e4196898a83b1b80dd2e5
|
| 161 |
+
#: ../../intro.rst:60
|
| 162 |
+
msgid ""
|
| 163 |
+
"This program is distributed in the hope that it will be useful, but WITHOUT "
|
| 164 |
+
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
|
| 165 |
+
"FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License "
|
| 166 |
+
"for more details."
|
| 167 |
+
msgstr ""
|
| 168 |
+
|
| 169 |
+
# d54697f2f7dc44869d43637b7e5dcb68
|
| 170 |
+
#: ../../intro.rst:65
|
| 171 |
+
msgid ""
|
| 172 |
+
"You should have received a copy of the GNU Affero General Public License "
|
| 173 |
+
"along with this program. If not, see <http://www.gnu.org/licenses/>."
|
| 174 |
+
msgstr ""
|
| 175 |
+
|
| 176 |
+
# c3270c668ef7418e951ef0bc8ac17fdd
|
| 177 |
+
#: ../../intro.rst:69
|
| 178 |
+
msgid "Disclosure"
|
| 179 |
+
msgstr ""
|
| 180 |
+
|
| 181 |
+
# df57575778df4329940de5a8a2999e73
|
| 182 |
+
#: ../../intro.rst:71
|
| 183 |
+
msgid ""
|
| 184 |
+
"This program has been developed in accordance with a public document named "
|
| 185 |
+
"\"HWP Binary Specification 1.1\" published by `Hancom Inc. <http://www."
|
| 186 |
+
"hancom.co.kr>`_"
|
| 187 |
+
msgstr ""
|
docs/translated/ko/LC_MESSAGES/converters.po
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# mete0r <EMAIL@ADDRESS>, 2012.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2013-10-29 04:47\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: mete0r <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: ko\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# eafb3e22bc3740cb9f41f4f2df9e7800
|
| 21 |
+
#: ../../converters.rst:2
|
| 22 |
+
msgid "Converters (*Experimental*)"
|
| 23 |
+
msgstr "변환기들 (*실험적*)"
|
| 24 |
+
|
| 25 |
+
# 6b4bc6aa159144d4bb3a51e48e5909da
|
| 26 |
+
#: ../../converters.rst:4
|
| 27 |
+
msgid "Convert HWPv5 documents into other document formats."
|
| 28 |
+
msgstr "HWPv5 문서를 다른 문서 형식으로 변환한다."
|
| 29 |
+
|
| 30 |
+
# 5d38e3678e074ca2b766734ae5247217
|
| 31 |
+
#: ../../converters.rst:7
|
| 32 |
+
msgid "Requirements"
|
| 33 |
+
msgstr "필요한 것"
|
| 34 |
+
|
| 35 |
+
# 67f8cb2c410f45559ea36edddc5f3bd6
|
| 36 |
+
#: ../../converters.rst:8
|
| 37 |
+
msgid ""
|
| 38 |
+
"The conversions are performed with `XSLT <http://www.w3.org/TR/xslt>`_ "
|
| 39 |
+
"internally and verified with `Relax NG <http://relaxng.org/>`_ if possible."
|
| 40 |
+
msgstr ""
|
| 41 |
+
"이 변환들은 내부적으로 `XSLT <http://www.w3.org/TR/xslt>`_ 를 사용하며, 가능"
|
| 42 |
+
"한 경우 `Relax NG <http://relaxng.org/>`_ 로 결과물이 검증된다."
|
| 43 |
+
|
| 44 |
+
# 45e757bc017d449a95192776960d8b5d
|
| 45 |
+
#: ../../converters.rst:11
|
| 46 |
+
msgid ""
|
| 47 |
+
"For these processing, the converters requires `lxml <http://pypi.python.org/"
|
| 48 |
+
"pypi/lxml>`_ (`homepage <http://lxml.de>`_) or `libxml2 <http://www.xmlsoft."
|
| 49 |
+
"org/>`_'s `xsltproc <http://xmlsoft.org/XSLT/xsltproc2.html>`_ / `xmllint "
|
| 50 |
+
"<http://infohost.nmt.edu/tcc/help/xml/lint.html>`_ programs."
|
| 51 |
+
msgstr ""
|
| 52 |
+
"이를 수행하려면 `lxml <http://pypi.python.org/pypi/lxml>`_ (`homepage "
|
| 53 |
+
"<http://lxml.de>`_)이나 `libxml2 <http://www.xmlsoft.org/>`_ 의 `xsltproc "
|
| 54 |
+
"<http://xmlsoft.org/XSLT/xsltproc2.html>`_ / `xmllint <http://infohost.nmt."
|
| 55 |
+
"edu/tcc/help/xml/lint.html>`_ 프로그램이 필요하다."
|
| 56 |
+
|
| 57 |
+
# 4bbc12c733e64021b1e57753c362e03f
|
| 58 |
+
#: ../../converters.rst:17
|
| 59 |
+
msgid "For lxml installation::"
|
| 60 |
+
msgstr "lxml를 설치하려면::"
|
| 61 |
+
|
| 62 |
+
# 87c456830c3f40b0b0922d11b45e7f7a
|
| 63 |
+
#: ../../converters.rst:22
|
| 64 |
+
msgid "or see `Installing lxml <http://lxml.de/installation.html>`_."
|
| 65 |
+
msgstr ""
|
| 66 |
+
"혹은 `Installing lxml <http://lxml.de/installation.html>`_ 을 참조하라."
|
| 67 |
+
|
| 68 |
+
# 279b07aa798c48238be60111a825bd7a
|
| 69 |
+
#: ../../converters.rst:24
|
| 70 |
+
msgid ""
|
| 71 |
+
"(Currently conversions with lxml 2.3.5 is tested and verified to be working. "
|
| 72 |
+
"lxml versions below that may work too, but those are not tested.)"
|
| 73 |
+
msgstr ""
|
| 74 |
+
"(현재 lxml 2.3.5 을 이용한 변환은 테스트되었고 잘 작동하는 것으로 확인되었"
|
| 75 |
+
"다. 그보다 낮은 버전의 lxml으로도 될 수 있으나, 테스트되지는 않았다.)"
|
| 76 |
+
|
| 77 |
+
# 173347f476564817bd87068b394dbd6a
|
| 78 |
+
#: ../../converters.rst:27
|
| 79 |
+
msgid "For ``xsltproc`` / ``xmllint`` installation::"
|
| 80 |
+
msgstr "``xsltproc`` / ``xmllint`` 를 설치하려면::"
|
| 81 |
+
|
| 82 |
+
# 50fa23c1a25a4330bab200b3d4c5d753
|
| 83 |
+
#: ../../converters.rst:31
|
| 84 |
+
msgid ""
|
| 85 |
+
"Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT`` "
|
| 86 |
+
"specifies the paths of the each programs. (If not set, ``xsltproc`` and/or "
|
| 87 |
+
"``xmllint`` should be in the one of the directories specified in ``PATH``.)"
|
| 88 |
+
msgstr ""
|
| 89 |
+
"선택적으로 설정될 수 있는 ``PYHWP_XSLTPROC`` 과 ``PYHWP_XMLLINT`` 환경변수는 "
|
| 90 |
+
"각 프로그램의 위치를 지정한다. (만약 설정되지 않으면, ``xsltproc`` 과 "
|
| 91 |
+
"``xmllint`` 는 환경변수 ``PATH`` 가 지정하는 디렉토리 중 하나에 존재해야 한"
|
| 92 |
+
"다."
|
| 93 |
+
|
| 94 |
+
# bc95c4ff391e4201a6ed44a1d0d56e5e
|
| 95 |
+
#: ../../converters.rst:36
|
| 96 |
+
msgid "``hwp5odt``: ODT conversion"
|
| 97 |
+
msgstr "``hwp5odt``: ODT 변환"
|
| 98 |
+
|
| 99 |
+
# c4f68ae4a1294abfb389633cdbfbd335
|
| 100 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:1
|
| 101 |
+
msgid "HWPv5 to ODT converter"
|
| 102 |
+
msgstr "HWPv5-to-ODT 변환기"
|
| 103 |
+
|
| 104 |
+
# 3de42de0b2fe408280df0c1236fad4e0
|
| 105 |
+
# 6d65211ee5dc4aae9509848ed33ad453
|
| 106 |
+
# db61f8ccd1b24c80b24fc45cef56d189
|
| 107 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:3
|
| 108 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:3
|
| 109 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:3
|
| 110 |
+
msgid "Usage::"
|
| 111 |
+
msgstr "사용법::"
|
| 112 |
+
|
| 113 |
+
# 8e52e64968d9457da967a7f1b5826470
|
| 114 |
+
# b650b764f0bc40d68cf0b3cff9bec9fc
|
| 115 |
+
# ea68666462574d1da0411b50c9aaa33b
|
| 116 |
+
#: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:12
|
| 117 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:9
|
| 118 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:9
|
| 119 |
+
msgid "Options::"
|
| 120 |
+
msgstr "옵션::"
|
| 121 |
+
|
| 122 |
+
# 41a0562c7de84f6087262873b7090b36
|
| 123 |
+
#: ../../converters.rst:40
|
| 124 |
+
msgid "``hwp5html``: HTML conversion"
|
| 125 |
+
msgstr "``hwp5html``: HTML 변환"
|
| 126 |
+
|
| 127 |
+
# 7aa5783ccbe141a4b84397507548a5fb
|
| 128 |
+
#: ../../../pyhwp/hwp5/hwp5html.py:docstring of hwp5.hwp5html:1
|
| 129 |
+
msgid "HWPv5 to HTML converter"
|
| 130 |
+
msgstr "HWPv5-to-HTML 변환기"
|
| 131 |
+
|
| 132 |
+
# c0616df18e5148faa66eeeecbe6920d3
|
| 133 |
+
#: ../../converters.rst:44
|
| 134 |
+
msgid "``hwp5txt``: text conversion"
|
| 135 |
+
msgstr "``hwp5txt``: 텍스트 변환"
|
| 136 |
+
|
| 137 |
+
# 991947c6361e4eb3b2cf1ed6cfd4c15b
|
| 138 |
+
#: ../../../pyhwp/hwp5/hwp5txt.py:docstring of hwp5.hwp5txt:1
|
| 139 |
+
msgid "HWPv5 to text converter"
|
| 140 |
+
msgstr "HWPv5-to-텍스트 변환기"
|
docs/translated/ko/LC_MESSAGES/hwp5proc.po
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# mete0r <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2014-11-03 12:05+0900\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: mete0r <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: ko\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# 8ae66890d3c34537b90c78f06ac868ef
|
| 21 |
+
#: ../../hwp5proc.rst:2
|
| 22 |
+
msgid "``hwp5proc``: HWPv5 processor"
|
| 23 |
+
msgstr "``hwp5proc``: HWPv5 처리기"
|
| 24 |
+
|
| 25 |
+
# bed00d76e0724575a465d3780b90d7fd
|
| 26 |
+
#: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:1
|
| 27 |
+
msgid "Do various operations on HWPv5 files."
|
| 28 |
+
msgstr "HWPv5 파일에 여러가지 작업을 수행한다."
|
| 29 |
+
|
| 30 |
+
# cf8a544eee554bbcb012724d966509dc
|
| 31 |
+
#: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:3
|
| 32 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring hwp5.proc.version:3
|
| 33 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:3
|
| 34 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:3
|
| 35 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:3
|
| 36 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:3
|
| 37 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:3
|
| 38 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:3
|
| 39 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:3
|
| 40 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:3
|
| 41 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:8
|
| 42 |
+
msgid "Usage::"
|
| 43 |
+
msgstr "사용법::"
|
| 44 |
+
|
| 45 |
+
# 3d0680517061451580552a8980218e48
|
| 46 |
+
#: ../../hwp5proc.rst:7
|
| 47 |
+
msgid "command: ``version``"
|
| 48 |
+
msgstr "명령: ``version``"
|
| 49 |
+
|
| 50 |
+
# cad75aaf5f6a42ae8910807b46c6a1ef
|
| 51 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:1
|
| 52 |
+
msgid "Print HWP file format version of <hwp5file>."
|
| 53 |
+
msgstr "<hwp5file>의 HWP 파일 포맷 버전을 출력한다."
|
| 54 |
+
|
| 55 |
+
# 71d2980c664e45d397af9734a5494c43
|
| 56 |
+
#: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:8
|
| 57 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:8
|
| 58 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:8
|
| 59 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:10
|
| 60 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:10
|
| 61 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:10
|
| 62 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:14
|
| 63 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:11
|
| 64 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:11
|
| 65 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:18
|
| 66 |
+
msgid "Options::"
|
| 67 |
+
msgstr "옵션::"
|
| 68 |
+
|
| 69 |
+
# 4c8936ae2aab43778971aa79502a721e
|
| 70 |
+
#: ../../hwp5proc.rst:12
|
| 71 |
+
msgid "command: ``header``"
|
| 72 |
+
msgstr "명령: ``header``"
|
| 73 |
+
|
| 74 |
+
# cad75aaf5f6a42ae8910807b46c6a1ef
|
| 75 |
+
#: ../../../pyhwp/hwp5/proc/header.py:docstring of hwp5.proc.header:1
|
| 76 |
+
msgid "Print HWP file header."
|
| 77 |
+
msgstr "HWP 파일 헤더를 출력한다."
|
| 78 |
+
|
| 79 |
+
# 5d77d4ca0f394422b709faccc50cfec9
|
| 80 |
+
#: ../../hwp5proc.rst:17
|
| 81 |
+
msgid "command: ``summaryinfo``"
|
| 82 |
+
msgstr "명령: ``summaryinfo``"
|
| 83 |
+
|
| 84 |
+
# f8011d33ac684c2b8378e18b9e3abedc
|
| 85 |
+
#: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring of
|
| 86 |
+
#: hwp5.proc.summaryinfo:1
|
| 87 |
+
msgid "Print summary information of <hwp5file>."
|
| 88 |
+
msgstr "<hwp5file>의 요약정보(summary information)을 출력한다."
|
| 89 |
+
|
| 90 |
+
# b7b04b5b3eb74f0eb111194985e01b0d
|
| 91 |
+
#: ../../hwp5proc.rst:22
|
| 92 |
+
msgid "command: ``ls``"
|
| 93 |
+
msgstr "명령: ``ls``"
|
| 94 |
+
|
| 95 |
+
# b44ddef0cd314f458485388b49c636ca
|
| 96 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:1
|
| 97 |
+
msgid "List streams in the <hwp5file>."
|
| 98 |
+
msgstr "<hwp5file>의 스트림 목록을 출력한다."
|
| 99 |
+
|
| 100 |
+
# 43a9eab8ec344cfdb4a33aa848da2a56
|
| 101 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:22
|
| 102 |
+
msgid "Example: List without virtual streams::"
|
| 103 |
+
msgstr "예: 가상 스트림을 제외한 목록을 출력한다::"
|
| 104 |
+
|
| 105 |
+
# ecd90dc2d4094b3c8052a495648ff78f
|
| 106 |
+
#: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:39
|
| 107 |
+
msgid "Example: List virtual streams too::"
|
| 108 |
+
msgstr "예: 가상 스트림을 포함한 목록을 출력한다::"
|
| 109 |
+
|
| 110 |
+
# 192f6f50cb544c27ad3479b914ef7222
|
| 111 |
+
#: ../../hwp5proc.rst:27
|
| 112 |
+
msgid "command: ``cat``"
|
| 113 |
+
msgstr "명령: ``cat``"
|
| 114 |
+
|
| 115 |
+
# 15eb8617d1d944949717d81ebb9456f1
|
| 116 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:1
|
| 117 |
+
msgid ""
|
| 118 |
+
"Extract out the specified stream in the <hwp5file> to the standard output."
|
| 119 |
+
msgstr "<hwp5file>의 지정된 스트림을 표준출력으로 출력한다."
|
| 120 |
+
|
| 121 |
+
# dcb71948aa8f47e9b064023f21957a35
|
| 122 |
+
# 71ecad71cb0f4fe9ba80cf55082e5f8a
|
| 123 |
+
# ef37227f045746b8997f0c2eb30319cd
|
| 124 |
+
# 737e619d6b524f69af7005f5ef92ada8
|
| 125 |
+
# 07ef11c376cb4d308967be19edcc2881
|
| 126 |
+
# 3ae85a74884d4ad9b5c6a8e89747e224
|
| 127 |
+
# 6f312dd686584fa4a9dff6f49bbc56b4
|
| 128 |
+
# 35fb8b185a6a48dabea56e256d85bfb4
|
| 129 |
+
# 4fd7a028c7ff4c11b87ba598655a7907
|
| 130 |
+
# 170f201e5a0c4a44abcb0dcea95905d9
|
| 131 |
+
# 8329c429e5674eee8022ec39cceed432
|
| 132 |
+
# cbf2341d2c7c4149bdc3f07da885e0ae
|
| 133 |
+
#: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:22
|
| 134 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:22
|
| 135 |
+
#: hwp5.proc.unpack:27 ../../../pyhwp/hwp5/proc/records.py:docstring
|
| 136 |
+
#: hwp5.proc.records:38 hwp5.proc.records:42 hwp5.proc.records:50
|
| 137 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:34
|
| 138 |
+
#: hwp5.proc.models:42 hwp5.proc.models:48 hwp5.proc.models:57
|
| 139 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:31 hwp5.proc.xml:39
|
| 140 |
+
msgid "Example::"
|
| 141 |
+
msgstr "예::"
|
| 142 |
+
|
| 143 |
+
# 8113891b61bb4b339c77d078336391f4
|
| 144 |
+
#: ../../hwp5proc.rst:32
|
| 145 |
+
msgid "command: ``unpack``"
|
| 146 |
+
msgstr "명령: ``unpack``"
|
| 147 |
+
|
| 148 |
+
# 5c354689e91c40c69ad6d750bd240d1c
|
| 149 |
+
#: ../../../pyhwp/hwp5/proc/unpack.py:docstring of hwp5.proc.unpack:1
|
| 150 |
+
msgid "Extract out streams in the specified <hwp5file> to a directory."
|
| 151 |
+
msgstr "<hwpfile>의 스트림들을 디렉터리로 풀어낸다."
|
| 152 |
+
|
| 153 |
+
# 414f684ce5a540d0a5cd18ab8b2a5f24
|
| 154 |
+
#: ../../hwp5proc.rst:37
|
| 155 |
+
msgid "command: ``records``"
|
| 156 |
+
msgstr "명령: ``records``"
|
| 157 |
+
|
| 158 |
+
# f521cdaf60f4451b88faab8a6235b5a4
|
| 159 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:1
|
| 160 |
+
msgid "Print the record structure."
|
| 161 |
+
msgstr "레코드 구조를 출력한다."
|
| 162 |
+
|
| 163 |
+
# 241ea6ff890d49db8d765402e0c7b6b5
|
| 164 |
+
# 2a49fc3eff194012a083bf9bc0426d93
|
| 165 |
+
#: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:46
|
| 166 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:53
|
| 167 |
+
msgid ""
|
| 168 |
+
"If neither <hwp5file> nor <record-stream> is specified, the record stream is "
|
| 169 |
+
"read from the standard input with an assumption that the input is in the "
|
| 170 |
+
"format version specified by -V option."
|
| 171 |
+
msgstr ""
|
| 172 |
+
"<hwp5file>과 <record-stream>이 주어지지 않으면, 레코드 스트림을 표준 출력에서"
|
| 173 |
+
"읽어들인다. 이 때 입력의 포맷 버전은 -V 옵션으로 주어진 값인 것으로 가정한다."
|
| 174 |
+
|
| 175 |
+
# a7dfeeb3a6464db18f930dc3747acc77
|
| 176 |
+
#: ../../hwp5proc.rst:42
|
| 177 |
+
msgid "command: ``models``"
|
| 178 |
+
msgstr "명령: ``models``"
|
| 179 |
+
|
| 180 |
+
# 058aa45f4ec8463080526f955a7ff2fd
|
| 181 |
+
#: ../../../pyhwp/hwp5/proc/models.py:docstring of hwp5.proc.models:1
|
| 182 |
+
msgid "Print parsed binary models in the specified <record-stream>."
|
| 183 |
+
msgstr "지정된 <record-stream>을 파싱한 바이너리 모델들을 출력한다."
|
| 184 |
+
|
| 185 |
+
# 7375606379a84a7688a05b9939f6b47d
|
| 186 |
+
#: ../../hwp5proc.rst:47
|
| 187 |
+
msgid "command: ``find``"
|
| 188 |
+
msgstr "명령: ``find``"
|
| 189 |
+
|
| 190 |
+
# 8cdcfec208464d1a9dbafb8d0489fe4b
|
| 191 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:1
|
| 192 |
+
msgid "Find record models with specified predicates."
|
| 193 |
+
msgstr "지정된 조건을 만족하는 레코드 모델들을 찾는다."
|
| 194 |
+
|
| 195 |
+
# 78f39cd8bb2c46a89417b59931917868
|
| 196 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:29
|
| 197 |
+
msgid "Example: Find paragraphs::"
|
| 198 |
+
msgstr "예: 문단 찾기::"
|
| 199 |
+
|
| 200 |
+
# 9e23e53b35ca4aefb5e8c1ffa99d3d26
|
| 201 |
+
#: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:35
|
| 202 |
+
msgid ""
|
| 203 |
+
"Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed "
|
| 204 |
+
"incompletely::"
|
| 205 |
+
msgstr ""
|
| 206 |
+
"예: 온전히 파싱되지 않은 ``HWPTAG_LIST_HEADER`` 레코드들을 찾아 출력한다::"
|
| 207 |
+
|
| 208 |
+
# e531df3e57a1451a8fc331069f009f25
|
| 209 |
+
#: ../../hwp5proc.rst:52
|
| 210 |
+
msgid "command: ``xml`` (*Experimental*)"
|
| 211 |
+
msgstr "명령: ``xml`` (*실험적*)"
|
| 212 |
+
|
| 213 |
+
# 36611ef624fe4bec815a5f8e03567251
|
| 214 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:1
|
| 215 |
+
msgid "Transform an HWPv5 file into an XML."
|
| 216 |
+
msgstr "HWPv5 파일을 XML로 변환한다."
|
| 217 |
+
|
| 218 |
+
# 412afcfa0f324982801d3cfacaf69b86
|
| 219 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:5
|
| 220 |
+
msgid ""
|
| 221 |
+
"This command is experimental. Its output format is subject to change at any "
|
| 222 |
+
"time."
|
| 223 |
+
msgstr "이 명령은 실험적입니다. 출력 형식은 언제든 바뀔 수 있습니다."
|
| 224 |
+
|
| 225 |
+
# d89687875f5d4135963346b8e2de3a53
|
| 226 |
+
#: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:36
|
| 227 |
+
msgid ""
|
| 228 |
+
"With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files "
|
| 229 |
+
"in the output XML."
|
| 230 |
+
msgstr ""
|
| 231 |
+
"``--embedbin`` 옵션을 주면, ``BinData/*`` 의 파일들을 base64로 인코딩하여 출"
|
| 232 |
+
"력 XML에 내장한다."
|
| 233 |
+
|
| 234 |
+
# 63b15ef0ee354277b5963fba9147a8f9
|
| 235 |
+
#~ msgid "Print FileHeader of <hwp5file>."
|
| 236 |
+
#~ msgstr "<hwp5file>의 FileHeader를 출력한다."
|
| 237 |
+
|
| 238 |
+
# f521cdaf60f4451b88faab8a6235b5a4
|
| 239 |
+
#~ msgid "Print records in the specified <record-stream>."
|
| 240 |
+
#~ msgstr "지정된 <record-stream>의 레코드들을 출력한다."
|
docs/translated/ko/LC_MESSAGES/index.po
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# mete0r <EMAIL@ADDRESS>, 2012.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2013-10-29 04:47\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: mete0r <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: ko\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# e67bfb841934418fb9aa8d6803ae6f61
|
| 21 |
+
#: ../../index.rst:7
|
| 22 |
+
msgid "Welcome to pyhwp's documentation!"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# fce4f4f87ace4bd79507f35f9f31fc09
|
| 26 |
+
#: ../../index.rst:9
|
| 27 |
+
msgid "Contents:"
|
| 28 |
+
msgstr "목차:"
|
| 29 |
+
|
| 30 |
+
# c7b2c8ef52e84e3294e7003ff9087ee0
|
| 31 |
+
#: ../../index.rst:23
|
| 32 |
+
msgid "Indices and tables"
|
| 33 |
+
msgstr "색인과 목록"
|
| 34 |
+
|
| 35 |
+
# 8caf5884bb214dacaf993c38e939ca98
|
| 36 |
+
#: ../../index.rst:25
|
| 37 |
+
msgid ":ref:`genindex`"
|
| 38 |
+
msgstr ""
|
| 39 |
+
|
| 40 |
+
# 7d2787c7551040dd8500264c58449cc9
|
| 41 |
+
#: ../../index.rst:26
|
| 42 |
+
msgid ":ref:`modindex`"
|
| 43 |
+
msgstr ""
|
| 44 |
+
|
| 45 |
+
# a3f0175d485c4314b9d7204608644b95
|
| 46 |
+
#: ../../index.rst:27
|
| 47 |
+
msgid ":ref:`search`"
|
| 48 |
+
msgstr ""
|
docs/translated/ko/LC_MESSAGES/intro.po
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SOME DESCRIPTIVE TITLE.
|
| 2 |
+
# Copyright (C) 2012, mete0r
|
| 3 |
+
# This file is distributed under the same license as the pyhwp package.
|
| 4 |
+
# mete0r <EMAIL@ADDRESS>, YEAR.
|
| 5 |
+
#
|
| 6 |
+
#, fuzzy
|
| 7 |
+
msgid ""
|
| 8 |
+
msgstr ""
|
| 9 |
+
"Project-Id-Version: pyhwp 0.1\n"
|
| 10 |
+
"Report-Msgid-Bugs-To: \n"
|
| 11 |
+
"POT-Creation-Date: 2014-01-31 08:31+0900\n"
|
| 12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
+
"Last-Translator: mete0r <EMAIL@ADDRESS>\n"
|
| 14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 15 |
+
"Language: ko\n"
|
| 16 |
+
"MIME-Version: 1.0\n"
|
| 17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 19 |
+
|
| 20 |
+
# 229d7f6cb6e94b80b3ed276154632ea7
|
| 21 |
+
#: ../../intro.rst:2
|
| 22 |
+
msgid "pyhwp"
|
| 23 |
+
msgstr ""
|
| 24 |
+
|
| 25 |
+
# 75c5f1d6ce704cfb987f218ddac8e5c9
|
| 26 |
+
#: ../../intro.rst:4
|
| 27 |
+
msgid "HWP Document Format v5 parser & processor."
|
| 28 |
+
msgstr "HWP 문서 포맷 버젼5 파서 & 처리기"
|
| 29 |
+
|
| 30 |
+
# bdea2ae9aea14b619ceab66b9f6d685c
|
| 31 |
+
#: ../../intro.rst:7
|
| 32 |
+
msgid "Features"
|
| 33 |
+
msgstr "기능"
|
| 34 |
+
|
| 35 |
+
# 6b057a4ced754848bd138b559238556f
|
| 36 |
+
#: ../../intro.rst:9
|
| 37 |
+
msgid ""
|
| 38 |
+
"Analyze and extract internal streams out from a HWP Document Format v5 file"
|
| 39 |
+
msgstr "HWP 문서 버젼 5 파일의 내부 스트림을 분석/분리"
|
| 40 |
+
|
| 41 |
+
# a68f3e9e704d45dda4278f0efaf64d8a
|
| 42 |
+
#: ../../intro.rst:10
|
| 43 |
+
msgid ""
|
| 44 |
+
"(*Experimental*) Conversion to OpenDocument format (.odt) or plain text (."
|
| 45 |
+
"txt)"
|
| 46 |
+
msgstr "(*실험적*) OpenDocument 포맷(.odt)나 일반 텍스트 문서로 변환"
|
| 47 |
+
|
| 48 |
+
# ea5a3a8d49cc413eb9ef1fa6f58633ff
|
| 49 |
+
#: ../../intro.rst:13
|
| 50 |
+
msgid "Installation"
|
| 51 |
+
msgstr "설치"
|
| 52 |
+
|
| 53 |
+
# 0d7548139cea4b37bb2298584800bffc
|
| 54 |
+
#: ../../intro.rst:15
|
| 55 |
+
msgid "from `pypi <http://pypi.python.org/pypi/pyhwp>`_::"
|
| 56 |
+
msgstr "`pypi <http://pypi.python.org/pypi/pyhwp>`_ 에서::"
|
| 57 |
+
|
| 58 |
+
# 33cd4af4dc6f496bbea8284505308c83
|
| 59 |
+
#: ../../intro.rst:20
|
| 60 |
+
msgid "Or::"
|
| 61 |
+
msgstr "혹은::"
|
| 62 |
+
|
| 63 |
+
# da4c2f33f39048e9a72ad43807cd7e37
|
| 64 |
+
#: ../../intro.rst:25
|
| 65 |
+
msgid "Requirements"
|
| 66 |
+
msgstr "필요한 것"
|
| 67 |
+
|
| 68 |
+
# db6d63914fb2413d92e5701b694e2b22
|
| 69 |
+
#: ../../intro.rst:27
|
| 70 |
+
msgid "CPython 2.5, 2.6, 2.7, Jython 2.5.3 or PyPy 2.0.2"
|
| 71 |
+
msgstr "CPython 2.5, 2.6, 2.7, Jython 2.5.3 혹은 PyPy 2.0.2"
|
| 72 |
+
|
| 73 |
+
# 0d7548139cea4b37bb2298584800bffc
|
| 74 |
+
#: ../../intro.rst:28
|
| 75 |
+
msgid "`setuptools <http://pypi.python.org/pypi/setuptools>`_"
|
| 76 |
+
msgstr ""
|
| 77 |
+
|
| 78 |
+
# 2cab7c2a85d34ff7adc294b7e48d5575
|
| 79 |
+
#: ../../intro.rst:29
|
| 80 |
+
msgid ""
|
| 81 |
+
"`pycrypto <https://pypi.python.org/pypi/pycrypto>`_ (optional, to decode "
|
| 82 |
+
"distribution docs)"
|
| 83 |
+
msgstr ""
|
| 84 |
+
"`pycrypto <https://pypi.python.org/pypi/pycrypto>`_ (선택적, 배포용 문서"
|
| 85 |
+
"읽기에 필요)"
|
| 86 |
+
|
| 87 |
+
# 070821d20ddc4c6cb15fa70632bf6523
|
| 88 |
+
#: ../../intro.rst:32
|
| 89 |
+
msgid "Documentation & Development"
|
| 90 |
+
msgstr "문서화 및 개발"
|
| 91 |
+
|
| 92 |
+
# 8228a1248e8b4f6fb82be453d4ef4135
|
| 93 |
+
#: ../../intro.rst:34
|
| 94 |
+
msgid ""
|
| 95 |
+
"Documentation: `http://pythonhosted.org/pyhwp/ <http://pythonhosted.org/"
|
| 96 |
+
"pyhwp/>`_ [`한국/조선어 <http://pythonhosted.org/pyhwp/ko/>`_] [`develop "
|
| 97 |
+
"branch <http://pyhwp.readthedocs.org>`_]"
|
| 98 |
+
msgstr ""
|
| 99 |
+
"문서화: `http://pythonhosted.org/pyhwp/ko <http://pythonhosted.org/pyhwp/"
|
| 100 |
+
"ko>`_ [`English <http://pythonhosted.org/pyhwp>`_] [`개발 branch <http://"
|
| 101 |
+
"pyhwp.readthedocs.org>`_]"
|
| 102 |
+
|
| 103 |
+
# 0d7548139cea4b37bb2298584800bffc
|
| 104 |
+
#: ../../intro.rst:35
|
| 105 |
+
msgid ""
|
| 106 |
+
"Distribution: `http://pypi.python.org/pypi/pyhwp <http://pypi.python.org/"
|
| 107 |
+
"pypi/pyhwp>`_"
|
| 108 |
+
msgstr ""
|
| 109 |
+
"배포: `http://pypi.python.org/pypi/pyhwp <http://pypi.python.org/pypi/"
|
| 110 |
+
"pyhwp>`_"
|
| 111 |
+
|
| 112 |
+
# f0f93a1ed81747dc9c7a3c631b971e86
|
| 113 |
+
#: ../../intro.rst:36
|
| 114 |
+
msgid ""
|
| 115 |
+
"Development: `https://github.com/mete0r/pyhwp <https://github.com/mete0r/"
|
| 116 |
+
"pyhwp>`_"
|
| 117 |
+
msgstr ""
|
| 118 |
+
"개발: `https://github.com/mete0r/pyhwp <https://github.com/mete0r/pyhwp>`_"
|
| 119 |
+
|
| 120 |
+
# f0f93a1ed81747dc9c7a3c631b971e86
|
| 121 |
+
#: ../../intro.rst:37
|
| 122 |
+
msgid ""
|
| 123 |
+
"Issue tracker: `https://github.com/mete0r/pyhwp/issues <https://github.com/"
|
| 124 |
+
"mete0r/pyhwp/issues>`_"
|
| 125 |
+
msgstr ""
|
| 126 |
+
"버그 추적: `https://github.com/mete0r/pyhwp/issues <https://github.com/"
|
| 127 |
+
"mete0r/pyhwp/issues>`_"
|
| 128 |
+
|
| 129 |
+
# 317c633c180a4bda8045e2a5b1e757cf
|
| 130 |
+
#: ../../intro.rst:38
|
| 131 |
+
msgid "Feedbacks & contributions are welcome!"
|
| 132 |
+
msgstr "피드백이나 기여 환영합니다."
|
| 133 |
+
|
| 134 |
+
# b200736b60a04a8480b72cb24a513db0
|
| 135 |
+
#: ../../intro.rst:41
|
| 136 |
+
msgid "Contributors"
|
| 137 |
+
msgstr "기여한 이들"
|
| 138 |
+
|
| 139 |
+
# 38b9e22103b4432eaf4fdf9f452bc3e3
|
| 140 |
+
#: ../../intro.rst:43
|
| 141 |
+
msgid "Maintainer: `mete0r <https://github.com/mete0r>`_"
|
| 142 |
+
msgstr "Maintainer: `mete0r <https://github.com/mete0r>`_"
|
| 143 |
+
|
| 144 |
+
# 3968cb8206a14f398a248eed814ad9aa
|
| 145 |
+
#: ../../intro.rst:46
|
| 146 |
+
msgid "License"
|
| 147 |
+
msgstr "사용허가"
|
| 148 |
+
|
| 149 |
+
# d64dabb371984d2ba250f37e220aa39a
|
| 150 |
+
#: ../../intro.rst:48
|
| 151 |
+
msgid "Copyright (C) 2010-2023 mete0r <https://github.com/mete0r>"
|
| 152 |
+
msgstr ""
|
| 153 |
+
|
| 154 |
+
# 32ed7d69ae9f4bf5bff4e8d68c113f4c
|
| 155 |
+
#: ../../intro.rst:52
|
| 156 |
+
msgid ""
|
| 157 |
+
"`GNU Affero General Public License v3.0 <http://www.gnu.org/licenses/"
|
| 158 |
+
"agpl-3.0.html>`_ `(text version) <http://www.gnu.org/licenses/agpl-3.0.txt>`_"
|
| 159 |
+
msgstr ""
|
| 160 |
+
|
| 161 |
+
# 164415d866774a9e9e7ad1008447cf74
|
| 162 |
+
#: ../../intro.rst:55
|
| 163 |
+
msgid ""
|
| 164 |
+
"This program is free software: you can redistribute it and/or modify it "
|
| 165 |
+
"under the terms of the GNU Affero General Public License as published by the "
|
| 166 |
+
"Free Software Foundation, either version 3 of the License, or (at your "
|
| 167 |
+
"option) any later version."
|
| 168 |
+
msgstr ""
|
| 169 |
+
|
| 170 |
+
# 6cc8ef94865e4196898a83b1b80dd2e5
|
| 171 |
+
#: ../../intro.rst:60
|
| 172 |
+
msgid ""
|
| 173 |
+
"This program is distributed in the hope that it will be useful, but WITHOUT "
|
| 174 |
+
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
|
| 175 |
+
"FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License "
|
| 176 |
+
"for more details."
|
| 177 |
+
msgstr ""
|
| 178 |
+
|
| 179 |
+
# d54697f2f7dc44869d43637b7e5dcb68
|
| 180 |
+
#: ../../intro.rst:65
|
| 181 |
+
msgid ""
|
| 182 |
+
"You should have received a copy of the GNU Affero General Public License "
|
| 183 |
+
"along with this program. If not, see <http://www.gnu.org/licenses/>."
|
| 184 |
+
msgstr ""
|
| 185 |
+
|
| 186 |
+
# c3270c668ef7418e951ef0bc8ac17fdd
|
| 187 |
+
#: ../../intro.rst:69
|
| 188 |
+
msgid "Disclosure"
|
| 189 |
+
msgstr "공개"
|
| 190 |
+
|
| 191 |
+
# df57575778df4329940de5a8a2999e73
|
| 192 |
+
#: ../../intro.rst:71
|
| 193 |
+
msgid ""
|
| 194 |
+
"This program has been developed in accordance with a public document named "
|
| 195 |
+
"\"HWP Binary Specification 1.1\" published by `Hancom Inc. <http://www."
|
| 196 |
+
"hancom.co.kr>`_"
|
| 197 |
+
msgstr ""
|
| 198 |
+
"pyhwp는 `(주)한글과컴퓨터 <http://www.hancom.co.kr>`_ 의 한/글 문서 파일(."
|
| 199 |
+
"hwp) 공개 문서를 참고하여 개발하였습니다."
|
| 200 |
+
|
| 201 |
+
# d21d1a96770c48399bf7d7962f96c816
|
| 202 |
+
#~ msgid ""
|
| 203 |
+
#~ "Documentation: `http://pyhwp.readthedocs.org <http://pyhwp.readthedocs."
|
| 204 |
+
#~ "org>`_"
|
| 205 |
+
#~ msgstr ""
|
| 206 |
+
#~ "문서화: `http://pyhwp.readthedocs.org <http://pyhwp.readthedocs.org>`_"
|