Home > Archives > 2009-01
2009-01
Mac OSXでpoからmo変換の国際化環境を構築する 〜gettextをインストールしてpoからmoにコンバートする〜
- 2009-01-25 (日)
- Mac
前回のMac OSXでpoからmo変換の国際化環境を構築する 〜MacPortsをインストールする〜に引き続いて、インストールしたMacPortsを使用してgettextをインストールします。gettextは国際化対応に必要なツールを集めたライブラリでgettextのmsgfmtコマンドを使うとpoからmoへのコンバートが出来る様です。
まずはアプリケーション>ユーティリティ>ターミナルを起動します。そしてターミナルからMacPortsを使ってgettextのライブラリを探します。ターミナルに「sudo port search gettext」と入力してエンターを押してください。パスワードを求められるので、自分のMacの管理者パスワードを入力します。
sudo port search gettext
しばらくすると検索結果に該当する結果の一覧が表示されます。
gettext @0.17 (devel)
GNU gettext package
gettext-lint @0.4 (devel)
gettext lint tools
p5-libintl-perl @1.16 (perl)
Perl internationalization library
p5-locale-gettext @1.05 (perl)
Perl interface to GNU gettext
poedit @1.4.2 (devel, aqua)
poEdit is a cross-platform gettext catalogs (.po files) editor.
rb-gettext @1.93.0 (ruby, devel)
a Localization library and tools which modeled GNU gettext.
Found 6 ports.
今回欲しいのは一番上のgettextライブラリなのでこれをインストールします。ターミナルで「sudo port install gettext」と入力します。
sudo port install gettext
gettextのインストールが開始され、関連するライブラリ一式がインストールされます。
---> Fetching expat
---> Verifying checksum(s) for expat
---> Extracting expat
---> Configuring expat
---> Building expat
---> Staging expat into destroot
---> Installing expat @2.0.1_0
---> Activating expat @2.0.1_0
---> Cleaning expat
---> Fetching gperf
---> Verifying checksum(s) for gperf
---> Extracting gperf
---> Configuring gperf
---> Building gperf
---> Staging gperf into destroot
---> Installing gperf @3.0.3_0
---> Activating gperf @3.0.3_0
---> Cleaning gperf
---> Fetching libiconv
---> Verifying checksum(s) for libiconv
---> Extracting libiconv
---> Applying patches to libiconv
---> Configuring libiconv
---> Building libiconv
---> Staging libiconv into destroot
---> Installing libiconv @1.12_2
---> Activating libiconv @1.12_2
---> Cleaning libiconv
---> Fetching ncursesw
---> Verifying checksum(s) for ncursesw
---> Extracting ncursesw
---> Configuring ncursesw
---> Building ncursesw
---> Staging ncursesw into destroot
---> Installing ncursesw @5.7_0
---> Activating ncursesw @5.7_0
---> Cleaning ncursesw
---> Fetching ncurses
---> Verifying checksum(s) for ncurses
---> Extracting ncurses
---> Configuring ncurses
---> Building ncurses
---> Staging ncurses into destroot
---> Installing ncurses @5.7_0
---> Activating ncurses @5.7_0
---> Cleaning ncurses
---> Installing gettext @0.17_4
---> Activating gettext @0.17_4
---> Cleaning gettext
gettextが正常にインストールされたか確認してみます。「sudo port installed」と入力します。
sudo port installed
すると現在MacPortsでインストールされているソフトの一覧が表示されます。
The following ports are currently installed:
expat @2.0.1_0 (active)
gettext @0.17_4 (active)
gperf @3.0.3_0 (active)
libiconv @1.12_2 (active)
ncurses @5.7_0 (active)
ncursesw @5.7_0 (active)
gettextは正常にインストールされているようです。また関連するソフトも色々と入っています。さってやっとpoからmoへ変換する準備が整いました。Mac OSXでpoからmo変換の国際化環境を構築する 〜poファイルを編集する〜で編集したpoファイルのパスを確認します。僕はデスクトップに置いて変換します。ターミナルで「msgfmt -o Desktop/ja.mo Desktop/ja.po」と入力します。ja.poはファイル名なので各自のファイル名に置き換えます。-oの後が出力先ファイルになるので、出力したいパスとファイル名を指定します。
msgfmt -o Desktop/ja.mo Desktop/ja.po
これで指定した出力パスにmoファイルが完成しました。

あとは、これを「lang」または「languages」フォルダにアップすると無事日本語化が完了します。
ながい道のりでした。。。でも今回の件でMacPortsが超絶便利じゃね?ってことが分かったのでこれから色々試しいこうと思います。
Mac OSXでpoからmo変換の国際化環境を構築する 〜MacPortsをインストールする〜
- 2009-01-24 (土)
- Mac
昨日のMac OSXでpoからmo変換の国際化環境を構築する 〜poファイルを編集する〜の続きで、今度はOSXにpoからmoに変換する環境を構築します。ここで、Poeditが正常に動作しないので色々と調べて見るとターミナルでgettextというのを使うと変換ができるらしいのですが、その為に関連するlibconv。。。面倒そう。。。
ということで前から気になっていたMacPortsをインストールしてみることにしました。MacPortsを簡単に説明するとOSXでUNIX系のパッケージソフトを簡単にインストール、管理する為のソフトウェア?(※MacPortsを使用するにはOSX付属CDからXcode Toolをインストールする必要があります。)
とにかくMacPortsをインストールしてみよう。The MacPortc Projectにアクセスしたら画面中央にあるダウンロード画面へのリンクをクリックする。2009年1月24日現在では最新版は1.7.0の様。

ダウンロード画面でOSのバージョンに合ったPKGをダウンロードします。

あとはダウンロードしたPKGをおもむろにダブルクリックします。

インストーラー画面が表示されるので画面の指示に従ってインストールを行います。
さて、これでMacPortsのインストールは完了です。次にMacPortsの設定をします。アプリケーション>ユーチリティ>ターミナルを起動します。そしてターミナルで現在のパスを確認します。ターミナルに「echo $PATH」と入力してエンターすると現在のパスが表示されます。現在のパスに「/opt/local/bin」と「/opt/local/sbin/」へのパスが存在すればそのまま使えます。なければパスを追加します。
echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
パスを追加するには下記の様にコマンドを入力してエンターを押します。
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
ターミナルでもう一度パス確認のコマンドを入力すると先ほど入力したパスが追加されているはずです。
echo $PATH
/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
あとはMacPortsを使ってgettext環境をインストールすればpoからmoへの変換環境が整いますが、それは次回に。
Mac OSXでpoからmo変換の国際化環境を構築する 〜poファイルを編集する〜
- 2009-01-23 (金)
- Mac
最近、WordPressの2.7へのアップグレードの話題を良く見聞きするので、僕も管理しているブログを全てWordPress 2.7に移行することにしました。移行方法などはWordPressに書かれているのでここでは書きませんが、テーマやプラグインを入れていくなかで、デフォルトが英語の物が複数存在します。基本的には日本語がターゲットユーザーなので日本語化しようとした所でかなりつまづきました。
国際化対応方法
よく使われるプラグインやテーマには、殆どの場合「lang or languages」フォルダがあり、この中に国際化対応用のファイルがデフォルトで格納されています。これらのファイルを編集することで国際化対応が可能な様です。日本語対応の場合はファイル名に「ja」という文字が書かれたものを編集すれば良い様です。ブラウザでアクセスした際にブラウザからの送信される言語を判断してプログラム側で自動的に適切な言語ファイルで画面表示するみたいです。
国際化対応ファイル
国際化対応のファイルには2種類あって拡張子が「po」と「mo」があります。 poを編集してプログラムが読めるmo(バイナリファイル)に変換するという手順になります。まずはテキストエディタなどでpoファイルを開いてください。ファイルを開くと「msgid」「msgstr」という文字が至る所に出てくると思います。msgidがキーとなりそれに付随するmsgstrが画面上に表示される仕組みの様です。なので、msgidを見ながら該当の日本語をその下のmsgstrに入力していきます。僕はここではまりました。日本語化したいmsgidやmsgstrの前方の「#~」は取り除いてください。取り除かないとmoに変換しても入力した対応する日本語が表示されません。全て入力したらpoを保存します。保存する時に適切な文字コードで保存するのですが、僕はUTF-8で保存しおけば殆ど問題ありませんでした。

次にpoをmoに変換するのですが、WindowsならPoeditという便利なソフトがあるのですが、OSXの場合には良いのがありません。実際にはPoeditのOSX版も存在しますが、正常に動きませんでした。。。ちなみにPoeditで検索するとMasayanさんのMMRTがトップに表示されます。さすがです!OSX用にpoからmoへの変換環境を構築します。それは次回へ。
Home > Archives > 2009-01
- 検索
- Feeds
- Meta