Zend Framework の紹介

 Learning Zend Framework

appendix

 Zend Framework リファレンス


  • 第36章 Zend_Gdata
  • 第37章 Zend_Http
  • 第38章 Zend_InfoCard
  • 第39章 Zend_Json
  • 第40章 Zend_Layout
  • 第41章 Zend_Ldap
  • 第42章 Zend_Loader
  • 第43章 Zend_Locale
  • 第44章 Zend_Log
  • 第45章 Zend_Mail
  • 第46章 Zend_Markup
  • 第47章 Zend_Measure
  • 第48章 Zend_Memory
  • 第49章 Zend_Mime
  • 第50章 Zend_Navigation
  • 第51章 Zend_Oauth
  • 第52章 Zend_OpenId
  • 第53章 Zend_Paginator
  • 第54章 Zend_Pdf
  • 第55章 Zend_ProgressBar
  • 第56章 Zend_Queue
  • 第57章 Zend_Reflection
  • 第58章 Zend_Registry
  • 第59章 Zend_Rest

  • 第60章 Zend_Search_Lucene
  • 第61章 Zend_Serializer
  • 第62章 Zend_Server
  • 第63章 Zend_Service
  • 第64章 Zend_Session
  • 第65章 Zend_Soap
  • 第66章 Zend_Tag
  • 第67章 Zend_Test
  • 第68章 Zend_Text
  • 第69章 Zend_TimeSync
  • 第70章 Zend_Tool
  • 第71章 Zend_Tool_Framework
  • 第72章 Zend_Tool_Project
  • 第73章 Zend_Translate
  • 第74章 Zend_Uri
  • 第75章 Zend_Validate
  • 第76章 Zend_Version
  • 第77章 Zend_View
  • 第78章 Zend_Wildfire
  • 第79章 Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 70.6% Update 2010-11-28 - Revision 23415

    第73章 Zend_Translate

    目次

    73.1. 導入
    73.1.1. 多言語対応をはじめよう
    73.2. Zend_Translate のアダプタ
    73.2.1. 使用するアダプタを決める方法
    73.2.1.1. Zend_Translate_Adapter_Array
    73.2.1.2. Zend_Translate_Adapter_Csv
    73.2.1.3. Zend_Translate_Adapter_Gettext
    73.2.1.4. Zend_Translate_Adapter_Ini
    73.2.1.5. Zend_Translate_Adapter_Tbx
    73.2.1.6. Zend_Translate_Adapter_Tmx
    73.2.1.7. Zend_Translate_Adapter_Qt
    73.2.1.8. Zend_Translate_Adapter_Xliff
    73.2.1.9. Zend_Translate_Adapter_XmlTm
    73.2.2. 自作のアダプタの組み込み
    73.2.3. 全アダプタの高速化
    73.3. Using Translation Adapters
    73.3.1. Translation Source Structures
    73.4. Creating source files
    73.4.1. Creating Array source files
    73.4.2. Creating Gettext source files
    73.4.3. Creating TMX source files
    73.4.4. Creating CSV source files
    73.4.5. Creating INI source files
    73.5. 翻訳用の追加機能
    73.5.1. アダプタのオプション
    73.5.2. 言語の処理
    73.5.2.1. 言語の自動処理
    73.5.2.2. Using a country as language
    73.5.3. 自動的なソースの検出
    73.5.3.1. ディレクトリ名からの言語の取得
    73.5.3.2. ファイル名からの言語の取得
    73.5.3.2.1. ファイル名全体
    73.5.3.2.2. ファイルの拡張子
    73.5.3.2.3. ファイル名の一部
    73.5.3.3. Ignoring special files and directories
    73.5.3.3.1. Ignore a special directory or file
    73.5.3.3.2. Ignore several directories or files
    73.5.3.3.3. Ignore specific names
    73.5.4. Routing for translations
    73.5.5. Combining multiple translation sources
    73.5.6. 翻訳の確認
    73.5.7. 見つからなかった翻訳をログに記録する方法
    73.5.8. ソースデータへのアクセス
    73.6. Plural notations for Translation
    73.6.1. Traditional plural translations
    73.6.2. Modern plural translations
    73.6.3. Plural source files
    73.6.3.1. Array source with plural definitions
    73.6.3.2. Csv source with plural definitions
    73.6.3.3. Gettext source with plural definitions
    73.6.4. Custom plural rules

    73.1. 導入

    Zend_Translate は、Zend Framework で多言語対応のアプリケーションを作成するためのパッケージです。

    多言語対応のアプリケーションでは、コンテンツをさまざまな言語に翻訳し、 それをユーザの言語に応じて表示しなければなりません。 PHP にはすでにそのような場合のための手法が用意されています。 しかし、PHP の手法にはいくつかの問題があります。

    • 一貫性のない API: 入力フォーマットによって API が異なります。 たとえば gettext の使用法は非常に複雑です。

    • PHP は gettext およびネイティブの配列しかサポートしていない: PHP 自身は配列あるいは gettext しかサポートしていません。 その他の入力フォーマットは、手動で変換する必要があります。 ネイティブなサポートがないからです。

    • デフォルト言語の検出方法がない: ユーザのデフォルト言語を検出するには、 個々のブラウザについての深い知識を要します。

    • Gettext はスレッドセーフでない: PHP の gettext ライブラリはスレッドセーフではないので、 マルチスレッド環境で使用してはいけません。 これは gettext 自体の問題であって PHP のせいではありませんが、 問題であることには変わりありません。

    Zend_Translate にはここであげたような問題はありません。 というわけで、PHP のネイティブ関数ではなく Zend_Translate を使用することを推奨します。 Zend_Translate の利点は、以下のとおりです。

    • 複数の入力フォーマットのサポート: Zend_Translate はいくつかの入力フォーマットに対応しています。 PHP でサポートしているもののほかに、TMX や CSV 形式のファイルにも対応しています。

    • スレッドセーフな gettext: Zend_Translate の gettext リーダーはスレッドセーフです。 マルチスレッド環境でも問題なく使用できます。

    • 簡単で汎用的な API: Zend_TranslateAPI は非常にシンプルで、使用する関数はほんの少しだけです。 そのため、容易に覚えることができ、保守も簡単です。 すべての入力フォーマットを同じように処理できます。 つまり、仮に入力ファイルが gettext から TMX に変わったとしても、 ストレージアダプタを指定している部分を一行変更するだけで対応できます。

    • ユーザの標準言語の検出: ユーザがサイトにアクセスする際の preferred language 設定を検出し、Zend_Translate で使用できます。

    • 自動的なソースの検出: Zend_Translate は、複数のソースファイルを検出して統合できます。 さらに、ディレクトリやファイル名に応じて使用するロケールを自動検出することもできます。

    73.1.1. 多言語対応をはじめよう

    それでは、多言語対応の作業を始めてみましょう。 まずやってみたいことといえば、出力文字列を翻訳し、 翻訳結果をビューで表示することですね。 そうしないと、個々の言語ごとに別のビューを作らなければならなくなります。 誰もそんなことはしたくないでしょう。 一般に、多言語対応のサイトの設計は非常にシンプルです。 必要なのは、以下のたった 4 つの手順だけです。

    1. 使用するアダプタを決める

    2. ビューを作成し、Zend_Translate をコードに組み込む

    3. コードから入力ファイルを作成する

    4. 入力ファイルを指定した言語に翻訳する

    これ以降の節で、この手順について説明します。 次の何ページかを読めば、 あなたも多言語対応のウェブアプリケーションを作れるようになるでしょう。

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...