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{1,2}.ja | 日本語チュートリアルファイル(UTF-8) |
| runtime/tutor/tutor{1,2} | 原文チュートリアルファイル |
| 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.vimcleanup.vim は Vim 本体からのコピー (実行には Vim 8.0.0794 以降が必要)
-
チェック
$ vim -S check.vim ja.pomake 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) を除外するためのもの。) -
コミット
原文と日本語訳は常に同じバージョンがコミットされているように注意すること。
-
原文チュートリアルファイルの更新
(前述の原文ファイル取り込み手順を実施済みであれば不要。)
Vimのソースファイルの runtime/tutor/ ディレクトリから、原文チュートリアル ファイルを本リポジトリにコピー。
$ cd /path/to/vim/runtime/tutor $ cp tutor /path/to/lang-ja/runtime/tutor -
翻訳
原文の差分を見つつ翻訳ファイル(UTF-8)を更新する。
$ git diff | gvim -R - $ vim tutor1.ja $ vim tutor2.ja -
コミット
原文と日本語訳は常に同じバージョンがコミットされているように注意すること。
-
原文 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に反映する。
リリースにはリリースアーカイブの作成と、Vimへの反映(PR作成)がある。 どちらも GitHub の master ブランチへ反映させるところまでは共通の手順となる。
-
各リソースが最新に近いことを確認する
TODO: 将来、より具体的で自動化された手段を提供したい
-
PO-Revision-Dateを更新するja.po のヘッダにある
PO-Revision-Dateを、リリース用に更新する。 -
テストをパスする
$ make testCI で実行しているのでローカルでやる意味は無いが、テストをパスするこ とを確認する。
-
変更を master ブランチへ反映させる
必要に応じてPRしてマージ、もしくは直接 push して master ブランチをリリース できる状態にする。
リリースアーカイブの作成はタグ付けにより駆動する GitHub Actions ワークフローを 用いる。
-
master ブランチ上でタグ(
YYYYMMDD)を作成し、GitHub へ push する$ git switch master # 日付ベースのタグを打つ $ git tag -am '{リリースコメント}' 20260323 # タグを GitHub へpush $ git push origin 2060323
有効なタグのフォーマットは以下のいずれか。 下2つについてはあとのステップで作成されるリリースが、 自動的に pre-release としてマークされる。
^\d\d\d\d\d\d\d\d$^\d\d\d\d\d\d\d\d-alpha\..*$^\d\d\d\d\d\d\d\d-beta\..*$
-
GitHub Actions の [Releaseワークフロー][#release-workflow] が終わるのを待つ
-
ドラフト状態のリリースを、適宜編集し公開(ドラフト解除)する
リリースアーカイブは前ステップが添付してくれている。
事前に前述のリリースアーカイブを作成することを推奨するが、必須ではない。
-
Vim のソースディレクトリを更新する
GitHub に PR を出す場合は、以下のコマンドを実行して lang-ja のファイルを Vim のソースディレクトリへコピーし更新する。
VIM_SRC_DIRで Vim のソースディレクトリの位置を指定する。$ make update-src-dir VIM_SRC_DIR=../vim以下のようにファイルが所定のディレクトリへコピーされる。
.\ +-- nsis\ | +-- lang\ | +-- japanese.nsi +-- runtime\ | +-- doc\ | | +-- evim-ja.UTF-8.1 | | +-- vim-ja.UTF-8.1 | | +-- vimdiff-ja.UTF-8.1 | | +-- vimtutor-ja.UTF-8.1 | | +-- xxd-ja.UTF-8.1 | +-- lang\ | | +-- menu_ja.cp932.vim | | +-- menu_ja.euc-jp.vim | | +-- menu_ja.eucjp.vim | | +-- menu_ja.ujis.vim | | +-- menu_ja.utf-8.vim | | +-- menu_ja_jp.cp932.vim | | +-- menu_ja_jp.euc-jp.vim | | +-- menu_ja_jp.eucjp.vim | | +-- menu_ja_jp.ujis.vim | | +-- menu_ja_jp.utf-8.vim | | +-- menu_japanese_japan.932.vim | +-- tutor\ | +-- tutor1.ja | +-- tutor2.ja +-- src\ +-- po\ +-- ja.euc-jp.po +-- ja.po +-- ja.sjis.po -
vim/vim に対してリリースする
GitHub に PR を出す。 このとき Sign-off (
git commit -s) を忘れずに。 PR のテンプレートは以下の通りだが、必要に応じて適宜アレンジして良い。I'd like to updated Japanese translations for the Vim. The content contained in this PR was created collaboratively by multiple peoples in the vim-jp/lang-ja project, and I, {あなたのなまえ}, am submitting it as the project representative. The same file is also available at the vim-jp/lang-ja repository: https://github.com/vim-jp/lang-ja/releases/tag/{最新のタグ}サンプル: Vim 9.2リリースに伴う翻訳の更新PR