Zend Framework入門(14):
多言語対応サイトの作成- Zend_Translate(前編)-
Zend Frameworkによる実践的なPHPアプリケーション開発 14
ダウンロード サンプルファイル (3.6 KB)
翻訳アダプタの選択
先の例ではarrayを翻訳アダプタとしましたが、他にもいろいろな種類のアダプタがあります。以下の特徴を参考に、開発にあったアダプタを選択してください。
| アダプタ名 | 翻訳ソースファイルの概要 | 特徴 |
| array | phpの配列 | 翻訳対象が少ない場合に向いている。phpコード内に記述するため改修時は注意が必要。 |
| csv | カンマ区切りファイル(*.csv,*.txt) | シンプルなテキストファイルで非常に高速。Unicode文字において問題が発生する可能性有り。 |
| gettext | gettextのバイナリファイル(*.mo) | linuxのGNUが提供するライブラリ。非常に高速。他開発言語でも標準的に使用されている。moファイルはバイナリとなるため、翻訳ソース作成時には専用のツールが必要。 |
| tmx | tmxファイル(*.tmx) | Translation Memory eXchange。翻訳アプリケーションのベンダに依存せずに翻訳メモリデータを交換するためのXML標準。XML形式のため専用ツール不要で作成できる。 |
| qt | qt言語ファイル(*.ts) | さまざまなプラットフォームに対応できるアプリケーションフレームワーク。XMLフォーマット。 |
| xliff | xliffファイル(*.xliff,*.mxl) | XML Localisation Interchange File Format。tmx同様、文書翻訳用のデータフォーマット。tmxよりもややシンプル。 |
以下主要なアダプタについて、作成方法を解説します。
csvアダプタ
csvの場合は言語ごとにcsvファイルを作成する必要があります。翻訳のインデックスと翻訳された語を「;(セミコロン)」で区切ります。区切り文字は後ほど解説するZend_Translateオブジェクト生成時のオプションで変更することも可能です。
welcome;ようこそ time;今の時刻は %1$s です。
welcome;welcome time;It is %1$s now.
welcome;accueil time;C'est maintenant %1$s .
ただ、アダプタ一覧の表でも解説したように、Unicode文字で問題が発生する可能性があります。PHP自体のバグにより、CSVファイルのエンコードが開発環境のロケール設定と異なる場合に問題が発生します。このバグはPHP6.0で修正される予定です。
gettextアダプタ
getTextの場合はmoファイルというバイナリファイルが翻訳ソースとなります。これはカタログ(poファイルというテキスト編集可能なファイル)を専用のツールを使って変換したものとなります。
今回はpoEditというフリーのツールを利用し、moファイルを作成します。ただし、このツールでは翻訳された語を編集することはできますが、翻訳のインデックスキーを新規に追加することはできません。インデックスキー新規追加はpoファイルの編集で行うか、poEditのPHPソースから検出する機能を使って実施します。
[1]poEditをインストールする
公式サイトからダウンロードして適当な場所にインストールしてください。
[2]言語設定を行う
起動すると次のように言語選択画面となります。[Japanese]を選択しましょう。

[3]ヘッダー情報を入力する
初回のみカタログのヘッダーとなる情報の入力を行います。[OK]を押下します。

ヘッダ用情報入力欄です。ひとまず省略して[OK]を押下します。

poEditの画面が表示されます。
[4]プロジェクトの情報を入力する。
メニューバーから[ファイル]-[新規カタログ]を選択すると[プロジェクトの設定]画面が表示されます。これは先ほどのヘッダ初期設定と同様、これから作成するカタログのヘッダ情報となります。[情報]タブに必要な値を入力してください。[OK]を押下するとpoファイルの保存場所を聞かれますので適当な場所に保存します。
後から再度編集する場合は[カタログ]-[設定]で画面を開くことができます。

[パス]タブ、[キーワード]タブはPHPファイルから自動で翻訳のインデックスキーを抽出する際に使用します。ひとまず空欄のまま進んでください。
この記事は参考になりましたか?
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 森山 絵美(モリヤマ エミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

