.. -*- rst -*-

.. highlightlang:: none

I18N
====

We only had documentation in Japanese.  We start to support
I18N documentation by gettext based `Sphinx I18N feature`_.
We'll use English as base language and translate
English into other languages such as Japanese. We'll put
all documentations into doc/source/ and process them by
Sphinx.

.. _Sphinx I18N feature: http://sphinx.pocoo.org/latest/intl.html

But we still use Japanese in doc/source/ for now. We need to
translate Japanese documentation in doc/source/ into
English. We welcome to you help us by translating
documentation.

Translation flow
----------------

After doc/source/\*.txt are updated, we can start translation.

Here is a translation flow:

1. Clone groonga repository.
2. Update .po files.
3. Edit .po files.
4. Generate HTML files.
5. Confirm HTML output.
6. Repeat 2.-4. until you get good result.
7. Send your works to us!

Here are command lines to do the above flow. Following
sections describes details.

::

  # Please fork https://github.com/groonga/groonga on GitHub
  % git clone https://github.com/${YOUR_GITHUB_ACCOUNT}/groonga.git
  % ./autogen.sh
  % ./configure
  % cd doc/locale/${LANGUAGE}/LC_MESSAGES # ${LANGUAGE} is language code such as 'ja'.
  % make update # *.po are updated
  % editor *.po # translate *.po # you can use your favorite editor
  % cd ..
  % make html
  % browser html/index.html # confirm translation
  % git add LC_MESSAGES/*.po
  % git commit
  % git push

How to clone groonga repository
-------------------------------

First, please fork groonga repository on GitHub. You
just access https://github.com/groonga/groonga and press
`Fork` button. Now you can clone your groonga repository::

  % git clone https://github.com/${YOUR_GITHUB_ACCOUNT}/groonga.git

Then you need to configure your cloned repository::

  % cd groonga
  % ./autogen.sh
  % ./configure

The above steps are just needed at the first setup.

If you have troubles on the above steps, you can use source
files available on http://packages.groonga.org/source/groonga/ .

How to update .po files
-----------------------

You can update .po files by running `make update` on
doc/locale/${LANGUAGE}/LC_MESSAGES. (Please substitute
`${LANGUAGE}` with your language code such as 'ja'.)::

  % cd doc/locale/ja/LC_MESSAGES
  % make update

How to edit .po
---------------

There are some tools to edit .po files. .po files are just
text. So you can use your favorite editor. Here is a
specialized editor for .po file edit list.

Emacs's po-mode_
  It is bundled in gettext.

Poedit_
  It is a .po editor and works on many platform.

gted
  It is also a .po editor and is implemented as Eclipse plugin.

.. _po-mode: http://www.gnu.org/s/hello/manual/gettext/PO-Mode.html
.. _Poedit: http://www.poedit.net/
.. _gted: http://www.gted.org/

How to generate HTML files
--------------------------

You can generate HTML files with updated .po files by
running `make html` on doc/locale/${LANGUAGE}. (Please
substitute `${LANGUAGE}` with your language code such as
'ja'.)::

  % cd doc/locale/ja/
  % make html

You can also generate HTML files for all languages by
running `make html` on doc/locale::

  % cd doc/locale
  % make html

.. note::

   .mo files are updated automatically by `make html`. So
   you don't care about .mo files.

How to confirm HTML output
--------------------------

HTML files are generated in
doc/locale/${LANGUAGE}/html/. (Please substitute
`${LANGUAGE}` with your language code such as 'ja'.) You can
confirm HTML output by your favorite browser::

  % firefox doc/locale/ja/html/index.html

How to send your works
----------------------

We can receive your works via pull request on GitHub or
E-mail attachment patch or .po files themselves.

How to send pull request
++++++++++++++++++++++++

Here are command lines to send pull request::

  % git add doc/locale/ja/LC_MESSAGES/*.po
  % git commit
  % git push

Now you can send pull request on GitHub. You just access
your repository page on GitHub and press `Pull Request`
button.

.. seealso:: `Help.GitHub - Sending pull requests <http://help.github.com/pull-requests/>`_.

How to send patch
+++++++++++++++++

Here are command lines to create patch::

  % git add doc/locale/ja/LC_MESSAGES/*.po
  % git commit
  % git format-patch origin/master

You can find 000X-YYY.patch files in the current
directory. Please send those files to us!

.. seealso:: :doc:`/community` describes our contact information.

How to send .po files
+++++++++++++++++++++

Please archive doc/locale/${LANGUAGE}/LC_MESSAGES/ (Please
substitute `${LANGUAGE}` with your language code such as
'ja'.) and send it to us! We extract and merge them to the
groonga repository.

.. seealso:: :doc:`/community` describes our contact information.

How to add new language
-----------------------

Here are command lines to add new translation language::

  % cd doc/locale
  % make add LOCALE=${LANGUAGE} # specify your language code such as 'de'.

Please substitute `${LANGUAGE}` with your language code such
as 'ja'.

.. seealso:: `Codes for the Representation of Names of Languages <http://www.loc.gov/standards/iso639-2/php/English_list.php>`_.
