Commits

Tetsuya Morimoto  committed f4ae7f6

updated version 0.5
added plugin feature

  • Participants
  • Parent commits f03af0c

Comments (0)

Files changed (24)

File ikazuchi/build/doctrees/command_ref.doctree

Binary file modified.

File ikazuchi/build/doctrees/environment.pickle

Binary file modified.

File ikazuchi/build/doctrees/index.doctree

Binary file modified.

File ikazuchi/build/doctrees/introduction.doctree

Binary file modified.

File ikazuchi/build/doctrees/plugin.doctree

Binary file added.

File ikazuchi/build/html/.buildinfo

 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: e733277a6112d2b6ede6e93abd64e620
+config: 1df1423169f57bead730b05b7ec16866
 tags: fbb0d17656682115ca4d033fb2f83ba1

File ikazuchi/build/html/_sources/command_ref.txt

 All command option are::
 
     $ ikazuchi -h
-    usage: ikazuchi [-h] [-v] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
-                    [-p POFILE] [-q] [-r RSTFILE] [-s SENTENCE [SENTENCE ...]]
-                    [-t LANG]
+    usage: ikazuchi [-h] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
+                    [-p PLUGIN [PLUGIN ...]] [-q] [-s SENTENCE [SENTENCE ...]]
+                    [-t LANG] [--version]
 
     optional arguments:
       -h, --help            show this help message and exit
-      -v, --version         show program's version number and exit
       -a API, --api API     APIs are ['google', 'microsoft']
       -d, --detect          detect language for target sentence
       -e ENCODING, --encoding ENCODING
                             input/output encoding
       -f LANG, --from LANG  original language
       -l, --languages       show supported languages
-      -p POFILE, --pofile POFILE
-                            target po file
+      -p PLUGIN [PLUGIN ...], --plugin PLUGIN [PLUGIN ...]
+                            extend with plugin, show available plugins using
+                            "help"
       -q, --quiet           not to show original sentence to stdout
-      -r RSTFILE, --rstfile RSTFILE
-                            target reST file
       -s SENTENCE [SENTENCE ...], --sentences SENTENCE [SENTENCE ...]
                             target sentences
       -t LANG, --to LANG    target language to translate
+      --version             show program's version number and exit
 
 
 Get API KEY for Translate API
 Translate with PO file
 ----------------------
 
+.. note::
+
+    It needs to install `ikazuchi.plugins.pofile`_ before you try to run.
+
+.. _ikazuchi.plugins.pofile: http://pypi.python.org/pypi/ikazuchi.plugins.pofile/
+
 It can show good reference to translate msgid for PO file.
-Pass a po file with **-p** option.
+Pass a po file with **-p pofile** option.
 
 ::
 
-    $ ikazuchi -a microsoft -p examples/short_test.po 
+    $ ikazuchi -a microsoft -p pofile examples/short_test.po 
 
 If a current mgstr doesn't need to modify, just press enter key on terminal(``Input:``).
 
 -----------------------
 
 It can translate rst file keeping the format. Pass a rst file with
-**-r** option. The progress status is represented ``.``.
+**-p rstfile** option. The progress status is represented **. (dot)**.
 The result file is ``output.rst``.
 
 ::
 
-    $ ikazuchi -r sample.rst
+    $ ikazuchi -p rstfile sample.rst
     ....................................................................
     $ ls output.rst 
     output.rst
 
 .. note::
 
-    `raimei` and `enrai` scripts are maybe installed in ``/usr/bin`` directory
-    as same as `ikazuchi` command on Linux/Mac OS X.
+    `raimei` and `enrai` scripts are maybe installed in bin directory,
+    such as ``/usr/bin``, as same as `ikazuchi` command on Linux/Mac OS X.
 
 .. note::
 

File ikazuchi/build/html/_sources/index.txt

 ikazuchi - simple translation helper
 ====================================
 
-`ikazuchi <https://bitbucket.org/t2y/ikazuchi>`_
-helps to translate document using web translate APIs efficiently.
+`ikazuchi`_ helps to translate document using web translate APIs efficiently.
 `ikazuchi` is intended to work with other tools since it's a CUI tool.
 
 ********
 
 Now, `ikazuchi` is under development.
 
-* `ikazuchi` can use 2 APIs,
-  `Google Translate API <http://code.google.com/intl/ja/apis/language/translate/overview.html>`_,
-  `Microsoft Translator <http://www.microsofttranslator.com/dev/>`_.
-  (`Yahoo! Pipes <http://pipes.yahoo.com/pipes/>`_ is not supported as formal feature.)
-* Translate GNU gettext catalog named PO file with good reference from web API
-* Translate reST document file keeping with the format
+* `ikazuchi` can use 2 APIs, `Google Translate API`_ and `Microsoft Translator`_.
+  (`Yahoo! Pipes`_ is not supported as formal feature.)
 * Translate any string passed from command line argument
 * Translate any string in Vim using ":pyfile" command
 * Detect language of any string passed from command line argument
+* Extend ``Handler`` with plug-in to your needs
+
+Additionally, these features are provided by plug-in.
+
+* Translate GNU gettext catalog named PO file with good reference from web API
+  (provided by `ikazuchi.plugins.pofile`_)
+* Translate reST document file keeping with the format (included in `ikazuchi`)
 
 .. seealso::
 
    See :ref:`terms_of_use` for each APIs you want to use.
 
+.. _ikazuchi: https://bitbucket.org/t2y/ikazuchi
+.. _Google Translate API:  http://code.google.com/intl/ja/apis/language/translate/overview.html
+.. _Microsoft Translator: http://www.microsofttranslator.com/dev/
+.. _Yahoo! Pipes: http://pipes.yahoo.com/pipes/
+.. _ikazuchi.plugins.pofile: http://pypi.python.org/pypi/ikazuchi.plugins.pofile/
 
 ********
 Contents
 
    introduction
    command_ref
+   plugin
    tips
 
 .. _terms_of_use:
 
 `ikazuchi` follows those the TOS of each APIs.
 
-* `Google Translate API Terms of Use <http://code.google.com/intl/ja/apis/language/translate/terms.html>`_
-* `Microsoft Terms of Use <http://www.bing.com/developers/tou.aspx>`_
-* `Yahoo! Pipes Terms of Use <http://info.yahoo.com/legal/us/yahoo/pipes/pipes-4396.html>`_
+* `Google Translate API Terms of Use`_
+* `Microsoft Terms of Use`_
+* `Yahoo! Pipes Terms of Use`_
 
+.. _Google Translate API Terms of Use: http://code.google.com/intl/ja/apis/language/translate/terms.html
+.. _Microsoft Terms of Use: http://www.bing.com/developers/tou.aspx
+.. _Yahoo! Pipes Terms of Use: http://info.yahoo.com/legal/us/yahoo/pipes/pipes-4396.html
 
 ******************
 Indices and tables

File ikazuchi/build/html/_sources/introduction.txt

 
    $ hg clone https://t2y@bitbucket.org/t2y/ikazuchi
    $ cd ikazuchi
-   $ python bootstrap.py
+   $ python bootstrap.py -d
    $ bin/buildout
 
 
     sentence:                hello
     detect(Google):          [{u'isReliable': False, u'confidence': 0.01737435, u'language': u'en'}]
 
-Or, you may translate PO file with reference.
-You can entered translation string for msgid after ``Input:``.
-Or just type "y" if you want to select reference string.
-
-::
-
-    $ ikazuchi -p examples/short_test.po 
-    msgid:                   ikazuchi translation
-    current msgstr:          いかずちの翻訳
-    reference(Google):       雷の翻訳
-    Input:  
-    updated msgstr:          いかずちの翻訳
-
-    msgid:                   format string: "%(name)r"
-    reference(Google):       書式指定文字列: "%(name)r"
-    Input: y
-    updated msgstr:          書式指定文字列: "%(name)r"
-
 Additionally, RST file also can be translated keeping the format.
 
 ::
 
-    $ ikazuchi -r sample.rst
+    $ ikazuchi -p rstfile examples/sample_format.rst
     ....................................................................
     $ ls output.rst 
     output.rst

File ikazuchi/build/html/_sources/plugin.txt

+==========================
+Extending ikazuchi Plug-in
+==========================
+
+Plug-in lists
+-------------
+
+There are plugins lists as below.
+
+* `ikazuchi.plugins.rstfile`_
+* `ikazuchi.plugins.pofile`_
+
+.. _ikazuchi.plugins.rstfile: https://bitbucket.org/t2y/ikazuchi
+.. _ikazuchi.plugins.pofile: https://bitbucket.org/t2y/ikazuchi.plugins.pofile
+
+Please let me know if you have/know great plug-ins.
+
+
+Usage
+-----
+
+Passing ``help`` to **-p** option shows installed all plugins to be available.
+
+::
+
+    $ ikazuchi -p help
+    Available plugins are:
+    pofile
+    rstfile
+
+
+How to Develop
+--------------
+
+To load any plugin, **setup.py** must be set to defines `namespace package`_
+and `entry points`_ as below. It replace ``plugin_name`` with your plugin name.
+
+::
+
+    ...
+    namespace_packages=["ikazuchi", "ikazuchi.plugins"],
+    ...
+    entry_points={
+       "ikazuchi.plugins": [
+           "plugin_name = ikazuchi.plugins.plugin_name",
+       ],
+    },
+
+Also, you must make ``plugin_name.py`` as plugin. For example,
+`ikazuchi.plugins.pofile`_ has ``pofile.py``.
+
+::
+
+    $ tree src/ikazuchi
+    src/ikazuchi
+    ├── __init__.py
+    ├── plugins
+        ├── __init__.py
+        ├── pofile.py
+
+Each ``__init__.py`` includes only single line.
+
+::
+
+    __import__("pkg_resources").declare_namespace(__name__)
+
+Are you ready? Let's develop your plugin to extend ``Handler``.
+First of all, define :class:`Handler` class inherit from :class:`BaseHandler`
+class. The class name must be **Handler**.
+
+::
+
+    from ikazuchi.core.handler.base import BaseHandler
+    class Handler(BaseHandler):
+        ...
+
+You must implement 2 methods for :class:`Handler` class. First method is the
+constructor.
+
+::
+
+        def __init__(self, opts):
+            ...
+
+The constructor takes command line arguments as `Namespace object`_.
+``opts.plugin`` has all arguments by passing `-p plugin_name xxx yyy`.
+The other arguments is used if it need.
+See ``src/ikazuchi/ikazuchi.py`` in `ikazuchi source`_ for detail.
+
+::
+
+        def _call_method(self, api_method):
+            ...
+
+And then, Implement handler's process with :func:`_call_method` method.
+This method which is meant translator's method expects single list.
+
+If you need more information, `ikazuchi.plugins.pofile`_ source is your help.
+
+.. _ikazuchi source: https://bitbucket.org/t2y/ikazuchi/src
+.. _namespace package: http://packages.python.org/distribute/setuptools.html#namespace-packages
+.. _entry points: http://packages.python.org/distribute/setuptools.html#entry-points
+.. _Namespace object: http://docs.python.org/dev/library/argparse.html#the-namespace-object

File ikazuchi/build/html/command_ref.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Command Reference &mdash; ikazuchi v0.4 documentation</title>
+    <title>Command Reference &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="index.html" />
-    <link rel="next" title="Tips" href="tips.html" />
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" />
+    <link rel="next" title="Extending ikazuchi Plug-in" href="plugin.html" />
     <link rel="prev" title="Introduction" href="introduction.html" /> 
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="index.html">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>Command Reference</span></h2>
       </div>
       <div class="topnav">
         &#160;&#160;::&#160;&#160;
         <a class="uplink" href="index.html">Contents</a>
         &#160;&#160;::&#160;&#160;
-        <a href="tips.html">Tips</a>&#160;&#160;»
+        <a href="plugin.html">Extending ikazuchi Plug-in</a>&#160;&#160;»
         </p>
 
       </div>
 <h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
 <p>All command option are:</p>
 <div class="highlight-python"><pre>$ ikazuchi -h
-usage: ikazuchi [-h] [-v] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
-                [-p POFILE] [-q] [-r RSTFILE] [-s SENTENCE [SENTENCE ...]]
-                [-t LANG]
+usage: ikazuchi [-h] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
+                [-p PLUGIN [PLUGIN ...]] [-q] [-s SENTENCE [SENTENCE ...]]
+                [-t LANG] [--version]
 
 optional arguments:
   -h, --help            show this help message and exit
-  -v, --version         show program's version number and exit
   -a API, --api API     APIs are ['google', 'microsoft']
   -d, --detect          detect language for target sentence
   -e ENCODING, --encoding ENCODING
                         input/output encoding
   -f LANG, --from LANG  original language
   -l, --languages       show supported languages
-  -p POFILE, --pofile POFILE
-                        target po file
+  -p PLUGIN [PLUGIN ...], --plugin PLUGIN [PLUGIN ...]
+                        extend with plugin, show available plugins using
+                        "help"
   -q, --quiet           not to show original sentence to stdout
-  -r RSTFILE, --rstfile RSTFILE
-                        target reST file
   -s SENTENCE [SENTENCE ...], --sentences SENTENCE [SENTENCE ...]
                         target sentences
-  -t LANG, --to LANG    target language to translate</pre>
+  -t LANG, --to LANG    target language to translate
+  --version             show program's version number and exit</pre>
 </div>
 </div>
 <div class="section" id="get-api-key-for-translate-api">
 </div>
 <div class="section" id="translate-with-po-file">
 <h2>Translate with PO file<a class="headerlink" href="#translate-with-po-file" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">It needs to install <a class="reference external" href="http://pypi.python.org/pypi/ikazuchi.plugins.pofile/">ikazuchi.plugins.pofile</a> before you try to run.</p>
+</div>
 <p>It can show good reference to translate msgid for PO file.
-Pass a po file with <strong>-p</strong> option.</p>
-<div class="highlight-python"><pre>$ ikazuchi -a microsoft -p examples/short_test.po</pre>
+Pass a po file with <strong>-p pofile</strong> option.</p>
+<div class="highlight-python"><pre>$ ikazuchi -a microsoft -p pofile examples/short_test.po</pre>
 </div>
 <p>If a current mgstr doesn&#8217;t need to modify, just press enter key on terminal(<tt class="docutils literal"><span class="pre">Input:</span></tt>).</p>
 <div class="highlight-python"><pre>msgid:                   ikazuchi translation
 <div class="section" id="translate-with-rst-file">
 <h2>Translate with RST file<a class="headerlink" href="#translate-with-rst-file" title="Permalink to this headline">¶</a></h2>
 <p>It can translate rst file keeping the format. Pass a rst file with
-<strong>-r</strong> option. The progress status is represented <tt class="docutils literal"><span class="pre">.</span></tt>.
+<strong>-p rstfile</strong> option. The progress status is represented <strong>. (dot)</strong>.
 The result file is <tt class="docutils literal"><span class="pre">output.rst</span></tt>.</p>
-<div class="highlight-python"><pre>$ ikazuchi -r sample.rst
+<div class="highlight-python"><pre>$ ikazuchi -p rstfile sample.rst
 ....................................................................
 $ ls output.rst
 output.rst</pre>
 script. For example, <cite>raimei</cite> and <cite>enrai</cite> are intended for Vim embedded.</p>
 <div class="admonition note">
 <p class="first admonition-title">Note</p>
-<p class="last"><cite>raimei</cite> and <cite>enrai</cite> scripts are maybe installed in <tt class="docutils literal"><span class="pre">/usr/bin</span></tt> directory
-as same as <cite>ikazuchi</cite> command on Linux/Mac OS X.</p>
+<p class="last"><cite>raimei</cite> and <cite>enrai</cite> scripts are maybe installed in bin directory,
+such as <tt class="docutils literal"><span class="pre">/usr/bin</span></tt>, as same as <cite>ikazuchi</cite> command on Linux/Mac OS X.</p>
 </div>
 <div class="admonition note">
 <p class="first admonition-title">Note</p>
         &#160;&#160;::&#160;&#160;
         <a class="uplink" href="index.html">Contents</a>
         &#160;&#160;::&#160;&#160;
-        <a href="tips.html">Tips</a>&#160;&#160;»
+        <a href="plugin.html">Extending ikazuchi Plug-in</a>&#160;&#160;»
         </p>
 
       </div>
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on Jun 01, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/build/html/genindex.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Index &mdash; ikazuchi v0.4 documentation</title>
+    <title>Index &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="index.html" /> 
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" /> 
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="index.html">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>Index</span></h2>
       </div>
       <div class="topnav">
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on Jun 01, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/build/html/index.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>ikazuchi - simple translation helper &mdash; ikazuchi v0.4 documentation</title>
+    <title>ikazuchi - simple translation helper &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="#" />
+    <link rel="top" title="ikazuchi v0.5 documentation" href="#" />
     <link rel="next" title="Introduction" href="introduction.html" /> 
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="#">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>ikazuchi - simple translation helper</span></h2>
       </div>
       <div class="topnav">
         
   <div class="section" id="ikazuchi-simple-translation-helper">
 <h1>ikazuchi - simple translation helper<a class="headerlink" href="#ikazuchi-simple-translation-helper" title="Permalink to this headline">¶</a></h1>
-<p><a class="reference external" href="https://bitbucket.org/t2y/ikazuchi">ikazuchi</a>
-helps to translate document using web translate APIs efficiently.
+<p><a class="reference external" href="https://bitbucket.org/t2y/ikazuchi">ikazuchi</a> helps to translate document using web translate APIs efficiently.
 <cite>ikazuchi</cite> is intended to work with other tools since it&#8217;s a CUI tool.</p>
 <div class="section" id="features">
 <h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
 <p>Now, <cite>ikazuchi</cite> is under development.</p>
 <ul class="simple">
-<li><cite>ikazuchi</cite> can use 2 APIs,
-<a class="reference external" href="http://code.google.com/intl/ja/apis/language/translate/overview.html">Google Translate API</a>,
-<a class="reference external" href="http://www.microsofttranslator.com/dev/">Microsoft Translator</a>.
+<li><cite>ikazuchi</cite> can use 2 APIs, <a class="reference external" href="http://code.google.com/intl/ja/apis/language/translate/overview.html">Google Translate API</a> and <a class="reference external" href="http://www.microsofttranslator.com/dev/">Microsoft Translator</a>.
 (<a class="reference external" href="http://pipes.yahoo.com/pipes/">Yahoo! Pipes</a> is not supported as formal feature.)</li>
-<li>Translate GNU gettext catalog named PO file with good reference from web API</li>
-<li>Translate reST document file keeping with the format</li>
 <li>Translate any string passed from command line argument</li>
 <li>Translate any string in Vim using &#8221;:pyfile&#8221; command</li>
 <li>Detect language of any string passed from command line argument</li>
+<li>Extend <tt class="docutils literal"><span class="pre">Handler</span></tt> with plug-in to your needs</li>
+</ul>
+<p>Additionally, these features are provided by plug-in.</p>
+<ul class="simple">
+<li>Translate GNU gettext catalog named PO file with good reference from web API
+(provided by <a class="reference external" href="http://pypi.python.org/pypi/ikazuchi.plugins.pofile/">ikazuchi.plugins.pofile</a>)</li>
+<li>Translate reST document file keeping with the format (included in <cite>ikazuchi</cite>)</li>
 </ul>
 <div class="admonition-see-also admonition seealso">
 <p class="first admonition-title">See also</p>
 <li class="toctree-l2"><a class="reference internal" href="command_ref.html#translate-with-vim">Translate with Vim</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="plugin.html">Extending ikazuchi Plug-in</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="plugin.html#plug-in-lists">Plug-in lists</a></li>
+<li class="toctree-l2"><a class="reference internal" href="plugin.html#usage">Usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="plugin.html#how-to-develop">How to Develop</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="tips.html">Tips</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="tips.html#character-encoding">Character Encoding</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tips.html#work-with-shell">Work with Shell</a></li>
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on Jun 01, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/build/html/introduction.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Introduction &mdash; ikazuchi v0.4 documentation</title>
+    <title>Introduction &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="index.html" />
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" />
     <link rel="next" title="Command Reference" href="command_ref.html" />
     <link rel="prev" title="ikazuchi - simple translation helper" href="index.html" /> 
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="index.html">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>Introduction</span></h2>
       </div>
       <div class="topnav">
 <p>Make environment</p>
 <div class="highlight-python"><pre>$ hg clone https://t2y@bitbucket.org/t2y/ikazuchi
 $ cd ikazuchi
-$ python bootstrap.py
+$ python bootstrap.py -d
 $ bin/buildout</pre>
 </div>
 </div>
 sentence:                hello
 detect(Google):          [{u'isReliable': False, u'confidence': 0.01737435, u'language': u'en'}]</pre>
 </div>
-<p>Or, you may translate PO file with reference.
-You can entered translation string for msgid after <tt class="docutils literal"><span class="pre">Input:</span></tt>.
-Or just type &#8220;y&#8221; if you want to select reference string.</p>
-<div class="highlight-python"><pre>$ ikazuchi -p examples/short_test.po
-msgid:                   ikazuchi translation
-current msgstr:          いかずちの翻訳
-reference(Google):       雷の翻訳
-Input:
-updated msgstr:          いかずちの翻訳
-
-msgid:                   format string: "%(name)r"
-reference(Google):       書式指定文字列: "%(name)r"
-Input: y
-updated msgstr:          書式指定文字列: "%(name)r"</pre>
-</div>
 <p>Additionally, RST file also can be translated keeping the format.</p>
-<div class="highlight-python"><pre>$ ikazuchi -r sample.rst
+<div class="highlight-python"><pre>$ ikazuchi -p rstfile examples/sample_format.rst
 ....................................................................
 $ ls output.rst
 output.rst</pre>
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on May 31, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/build/html/objects.inv

Binary file modified.

File ikazuchi/build/html/plugin.html

+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Extending ikazuchi Plug-in &mdash; ikazuchi v0.5 documentation</title>
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <link rel="stylesheet" href="_static/print.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="_static/theme_extras.js"></script>
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" />
+    <link rel="next" title="Tips" href="tips.html" />
+    <link rel="prev" title="Command Reference" href="command_ref.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>ikazuchi v0.5 documentation</span></a></h1>
+        <h2 class="heading"><span>Extending ikazuchi Plug-in</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «&#160;&#160;<a href="command_ref.html">Command Reference</a>
+        &#160;&#160;::&#160;&#160;
+        <a class="uplink" href="index.html">Contents</a>
+        &#160;&#160;::&#160;&#160;
+        <a href="tips.html">Tips</a>&#160;&#160;»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="extending-ikazuchi-plug-in">
+<h1>Extending ikazuchi Plug-in<a class="headerlink" href="#extending-ikazuchi-plug-in" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="plug-in-lists">
+<h2>Plug-in lists<a class="headerlink" href="#plug-in-lists" title="Permalink to this headline">¶</a></h2>
+<p>There are plugins lists as below.</p>
+<ul class="simple">
+<li><a class="reference external" href="https://bitbucket.org/t2y/ikazuchi">ikazuchi.plugins.rstfile</a></li>
+<li><a class="reference external" href="https://bitbucket.org/t2y/ikazuchi.plugins.pofile">ikazuchi.plugins.pofile</a></li>
+</ul>
+<p>Please let me know if you have/know great plug-ins.</p>
+</div>
+<div class="section" id="usage">
+<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
+<p>Passing <tt class="docutils literal"><span class="pre">help</span></tt> to <strong>-p</strong> option shows installed all plugins to be available.</p>
+<div class="highlight-python"><pre>$ ikazuchi -p help
+Available plugins are:
+pofile
+rstfile</pre>
+</div>
+</div>
+<div class="section" id="how-to-develop">
+<h2>How to Develop<a class="headerlink" href="#how-to-develop" title="Permalink to this headline">¶</a></h2>
+<p>To load any plugin, <strong>setup.py</strong> must be set to defines <a class="reference external" href="http://packages.python.org/distribute/setuptools.html#namespace-packages">namespace package</a>
+and <a class="reference external" href="http://packages.python.org/distribute/setuptools.html#entry-points">entry points</a> as below. It replace <tt class="docutils literal"><span class="pre">plugin_name</span></tt> with your plugin name.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="o">...</span>
+<span class="n">namespace_packages</span><span class="o">=</span><span class="p">[</span><span class="s">&quot;ikazuchi&quot;</span><span class="p">,</span> <span class="s">&quot;ikazuchi.plugins&quot;</span><span class="p">],</span>
+<span class="o">...</span>
+<span class="n">entry_points</span><span class="o">=</span><span class="p">{</span>
+   <span class="s">&quot;ikazuchi.plugins&quot;</span><span class="p">:</span> <span class="p">[</span>
+       <span class="s">&quot;plugin_name = ikazuchi.plugins.plugin_name&quot;</span><span class="p">,</span>
+   <span class="p">],</span>
+<span class="p">},</span>
+</pre></div>
+</div>
+<p>Also, you must make <tt class="docutils literal"><span class="pre">plugin_name.py</span></tt> as plugin. For example,
+<a class="reference external" href="https://bitbucket.org/t2y/ikazuchi.plugins.pofile">ikazuchi.plugins.pofile</a> has <tt class="docutils literal"><span class="pre">pofile.py</span></tt>.</p>
+<div class="highlight-python"><pre>$ tree src/ikazuchi
+src/ikazuchi
+├── __init__.py
+├── plugins
+    ├── __init__.py
+    ├── pofile.py</pre>
+</div>
+<p>Each <tt class="docutils literal"><span class="pre">__init__.py</span></tt> includes only single line.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nb">__import__</span><span class="p">(</span><span class="s">&quot;pkg_resources&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">declare_namespace</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Are you ready? Let&#8217;s develop your plugin to extend <tt class="docutils literal"><span class="pre">Handler</span></tt>.
+First of all, define <tt class="xref py py-class docutils literal"><span class="pre">Handler</span></tt> class inherit from <tt class="xref py py-class docutils literal"><span class="pre">BaseHandler</span></tt>
+class. The class name must be <strong>Handler</strong>.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ikazuchi.core.handler.base</span> <span class="kn">import</span> <span class="n">BaseHandler</span>
+<span class="k">class</span> <span class="nc">Handler</span><span class="p">(</span><span class="n">BaseHandler</span><span class="p">):</span>
+    <span class="o">...</span>
+</pre></div>
+</div>
+<p>You must implement 2 methods for <tt class="xref py py-class docutils literal"><span class="pre">Handler</span></tt> class. First method is the
+constructor.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">opts</span><span class="p">):</span>
+    <span class="o">...</span>
+</pre></div>
+</div>
+<p>The constructor takes command line arguments as <a class="reference external" href="http://docs.python.org/dev/library/argparse.html#the-namespace-object">Namespace object</a>.
+<tt class="docutils literal"><span class="pre">opts.plugin</span></tt> has all arguments by passing <cite>-p plugin_name xxx yyy</cite>.
+The other arguments is used if it need.
+See <tt class="docutils literal"><span class="pre">src/ikazuchi/ikazuchi.py</span></tt> in <a class="reference external" href="https://bitbucket.org/t2y/ikazuchi/src">ikazuchi source</a> for detail.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">_call_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">api_method</span><span class="p">):</span>
+    <span class="o">...</span>
+</pre></div>
+</div>
+<p>And then, Implement handler&#8217;s process with <tt class="xref py py-func docutils literal"><span class="pre">_call_method()</span></tt> method.
+This method which is meant translator&#8217;s method expects single list.</p>
+<p>If you need more information, <a class="reference external" href="https://bitbucket.org/t2y/ikazuchi.plugins.pofile">ikazuchi.plugins.pofile</a> source is your help.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «&#160;&#160;<a href="command_ref.html">Command Reference</a>
+        &#160;&#160;::&#160;&#160;
+        <a class="uplink" href="index.html">Contents</a>
+        &#160;&#160;::&#160;&#160;
+        <a href="tips.html">Tips</a>&#160;&#160;»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        &copy; Copyright 2011, Tetsuya Morimoto.
+      Last updated on Jun 03, 2011.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
+    </div>
+  </body>
+</html>

File ikazuchi/build/html/search.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Search &mdash; ikazuchi v0.4 documentation</title>
+    <title>Search &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="index.html" />
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" />
   <script type="text/javascript">
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="index.html">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>Search</span></h2>
       </div>
       <div class="topnav">
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on Jun 01, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/build/html/searchindex.js

-Search.setIndex({objects:{},terms:{all:2,code:[0,2],consider:[],appdata:[0,2],"\u305d\u308c\u306f\u7a32\u59bb\u3092\u610f\u5473\u3059\u308b":2,"\u30de\u30b1\u30c9\u30cb\u30a2\u8a9e":2,sleep:3,follow:[0,1,2,3],keybind:2,"\u30b0\u30eb\u30b8\u30a2\u8a9e":2,flash:2,program:[2,3],reffrenc:[],under:1,sens:3,sourc:2,string:[0,1,2],"\u30c1\u30a7\u30b3\u8a9e":2,fals:[0,2],"\u30bf\u30a4\u8a9e":2,"\u96f7\u306e\u7ffb\u8a33":[0,2,3],veri:0,"\u30bf\u30ac\u30ed\u30b0\u8a9e":2,"try":2,"\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u8a9e":2,quick:[0,1],pleas:[],terms_of_us:[],second:2,pass:[0,1,2],"\u30cf\u30a4\u30c1":2,"2pyfil":2,index:1,thunder:2,lightn:2,"while":3,current:[0,2,3],version:2,"\u5236\u9650\u306f":2,"\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e":2,gener:3,"\u30a6\u30a7\u30fc\u30eb\u30ba\u8a9e":2,"\u30a8\u30f3\u30b3\u30fc\u30c9":3,let:2,path:[],modifi:2,sinc:1,"\u30a2\u30eb\u30d0\u30cb\u30a2\u8a9e":2,search:1,sample_format:2,izuchi:[2,3],"\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e":2,chang:2,"\u306f\u4f55\u304b\u3067\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059":2,modul:[1,3],vim:[1,2],api:[0,1,2,3],isreli:[0,2],instal:2,txt:3,select:0,"\u30c8\u30eb\u30b3\u8a9e":2,"\u30a6\u30af\u30e9\u30a4\u30ca\u8a9e":2,ctrl:2,few:2,call:2,usr:2,recommend:3,taken:0,type:[0,3],until:2,more:3,nkf:3,yahoo:1,warn:[0,2],ikazuchi:[0,1,2,3],must:3,fly:2,word:2,setup:[0,1],work:[1,3],cat:3,paragraph:2,can:[0,1,2,3],purpos:3,short_test_euc:3,"\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e":2,"\u30af\u30ec\u30aa\u30fc\u30eb\u8a9e":2,give:3,share:2,indic:1,aaaa:[],"\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e":2,want:[0,1,2,3],cours:2,end:2,anoth:2,"\u66f8\u5f0f\u6307\u5b9a\u6587\u5b57\u5217":0,write:[],"\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e":2,forest:[2,3],answer:[],simpl:1,confid:[0,2],map:2,clone:0,after:[0,2],"\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e":2,invok:[],befor:2,catalog:1,pyfil:[1,2],mai:[0,3],handl:2,noun:2,ani:[1,3],bing:[0,2],t2y:[0,2],environ:[0,3],enter:[0,2],egg:[],help:[1,2],how:[],euc:3,window:[0,2],might:[2,3],good:[1,2,3],"return":[2,3],python:[0,2,3],sentenc:[0,2,3],now:1,introduct:[0,1],term:[1,3],name:[0,1,2],"\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e":2,"\u3055\u3057\u3059\u305b\u305d":[],"\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e":2,mode:2,each:[0,1,2,3],debug:[],enrai:2,updat:[0,2,3],mean:[2,3],prohibit:3,replac:[2,3],"\u30d1\u30fc\u30b9":2,variabl:[0,2,3],content:[1,3],print:[],got:[],ref:3,given:2,org:0,"\u30da\u30eb\u30b7\u30a2\u8a9e":2,mac:[0,2],keep:[0,1,2,3],think:2,origin:[0,2],pofil:2,note:[0,2,3],directli:2,feel:[],number:2,echo:[2,3],"\u79c1\u306fpython\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u597d\u304d\u3067\u3059":[2,3],done:3,differ:3,silent:2,workaround:[],script:2,messag:2,"\u30e9\u30c8\u30d3\u30a2\u8a9e":2,termin:[2,3],store:2,shell:[1,3],consol:[0,2],option:[0,2,3],"\u304b\u304d\u304f\u3051\u3053":[],tool:[1,2],copi:[],pars:2,rst:[0,1,2],rstfile:2,kind:3,aaa:[],target:[0,2,3],provid:2,"\u68ee\u306e\u307b\u3093":2,structur:2,charact:[1,3],"\u30c9\u30a4\u30c4\u8a9e":2,"\u30a6\u30eb\u30c9\u30a5\u8a9e":2,bootstrap:0,py2:[],mind:3,mine:2,"\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e":2,packag:[],"\u68ee\u306e\u672c":3,have:[0,2],tabl:[1,2],need:[2,3],techniqu:3,lib:[],"\u3053\u3093\u306b\u3061\u306f":2,also:[0,1,3],which:[2,3],command:[0,1,2,3],"\u79c1\u306f\u7ffb\u8a33\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":[0,2,3],singl:2,sure:2,though:3,deploi:[],don:[0,2],later:[],pipe:1,raimei_to:2,microsoft:[0,1,2],show:[0,2],german:2,text:[0,2,3],verbos:[],syntax:2,"\u65e5\u672c\u8a9e":2,rough:3,cell:2,onli:2,explicitli:3,just:[0,2],"\u30ae\u30ea\u30b7\u30e3\u8a9e":2,configur:[0,2],should:[0,2],"\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6587\u5b57\u5217":2,mena:2,get:[0,1,2,3],"\u30b9\u30ef\u30d2\u30ea\u8a9e":2,"\u30a8\u30b9\u30c8\u30cb\u30a2\u8a9e":2,autom:3,"\u3053\u3093\u306b\u3061\u306f\u4e16\u754c":2,cannot:[],"\u4eca\u9031\u306epython\u30e2\u30b8\u30e5\u30fc\u30eb":3,emb:2,"\u30aa\u30e9\u30f3\u30c0\u8a9e":2,set:[0,2],po_fil:[],see:[1,3],result:2,"\u30b9\u30da\u30a4\u30f3\u8a9e":2,"\u30d9\u30c8\u30ca\u30e0\u8a9e":2,statu:2,detect:[0,1,2],inconveni:[],someth:2,"\u305d\u308c\u306f\u96f7\u3092\u610f\u5473\u3059\u308b":2,between:[0,3],progress:2,"\u30de\u30ec\u30fc\u8a9e":2,kei:[0,1,2],mgstr:2,extens:2,"\u30bb\u30eb\u30d3\u30a2\u8a9e":2,vimrc:2,"\u30d5\u30e9\u30f3\u30b9\u8a9e":2,howev:[2,3],quiet:2,against:2,raimei_from:2,com:[0,2],comment:2,simpli:[0,3],"\u79c1\u306f\u512a\u79c0\u306a\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306b\u306a\u308a\u305f\u3044\u3067\u3059":3,"\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e":2,"\u30e9\u30c6\u30f3\u8a9e":2,linux:[0,2],"\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e":2,addition:[0,2,3],"\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9\u8a9e":2,empti:2,"\u79c1\u306fpython\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u597d\u304d":[],"\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u8a9e":2,beispiel:2,xxx:[0,2],argument:[1,2],"\u97d3\u56fd\u8a9e":2,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d":[],those:1,"case":0,multi:2,"\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e":2,"\u30ac\u30ea\u30b7\u30a2\u8a9e":2,look:2,gnu:1,batch:3,cursor:2,calcul:2,apikei:[0,2],abov:2,"\u30d9\u30e9\u30eb\u30fc\u30b7\u8a9e":2,helper:1,stdout:2,site:2,destin:2,conf:[0,2],"\u3044\u304b\u305a\u3061\u306e\u7ffb\u8a33":[0,2],develop:[0,1,2],japanes:2,make:[0,2,3],mayb:[0,2],same:[0,2],ja_jp:[0,3],raimei_api:2,document:1,start:[0,1,2],week:3,http:[0,2],utf8:[0,3],user:[0,2,3],littl:3,built:2,off:2,"\u30d8\u30d6\u30e9\u30a4\u8a9e":2,exampl:[0,2,3],welt:2,thi:[0,2,3],english:0,programm:3,execut:[],when:[0,2,3],rest:[1,2],languag:[0,1,2],web:1,cut:2,msgid:[0,2,3],short_test:[0,2,3],shortcut:2,"\u4e2d\u56fd\u8a9e":2,input:[0,2,3],python2:[],cui:1,bin:[0,2],applic:2,"\u68ee\u6797\u306e\u672c":3,format:[0,1,2],read:3,farawai:2,"\u3042\u3044\u3046\u3048\u304a":[],press:2,world:2,formal:1,"\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e":2,like:[2,3],arbitrari:[],output:[0,2,3],page:1,raimei:2,www:[0,2],some:[2,3],sampl:[0,2],home:[0,2],librari:[2,3],tmp:3,buildout:0,confirm:[0,2],exit:2,"\u3082\u308a\u306e\u307b\u3093":[2,3],refer:[0,1,2,3],"\u30ab\u30bf\u30ed\u30cb\u30a2\u8a9e":2,core:[2,3],run:[0,2],usag:[1,2],from:[0,1,2,3],src:[],"\u30d2\u30f3\u30c7\u30a3\u30fc\u8a9e":2,other:[1,2],effici:[1,3],"\u30d0\u30b9\u30af\u8a9e":2,encod:[1,2,3],easy_instal:0,automat:[],due:2,your:[0,2,3],hallo:2,msgstr:[0,2,3],support:[1,2],enabl:2,"\u5236\u9650\u306e\u3042\u308b":2,width:2,editor:2,strictli:3,"\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e":2,"function":2,"\u30ed\u30b7\u30a2\u8a9e":2,link:[],translat:[0,1,2,3],line:[1,2,3],utf:3,"default":[0,2,3],below:[0,2],limit:2,embed:[2,3],featur:1,"\u30a4\u30bf\u30ea\u30a2\u8a9e":2,doesn:2,repres:2,file:[0,1,2,3],"\u30de\u30eb\u30bf\u8a9e":2,googl:[0,1,2,3],tip:[1,3],gettext:1,book:[2,3],"\u30a4\u30c7\u30a3\u30c3\u30b7\u30e5\u8a9e":2,you:[0,1,2,3],pythoninterp:2,"\u305d\u306e\u5236\u9650\u306f":2,intend:[1,2],"\u30c7\u30f3\u30de\u30fc\u30af\u8a9e":2,"\u30a2\u30e9\u30d3\u30a2\u8a9e":2,queri:3,consid:[],lang:[0,2,3],bitbucket:0,directori:2,descript:2,"\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e":2,escap:2,hello:[0,2]},objtypes:{},titles:["Introduction","ikazuchi - simple translation helper","Command Reference","Tips"],objnames:{},filenames:["introduction","index","command_ref","tips"]})
+Search.setIndex({objects:{},terms:{all:[2,4],code:[0,2],consider:[],appdata:[0,2],"\u305d\u308c\u306f\u7a32\u59bb\u3092\u610f\u5473\u3059\u308b":2,"\u30de\u30b1\u30c9\u30cb\u30a2\u8a9e":2,sleep:3,follow:[0,1,2,3],keybind:2,content:[1,3],flash:2,program:[2,3],reffrenc:[],under:1,sens:3,sourc:[2,4],string:[1,2],"\u30c1\u30a7\u30b3\u8a9e":2,fals:[0,2],"\u30bf\u30a4\u8a9e":2,"\u3082\u308a\u306e\u307b\u3093":[2,3],veri:0,"\u30bf\u30ac\u30ed\u30b0\u8a9e":2,list:[1,4],"try":2,"\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u8a9e":2,quick:[0,1],"\u65e5\u672c\u8a9e":2,pleas:4,terms_of_us:[],second:2,pass:[0,1,2,4],"\u30cf\u30a4\u30c1":2,"2pyfil":2,index:1,thunder:2,lightn:2,"while":3,current:[2,3],version:2,"\u5236\u9650\u306f":2,method:4,"\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e":2,gener:3,"\u30a6\u30a7\u30fc\u30eb\u30ba\u8a9e":2,"\u30a8\u30f3\u30b3\u30fc\u30c9":3,let:[2,4],path:[],modifi:2,sinc:1,"\u30a2\u30eb\u30d0\u30cb\u30a2\u8a9e":2,search:1,sample_format:[0,2],izuchi:[2,3],"\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e":2,chang:2,"\u306f\u4f55\u304b\u3067\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059":2,modul:[1,3],vim:[1,2],api:[0,1,2,3],isreli:[0,2],instal:[2,4],txt:3,select:[],"\u30c8\u30eb\u30b3\u8a9e":2,"\u30a6\u30af\u30e9\u30a4\u30ca\u8a9e":2,stdout:2,few:2,handler:[1,4],call:2,usr:2,recommend:3,taken:0,type:3,until:2,more:[3,4],nkf:3,yahoo:1,warn:[0,2],pkg_resourc:4,ikazuchi:[0,1,2,3,4],must:[3,4],fly:2,word:2,setup:[0,1,4],work:[1,3],cat:3,paragraph:2,can:[0,1,2,3],purpos:3,def:4,short_test_euc:3,"\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e":2,"\u30af\u30ec\u30aa\u30fc\u30eb\u8a9e":2,give:3,process:4,share:2,calcul:2,indic:1,aaaa:[],"\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e":2,want:[1,2,3],cours:2,end:2,anoth:2,"\u66f8\u5f0f\u6307\u5b9a\u6587\u5b57\u5217":[],namespace_packag:4,write:[],how:[1,4],forest:[2,3],answer:[],simpl:1,updat:[2,3],map:2,clone:0,after:2,"\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e":2,befor:2,mac:[0,2],pyfil:[1,2],mai:3,noun:2,ani:[1,3,4],bing:[0,2],bootstrap:0,inform:4,environ:[0,3],enter:2,egg:[],help:[1,2,4],"\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e":2,euc:3,window:[0,2],intend:[1,2],might:[2,3],good:[1,2,3],"return":[2,3],python:[0,2,3],sentenc:[0,2,3],now:1,introduct:[0,1],term:[1,3],name:[1,2,4],"\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e":2,"\u3055\u3057\u3059\u305b\u305d":[],"\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e":2,mode:2,each:[0,1,2,3,4],debug:[],enrai:2,confid:[0,2],mean:[2,3],prohibit:3,t2y:[0,2],replac:[2,3,4],expect:4,"\u30d1\u30fc\u30b9":2,variabl:[0,2,3],encod:[1,2,3],"\u30b0\u30eb\u30b8\u30a2\u8a9e":2,print:[],got:[],ref:3,given:2,base:4,org:0,"\u30da\u30eb\u30b7\u30a2\u8a9e":2,catalog:1,keep:[0,1,2,3],think:2,first:4,origin:[0,2],pofil:[1,2,4],directli:2,feel:[],number:2,echo:[2,3],"\u79c1\u306fpython\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u597d\u304d\u3067\u3059":[2,3],done:3,shortcut:2,"\u5236\u9650\u306e\u3042\u308b":2,differ:3,silent:2,workaround:[],script:2,messag:2,"\u30e9\u30c8\u30d3\u30a2\u8a9e":2,termin:[2,3],store:2,editor:2,shell:[1,3],consol:[0,2],option:[0,2,3,4],"\u304b\u304d\u304f\u3051\u3053":[],namespac:4,tool:[1,2],copi:[],pars:2,rst:[0,1,2],strictli:3,kind:3,aaa:[],target:[0,2,3],provid:[1,2],tree:4,"\u68ee\u306e\u307b\u3093":2,structur:2,charact:[1,3],"\u30c9\u30a4\u30c4\u8a9e":2,"\u30a6\u30eb\u30c9\u30a5\u8a9e":2,py2:[],mind:3,argument:[1,2,4],"\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e":2,packag:4,"\u68ee\u306e\u672c":3,have:[0,2,4],tabl:[1,2],need:[1,2,3,4],techniqu:3,lib:[],self:4,"\u3053\u3093\u306b\u3061\u306f":2,also:[0,1,3,4],take:4,which:[2,3,4],welt:2,"\u79c1\u306f\u7ffb\u8a33\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":[0,2,3],singl:[2,4],sure:2,though:3,object:4,deploi:[],"class":4,don:[0,2],later:[],pipe:1,raimei_to:2,basehandl:4,microsoft:[0,1,2],dot:2,show:[0,2,4],german:2,text:[0,2,3],verbos:[],syntax:2,entry_point:4,rough:3,cell:2,onli:[2,4],explicitli:3,execut:[],"\u30ae\u30ea\u30b7\u30e3\u8a9e":2,configur:[0,2],should:[0,2],"\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6587\u5b57\u5217":2,mena:2,meant:4,get:[0,1,2,3],"\u30b9\u30ef\u30d2\u30ea\u8a9e":2,"\u30a8\u30b9\u30c8\u30cb\u30a2\u8a9e":2,autom:3,"\u3053\u3093\u306b\u3061\u306f\u4e16\u754c":2,cannot:[],"import":4,"\u4eca\u9031\u306epython\u30e2\u30b8\u30e5\u30fc\u30eb":3,emb:2,"\u30aa\u30e9\u30f3\u30c0\u8a9e":2,set:[0,2,4],po_fil:[],see:[1,3,4],result:2,"\u30b9\u30da\u30a4\u30f3\u8a9e":2,"\u30d9\u30c8\u30ca\u30e0\u8a9e":2,statu:2,detect:[0,1,2],extend:[1,2,4],inconveni:[],someth:2,"\u305d\u308c\u306f\u96f7\u3092\u610f\u5473\u3059\u308b":2,between:[0,3],progress:2,"\u30de\u30ec\u30fc\u8a9e":2,kei:[0,1,2],web:1,mgstr:2,extens:2,vimrc:2,"\u30d5\u30e9\u30f3\u30b9\u8a9e":2,plugin:[1,2,4],howev:[2,3],quiet:2,against:2,msgid:[2,3],com:[0,2],comment:2,simpli:[0,3],"\u79c1\u306f\u512a\u79c0\u306a\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306b\u306a\u308a\u305f\u3044\u3067\u3059":3,point:4,"\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e":2,"\u30e9\u30c6\u30f3\u8a9e":2,linux:[0,2],addition:[0,1,2,3],"\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9\u8a9e":2,empti:2,"\u79c1\u306fpython\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u597d\u304d":[],"\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u8a9e":2,beispiel:2,declare_namespac:4,xxx:[0,2,4],great:4,mine:2,"\u97d3\u56fd\u8a9e":2,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d":[],those:1,"case":0,multi:2,"\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e":2,"\u30ac\u30ea\u30b7\u30a2\u8a9e":2,look:2,gnu:1,batch:3,cursor:2,defin:4,invok:[],apikei:[0,2],abov:2,"\u30d9\u30e9\u30eb\u30fc\u30b7\u8a9e":2,bin:[0,2],helper:1,ctrl:2,readi:4,"__import__":4,site:2,destin:2,conf:[0,2],"\u3044\u304b\u305a\u3061\u306e\u7ffb\u8a33":2,"__init__":4,develop:[0,1,2,4],japanes:2,make:[0,2,3,4],format:[0,1,2],same:[0,2],handl:2,raimei_api:2,document:1,week:3,http:[0,2],utf8:[0,3],user:[0,2,3],implement:4,built:2,off:2,entri:4,"\u30d8\u30d6\u30e9\u30a4\u8a9e":2,inherit:4,exampl:[0,2,3,4],command:[0,1,2,3,4],thi:[0,2,3,4],english:0,programm:3,load:4,just:2,from:[0,1,2,3,4],tip:[1,3],rest:[1,2],width:2,languag:[0,1,2],note:[0,2,3],cut:2,raimei_from:2,short_test:[2,3],littl:3,"\u4e2d\u56fd\u8a9e":2,input:[2,3],formal:1,cui:1,opt:4,applic:2,"\u68ee\u6797\u306e\u672c":3,mayb:[0,2],read:3,farawai:2,know:4,"\u3042\u3044\u3046\u3048\u304a":[],press:2,world:2,python2:[],"\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e":2,like:[2,3],arbitrari:[],output:[0,2,3],page:1,raimei:2,www:[0,2],some:[2,3],sampl:2,home:[0,2],librari:[2,3],tmp:3,buildout:0,confirm:[0,2],exit:2,"\u96f7\u306e\u7ffb\u8a33":[2,3],refer:[1,2,3],"\u30ab\u30bf\u30ed\u30cb\u30a2\u8a9e":2,core:[2,3,4],run:[0,2],usag:[1,2,4],"__name__":4,plug:[1,4],src:4,plugin_nam:4,constructor:4,"\u30d2\u30f3\u30c7\u30a3\u30fc\u8a9e":2,book:[2,3],api_method:4,effici:[1,3],"\u30d0\u30b9\u30af\u8a9e":2,"\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e":2,easy_instal:0,automat:[],due:2,yyi:4,your:[0,1,2,3,4],hallo:2,msgstr:[2,3],wai:[],support:[1,2],enabl:2,avail:[2,4],start:[0,1,2],includ:[1,4],rstfile:[0,2,4],"\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e":2,"function":2,"\u30ed\u30b7\u30a2\u8a9e":2,link:[],translat:[0,1,2,3,4],line:[1,2,3,4],utf:3,"default":[0,2,3],below:[0,2,4],limit:2,embed:[2,3],featur:1,"\u30a4\u30bf\u30ea\u30a2\u8a9e":2,doesn:2,repres:2,file:[0,1,2,3],"\u30de\u30eb\u30bf\u8a9e":2,googl:[0,1,2,3],when:[0,2,3],detail:4,gettext:1,ja_jp:[0,3],other:[1,2,4],"\u30a4\u30c7\u30a3\u30c3\u30b7\u30e5\u8a9e":2,you:[0,1,2,3,4],pythoninterp:2,"\u305d\u306e\u5236\u9650\u306f":2,"_call_method":4,"\u30bb\u30eb\u30d3\u30a2\u8a9e":2,"\u30c7\u30f3\u30de\u30fc\u30af\u8a9e":2,"\u30a2\u30e9\u30d3\u30a2\u8a9e":2,queri:3,consid:[],lang:[0,2,3],bitbucket:0,directori:2,descript:2,"\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e":2,escap:2,hello:[0,2]},objtypes:{},titles:["Introduction","ikazuchi - simple translation helper","Command Reference","Tips","Extending ikazuchi Plug-in"],objnames:{},filenames:["introduction","index","command_ref","tips","plugin"]})

File ikazuchi/build/html/tips.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Tips &mdash; ikazuchi v0.4 documentation</title>
+    <title>Tips &mdash; ikazuchi v0.5 documentation</title>
     <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/print.css" type="text/css" />
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.4',
+        VERSION:     '0.5',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/theme_extras.js"></script>
-    <link rel="top" title="ikazuchi v0.4 documentation" href="index.html" />
-    <link rel="prev" title="Command Reference" href="command_ref.html" /> 
+    <link rel="top" title="ikazuchi v0.5 documentation" href="index.html" />
+    <link rel="prev" title="Extending ikazuchi Plug-in" href="plugin.html" /> 
   </head>
   <body>
       <div class="header"><h1 class="heading"><a href="index.html">
-          <span>ikazuchi v0.4 documentation</span></a></h1>
+          <span>ikazuchi v0.5 documentation</span></a></h1>
         <h2 class="heading"><span>Tips</span></h2>
       </div>
       <div class="topnav">
       
         <p>
-        «&#160;&#160;<a href="command_ref.html">Command Reference</a>
+        «&#160;&#160;<a href="plugin.html">Extending ikazuchi Plug-in</a>
         &#160;&#160;::&#160;&#160;
         <a class="uplink" href="index.html">Contents</a>
         </p>
       <div class="bottomnav">
       
         <p>
-        «&#160;&#160;<a href="command_ref.html">Command Reference</a>
+        «&#160;&#160;<a href="plugin.html">Extending ikazuchi Plug-in</a>
         &#160;&#160;::&#160;&#160;
         <a class="uplink" href="index.html">Contents</a>
         </p>
 
     <div class="footer">
         &copy; Copyright 2011, Tetsuya Morimoto.
-      Last updated on May 31, 2011.
+      Last updated on Jun 03, 2011.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
     </div>
   </body>

File ikazuchi/source/command_ref.rst

 All command option are::
 
     $ ikazuchi -h
-    usage: ikazuchi [-h] [-v] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
-                    [-p POFILE] [-q] [-r RSTFILE] [-s SENTENCE [SENTENCE ...]]
-                    [-t LANG]
+    usage: ikazuchi [-h] [-a API] [-d] [-e ENCODING] [-f LANG] [-l]
+                    [-p PLUGIN [PLUGIN ...]] [-q] [-s SENTENCE [SENTENCE ...]]
+                    [-t LANG] [--version]
 
     optional arguments:
       -h, --help            show this help message and exit
-      -v, --version         show program's version number and exit
       -a API, --api API     APIs are ['google', 'microsoft']
       -d, --detect          detect language for target sentence
       -e ENCODING, --encoding ENCODING
                             input/output encoding
       -f LANG, --from LANG  original language
       -l, --languages       show supported languages
-      -p POFILE, --pofile POFILE
-                            target po file
+      -p PLUGIN [PLUGIN ...], --plugin PLUGIN [PLUGIN ...]
+                            extend with plugin, show available plugins using
+                            "help"
       -q, --quiet           not to show original sentence to stdout
-      -r RSTFILE, --rstfile RSTFILE
-                            target reST file
       -s SENTENCE [SENTENCE ...], --sentences SENTENCE [SENTENCE ...]
                             target sentences
       -t LANG, --to LANG    target language to translate
+      --version             show program's version number and exit
 
 
 Get API KEY for Translate API
 Translate with PO file
 ----------------------
 
+.. note::
+
+    It needs to install `ikazuchi.plugins.pofile`_ before you try to run.
+
+.. _ikazuchi.plugins.pofile: http://pypi.python.org/pypi/ikazuchi.plugins.pofile/
+
 It can show good reference to translate msgid for PO file.
-Pass a po file with **-p** option.
+Pass a po file with **-p pofile** option.
 
 ::
 
-    $ ikazuchi -a microsoft -p examples/short_test.po 
+    $ ikazuchi -a microsoft -p pofile examples/short_test.po 
 
 If a current mgstr doesn't need to modify, just press enter key on terminal(``Input:``).
 
 -----------------------
 
 It can translate rst file keeping the format. Pass a rst file with
-**-r** option. The progress status is represented ``.``.
+**-p rstfile** option. The progress status is represented **. (dot)**.
 The result file is ``output.rst``.
 
 ::
 
-    $ ikazuchi -r sample.rst
+    $ ikazuchi -p rstfile sample.rst
     ....................................................................
     $ ls output.rst 
     output.rst
 
 .. note::
 
-    `raimei` and `enrai` scripts are maybe installed in ``/usr/bin`` directory
-    as same as `ikazuchi` command on Linux/Mac OS X.
+    `raimei` and `enrai` scripts are maybe installed in bin directory,
+    such as ``/usr/bin``, as same as `ikazuchi` command on Linux/Mac OS X.
 
 .. note::
 

File ikazuchi/source/conf.py

 # The short X.Y version.
 version = '0.1'
 # The full version, including alpha/beta/rc tags.
-release = '0.4'
+release = '0.5'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.

File ikazuchi/source/index.rst

 ikazuchi - simple translation helper
 ====================================
 
-`ikazuchi <https://bitbucket.org/t2y/ikazuchi>`_
-helps to translate document using web translate APIs efficiently.
+`ikazuchi`_ helps to translate document using web translate APIs efficiently.
 `ikazuchi` is intended to work with other tools since it's a CUI tool.
 
 ********
 
 Now, `ikazuchi` is under development.
 
-* `ikazuchi` can use 2 APIs,
-  `Google Translate API <http://code.google.com/intl/ja/apis/language/translate/overview.html>`_,
-  `Microsoft Translator <http://www.microsofttranslator.com/dev/>`_.
-  (`Yahoo! Pipes <http://pipes.yahoo.com/pipes/>`_ is not supported as formal feature.)
-* Translate GNU gettext catalog named PO file with good reference from web API
-* Translate reST document file keeping with the format
+* `ikazuchi` can use 2 APIs, `Google Translate API`_ and `Microsoft Translator`_.
+  (`Yahoo! Pipes`_ is not supported as formal feature.)
 * Translate any string passed from command line argument
 * Translate any string in Vim using ":pyfile" command
 * Detect language of any string passed from command line argument
+* Extend ``Handler`` with plug-in to your needs
+
+Additionally, these features are provided by plug-in.
+
+* Translate GNU gettext catalog named PO file with good reference from web API
+  (provided by `ikazuchi.plugins.pofile`_)
+* Translate reST document file keeping with the format (included in `ikazuchi`)
 
 .. seealso::
 
    See :ref:`terms_of_use` for each APIs you want to use.
 
+.. _ikazuchi: https://bitbucket.org/t2y/ikazuchi
+.. _Google Translate API:  http://code.google.com/intl/ja/apis/language/translate/overview.html
+.. _Microsoft Translator: http://www.microsofttranslator.com/dev/
+.. _Yahoo! Pipes: http://pipes.yahoo.com/pipes/
+.. _ikazuchi.plugins.pofile: http://pypi.python.org/pypi/ikazuchi.plugins.pofile/
 
 ********
 Contents
 
    introduction
    command_ref
+   plugin
    tips
 
 .. _terms_of_use:
 
 `ikazuchi` follows those the TOS of each APIs.
 
-* `Google Translate API Terms of Use <http://code.google.com/intl/ja/apis/language/translate/terms.html>`_
-* `Microsoft Terms of Use <http://www.bing.com/developers/tou.aspx>`_
-* `Yahoo! Pipes Terms of Use <http://info.yahoo.com/legal/us/yahoo/pipes/pipes-4396.html>`_
+* `Google Translate API Terms of Use`_
+* `Microsoft Terms of Use`_
+* `Yahoo! Pipes Terms of Use`_
 
+.. _Google Translate API Terms of Use: http://code.google.com/intl/ja/apis/language/translate/terms.html
+.. _Microsoft Terms of Use: http://www.bing.com/developers/tou.aspx
+.. _Yahoo! Pipes Terms of Use: http://info.yahoo.com/legal/us/yahoo/pipes/pipes-4396.html
 
 ******************
 Indices and tables

File ikazuchi/source/introduction.rst

 
    $ hg clone https://t2y@bitbucket.org/t2y/ikazuchi
    $ cd ikazuchi
-   $ python bootstrap.py
+   $ python bootstrap.py -d
    $ bin/buildout
 
 
     sentence:                hello
     detect(Google):          [{u'isReliable': False, u'confidence': 0.01737435, u'language': u'en'}]
 
-Or, you may translate PO file with reference.
-You can entered translation string for msgid after ``Input:``.
-Or just type "y" if you want to select reference string.
-
-::
-
-    $ ikazuchi -p examples/short_test.po 
-    msgid:                   ikazuchi translation
-    current msgstr:          いかずちの翻訳
-    reference(Google):       雷の翻訳
-    Input:  
-    updated msgstr:          いかずちの翻訳
-
-    msgid:                   format string: "%(name)r"
-    reference(Google):       書式指定文字列: "%(name)r"
-    Input: y
-    updated msgstr:          書式指定文字列: "%(name)r"
-
 Additionally, RST file also can be translated keeping the format.
 
 ::
 
-    $ ikazuchi -r sample.rst
+    $ ikazuchi -p rstfile examples/sample_format.rst
     ....................................................................
     $ ls output.rst 
     output.rst

File ikazuchi/source/plugin.rst

+==========================
+Extending ikazuchi Plug-in
+==========================
+
+Plug-in lists
+-------------
+
+There are plugins lists as below.
+
+* `ikazuchi.plugins.rstfile`_
+* `ikazuchi.plugins.pofile`_
+
+.. _ikazuchi.plugins.rstfile: https://bitbucket.org/t2y/ikazuchi
+.. _ikazuchi.plugins.pofile: https://bitbucket.org/t2y/ikazuchi.plugins.pofile
+
+Please let me know if you have/know great plug-ins.
+
+
+Usage
+-----
+
+Passing ``help`` to **-p** option shows installed all plugins to be available.
+
+::
+
+    $ ikazuchi -p help
+    Available plugins are:
+    pofile
+    rstfile
+
+
+How to Develop
+--------------
+
+To load any plugin, **setup.py** must be set to defines `namespace package`_
+and `entry points`_ as below. It replace ``plugin_name`` with your plugin name.
+
+::
+
+    ...
+    namespace_packages=["ikazuchi", "ikazuchi.plugins"],
+    ...
+    entry_points={
+       "ikazuchi.plugins": [
+           "plugin_name = ikazuchi.plugins.plugin_name",
+       ],
+    },
+
+Also, you must make ``plugin_name.py`` as plugin. For example,
+`ikazuchi.plugins.pofile`_ has ``pofile.py``.
+
+::
+
+    $ tree src/ikazuchi
+    src/ikazuchi
+    ├── __init__.py
+    ├── plugins
+        ├── __init__.py
+        ├── pofile.py
+
+Each ``__init__.py`` includes only single line.
+
+::
+
+    __import__("pkg_resources").declare_namespace(__name__)
+
+Are you ready? Let's develop your plugin to extend ``Handler``.
+First of all, define :class:`Handler` class inherit from :class:`BaseHandler`
+class. The class name must be **Handler**.
+
+::
+
+    from ikazuchi.core.handler.base import BaseHandler
+    class Handler(BaseHandler):
+        ...
+
+You must implement 2 methods for :class:`Handler` class. First method is the
+constructor.
+
+::
+
+        def __init__(self, opts):
+            ...
+
+The constructor takes command line arguments as `Namespace object`_.
+``opts.plugin`` has all arguments by passing `-p plugin_name xxx yyy`.
+The other arguments is used if it need.
+See ``src/ikazuchi/ikazuchi.py`` in `ikazuchi source`_ for detail.
+
+::
+
+        def _call_method(self, api_method):
+            ...
+
+And then, Implement handler's process with :func:`_call_method` method.
+This method which is meant translator's method expects single list.
+
+If you need more information, `ikazuchi.plugins.pofile`_ source is your help.
+
+.. _ikazuchi source: https://bitbucket.org/t2y/ikazuchi/src
+.. _namespace package: http://packages.python.org/distribute/setuptools.html#namespace-packages
+.. _entry points: http://packages.python.org/distribute/setuptools.html#entry-points
+.. _Namespace object: http://docs.python.org/dev/library/argparse.html#the-namespace-object