CodeZine(コードジン)

特集ページ一覧

Zend Framework入門(14):
多言語対応サイトの作成- Zend_Translate(前編)-

Zend Frameworkによる実践的なPHPアプリケーション開発 14

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

翻訳ソースの作成

 phpアプリケーションと翻訳ソースの橋渡しをするアダプタには多くの種類があります。ひとまず今回の例で使用したarrayについて解説します。その他のアダプタについては後述する「翻訳アダプタの選択」を参考に、それぞれの特徴を理解し、開発にあったアダプタを選択してください。

 arrayの場合はコード内に直接翻訳を記載します。

 今回の例では、date関数で時間を取得してprintf関数で表示させるために、フォーマットとして「%1$s」を翻訳に含めています。

[リスト2]index.phpの一部
$ja = array(
    'welcome' => 'ようこそ',
    'time' => '今の時刻は %1$s です。'
);
$en = array(
    'welcome' => 'welcome',
    'time' => 'It is %1$s now.'
);
$fr = array(
    'welcome' => 'accueil',
    'time' => 'C\'est maintenant %1$s .'
);

 上記のように、言語ごとに、インデックスとなるキーと翻訳された値を連想配列に格納していきます。多数の言語に対応する場合はarray型の変数が増え、翻訳箇所が多い場合には配列への格納数が増えてしまうため向いていません。ただ、Zend_Translateの機能を確認するには一番簡単なアダプタと言えます。

[コラム] printf関数とフォーマット

 printf関数は指定したフォーマットで引数とする文字列の出力ができる関数です。

[構文] printf関数
int printf(string format ,mixed arg)

 文字列formatには引数argを格納するために「%」ではじまるフォーマットを含めます。引数argはそのフォーマットに指定された形で出力されることになります。フォーマットの指定方法について下表を参照してください。

 

フォーマット指定子一覧
名称 記号 意味
符号指定子 +,- 引数に符号を付与する。デフォルトでは負の値にしか付与されない。PHP4.3.0以降で使用可能。
パディング指定子   文字列が指定する長さになるまでどのような文字で埋めるか。デフォルトでは空白。空白か「0」を指定する。それ以外を指定する場合はその文字の前に「'」を記載する(「'*」など)。
アラインメント指定子   文字を左右どちらに寄せるか。デフォルトでは右寄せ。左寄せにする場合は「-」を指定。
表示幅指定子   最低何桁で表示するかを指定。
精度指定子   浮動小数点数を何桁まで表示するか。文字列に対しては文字数の切り捨て位置となる。
型指定子 b 引数を整数とする。バイナリの数値として表現。
c 引数を整数とする。ASCII値の文字として表現。
d 引数を整数とする。10進数として表現。
e 引数を科学記法とする(例 1.2e+2など)。
u 引数を整数とする。符号なしの10進数として表現。
f 引数をdoubleとする。浮動小数点数として表現。
F 引数をfloatとする。浮動小数点数として表現。PHP4.3.10およびPHP5.0.3以降で使用可能。
o 引数を整数とする。8進数で表現。
s 引数を文字列とする。
x 引数を整数とする。小文字の16進数で表現。
X 引数を整数とする。大文字の16進数で表現。

 また引数argは「,」で続けて複数記述できます。その際フォーマットでは1番目の引数を「1$」、2番目の引数を「2$」で指定することができます。

 今回の例である「%1$s」は「1番目の引数を文字列として扱う」というフォーマットになります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Zend Framework入門

もっと読む

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 森山 絵美 (モリヤマ エミ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5