TOP書籍連動> gettext関数




Webアプリケーションの国際化
PHPコードを利用してWebアプリケーションを国際化する

第5回:Webアプリケーションをローカル化するgettext関数

著者:Carl McDade   2006/6/14
1   2  次のページ
gettext関数

   今回は前回に引き続き、Webアプリケーションをローカル化するgettext関数について解説します。
ディレクトリ構造

   Webアプリケーションをローカル化するPHPのgettext()関数は、Webアプリケーションを作り終えた後に国際化しようとしている人たちにとって有益なものです。今回は前回に引き続き、gettext関数について解説します。

   gettext()関数を使うには、リソースファイルが特別な構造であることと、この構造の情報がPHP コードに組み込まれていることが必要です。

/locale
/en
/LC_MESSAGES
messages.po
messages.mo

   複数の言語が同じ階層に組み込まれます。

/locale
/en
/LC_MESSAGES
messages.po
messages.mo
/sv_SV
/LC_MESSAGES
messages.po
messages.mo


ロケールの設定とその他の必要事項

   gettext()関数を使う場合、ロケールを設定することが必要です。翻訳されたテキストのリソースを見つけようとする場合、これはPHPが必要とする命令の主要な部分です。

<?php
// 国際化サポートの情報
$language = 'en';
putenv("LANG=$language");
setlocale(LC_ALL, $language);
// テキストドメインを'messages'に設定する
$domain = 'messages';
bindtextdomain($domain, "/www/htdocs/site.com/locale");
textdomain($domain);
echo gettext("翻訳される文字列がここに入ります。");
?>


文字列の指定と抽出

   PHPのコードは文字列の抽出に対応するように設定される必要があります。そうすることでPHPは翻訳される文字列を見つけることができるようになります。これは文字列にgettext()関数を使うことで実行されます。

<?php $var = gettext(‘ これは翻訳可能な文字列です。’);?>

   上のコード内のテキスト文字列は抽出され、コマンドライン関数を使っているPOファイルへ組み込まれます。この関数はgettext()関数のインスタンスを探し、各々の状況で文字列をインデクスつきのメッセージへセットします。

$ xgettext -n *.php

   抽出後、翻訳されるPOファイルはリスト1のようになっているはずです。

リスト1
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
   "Project-Id-Version: PACKAGE VERSION\n"
   "POT-Creation-Date: 2002-04-06 21:44-0500\n"
   "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
   "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
   "Language-Team: LANGUAGE <LL@li.org>\n"
   "MIME-Version: 1.0\n"
   "Content-Type: text/plain; charset=CHARSET\n"
   "Content-Transfer-Encoding: 8bit\n"

#: gettext_example.php:12
msgid "A string to be translated would go here"
msgstr ""

1   2  次のページ

PHPプログラマーズマガジン 書籍紹介
PHPプログラマーズマガジン

PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。

発行:アシアル株式会社  価格:1,029円

 ご購入はこちら
http://www.asial.co.jp/magazine/
Carl McDade
著者プロフィール
Carl McDade
スェーデンに住むフリーランスのWeb開発者、兼プログラマー。Microsoftデータベース管理者の資格を持っており、1997年からWeb開発を行っています。開発期間のほとんどをドキュメント作成、コード作成、PHPコンテンツ管理システムの勉強に費やしています。Webサイト(http://www.hivemindz.com)で彼とコンタクトをとることができます。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第5回:Webアプリケーションをローカル化するgettext関数
gettext関数
  MOファイルの作成
PHPコードを利用してWebアプリケーションを国際化する
第1回 Webアプリケーションの多言語対応
第2回 Webアプリケーションの国際化でデバッグ作業のリスクを減らすポイント
第3回 テキスト定義ファイルを用いたWebアプリケーションの国際化
第4回 テキスト定義ファイルを用いたWebアプリケーションの国際化 〜 その2
第5回 Webアプリケーションをローカル化するgettext関数
第6回 Webアプリケーションをローカル化するgettext関数 〜 その2
第7回 Webアプリケーションをローカル化する 〜 HTML定義ファイル