Vimに付属する日本語翻訳ファイルを管理するリポジトリ
パス | 説明 |
---|---|
src/po/, runtime/lang | Vimに付属の日本語翻訳ファイルが置いてあります。 |
src/po/ja.po | Vimのメッセージ翻訳ファイルのマスター(UTF-8) |
runtime/lang/menu_ja_jp.utf-8.vim | Vimの日本語メニューファイルのマスター(UTF-8) |
runtime/doc/*-ja.UTF-8.1 | 日本語manファイル(UTF-8) |
runtime/doc/*.1 | 原文manファイル |
runtime/tutor/tutor.ja.utf-8 | 日本語チュートリアルファイル(UTF-8) |
runtime/tutor/tutor | 原文チュートリアルファイル |
nsis/lang | Windows用インストーラーの翻訳ファイル |
以下のコマンドを実行して原文ファイルを現在の作業ディレクトリに取り込む。
(VIM_SRC_DIR
で Vim のソースディレクトリを指定)
$ make import-en-files VIM_SRC_DIR=../vim
この手順では、vim.pot ファイル、man ファイル、チュートリアルファイル、NSIS ファイルの原文ファイルをまとめて取り込む。個別に取り込む場合や注意事項は以下の それぞれの項目を参照のこと。
メニューファイルについては、原文ファイルにあたるものがないので、取り込みは行わ
ない。runtime/menu.vim
などの履歴を見て手動で適宜更新する必要がある。
-
vim.pot を作成(要xgettext)
(前述の原文ファイル取り込み手順を実施済みであれば不要。)
Vimのソースで以下を実行して、生成される vim.pot を src/po へコピー
$ cd src/po $ make vim.pot
註:
make vim.pot
を実行するにはsrc/
で./configure
を実行しておく必 要があるが、src/po/Makefile
の4行目のinclude ../auto/config.mk
をコメ ントアウトして回避することも可能。(あるいは、空のsrc/auto/config.mk
を 用意してもよい。)Windows 上で vim.pot を生成するには、Cygwin や MSYS2 等の Linux 的な環境を 使うこと。(MSVC 用の Makefile も用意されているが、ソースファイルの読み込み 順序が異なるために余計な差分が出てしまう。)
また、古いソースを使って Win32 向けにビルドしたことでsrc/if_perl.c
が 残っているならば、vim.pot 生成前に削除しておくこと。(余計な差分が出るのを 防ぐため。) -
ja.po に vim.pot をマージ (古いものは ja.po.old へ退避される)
$ make merge
-
ja.po のコピーライトやヘッダーを適宜修正
これはPRを作るだけの場合は、やらないほうが良いかも。
-
翻訳する
Vimを使って下記の検索コマンドで翻訳すべき場所を探すと良い。
/fuzzy\|^msgstr ""\(\n"\)\@!
-
不要な情報の削除
Vim で以下のようにする。
:source cleanup.vim
cleanup.vim は Vim 本体からのコピー (実行には Vim 8.0.0794 以降が必要)
-
チェック
$ vim -S check.vim ja.po
make check
でも代替可能。 -
もう1回マージして、整形と消しすぎたコメントの復活
$ make merge-force $ vim ja.po :source cleanup.vim :wq
-
原文manファイルの更新
(前述の原文ファイル取り込み手順を実施済みであれば不要。)
Vimのソースファイルの runtime/doc/ ディレクトリから、原文manファイルを本リ ポジトリにコピー。
$ cd /path/to/vim/runtime/doc $ cp evim.1 vim.1 vimdiff.1 vimtutor.1 xxd.1 /path/to/lang-ja/runtime/doc
-
翻訳
原文の差分を見つつ翻訳ファイルを更新する。
$ git diff | gvim -R -
-
表示確認
以下のコマンドで表示を確認できる。
$ groff -Tutf8 -Dutf8 -mandoc -mja vim-ja.UTF-8.1 | less -R
-
エラーチェック
以下のコマンドでmanの文法に違反していないかチェックできる。
$ make test
ファイル単体をチェックする場合は以下のコマンドを使う。
$ LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z vim-ja.UTF-8.1 2>&1 > /dev/null | grep -v "cannot adjust line\|\(cannot\|can't\) break line"
(末尾の
grep -v
は、日本語の場合に大量に表示されるcannot adjust line
とcannot break line
(あるいはcan't break line
) を除外するためのもの。)参照: https://lintian.debian.org/tags/manpage-has-errors-from-man.html
-
コミット
原文と日本語訳は常に同じバージョンがコミットされているように注意すること。
-
原文チュートリアルファイルの更新
(前述の原文ファイル取り込み手順を実施済みであれば不要。)
Vimのソースファイルの runtime/tutor/ ディレクトリから、原文チュートリアル ファイルを本リポジトリにコピー。
$ cd /path/to/vim/runtime/tutor $ cp tutor /path/to/lang-ja/runtime/tutor
-
翻訳
原文の差分を見つつ翻訳ファイルを更新する。
$ git diff | gvim -R -
-
コミット
原文と日本語訳は常に同じバージョンがコミットされているように注意すること。
-
原文 NSIS ファイルの更新
(前述の原文ファイル取り込み手順を実施済みであれば不要。)
Vimのソースファイルの nsis/lang/ ディレクトリから、原文 NSIS ファイルを 本リポジトリにコピー。
$ cd /path/to/vim/nsis/lang $ cp english.nsi /path/to/lang-ja/nsis/lang
-
翻訳
原文の差分を見つつ翻訳ファイルを更新する。
$ git diff | gvim -R -
-
コミット
原文と日本語訳は常に同じバージョンがコミットされているように注意すること。
-
Vim のソースディレクトリに行き、
runtime/menu.vim
やruntime/lang/
の 履歴を調べる。 -
必要な変更を
runtime/lang/menu_ja*.vim
に反映する。
-
各リソースが最新に近いことを確認する
TODO: 将来、より具体的で自動化された手段を提供したい
-
PO-Revision-Date
を更新するja.po のヘッダにある
PO-Revision-Date
を、リリース用に更新する。 -
テストをパスする
$ make test
CI で実行しているのでローカルでやる意味は無いが、テストをパスするこ とを確認する。
-
リリース用アーカイブを作成する
$ make release-today
vim-lang-ja-20160131.tar.xz
といったアーカイブファイルができる。20160131
の部分は実行した日付に置き換わる。前回のリリースから、
*.po
以外のファイルが更新されていない場合は、po のみのリリース用アーカイブを作成する。(Bram の要請。)$ cd src/po/ $ make release-today
vim-lang-ja-po-YYYYMMDD.tar.xz
といったアーカイブファイルができる。YYYYMMDD
の部分は実行した日付に置き換わる。 -
Vim のソースディレクトリを更新する
GitHub に PR を出す場合は、以下のコマンドを実行して Vim のソースディレクト リを更新する。 (
VIM_SRC_DIR
で Vim のソースディレクトリを指定)$ make update-src-dir VIM_SRC_DIR=../vim
-
タグを打ち、GitHub Releases を更新する
タグの形式は YYYYMMDD とする。例:
$ git tag 20181116 -m 'Catch up with 8.1.0519' $ git push origin master --tags
タグが push できたら、GitHub Releases に新しいリリースを作り、アーカイブ をアップロードする。
-
Bram に対してリリースする
GitHub に PR を出す。
あるいはこのアーカイブファイルを Bram と vim-dev へ更新依頼とともに送信す る。 以下、文面の一例:
Hi Bram and the list, I'd like to update Japanese translations. Could you merge the contents from the attached file into Vim? The same file is also available at the vim-jp/lang-ja repository: https://github.com/vim-jp/lang-ja/releases/tag/20181116 Thanks, (ここにあなたの名前。`Takata`とか)