本文へスキップ
`Ctrl`+`K`

# 12.2.2. 国際化

今のところ、Groongaには日本語でのドキュメントしかありません。1.2.2からgettextベースの Sphinx I18N feature を使ってドキュメントの国際化対応を始めました。この仕組みではベースの言語として英語を使い、日本語などの他の言語には英語からその言語に翻訳します。すべてのドキュメントはdoc/source/以下において、それをSphinxで処理します。

しかし、今のところ、doc/source/では日本語を使っています。そのため、まずは、doc/source/以下にある日本語のドキュメントを英語に翻訳する必要があります。ドキュメントを翻訳して、パッチを送ってくれるととても喜びます。

## 12.2.2.1. 翻訳の流れ

doc/source/*.txtを更新したら、翻訳を始めます。

これが翻訳の流れです:

1. Sphinxをインストールします。（インストールされていない場合）

2. Groongaのリポジトリをcloneします。

3. `.edit` ファイルを更新します。

4. `.edit` ファイルを編集します。

5. `.po` ファイルを更新します。

6. HTMLファイルを生成します。

7. HTMLの出力を確認します。

8. 翻訳が完了するまで、3.-7.を繰り返します。

9. 翻訳作業の成果をGroongaプロジェクトに送ってください！

上記の流れを実行するコマンドラインです。詳細は以降のセクションで説明します。

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

## 12.2.2.2. Sphinxのインストール方法

導入 を参照してください。

## 12.2.2.3. Groongaリポジトリのcloneの仕方

はじめに、GitHub上のGroongaリポジトリをforkしてください。 groonga/groonga にアクセスして Fork ボタンを押すだけです。これで自分のGroongaリポジトリをcloneすることができます。:

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

cloneした後はconfigureする必要があります。:

    % cd groonga
    % ./autogen.sh
    % ./configure --enable-document

この作業は初回セットアップ時のみだけの作業です。

以上の作業で問題があった場合は、 https://packages.groonga.org/source/groonga/ にあるソースファイルを利用してもよいです。

## 12.2.2.4. `.edit` ファイルの更新の仕方

`doc/locale/${LANGUAGE}/LC_MESSAGES` ディレクトリで make を実行すると `.edit` ファイルを更新できます。（${LANGUAGE} は'ja'など自分の言語の言語コードに置き換えてください。）:

    % cd doc/locale/ja/LC_MESSAGES
    % make

## 12.2.2.5. `.edit` ファイルの編集の仕方

`edit` ファイルと `po` ファイルはどちらも PO ファイル です。 `.edit` ファイルは編集用で、 `.po` ファイルはバージョン管理用です。

様々なツールで `.edit` ファイルを編集できます。 `.edit` ファイルは単なるテキストなので好きなエディタで編集できます。

以下は `.edit` ファイルの編集に特化したエディタのリストです。`.edit` ファイルの実体は `.po` ファイルなので、これらのエディタを使うことができます。

Emacs's po-mode

  gettextに同梱されています。

Poedit

  `.po` 専用エディタです。たくさんのプラットフォームで動作します。

gted

  これも `.po` 専用エディタです。Eclipseプラグインとして実装されています。

## 12.2.2.6. `.po` ファイルの更新の仕方

`.edit` ファイルを編集した後、 `doc/locale/${LANGUAGE}/LC_MESSAGES` ディレクトリで `make` を実行すると `.po` ファイルを更新できます。（${LANGUAGE} は'ja'など自分の言語の言語コードに置き換えてください。）

    % cd doc/locale/ja/LC_MESSAGES
    % make

## 12.2.2.7. HTMLファイルの生成方法

doc/locale/${LANGUAGE}ディレクトリで make html を実行すると更新した `.po` ファイルを使ってHTMLファイルを生成できます。（${LANGUAGE} は'ja'など自分の言語の言語コードに置き換えてください。）:

    % cd doc/locale/ja/
    % make html

全ての言語のHTMLファイルを生成するにはdoc/locale/ディレクトリで make html を実行します。:

    % cd doc/locale
    % make html

注釈

.moファイルは make html で自動的に更新されるので、.moファイルのことを気にする必要はありません。

## 12.2.2.8. HTML出力の確認の仕方

HTMLファイルはdoc/locale/${LANGUAGE}/html/以下に出力されます。（${LANGUAGE} は'ja'など自分の言語の言語コードに置き換えてください。）好きなブラウザで出力されたHTMLを確認してください。:

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

## 12.2.2.9. 翻訳の成果の送り方

翻訳の成果はGitHubのpull requestかメールで送ってください。メールで送る場合はパッチでも `.po` ファイルそのものでも構いません。

### 12.2.2.9.1. pull requestの送り方

pull requestを送るためのコマンドライン:

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

これでGitHub上でpull requestを送る準備ができました。あとは、GitHub上の自分のリポジトリのページへアクセスして Pull Request ボタンを押すだけです。

参考

Help.GitHub - pull requestを送る.

### 12.2.2.9.2. パッチの送り方

パッチを作るためのコマンドライン

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

カレントディレクトリに000X-YYY.patchという名前のファイルができていると思います。これをGroongaプロジェクトに送ってください！

参考

コミュニティ に連絡先の情報があります。

### 12.2.2.9.3. `.po` ファイルの送り方

doc/locale/${LANGUAGE}/LC_MESSAGES/以下を.tar.gzや.zipなどでアーカイブにしてGroongaプロジェクトに送ってください！（${LANGUAGE} は'ja'など自分の言語の言語コードに置き換えてください。）こちらでアーカイブの中の内容をマージします。

参考

コミュニティ に連絡先の情報があります。

## 12.2.2.10. 新しい言語の追加方法

新しい翻訳対象の言語を追加するコマンドライン:

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

${LANGUAGE} は'ja'などの自分の言語の言語コードに置き換えてください。

参考

言語名を表記するためのコードの一覧.