先日リリースされたCodeIgniter4ですが、2020年2月26日現在では残念ながら日本語のlanguageファイルは、ありません。
言語ファイルをインストールするのにcomposerが使えるのですが、Packagistにもなくgithubにもないので自前で作るしかないのが現状です。
PackagistのCodeIgniter4の言語ファイル
https://packagist.org/packages/codeigniter4/translations
とりあえず、バリデーションの言語ファイルだけささっと自前で用意しました。
日本語の言語ファイルは用意されていないので、まず「ja」フォルダを「app/Language/」配下に作成します。
そこにsystem側のファイルをコピーして、日本語化を行います。
system/Language/en/Validation.php
上記ファイルをコピーする。
本来は全ファイルをコピーして日本語化しないとと思いますが、
よく使う、バリデーションでとりあえずっていうところ
app/Language/ja/Validation.php
<?php /** * Validation language strings. * * @package CodeIgniter * @author CodeIgniter Dev Team * @copyright 2019-2020 CodeIgniter Foundation * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 4.0.0 * @filesource * * @codeCoverageIgnore */ return [ // Core Messages 'noRuleSets' => 'バリデーションに必要なルールが設定されていません。', 'ruleNotFound' => '{0} は有効なルールではありません。', 'groupNotFound' => '{0} はバリデーションルールグループではありません。', 'groupNotArray' => '{0} ルールグループは配列ではありません。', 'invalidTemplate' => '{0} は有効なバリデーションテンプレートではありません。', // Rule Messages 'alpha' => '{field} には、アルファベットのみを入力してください。', 'alpha_dash' => '{field} には、半角英数字、アンダースコア、ダッシュのみを入力してください。', 'alpha_numeric' => '{field} には、半角英数字のみを入力してください。', 'alpha_numeric_punct' => '{field} には、半角英数字、半角スペース、~ ! # $ % & * - _ + = | : . のみを入力してください。', 'alpha_numeric_space' => '{field} には、半角英数字と半角スペースのみを入力してください。', 'alpha_space' => '{field} には、アルファベットと半角スペースのみを入力してください。', 'decimal' => '{field} には、半角で10進数を入力してください。', 'differs' => '{field} には、{param} と異なる値を入力してください。。', 'equals' => '{field} は、{param} と一致しなければなりません。', 'exact_length' => '{field} の長さは {param} 文字でなければなりません。', 'greater_than' => '{field} には、{param} より大きい半角数値を入力してください。', 'greater_than_equal_to' => '{field} には、{param} 以上の半角数値を入力してください。', 'hex' => '{field} には、16進数文字を入力してください。', 'in_list' => '{field} には、{param} のいずれかの値を入力してください。', 'integer' => '{field} には、半角整数を入力してください。', 'is_natural' => '{field} には、半角数字のみを入力してください。', 'is_natural_no_zero' => '{field} には、半角数字のみを、0より大きい値で入力してください。', 'is_not_unique' => '{field} には、データベース内の既存の値が含まれている必要があります。', 'is_unique' => '{field} には、一意の値が含まれている必要があります。', 'less_than' => '{field} には、{param} より小さい半角数値を入力してください。', 'less_than_equal_to' => '{field} には、{param} 以下の半角数値を入力してください。', 'matches' => '{field} は {param} と一致しません。', 'max_length' => '{field} は {param} 文字以内で入力してください。', 'min_length' => '{field} は {param} 文字以上で入力してください。', 'not_equals' => '{field} は {param} と一致しません。', 'numeric' => '{field} には、半角数字のみを入力してください。', 'regex_match' => '{field} の形式が正しくありません。', 'required' => '{field} は、必須入力です。', 'required_with' => '{param} が存在する場合、{field} は必須となります。', 'required_without' => '{param} が存在しない場合、{field} は必須となります。', 'timezone' => '{field} は有効なタイムゾーンではありません。', 'valid_base64' => '{field} には、有効なbase64文字列を入力してください。', 'valid_email' => '{field} は、有効なメールアドレスではありません。', 'valid_emails' => '{field} に、無効なメールアドレスが含まれています。', 'valid_ip' => '{field} には、有効なIPアドレスを入力してください。', 'valid_url' => '{field} には、有効なURLを入力してください。', 'valid_date' => '{field} には、有効な日付を入力してください。', // Credit Cards 'valid_cc_num' => '{field} は、有効なクレジットカード番号ではありません。', // Files 'uploaded' => '{field} は、有効なファイルではありません。', 'max_size' => '{field} は、ファイルサイズが大きすぎます。', 'is_image' => '{field} には、画像ファイルを指定してください。', 'mime_in' => '{field} は、有効なMIMEタイプではありません。', 'ext_in' => '{field} は、有効なファイル拡張子ではありません。', 'max_dims' => '{field} は画像ファイルではないか、幅が広すぎるか高すぎます。', ];
application/Config/App.php の以下のものを変更する。
変更前
public $defaultLocale = 'en';
変更後
public $defaultLocale = 'ja';
以前、i18n対応について正式リリース前のバージョンで動作検証した記事にも書いてますが
多言語対応しないなら上記の変更だけで日本語によるメッセージ表示ができるようになります。
メッセージ翻訳は自前なので使う場合は都合よく変更してもかまいません。
そのうち、有志の方がgithubにあげてくれるでしょう(他力本願w)
0件のコメント