CodeZine(コードジン)

特集ページ一覧

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

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

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

翻訳アダプタの選択

 先の例では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オブジェクト生成時のオプションで変更することも可能です。

[リスト5]ja.csv
welcome;ようこそ
time;今の時刻は %1$s です。
[リスト6]en.csv
welcome;welcome
time;It is %1$s now.
[リスト7]fr.csv
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]を選択しましょう。

図5:poEdit初回起動
図5:poEdit初回起動

[3]ヘッダー情報を入力する

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

図6:セットアップポップアップ
図6:セットアップポップアップ

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

図7:ヘッダ初期設定
図7:ヘッダ初期設定

  poEditの画面が表示されます。

図8:poEgit画面
図8:poEgit画面

[4]プロジェクトの情報を入力する。

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

 後から再度編集する場合は[カタログ]-[設定]で画面を開くことができます。

図9:プロジェクトの設定(情報)
図9:プロジェクトの設定(情報)

 [パス]タブ、[キーワード]タブはPHPファイルから自動で翻訳のインデックスキーを抽出する際に使用します。ひとまず空欄のまま進んでください。


  • 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