Webalizer の文字化けに再挑戦
Webalizer のグラフが文字化けしてしまいます。また、日本語の表記がおかしいので対処します。
今回は、翻訳ファイルを修正してどうなるかを確認してみます。
mo ファイルから po ファイルを作成
まず、mo ファイルから、po ファイルを作ります。
$ sudo msgunfmt /usr/share/locale/ja/LC_MESSAGES/webalizer.mo -o ~/new.po
これでホームディレクトリに new.po ファイルが作られます。Raspberry Pi OS のパッケージでは、このファイルのエンコードは EUC-JP になっています。
$ nkf -g ~/new.po
EUC-JP
UTF-8 にします。
$nkf -w ~/new.po > ~/new_utf8.po
po ファイルの編集
まず、charset を EUC-JP から UTF-8 に変更します。
後は、気になる日本語を修正すればいいです。以下、修正箇所の diff です。
10c10 < "Content-Type: text/plain; charset=EUC-JP\n" --- > "Content-Type: text/plain; charset=UTF-8\n" 726a727,729 > msgid "May" > msgstr "5月" > 957a961,963 > msgid "Sites per Day" > msgstr "一日あたりのサイト数" > 1038a1045,1047 > msgid "Total Countries" > msgstr "- 国合計" > 1050a1060,1062 > msgid "Total kB Files" > msgstr "合計転送量(kB)" > 1064c1076 < msgstr "異なり参照元数" --- > msgstr "個別参照元数" 1067c1079 < msgstr "異なりサイト数" --- > msgstr "個別サイト数" 1070c1082 < msgstr "異なりURL数" --- > msgstr "個別URL数" 1073c1085 < msgstr "異なりユーザエージェント数" --- > msgstr "個別ユーザエージェント数" 1076c1088 < msgstr "異なりユーザ数" --- > msgstr "個別ユーザ数" 1256a1269,1271 > > msgid "kB Files per Day" > msgstr"一日あたりの転送量(kB)"
元のファイルのバックアップを撮ってから、po ファイルから mo ファイルを作成します。
$ sudo mv /usr/share/locale/ja/LC_MESSAGES/webalizer.mo /usr/share/locale/ja/LC_MESSAGES/webalizer.mo.bak $ sudo msgfmt -o /usr/share/locale/ja/LC_MESSAGES/webalizer.mo ~/new_utf8.po
これで気になる日本語は修正できました。しかし、ここまでやってもグラフは文字化けしました。
グラフで日本語は使わない
結局、自分の技量でグラフの日本語は、どうやっても日本語が文字化けするので、日本語を使わないように、グラフ部分の日本語を翻訳ファイルから削除しました。
まず、new_utf8.po 中の国名と月名を全てコメントアウトしました。次に、以下をコメントアウトしました。
msgid "Daily usage for" msgstr "日ごとの状況 -" msgid "Files" msgstr "ファイル" msgid "Hits" msgstr "ヒット" msgid "Other" msgstr "その他" msgid "Pages" msgstr "ページ" msgid "Unresolved/Unknown" msgstr "名前解決不能/不明" msgid "Usage summary for" msgstr "概要 -" msgid "Visits" msgstr "訪問者"
再度、mo ファイルを作ります。
$ sudo msgfmt -o /usr/share/locale/ja/LC_MESSAGES/webalizer.mo ~/new_utf8.po
これで、グラフは全て英語になりました。日本語が文字化けするよりはわかりやすいです。
mo ファイルは Webalizer の翻訳ファイル(mo) からダウンロードできます。
ディスカッション
コメント一覧
まだ、コメントがありません