SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend Framework入門

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

翻訳アダプタの選択

 先の例では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ファイルから自動で翻訳のインデックスキーを抽出する際に使用します。ひとまず空欄のまま進んでください。

次のページ
まとめ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Zend Framework入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3355 2009/01/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング