Previous Next

Zend_Locale の使用法

Zend_Locale は、各ロケールについての情報も、 自分自身のロケールに合わせた形式で提供します。 たとえば他のロケールの名前や曜日名、月名などがこれにあたります。

ロケールオブジェクトのコピー、クローン作成およびシリアライズ

» オブジェクトのクローンを作成し、 ロケールオブジェクトを正確かつ効率的に複製することができます。 ロケール対応のメソッドのほとんどは、$locale->toString() が返す文字列表現のロケールを受け付けます。

Example #1 clone

serialize();
// もとのオブジェクトを再度作成します
$localeObject = unserialize($serializedLocale);

// ロケールの文字列表記を取得します
$stringLocale = $locale->toString();

// $local オブジェクトの複製を作成します
$copiedLocale = clone $locale;

print "copied: ", $copiedLocale->toString();
print "copied: ", $copiedLocale; // PHP は、__toString() 経由で自動的に toString() をコールします

等式

Zend_Locale は、 二つのロケールを比較するための便利な関数も提供しています。 ロケール対応のクラスはすべて、これと同等の同一性チェック機能を提供しなければなりません。

Example #2 ロケールが同一かどうかの調査

equals($mylocale)) {
    print "これらのロケールは同一です";
}

デフォルトのロケール

getDefault() メソッドは、関連するロケールの配列を返します。 これは、ユーザのウェブブラウザからの情報 (取得できる場合)、 ホストサーバの環境変数および ZF の設定をもとに取得します。 Zend_Locale のコンストラクタの最初のパラメータで、 (BROWSERENVIRONMENT あるいは FRAMEWORK のうちの) どの情報を優先するかを選択します。 二番目のパラメータでは、マッチしたロケールをすべて返すのか あるいは最初にマッチした/一番マッチしたものを返すのかを指定します。 ロケール対応のコンポーネントは、通常は最初のロケールのみを使用します。 優先度が指定されている場合は、それも考慮します。

Example #3 デフォルトロケールの取得

getDefault();
print_r($found);

// ブラウザのロケールのみを返します
$found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
print_r($found2);

BROWSERENVIRONMENT あるいは FRAMEWORK のいずれかに対応するデフォルトロケールを取得するには、 それぞれ対応するメソッドを使用します。

  • getEnvironment()

  • getBrowser()

  • getLocale()

新しいロケールの設定

新しいロケールを設定するには、関数 setLocale() を使用します。この関数は、ロケール文字列をパラメータとして受け取ります。 ロケールを省略した場合は、ロケールが 自動的に選択 されます。Zend_Locale オブジェクトは "light" なので、このメソッドは既存のインスタンスを参照しているすべてのコードに影響をおよぼします。

Example #4 setLocale

toString();

// 新しいロケール
$locale->setLocale('aa_DJ');
print $locale->toString();

言語および地域の取得

getLanguage() を使用して、二文字の言語コード文字列を ロケール識別文字列から取得します。また、 getRegion() を使用して、二文字の地域コード文字列を ロケール識別文字列から取得します。

Example #5 getLanguage および getRegion

getLanguage();

// ロケールが 'ja_JP' の場合は、地域として 'JP' が返されます
print $locale->getRegion();

地域化された文字列の取得

getTranslationList() を使用すると、地域化された情報を利用することができます。 これらの情報は、各地域に特化したデータを顧客に対して提供する際に 翻訳の必要がなくなるので便利です。 これらはすでに使用可能となっています。

情報の一覧は、常に連想配列形式で返されます。 複数の値を明示的な型に渡したい場合は、複数の値ではなく配列を渡す必要があります。

Example #6 getTranslationList

getTranslationList('language');

print_r ($list);
// キーと値の組み合わせの例...
// [de] -> Deutsch
// [en] -> Englisch

// これらのキーのいずれかを getTranslation() メソッドで使用します
print $locale->getTranslation('de', 'language', 'zh');
// これは、言語 'de' を中国語で表した文字列を返します

すべての言語についてこの情報を取得できます。しかし、 言語によってはすべての情報が提供されているわけではないものもあります。 これらの型のいくつかについては、その型に特化した関数を用意して簡単に使用できるようにしています。 詳細はこの一覧を参照ください。

getTranslationList($type = null, $locale = null, $value = null) の詳細
説明
Language 地域化された全言語の一覧を返します。 ロケールの言語部分がキー、そしてその翻訳が値となります。 利便性のために getLanguageTranslationList() メソッドも使用することが可能です。
Script 地域化された全文字の一覧を返します。 ロケールの文字部分がキー、そしてその翻訳が値となります。 利便性のために getScriptTranslationList() メソッドも使用することが可能です。
Territory 地域化された全領域の一覧を返します。 ここに含まれるのは国と大陸、領域です。 領域と大陸のみを取得するには値として '1' を使用します。 国のみを取得するには値として '2' を使用します。 可能な場合、ロケールの国部分をキーとして使用します。 それ以外の場合は、この領域が使用している公式 ISO コードをキーとして使用します。 領域を翻訳したものが値となります。利便性のために、 すべての国を取得する getCountryTranslationList() メソッドとすべての領域 (国以外) を取得する getTerritoryTranslationList() メソッドが用意されています。 値を省略した場合は、両方の一覧を取得します。
Variant 地域化された文字変化形の一覧を返します。 変化形がキー、そしてその翻訳が値となります。
Key 地域化されたキーの一覧を帰します。 このキーは、翻訳に使用する一般的な値となります。 通常はカレンダーや文字照合、通貨などです。 キーが配列のキー、そしてその翻訳が値となります。
Type 翻訳されたキーの型の一覧を返します。 これらは、カレンダーの表現や文字列照合方式を表します。 値として 'collation' を使用すると、文字列照合方式の一覧を取得します。 値として 'calendar' を使用すると、カレンダーの型の一覧を取得します。 値を省略した場合は、両方の一覧を取得します。 型がキー、そしてその翻訳が値となります。
Layout 特別なテキスト部分の書式を決めるルールの一覧を返します。
Characters このロケールで使用できる文字の一覧を返します。
Delimiters このロケールで使用できるクォート文字の一覧を返します。
Measurement 単位の値の一覧を返します。この一覧は廃止予定です。
Months このロケールにおけるすべての月の表現の一覧を返します。 異なる表現方式がある場合は配列として返されます。 値を省略すると、グレゴリオ暦におけるすべての月の一覧を返します。 値として、既知の暦の名前を指定することができます。 その場合は指定した暦における月の一覧を返します。 単純に行うには Zend_Date を使用します。
Month このロケールにおけるすべての月名の一覧を返します。 値を省略すると、グレゴリオ暦で通常使用する完全な月名を返します。 各月の数値がキー、そして月名の翻訳が値となります。 値として配列を指定すると、さまざまな暦や書式に対応する月を取得できます。 配列の最初のエントリが暦、2 番目は使用するコンテキスト、 そして 3 番目が返す幅となります。 単純に行うには Zend_Date を使用します。
Days このロケールにおけるすべての曜日の表現の一覧を返します。 異なる表現方式がある場合は配列として返されます。 値を省略すると、グレゴリオ暦におけるすべての曜日の一覧を返します。 値として、既知の暦の名前を指定することができます。 その場合は指定した暦における曜日の一覧を返します。 単純に行うには Zend_Date を使用します。
Day このロケールにおけるすべての曜日名の一覧を返します。 値を省略すると、グレゴリオ暦で通常使用する完全な曜日名を返します。 英語の各曜日名の略称がキー、そして曜日名の翻訳が値となります。 値として配列を指定すると、さまざまな暦や書式に対応する曜日を取得できます。 配列の最初のエントリが暦、2 番目は使用するコンテキスト、 そして 3 番目が返す幅となります。 単純に行うには Zend_Date を使用します。
Week ロケール内で週の計算を適切に行うための値の一覧を返します。 単純に行うには Zend_Date を使用します。
Quarters このロケールにおけるすべての四半期の表現の一覧を返します。 異なる表現方式がある場合は配列として返されます。 値を省略すると、グレゴリオ暦におけるすべての四半期の一覧を返します。 値として、既知の暦の名前を指定することができます。 その場合は指定した暦における四半期の一覧を返します。
Quarter このロケールにおけるすべての四半期名の一覧を返します。 値を省略すると、グレゴリオ暦で通常使用する完全な四半期名を返します。 四半期番号がキー、そして四半期名の翻訳が値となります。 値として配列を指定すると、さまざまな暦や書式に対応する四半期を取得できます。 配列の最初のエントリが暦、2 番目は使用するコンテキスト、 そして 3 番目が返す幅となります。
Eras このロケールにおけるすべての紀元の表現の一覧を返します。 値を省略すると、グレゴリオ暦におけるすべての紀元の一覧を返します。 値として、既知の暦の名前を指定することができます。 その場合は指定した暦における紀元の一覧を返します。
Era このロケールにおけるすべての紀元名の一覧を返します。 値を省略すると、グレゴリオ暦で通常使用する完全な紀元名を返します。 紀元番号がキー、そして紀元名の翻訳が値となります。 値として配列を指定すると、さまざまな暦や書式に対応する紀元を取得できます。 配列の最初のエントリが暦、 そして 2 番目が返す幅となります。
Date このロケールにおけるすべての日付フォーマットの一覧を返します。 使用する日付フォーマットの名前がキー、そしてフォーマットそのものが値となります。 値を省略すると、グレゴリオ暦における日付フォーマットの一覧を返します。 暦の名前を指定すると、さまざまな暦に対応する日付フォーマットを取得できます。 単純に行うには Zend_Date を使用します。
Time このロケールにおけるすべての時刻フォーマットの一覧を返します。 使用する時刻フォーマットの名前がキー、そしてフォーマットそのものが値となります。 値を省略すると、グレゴリオ暦における時刻フォーマットの一覧を返します。 暦の名前を指定すると、さまざまな暦に対応する時刻フォーマットを取得できます。 単純に行うには Zend_Date を使用します。
DateTime このロケールにおけるすべての日付-時刻フォーマットの一覧を返します。 使用する日付-時刻フォーマットの名前がキー、そしてフォーマットそのものが値となります。 値を省略すると、グレゴリオ暦における日付-時刻フォーマットの一覧を返します。 暦の名前を指定すると、さまざまな暦に対応する日付-時刻フォーマットを取得できます。 単純に行うには Zend_Date を使用します。
Field 地域化した日付フィールドの一覧を返します。 これは、カレンダーや日付で 'month' や 'year' といった文字列を各国語で表示する際に使用します。 値を省略すると、グレゴリオ暦における一覧を返します。 暦の名前を指定すると、さまざまな暦に対応する一覧を取得できます。
Relative 地域化した相対日付の一覧を返します。 'yesterday' や 'tomorrow' といった文字列を各国語で表示する際に使用します。 値を省略すると、グレゴリオ暦における一覧を返します。 暦の名前を指定すると、さまざまな暦に対応する一覧を取得できます。
Symbols 数値表現に使用する文字の地域化した一覧を返します。
NameToCurrency 地域化した通貨名の一覧を返します。 通貨がキー、そして通貨名の翻訳が値となります。 Zend_Currency を使用します。
CurrencyToName 地域化した通貨名に対応する通貨の一覧を返します。 通貨名の翻訳がキー、そして通貨が値となります。 単純に行うには Zend_Currency を使用します。
CurrencySymbol 通貨に対応する地域化した通貨記号の一覧を返します。 通貨がキー、そして記号が値となります。 単純に行うには Zend_Currency を使用します。
Question 肯定 ('yes') および否定 ('no') に対応する地域化した文字列の一覧を返します。 単純に行うには Zend_Locale の getQuestion メソッド を使用します。
CurrencyFraction 通貨に対応する小数部の桁数を返します。 通貨がキー、そして小数部の桁数が値となります。 単純に行うには Zend_Currency を使用します。
CurrencyRounding 通貨に対応する丸め方式の一覧を返します。 通貨がキー、そして丸め方式が値となります。 単純に行うには Zend_Currency を使用します。
CurrencyToRegion その地域で使用する通貨の一覧を返します。 ISO3166 の値 ('region') が配列のキー、そして ISO4217 の値 ('currency') が配列の値となります。 単純に行うには Zend_Currency を使用します。
RegionToCurrency その通貨を使用している地域の一覧を返します。 ISO4217 の値 ('currency') が配列のキー、そして ISO3166 の値 ('region') が配列の値となります。 通貨が複数の地域で使用されている場合は、 空白で区切った形式になります。 単純に行うには Zend_Currency を使用します。
RegionToTerritory その国の領域一覧あるいはその領域に含まれるサブ領域の一覧を返します。 その通貨を使用している地域と領域の一覧を返します。 ISO の領域コード ('currency') が配列のキー、そして ISO3166 の値 ('region') が配列の値となります。 領域が複数の地域を含む場合は、 空白で区切った形式になります。
TerritoryToRegion 地域とその地域が存在する領域の一覧を返します。 ISO3166 のコード ('region') が配列のキー、 そして ISO の領域コード ('territory') が配列の値となります。 地域が複数の領域にまたがる場合は、 空白で区切った形式になります。
ScriptToLanguage その国で使用する文字の一覧を返します。 言語コードが配列のキー、そして文字コードが配列の値となります。 言語が複数の文字を含む場合は、 空白で区切った形式になります。
LanguageToScript ある文字を使用する言語の一覧を返します。 文字コードが配列のキー、そして言語コードが配列の値となります。 文字が複数の言語で用いられる場合は、 空白で区切った形式になります。
TerritoryToLanguage ある言語を使用する国の一覧を返します。 国コードが配列のキー、そして言語コードが配列の値となります。 言語が複数の国で用いられる場合は、 空白で区切った形式になります。
LanguageToTerritory 国と、その国で話されている言語の一覧を返します。 国コードが配列のキー、そして言語コードが配列の値となります。 領域が複数の言語を使用する場合は、 空白で区切った形式になります。
TimezoneToWindows Windows のタイムゾーンと、関連する ISO タイムゾーンの一覧を返します。 Windows のタイムゾーンが配列のキー、 そして ISO タイムゾーンが配列の値となります。
WindowsToTimezone ISO タイムゾーンと、関連する Windows のタイムゾーンの一覧を返します。 ISO タイムゾーンが配列のキー、 そして Windows のタイムゾーンが配列の値となります。
TerritoryToTimezone 地域あるいは領域と、関連する ISO タイムゾーンの一覧を返します。 ISO タイムゾーンが配列のキー、そして領域コードが配列の値となります。
TimezoneToTerritory タイムゾーンと、関連する地域あるいは領域コードの一覧を返します。 地域コードあるいは領域コードが配列のキー、 そして ISO タイムゾーンが配列の値となります。
CityToTimezone 地域化した都市名の一覧を返します。 これを用いて、関連するタイムゾーンの翻訳を行います。 すべてのタイムゾーンが翻訳できるわけではありませんが、 ユーザにとっては ISO タイムゾーン名よりも 母国語で書かれた都市名のほうがわかりやすいでしょう。 ISO タイムゾーンが配列のキー、そして都市名の翻訳が配列の値となります。
TimezoneToCity 地域化した都市名に対応するタイムゾーンの一覧を返します。 地域化した都市名が配列のキー、 そして ISO タイムゾーンが配列の値となります。

単一の翻訳データがほしい場合は、getTranslation() を使用します。 この関数は常に文字列を返しますが、getTranslationList() メソッドよりも多くの型を使用することができます。 また、値についても一点を除いて同じです。 取得したい値について、詳細を指定する必要があります。

Note:

ほとんどすべての場合について値を指定する必要があるので、 このパラメータを最初に指定するようになっています。 この点は getTranslationList() メソッドと異なります。

詳細な情報は、次の表を参照ください。

getTranslation($value = null, $type = null, $locale = null) の詳細
説明
Language 言語の翻訳を返します。 希望通りの翻訳を選択するために、言語コードを値として指定する必要があります。 利便性のために getLanguageTranslation($value) メソッドも使用することが可能です。
Script 文字の翻訳を返します。 希望通りの翻訳を選択するために、文字コードを値として指定する必要があります。 利便性のために getScriptTranslation($value) メソッドも使用することが可能です。
Territory あるいは Country 領域の翻訳を返します。 これは国、大陸および領域のいずれかとなります。 希望通りの翻訳を選択するために、領域コードを値として指定する必要があります。 利便性のために getCountryTranslation($value) メソッドも使用することが可能です。
Variant 文字の変化形の翻訳を返します。 希望通りの翻訳を選択するために、変化形コードを値として指定する必要があります。
Key 既知のキーの翻訳を返します。 このキーは、翻訳で使用する一般的な値です。 通常はカレンダーや文字照合、通貨などです。 希望通りのキーを選択するために、キーコードを値として指定する必要があります。
DateChars 日付の表示に使用するすべての文字を含む文字テーブルを返します。
DefaultCalendar 指定したロケールにおけるデフォルトの暦を返します。 ほとんどのロケールでは、これは 'gregorian' (グレゴリオ暦) となります。 単純に行うには Zend_Date を使用します。
MonthContext 指定した暦で用いる月のデフォルトコンテキストを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
DefaultMonth 指定した暦で用いる月のデフォルトフォーマットを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Month 月の翻訳を返します。 月を表す数値を値として指定する必要があります。 これは 1 から 12 までの数値となります。 他の暦、コンテキスト、フォーマットのデータを取得したい場合は、 値として整数値ではなく配列を指定します。 この配列の形式は array( 'calendar', 'context', 'format', 'month number') となります。整数値のみを指定した場合のデフォルトは、 暦が 'gregorian'、コンテキストが 'format' そしてフォーマットが 'wide' となります。 単純に行うには Zend_Date を使用します。
DayContext 指定した暦で用いる日のデフォルトコンテキストを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
DefaultDay 指定した暦で用いる曜日のデフォルトフォーマットを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Day 曜日の翻訳を返します。 英語での曜日の省略名 ('sun', 'mon', など) を値として指定する必要があります。 他の暦、コンテキスト、フォーマットのデータを取得したい場合は、 値として文字列ではなく配列を指定します。 この配列の形式は array('calendar', 'context', 'format', 'day abbreviation') となります。文字列のみを指定した場合のデフォルトは、 暦が 'gregorian'、コンテキストが 'format' そしてフォーマットが 'wide' となります。 単純に行うには Zend_Date を使用します。
Quarter 四半期の翻訳を返します。 四半期を表す数値を値として指定する必要があります。 これは 1 から 4 までの数値となります。 他の暦、コンテキスト、フォーマットのデータを取得したい場合は、 値として数値ではなく配列を指定します。 この配列の形式は array('calendar', 'context', 'format', 'quarter number') となります。文字列のみを指定した場合のデフォルトは、 暦が 'gregorian'、コンテキストが 'format' そしてフォーマットが 'wide' となります。
Am そのロケールにおける 'AM' の翻訳を返します。 他の暦の値を取得したい場合は、その暦を文字列で指定します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Pm そのロケールにおける 'PM' の翻訳を返します。 他の暦の値を取得したい場合は、その暦を文字列で指定します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Era そのロケールにおける紀元の翻訳を返します。 紀元番号を文字列あるいは整数値で指定します。 他の暦やフォーマットの値を取得したい場合は、 値として数値ではなく配列を指定します。 この配列の形式は array('calendar', 'format', 'era number') となります。文字列のみを指定した場合のデフォルトは、 暦が 'gregorian'、コンテキストが 'format' そしてフォーマットが 'wide' となります。
DefaultDate 指定した暦で用いる日のデフォルトフォーマットを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Date そのロケールにおける、指定した暦あるいはフォーマットでの日のフォーマットを返します。 値を省略した場合は、暦が 'gregorian'、フォーマットが 'medium' となります。 文字列を指定した場合は、暦が 'gregorian' でフォーマットが指定したものとなります。 array('calendar', 'format') のような配列を指定することもできます。 単純に行うには Zend_Date を使用します。
DefaultTime 指定した暦で用いる時刻のデフォルトフォーマットを返します。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Time そのロケールにおける、指定した暦あるいはフォーマットでの時刻のフォーマットを返します。 値を省略した場合は、暦が 'gregorian'、フォーマットが 'medium' となります。 文字列を指定した場合は、暦が 'gregorian' でフォーマットが指定したものとなります。 array('calendar', 'format') のような配列を指定することもできます。 単純に行うには Zend_Date を使用します。
DateTime そのロケールにおける日付、時刻のフォーマットを返します。 これは、指定した暦において日付と時刻を表示する方法を示すものです。 値を省略した場合はグレゴリオ暦を使用します。 単純に行うには Zend_Date を使用します。
Field 日付フィールドの翻訳を返します。 これは、カレンダーや日付で 'month' や 'year' といった文字列を各国語で表示する際に使用します。 返したいフィールドを文字列で指定する必要があります。 この場合はグレゴリオ暦を使用します。 他の暦におけるフィールドを取得するには、 array('calendar', 'date field') のような配列を指定します。
Relative 相対日付の翻訳を返します。 'yesterday' や 'tomorrow' といった文字列を各国語で表示する際に使用します。 返したい日付を表す数値 (明日を基準とした相対値) を指定する必要があります。 昨日はら '-1'、明日なら '1' といったようになります。 この場合はグレゴリオ暦を使用します。 他の暦における相対日を取得するには、 array('calendar', 'relative days') のような配列を指定します。 単純に行うには Zend_Date を使用します。
DecimalNumber 指定したロケールにおける十進数値のフォーマットを返します。 単純に行うには Zend_Locale_Format を使用します。
ScientificNumber 指定したロケールにおける科学記法の数値フォーマットを返します。
PercentNumber 指定したロケールにおけるパーセンテージの数値フォーマットを返します。
CurrencyNumber 指定したロケールにおける通貨の数値フォーマットを返します。 単純に行うには Zend_Currency を使用します。
NameToCurrency 指定した通貨の翻訳を返します。 通貨は ISO フォーマットで指定する必要があります。 たとえば、通貨 'euro' を表すには 'EUR' と指定します。 単純に行うには Zend_Currency を使用します。
CurrencyToName 指定した地域化名に対応する通貨を返します。 単純に行うには Zend_Currency を使用します。
CurrencySymbol 指定したロケールにおいて使用する通貨記号を返します。 すべての通貨に記号が存在するわけではありません。 単純に行うには Zend_Currency を使用します。
Question 肯定 ('yes') および否定 ('no') に対応する地域化した文字列を返します。 'yes' あるいは 'no' を値として指定すると、対応する文字列を取得できます。 単純に行うには Zend_Locale の getQuestion メソッド を使用します。
CurrencyFraction 指定した通貨で使用する小数点以下の桁数を返します。 通貨は ISO 形式で指定する必要があります。 単純に行うには Zend_Currency を使用します。
CurrencyRounding 指定した通貨の丸め方式を返します。 通貨は ISO 形式で指定する必要があります。 通貨を省略した場合は、デフォルトの丸め規則を返します。 単純に行うには Zend_Currency を使用します。
CurrencyToRegion 指定した地域の通貨を返します。 地域コードは ISO3166 形式で指定する必要があります。 たとえばオーストリアは 'AT' となります。 単純に行うには Zend_Currency を使用します。
RegionToCurrency その通貨を使用している地域を返します。 通貨は ISO4217 のコードで指定する必要があります。 たとえばユーロは 'EUR' となります。 その通貨が複数の地域で用いられている場合は、 空白で区切った形式になります。 単純に行うには Zend_Currency を使用します。
RegionToTerritory 指定した領域の地域を返します。 領域は ISO4217 形式の文字列で指定する必要があります。 たとえば '001' は世界を現します。 この領域内の地域が空白区切り形式となります。
TerritoryToRegion 指定した地域が存在する領域を返します。 地域は ISO3166 形式の文字列で指定する必要があります。 たとえばオーストリアは 'AT' となります。 その地域が複数の領域にまたがる場合は、 空白で区切った形式になります。
ScriptToLanguage 指定した言語で用いる文字を返します。 言語は ISO 言語コードで指定する必要があります。 たとえば英語は 'en' となります。 その言語で複数の文字が用いられる場合は、 空白で区切った形式になります。
LanguageToScript 指定した文字が用いられている言語を返します。 文字は ISO 文字コードで指定する必要があります。 たとえばラテン文字は 'Latn' となります。 その文字が複数の言語で用いられている場合は、 空白で区切った形式になります。
TerritoryToLanguage 指定した言語が用いられている領域を返します。 言語は ISO 言語コードで指定する必要があります。 たとえば英語は 'en' となります。 その言語が複数の領域で用いられる場合は、 空白で区切った形式になります。
LanguageToTerritory 指定した領域で用いられている言語の一覧を返します。 領域は ISO3166 形式のコードで指定する必要があります。 たとえばイタリアは 'IT' となります。 その言語が複数の領域で用いられる場合は、 空白で区切った形式になります。
TimezoneToWindows 指定した Windows タイムゾーンに対応する ISO タイムゾーンを返します。
WindowsToTimezone 指定した ISO タイムゾーンに対応する Windows タイムゾーンを返します。
TerritoryToTimezone 指定した ISO タイムゾーンに対応する領域を返します。
TimezoneToTerritory 指定した領域に対応する ISO タイムゾーンを返します。
CityToTimezone 指定した ISO タイムゾーンに対応する地域化した都市名を返します。 すべてのタイムゾーンが都市名に変換できるわけではありません。
TimezoneToCity 指定した地域化都市名に対応する ISO タイムゾーンを返します。 すべての都市名がタイムゾーンに対応しているわけではありません。

Note:

Zend Framework 1.5 では、いくつかの古い型の名前が変わりました。 新しい型が追加されたこと、スペルが間違ったいたこと、 そして使いやすさを考慮したことなどが理由です。 変更内容は以下の表でご確認ください。

ZF 1.0 と ZF 1.5 の違い
古い型 新しい型
Country Territory (値 '2')
Calendar Type (値 'calendar')
Month_Short Month (値 array('gregorian', 'format', 'abbreviated')
Month_Narrow Month (値 array('gregorian', 'stand-alone', 'narrow')
Month_Complete Months
Day_Short Day (値 array('gregorian', 'format', 'abbreviated')
Day_Narrow Day (値 array('gregorian', 'stand-alone', 'narrow')
DateFormat Date
TimeFormat Time
Timezones CityToTimezone
Currency NameToCurrency
Currency_Sign CurrencySymbol
Currency_Detail CurrencyToRegion
Territory_Detail TerritoryToRegion
Language_Detail LanguageToTerritory

以下の例は、さまざまな言語でのものの名前を取得する方法を示すものです。

Example #7 getTranslationList

getTranslationList('country', 'de'));

次の例は、ある言語の名前を別の言語でどのようにいうのかを、 二文字の ISO 国コードを知らない場合に調べるものです。

Example #8 国の名前を、ある言語から別の言語に変換する

getLanguageTranslationList();
$name2code = array_flip($code2name);
$frenchCode = $name2code['French'];
echo $locale->getLanguageTranslation($frenchCode, 'de_AT');
// 出力は、「フランス語」を表すドイツ語の名前になります

何ができるのかをもう少し詳しく知るには、次の例の出力を確認してみましょう。

Example #9 使用できるすべての翻訳

getTranslationList();

// 使用できるすべての翻訳を表示します (大量に出力されます。すべて英語で表示されます)
foreach ($lists as $list) {
    echo "List $list = ";
    print_r($locale->getTranslationList($list));
}

Zend_Locale で使用できるすべての言語の一覧を、それぞれの言語での表記で取得するには、 以下の例をウェブページで使用してみましょう。 同様に getCountryTranslationList() および getCountryTranslation() を使用すると、 あなたのネイティブ言語での地域名と別の言語での地域名の対応表を作成できます。 try .. catch ブロックで、 存在しないロケールを使用した場合の例外を処理するようにしましょう。 すべての言語がすべてのロケールに対応しているわけではありません。 この例では、例外を無視することで、 スクリプトが途中で終わってしまうことを防いでいます。

Example #10 すべての言語を、その国のネイティブ言語で書き出す

getLanguageTranslationList();

foreach($list as $language => $content) {
    try {
        $output = $locale->getLanguageTranslation($language, $language);
        if (is_string($output)) {
            print "\n
[".$language."] ".$output; } } catch (Exception $e) { continue; } }

"yes" および "no" に対応する翻訳の取得

プログラム上で、ユーザに "はい" あるいは "いいえ" で答えてもらうことがよくあります。 getQuestion() を使用すると、 ユーザに問い合わせるときに使用する単語あるいは正規表現文字列を含む配列を、 特定の $locale (デフォルトは、そのオブジェクトのロケール) にあわせて返します。 返される配列の中身は次のようになります。

  • yes および no: yes および no に対応する一般的な文字列表現です。 これは、yesarray および noarray の最初の要素でもあり、もっとも一般的な内容です。

    yesarray および noarray: yes および no に対応する内容をすべて含む配列です。 言語によっては単に「はい」「いいえ」以外の返答を持つものもあります。 一般に、これは完全な文字列とその省略形になります。

    yesexpr および noexpr: 正規表現で、ユーザの回答から yes か no かを判定できるようにします。

これらのすべての情報は当然地域化されており、 設定されているロケールによって変化します。 以下の例で、どのような情報が取得できるのかを確認してみましょう。

Example #11 getQuestion()

getQuestion('de'));

- - - 出力 - - -

Array
(
    [yes] => ja
    [no] => nein
    [yesarray] => Array
        (
            [0] => ja
            [1] => j
        )

    [noarray] => Array
        (
            [0] => nein
            [1] => n
        )

    [yesexpr] => ^([jJ][aA]?)|([jJ]?)
    [noexpr] => ^([nN]([eE][iI][nN])?)|([nN]?)
)

Note:

1.0.3 までは、yesabbr もロケールデータから取得可能でした。 1.5 以降、この情報は単体では存在しません。しかし、同じ情報を yesarray から取得できます。

既知のロケールの一覧の取得

すべての既知のロケールの一覧を取得したいこともあるでしょう。 たとえば、ロケール選択用の select 要素を作成する場合などに必要となるはずです。 このようなときには、静的メソッド getLocaleList() を使用します。 このメソッドは、すべての既知のロケールの一覧を返します。

Example #12 getLocaleList()



        

Note:

返された配列のキーがロケール名となっていることに注意しましょう。 キーに対応する値は、常に true です。

Previous Next
Introduction to Zend Framework
概要
インストール
Zend_Acl
導入
アクセス制御の洗練
高度な使用法
Zend_Auth
導入
データベースのテーブルでの認証
ダイジェスト認証
HTTP 認証アダプタ
LDAP 認証
Open ID 認証
Zend_Cache
導入
キャッシュの仕組み
Zend_Cache のフロントエンド
Zend_Cache のバックエンド
Zend_Captcha
Introduction
Captcha Operation
Captcha Adapters
Zend_Config
導入
動作原理
Zend_Config_Ini
Zend_Config_Xml
Zend_Console_Getopt
Getopt について
Getopt の規則の宣言
オプションおよび引数の取得
Zend_Console_Getopt の設定
Zend_Controller
Zend_Controller クイックスタート
Zend_Controller の基本
フロントコントローラ
リクエストオブジェクト
標準のルータ: Zend_Controller_Router_Rewrite
ディスパッチャ
アクションコントローラ
アクションヘルパー
レスポンスオブジェクト
プラグイン
モジュラーディレクトリ構造の規約の使用
MVC での例外
以前のバージョンからの移行
Zend_Currency
Zend_Currency について
通貨の操作方法
以前のバージョンからの移行
Zend_Date
導入
動作原理
基本メソッド
Zend_Date API の概要
日付の作成
日付関数全般用の定数
動作例
Zend_Db
Zend_Db_Adapter
Zend_Db_Statement
Zend_Db_Profiler
Zend_Db_Select
Zend_Db_Table
Zend_Db_Table_Row
Zend_Db_Table_Rowset
導入
Zend_Debug
変数の出力
Zend_Dojo
Introduction
Zend_Dojo_Data: dojo.data Envelopes
Dojo View Helpers
Dojo Form Elements and Decorators
Zend_Dom
導入
Zend_Dom_Query
Zend_Exception
例外の使用法
Zend_Feed
導入
フィードの読み込み
ウェブページからのフィードの取得
RSS フィードの使用
Atom フィードの使用
単一の Atom エントリの処理
フィードおよびエントリの構造の変更
独自のフィードクラスおよびエントリクラス
Zend_File
Zend_File_Transfer
Validators for Zend_File_Transfer
Zend_Filter
導入
標準のフィルタクラス群
フィルタチェイン
フィルタの書き方
Zend_Filter_Input
Zend_Filter_Inflector
Zend_Form
Zend_Form
Zend_Form クイックスタート
Zend_Form_Element を用いたフォーム要素の作成
Zend_Form によるフォームの作成
Zend_Form_Decorator による独自のフォームマークアップの作成
Zend Framework に同梱されている標準のフォーム要素
Zend Framework に同梱されている標準のデコレータ
Zend_Form の国際化
Zend_Form の高度な使用法
Zend_Gdata
Gdata について
AuthSub による認証
ClientLogin による認証
Google Calendar の使用法
Google Documents List Data API の使用法
Google Spreadsheets の使用法
Google Apps Provisioning の使用法
Google Base の使用法
YouTube Data API の使用法
Picasa Web Albums の使用法
Gdata の例外処理
Zend_Http
Zend_Http_Client - 導入
Zend_Http_Client - 高度な使用法
Zend_Http_Client - 接続アダプタ
Zend_Http_Cookie および Zend_Http_CookieJar
Zend_Http_Response
Zend_InfoCard
導入
Zend_Json
導入
基本的な使用法
JSON オブジェクト
XML から JSON への変換
Zend_Json_Server - JSON-RPC server
Zend_Layout
導入
Zend_Layout クイックスタート
Zend_Layout の設定オプション
Zend_Layout の高度な使用法
Zend_Ldap
導入
Zend_Loader
ファイルやクラスの動的な読み込み
プラグインのロード
Zend_Locale
導入
Zend_Locale の使用法
正規化および地域化
日付および時刻の扱い
ロケールがサポートする言語
ロケールがサポートする地域
Zend_Log
概要
ライター
フォーマッタ
フィルタ
Zend_Mail
導入
SMTP 経由での送信
SMTP 接続による複数のメールの送信
異なる転送手段の使用
HTML メール
ファイルの添付
受信者の追加
MIME バウンダリの制御
追加のヘッダ
文字セット
エンコーディング
SMTP 認証
セキュアな SMTP トランスポート
メールメッセージの読み込み
Zend_Measure
導入
計測値の作成
計測値の出力
計測値の操作
計測値の型
Zend_Memory
概要
メモリマネージャ
メモリオブジェクト
Zend_Mime
Zend_Mime
Zend_Mime_Message
Zend_Mime_Part
Zend_OpenId
導入
Zend_OpenId_Consumer の基本
Zend_OpenId_Provider
Zend_Paginator
Introduction
Usage
Configuration
Advanced usage
Zend_Pdf
導入
PDF ドキュメントの作成および読み込み
PDF ドキュメントへの変更内容の保存
ドキュメントのページ
描画
ドキュメントの情報およびメタデータ
Zend_Pdf モジュールの使用例
Zend_Registry
レジストリの使用法
Zend_Rest
導入
Zend_Rest_Client
Zend_Rest_Server
Zend_Search_Lucene
概要
インデックスの構築
インデックスの検索
クエリ言語
クエリ作成用の API
文字セット
拡張性
Java Lucene との相互運用
応用
ベストプラクティス
Zend_Server
導入
Zend_Server_Reflection
Zend_Service
導入
Zend_Service_Akismet
Zend_Service_Amazon
Zend_Service_Audioscrobbler
Zend_Service_Delicious
Zend_Service_Flickr
Zend_Service_Nirvanix
Zend_Service_ReCaptcha
Zend_Service_Simpy
導入
Zend_Service_StrikeIron
Zend_Service_StrikeIron: バンドルされているサービス
Zend_Service_StrikeIron: 応用編
Zend_Service_Technorati
Zend_Service_Yahoo
Zend_Session
導入
基本的な使用法
高度な使用法
グローバルセッションの管理
Zend_Session_SaveHandler_DbTable
Zend_Soap
Zend_Soap_Server
Zend_Soap_Client
WSDL Accessor
AutoDiscovery. Introduction
Class autodiscovering.
Functions autodiscovering.
Autodiscovering. Datatypes.
Zend_Test
Introduction
Zend_Test_PHPUnit
Zend_Text
Zend_Text_Figlet
Zend_TimeSync
導入
Zend_TimeSync の動作
Zend_Translate
導入
Zend_Translate のアダプタ
翻訳アダプタの使用法
Zend_Uri
Zend_Uri
Zend_Validate
導入
標準のバリデーションクラス群
バリデータチェイン
バリデータの書き方
Zend_Version
Zend Framework のバージョンの取得
Zend_View
導入
コントローラスクリプト
ビュースクリプト
ビューヘルパー
Zend_View_Abstract
Zend_Wildfire
Zend_Wildfire
Zend_XmlRpc
導入
Zend_XmlRpc_Client
Zend_XmlRpc_Server
Zend Framework のシステム要件
PHP のバージョン
PHP の拡張モジュール
Zend Framework のコンポーネント
Zend Framework の依存性
Zend Framework PHP 標準コーディング規約
概要
PHP ファイルの書式
命名規約
コーディングスタイル
著作権に関する情報