先日リリースされた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件のコメント