レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

phpList の国際化(日本語化)の仕組みと方法

2014年3月11日 2014年3月11日
PHPLIST

メールマガジンを簡単に発行できる phpList をインストールしてみた で phpListをインストールしてみました。
しかしながら、実際に使おうと思うと英語と日本語が混ざっていて使いづらいものになっています。

これは、phpListがまだまだ 30% から 40% 程度しか翻訳されていないからです。

そこで今回は、個人で好きなように翻訳するために 国際化の仕組みを含め 日本語化の方法を簡単にまとめてみました。


phpList の日本語化の方法

phpList で提供される自動翻訳ファイル読み込みの手順

各翻訳ファイルは、メールマガジンを簡単に発行できる phpList をインストールしてみた の設定例では、/var/www/ 配下に展開したので、
/var/www/phplist-3.0.5/public_html/lists/admin/locale/ja/phplist.po
の poファイル で翻訳します。(./ja/ : 日本語の場合 )

もちろん日本語以外もそろってはいますが、翻訳率は日本はかなり低い(30%ぐらい)です。

通常は、何も気にせずログインすれば自動的に翻訳しれるはずです。

  1. まず、phpListの管理画面へログインします。
    phpList ログイン

    phpListをインストールしただけの状態であれば、最初に管理画面のログイン画面を表示すると以下のように英語表記されると思います。

    phpList ログイン
    画面右のこの状態で日本語へ切り替えても何も翻訳されません。
    しかし、ログイン前にここを日本語に設定しておきます。

    phpList ログイン
    ユーザ名 : admin (デフォルト)、パスワード : インストール時に設定したパスワード(初期化した場合は無し)
    を入力しContinueボタンをクリックし、ログインします。


  2. ログイン後、日本語に自動的に翻訳されます。
    phpList ログイン

    上記のように管理画面のホームへ遷移中に言語情報の初期化画面が表示され、 先に翻訳ファイルを読み込み各翻訳ワードをデータベースへ登録します。

    先の翻訳ファイルが更新されない限り、言語情報の初期化は実施されませんので、上記のような画面は各言語毎に1回だけです。
    もちろん、翻訳ファイルを更新した場合は、自動的にログイン もしくは 言語切替時に再読み込みが実施され、上記のような言語情報の初期化画面が表示されます。

    phpList ログイン

    登録を終え、画面が表示されると片言ながら日本語に翻訳されていることがわかると思います。もちろん片言の翻訳は、先の翻訳ファイルでの翻訳が 30% 程度のできだからです。


非常に簡単です。
先にも書きましたが、翻訳ファイルが更新されれば、再度読み込み、データベースへの登録が実施されるので、 後でいくらでも翻訳をやり直すことはできます。

翻訳ファイルをアップロードして、管理者でログイン あるいは ログイン状態から言語切替を行うだけで自動的に再読み込みしてくれます。

翻訳ファイル である poファイルは、テキストファイルです。
通常のテキストエディタや poEditなどで簡単に編集することができます。
...
msgid "Next"
msgstr "次へ"
...
上記のように、msgidmsgstrがペアになっていて、msgidに翻訳元の文言、msgstrに翻訳後の文言を編集すればOKです。
poEditでは、それをGUI形式の一覧で確認、編集することができます。また、保存時には moファイルも自動で作成してくれます。

phpList の翻訳情報を初期化する手順

ほとんどの場合は、テキストファイルの翻訳ファイル ( phplist.po )を編集し、アップロードすれば、翻訳してくれます。

ただ、どうしても翻訳情報を初期化したい場合があるかもしれません。その場合、データベースを直接変更すると良いでしょう。

# 各テーブル名のプレフィックスは、
# config.php で定義された $table_prefix = "phplist_"; になります。
#  何も指定していない場合は、"phplist_" がデフォルトとなります。
# ここでは、"phplist_" として以降解説します。

# 日本語 翻訳データを削除する。他の言語の場合は、lan='xx' を変更すればOK。
mysql> delete from phplist_i18n where lan='ja';
Query OK, 794 rows affected (0.00 sec)

# 日本語 翻訳データの最終更新日時を削除する。他の言語の場合は、item = 'lastlanguageupdate-xx' を変更すればOK。
# -- 以下の最終更新日時がpoファイルの更新日時より古い場合のみ再読み込みするようになっています。
mysql> delete from phplist_config where item='lastlanguageupdate-ja';
Query OK, 1 row affected (0.00 sec)

これでデータベースは、すべて初期化されます。
この状態で、ログインや言語切替を行えば、phpListがインストールされた状態と同じように 翻訳ファイル ( phplist.po )を読み込もうとします。


phpList の moファイルでの翻訳対応手順

phpList は 一応 moファイルに対応しています。
ご存じの方も多いと思いますが、
そもそも、テキストファイルの翻訳ファイル ( phplist.po )を使っているので、 本来なら、poファイルからmoファイルを作成すれば、自動的に翻訳してくれてよさそうな感じです。

しかし、デフォルトの動作は、poファイルをデータベースへ登録し、翻訳情報をデータベースから常に読み込むようになっています。
データベースが存在しない場合、あるいは、データベースに翻訳した文言が存在しない場合は、moファイルから読み込む?みたいです。

それだけ回りくどいからか、うまく読み込めないこともしばしばで、特にパフォーマンスが不足気味の環境では、使い物になりませんでした。
どうしてか・・・正直、そこまで確認できていませんが、基本的に上記のようにデータベースで素直にやることをおすすめします。
どうしてもやりたい方、試してみたい方だけ、一応、以降に自分でやってみた環境について簡単に解説しておきます。


phpListは、デフォルト英語環境となっています。
日本語などの多言語(国際)化を図る場合、スクリプトが用意されています。
ここでの例では、
/var/www/phplist-3.0.5/scripts/generate-mo.sh
になります。

これを実行するだけですが、このスクリプトは、msgfmt コマンドを使用します。
まずは、msgfmt コマンドがインストールされているか確認し、インストールされていない場合は、gettext パッケージ をインストールします。
( msgfmt コマンドは、gettext パッケージ に含まれています。 )

# msgfmt コマンドがインストールされているか確認します。
$ which msgfmt

# msgfmt コマンドがインストールされていない場合は、インストールします。
# -- CentOS/Scientific Linuxの場合
$ yum install gettext
...

# -- Debian/Ubuntuの場合
$ aptitude install gettext
...

# phpListの国際化の環境設定を行います。
# phpListのルートディレクトリから実行しないといけません。
$ cd /var/www/phplist-3.0.5
# 国際化のスクリプトを実行します。
[phplist-3.0.5]$ ./scripts/generate-mo.sh
...

# 日本語の phplist.mo ファイルが作成できたか確認します。
$ ls /var/www/phplist-3.0.5/public_html/lists/admin/locale/ja/LC_MESSAGES/
LC_MESSAGES  language_info  pagetitles.php  phplist.mo  phplist.po
うまく日本語の表示ができないことがあります。
./phplist-3.0.5/public_html/lists/admin/locale/ja/gettext_code
のファイルが存在しない場合は、ファイルを作成するとうまくいく場合があります。
$ echo "ja_JP" > gettext_code

また、phpListの日本語化は、40%程度しかできていません。
それでも、全て英語より良いかもしれません。
もし、自分で日本語化を行う場合は、
/var/www/phplist-3.0.5/public_html/lists/admin/locale/ja/phplist.po
をテキストエディタなどで編集し、上記作業を再度行うと良いでしょう。

また、Windows環境では、上記のスクリプトが動作しないので、poEditで 先のpoファイルを編集、保存すると自動的に moファイルが作成されるので、

./phplist-3.0.5/public_html/lists/admin/locale/ja/LC_MESSAGES

ディレクトリを作成し、./ja/ 配下の全てのファイルを ./ja/LC_MESSAGES/ へコピーすると日本語化ができます。

これで データベースの翻訳情報用のテーブル( phplist_i18n )は、削除してもOKのはずです。

$ drop table phplist_i18n;
Query OK, 794 rows affected (0.00 sec)

この状態で、管理者用のページを開いてみてください。

phpList ログイン

こんな感じで日本語が見えればOKです。


いかがだたでしょうか。
さすがに moファイルでの運用は、今はおすすめできないと思いますが、好きなように poファイルを編集すれば、自分好みのページになるかと思います。

まずは、いろいろと試されると良いと思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

phpList でデータベースの初期化の問題点

メールマガジンを簡単に発行できる phpList をインストールしてみた では、簡単ながら phpListをインストールして使ってみました。 ...

メールマガジンを簡単に発行できる phpList をインストールしてみた

今回は、メールマガジンなどのダイレクトメールを大量に送信できる メーリングリストの管理ソフトである phpList をインストールしてみようと思 ...

MySQLのバイナリログを使ったロールバック(リストア)を行ってみる

以前の記事 MySQLのログの種類とログの仕方を調べてみた(実施例) で、MySQLのログの採取方法について簡単に解説してみました。 その中の ...

評判のKDDI クラウドコア(CloudCore) VPS にapache , php , mysql をインストールし、Wordpressを使ってみる (CentOS編)

評判のCloudCore VPSを使うときに最初にやっておきたいこと(CentOS編) の続き・・・で、今回は、評判のKDDI CP ...

mysqlの準同期レプリケーションを使ってみる

以前の記事 mysqlのレプリケーションを使う で mysqlを使った 簡単なマスタースレーブ型のレプリケーションの設定を行ってみました。 今 ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.1931 [s]