LoginSignup
2
2

More than 3 years have passed since last update.

MSYS2 用 pacman の日本語メッセージの翻訳手順

Posted at

背景

MSYS2 の pacman には、本家の pacman には無い MSYS2 固有のメッセージがいくつか含まれています。
しばらく前に、これらの MSYS2 固有のメッセージのうち一部が更新されたため、日本語訳も更新する必要が出てきました。

前回、日本語訳を作成してから時間が経ち、手順を忘れてしまっていたため、次回更新する際に困らないように、メモを残しておくことにしました。

今回更新した日本語訳は PR #1992 として提出してあります。

作業手順

スタートメニューから MSYS2 64-bitMSYS2 MSYS を選択して、端末を開く。

必要なパッケージをインストール。(インストール済みなら不要。)

pacman -S --needed base-devel msys2-devel
pacman -S git

MSYS2 パッケージのリポジトリをクローン。

git clone https://github.com/msys2/MSYS2-packages.git

pacman のディレクトリに移り、ビルド。
ビルドの際に、-s オプションを付けて、依存パッケージを自動インストールする。また、check() に失敗するため、--nocheck オプションを付けて、チェックはスキップする。

cd MSYS2-packages/pacman
makepkg --nocheck -s

このとき、次のようなエラーが出ることがある。

==> gpg でソースファイルの署名を検証...
    pacman-5.2.1.tar.gz ... 失敗 (不明な公開鍵 XXXXXXXXXXXXXXXX)
==> エラー: PGP 鍵を検証できませんでした!

この場合は、gpg で公開鍵をインポートし、再度ビルドする。

gpg --recv-keys XXXXXXXXXXXXXXXX
makepkg --nocheck

これで、現状のパッケージがビルドできているはず。
src ディレクトリ以下には、MSYS2 用のパッチが当たった状態のソースコードが含まれている。

日本語メッセージ用のパッチを作るために、パッチが当たっていないオリジナルのソースコードを抽出しておく。

tar xf pacman-5.2.1.tar.gz
mv pacman-5.2.1{,-orig}

日本語メッセージファイル (ja.po) を最新のソースコードに追従。
少し前に pacman のビルドは、configure + make から meson + ninja に変更されたようだが、meson + ninja で ja.po を更新する方法が分からなかったため、旧来の configure + make を使う。

cd src/pacman-5.2.1/
PKG_CONFIG="/usr/bin/pkg-config --static" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static --disable-shared --enable-doc --enable-doxygen --disable-git-version --with-scriptlet-shell=/usr/bin/bash --with-pkg-ext=.pkg.tar.xz
cd src/pacman/po/
make -B ja.po

ja.po が更新されたら、未翻訳のメッセージを翻訳していく。
未翻訳のメッセージは、Vim 上で /fuzzy\|^msgstr ""\(\n"\)\@! で検索するとよい。

翻訳が終わったら、行番号などの余計な差分を取り除いてからパッチを生成。

cd ../../../..
diff -u ../pacman-5.2.1-orig/src/pacman/po/ja.po pacman-5.2.1/src/pacman/po/ja.po > ../0011-update-ja-po-for-msys2.patch 
cd ..

作業の手順上、ディレクトリ階層が一致していないため、パッチを手で修正。

次に、PKGBUILD に記載されているハッシュを合わせるために、makepkg -g を実行。

makepkg -g > /dev/clipboard

クリップボードにハッシュがコピーされるので、PKGBUILD 内の古いハッシュを上書きして保存。

PKGBUILD 内の pkgrel は 1 つ増やしておく。

pacman-5.2.1/src/pacman/po/ja.po をバックアップした上で、makepkg でパッケージが正しくビルドできることを確認。作業ディレクトリを一旦削除するために -C オプションを付ける。

makepkg --nocheck -C

ビルドできたらインストールして動作確認。

pacman -U pacman-5.2.1-10-x86_64.pkg.tar.xz

元のバージョンに戻して、その際に今回更新したメッセージが正しく表示されることを確認。

pacman -Suu
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2