このリポジトリへのコントリビュート (貢献) 方法についてのガイドです。
注意: 翻訳に参加したい場合はこの文章を必ず一読してください。
このリポジトリの構造は以下のようになっています。
i18n/
: OmegaTのプロジェクトが格納されたディレクトリlocale/
: 翻訳元/翻訳後のファイルが格納されたディレクトリen/
: 翻訳元のディレクトリja/
: 翻訳後のディレクトリ
また、en/
ディレクトリとja/
ディレクトリにはそれぞれ、次のようなディレクトリがあります。
注意: これらのディレクトリにあるファイルに対して、原則として直接の編集は行なわないでください。
このリポジトリのほとんどのファイルはOmegaTやmake
などのツール・コマンドを介して更新されています。
このリポジトリはgit
のサブモジュールを使っています。
なので--recursive
オプションをつけてクローンすることをオススメします。
$ git clone --recursive https://github.com/crystal-jp/ja.crystal-lang.org
$ cd ja.crystal-lang.org
もし--recursive
オプションをつけ忘れた場合はgit submodule update --init
としてもサブモジュールを取得できます。
静的サイトジェネレータとしてGitBookを利用しています。 GitBookはMarkdownでドキュメントを記述できるツールです。詳細はGitBookのドキュメントを確認してください。
GitBookを利用するにはCLIツールをインストールする必要があります。
npm
コマンドが使える環境で、以下のコマンドを実行してください。
$ npm install -g gitbook-cli
これでgitbook
コマンドが利用できるようになります。
(npm install -g
をするのが嫌な場合はインストールをせず、gitbook
コマンドの代わりにnpx -p gitbook-cli gitbook
とすることもできます。)
次にGitBookのプラグイン等をインストールします。
$ cd locale/ja/crystal-book # ディレクトリの移動
$ gitbook install
最後に、プレビュー用のサーバーを起動します。 最初にビルドをするので、サーバーが立ち上がるまで少し時間がかかるのに注意してください。
$ gitbook serve
Serving book on http://localhost:4000
と出たらブラウザでhttp://localhost:4000/を開くとプレビューが見れるはずです。
一度gitbook serve
を実行すると、locale/ja/crysta-book
以下のファイルが更新される度に再度ビルドが行なわれ、自動で内容が更新されるようになっています。
以降、依存関係等の更新が無ければ、最後のgitbook serve
を実行するだけでプレビューができます。
(crystal-book
のREADME.md
にはdocker-compose
を利用する方法も説明されていますが、この方法はファイルを更新したときに安定しないので個人的にはオススメしません)
静的サイトジェネレータとしてJekyllを利用しています。 JekyllはRubyで書かれた静的サイトジェネレータです。詳細は公式サイトを確認してください。
こちらはプレビューにdocker-compose
を使っても問題が起きづらいので、その方法で説明します。
次のコマンドを実行してください。
$ cd locale/ja/crystal-website # ディレクトリの移動
$ docker-compose up
これでしばらく待つとServer address: http://0.0.0.0:4000
という表示が出るので、ブラウザでhttp://localhost:4000を開くとプレビューが見れます。
こちらもlocale/ja/crystal-website
以下のファイルが更新されると自動で再度をビルドを行います。
翻訳にはOmegaTというソフトウェアを利用しています。 またOmegaTにいくつかのプラグインを導入する必要があります。 その方法を説明していきます。
まずOmegaTをインストールしてください。 筆者はバージョン4.3.2 (6a661c5e0) というバージョンのOmegaTを利用しています。 なるべく、このバージョンに近いOmegaTをインストールしてください。
(Homebrewであればbrew cask install omegat
でインストールできます)
次にMarkdownを翻訳するために必要なプラグインであるOkapi Filters Plugin for OmegaTをインストールします。 基本的には「Download and Installation」の内容に従えばよいです。
- Okapi Filter Pluginのリリースページからバージョン1.7-1.39のzipファイルをダウンロードしてください。
(
okapiFiltersForOmegaT-1.7-1.39-dist.zip
という名前です) - ダウンロードしてきたzipファイルを解凍して、その中にあるjarファイル(
okapiFiltersForOmegaT-1.7-1.39.jar
)をOmegaTの設定ファイルのあるディレクトリに配置します。 設定ファイルのあるディレクトリはWindowsであれば<OmegaTをインストールしたディレクトリ>/plugins
、macOSであれば~/Library/Preferences/OmegaT/plugins
です。
重複したファイルをリポジトリに入れることを避けるため、翻訳プロジェクトには翻訳対象のファイルは含まれていません。
次のコマンドを実行して、翻訳元からi18n/source
ディレクトリに翻訳対象のファイルをコピーする必要があります。
$ make i18n/source
このコマンドによってlocale/en
以下の翻訳対象のファイルがi18n/source
ディレクトリ以下にコピーされて、OmegaTで開いた際の翻訳対象に含まれるようになります。
ここまで来ればOmegaTでこのプロジェクトを開くことができるはずです。
OmegaTのメニューから「プロジェクト > 開く」でこのリポジトリのi18n
ディレクトリを指定するか、macOSであればopen -a OmegaT i18n
などと実行して、OmegaTでこのプロジェクトを開いてみてください。
次にOmegaTのフィルタを設定します。 これをしないと、翻訳済みの文章が適切に表示されなかったり、訳文ファイルを生成したときに余計な差分が発生してしまう可能性があります。
OmegaTを起動してプロジェクトを開いた状態で「プロジェクト > プロジェクト設定」を選択して、プロジェクト設定ダイアログを表示してください。 そして、その中の「ファイルフィルター」というボタンを押して、フィルタの設定画面を開いて、以下の操作を行なってください。
- 「HTML・XHTML」という項目にあるチェックを外します。
- 「Markdown files (Okapi)」という項目を選択して、「設定」ボタンをクリック。
出てきた画面で「Use the file parameters file:」にこのプロジェクトの
i18n/okapi/[email protected]
を選択してください。 - 「HTML files (Okapi)」という項目を選択して、「設定」ボタンをクリック。
出てきた画面で「Use the file parameters file:」にこのプロジェクトの
i18n/okapi/[email protected]
を選択してください。
以上で設定は完了です。 設定を更新したらプロジェクトを再読み込みするよう促されるはずなので、ここで再読み込みを必ず行なってください。
これでOmegaTでの翻訳をはじめられるはずです。 OmegaTの具体的な使い方は各自調べてください。
あるファイルに対して翻訳が完了したら、OmegaTでプロジェクトを保存したのち、「プロジェクト > 訳文ファイルを生成」を実行してください。
これを実行することで、i18n/target
に翻訳結果のファイルが生成されます。
そして、次のコマンドを実行することで、翻訳結果のファイルがlocale/ja
以下にコピーされます。
$ make locale/ja
この後は、通常Gitを使うようにgit switch
、git add
、git commit
して、自分のForkしたリポジトリに向かってgit push
してください。
$ git switch -c feat/translate-xxx
$ git add i18n locale/ja/
$ git commit -m "feat: translate xxx"
$ git push fork feat/translate-xxx
その後、GitHubでPull Requestを作成してください。