Skip to content
これは pieceofcake2/localized のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

Localized ドキュメント ​

このプラグインには、国ごとにローカライズされたバリデーションクラス、コアのクライアント向け文字列 (cake ドメイン) の翻訳、POSIX の LC_TIME ファイルが含まれています。

インストール ​

Composer でプラグインをインストールします。

bash
composer require pieceofcake2/localized

このプラグインのタイプは cakephp-plugin なので、composer/installers によってプラグインディレクトリに (Localized として) インストールされます。正しい場所にインストールされるように、アプリケーションの composer.json で installer-paths を設定してください。

レイアウトinstaller-paths
モダン (config/、src/、templates/、plugins/)"plugins/{$name}/": ["type:cakephp-plugin"]
レガシー (app/Config/、app/Plugin/)"app/Plugin/{$name}/": ["type:cakephp-plugin"]

次に、config/bootstrap.php (レガシーレイアウトでは app/Config/bootstrap.php) でプラグインを 読み込みます。

php
CakePlugin::load('Localized');

バリデーションクラス ​

すべてのクラスは phone()、postal()、personId() を実装しています (バリデーションメソッド をご覧ください)。追加のメソッドを持つクラスもあります。

国コード国クラス追加のメソッド
atオーストリアAtValidation
auオーストラリアAuValidation
bdバングラデシュBdValidation
beベルギーBeValidation
brブラジルBrValidationcpf()、cnpj()
caカナダCaValidation
chスイスChValidation
cn中国 (本土)CnValidation
czチェコCzValidation
deドイツDeValidationaddress1()、dob()
dkデンマークDkValidation
esスペインEsValidation
frフランスFrValidation
gbイギリスGbValidation
hrクロアチアHrValidation
idインドネシアIdValidationmobile()
inインドInValidation
irイランIrValidationalphaNumeric()、numeric()、cc()、mobile()
itイタリアItValidationcf()
jp日本JpValidationhiragana()、katakana()、zenkaku()
ltリトアニアLtValidation
mxメキシコMxValidation
nlオランダNlValidation
noノルウェーNoValidationdob()
plポーランドPlValidationpesel()、regon()
ptポルトガルPtValidation
roルーマニアRoValidation
rsセルビアRsValidationaddressCode()、jmbg()
ruロシアRuValidationaddress1()、passport()、vatin()、snils()
skスロバキアSkValidation
trトルコTrValidationtrIdentityNumber()
tw台湾TwValidationubn()、nicn()
ukイギリス (非推奨。gb を使ってください)UkValidation
usアメリカ合衆国UsValidation

モデルのバリデーション ​

ローカライズされたバリデーションクラスは、モデルのフィールドのバリデーションに使えます。

php
App::uses('MxValidation', 'Localized.Validation');

class Post extends AppModel
{
    public $validate = [
        'postal' => [
            'valid' => [
                'rule' => ['postal', null, 'mx'],
                'message' => 'Must be valid mexico postal code',
            ],
        ],
    ];
}

バリデーションルールについて詳しくは、クックブックの データバリデーション をご覧ください。

Validation でローカライズされたバリデーションを使う ​

バリデーションクラスをインポートすれば、Validation のメソッドを呼ぶところならどこでも、ローカライズ されたバリデーターを使えます。

php
App::uses('CzValidation', 'Localized.Validation');

if (Validation::postal($value, null, 'cz')) {
    // Do something with valid postal code
}

バリデーションの動的な振り分け ​

複数のローカライズを使う場合は、次のようなコードで、クラスを手動で読み込んで準備する手間を減らせます。

php
// Inside your custom validation rule validatePostal()
// $country (de, at, ...) and $value (12345, 1234, ...) given
$className = ucfirst($country) . 'Validation';
App::uses($className, 'Localized.Validation');

// Skip if we don't have that country, then only check for existence
if (!class_exists($className) || !method_exists($className, 'postal')) {
    return !empty($value);
}

try {
    $result = Validation::postal($value, null, $country);
} catch (NotImplementedException $e) {
    $result = !empty($value);
}

return $result;

PO ファイル ​

このプラグインには、コアのクライアント向けの翻訳文字列 (cake ドメイン) の翻訳も含まれています。 これらのファイルを使うには、想定された場所 resources/locales/<locale>/LC_MESSAGES/cake.po (レガシーレイアウトでは app/Locale/<locale>/LC_MESSAGES/cake.po) にリンクするかコピーしてください。

LC_TIME ファイル ​

このプラグインには、LC_TIME ドメインの時刻に関する文字列の翻訳に使われる、POSIX 準拠の LC_TIME ファイルも含まれています。これらのファイルを使うには、想定された場所 resources/locales/<locale>/LC_TIME (レガシーレイアウトでは app/Locale/<locale>/LC_TIME) にリンクするかコピーしてください。

移行ガイド ​

Localized.Validation ​

バリデーションファイルの lib パスが変わりました。APP/Validation/ か APP/PluginName/Validation/ の どちらかに置く必要があります。

それに合わせて App::uses() 文も変更する必要があります。 App::uses('MxValidation', 'Localized.Lib'); は App::uses('MxValidation', 'Localized.Validation'); になります。

Localized への貢献 ​

自分の国が Localized プラグインにない場合は、GitHub でプロジェクトをフォークし、バリデーターのクラス (とそのテストケース) をコミットして、プルリクエストを送ってください。 コントリビューションガイドライン をご覧ください。

バリデーションメソッド ​

すべてのクラスに共通のメソッドがいくつかあり、インターフェース ValidationInterface で定義されています。

  • phone(): 電話番号をチェックします
  • postal(): 郵便番号をチェックします
  • personId() (後方互換性のための ssn() も): 国ごとの個人識別番号をチェックします

バリデーションルールは、できるだけこの命名規則に合わせてください。もちろん、それとは別に、実装クラスに さらにバリデーションメソッドを定義することもできます。

由来 ​

このパッケージは cakephp/localized (Packagist では cakephp/localized、アップストリームの最終バージョンは 2.7.0) のメンテナンスされたフォークで、元は CakePHP コミュニティ (Cake Software Foundation, Inc.) によって作られました。 pieceofcake2 が、モダンな PHP 上の CakePHP 2 向けにメンテナンスしています。 オリジナルからの変更点は フォーク以降のコミット履歴 にあります。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。